
このコードは、MA Profitのアイデアに基づいていますが、交差移動平均システムの代わりに、シングル移動平均を使用しています。
シングル移動平均を利用することで、最適化のスピードが向上し、10から1000の間のすべての移動平均をほぼ瞬時にチェックできます。
シングル移動平均を使ったトレーディングでは、以下の3つのシグナルが得られます。一般的には、150や500以上の大きな移動平均と共に使用されます。
- 曲線がキャンドルの下にある場合 - 買い
- 曲線がキャンドルの上にある場合 - 売り
- 曲線が水平で、キャンドルを何度も交差している場合 - ポジションをクローズして待機
期間を切り替えることで、すべてが再計算されます。異なる時間足(分、時間、日など)が同じシグナルを示すかどうかを確認できます。通常、複数の時間足で表示されたシグナルの方が強力です。また、エントリーポイントを見つけるために、低い時間足に切り替えることも可能です。
このインジケーターは、4種類の三角形を描画します。
- 赤の太い境界線: 短期トレードが勝利
- 赤の細い境界線: 短期トレードが敗北
- 緑の太い境界線: 長期トレードが勝利
- 緑の細い境界線: 長期トレードが敗北
新しいシグナルが利用可能になると、インジケーターはアラートを表示したり、音声出力を使用することができます。この場合、https://www.mql5.com/en/code/8621 から取得した speak.dll が必要です。
インジケーターは、良いシグナルと悪いシグナルのステータスと数をステータスラインに表示します。
最適化は2つのモードで行うことができます:
- シミュレーショントレーディング。最も効果的な移動平均は、最も良い利益をもたらしたものです。
- キャンドル間の交差をカウントします。曲線とキャンドルが接触する時間が少ないほど、移動平均が優れていることになります。
パラメーター:(ソースコードも参照)
extern bool bOptimize=true; // 真: 最適化によって最良のシングルMAを見つける(再最適化のために時間足を切り替える)
extern bool bOptimizeIntersect=true; // 真: 最小交差の最適化、そうでなければ最大利益の最適化
extern int PeriodMA=400; // 最適化を行いたくない場合、期間を定義できます
extern int Method=0; // MAの方法 0 = シンプル, 1 = 指数, 2 = スムーズ, 3 = 線形加重
extern bool DrawTringles=true; // シミュレーショントレーディング用の三角形を描画します
extern int MinMA=5; // 最適化のための最小テスト
extern int MaxMA=500; // 最適化のための最大テスト
extern int StepMA=1; // 最適化中のステップ、1はすべてのMAをテスト、10は10ごとにテストなど
extern int CountOptimize=300; // 最適化のためのキャンドル数
extern int RepaintBars=3000; // 三角形を描画し、勝敗を計算するキャンドル数
extern bool Alarm=true; // 新しいシグナル時に目に見えるアラートを作成
extern bool bSpeak=true; // gspeakでアラートを音声で知らせる
移動平均トレーディングは非常に良いシグナルを提供しますが、多くの誤ったシグナルも生じます。現在、誤ったシグナルをフィルタリングするためのアイデアを探していますので、私の移動平均エキスパートアドバイザーを公開する予定です。
ご使用は自己責任でお願いいたします!