variable:多止损=0;
if holding>0 and DYNAINFO(7)<zs then 多止损:=多止损+1;
if holding<=0 then 多止损:=0;
if (多止损>3) then sell(1,0,MARKETR),ORDERQUEUE;
上面代码是否有问题,如果没问题为什么“多止损”测试后的最大值到1就不往上加了。
运行环境为:
此主题相关图片如下:mk)q%q4c$~{40d1_s`s0rj.jpg

variable:多止损=0;
if holding>0 and DYNAINFO(7)<zs then 多止损:=多止损+1;
if holding<=0 then 多止损:=0;
if (多止损>3) then sell(1,0,MARKETR),ORDERQUEUE;
//DYNAINFO(7)表示最新价,历史返回的都是当心最新的值
交易代码是逐k运行的哦,多止损刷历史值的时候一定有问题的。你这边历史要用C做下处理
1,globalvariable //一样的,实际运行没有问题。重启或者停止交易后还是会被重新初始化计算,返回结果前后不一致的
2,这边关键问题在于您要对实时K线和历史K线做区分的
最新的一根K你可以用EXTGBDATASET记录,历史你要单独记录(不能使用DYNAINFO(7))
处理是可以的,但是你重启软件或者重新启动图表交易后globalvariable还是会被初始化的哦
我用了跨周期调用,代码如下:
globalvariable:多止损=0;
miaohh:STKINDIEX(品种,'止损.hh',0,22,1,100),NODRAW;//返回1秒周期的高点H
if holding>0 and miaohh<zs then 多止损:=多止损+1;
if holding<=0 then 多止损:=0;
if (多止损>3) then sell(1,0,MARKETR),ORDERQUEUE;
现在多止损可以进行累加了,不过新的问题产生了当执行完止损操作if (多止损>3) then sell(1,0,MARKETR),ORDERQUEUE;后,holding状态值不发生变化,原来是1,执行止损后应该是0,可是holding状态值,依然是1不变化。请帮忙解决!!!!谢谢了
1,看下4楼说明,图表是依据历史交易信号的。您这种直接采用动态行情数据在代码里面要做处理
另外CLOSE,在盘中就表示最新价哦
//如下处理下就好了,另外您可以看下全局变量说明http://www.weistock.com/WeisoftHelp/zbgs003.htm
variable:多止损=0;
if holding>0 and C<zs then 多止损:=多止损+1;
if holding<=0 then 多止损:=0;
if (多止损>3) then sell(1,0,MARKETR),ORDERQUEUE;
按如下改写后出现的问题是 “多止损” 在1分钟K线走完后才进行累加,而我的要求是只要出现holding>0 and C<zs就进行累加, 另外variable:多止损=0; 改成 globalvariable:多止损=0;后“多止损”可以时时累加就正确了,不过holding
的状态就不正确了。如此简单的问题怎么实现呀!!!!(变量用variable ,holding的状态是正确的)
variable:多止损=0;
if holding>0 and C<zs then 多止损:=多止损+1;
if holding<=0 then 多止损:=0;
if (多止损>3) then sell(1,0,MARKETR),ORDERQUEUE;