以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 金字塔软件问题提交 (http://weistock.com/bbs/list.asp?boardid=2) ---- 求助!!!!!! (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=74056) |
-- 作者:qdxzhy126 -- 发布时间:2015/1/6 20:41:37 -- 求助!!!!!! 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就不往上加了。 |
-- 作者:FexTel -- 发布时间:2015/1/6 21:15:22 -- 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做下处理 |
-- 作者:百湛必胜客 -- 发布时间:2015/1/6 23:11:40 -- 用globalvariable |
-- 作者:FexTel -- 发布时间:2015/1/7 9:07:09 -- 1,globalvariable //一样的,实际运行没有问题。重启或者停止交易后还是会被重新初始化计算,返回结果前后不一致的 2,这边关键问题在于您要对实时K线和历史K线做区分的 最新的一根K你可以用EXTGBDATASET记录,历史你要单独记录(不能使用DYNAINFO(7))
|
-- 作者:百湛必胜客 -- 发布时间:2015/1/7 12:43:54 -- 用globalvariable 就能解决楼主的不继续累加问题了 |
-- 作者:FexTel -- 发布时间:2015/1/7 13:11:42 -- 处理是可以的,但是你重启软件或者重新启动图表交易后globalvariable还是会被初始化的哦 |
-- 作者:qdxzhy126 -- 发布时间:2015/1/22 19:05:34 -- 我用了跨周期调用,代码如下: 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不变化。请帮忙解决!!!!谢谢了 |
-- 作者:qdxzhy126 -- 发布时间:2015/1/22 19:24:25 -- 如果 把if (多止损>3) then sell(1,0,MARKETR),ORDERQUEUE;换成if H<ZS then sell(1,0,MARKETR),ORDERQUEUE;holding值就正常了,我想是不是 “多止损”变量类型的定义问题?如果是该如何解决呢?? |
-- 作者:FexTel -- 发布时间:2015/1/23 8:49:40 -- 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;
|
-- 作者:qdxzhy126 -- 发布时间:2015/1/26 16:24:19 -- 按如下改写后出现的问题是 “多止损” 在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;
|