分批开平仓

来自tradeStar帮助系统
2013年7月20日 (六) 23:28Coogle (讨论 | 贡献)的版本

(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转到: 导航, 搜索

智能交易攻略(4)-分批开平仓

作者:仁心慧能


分批开平仓不仅要求可以根据不同的信号连续进场,然后对分次开出的仓位分别控制,

另外,用不同的止盈目标位分批出场也是常用的技巧,我们来看一个实例,公式如下:

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

有图有真相:

Fpkpc1.gif


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


Fpkpc2.jpg


可见,Sell1与Buy1、Sell2与Buy2分别一一配对,这样我们就可分别控制不同的仓位。

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


   //-------智能交易公式--------------
   //例4_2 早盘区间突破分批平仓策略
   //用于5分钟周期
   {策略:
   1.根据上午10点前的价格波动范围画出最高价水平线
   2.下午14点前,价格突破区间高点买入2口
   3.跌破买入价以下20点清仓止损
   4.涨至买入价以上30点止盈其中1口
   5.当天若有亏损交易,不再开新仓
   6.日内交易,收市前清仓
   }
   input:
     早盘终点时间(1000), //10:00
     开仓结束时间(1400); //14:00
   variable:
     ID(-1);  //趋势线标识号,赋初值-1
   if Date <> Date[1] then begin  //新交易日开始
     RngH := High;
     ID := TL_new(Date,Time,RngH,Date,Time,RngH);  //新建画线
   end
   
   if Time < 早盘终点时间*100 then begin //上午10:00前的最高价作为区间高点
     RngH := Max(High, RngH);
   end
   
   //随时间调整区间高点水平线
   TL_SetBegin(ID, TL_GetBeginDate(ID), TL_GetBeginTime(ID), RngH);
   TL_SetEnd(ID, Date, Time, RngH);
   
   bTradeTime := Time >= 0955*100 And Time < 开仓结束时间*100; //交易时间
   if bTradeTime And DailyLosers(Date,0)<1 then //
     Buy(' ', 2, RngH, -1, OT_STOP, OB_NEXTBAR, '买入');   
   if MarketPosition = 1 then  begin  //若持多头仓
     Sell(' ', DEFAULT, EntryPrice - 20, -1, OT_STOP, OB_NEXTBAR, '止损');   
     if CurrentContracts = 2 then
       Sell(' ', 1, EntryPrice + 30, 0, OT_LIMIT, OB_NEXTBAR, '止盈');   
   end
   SetExitOnClose; //收市前清仓
   {
   注解:
   1.画线函数TL_New、TL_SetBegin、TL_SetEnd用于画出区间通道
   2.5分钟周期,9:55 的下一个周期开始交易
     本软件以K线开始时间作为K线的时间
   3.DailyLosers(Date,0)取得当日亏损交易次数
   4.EntryPrice为开仓价,对多头开仓而言就是买入价
   5.CurrentContracts取得当前持仓数量
   }


有图有真相:

Fpkpc3.gif

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

Fpkpc4.jpg

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


从这个公式,我们可以看出它逐根计算的机制:在每天开盘的那根K线创建1条新的趋势线,

然后随着下1根K线的不断增加,调整趋势线的起点和终点。


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


且听下回分解!

个人工具
名字空间

变换
操作
导航
工具箱