以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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编辑过]