概要
MQL4をプログラミングするためには、MQL4プログラム新規作成時に自動生成されるスケルトンコードを理解しておく必要がある為、読み方をメモしておきます。
MQL4プログラム新規作成方法
スケルトンコード云々の前に、そもそもMQL4プログラムを新規作成する必要があります。こちらについてはこちらに纏めましたので御覧ください。
MQL4のスケルトンコード
上記にてMQL4ファイルを新規作成すると以下のようなスケルトンコードが生成されます。
//+------------------------------------------------------------------+
//| hoge.mq4 |
//| Copyright 2021, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
}
//+------------------------------------------------------------------+
が、これが何を意味しているかを理解しなければこの後実装を進める事が出来ないです。。。そこで、プログラムを眺めてみると以下3つの関数が記載されており、これらの中身を実装すればOKになっている事が分かるかと思います。
①int OnInit()
②void OnDeinit(const int reason)
③void OnTick()
なので、本関数に、ボタンを押される等のイベントを検知したらどんな動作をさせたい・・・といった事を記述する領域になります。
ロジックの具体的な記述方法は後程という事にさせて頂きつつ、MQL4全体の構成としては上記のとおりになります。
本日はここまでで。
②void OnDeinit(const int reason)
③void OnTick()
各関数の位置付け
①int OnInit()
これは、プログラムを起動した直後に1回だけ実行される関数です。JavaやC#等のコンストラクタに近いものになります。
②void OnDeinit(const int reason)
これは、①とは逆にプログラムを終了する直前に1回だけ実行される関数です。個人的にはまだあまり必要性はピンと来ていませんが、おそらくJavaやC#で言うところのfinally句に記載するような事を書くのかなと思います。
③void OnTick()
これは、イベントが発生(画面上で何かしら操作が成された時)した際に呼び出される関数です。なので、本関数に、ボタンを押される等のイベントを検知したらどんな動作をさせたい・・・といった事を記述する領域になります。
ロジックの具体的な記述方法は後程という事にさせて頂きつつ、MQL4全体の構成としては上記のとおりになります。
本日はここまでで。