MQL5ウィザードでできること|MQL5の世界(2回目)

2018年11月27日

ジオメトリック

前回はMQL5ウィザードを使った売買プログラムの自動生成方法を説明しましたが、まだまだ説明できてない機能(トレーリングストップや資金管理など)が沢山あるので、補足していきます。

 

これまでの内容を理解している前提で進めていきますので、まだ見ていない方は先にご確認いただければと思います。

新しいテクノロジーに触れよう|MQL5の世界(1回目)

MQL5ウィザードでできることの大枠を知る

MQL5ウィザードでは大きく分けて、以下3つの設定があります。

  • シグナル
  • トレーリングストップ
  • 資金管理

それぞれ項目について詳しく見ていきます。

 

シグナル

シグナルで主に利用する値を一覧にしました。

これらの値は外部から変更可能なので、ストラテジーテスターでパラメタを最適化しながら値を決定してくのが良いかなと思います。

項目名 概要 設定値の例
Signal_ThresholdOpen ポジションをオープンするための閾値 80
Signal_ThresholdClose ポジションをクローズするための閾値 40
Signal_PriceLevel エントリーする価格 成行 0
指値 20
逆指値 -20
Signal_StopLevel エントリー時に設定する損切り値 50
Signal_TakeLevel エントリー時に設定する利食い値 50
Signal_Expiration シグナルの有効期限 4
各シグナルごとの固有値 Period, Shift, Applied, Weightなど Period=14
Shift=0
Applied=PRICE_CLOSE
Weight=0.5

 

トレーリングストップ

標準機能として何種類か準備されています。

 

トレーリングストップ無し(Trailing Stop not used)

テクニカルでの決済やエントリー時に設定したTP/SL値で決済する場合は、トレーリングストップは必要ありません。

 

固定ピップス(Trailing Stop based on fixed Stop Level)

トレーリングさせるピップス値を設定します。

この機能はシグナル側の「Signal_StopLevel」、「Signal_TakeLevel」と競合している部分があり、使うのに少しコツが要ります。

 

[損切り値のみ追従させたい場合]

  • シグナル側のSignal_StopLevelに損切り値を入れる
  • トレーリング側のTrailing_FixedPips_StopLevelに追従させる損切り値を入れる

 

[利食い値を固定した状態で損切り値を追従させたい場合]

  • シグナル側のSignal_StopLevelに損切り値を入れる
  • シグナル側のSignal_TakeLevelに利食い値を入れる
  • トレーリング側のTrailing_FixedPips_StopLevelに追従させる損切り値を入れる

 

※シグナル側のStopLevelを0にするとトレーリングストップが機能しません。

 

しっかり設定すれば問題なく使えますが、使い方に少し違和感がありますね。

また、トレーリング側の「Trailing_FixedPips_ProfitLevel」はいまいち機能していないようでした。

仕様なのかバグなのかまでは調べていません。ご存知の方がいらっしゃいましたらご教示いただけますでしょうか。

 

移動平均(Trailing Stop based on MA)

移動平均線の位置にトレーリングストップの損切り値が置かれます。

クローズの手法としては理にかなった手法だと思います。

固定ピップスのトレーリングストップと同様で、シグナル側のStopLevelに100などの値を設定する必要があります。

 

Parabolic SAR(Trailing Stop based on Parabolic SAR)

Parabolic SARの位置にトレーリングストップの損切り値が置かれます。

固定ピップスのトレーリングストップと同様で、シグナル側のStopLevelに100などの値を設定する必要があります。

 

資金管理

固定ロット(Trading with fixed trade volume)

固定ロットでの取引です。

最も分かりやすいモデルですが、ライブ口座での運用では資金に応じてロットを変動させるのが普通です。

固定ロットでバックテストしても再現性が無いと言えますので、お勧めはできません。

 

固定証拠金(Trading with fixed margin)

余剰証拠金と口座のレバレッジに応じてロットが変動します。

とても使いやすいモデルです。

 

固定リスク(Trading with fixed risk)

口座残高に応じてロットが変動します。(レバレッジは考慮されません。)

 

最小ロット(Trading with minimal allowed trade volume)

資金にかかわらず、通貨ごとに設定された最低ロットでの取引です。

テスト稼働の時に使えそうです。

 

最適化されたロット(Trading with optimized trade volume)

名前からは分かりづらいですが、前回トレードが勝ちなら次のトレードはロットを増やし、前回トレードが負けなら次のトレードはロットを減らします。

 

まとめ

MQL5ウィザードのみで様々な機能を持ったEAを作れることが分かったのではないでしょうか。

これらの機能を組合せて最適化およびバックテストをしたり、自作のシグナルなどを追加してさらにテストしていくのが良いと思います。

 

もちろん賛否あると思いますので、それぞれやりやすい方法でEAを作成していくのが良いと思いますが、MQL5は分かりづらい部分も多いので「1つのやり方」として少しでも参考になれば幸いです。

私自身もまだまだMQL5を勉強中の身なので、誤っている点などありましたら遠慮なくご指摘いただければと思います。

 

次回は、「MQL5ウィザードに自作プログラムを組み込む|MQL5の世界(3回目)」です。