以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://www.weistock.com/bbs/list.asp?boardid=2)
----  [求助]求指正程序有什么问题  (http://www.weistock.com/bbs/dispbbs.asp?boardid=2&id=169342)

--  作者:mikewhq
--  发布时间:2019/4/15 10:58:01
--  [求助]求指正程序有什么问题

P:100;                                            //帐户总资产(W)

N:=4;                                             //总资产分散几个合约品种

S:=MULTIPLIER;                                   //该合约乘数即每手几吨

F:=ROUND(P);                                     //防乌龙指阀值             

HD1:=HOLDING;                                   //帐户品种现有持仓

…..

…..

…..

 

以上省略部分为算法部分

 

HS:=…;                  //省略的是算法计算的帐户某品种应该持有的理论整数手数

 

If (ABS(HD1)>ABS(HS) or ABS(HD1)<ABS(HS))   then

begin

 

TF:=ABS(HS*10*2/10000);           //调整仓位阀值(价差低于手续费不作调整)

 

T1:=ABS(HS)<F AND HS>=0 AND HD1<0;

T2:=ABS(HS)<F AND HS<=0 AND HD1>0;

 

SELLSHORT(T1,ABS(HD1),MARKETR);

SELL(T2,HD1,MARKETR);                           //清理相反方向持仓  

 

HD2:=HOLDING;                                   //重新检查现在帐户品种持仓

TS:=HS-HD2;                                      //此时应该调整手数

 

T3:=ABS(TS)>TF AND ABS(HS)<F AND HS>=0 AND HS>HD2;

T4:=ABS(TS)>TF AND ABS(HS)<F AND HS>=0 AND HS<HD2;

T5:=ABS(TS)>TF AND ABS(HS)<F AND HS<=0 AND HS<HD2;

T6:=ABS(TS)>TF AND ABS(HS)<F AND HS<=0 AND HS>HD2;

 

BUY(T3,TS,MARKETR);       

SELL(T4,ABS(TS),MARKETR);  

BUYSHORT(T5,ABS(TS),MARKETR);           

SELLSHORT(T6,TS,MARKETR);

 

End

 

 

版主好!有一个问题想请教一下:以上这段程序我实际模拟试过,大部分时间里运行是正常的,但不知为何偶尔会不正常,主要表现在有时某一品种会出现HS(理论持仓)为正(多仓),但实际持仓HOLDING为负(空仓)而程序却不调整,手工强行调整为正后,持仓同步却即时又调整回来为负,又或者反之HS为负,而HOLDING为正同样这一现象,究竟我的程序出了什么问题呢?可否帮我指正并修改过来?谢谢了!


--  作者:banzhuan
--  发布时间:2019/4/15 11:08:54
--  
您好,该贴中已有回复,可在该贴中追贴提问:http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=169338