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++;
}
このコードをコンパイルして実行するのに、自動売買を許可しておく必要があります。
自動売買を許可する方法はこちら、コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)
結果
![](https://naruhodo-mt4.com/wp-content/uploads/2023/01/P358expertremove.jpg)