
テンプレートの使い方
このインジケーターは、希望する オシレーター に基づいてダイバージェンスをプロットするためのテンプレートを提供します。
選択するオシレーター(CCI、RSI、またはカスタムインジケーター)によって、このコードの一部を変更することができます:
///////////////////////////////////////////// //インジケーターデータをバッファにロード //RSIを任意のインジケーターに置き換えることができます int BARS=MathMax(rates_total-IndicatorCounted()-pivots_period,1); for(int i=BARS;i>=0;i--) { indicatorBuffer[i]=iRSI(_Symbol, PERIOD_CURRENT, 14, PRICE_CLOSE, i); } //インジケーターのロードセクション終了 /////////////////////////////////////////////
シグナルバッファ
このインジケーターには、生成されたシグナルを追跡するための4つの異なるバッファがあります。対応するバッファに非空の値が保持されるとき、シグナルが発生します。
SetIndexBuffer(3,bull_reg_divBuffer); SetIndexBuffer(4,bear_reg_divBuffer); SetIndexBuffer(5,bull_hid_divBuffer); SetIndexBuffer(6,bear_hid_divBuffer);
入力セクション
input int pivots_period=5; //ピボットを見つける期間 input int alert_confirm_candles=1; //確認のためのキャンドル数 (0=アラート無効)
ピボットハイとピボットローを indicatorBuffer で見つけることは、pivots_period の入力に依存します。この値を大きく選ぶほど、大きなスイングを検索してダイバージェンスの可能性を探ります。
もう一つの入力である alert_confirm_candles は、シグナル確認のために待つバーの数を定義します。ダイバージェンスインジケーターは大抵遅れがちで、多くの誤シグナルを発生させるため、この値を大きく選ぶほど待機して、誤シグナルの数を減らすことができます。タイムリーなシグナルが欲しいのか、確認済みのものが欲しいのか、妥協が必要です。
通常、pivots_period を < 2 に設定することはできません。
再描画の問題
ピボット計算に依存するインジケーターは、最近の高値/安値を確認するために pivots_period の期間を待つ必要があります。そのため、このインジケーターは pivots_period までのシグナルを再描画する必要があります。
BARS=MathMax(rates_total-IndicatorCounted()-pivots_period,pivots_period); for(int i=BARS;i>=0;i--) { PHBuffer[i]=pivothigh(indicatorBuffer, pivots_period, pivots_period, i); PLBuffer[i]=pivotlow(indicatorBuffer, pivots_period, pivots_period, i); bull_reg_divBuffer[i]=BullRegDiv(i); bear_reg_divBuffer[i]=BearRegDiv(i); bull_hid_divBuffer[i]=BullHidDiv(i); bear_hid_divBuffer[i]=BearHidDiv(i); }
コメント 0