文华财经中的瀑布线指标,在TB中如何编写?

以下是文华财经中瀑布线的指标代码:PB1:(EMA(CLOSE,M1)+MA(CLOSE,M1*2)+MA(CLOSE,M1*4))/3;PB2:(EMA(CLOSE,M2)+MA(CLOSE,M2*2)+MA(CLOSE,M2*4))/3;PB3:(EMA(CLOSE,M3)+MA(CLOSE,M3*2)+MA(CLOSE,M3*4))/3;PB4:(EMA(CLOSE,M4)+MA(CLOSE,M4*2)+MA(CLOSE,M4*4))/3;PB5:(EMA(CLOSE,M5)+MA(CLOSE,M5*2)+MA(CLOSE,M5*4))/3;PB6:(EMA(CLOSE,M6)+MA(CLOSE,M6*2)+MA(CLOSE,M6*4))/3; //定义6条瀑布线在TB中如何编写并且能够在K线图中显示出来?

一般就是找到TB对应的函数学会翻阅帮助文档上面这位同学就给你了例子

回复:管理员你好,楼下的同学已经帮我写了代码。我把这段代码复制以后,打开公式管理器,然后新建公式,粘贴这段代码。然后编译公式,显示没有错误。但是我在主图选择插入这个指标,主图却没有变化,也就是不能显示这个指标。请问这是怎么回事呢?能否帮忙解决一下?谢谢了!

Params Integer Length1(5); Integer Length2(10); Integer Length3(20); Integer Length4(30); Integer Length5(60); Integer Length6(120); Vars Numeric PB1; Numeric PB2; Numeric PB3; Numeric PB4; Numeric PB5; Numeric PB6; Plot PBPlt; Events OnBar(ArrayRef<Integer> indexs){ PB1 = (XAverage(Close, Length1) + AverageFC(Close, Length1 * 2) + AverageFC(Close, Length1 * 4)) / 3; PB2 = (XAverage(Close, Length2) + AverageFC(Close, Length2 * 2) + AverageFC(Close, Length2 * 4)) / 3; PB3 = (XAverage(Close, Length3) + AverageFC(Close, Length3 * 2) + AverageFC(Close, Length3 * 4)) / 3; PB4 = (XAverage(Close, Length4) + AverageFC(Close, Length4 * 2) + AverageFC(Close, Length4 * 4)) / 3; PB5 = (XAverage(Close, Length5) + AverageFC(Close, Length5 * 2) + AverageFC(Close, Length5 * 4)) / 3; PB6 = (XAverage(Close, Length6) + AverageFC(Close, Length6 * 2) + AverageFC(Close, Length6 * 4)) / 3; PBPlt.line("PB1", PB1); PBPlt.line("PB2", PB2); PBPlt.line("PB3", PB3); PBPlt.line("PB4", PB4); PBPlt.line("PB5", PB5); PBPlt.line("PB6", PB6); }

回复:👍

回复:友友你好,十分感谢你的帮助。我把你的这段代码复制以后,打开公式管理器,然后新建公式,粘贴这段代码。然后编译公式,显示没有错误。但是我在主图选择插入这个指标,主图却没有变化,也就是不能显示这个指标。友友你知道是怎么回事吗?

回复:截个图看看,要全屏的那种。

回复:上面是公式界面。然后在下面的行情界面中,右键-插入公式然后选择瀑布线指标,如下图但是主图上仍然不能显示出瀑布线

回复:给你一个新版本代码,跑一下试试Params Integer Length1(5); Integer Length2(10); Integer Length3(20); Integer Length4(30); Integer Length5(60); Integer Length6(70); Vars Numeric PB1; Numeric PB2; Numeric PB3; Numeric PB4; Numeric PB5; Numeric PB6; Plot PbPltss; Events OnInit(){ SetBackBarMaxCount(Length6 * 4); } OnReady(){ If(BarCount < Length6 * 4) Alert("数据源样本数不够最大周期要加载:" + Text(Length6 * 4) + "根Bar,现在只加载了"+ Text(BarCount)+"根"); } OnBar(ArrayRef<Integer> indexs){ PB1 = (XAverage(Close, Length1) + Average(Close, Length1 * 2) + Average(Close, Length1 * 4)) / 3; PB2 = (XAverage(Close, Length2) + Average(Close, Length2 * 2) + Average(Close, Length2 * 4)) / 3; PB3 = (XAverage(Close, Length3) + Average(Close, Length3 * 2) + Average(Close, Length3 * 4)) / 3; PB4 = (XAverage(Close, Length4) + Average(Close, Length4 * 2) + Average(Close, Length4 * 4)) / 3; PB5 = (XAverage(Close, Length5) + Average(Close, Length5 * 2) + Average(Close, Length5 * 4)) / 3; PB6 = (XAverage(Close, Length6) + Average(Close, Length6 * 2) + Average(Close, Length6 * 4)) / 3; PbPltss.line("PB1", PB1); PbPltss.line("PB2", PB2); PbPltss.line("PB3", PB3); PbPltss.line("PB4", PB4); PbPltss.line("PB5", PB5); PbPltss.line("PB6", PB6); }

回复:这个可以了,已经能在K线图中显示了。非常感谢友友的热心帮助。接下来,我想利用这个指标做程序化交易,规则是这样的:多头策略:如果价格从下方往上穿越PB6达到2跳,则以对手价开仓做多。开仓后,如果价格一直大于pb6,则一直持有多单;如果价格从上方往下穿越PB6达到1跳,则多单平仓。空头策略:如果价格从上方往下穿越PB6达到2跳,则以对手价开仓做空。开仓后,如果价格一直小于pb6,则一直持有空单;如果价格从下方往上穿越PB6达到1跳,则空单平仓。能否劳烦友友帮忙编写一下?我一定不会让友友白白付出的。