皆さん、こんにちは!今日は、移動平均線を使ったトレーディング手法についてお話しします。この手法では、価格が移動平均線から一定のポイントだけ離れたところでトレードを開始します。
このEAは利益を上げる可能性がありますが、利益は小さめで、かなりの資金が必要です。
このEAのアイデアは私のもので、コードはセルゲイ・デュバキンが書いてくれました。

画像の赤い実線が移動平均線の値で、赤い点線がチャネルの境界(レンジ)を示しています。この境界でトレードが行われます。
チャネルの下限で買い注文、上限で売り注文が開かれます。
EAがチャネル境界(レンジ)に触れたローソク足で買いまたは売りの注文を開くためには、直前のローソク足の高値または安値がレンジレベルの上下にある必要があります。「0」バーの前の「1」バーの高値がレンジの上限を下回っている場合は売り、安値がレンジの下限を上回っている場合は買い注文が開かれます。
さらに、このEAには追加のプラグインモジュールとして「Turn」「Step Down」「Trade Time」があります。
- Turnモジュール — メイン注文のストップロスレベルに逆方向のリミット注文を配置します。価格が一度チャネル境界に達した後、MA線から離れ続ける場合に役立つと考えています。
- Step Downモジュール — メイン注文の方向に追加の注文を配置します。このモジュールは別のエキスパートアドバイザーでも利用されました。
- Trade Timeモジュール — EAが取引を行う時間間隔を設定します(Step Downモジュールの注文には適用されません)。
エキスパートアドバイザーの設定:
移動平均線
- 期間 – 移動平均線のパラメータ。
- シフト – 移動平均線のパラメータ。
- MAの方法 – 移動平均線のパラメータ。
- 適用先 – 移動平均線のパラメータ。
- レンジ – 移動平均線の値から上下に測定された距離です。この値に達した時、EAは最初のメイン注文を開くことができます。
初期ロット
- LotConst_or_not – 同じロットで取引を開始するか、預金の変化に応じて初期ロットを再計算するかを選択できます。
true – 最初のロットは固定され、以下のロット数と等しくなります。
false – 最初のロットは動的に変化し、リスクパーセンテージと預金サイズに依存します。
ロット数 = AccountBalance() * (RiskPercent / 100.0) / 10000.0 - ロット数 – 初期取引ロットを設定します。
- リスクパーセンテージ – 預金に応じた初期取引ロットを設定します。
- LotConst_or_not – 同じロットで取引を開始するか、預金の変化に応じて初期ロットを再計算するかを選択できます。
テイクプロフィット – 注文の利益レベル(EAが添付されているチャートのポイントで指定)。
ストップロス – 注文の損失レベル(EAが添付されているチャートのポイントで指定)。
トレーリングストップ – ストップロスレベルを自動で移動させます。
- true – モジュールが有効です。
- false – モジュールが無効です。
モジュール Turn
- true – モジュールが有効です。
- false – モジュールが無効です。
- Turn – 逆方向の保留中の注文が配置される距離。
- LotMultiplicator – ロット増加率。
- Turn_TakeProfit – このモジュールを使用して開かれる注文の利益レベル(EAが添付されているチャートのポイントで指定)。
モジュール Step Down
- true – モジュールが有効です。
- false – モジュールが無効です。
- Step Down – トレンドに逆らって配置される注文の間隔。
モジュール Trade time
- true – モジュールが有効です。
- false – モジュールが無効です。
- オープントレード – EAが最初のメイン注文を開く可能性のある時刻。
- クローズトレード – EAが最初のメイン注文を開けなくなる時刻。
マジックナンバー – EAが自身の注文を他の注文と区別するためのプログラムコード。
ロゴとデータ出力 – 収益の表示を有効/無効にします。
- true – モジュールが有効です。
- false – モジュールが無効です。
時間枠 – EAが取引に使用するチャートの時間枠を指定します。
- 現在 – ターミナルに指定された時間枠。
- M1, M5, M15, M30, H1, H4, D1, W1, MN1 – 固定時間枠。