仕掛けシグナルを選別するフィルタを追加したシステムのひな型です。実際の仕掛けシグナルフィルタについては、仕掛けフィルタのページを参照してください。
//共通ライブラリ
#include "LibEA.mqh"
sinput double Lots = 0.1; //売買ロット数
//ティック時実行関数
void Tick()
{
int sig_entry = EntrySignal(); //仕掛けシグナル
int sig_filter = FilterSignal(sig_entry); //仕掛けフィルタ
//成行売買
MyOrderSendMarket(sig_filter, sig_entry, Lots);
}
//仕掛けシグナル関数
int EntrySignal()
{
int ret = 0; //シグナルの初期化
//シグナルの生成
return ret; //シグナルの出力
}
//仕掛けフィルタ関数
int FilterSignal(int signal)
{
int ret = 0; //シグナルの初期化
//if(シグナルの採用条件) ret = signal;
return ret; //シグナルの出力
}
EntrySignal()
で仕掛けシグナルを生成し、sig_entry
に代入します。
FilterSignal()
は、引数signal
に仕掛けシグナルを入力し、シグナルを採用する条件を満たしたときだけ、そのシグナルを出力する関数として定義します。
FilterSignal()
の戻り値sig_filter
が採用された仕掛けシグナルなので、それをMyOrderSendMarket()
の第1引数に代入します。
第2引数には途転売買システムと同様に元の仕掛けシグナルを手仕舞いシグナルと見なし、sig_entry
を代入します。別に手仕舞いシグナルがある場合は、仕掛けシグナルと手仕舞いシグナルを使ったシステムと同様に扱います。