前提・実現したいこと
MQL4でインジケーターからの矢印のシグナルを受信して売買をさせたいのですが
iCustomを使っています。
バッファー0、1で売り、買いのシグナルを受信して
バックテストをするとどうしても、矢印のシグナルの位置とオーダーの
位置がずれてしまいます。ローソク足1本どころではなく、けっこう関係ない位置で
オーダーが出たりしています。
原因がわかりません。インジケータ側は、矢印はrepaintしないのですが
バッファーの中に数値を入れて中身が空っぽでなくなったときに
矢印を出す仕組みです。矢印は連続してださないように
1個目の矢印がでたらフラグを立てて1個以上は表示させないようになっています。
iCustomでシグナルを受信するとき、もしかしたら連続してシグナルが出ていて
それを連続受信して、矢印と関係ない位置でオーダーを出したりしているのかなとも
思ったのですが、iCustomの使い方は合っていますでしょうか?
矢印の位置とオーダーの位置がずれてしまう原因はわかりますでしょうか?
icustomのソースコード
// icustomで、インジケーターの矢印のシグナルを受信する
int sell = iCustom(NULL,0,"SIG",0,1);
int buy = iCustom(NULL,0,"SIG",1,1);
### 持ち玉の処理と、シグナルで売買する箇所のコード // 下向きの矢印がでて、売りポジションがなければ成行売り if ( sell!= EMPTY_VALUE ) { // 買いポジションがあれば決済 if ( B==1 ) { OrderClose( Ticket,lot,Bid,30,White); ErrCode = GetLastError(); B=0; } // レートのリフレッシュ RefreshRates(); // エラーなし、かつ ポジションを持っていなければ売り注文 if (ErrCode == 0 && sell!= EMPTY_VALUE && S!=1 ) { OrderSend(Symbol(),OP_SELL,lot,Bid,30,0,0,NULL,MAGIC_NO,0,Blue); ErrCode = GetLastError(); S=1; ![イメージ説明](7e5a429b1d53ee8a1954aea86749258f.jpeg)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/18 04:06