
等级: 标准版
- 注册:
- 2021-5-31
- 曾用名:
|
如下代码,我是在3秒K线上运行:
IF TODAYBAR=1 THEN
BEGIN
今开:=CALLSTOCK(STKLABEL,VTOPEN,6,0);
昨收:=ROUNDS(CALLSTOCK(STKLABEL,VTCLOSE,6,-1),2);
END
JK:今开;
不高开:今开<昨收*1.02;
选择序列模式,输出是错误的,选择逐K模式输出才正确。
如下的代码:
IF time=093100 THEN
BEGIN
今开:=CALLSTOCK(STKLABEL,VTOPEN,6,0);
昨收:=ROUNDS(CALLSTOCK(STKLABEL,VTCLOSE,6,-1),2);
END
JK:今开;
不高开:今开<昨收*1.02;
也是序列模式输出错误,逐K模式输出正确
去掉时间限制,或者第一根K线限制
今开:=CALLSTOCK(STKLABEL,VTOPEN,6,0);
昨收:=ROUNDS(CALLSTOCK(STKLABEL,VTCLOSE,6,-1),2);
JK:今开;
不高开:今开<昨收*1.02;
这段代码序列模式与逐K线模式都正确输出。
请教:
1、序列模式理论上加载的时候都会程序从第一根K线开始计算,取到的今开、昨收数据应该后面可以调用,限制只在指定时间或者指定的K线取到今开等也应该保存在内存参与最后一根K线的计算,这样还是应该输出正确,错误的原因在哪?
2、是不是在序列模式中就不能正常运行if TIME=XXXX THEN 或者IF TODAYBAR=1 THEN这样做条件判断的语句?后台程序化中如果使用了这样的条件是不是也不能正确运行输出了?
|
|