このエキスパートアドバイザー(EA)は、SerialMAインジケーターに基づいています。
インジケーターの計算期間は、価格との交差点から始まり、次の交差点まで常に増加します。交差点が発生するたびに、インジケーターの計算は最小値から再スタートします。
このEAは、以下のインジケーター特性を利用しています:
- シグナルバーのローソク足の終値がインジケーターラインの上にあり、前のバーのインジケーターポイントがそのライン上にある場合、ロングポジションを開くシグナルです。
- シグナルバーのローソク足の終値がインジケーターラインの下にあり、前のバーのインジケーターポイントがそのライン上にある場合、ショートポジションを開くシグナルです。
ポジションオープニングモードは2つ選択できます:
- 各シグナルで適切なポジションを一つ開き、逆のポジションはクローズします。
- 同じ方向に一つのポジションのみ開けるモード。最初のシグナルでポジションを開き、逆のポジションはこのシグナルでクローズします。同じ方向のさらなるシグナルは無視され、逆のシグナルが出た場合にポジションが切り替わります(スイング)。
正しくEAを運用するためには、コンパイル済みインジケーターファイルSerialMA.ex5をターミナルディレクトリの標準インジケーターフォルダー(Your terminal directory\MQL5\Indicators)に保存してください。
このEAでは、ロング/ショートポジションの有効/無効化や、インジケーターシグナルを逆転させて売りではなく買いをオープンすることも可能です。また、ストップロスとテイクプロフィットをポイントで設定できます。不正なストップロスやテイクプロフィットの値が指定された場合、EAはシンボルに対して許可されている最小StopLevelに値を調整します。
EAは、指定されたロットが不正な場合もロットを調整します。ロットが大きすぎる場合、EAはポジションを開けるように調整します。最低ロットを開くための資金がない場合、シグナルはスキップされます。
EAには12の入力パラメータがあります:
- エキスパートマジックナンバー - EAのポジションのユニークな識別子;
- ポジションオープニングモード - ポジションオープニングモード(各シグナルまたは一つのポジションのみ許可);
- ロングポジションが有効 - ロングポジションのオープンを有効化;
- ショートポジションが有効 - ショートポジションのオープンを有効化;
- 逆トレード - 逆モードの選択(はい、いいえ):はいの場合、ロングシグナルに対してショートポジションがオープンされ、逆も同様;
- ロット数 - オープンするポジションのボリューム;
- ストップロス(ポイント) - ポジションのストップロス(ポイント単位);
- テイクプロフィット(ポイント) - ポジションのテイクプロフィット(ポイント単位);
- 価格スリッページ - ポジションオープン時の最大許容スリッページ;
- ストップのためのスプレッド倍数 - ストップオーダーの適切な距離を計算するために適用されるスプレッド倍数(*)。
- 環境更新待機時間(秒) - トレーディング環境の更新を待機する秒数(**);
- 環境の状態を取得する試行回数 - 正確なトレーディング環境を取得するための試行回数(***)。
この戦略は、2017年1月4日から2018年2月9日までのデータを使用してデフォルト設定でテストされました。残念ながら、デフォルト設定では良好な結果は得られませんでした。したがって、逆モードでテストされ、逆モードでの結果は良好でした。このEAは動的に計算された移動平均からシグナルを受け取るため、最適化のためのパラメータはありません。しかし、EAに何を追加できるかを考えることはできます。たとえば、オープンポジションにトレーリングストップを適用することができます。


図1,2 テスト結果。