ホーム システムトレード 投稿

MT5のための2つのMAと1つのRSIを使ったEAの紹介

添付ファイル
20886.zip (7.32 KB, ダウンロード 2回)

アイデア提供者: Iurii Tokman

MQL5コード作成者: Vladimir Karputov

このEAは、2つの移動平均(iMA)と1つの相対力指数(iRSI)を使用してトレードを行います。新しいバーが出現したときのみ取引信号の判断が行われ、ポジションは利益が出た場合に各ティックでトレイルされ、クローズされます。

独自の解決策として、スローインジケーターの平均期間はファストの平均期間の2倍として計算され、RSIの平均期間は常にファストの平均期間に等しくなります。これにより、最適化のパラメータ数が減少します。

信号識別の式では、すべての「<」および「>」の最適化が可能です。そのためには、独自の変数InpMoreLessBuy_1, InpMoreLessBuy_2, InpMoreLessBuy_3, InpMoreLessSell_1, InpMoreLessSell_2, InpMoreLessSell_3)が導入されます。これらの変数を使用して、式は次のように変更されます:

   bool signal_buy=(!InpMoreLessBuy_1  ?  ArrayFast[1]<ArraySlow[1]:  ArrayFast[1]>ArraySlow[1]) && 
                   (InpMoreLessBuy_2   ?  ArrayFast[0]>ArraySlow[0]:  ArrayFast[0]<ArraySlow[0]) &&
                   (InpMoreLessBuy_3   ?  RSI>InpRSI_level_UP      :  RSI<InpRSI_level_UP);
   bool signal_sell=(InpMoreLessSell_1 ?  ArrayFast[1]>ArraySlow[1]:  ArrayFast[1]<ArraySlow[1]) && 
                    (!InpMoreLessSell_2?  ArrayFast[0]<ArraySlow[0]:  ArrayFast[0]>ArraySlow[0]) &&
                    (!InpMoreLessSell_3?  RSI<InpRSI_level_DOWN    :  RSI>InpRSI_level_DOWN);


入力パラメータ

  • 移動平均のパラメータ:

    • ファスト: 平均期間 - 移動平均「ファスト」の平均期間;
    • ファスト: 水平シフト - 移動平均「ファスト」の水平シフト;
    • ファスト: 価格の種類 - 移動平均「ファスト」の価格の種類;
    • スロー: 水平シフト - 移動平均「スロー」の水平シフト;
    • スロー: 価格の種類 - 移動平均「スロー」の価格の種類;
    • ファストとスロー: スムージングタイプ - 平均化タイプ(「ファスト」と「スロー」の共通パラメータ)。

  • RSIインジケーターとその信号のパラメータ:

    • RSI: 価格の種類 - RSIインジケーターの価格の種類;
    • RSI: 上限レベル - RSIインジケーターの上限レベル;
    • RSI: 下限レベル - RSIインジケーターの下限レベル。

  • 取引パラメータ:

    • ストップロス - ストップロス(ゼロに設定すると無効);
    • テイクプロフィット - テイクプロフィット(ゼロに設定すると無効);
    • トレーリングストップ - トレーリング(ゼロに設定すると無効);
    • トレーリングステップ - トレーリングステップ;
    • ロット - 固定ロットサイズで取引(ロットがゼロより大きく、リスクがゼロの場合);
    • リスク - ロットサイズが動的に計算される(リスクがゼロより大きく、ロットがゼロの場合);
    • 一方向の最大ポジション数 - 一方向の最大ポジション数(ゼロに設定すると無効);
    • 利益達成時にすべてのポジションをクローズ - 利益達成時にポジションをクローズ(ゼロに設定すると無効);
    • 逆のポジションをクローズ - 逆のポジションをクローズ(「false」に設定すると無効);
    • マジックナンバー - EAのユニークな識別子。

このEAは、インジケーターのパラメータ設定と共に、ストップロス、テイクプロフィット、トレーリング、片方向にオープンする最大ポジション数、利益達成時のポジションクローズ、逆のポジションクローズを柔軟に設定(および無効化)することができます。また、ポジションボリュームの計算も管理できます。固定ロットサイズで取引(ロットがゼロより大きく、リスクがゼロ)することも、動的にロットサイズを計算すること(リスクがゼロより大きく、ロットがゼロ)も可能です。


最適化に関する推奨事項

「OHLC на M1」モードで、シンボルとM15の時間軸を選択します。ストップロス、テイクプロフィット、トレーリングを無効(ゼロに設定)にし、各方向の最大ポジション数を「1」に設定してください。または、最初の最適化パラメータを含むTwo MA one RSI M15 Start.setファイルをMQL5\Profiles\Tester\フォルダにコピーします。

最適化の種類を「高速(遺伝的アルゴリズム)」に選択し、最適化するパラメータを「バランス最大」に設定します。

最適化には、MQL5 Cloud Networkを利用することをお勧めします。2017年のUSDJPYの最適化は、クラウドと私のクアッドコアノートパソコンを使用して行いました。

その結果、

2018.05.28 08:03:19.923 最適化は7分58秒で完了

コストは$0.08でした。

関連記事

コメント (0)