等级: 免费版
- 注册:
- 2022-4-2
- 曾用名:
|

楼主 |
发表于 2023-11-3 21:38
|
显示全部楼层
请问老师,后台多策略我是这么实现的;请问有什么可以优化的空间吗ah:stkindiex('','阴阳鱼atr.cc',0,1,0,2000); //引用1分钟周期上的策略a的仓位。
bh:stkindiex('','阴阳鱼tr.cc',0,1,0,2000); //引用1分钟周期上的策略b的仓位。
日内持仓:ifelse(inblock('大品种'),ifelse((ah+bh)>1,round((ah+bh)/2),0),ah+bh);
////***********************************************//其他策略持仓引用//***********************************************
aah:=stkindiex('','短箭.cc',0,21,3,7000); //引用3分钟周期上的策略a的仓位。
bbh:=stkindiex('','震荡.cc',0,3,0,5000); //引用15分钟周期上的策略b的仓位。
cch:=stkindiex('','长箭.cc',0,18,0,6000); //引用10分钟周期上的策略b的仓位。
ddh:=stkindiex('','中箭.cc',0,2,0,6000);//引用5分钟周期上的策略b的仓位。
短箭:ifelse(aah=aah,aah,0);
震荡:ifelse(bbh=bbh,bbh,0);
长箭:ifelse(cch=cch,cch,0);
中箭:ifelse(ddh=ddh,ddh,0);
////***********************************************//策略仓位计算//***********************************************
交易自选:inblock('交易自选');
多策略持仓:ifelse(交易自选,短箭+震荡+长箭+中箭,0);
理论持仓:日内持仓+多策略持仓; //理论持仓
////***********************************************//交易信号画图//***********************************************
drawicon(理论持仓>ref(理论持仓,1),h,1);
drawicon(理论持仓<ref(理论持仓,1),l,2);
////***********************************************//账户仓位计算//***********************************************
zh:='19521578243';
可用买持:tbuyholdingex(zh,'',1);
可用卖持:tsellholdingex(zh,'',1);
多单总持仓:tbuyholdingex(zh,'',2);
空单总持仓:tsellholdingex(zh,'',2);
平空未成交:tsellholdingex(zh,'',3);
平多未成交:tbuyholdingex(zh,'',3);
开多未成交:tisremainex(1,zh,stklabel); //未成交开多单
开空未成交:tisremainex(3,zh,stklabel); //未成交开空单
账户总仓:多单总持仓-空单总持仓+开多未成交-开空未成交;
////***********************************************//交易模块//***********************************************
//理论持仓与实际持仓的判断
if 理论持仓-账户总仓>0 and 账户总仓>=0 then
tbuy(1,理论持仓-账户总仓,mkt,0,0,zh);
if 理论持仓-账户总仓>0 and 账户总仓<0 then begin
tsellshort(理论持仓<0,理论持仓-账户总仓,mkt,0,0,zh);
if 理论持仓>=0 then begin
tsellshort(1,账户总仓,mkt,0,0,zh);
tbuy(理论持仓>0,理论持仓,mkt,0,0,zh);
end
end
if 理论持仓-账户总仓<0 and 账户总仓<=0 then
tbuyshort(1,abs(理论持仓-账户总仓),mkt,0,0,zh);
if 理论持仓-账户总仓<0 and 账户总仓>0 then begin
tsell(理论持仓>0,abs(理论持仓-账户总仓),mkt,0,0,zh);
if 理论持仓<=0 then begin
tsell(1,账户总仓,mkt,0,0,zh);
tbuyshort(理论持仓<0,abs(理论持仓),mkt,0,0,zh);
end
end
////***********************************************//调试模块//***********************************************
//if islastbar then
//debugfile('d:\日内策略\调试日志.txt',stklabel&
//' 理论持仓='&numtostr(理论持仓,0)&
//' 实际持仓='&numtostr(账户总仓,0)&
//' 多单总持仓='&numtostr(多单总持仓,0)&
//' 空单总持仓='&numtostr(空单总持仓,0)&
//' 可用买持='&numtostr(可用买持,0)&
//' 可用卖持='&numtostr(可用卖持,0)&
//' 开多未成交='&numtostr(开多未成交,0)&
//' 开空未成交='&numtostr(开空未成交,0)&
//' 平空未成交='&numtostr(平空未成交,0)&
//' 平多未成交='&numtostr(平多未成交,0),1);
|
|