MetaTrader4
ダイバージェンステンプレートインジケーター - MetaTrader 4用の活用法
テンプレートの使い方 このインジケーターは、希望する オシレーター に基づいてダイバージェンスをプロットするためのテンプレートを提供します。 選択するオシレーター(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);
}
2024.03.10