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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件交易策略发布专区 → [原创]最近总结了一套“多策略多账户后台下单技术”、以及“多策略图表下单技术”

   

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


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

主题:[原创]最近总结了一套“多策略多账户后台下单技术”、以及“多策略图表下单技术”

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


加好友 发短信 原leevolvo
等级:版主 帖子:2160 积分:10563 威望:0 精华:11 注册:2010/11/3 11:21:19
[原创]最近总结了一套“多策略多账户后台下单技术”、以及“多策略图表下单技术”  发帖心情 Post By:2011/11/2 22:29:06 [显示全部帖子]

本人经过长期实践,总结了一套“多策略多账户后台下单技术”

无需知道你的模型源码,便可让你从繁重的后台代码编写中解脱出来

助您早日实现全自动化交易

 

如果你有多个策略,想交易多个账户(单策略单账户自然也行) 

例如你有A、B、C、D 四个模型,想交易2个账户 888888 和 999999

只要把这4个模型的虚拟持仓用stkindi这个函数引入、也把交易的账号输入到模块里,然后添加预警,启动即可

 

具有的功能说明:

1,不同模型的信号互相对冲。(也可以不对冲,不同个性需求,个性定制)

2,下单时,可以限价、对手价、挂价、市价等方式下单,撤单时间和追单价格也可个性选择

3,图表和后台共用同一模型,加载在图表上,可视化后台的虚拟持仓数量,轻松监控后台下单

4,具有持仓纠正功能。每间隔一定时间对比一下 虚拟持仓和账户实际持仓,一旦发现不对等立即自动纠正。

有需要的定制塔友可联系QQ 41851298

[此贴子已经被作者于2012-2-16 12:25:04编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
阿火
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 原leevolvo
等级:版主 帖子:2160 积分:10563 威望:0 精华:11 注册:2010/11/3 11:21:19
  发帖心情 Post By:2011/11/4 9:31:35 [显示全部帖子]

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

 

比如,有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

[此贴子已经被作者于2011-11-4 9:32:37编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
阿火
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 原leevolvo
等级:版主 帖子:2160 积分:10563 威望:0 精华:11 注册:2010/11/3 11:21:19
  发帖心情 Post By:2011/11/4 14:59:04 [显示全部帖子]

A 开多 3手  B开空5手 ,那么就是开空2手啦。另外3手互相对冲

做得到。

[此贴子已经被作者于2011-11-4 14:59:14编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
阿火
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 原leevolvo
等级:版主 帖子:2160 积分:10563 威望:0 精华:11 注册:2010/11/3 11:21:19
  发帖心情 Post By:2011/11/27 7:40:40 [显示全部帖子]

运行模式 逐K还是序列?

 回到顶部
帅哥哟,离线,有人找我吗?
阿火
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 原leevolvo
等级:版主 帖子:2160 积分:10563 威望:0 精华:11 注册:2010/11/3 11:21:19
  发帖心情 Post By:2011/11/28 8:15:00 [显示全部帖子]

自己琢磨一下吧

应该是你没有正确使用stkindi函数


 回到顶部
帅哥哟,离线,有人找我吗?
阿火
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 原leevolvo
等级:版主 帖子:2160 积分:10563 威望:0 精华:11 注册:2010/11/3 11:21:19
  发帖心情 Post By:2012/2/12 21:53:54 [显示全部帖子]

一样适用啊


 回到顶部
帅哥哟,离线,有人找我吗?
阿火
  7楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 原leevolvo
等级:版主 帖子:2160 积分:10563 威望:0 精华:11 注册:2010/11/3 11:21:19
  发帖心情 Post By:2012/4/17 10:44:01 [显示全部帖子]

以下是引用xian_0_9在2012-2-15 8:39:35的发言:

是要用http://www.weistock.com/bbs/dispbbs.asp?boardid=10&Id=9439里的

七、把各种模型组合成一个模型的方法,适用于所有模型,即便是“即时下单模型”

cc800988:=3*cc1 + 1*cc2 + 2*cc3;

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

这2个组合在一起才能实现3个模型要组合。一个是突破20个周期新高触发开多。一个是10日均线和20日均线金叉收盘价开仓。还一个是个是突破开盘价+20*mindiff开多??

我自己研究了几天没成啊?希望火哥能指点一下?非常感谢!

 

例子说得很清楚了,还不会?

另外,此种方法用来做测试。图表交易不可行。因为图表在同一个K线同样的指令只下一次

但是后台下单可以。在每个buy sell 指令后紧跟tbuy tsell 指令


 回到顶部
帅哥哟,离线,有人找我吗?
阿火
  8楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 原leevolvo
等级:版主 帖子:2160 积分:10563 威望:0 精华:11 注册:2010/11/3 11:21:19
  发帖心情 Post By:2012/4/17 10:46:15 [显示全部帖子]

以下是引用wangshijun78在2012-4-17 10:33:46的发言:
 我用这个代码做了个后台预警,用模拟账号测试,发现有点小问题,请问该如何解决?
前面代码都一样,就是把开平仓函数改成后台的,持仓改成tholding2,预警采用固定15秒间隔
order:=cc-tholding2;
DEBUGOUT('当前持仓为%.0f',tholding2 );
DEBUGOUT('应该持仓为%.0f',cc );
DEBUGOUT('仓差%.0f',order );
DEBUGfile('d:\1.txt','当前持仓为%.0f',tholding2 );
DEBUGfile('d:\1.txt','应该持仓为%.0f',cc );
DEBUGfile('d:\1.txt','仓差%.0f',order );
if order>0 then begin
 pc:=min(abs(min(tholding2,0)),order);
 kc:=order-pc;
 //sellshort(pc>0,pc,limitr,O);
 tsellshort(pc>0,pc,LMT,C,0,'8000**','IF00'),ORDERQUEUE;
 //buy(kc>0,kc,limitr,O);
 tbuy(kc>0,kc,LMT,C,0,'8000**','IF00'),ORDERQUEUE;
end
if order<0 then begin
 pc:=min(max(tholding2,0),abs(order));
 kc:=abs(order)-pc;
 //sell(pc>0,pc,limitr,O);
 tsell(pc>0,pc,LMT,C,0,'8000**','IF00'),ORDERQUEUE;
 //buyshort(kc>0,kc,limitr,O);
 tbuyshort(kc>0,kc,LMT,C,0,'8000**','IF00'),ORDERQUEUE;
end

1.通过预警监控可以发现有时候order不为0,但是没有实际下单
2.经常发现会重复下单,然后马上平仓,也就是原来持仓是2,有时候会再下2手,然后下一周期平掉2手,不必要的开平仓,这样手续费激增,
我猜测可能是取holding2出错,不知有何办法可以解决?

 

把buy sell 都注释掉?

要用,先理解了再用。不要复制黏贴就想用

你能详细说出原理了,再考虑加入自己的东东吧


 回到顶部
帅哥哟,离线,有人找我吗?
阿火
  9楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 原leevolvo
等级:版主 帖子:2160 积分:10563 威望:0 精华:11 注册:2010/11/3 11:21:19
  发帖心情 Post By:2012/4/17 11:11:25 [显示全部帖子]

是的,有其他用途,好好理解理解

深刻理解了,再添加金自己的思路


 回到顶部