MID:MA(CLOSE,26);//求N个周期的收盘价均线,称为布林通道中轨 AA1
SST:BARSLAST(CROSS(C,MID)),NODRAW;
SXT:BARSLAST(CROSS(MID,C)),NODRAW;
HH1:=REF(HHV(H,SST),SXT);
LL1:=REF(LLV(L,SXT),SST);
VARIABLE:MH[]=0;
VARIABLE:ML[]=0;
IF SST>SXT THEN
MH:=HH1;
IF SST<SXT THEN
ML:=LL1;
JJ:MH;
KK:ML;
//以上代码KK(下轨)完全正确,为什么JJ(上轨)没有值
啊,我这边怎么还是不行啊,不过如果不用数组是正确的,
比如改成:
JJ:HH1;//之前是JJ:MH;
叫朋友测试,他也只显示下轨
您应该是应用了序列模式,请采用逐K线模式。
【必看】隆重推出“论坛VIP身份认证”,更好、更快地为您服务!详情请看置顶帖。
谢谢SHQ老师
的确是这个原因!!
因为刚从文华转过来学金字塔,原来还有这样的要求,哈哈,再次感谢
那么请问:为啥在序列模式下只显示下轨、不显示上轨?原理是什么,请老师继续讲一讲
控制语句在两种不同模式下的运行特点
逐K线计算时,控制语句比如IF THEN ,FOR 等语句工作机制是每周期都去执行一次,因此在逐K线模式下,可以利用这种灵活的模式来设计我们的策略,比如加仓、减仓、资金管理策略等等。
序列模式计算时,控制语句条件允许使用序列变量,由于序列模式只执行一次控制语句解析,对于序列变量,仅取最后一个数据做为条件判断。
仅刷最后一根K线,当选中逐K线计算模式,并勾选本选项,在图表上加载本公式。当客户端接收到最新一笔行情数据后,在历史 K线上不再重新执行本公式,而只是在最后一根K线上重新计算一次公式(本质是:只在第一次加载公式时在每根历史K线上完整的计算一遍公式,其后就只在最后一根K线上做完整计算了,历史K线上产生的信号一直保留不再随行情更新而变化。)。通过这种方式提高执行效率,避免当行情更新时系统在每根历史K线上都需要做大量重复计算而消耗CPU处理时间。