以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  金字塔能不能把3个模型股指的多、空持仓相抵后再下单  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=75536)

--  作者:tsycd
--  发布时间:2015/2/10 14:20:46
--  金字塔能不能把3个模型股指的多、空持仓相抵后再下单
老师好

国内期货交易中,比如股指,我用3个模型同时在一个框架下跟踪主力合约,金字塔能不能把3个模型股指的多、空持仓相抵后再下单,而不是分别多空互持?

谢谢

--  作者:百湛必胜客
--  发布时间:2015/2/10 14:28:11
--  
这个我有办法,我做过同类的策略
--  作者:FexTel
--  发布时间:2015/2/10 14:37:11
--  

同一品种和周期?那你直接使用STKINDI引用2个策略的HOLDING ,然后想减实现下单呗


--  作者:tsycd
--  发布时间:2015/2/10 14:54:19
--  
同一品种,但是不同周期

具体程序怎么写?

谢谢

--  作者:百湛必胜客
--  发布时间:2015/2/10 15:01:25
--  
检查各策略,如果之前持有反向仓,则当前策略要开另一个方向仓,则当做平反向仓的指令发出,如果之前没有或者有同向单子,则不予理会照开
--  作者:qwer123
--  发布时间:2015/2/10 15:32:09
--  
//股指期货自动交易程序(净单交易)
//编制
//日期:

r1:=barslast(date<>ref(date,1));
//********************************
rr1:=stkindiex(\'if00\',\'qq25.持仓\',0,22,65,400);
rr2:=stkindiex(\'if00\',\'qq25.持仓\',0,22,80,400);
rr3:=stkindiex(\'if00\',\'qq25.持仓\',0,22,85,400);
rr4:=stkindiex(\'if00\',\'qq25.持仓\',0,22,90,400);
rr5:=stkindiex(\'if00\',\'qq25.持仓\',0,22,115,400);
rr6:=stkindiex(\'if00\',\'qq25.持仓\',0,22,125,400);
rr7:=stkindiex(\'if00\',\'qq25.持仓\',0,22,185,400);

r12:=rr1+rr2+rr3+rr4+rr5+rr6+rr7;

//***************第一遍***************
if holding=0 and r12>0 then buy(1,r12,limitr,c);
if holding=0 and r12<0 then buyshort(1,abs(r12),limitr,c);

if holding>0 and r12>0 and holding>r12 then sell(1,holding-r12,limitr,c);
if holding>0 and r12>0 and holding<r12 then buy(1,r12-holding,limitr,c);
if holding>0 and r12<0 then
begin
sell(1,holding,limitr,c);
buyshort(1,abs(r12),limitr,c);
end
if holding<0 and r12<0 and holding>r12 then buyshort(1,holding-r12,limitr,c);
if holding<0 and r12<0 and holding<r12 then sellshort(1,r12-holding,limitr,c);
if holding<0 and r12>0 then
begin
sellshort(1,holding,limitr,c);
buy(1,r12,limitr,c);
end 
if r12=0 and holding>0 then sell(holding>0,holding,limitr,c);
if r12=0 and holding<0 then sellshort(holding<0,abs(holding),limitr,c);

//***************第2遍***************
if holding=0 and r12>0 then buy(1,r12,limitr,c);
if holding=0 and r12<0 then buyshort(1,abs(r12),limitr,c);

if holding>0 and r12>0 and holding>r12 then sell(1,holding-r12,limitr,c);
if holding>0 and r12>0 and holding<r12 then buy(1,r12-holding,limitr,c);
if holding>0 and r12<0 then
begin
sell(1,holding,limitr,c);
buyshort(1,abs(r12),limitr,c);
end
if holding<0 and r12<0 and holding>r12 then buyshort(1,holding-r12,limitr,c);
if holding<0 and r12<0 and holding<r12 then sellshort(1,r12-holding,limitr,c);
if holding<0 and r12>0 then
begin
sellshort(1,holding,limitr,c);
buy(1,r12,limitr,c);
end 
if r12=0 and holding>0 then sell(holding>0,holding,limitr,c);
if r12=0 and holding<0 then sellshort(holding<0,abs(holding),limitr,c);
//***************第3遍***************
if holding=0 and r12>0 then buy(1,r12,limitr,c);
if holding=0 and r12<0 then buyshort(1,abs(r12),limitr,c);

if holding>0 and r12>0 and holding>r12 then sell(1,holding-r12,limitr,c);
if holding>0 and r12>0 and holding<r12 then buy(1,r12-holding,limitr,c);
if holding>0 and r12<0 then
begin
sell(1,holding,limitr,c);
buyshort(1,abs(r12),limitr,c);
end
if holding<0 and r12<0 and holding>r12 then buyshort(1,holding-r12,limitr,c);
if holding<0 and r12<0 and holding<r12 then sellshort(1,r12-holding,limitr,c);
if holding<0 and r12>0 then
begin
sellshort(1,holding,limitr,c);
buy(1,r12,limitr,c);
end 
if r12=0 and holding>0 then sell(holding>0,holding,limitr,c);
if r12=0 and holding<0 then sellshort(holding<0,abs(holding),limitr,c);
//********************************
盈亏:asset-1000000,colorred,linethick1,noaxis;
日盈亏:asset-ref(asset,todaybar),noaxis,colorred,linethick0;
持仓:holding,linethick0;


注意:1.信号不要闪,否则会来回交易;
        2.最好是用专业版tbuy,tsell.....;
        3.如果是标准版引用了3个程序的holding,最好是执行3遍。
[此贴子已经被作者于2015/2/10 15:33:25编辑过]

--  作者:tsycd
--  发布时间:2015/2/10 16:13:52
--  
非常感谢!