素晴らしいインジケーターだ。チャート上でも場所を取りません。アラートを追加できれば最高です。
VIJAY JADAV MACD Flat Trend Indicator)にアラートを設定したいのですが、可能でしょうか?もし可能であれば、.mq5コードのどこを変更すればよいでしょうか?
//--- Расчёт индикатора for(int i=limit; i>=0 && !IsStopped(); i--) { BufferNL[i]=BufferDN[i]=BufferUP[i]=EMPTY_VALUE; if(BufferMACD[i]>0 && BufferSignal[i]<BufferMACD[i]) { BufferUP[i]=0.5; BufferNL[i]=BufferDN[i]=EMPTY_VALUE; Alert("Buy ", _Symbol); } else { if(BufferMACD[i]<0 && BufferSignal[i]>BufferMACD[i]) { BufferDN[i]=0.5; BufferNL[i]=BufferUP[i]=EMPTY_VALUE; Alert("Sell ", _Symbol); } else { BufferNL[i]=0.5; BufferDN[i]=BufferUP[i]=EMPTY_VALUE; } } }
VIJAY JADAV #:
ありがとうございます。でもちょっと問題があります。
あなたが行った修正では、オーディオが再生され続けています、
私は、緑色の線が始まったら、最初のローソク足だけにアラートが出るようにしたいのですが、それ以降のローソク足にはアラートが出ないようにしたいのです。
maCdラインとシグナルラインがクロスした時のみアラートを受信し、それ以外はアラートを受信しない、
グリーンラインの2本目のローソク足からはアラートが出ないはずです、
ありがとうございます
//--- Расчёт индикатора int lastAlert = 0; // 0は横ばい、1は買い、2は売り for(int i=limit; i>=0 && !IsStopped(); i--) { BufferNL[i]=BufferDN[i]=BufferUP[i]=EMPTY_VALUE; if(BufferMACD[i]>0 && BufferSignal[i]<BufferMACD[i]) { BufferUP[i]=0.5; BufferNL[i]=BufferDN[i]=EMPTY_VALUE; if(lastAlert != 1) { Alert("Buy ", _Symbol); lastAlert = 1; } } else { if(BufferMACD[i]<0 && BufferSignal[i]>BufferMACD[i]) { BufferDN[i]=0.5; BufferNL[i]=BufferUP[i]=EMPTY_VALUE; if(lastAlert != 2) { Alert("Sell ", _Symbol); lastAlert = 2; } } else { BufferNL[i]=0.5; BufferDN[i]=BufferUP[i]=EMPTY_VALUE; lastAlert = 0; } } }
アラートを1回のクロスオーバーにつき1回に制限する変数を追加しました。
それでもバー内アラートが発生する場合は、以下のコードでバーのオープン 時間でアラートを制限してください。ヒストリカルバッファの値は空なので使えません。私はこのコードをコンパイルもテストもしていないことに注意してください。
// この2行をグローバル変数のスコープに入れる。 datetime lastOpenTime; ulong uLastOpenTime; ////////////////////////////////////////////////// // 以下の2行をOnInit()関数に入れる。 lastOpenTime = 0; uLastOpenTime = ulong(lastOpenTime); ////////////////////////////////////////////////// //--- Расчёт индикатора int lastAlert = 0; // 0は横ばい、1は買い、2は売り for(int i=limit; i>=0 && !IsStopped(); i--) { BufferNL[i]=BufferDN[i]=BufferUP[i]=EMPTY_VALUE; if(BufferMACD[i]>0 && BufferSignal[i]<BufferMACD[i]) { BufferUP[i]=0.5; BufferNL[i]=BufferDN[i]=EMPTY_VALUE; if(lastAlert != 1 && uLastOpenTime < ulong(iTime(_Symbol, PERIOD_CURRENT, 1)) { Alert("Buy ", _Symbol); lastAlert = 1; uLastOpenTime = ulong(iTime(_Symbol, PERIOD_CURRENT, 1); } } else { if(BufferMACD[i]<0 && BufferSignal[i]>BufferMACD[i]) { BufferDN[i]=0.5; BufferNL[i]=BufferUP[i]=EMPTY_VALUE; if(lastAlert != 2 && uLastOpenTime < ulong(iTime(_Symbol, PERIOD_CURRENT, 1)) { Alert("Sell ", _Symbol); lastAlert = 2; lastOpenTime = ulong(iTime(_Symbol, PERIOD_CURRENT, 1); } } else { BufferNL[i]=0.5; BufferDN[i]=BufferUP[i]=EMPTY_VALUE; lastAlert = 0; } } }
取引の機会を逃しています。
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
MACD_Flat_Trend:
MACD フラットトレンドインジケータ
作者: Scriptor