查看均线与趋势线交叉加仓位管理的源代码
←
均线与趋势线交叉加仓位管理
跳转到:
导航
,
搜索
根据下列原因,你没有权限编辑本页:
您刚才请求的操作只有这个用户组中的用户才能使用:
用户
您可以查看并复制此页面的源代码:
智能交易攻略(9)-均线与趋势线交叉加仓位管理 作者:仁心慧能 本节讲解如何应用公共(自编)函数,如何在公式中调用手工绘制的趋势线产生交易信号, 如何根据前次交易结果调整下单量,如何应用新的文本绘制函数,请跟随本ID一探究竟。 首先在公式树的【公共函数】下创建名为“显示绩效”的公式: input: NumericSeries MA1, //序列参数 Numeric 下单量, //数值参数 NumericRef 盈利因子, //数值型引用参量,装载计算结果 NumericRef 盈亏比; 均线: MA1,Precision0; 单量: 下单量,Precision0, LineThick0; 胜率%: PercentProfit, Precision0, LineThick0; 盈利因子:= -GrossProfit/GrossLoss; //总盈利/总亏损 盈亏比:= -(GrossProfit/NumWinTrades)/(GrossLoss/NumLosTrades); return (InitialCapital+NetProfit); //函数返回 编译通过后,再创建以下智能交易公式: //-------智能交易公式-------------- //例9_1 均线与趋势线交叉加仓位管理策略 {策略: 1.均线与手工画的趋势线交叉作为交易信号 2.上次交易为'止盈'平仓或首次开仓,下单量为初始单量 3.上次交易为非'止盈'平仓的,下单量按加仓步长渐次增加 4.下单量增大到超过最大单量则回复为初始单量 } input: TL标识号(99), //手工绘制趋势线的标识号,【设置画线】标题栏可见 止盈价差(600), 止损价差(200), 初始单量(1), 加仓步长(1), //下单量渐次增加步长 最大单量(10), 转折强度(15); //波峰波谷前后N周期最高最低 variable: 下单量(1),等量次数(1); MA1 := MA(C,2); TLV := TL_GetValue(TL标识号, Date, Time); //趋势线数值序列 bEnterLong := CrossOver(MA1,TLV); //均线上叉趋势线平空开多 bEnterShort:= CrossUnder(MA1,TLV); //均线下叉趋势线平多开空 if bEnterLong or bEnterShort then begin //上次平仓标识为'止盈'或没有交易过 if ExitName(1) = '止盈' OR ExitName(1) = '' then 下单量 = 初始单量; else begin //渐次增加下单量 if 下单量=初始单量 or 等量次数 = 2 then begin 下单量 = 下单量 + 加仓步长; 等量次数 = 1; end else 等量次数 = 等量次数 +1; if (下单量 > 最大单量) then 下单量 = 初始单量; end end if bEnterLong then begin Buy('',下单量); ID1:=Text_New(Date,Time, L, 314, true); //绘制314号图标-右上箭头 Text_SetColor(ID1,ColorMagenta); end if bEnterShort then begin SellShort('',下单量); ID1:=Text_New(Date,Time, H, 316, true); //绘制316号图标-右下箭头 Text_SetColor(ID1,ColorCyan); Text_SetStyle(ID1, 0, 1); //设置下对齐 end if MarketPosition = 1 then begin //多头持仓 Sell('',DEFAULT,EntryPrice+止盈价差,0,OT_LIMIT,OB_NEXTBAR,'止盈'); Sell('',DEFAULT,EntryPrice-止损价差,0,OT_STOP,OB_NEXTBAR,'止损'); end if MarketPosition = -1 then begin //空头持仓 BuyToCover('',DEFAULT,EntryPrice-止盈价差,0,OT_LIMIT,OB_NEXTBAR,'止盈'); BuyToCover('',DEFAULT,EntryPrice+止损价差,0,OT_STOP,OB_NEXTBAR,'止损'); end //显示波峰点 pos := SwingHighBar(1,High,转折强度,转折强度+1);//波峰位置 SWV := SwingHigh(1,High,转折强度,转折强度+1); //波峰数值 if pos = 转折强度 then begin ID1 :=Text_New(Date[pos],Time[pos], SWV, SWV); Text_SetColor(ID1,ColorMagenta); Text_SetStyle(ID1, 2, 1); //设置水平中对齐、垂直下对齐 end //显示波谷点 pos := SwingLowBar(1,Low,转折强度,转折强度+1); //波谷位置 SWV := SwingLow(1,Low,转折强度,转折强度+1); //波谷数值 if pos = 转折强度 then begin ID1 :=Text_New(Date[pos],Time[pos], SWV, SWV); Text_SetColor(ID1,ColorBlue); Text_SetStyle(ID1, 2, 0); //设置水平中对齐、垂直上对齐 end //调用“显示绩效”公共函数显示绩效,并计算返回余额、盈利因子、盈亏比 variable: //公式中可以有多组input、variable声明 PF(0),PR(0); //引用型变量,装回计算结果 余额:显示绩效(MA1,下单量,PF,PR),Precision0,OwnerScale; 盈亏比:PR, Precision1, LineThick0; 盈利因子:PF, Precision1, LineThick0; { 注解: 1.ExitName(1)取得上一回持仓的最后一次平仓的标识名 2.Text_*系列函数请参见【字典】中【新画线函数】类里的说明 3.“显示绩效”为用户自编的公共函数 } 如下图所示,在主图上手工绘制一条直线(图中粗紫色线),选中它,右键菜单【设置画线】, 标题栏上#后面的数字即为该画线的标识号,把公式的外部参数“TL标识号”的数值99改为这个数字, 然后把公式拖放到图上,即可让公式跑出交易结果。 [[Image:Qsxjycwgl1.gif]] 右键菜单【查看测评报告】-【交易明细】,因公式中等单量次数上限为2, 所以下单量从1->2->2->3->,遇到止盈,再从1->2...,如图所示: [[Image:Qsxjycwgl2.jpg]] 新的文本绘制函数Text_New 不仅可以在图上标出文本、数字,还能绘制680种图标, 图标与数字标号对照表请见下图: [[Image:Qsxjycwgl3.png]] 上节的点数图算法可以改写成公共函数,这样,其它公式就可以直接调用而不用写繁杂的语句, 可以把“转向价”作为函数的return输出,用引用型参数NumericRef定义“突破买价”、“突破卖价”, 这样可以同时输出这三个计算结果,请各位自行试验。 我们已经介绍了一些经典的策略和交易技巧及其公式实现,在研发交易策略时, 如何评估策略的好坏、评估能否用于真实交易呢? 且听下回分解!
返回到
均线与趋势线交叉加仓位管理
。
个人工具
内存:18913KB
3.135.220.239
该IP地址的讨论
登录
名字空间
页面
讨论
变换
查看
阅读
查看源代码
查看历史
操作
搜索
导航
首页
社区专页
新闻动态
最近更改
随机页面
金魔方论坛
下载金魔方
帮助
工具箱
链入页面
链出更改
特殊页面