仁心慧能 发表于 2012-9-17 00:28:45

金魔方智能交易攻略(6)-自动趋势线交易策略

本帖最后由 仁心慧能 于 2012-9-18 12:51 编辑

金魔方智能交易攻略(6)-自动趋势线交易策略作者:仁心慧能
之前介绍过画水平线,金魔方还可以通过波峰、波谷点函数自动画出趋势线并据此交易,让我们看看这个公式://-------金魔方智能交易公式--------------
//例6_1 自动趋势线交易加分级锁定盈利策略
//用于5分钟周期
{策略:
1.在当天5分钟周期走势上自动画出下降趋势线
2.突破下降趋势线买入
3.当最大浮盈达到10点后,把盈利锁定在买入价之上1点
4.当最大浮盈达到20点后,把盈利锁定在买入价之上8点
5.当最大浮盈达到30点后,把盈利锁定在买入价之上10点
6.买入价之上50点为止盈位,买入价之下10点为止损位
}
input: 波峰强度(3);
const: 点数量(5);
array: 波峰点日期[点数量](0),波峰点时间[点数量](0),波峰点数值[点数量](0);
variable: 下降线ID(-1), 起点下标(0);

if Date <> Date then begin //每个交易日内重新找趋势线
//  print('=============', Date, '=============');
  下降线ID := -1;
  for pos=0 to 点数量 do begin   //清空数组
    波峰点日期:=0; 波峰点时间:=0; 波峰点数值:=0;
  end
end

位置 : SwingHighBar(1,High,波峰强度,波峰强度+1),linethick0;

if 位置 = 波峰强度 then begin  //出现新的波峰点
//该波峰点是当天的且没被记录过
if Date[位置] = Date And Time[位置] <> 波峰点时间 then begin
//  print('时间:', Time/100, '  波峰强度: ', 波峰强度);

  for pos = 点数量-1 DownTo 0 do begin
    波峰点日期 := 波峰点日期;
    波峰点时间 := 波峰点时间;
    波峰点数值 := 波峰点数值;
  end  
  //将新波峰点存入数组下标0的位置
  波峰点日期 := Date[波峰强度];
  波峰点时间 := Time[波峰强度];
  波峰点数值 := High[波峰强度];
//  print('时间:', 波峰点时间/100,'  数值:', 波峰点数值);

  if MarketPosition < 1 then begin //如果未持多仓,更新趋势线
    //找趋势线起点,起点应比最近的新波峰点高,才能形成下降趋势线
    for pos = 1 to 点数量 do begin
      if 波峰点数值 > 波峰点数值 then  begin//有更高的
        起点下标 := pos;
        pos := 点数量+1;   //For语句中再加1,然后跳出循环
   end
    end  
    if pos <> 点数量+1  then begin   //表示找到有更高的波峰点
//      print('TL_SetBegin:', 波峰点时间[起点下标]/100,'  数值:', 波峰点数值[起点下标]);
//      print('TL_SetEnd  :', 波峰点时间/100,'  数值:', 波峰点数值);
//   if 下降线ID = -1 then
        下降线ID := TL_New(Date,Time,High,Date,Time,High);
      TL_SetBegin(下降线ID, 波峰点日期[起点下标],波峰点时间[起点下标],波峰点数值[起点下标]);
      TL_SetEnd(下降线ID, 波峰点日期,波峰点时间,波峰点数值);
    end
  end
end  
end
else begin
  TL_SetEnd(下降线ID,Date,Time,TL_GetValue(下降线ID,Date,Time));
end
TLValue:=TL_GetValue(下降线ID,Date,Time);
bEnterLong := CrossOver(C, TLValue);
if Time < 143000 And 下降线ID > -1 And bEnterLong then Buy;

if MarketPosition>0 then begin  //持有多头仓位
  Sell('', DEFAULT, EntryPrice+50, 0, OT_LIMIT, OB_NEXTBAR, '止盈');
  Sell('', DEFAULT, EntryPrice-10, -1, OT_STOP, OB_NEXTBAR, '止损');
  if MaxContractProfit>10*BigPointValue then
    Sell('', DEFAULT, EntryPrice+1, -1, OT_STOP, OB_NEXTBAR, '锁盈1');
  if MaxContractProfit>20*BigPointValue then
    Sell('', DEFAULT, EntryPrice+8, -1, OT_STOP, OB_NEXTBAR, '锁盈2');
  if MaxContractProfit>30*BigPointValue then
    Sell('', DEFAULT, EntryPrice+10, -1, OT_STOP, OB_NEXTBAR, '锁盈3');
end
SetExitOnClose;
{
注解:
1.const:点数量(5) 声明'点数量'为常量并赋值为5
2.array: 波峰点日期[点数量](0) 声明'波峰点日期'为一维数组并赋初值为0
3.找出最近5个波峰点,波峰点的H大于前后各N个周期的H,这个N即为波峰强度
4.新出现一个波峰点后,就向前找到一个比它更高的波峰点作为起点,连接这两个点形成下降趋势线
5.周期收盘价上叉下降趋势线时买入
6.MarketPosition函数返回当前持仓方向
7.MaxContractProfit为以单口计算的最大浮动盈利,BigPointValue为1整数点的单口价值。
8.print函数输出到[公式日志],可用于调试公式
}
有图有真相:

可以看到,9月5日做了2笔趋势线交易,第1笔“锁盈1”平仓,第2笔日内交易平仓。

这个公式比较复杂,本ID在编写时用print函数在一些重要位置输出(到【公式日志】,可在【量化交易】主菜单下打开)、观察数据进行调试,调试通过后再把print语句注释掉。

各位可以试着把本公式中的print语句前的注释去掉,运行公式,看看【公式日志】,有助于理解公式逐根执行的逻辑,提升调试技巧。



公式逐根执行及其与逐行执行的不同解释如下:

逐行执行:对整个K线序列逐行地执行语句
逐根执行:对K线序列逐根地执行整个公式

假设当前有100根K线,公式有2行计算指标值1和指标值2的语句
MA1:MA(C,5);
MA2:MA(C,10);

逐行执行:
  1.执行第1行语句,计算这100根K线的MA1
  2.执行第2行语句,计算这100根K线的MA2

逐根执行:
  1.对第1根K线,执行整个公式,计算第1根K线的MA1和MA2
  2.对第2根K线,执行整个公式,计算第2根K线的MA1和MA2
...
  100.对第100根K线,执行整个公式,计算第100根K线的MA1和MA2

继续,当有新行情生成第101根K线时

逐行执行:
  3.执行第1行语句,计算全部101根K线的MA1
  4.执行第2行语句,计算全部101根K线的MA2
逐根执行:
  101.对第101根K线,执行整个公式,计算第101根K线的MA1和MA2

智能交易公式默认为逐根执行,为了能够对交易进行各种控制
技术指标类公式默认为逐行执行,为了兼容国内的主流公式
逐根执行是更灵活的执行方式,它能实现逐行执行做不到的功能

对技术指标类公式,可以用编译开关#RunMode设置执行模式
#RunMode RUN_BY_BAR  //逐根执行
#RunMode RUN_BY_SERIES  //逐行执行



只要控制好风险,加上人工干预,网格交易也是一种不错的方法,特别是在外汇市场,金魔方公式如何实现呢?
且听下回分解!


zdjie312 发表于 2012-9-17 13:14:40

感谢楼主,学习一下,谢谢分享

博弈男爵 发表于 2012-9-18 08:58:44

谢谢精彩分享,学习。。。。。。。。。

gaowenyi 发表于 2012-9-18 21:10:52

感谢楼主,谢谢分享:handshake

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

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

312gd 发表于 2012-10-1 14:25:07

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

天真小子 发表于 2012-10-20 13:28:35

感谢楼主,谢谢分享

wmxgyx 发表于 2012-12-17 21:19:45

学习了!不错

zammail 发表于 2013-1-30 21:31:13

谢谢分享

312gd 发表于 2013-4-16 08:16:52

进来 再次 学习一下

页: [1] 2 3 4 5
查看完整版本: 金魔方智能交易攻略(6)-自动趋势线交易策略