MQL if関数

if関数による条件分岐

ここまでで、売買注文を出す準備が整いました。
売買注文を出すタイミングは、もし移動平均線がゴールデンクロスをしたら買い、デッドクロスをしたら売り、という条件になります。

「もし〜ならば〜〜」という命令は「条件分岐」になりますので、「if関数」を使います。


ゴールデンクロスする時の必要条件は2つあって、下図の状態でなので「@>BかつA<C」でした。
これを変数名に置き換えると、「Short1>Long1かつShort2<Long2」となります。
「かつ」はMQLで「&&」と表しますから、「if関数」と併せて考えてみると、前半部分は、「if(Short1>Long1&&Short2<Long2)」となります。



OrderSend関数

「ゴールデンクロスしたならば、買い注文を出す」という条件の、前半部分ができました。あとは「買い注文を出す」という内容なので、注文を出す命令文「OrderSend関数」を後半部分に入れます。 OrderSend関数は、以下の11個のパラメーターを取ります。

OrderSend(@string symbol,Aint cmd,Bdouble volume,Cdouble price,Dint slippage,Edouble stoploss,Fdouble takeprofit,Gstring vomment,Hint magic,Idatetime expiration,Jcolor arrow_color)

OrderSend(@通貨ペア,A注文種類,Bロット数,C注文価格,D許容スリッページ,E逆指値注文,F指値注文,Gコメント,Hマジックナンバー,I有効期限,J色)

パラメーターを1つずつ見ていきましょう。

@注文を出す通貨ペアは現在表示のものになるので「Symbol()」とします。

A成行で買い注文を出すので「OP_BUY」です。

B取引量は1万通貨とするので「0.1」になります。

C注文価格は現在の買値なので「Ask」です。

Dスリッページは一般的な数値である「3」にしておきます。

E逆指値でストップロス価格を決めます。ストップロス価格は外部変数の「Stoploss」で、初期値は1000にしていました。この「Stoploss」に「Point」を掛けるのですが、これはPoint関数といって、通貨ペア別に値を一定に保つ役割を果たしています。
例えばドル円が「100.00」→「100.05」と動いた場合と、ユーロドルが「1.3000」→「1.3005」と動いた場合では、ともに5pipsの値動きになりますが、両者の桁数が違っています。Point関数はこれを調整し、桁が違っても「5pips」と認識させるための関数です。
逆指値は買値から下へ100銭のところなので、「Ask−(Stoploss*Point)」となります。「*」はかけ算「×」のことです。

F利益確定するための指値注文です。現在の買値から上へ50銭のところなので、「Ask+(Profit*Point)」となります。

Gコメントは「BUY」としました。

H今回稼働するEAは他にはないので「0」としました。(詳しくはコラム参照)

I有効期限は特に指定しないので「0」です。

Jチャート上に表示される矢印の色は青「Blue」にしました。



以上は「ゴールデンクロス時の買い」です。もうひとつの売買ポイントである「デッドクロス時の売り」は、すべてを逆にしますif条件分の不等号を逆にし、「Ask」を「Bid」に、利食いと損切りポイントは「Ask」を「Bid」にしたあとそれぞれの加減を逆にします。

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!ブックマークに登録


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