仁心慧能 发表于 2012-9-15 23:01:45

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

本帖最后由 仁心慧能 于 2012-9-16 08:10 编辑

金魔方智能交易攻略(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指定平掉哪个信号的仓位。
}

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

可见,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 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取得当前持仓数量
}

有图有真相:

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

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

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


以上介绍了仓位控制的方法,金魔方还有哪些风险控制的技巧呢?且听下回分解!


fifa20081119 发表于 2012-9-27 17:48:31

{:1_1:}{:1_1:}{:1_1:}

312gd 发表于 2012-10-1 14:23:16

{:1_1:}不i错,辛苦了!!

wmxgyx 发表于 2012-12-17 21:18:28

学习了!不错

hongxing1110 发表于 2013-7-8 18:56:21

学习了!!!!!!!

csp 发表于 2014-3-13 09:46:03

功能很强大

cyc703 发表于 2016-3-29 22:56:15

好,非常不错了

worep 发表于 2016-4-4 10:25:53

赞扬的就是顶贴

pachen949 发表于 2016-4-5 09:06:59

鼓励一下,帖子非常好

szgamer 发表于 2016-4-29 13:31:41

每天都 new 了一根趋势线? variable 后者覆盖了前者的,貌似这样会泄露?以前的残留了,,
页: [1] 2
查看完整版本: 金魔方智能交易攻略(4)-分批开平仓