バイナリーオプション初心者のためのMQL言語入門【Part1】

MQL4

こんにちは、Carcanoです。

今回はバイナリーオプション初心者のためのMQL言語入門【Part1】ということで

実際に簡単なコードを書いていきましょう。

今回は前日までの高値安値にラインを引くというものです。

コードの解説を交えながら解説していくので最後までご覧ください。

バイナリーオプション初心者のためのMQL言語入門【Part1】

 

 

画像は完成したものになります。

それでは実際にコードを書いていきたいと思います。

新規作成し、わかりやすい名前を付けておくといいでしょう。

シートの作成方法等がわからないという方は、こちらの入門編を参考にしてください。

バイナリーオプション初心者のためのMQL言語入門【準備編】
今回からバックテストをする上で必要なメタエディターに、少しでも触れて慣れていきましょう!という企画を数回に分けてしていこうかと思います。初心者の方でもついてこれる内容にしますのでご安心ください!「バイナリーオプションでバックテストを取れるようになりたい」「インジ作成してみたい」という方におススメな内容となっております。

コード全文

 

今回は  int OnInit()内にのみコードを書いていくことになります。

太字をコピーしてOnInit()内に貼り付けてみてください。

 

int OnInit()
{
//— indicator buffers mapping
double H1 = iHigh(NULL, PERIOD_D1, 0);
double H2 = iHigh(NULL, PERIOD_D1, 1);
double L1 = iLow(NULL, PERIOD_D1, 0);
double L2 = iLow(NULL, PERIOD_D1, 1);

ObjectCreate(“High1”,OBJ_HLINE,0,0,H1);
ObjectSet(“High1”,OBJPROP_COLOR,Red);
ObjectSet(“High1”,OBJPROP_WIDTH,3);

ObjectCreate(“Low1”,OBJ_HLINE,0,0,L1);
ObjectSet(“Low1”,OBJPROP_COLOR,Red);
ObjectSet(“Low1”,OBJPROP_WIDTH,3);

ObjectCreate(“High2”,OBJ_HLINE,0,0,H2);
ObjectSet(“High2”,OBJPROP_COLOR,Blue);
ObjectSet(“High2”,OBJPROP_WIDTH,3);

ObjectCreate(“Low2”,OBJ_HLINE,0,0,L2);
ObjectSet(“Low2”,OBJPROP_COLOR,Blue);
ObjectSet(“Low2”,OBJPROP_WIDTH,3);

//—
return(INIT_SUCCEEDED);
}

コード解説

 

それではコードの解説をしていきたいと思います。

初心者の方は少し難しい内容かもしれませんがなるべくわかりやすくお伝えできればと思います。

iHigh と iLow

 

まず初めにどこの価格(高値安値)を持ってくるか指定する必要があります。

今回は前日までの高値安値を引くので、日足の価格から値を持ってきます。

double H1 = iHigh(NULL, PERIOD_D1, 0);
double H2 = iHigh(NULL, PERIOD_D1, 1);
double L1 = iLow(NULL, PERIOD_D1, 0);
double L2 = iLow(NULL, PERIOD_D1, 1);

iHigh iLowはそれぞれ指定した部分の高値と安値を割り出してくれるものになります。

double iHigh(string symbol,int timeframe,int shift);
()内はこのような順に書いていきます。

 

まず参照したい通貨ペアを指定します。double H1 = iHigh(NULL, PERIOD_D1, 0);

ここではNULLを指定します。

これにより現在見ている通貨ペアの情報を参照できます。

 

次にに参照したい時間足を指定します。double H1 = iHigh(NULL, PERIOD_D1, 0);

ここでは日足の値を参照したいのでPERIOD_D1となります。5分足を参照したい場合PERIOD_M5となります。

 

最後に高値の値を取得したいバーの位置を指定します。double H1 = iHigh(NULL, PERIOD_D1, 0);

ここでは現在の位置を指定(0)します。

今回は当日と前日の値を取得したいので 0(当日)と1(前日)とそれぞれ指定しています。

ObjectCreate()と ObjectSet()

 

今回使用するキーとなる関数は

ObjectCreate()  ObjectSet() というものです。

まず、ObjectCreate() こちらの関数ですが、チャート内にオブジェクトを生成したいときに使用する関数です。

もっとざっくり説明すると、チャートに矢印やライン、図形等を表示させたいというときに使う関数です。

bool ObjectCreate(
    long        chart_id,      // chart ID
    string      object_name,   // object name
    ENUM_OBJECT object_type,   // object type
    int         sub_window,    // window index
    datetime    time1,         // time of the first anchor point
    double      price1,        // price of the first anchor point
    ...
    datetime    timeN = 0,     // time of the N-th anchor point
    double      priceN = 0     // price of the N-th anchor point
);

 

ObjectCreate(); の()内は上青枠の順番で書いていくことになります。

ObjectCreate(“High1”,OBJ_HLINE,0,0,H1); を例に説明していきます。

 

まずオブジェクト名を指定します。ObjectCreate(“High1”,OBJ_HLINE,0,0,H1);

今回前日までの高値安値を表示させるものを作ったため、

High1 High2 Low1 Low2 とそれぞれ指定しました。

 

次にオブジェクトの種類を指定します。ObjectCreate(“High1”,OBJ_HLINE,0,0,H1);

今回は水平線を指定します。

 

オブジェクトの種類はこちらになります↓↓

OBJ_VLINE 垂直線
OBJ_HLINE 水平線
OBJ_TREND トレンドライン
OBJ_TRENDBYANGLE 角度によるトレンドライン
OBJ_CYCLES サイクルライン
OBJ_CHANNEL チャネル
OBJ_STDDEVCHANNEL 標準偏差チャネル
OBJ_REGRESSION 線形回帰
OBJ_PITCHFORK アンドリュース・ピッチフォーク
OBJ_GANNLINE ギャンライン
OBJ_GANNFAN ギャンファン
OBJ_GANNGRID ギャングリッド
OBJ_FIBO フィボナッチリトレースメント
OBJ_FIBOTIMES フィボナッチタイムゾーン
OBJ_FIBOFAN フィボナッチファン
OBJ_FIBOARC フィボナッチ円弧
OBJ_FIBOCHANNEL フィボナッチチャネル
OBJ_EXPANSION フィボナッチ拡張
OBJ_RECTANGLE 長方形
OBJ_TRIANGLE 三角形
OBJ_ELLIPSE 楕円
OBJ_ARROW_THUMB_UP サムズアップ
OBJ_ARROW_THUMB_DOWN サムズダウン
OBJ_ARROW_UP 上矢印
OBJ_ARROW_DOWN 下矢印
OBJ_ARROW_STOP ストップサイン
OBJ_ARROW_CHECK チェックサイン
OBJ_ARROW_LEFT_PRICE 価格ラベル(左側)
OBJ_ARROW_RIGHT_PRICE 価格ラベル(右側)
OBJ_ARROW_BUY 買いサイン
OBJ_ARROW_SELL 売りサイン
OBJ_ARROW 矢印
OBJ_TEXT テキスト
OBJ_LABEL ラベル
OBJ_BUTTON ボタン
OBJ_BITMAP ビットマップ
OBJ_BITMAP_LABEL ビットマップラベル
OBJ_EDIT 編集枠
OBJ_EVENT 経済指標カレンダーに反応するイベントオブジェクト
OBJ_RECTANGLE_LABEL カスタムグラフィカルインターフェース(GUI)を作成したりデザインするオブジェクト

 

次にウィンドウ番号の指定をします。ObjectCreate(“High1”,OBJ_HLINE,0,0,H1);

ここではメインチャートに表示させるため0を指定します。

 

次は時間のアンカーポイントを指定します。ObjectCreate(“High1”,OBJ_HLINE,0,0,H1);

ここでは時間指定はしないので0と指定します。

 

最後に価格のアンカーポイントを指定します。ObjectCreate(“High1”,OBJ_HLINE,0,0,H1);

ここでは上記で指定した価格(H1=当日の高値)を指定します。

 

ObjectSet()

 

ObjectSet()はObjectCreateで指定したものの線の太さを指定するものになります。

ObjectSet(“High1”,OBJPROP_COLOR,Red);

注意点としましてはObjectCreateごとに”High”などのオブジェクト名は一致している必要があります。

こちらを連動させないとチャートに反映されません。

最後にコンパイルをします

 

エラーがなく冒頭で示した画像の様になっていれば完成です。

エラーが出てしまった場合はスペースが全角になっていないか等確認しましょう。

それでもダメな場合は冒頭のコード全文太字部分をコピーしてコンパイルしてみてください。

まとめ

 

いかがだったでしょうか。

今回は前日までの高値安値のラインを引くということを実際にしてみました。

MQLを覚える一番の方法はまずは暗記だと思っています。

とにかく覚えるまで書くこと。

最初のうちはエラーばかりでどかを間違えているのかも分からないでしょうが、

書いていくうちに理解できてくるはずです。

ある程度理解できたら、中身の関数のことなどを詳しく覚えていく。

まずは理屈は考えずにひたすら書くことに徹した方が早く身に付くはずです。

 

今回の記事でバックテストやMQLに関してもっと知りたい関、教えてほしいという方は講座の方出品しておりますので、

気になる方は下記リンクよりお問い合わせください。

バイナリー・FX バックテストの取り方教えます 初心者の方でも必ず取れるようになります!(残り3枠)|バイナリーオプションの相談 | ココナラ
おかげさまで初期の価格での提供5枠は終了しました! 以降は、初期に手に取っていただけた生徒さんとの差別化を図るためにも値段の方は少しあげさせていただきます。今回は現在の...

 

また下記リンクよりフォローしていただければブログの更新通知が届きます。

 

それではまた次回!

MQL4
Carcanoをフォローする
底辺トレーダーによる バイナリーオプション FX 奮闘記

コメント