欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件策略编写求助区 → 超级牛模编写求助,思路如下

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有5446人关注过本帖树形打印复制链接

主题:超级牛模编写求助,思路如下

帅哥哟,离线,有人找我吗?
klc
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:993 积分:1787 威望:0 精华:5 注册:2012/11/28 17:37:20
  发帖心情 Post By:2013/4/25 21:06:13 [显示全部帖子]

但他对不同条件开仓的订单平仓条件也不同,不能混合的。

建议你学习阿火的多策略集成,图表中很简单:

 

分享:各个交易策略的组合(图表化版本):

 

比如,有3个模型A、B、C,均为K线走完模式,且为逐K线模式,想组合在一起。要如何实现呢?

 

方法如下:

第一步,在各个模型的最开头加入记录持仓的变量cc,如以下红色部分:

runmode:0;

cc:=holding;

ma5:=ma(c,5);

ma10:=ma(c,10);

if holding>0 and ma5<ma10 then sell(1,1,thisclose);

if holding<0 and ma5>ma10 then sellshort(1,1,thisclose);

if holding=0 and ma5>ma10 then buy(1,1,thisclose);

if holding=0 and ma5<ma10 then buyshort(1,1,thisclose);

 

第二步,新建一个模型,把A、B、C 三个模型的变量“ CC ”引用过来,并加入蓝色部分的指令代码即可,如下:

cc1:=stkindi(stklabel,'模型A.cc',0,11,0);  //2分钟,多分钟设置为2
cc2:=stkindi(stklabel,'模型B.cc',0,2,0);   //5分钟
cc3:=stkindi(stklabel,'模型C.cc',0,18,0);  //10分钟

cc800988:=3*cc1 + 1*cc2 + 2*cc3;//各个模型的仓位系数。这里表示 A模型下3手,B模型下1手,C模型下2手

order:=cc800988-holding;
if order>0 then begin
 pc:=min(abs(min(holding,0)),order);
 kc:=order-pc;
 sellshort(pc>0,pc,limitr,o);
 buy(kc>0,kc,limitr,o);
end
if order<0 then begin
 pc:=min(max(holding,0),abs(order));
 kc:=abs(order)-pc;
 sell(pc>0,pc,limitr,o);
 buyshort(kc>0,kc,limitr,o); 
end

 

 

注意事项:

1、第二步新建的模型(总交易系统)放到图表上,比如命名为“多策略整合”,其他程序不用放到图表上,金字塔中存在即可

2、图表程序化中选择“间隔”,几秒随便你填,我是设3秒,不要选择走完K线,因为

cc:=holding;这句代码放在最前面,已经表示下一K线开仓,如果再选择走完K线,就变成走完两根K线才开仓了

3、图表周期必须选你所有交易策略中,至少是最小周期的模型,最好是1分钟周期,这样你可以在1分钟图中交易你的1分钟模型、5分钟模型。。。。日线模型,这样可以使你的信号出来后很快交易(但是不知道分笔图然后选走完K线行不行,不过我知道分笔选间隔N秒是不行的,因为N秒后,K线早成为过去,交易系统检查不到信号了,漏单严重)

4、cc:=holding;不要放到最后,否则仓位可能很混乱


版主评定:好评,获得10个金币奖励好评,获得10个金币奖励
(理由:好文章)
 回到顶部