欢迎您光临博庭社区!

 找回密码
 立即注册
楼主: 仁心慧能

金魔方智能交易攻略(4)-分批开平仓 [复制链接]

Rank: 8Rank: 8

发表于 2012-9-15 23:01:45 |显示全部楼层
本帖最后由 仁心慧能 于 2012-9-16 08:10 编辑

金魔方智能交易攻略(4-分批开平仓

作者:仁心慧能


分批开平仓不仅要求可以根据不同的信号连续进场,然后对分次开出的仓位分别控制,另外,用不同的止盈目标位分批出场也是常用的技巧,我们来看一个实例,金魔方公式如下:


  1. //-------金魔方智能交易公式--------------
  2. //例4_1 区间突破分批策略
  3. {策略:
  4. 1.允许连续买入2次
  5. 2.突破20周期高点买入1次,该仓位命名为'Buy1'
  6. 3.突破50周期高点买入1次,该仓位命名为'Buy2'
  7. 4.跌破10周期低点卖出'Buy1'的仓位
  8. 5.跌破25周期低点卖出'Buy2'的仓位
  9. }
  10. Buy1: HHV(H,20),Shift1;
  11. Buy2: HHV(H,50),Shift1;
  12. Sell1: LLV(L,10),Shift1;
  13. Sell2: LLV(L,25),Shift1;
  14. AllowSameEntries(2);
  15. //if EntryName <> 'Buy1' then
  16.   Buy('',1,Buy1+MinDiff,-1,OT_STOP,OB_NEXTBAR,'Buy1');
  17. //if EntryName <> 'Buy2' then
  18.   Buy('',1,Buy2+MinDiff,-1,OT_STOP,OB_NEXTBAR,'Buy2');
  19. Sell('',1,Sell1,-1,OT_STOP,OB_NEXTBAR,'Sell1') from 'Buy1';
  20. Sell('',1,Sell2,-1,OT_STOP,OB_NEXTBAR,'Sell2') from 'Buy2';
  21. {
  22. 注解:
  23. 1.MinDiff 为价格最小变动单位。
  24. 2.用EntryName函数识别已有哪个信号的仓位。
  25.   但因为即使允许连续同向开仓,也不允许连续开相同开仓名的仓,
  26.   所以,EntryName判断已有哪种信号持仓的语句可以不用。
  27. 3.平仓指令函数后用from指定平掉哪个信号的仓位。
  28. }
复制代码

有图有真相:


右键菜单【查看测评报告】的交易明细:



可见,Sell1Buy1Sell2Buy2分别一一配对,这样我们就可分别控制不同的仓位。


再看一个早盘区间突破分批平仓日内交易策略,公式如下:


  1. //-------金魔方智能交易公式--------------
  2. //例4_2 早盘区间突破分批平仓策略
  3. //用于5分钟周期
  4. {策略:
  5. 1.根据上午10点前的价格波动范围画出最高价水平线
  6. 2.下午14点前,价格突破区间高点买入2口
  7. 3.跌破买入价以下20点清仓止损
  8. 4.涨至买入价以上30点止盈其中1口
  9. 5.当天若有亏损交易,不再开新仓
  10. 6.日内交易,收市前清仓
  11. }
  12. input:
  13.   早盘终点时间(1000), //10:00
  14.   开仓结束时间(1400); //14:00
  15. variable:
  16.   ID(-1);  //趋势线标识号,赋初值-1
  17. if Date <> Date[1] then begin  //新交易日开始
  18.   RngH := High;
  19.   ID := TL_new(Date,Time,RngH,Date,Time,RngH);  //新建画线
  20. end

  21. if Time < 早盘终点时间*100 then begin //上午10:00前的最高价作为区间高点
  22.   RngH := Max(High, RngH);
  23. end

  24. //随时间调整区间高点水平线
  25. TL_SetBegin(ID, TL_GetBeginDate(ID), TL_GetBeginTime(ID), RngH);
  26. TL_SetEnd(ID, Date, Time, RngH);

  27. bTradeTime := Time >= 0955*100 And Time < 开仓结束时间*100; //交易时间
  28. if bTradeTime And DailyLosers(Date,0)<1 then //
  29.   Buy('', 2, RngH, -1, OT_STOP, OB_NEXTBAR, '买入');   
  30. if MarketPosition = 1 then  begin  //若持多头仓
  31.   Sell('', DEFAULT, EntryPrice - 20, -1, OT_STOP, OB_NEXTBAR, '止损');   
  32.   if CurrentContracts = 2 then
  33.     Sell('', 1, EntryPrice + 30, 0, OT_LIMIT, OB_NEXTBAR, '止盈');   
  34. end
  35. SetExitOnClose; //收市前清仓
  36. {
  37. 注解:
  38. 1.画线函数TL_New、TL_SetBegin、TL_SetEnd用于画出区间通道
  39. 2.5分钟周期,9:55 的下一个周期开始交易
  40.   金魔方以K线开始时间作为K线的时间
  41. 3.DailyLosers(Date,0)取得当日亏损交易次数
  42. 4.EntryPrice为开仓价,对多头开仓而言就是买入价
  43. 5.CurrentContracts取得当前持仓数量
  44. }
复制代码

有图有真相:



右键菜单【查看测评报告】的交易明细:



可见,开仓2口的单被拆成2笔,1笔止盈,1笔日内交易平仓。

从这个公式,我们可以看出它逐根计算的机制:在每天开盘的那根K线创建1条新的趋势线,然后随着下1根K线的不断增加,调整趋势线的起点和终点。


以上介绍了仓位控制的方法,金魔方还有哪些风险控制的技巧呢?

且听下回分解!




附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

使用道具 举报

Rank: 2

发表于 2012-9-27 17:48:31 |显示全部楼层

使用道具 举报

Rank: 6Rank: 6

激情奖

发表于 2012-10-1 14:23:16 |显示全部楼层
不i错,辛苦了!!
实盘->理念->技巧->量化->策略->自动交易系统->ctp_api

使用道具 举报

Rank: 4

发表于 2012-12-17 21:18:28 |显示全部楼层
学习了!不错

使用道具 举报

Rank: 3Rank: 3

发表于 2013-7-8 18:56:21 |显示全部楼层
学习了!!!!!!!

使用道具 举报

Rank: 3Rank: 3

发表于 2014-3-13 09:46:03 |显示全部楼层
功能很强大

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

bottom

Archiver|http://www.patiosoft.com

GMT+8, 2018-9-20 22:06 , Processed in 1.093750 second(s), 11 queries .

花生网 Copyrigh©2012

和讯信息科技有限公司 ALL Rights Reserved 版权所有 复制必究

回顶部