作者:
maj1es2tic (Tim Welch)
本指标通过当前布林带宽度与N个周期内布林带的最大宽度和最小宽度进行比较(宽度计算周期WidthCalcPeriod)。
如果计算出的百分比小于或等于最小范围百分比MinRangePercent,直方图将显示为绿色。如果计算出的百分比是最小范围百分比的2倍,则直方图显示为黄色。如果以上都不符合,则直方图显示为红色。
这个指标非常适合快速判断货币对是否在区间震荡,或者即将突破区间。如果将ShowWidthLine设置为true,它还会显示布林带的实际宽度(单位:PIPS)。该指标适用于4位和5位小数的经纪商,并适用于所有货币对。
使用iCustom提取值以供系统交易或其他自定义指标:
您可以使用以下代码从外部提取任何值:
int period=0; // 回溯多少个周期?0表示当前,1表示上一个,依此类推。 // 在任何时刻,只有这三个值中有一个会大于0。该值是300。 double WelchBBWidth_Green = iCustom(NULL, 0, "WelchBBWidth", 20, 0, 2.0, 20, "x", 100, "x", false, 0, period); double WelchBBWidth_Yellow = iCustom(NULL, 0, "WelchBBWidth", 20, 0, 2.0, 20, "x", 100, "x", false, 1, period); double WelchBBWidth_Red = iCustom(NULL, 0, "WelchBBWidth", 20, 0, 2.0, 20, "x", 100, "x", false, 2, period); // 这将给您布林带的实际宽度(单位:PIPS) double WelchBBWidth = iCustom(NULL, 0, "WelchBBWidth", 20, 0, 2.0, 20, "x", 100, "x", false, 3, period); // 这些将为您提供布林带线的实际值。 // 这些值将在主图上绘制,因此基于图表上的价格。 double WelchBBWidth_MiddleLine = iCustom(NULL, 0, "WelchBBWidth", 20, 0, 2.0, 20, "x", 100, "x", false, 4, period); double WelchBBWidth_UpperLine = iCustom(NULL, 0, "WelchBBWidth", 20, 0, 2.0, 20, "x", 100, "x", false, 5, period); double WelchBBWidth_LoweLine = iCustom(NULL, 0, "WelchBBWidth", 20, 0, 2.0, 20, "x", 100, "x", false, 6, period);
您可以在系统交易中使用以下代码:
/* * int areWeRanging(int period=0) * * 返回1表示绿色(区间震荡) * 返回-1表示黄色(区间开始/结束) * 否则返回0(无区间) */ int areWeRanging(int period=0) { double WelchBBWidth_Green = iCustom(NULL, 0, "WelchBBWidth", 20, 0, 2.0, 20, "x", 100, "x", false, 0, period); double WelchBBWidth_Yellow = iCustom(NULL, 0, "WelchBBWidth", 20, 0, 2.0, 20, "x", 100, "x", false, 1, period); if ( WelchBBWidth_Green > 0 ) { return (1); } else if ( WelchBBWidth_Yellow > 0) { return (-1); } return (0); } // 检查我们是否突破了区间。 // 这告诉我们最后一根K线仍在区间内, // 但当前K线现在突破了区间。 if ( areWeRanging(1)==1 && (areWeRanging(0)==-1 || areWeRanging(0)==0) ) { Print("我们曾在区间震荡,但现在已突破区间!如果其他指标确认突破,请进行交易!"); }
** 请自行决定是否使用上述代码,并仅在确认其他指标的情况下进行真实交易。 **
图片:

*注意:深灰色竖线和红色箭头是为了显示指标与图表上的布林带之间的关联,它们不会出现在您的图表上。
祝您交易愉快!
-Tim