MetaEditorで新規作成したものからページの都合上注釈を消しています。
そしてTACA的説明を書き込みました。
#property copyright "TACA 2016/05/26 Kyoto" //コピーライト EAを選ぶときに見づらくなります。
#property link "http://mt4kyoto.blogspot.jp/"//バージョン情報のコピーライトをクリックするとこのサイトに飛びます。
#property version "1.00" //バージョンあまり管理していません
//#property strict strictモード いつも消します。
//このへんに定数の宣言int~ double~が並びます。
int OnInit() //EA起動時に一回動作します。
{
EventSetTimer(60); //OnTimerの間隔です。一秒単位です。今回は60秒
return(INIT_SUCCEEDED);
}
void OnDeinit(const int reason) //EA終了時に一回動作します。
{
EventKillTimer(); //終了時にOnTimerを止めます。なにも殺さなくても・・・
}
void OnTick() //ティックに変動があるたびに動きます。
{
}
void OnTimer() //EventSetTimerでセットした秒ごとに動作
{
}
はじめは#propatyです。iconなんかも設定できるのですが、最初の頃は面倒なので無しでいいかと思います。
strictモードは説明は長くなるので省きますがこいつも必要ありません。
今回は書いていませんが、このあとに定数の宣言を行います。
int OnInitは 前処理です。OnTimerを使う時はここでTimerの感覚をEventSetTimerで宣言します。昔はint Initでした。
void OnDeinitは終了処理です。今回ではOnTimerの設定をEventKillTimerで消しています。
こちらも古いソースコードではint deinitです。
void OnTickはティックが変動するたびに動作します。
この中にエントリーやモディファイ、クローズ処理を書きます。
昔はint startでした。
void OnTimerは設定秒ごとに動きます。ティックは数秒動かないことがありますが、
OnTimerは時間ごとに確実に動きます。OnTimerはバックテストでは無視されます。
ある程度OnTickで作成しバックテストしてからのOnTimerに変更、追加するのが良いと思います。
OnTickとOnTimerの両方に同じ処理を記述することで、1ティック早く動く可能性があります。
ごちゃごちゃと書きましたが前半の関数の宣言とOnTickだけである程度は作れます。
流れだけおぼえて下さい。
0 件のコメント:
コメントを投稿