以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  一个品种跑多个策略,策略间会相互平掉其他策略的仓位吗?  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=141845)

--  作者:zqs0595
--  发布时间:2016/10/26 14:42:39
--  一个品种跑多个策略,策略间会相互平掉其他策略的仓位吗?
一个品种跑多个策略,策略间会相互平掉其他策略的仓位吗?
--  作者:gxx978
--  发布时间:2016/10/26 14:48:20
--  
是图表程序化交易的话,策略间的持仓holding不会相互干扰。
--  作者:qq代人发帖
--  发布时间:2016/10/26 14:49:13
--  

利用多框架的话每个框架之间是相互独立的,并不影响


--  作者:zqs0595
--  发布时间:2016/10/26 14:56:11
--  
不是的,我是后台程序化的
--  作者:qq代人发帖
--  发布时间:2016/10/26 15:03:37
--  
在后台程式化交易中,如果有多个预警条件对同一个账户进行交易,各预警条件中的账户持仓等信息是公用的,各预警条件中如果有对持仓的判断则会造成不同预警条件间的相互影响,如要消除这种影响,需要使用自定义变量等较高的编程技巧来解决
--  作者:wenarm
--  发布时间:2016/10/26 15:04:46
--  

后天没有虚拟持仓的概念,操作的就是真实账户的持仓。所以会有这个可能的


--  作者:zqs0595
--  发布时间:2016/10/26 17:56:40
--  

我现在改用不同的自定义变量名来存储各个策略的tholding值了,还有什么会相互干扰吗?比如不同策略内相同变量名会干扰吗?


--  作者:wenarm
--  发布时间:2016/10/27 8:42:55
--  

你这个方式不对。tholding就是一个量。当然会互想影响。

 

一个水池中的水,3个人即放水,又抽水。那你说,我要是放10升,抽20升。会怎样。

tholding就是这个水池的水量。

 

你几个策略交易同一个品种,在没特别需求时,不就是或的关系,谁触发谁就下单。那要是触发1次开仓,后面连续触发4次平仓,这个时候就会把其他几个策略开的仓的持仓平了。

你要是需要谁开的谁处理,需要用全局变量记录,每个策略开的仓位。并把这个全局变量作为平仓条件之一

 


--  作者:zqs0595
--  发布时间:2016/10/27 9:10:04
--  

下面这种写法可以吗,不同的策略,lcb_holding_I的命名不一样,平仓时要用orderNum还是tholding?

 

orderNum:=100;

VARIABLE:lcb_holding_I:=0;

 

//多头仓位平仓
if lcb_holding_I>0 and .....  then begin
    TSELL(1,tholding,mkt);  
    lcb_holding_I:=0;
end

 

//空头仓位平仓
if lcb_holding_I<0 and ..... then begin
    TSELLSHORT(1,tholding,mkt); 

    lcb_holding_I:=0;
end


//开多
if lcb_holding_I=0 and ....  then begin 
    TBUY(1,orderNum,mkt);  

    lcb_holding_I:=1;
end

 

//开空 
if lcb_holding_I=0 and ....  then begin    

    TBUYSHORT(1,orderNum,mkt);

    lcb_holding_I:=-1;
end


--  作者:wenarm
--  发布时间:2016/10/27 10:14:42
--  

不对,我的意思是。你开仓用固定手数。

如果每次开2手,

每开一次,就让全局变量也加一次(+2)。平仓就减一次(-2)。

如果全局变量为0,那就不能在平仓了。这样就能做到谁开的谁平。

注意开空和开多要分别用两个全局变量记录,不能共用一个

[此贴子已经被作者于2016-10-27 10:14:54编辑过]