以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 金字塔软件问题提交 (http://weistock.com/bbs/list.asp?boardid=2) ---- asset如何理解? (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=94984) |
-- 作者:dwjgwsm -- 发布时间:2016/3/21 16:51:41 -- asset如何理解? //空头持仓2手 //空平条件满足 //SRX00 今日close=5592 //TACCOUNT(42)=0.06 //空头平仓手续费:3元/手 x1:=asset; y1:=abs(holding)*c*MULTIPLIER; sellshort(空平条件,0,marketr); x2:=asset; 输出的结果是 x1=201809.3 x2=313623.3 y1=111840 asset怎么平仓后一下子变大这么多?请帮我算一下x2和x1之间的关系,二者之间建立一个等式 |
-- 作者:yukizzc -- 发布时间:2016/3/21 17:19:03 -- 额,asset就是账户资金,您这个如何重现的 我这边无论如何无法得到这个结果。。。换个品种或者随便写一个开平语句测试呢》? [此贴子已经被作者于2016/3/21 17:19:25编辑过]
|
-- 作者:dwjgwsm -- 发布时间:2016/3/21 17:26:39 -- 后台的策略.因为我是3秒扫描一次.尾盘30秒内下单. 因为今天的实盘空平多开下单手数让我感到奇怪,就把电脑时间调整为14:59:30,同时把后台预警中的不间断监控勾选.这样来重现问题的.然后就发现asset在sellshort语句前后发生了很大的变化,平仓后增加了很多.导致我后面计算出来的多开手数增加了. 这个问题可以在我的电脑上重现.
|
-- 作者:yukizzc -- 发布时间:2016/3/21 17:49:27 -- 2857926939 qq远程看明天 |
-- 作者:dwjgwsm -- 发布时间:2016/3/22 14:41:00 -- 查到问题的原因是后台预警A策略,A策略引用B策略,B策略中的asset输出是不对的.如果直接后台预警B策略,那么asset基本正确(但还差一点点) 不仅asset存在这样的问题,cash函数也是!
|
-- 作者:dwjgwsm -- 发布时间:2016/3/22 14:41:18 -- A策略: jztT:=TIMEZONECONVER(CURRENTTIME);//金字塔时间 closeT:=closetime(0);//收盘时间 tiqian:=((closeT-jztT<4070 or range(closeT-jztT,180000,190000)) and ISLASTBAR) or not(ISLASTBAR); buyshort(barpos=1950,2,marketr); x1:asset,NODRAW;y1:cash(1),NODRAW; sellshort(ISLASTBAR AND tiqian,0,marketr); x2:asset,NODRAW;y2:cash(1),NODRAW; text:=\' x1=\' & NUMTOSTR(x1,3) & \' x2=\' & NUMTOSTR(x2,3) & \' y1=\' & NUMTOSTR(y1,3) & \' y2=\' & NUMTOSTR(y2,3) & \' BARPOS=\' & NUMTOSTR(BARPOS,0); if ISLASTBAR and STKLABEL=\'SRX00\' AND tiqian then BEGIN DEBUGFILE(\'c:\\cs.txt\',text & \' c=%.1f\',c); MSGOUT(1,\'OK\'); END ssR:2,NODRAW; virhold:HOLDING,NODRAW; BJ:0,NODRAW; |
-- 作者:dwjgwsm -- 发布时间:2016/3/22 14:42:25 -- B策略: WARNING_DISABLE:4; WARNING_DISABLE:2; LASTBAR:=ISLASTBAR;CODE:=STKLABEL; Nvirhold:=STKINDI(CODE,\'tmtwo.virhold\',0,6,0); Rvirhold:=REF(Nvirhold,1); Realhold:=STKINDI(CODE,\'tmtwo.ssR\',0,6,0); BJ:=STKINDI(CODE,\'tmtwo.BJ\',0,6,0); bkcon:=((Nvirhold>Rvirhold and Nvirhold>0 and Realhold>0) or BJ= 2 or BJ= 3) and LASTBAR; skcon:=((Nvirhold<Rvirhold and Nvirhold<0 and Realhold>0) or BJ=-2 or BJ=-3) and LASTBAR; spcon:=((Rvirhold>0 and Nvirhold<Rvirhold) or BJ=-1 or BJ=-3) and LASTBAR; //卖平(全平) bpcon:=((Rvirhold<0 and Nvirhold>Rvirhold) or BJ= 1 or BJ= 3) and LASTBAR; //买平(全平) Tsell (spcon,0,MKT,0,0,\'\',\'SRX05\'),ORDERQUEUE; //多平 Tsellshort(bpcon,0,MKT,0,0,\'\',\'SRX05\'),ORDERQUEUE; //空平 Tbuy (bkcon and Realhold>0,Realhold,MKT,0,0,\'\',\'SRX05\'),ORDERQUEUE; //多开 Tbuyshort (skcon and Realhold>0,Realhold,MKT,0,0,\'\',\'SRX05\'),ORDERQUEUE;//空开 |
-- 作者:dwjgwsm -- 发布时间:2016/3/22 14:43:32 -- 直接后台预警A策略,输出结果如下: 2016-03-21 14:59:32.037 x1=102568.125 x2=102542.125 y1=95546.065 y2=102542.120 BARPOS=2000 c=5592.0 后台预警B策略,输出结果如下: 2016-03-21 14:59:33.941 x1=102568.125 x2=214382.125 y1=95546.065 y2=214382.115 BARPOS=2000 c=5592.0
|
-- 作者:dwjgwsm -- 发布时间:2016/3/22 14:46:12 -- 所以, 1.asset,cash等这些账户函数是不是存在bug? 2.我的平仓手续费是3元.这个手续费的计算是不是也不对?
|
-- 作者:dwjgwsm -- 发布时间:2016/3/22 14:48:09 -- 5楼写反了.应该是 查到问题的原因是后台预警B策略,B策略引用A策略,A策略中的asset输出是不对的.如果直接后台预警A策略,那么asset基本正确(但还差一点点)
不仅asset存在这样的问题,cash函数也是! [此贴子已经被作者于2016/3/22 14:49:05编辑过]
|