仁心慧能 发表于 2012-9-22 11:58:34

金魔方智能交易攻略(8)-点数图突破交易策略

金魔方智能交易攻略(8)-点数图突破交易策略作者:仁心慧能


//-------金魔方智能交易公式--------------
//例8_1 点数图突破交易策略
{策略:
1.价格升破点数图最近几列的最高点时平空开多
2.价格跌破点数图最近几列的最低点时平多开空
***点数图的算法和画法请问度娘***
}
input:
  格值(30),转向格(5),突破列数(3),偏移量(1);
const: 最大列数(10); //突破列数应小于此数
array: 极点值[最大列数](0); //上涨列为最高格值,下跌列为最低格值
variable: 转向价(0),涨跌方向(0),
  突破买价(99999),突破卖价(0);//初始化
  
if BarPos <= 1 then begin
  转向价 := Round(Close);
  涨跌方向 := 0;  //初始化为无方向
  突破买价 := High + 偏移量;
  突破卖价 := Low - 偏移量;
end

else begin
  if 涨跌方向 = 0 then begin   //尚未确定方向
    if High >= 转向价 + 格值 * 转向格 then begin
      极点值 := 转向价 + 格值 * 转向格;
      涨跌方向 := 1;  //上涨
    end
    else if Low <= 转向价 - 格值 * 转向格 then begin
      极点值 := 转向价 - 格值 * 转向格;
      涨跌方向 := -1;  //下跌
    end;
  end

  else if 涨跌方向 = 1 then begin  //当前列为上涨
    if High >= 极点值 + 格值 then begin //增加向上的X格子
      while High >= 极点值 + 格值 do begin
        极点值 := 极点值 + 格值;
        转向价 := 极点值 - 格值 * 转向格;  //抬高转向价
      end;
    end
    else if Low <= 转向价 then begin  //上涨转为下跌
      for n = 0 to 最大列数-1 do begin  //数组移位
        极点值[最大列数-n] := 极点值[最大列数-n-1];
      end;
   //以下使点数图新增下跌列
      极点值 := 转向价;
      涨跌方向 := -1;  //转为下跌
      转向价 := 极点值 + 格值 * 转向格;
      while Low <= 极点值 - 格值 do begin
        极点值 := 极点值 - 格值;
        转向价 := 极点值 + 格值 * 转向格;
      end;
    end;
  end  //当前列为上涨

  else begin //当前列为下跌
    if Low <= 极点值 - 格值 then begin //增加向下的O格子
      while Low <= 极点值 - 格值 do begin
        极点值 := 极点值 - 格值;
        转向价 := 极点值 + 格值 * 转向格;
      end;
    end
    else if High >= 转向价 then begin  //下跌转为上涨
      for n = 0 to 最大列数-1 do begin
        极点值[最大列数-n] := 极点值[最大列数-n-1];
      end;
      极点值 := 转向价;
      涨跌方向 := 1;
      转向价 := 极点值 - 格值 * 转向格;
      while High >= 极点值 + 格值 do begin
        极点值 := 极点值 + 格值;
        转向价 := 极点值 - 格值 * 转向格;
      end;
    end;
  end; //当前列为下跌   //根据最近若干列的极点值计算突破价位
  value1:= 0;
  value2:= 99999;
  for n = 1 to 突破列数 do begin
    if 极点值 > value1 then value1 := 极点值;
    if 极点值 < value2 then value2 := 极点值;
  end;
  突破买价 := value1 + 偏移量;
  突破卖价 := value2 - 偏移量;
end;  
  
Buy('', DEFAULT, 突破买价, -1, OT_STOP);
SellShort('', DEFAULT, 突破卖价, -1, OT_STOP);  
   
买线: 突破买价, Precision0;   
卖线: 突破卖价, Precision0;
盈利因子: -GrossProfit/GrossLoss, Precision2, LineThick0;
盈亏比: -(GrossProfit/NumWinTrades)/(GrossLoss/NumLosTrades), Precision2, LineThick0;
胜率%: PercentProfit, Precision2, LineThick0;
净利: NetProfit, Precision2,LineThick0;
当前连亏次数: NumConsecLosers, Precision0, LineThick0;
{注解:
1.用variable定义变量可增加可读性,在本例其实可以省略
2.Precision指定输出数值的小数位数
3.盈亏比=平均盈利/平均亏损,GrossLoss返回值为负数
}
如图所示:



点数图算法的代码比较复杂,如果每个涉及到点数图的公式都包含那么多代码会比较难看,我们是否可以把它做成公共代码供其它公式调用呢?用传统的调用指标公式的方法不太好使,而且一次调用只能返回一个结果,本例的点数图就需要返回“突破买价”和“突破卖价”两个结果,用户能否自编函数,并且让这个函数能同时返回多个结果呢?
敬请关注本攻略!


fifa20081119 发表于 2012-9-27 17:50:06

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

312gd 发表于 2012-10-1 14:31:02

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

rypan 发表于 2012-10-16 14:30:50

没看懂

如果可以,请LZ提供流程图或示意图。谢谢。

wmxgyx 发表于 2012-12-17 21:20:24

学习了!不错

bt11 发表于 2013-1-8 15:34:11

rypan 发表于 2012-10-16 14:30 static/image/common/back.gif
没看懂

如果可以,请LZ提供流程图或示意图。谢谢。

如果对金语言或编程不太熟悉,建议先不要看上面代码,可以搜索下点数图的原理,一搜一大把。

然后在理解了点数图的原理后,再看上面的代码,就很容易理解了 。

orator 发表于 2013-5-19 13:49:32

下载了最新测试版,没看到金魔方有点数(OX)图,希望能加上。OX图属于不定周期,用了通达信的OX图,觉得不错,可以把MA,EXP,RSI,KD,VOL直接加在主图上,一目了然。
如下图,OX主图显示加指标
http://www.hs633.com/forum.php?mod=viewthread&tid=8297&extra=page%3D1
这点比老飞狐好,老飞狐需要另开一个页面,指标添加也只有一个简单的MA。
不过通达信的OX源代码看不到,不知道价格上涨或下跌多少就开始转向,没办法通过修改公式来实现自己的设定, 而且周期拉长拉短时OX就变化,所以在确定真假突破时比较麻烦。
飞狐虽然可以修改K线根数和价格,转向点数,但周期不够长,没办法看到全貌。
希望金魔方能把2者的优点结合在一起,并支持开放源代码,那就完美了。
最后建议在画图工具里添加 45°线。

orator 发表于 2013-5-19 13:50:06

本帖最后由 orator 于 2013-5-19 13:51 编辑

楼主策略不错,请继续 {:1_1:}希望金魔方的OX图能给大家一个惊喜。

逍遥壶中仙 发表于 2013-6-27 17:12:12

orator 发表于 2013-5-19 13:50 static/image/common/back.gif
楼主策略不错,请继续 希望金魔方的OX图能给大家一个惊喜。

这个支持哈,希望能出个点数图

ljl2004 发表于 2013-9-15 09:20:52

好东西啊,{:1_1:}
页: [1] 2
查看完整版本: 金魔方智能交易攻略(8)-点数图突破交易策略