以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 请教3模型组合为1单手模型? (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=69533) |
-- 作者:yanxc -- 发布时间:2014/9/3 0:37:13 -- 请教3模型组合为1单手模型? 现有模型A,B,C。分别运行于3、5、8分钟周期。 如何引用它们的holding持仓量以达到以下目的: 1、当ABC皆为1即做多,则新模型做多buy。 2、当ABC皆为-1即做空,则新模型做空buy short 3、其余时候都全平,持仓为0 请问该如何写?运行于哪个周期? [此贴子已经被作者于2014/9/3 0:37:44编辑过]
|
-- 作者:fantasynew -- 发布时间:2014/9/3 7:33:35 -- 分别设置3个公式,买入卖出改为holdings=1或者=0或者=-1 在策略里引用三个holdings的值,三者相加=3则做多,=-3做空 新策略要运行在1分钟周期,才能保证以更小时间间隔执行三个策略而不漏单 |
-- 作者:qwer123 -- 发布时间:2014/9/3 8:09:16 -- r1:=todaybar-1; //******************************** rr1:=stkindiex(\'if00\',\'tears25.持仓\',0,22,80,0); rr2:=stkindiex(\'if00\',\'tears25.持仓\',0,22,90,0); rr3:=stkindiex(\'if00\',\'qq25.持仓\',0,22,125,0),noaxis; r12:rr1+rr2+rr3,linethick0; //*************第一遍************* if r12=3 and p3<=xdd then
begin
buy(holding<cx,tn,limitr,jgx+hd1+hdd);
end if r12=-3 and p3<=xdk then begin buyshort(abs(holding)<cx,tn,limitr,jgs-hd1-hdk); end //*************第二遍************* if r12=3 and p3<=xdd then
begin
buy(holding<cx,tn,limitr,jgx+hd1+hdd);
end if r12=-3 and p3<=xdk then begin buyshort(abs(holding)<cx,tn,limitr,jgs-hd1-hdk); end //*************第三遍************* if r12=3 and p3<=xdd then
begin
buy(holding<cx,tn,limitr,jgx+hd1+hdd);
end if r12=-3 and p3<=xdk then begin buyshort(abs(holding)<cx,tn,limitr,jgs-hd1-hdk); end //********************************
if abs(r12)<=2 and p3<=xdk then begin sell(holding>0,0,limitr,jgs-hd1-hdk); end if abs(r12)<=2 and p3<=xdd then begin sellshort(holding<0,0,limitr,jgx+hd1+hdk); end //******************************** 交易总数:totaltrade,colorwhite,linethick0; 盈亏:asset-1000000,colorred,linethick1,noaxis; 日盈亏:asset-ref(asset,todaybar),noaxis,colorred,linethick0; 虚拟持仓:holding,colorwhite,linethick0; variable:hc=0; 回撤:hhv(盈亏,30000)-盈亏,linethick0,coloryellow; if 回撤>hc then hc:=回撤; 最大回撤:hc,linethick0,coloryellow; [此贴子已经被作者于2014/9/3 8:10:35编辑过]
|
-- 作者:qwer123 -- 发布时间:2014/9/3 8:16:23 -- 如果是用后台交易,开仓只要写一遍,就可以了。 如果是标准版图表交易,可以用小一点的周期,看看再同一根k线有几个同时下单的可能就用几遍。 一般使用轮询,什么周期都可以。 原程序信号不能闪,如果有闪的问题,可以适当延长扫描时间。
|
-- 作者:qwer123 -- 发布时间:2014/9/3 8:30:37 -- 重新整理一下,前面说的不对,前面说的是净单交易: r1:=todaybar-1; //******************************** rr1:=stkindiex(\'if00\',\'tears25.持仓\',0,22,80,0); rr2:=stkindiex(\'if00\',\'tears25.持仓\',0,22,90,0); rr3:=stkindiex(\'if00\',\'tears25.持仓\',0,22,125,0),noaxis; r12:rr1+rr2+rr3,linethick0; //***************************** if r12=3 then begin buy(holding=0,tn,limitr,c); end if r12=-3 then begin uyshort(abs(holding)=0,tn,limitr,c); end //********************************
if abs(r12)<=2 then begin sell(holding=0,0,limitr,c); end if abs(r12)<=2 then begin sellshort(holding=0,0,limitr,c); end //******************************** 交易总数:totaltrade,colorwhite,linethick0; 盈亏:asset-1000000,colorred,linethick1,noaxis; 日盈亏:asset-ref(asset,todaybar),noaxis,colorred,linethick0; 虚拟持仓:holding,colorwhite,linethick0; variable:hc=0; 回撤:hhv(盈亏,30000)-盈亏,linethick0,coloryellow; if 回撤>hc then hc:=回撤; 最大回撤:hc,linethick0,coloryellow; 什么周期都可以,不要太大(8分,10分都可以)。 要使用轮询,原程序的信号不能闪,否则会来回交易,可以适当延长扫描时间来缓解“信号闪”的问题。 也可以在任意周期上使用k线走完模式交易,注意这样做图表结果和实盘是有差异的。如果图表k线周期大于你原程序周期则一致。
|
-- 作者:qwer123 -- 发布时间:2014/9/3 8:50:54 -- 重新修改一下: r1:=todaybar-1; tn:=1; //******************************** rr1:=stkindiex(\'if00\',\'tears25.持仓\',0,22,80,0); rr2:=stkindiex(\'if00\',\'tears25.持仓\',0,22,90,0); rr3:=stkindiex(\'if00\',\'tears25.持仓\',0,22,125,0),noaxis; r12:rr1+rr2+rr3,linethick0; //***************************** if r12=3 then begin buy(holding=0,tn,limitr,c); end if r12=-3 then begin buyshort(abs(holding)=0,tn,limitr,c); end //******************************** if abs(r12)<=2 then begin sell(holding>0,0,limitr,c); end if abs(r12)<=2 then begin sellshort(holding<0,0,limitr,c); end //******************************** 交易总数:totaltrade,colorwhite,linethick0; 盈亏:asset-1000000,colorred,linethick1,noaxis; 日盈亏:asset-ref(asset,todaybar),noaxis,colorred,linethick0; 虚拟持仓:holding,colorwhite,linethick0; variable:hc=0; 回撤:hhv(盈亏,30000)-盈亏,linethick0,coloryellow; if 回撤>hc then hc:=回撤; 最大回撤:hc,linethick0,coloryellow; 如果不是一根k线走完,图表结果和实盘结果有差异,实盘会比图表好。
|