以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  关于后台程式化交易中账号分组的一个bug  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=8934)

--  作者:saintlucifer
--  发布时间:2011/11/14 13:19:09
--  关于后台程式化交易中账号分组的一个bug
后台程式化交易中对于账号分组有一个bug,例如我分别有三个账号a,b,c,其中a属于账号组11,b跟c属于账号组22,后台程式化交易是针对账号组22下单,开仓语句中有THOLDING2=0才进行开仓的判断,当开仓条件成立开仓后,应该就是b,c中有持仓,a不属于22组,于是没有持仓,问题这个时候就来了,当我把活动账号点到a,然后其他开仓条件又成立的时候,策略判断本来应该22组账号中有持仓,于是不开仓的,但由于活动账号a没有侦测到持仓,于是又进行了下单指令,于是账号组22里面又开仓了一次,造成持仓重复,请教下这个问题怎么解决,因为延伸出去其实会造成很多持仓上的错误,因为登录的多账号,其中每个账号的持仓肯定是不同的,这种情况下多策略多账号下面可能会造成很多混乱的问题
--  作者:fly
--  发布时间:2011/11/14 13:28:22
--  

本地跟踪,跟您设置的情况一样,多帐户运行正常.

只对帐户组22,且11的情况不会影响22


--  作者:saintlucifer
--  发布时间:2011/11/14 14:07:57
--  

请问您的策略中,开仓条件是否可以保证一直存在呢?

 

我具体描述下我的策略,针对IF股指5分钟周期,每天开盘之后,如果现价比开盘价高出n点,那么就开多仓,比开盘价低n点,就开空仓,因此除了持仓拿来控制是否要开仓之后,其他条件基本上是每根k线都可以实现一次的。

以下是我的开仓语句部分,其中OT跟CT是开收盘时间,HH跟LL就是高低的n点,Trade_Num是开仓手数,

 

IF TIME > OT AND TIME < CT AND THOLDING2 = 0 THEN BEGIN
 TBUY(CLOSE>HH,TRADE_NUM,LMT,C,0,\'0011\');
 TBUYSHORT(CLOSE<LL,TRADE_NUM,LMT,C,0,\'0011\');
END;

 

每当我开仓之后,如果我活动账号是22账号组,策略就不会自动发出指令,但是一旦我把活动账号点到没有持仓的其他账号组的账号后,一到时间策略就自动发出开仓指令,屡试不爽,因此我才有这个疑问发出,如果不是因为账号持仓侦测的问题的话,请问一下还有什么情况会导致这种情形产生呢?


--  作者:阿火
--  发布时间:2011/11/14 14:14:22
--  

你也知道了,tholding2是获取活动账户的持仓。怎么可以用tholding2 呢

 

用tbuyholdingex tsellholdingex tremainqty 这2个函数。


--  作者:saintlucifer
--  发布时间:2011/11/14 14:20:14
--  
哦哦,原来是这样啊,怪不得了,我修改一下~
--  作者:saintlucifer
--  发布时间:2011/11/15 9:31:47
--  

还是有问题,今天测试了下,只发现了这两个针对指定账户的写法,如果我要针对指定账户组要怎么写呢?

就像下面这样

TBH:  TBUYHOLDINGEX(\'800876\',\'\',1);  这样写就可以取得这个账户当前品种的持仓;

但是如果改成

TBH:  TBUYHOLDINGEX(\'0011\',\'\',1); 这样就无法取得0011账户组里面账户的持仓,如果我是针对多账户下面的持仓情况应该要怎么写呢?


--  作者:fly
--  发布时间:2011/11/15 9:35:44
--  

这里是不能指定帐户组取持仓的.

把该帐户组的组员,一个一个按前一种写法取出的值相加.

 


--  作者:saintlucifer
--  发布时间:2011/11/15 9:44:21
--  

那就是说,如果我在使用过程中要添加账户,那么我就要重新写一次策略计算持仓方面的语句咯?

如果我是把策略加密之后给别人使用,那么别人每次要添加账户,我就要重新写一次给他?

或者如果我有100个账户,这里我就要引用100次计算单独账户持仓呢?

请问有没有什么可以快速累加或者解决这些情况的方法呢?


--  作者:fly
--  发布时间:2011/11/15 9:53:00
--  

是的.

你要取的是真实的持仓,没有快捷方法.

 

提供个想法,有未成交单时,取的不是帐户组里的真实持仓:----如果组里有5个帐户,取一个帐户的持仓*5.


--  作者:admin
--  发布时间:2011/11/15 10:01:32
--  
一般专业版同时加载的帐户数量我们建议不要超过5个,否则对程序化交易的编写者就要有很高的技术要求