ExpertRemove 関数
この関数は、MT4の自動取引システムである EA(Expert Advisor)を停止してチャートからアンロード(削除)します。
ExpertRemove関数を使用しても、EAは直ぐに停止はしません。
EA操作を停止するためのフラグが設定され、その後のプログラム処理は行なわれず、OnDeinit関数が呼び出されて EAがアンロードされチャート上から削除されることになります。
データ型と構成・戻り値
void ExpertRemove();
戻り値は無し。
引数 [0]
引数無し。
使用例
ExpertRemove関数によるEAのアンロード
ExpertRemove関数を使って実行中の EAをアンロードします。
次のサンプルコードを実行すると垂直線が作成されます。プログラムではTickカウントが 10を超えると ExpertRemove関数が呼び出されてOnDeinit関数を経由してObjectsDeleteAll関数が実行されチャート上の垂直線が削除されてから EAも削除されることになります。
このサンプルコードはOnTick関数を使用しているので、土日以外の市場が開いている時間帯でテストをしてください。
コード
// ExpertRemove関数によるEAのアンロード
#property strict
int tc=0; // Tickカウント
void OnInit() {
ObjectsDeleteAll();
ObjectCreate("obj1", OBJ_VLINE, 0, Time[10], 0); // 垂直線
}
void OnDeinit(const int reason) {
ObjectsDeleteAll();
}
void OnTick() {
if(tc>10) {
ExpertRemove(); // EAのアンロード
}
tc++;
}
このコードをコンパイルして実行するのに、自動売買を許可しておく必要があります。
自動売買を許可する方法はこちら、コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)