欢迎您光临博庭社区!

 找回密码
 立即注册
查看: 12068|回复: 28

金魔方智能交易攻略(9)-均线与趋势线交叉加仓位管理 [复制链接]

Rank: 8Rank: 8

发表于 2012-9-28 22:10:37 |显示全部楼层

金魔方智能交易攻略(9-均线与趋势线交叉加仓位管理

作者:仁心慧能




本节讲解如何应用公共(自编)函数,如何在公式中调用手工绘制的趋势线产生交易信号,如何根据前次交易结果调整下单量,如何应用新的文本绘制函数,请跟随本ID一探究竟。



首先在公式树的【公共函数】下创建名为“显示绩效”的公式:

  1. input:
  2.   NumericSeries MA1,   //序列参数
  3.   Numeric 下单量,      //数值参数
  4.   NumericRef 盈利因子, //数值型引用参量,装载计算结果
  5.   NumericRef 盈亏比;
  6. 均线: MA1,Precision0;
  7. 单量: 下单量,Precision0, LineThick0;
  8. 胜率%: PercentProfit, Precision0, LineThick0;

  9. 盈利因子:= -GrossProfit/GrossLoss;  //总盈利/总亏损
  10. 盈亏比:= -(GrossProfit/NumWinTrades)/(GrossLoss/NumLosTrades);
  11. return (InitialCapital+NetProfit);  //函数返回
复制代码


编译通过后,再创建以下智能交易公式:

  1. //-------金魔方智能交易公式--------------
  2. //例9_1 均线与趋势线交叉加仓位管理策略
  3. {策略:
  4. 1.均线与手工画的趋势线交叉作为交易信号
  5. 2.上次交易为'止盈'平仓或首次开仓,下单量为初始单量
  6. 3.上次交易为非'止盈'平仓的,下单量按加仓步长渐次增加
  7. 4.下单量增大到超过最大单量则回复为初始单量
  8. }
  9. input:
  10.   TL标识号(99), //手工绘制趋势线的标识号,【设置画线】标题栏可见
  11.   止盈价差(600),
  12.   止损价差(200),
  13.   初始单量(1),
  14.   加仓步长(1),    //下单量渐次增加步长
  15.   最大单量(10),
  16.   转折强度(15);    //波峰波谷前后N周期最高最低
  17. variable: 下单量(1),等量次数(1);
  18.   
  19. MA1 := MA(C,2);
  20. TLV := TL_GetValue(TL标识号, Date, Time);  //趋势线数值序列
  21. bEnterLong := CrossOver(MA1,TLV);  //均线上叉趋势线平空开多
  22. bEnterShort:= CrossUnder(MA1,TLV); //均线下叉趋势线平多开空
  23.   
  24. if bEnterLong or bEnterShort then begin
  25.   //上次平仓标识为'止盈'或没有交易过
  26.   if ExitName(1) = '止盈' OR ExitName(1) = '' then
  27.     下单量 = 初始单量;
  28.   else begin //渐次增加下单量
  29.     if 下单量=初始单量 or 等量次数 = 2 then begin
  30.       下单量 = 下单量 + 加仓步长;
  31.        等量次数 = 1;
  32.     end else
  33.       等量次数 = 等量次数 +1;
  34.     if (下单量 > 最大单量) then 下单量 = 初始单量;
  35.   end
  36. end
  37.   
  38. if bEnterLong then begin
  39.   Buy('',下单量);
  40.   ID1:=Text_New(Date,Time, L, 314, true); //绘制314号图标-右上箭头
  41.   Text_SetColor(ID1,ColorMagenta);
  42. end
  43. if bEnterShort then begin
  44.   SellShort('',下单量);
  45.   ID1:=Text_New(Date,Time, H, 316, true); //绘制316号图标-右下箭头
  46.   Text_SetColor(ID1,ColorCyan);
  47.   Text_SetStyle(ID1, 0, 1);  //设置下对齐
  48. end

  49. if MarketPosition = 1 then begin //多头持仓
  50.   Sell('',DEFAULT,EntryPrice+止盈价差,0,OT_LIMIT,OB_NEXTBAR,'止盈');
  51.   Sell('',DEFAULT,EntryPrice-止损价差,0,OT_STOP,OB_NEXTBAR,'止损');
  52. end
  53. if MarketPosition = -1 then begin //空头持仓
  54.   BuyToCover('',DEFAULT,EntryPrice-止盈价差,0,OT_LIMIT,OB_NEXTBAR,'止盈');
  55.   BuyToCover('',DEFAULT,EntryPrice+止损价差,0,OT_STOP,OB_NEXTBAR,'止损');
  56. end
  57.   
  58. //显示波峰点
  59. pos := SwingHighBar(1,High,转折强度,转折强度+1);//波峰位置
  60. SWV := SwingHigh(1,High,转折强度,转折强度+1);   //波峰数值
  61. if pos = 转折强度 then begin
  62.   ID1 :=Text_New(Date[pos],Time[pos], SWV, SWV);
  63.   Text_SetColor(ID1,ColorMagenta);
  64.   Text_SetStyle(ID1, 2, 1);      //设置水平中对齐、垂直下对齐
  65. end
  66. //显示波谷点
  67. pos := SwingLowBar(1,Low,转折强度,转折强度+1); //波谷位置
  68. SWV := SwingLow(1,Low,转折强度,转折强度+1);    //波谷数值
  69. if pos = 转折强度 then begin
  70.   ID1 :=Text_New(Date[pos],Time[pos], SWV, SWV);
  71.   Text_SetColor(ID1,ColorBlue);
  72.   Text_SetStyle(ID1, 2, 0);  //设置水平中对齐、垂直上对齐
  73. end
  74.   
  75. //调用“显示绩效”公共函数显示绩效,并计算返回余额、盈利因子、盈亏比
  76. variable:       //公式中可以有多组input、variable声明
  77.   PF(0),PR(0);  //引用型变量,装回计算结果
  78. 余额:显示绩效(MA1,下单量,PF,PR),Precision0,OwnerScale;
  79. 盈亏比:PR, Precision1, LineThick0;
  80. 盈利因子:PF, Precision1, LineThick0;
  81. {
  82. 注解:
  83. 1.ExitName(1)取得上一回持仓的最后一次平仓的标识名
  84. 2.Text_*系列函数请参见【字典】中【新画线函数】类里的说明
  85. 3.“显示绩效”为用户自编的公共函数
  86. }
复制代码


如下图所示,在主图上手工绘制一条直线(图中粗紫色线),选中它,右键菜单【设置画线】,标题栏上#后面的数字即为该画线的标识号,把公式的外部参数“TL标识号”的数值99改为这个数字,然后把公式拖放到图上,即可让公式跑出交易结果。



右键菜单【查看测评报告】-【交易明细】,因公式中等单量次数上限为2,所以下单量从1->2->2->3->,遇到止盈,再从1->2...,如图所示:


新的文本绘制函数Text_New 不仅可以在图上标出文本、数字,还能绘制680种图标,图标与数字标号对照表请见下图:


上节的点数图算法可以改写成公共函数,这样,其它公式就可以直接调用而不用写繁杂的语句,可以把“转向价”作为函数的return输出,用引用型参数NumericRef定义“突破买价”、“突破卖价”,这样可以同时输出这三个计算结果,请各位自行试验。


我们已经介绍了一些经典的策略和交易技巧及其金魔方公式实现,在研发交易策略时,如何评估策略的好坏、评估能否用于真实交易呢?

且听下回分解!

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

使用道具 举报

Rank: 8Rank: 8

发表于 2012-9-28 22:55:32 |显示全部楼层
sf

使用道具 举报

Rank: 4

勇士奖

发表于 2012-9-29 03:10:42 |显示全部楼层
本帖最后由 liujam 于 2012-9-29 03:36 编辑

升级后看到新增的公共函数目录了,辛苦了,看到一排攻略范例,应该都是出自您之手,非常好!

使用道具 举报

Rank: 3Rank: 3

发表于 2012-9-29 10:50:25 |显示全部楼层
有两个问题:
第1,我无法在我新更新的版本上找到公共函数,无法做一个自定义函数。
第2,编译时出错:

@_编译失败,错误:16 提示:0 历时:0毫秒
x 错误 行:40 列:8 函数:TEXT_NEW 没有定义
x 错误 行:40 列:6 表达式没有返回值,不能用于赋值
x 错误 行:41 列:3 函数:TEXT_SETCOLOR 没有定义
x 错误 行:45 列:8 TEXT_NEW不是函数
x 错误 行:45 列:6 表达式没有返回值,不能用于赋值
x 错误 行:46 列:3 TEXT_SETCOLOR不是函数
x 错误 行:47 列:3 函数:TEXT_SETSTYLE 没有定义
x 错误 行:63 列:9 TEXT_NEW不是函数
x 错误 行:63 列:7 表达式没有返回值,不能用于赋值
x 错误 行:64 列:3 TEXT_SETCOLOR不是函数
x 错误 行:65 列:3 TEXT_SETSTYLE不是函数
x 错误 行:71 列:9 TEXT_NEW不是函数
x 错误 行:71 列:7 表达式没有返回值,不能用于赋值
可能是这些新函数还不能用或是我升级的版本有问题

使用道具 举报

Rank: 8Rank: 8

发表于 2012-9-29 10:52:59 |显示全部楼层
重新下载安装包 覆盖安装试试

使用道具 举报

Rank: 3Rank: 3

发表于 2012-9-29 10:54:29 |显示全部楼层
呵呵,楼主是不是用最新的版本编的呀。。。

使用道具 举报

Rank: 8Rank: 8

发表于 2012-9-29 10:57:10 |显示全部楼层
楼主用的最新版本编的,也就是0928的安装包。

使用道具 举报

Rank: 6Rank: 6

激情奖

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

使用道具 举报

Rank: 6Rank: 6

勇士奖

发表于 2012-10-11 14:34:47 |显示全部楼层
下回分解什么时候来呢,等好久了,求学习

使用道具 举报

Rank: 3Rank: 3

发表于 2012-10-21 23:10:54 |显示全部楼层
努力学习

使用道具 举报

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

bottom

Archiver|http://www.patiosoft.com

GMT+8, 2017-12-17 02:45 , Processed in 0.099112 second(s), 11 queries .

花生网 Copyrigh©2012

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

回顶部