MQL ドテン売買の仕組みを作成する

ポジション数を制限する

これで、買いと売りの記述ができました。しかしこのままでは、条件が整うと限りなくポジションを持ってしまうので、建て玉数がものすごい数になってしまいます。そこで今回は、ポジション数を「1」にして、自動売買がしっかり動作するか確認してみます。

 現在のポジション数を調べる関数に「OrdersTotal()」があります。「OrdersTotal()」でポジション数を調べて、if文を使ってポジション数が0ならば取引をする、という条件にします。if文の条件は「OrdersTotal()==0」、if文の開始と閉じのかっこ入力を忘れないようにしましょう。


コンパイルしてバックテストを行う

ここまでの記述で自動売買が動きますから、試しにコンパイルしてバックテストをしてみましょう。メニューバーの下にある「compile」ボタンをクリック、画面下の「Toolbox」にきちんとコンパイルできたかどうか表示されます。「Compiling ‘MA_Sample.mq4’」と表示されればコンパイル完了です。

エラーが出てしまった場合は、エラーメッセージをダブルクリックするとエラー行に飛ぶので、もう一度見直してみましょう。コンパイルが完了すると、自動的に「MA_Sample.ex4」ファイルが作成されます。MT4に戻って、バックテストを行ってみましょう。きちんと動いたでしょうか?

MQL ドテン売買とOrderSelect関数

 今度は、ポジションがあった時に移動平均線がクロスした場合、ドテン売買する仕組みに改良してみましょう。ゴールデンクロスとデッドクロスが発生する度に決済の命令を出すことになります。決済命令の関数は「OrderClose関数」なのですが、その前にどのポジションを決済するのかを指定する必要があります。ポジションの取得は「OrderSelect関数」で行います。  

「OrderSelect関数」では0から始まるオーダー番号を指定するのですが、ポジション数は必ず1個なのでオーダー番号「0」を取得するために、「OrderSelect(0, SELECT_BY_POS);」とします。今回はポジションがある場合なので、「if文」の条件を「OrdersTotal()==1」になります。



 ポジションを取得したら、

@買いポジションならばデッドクロスで決済、新たに売りポジションを持つ。
A売りポジションならばゴールデンクロスで決済、新たに買いポジションを持つ。

という条件分岐になります。  

 まずは買いポジションなのかどうかを調べてみます。ポジションが買いか売りかを調べる時には「OrderType」関数を使います。


 そして、買いポジションを持った状態で移動平均線がデッドクロスしたら、ポジションを決済する「OrderClose関数」を記述します。


OrderClose(@int ticket, Adouble lots, Bdouble price, Cint slippage, Dcolor Color=CLR_NONE)

OrderClose(@決済するポジション,Aロット数,B決済したい価格, C許容スリッページ,E決済矢印の色)

@決済するポジション 「OrderSelect」関数を使った時に、「OrderTicket」関数にポジションのデータが入るので、「OrderTicket()」を入力します。

Aロット数 同じく「OrderSelect」関数を使った時に、「OrderLots」関数にロット数のデータが入るので、「OrderLots()」を入力します。

B決済価格 成行で決済します。買いポジションを決済するので、「Bid」になります。

C許容スリッページ 標準的な「3」にしました。 D決済矢印の色 決済矢印の色は、注文した時と違う色にした方が分かりやすいです。  そして同時に売りポジションを持ちます。これは前半部分の「//売りポジションを取る」と同じでよいでしょう。これで、ドテン売りの記述ができました。



 次はドテン買いです。手順は先ほどと同じです。ポジションが売りかどうかを調べて、売りの場合はゴールデンクロスした時に決済、同時に買いポジションを持ちます。


 完成したらコンパイルして、バックテストを行ってみましょう。単純なドテン売買では無駄な売買が増えてしまうので、まだまだ改良の余地はありそうです。

FX自動売買システム 成績結果

1位【300名限定】
    資産129倍! クロスファイアFX
2位【勝率88.7%!】
    1日1万円稼ぐ 恋スキャFX
3位【デイトレ最強】
    損失は10pipsまで SSFZ-PRO

システムトレード 運用結果

1位 ボラーチェ
   期間損益+2,079 pips
2位 MA Ninja
   期間損益+1,192 pips
3位 スキャルエンジン
   期間損益+1,096 pips
4位 MAマスターUS
   期間損益+858 pips
5位 スイングギドラA
   期間損益+783 pips

おすすめFX自動売買サポート
FX自動売買

MT4とシステムトレード
FX自動売買 自作編

ひまわり証券エコトレFX
エコトレFX 応用編

マネースクウェアジャパン
FXトレードフィナンシャル
FXCMジャパン

セブンインベスターズ証券

FX自動売買 その他


Yahoo!ブックマークに登録


本日:
昨日:
現在の訪問者数:現在