您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 资本运营 > 程序化交易策略的进阶设计
1程序化交易策略的进阶设计蔡云华深圳开拓者科技有限公司内容安排经典交易策略的设计思路和实现组合测试和策略评估套利对冲策略的设计2选择什么样的交易策略?顺势还是逆势?长线还是短线?日内还是隔夜?投机还是对冲?策略简单测试顺势策略单均线、四周规则、布林线、MACD。。。逆势策略RSI、KDJ、假突破系统。。。。结果:顺势系统基本都是盈利的系统震荡指标逆势策略很难盈利震荡指标顺势策略也是盈利的系统RSI逆势系统RSI逆势系统收益曲线RSI顺势系统RSI顺势系统收益曲线交易策略设计的几大环节进场条件出场条件出场后的再进场条件其他过滤条件头寸管理9例1:单均线包络线交易规则:以简单移动平均线判断趋势,收盘价在均线之上为多头趋势,在均线之下为空头趋势;为过滤均线假突破,在均线基础上加减一定百分比形成围绕均线的上下两条通道;价格盘中突破上轨,进场做多或平空反多;价格盘中突破下轨,进场做空或平多反空;10包络线的设计方法一:均线百分比MA=AverageFC(Close,Length);UpperBand=MA[1]*(1+FilterPercent*0.01);LowerBand=MA[1]*(1-FilterPercent*0.01);方法二:均线加ATR的一定比例ATRValue=AvgTrueRange(ATRLength);MA=AverageFC(Close,Length);UpperBand=MA[1]+ATRValue[1]*EnvNumATR;LowerBand=MA[1]–ATRValue[1]*EnvNumATR;11出场条件设计使用了反向突破止损和跟踪止盈相结合的出场方式;跟踪止盈采用的是盈利峰值价回落ATR的一定比例后触发止损。多头出场部分代码如下:止损价的设置StopLine=LowerBand;if(StopLineHigherAfterEntry-ATRValue[1]*TrailStopNumATR)StopLine=HigherAfterEntry-ATRValue[1]*TrailStopNumATR;止损的触发If(Low=StopLine){MyPrice=StopLine;If(OpenMyPrice)MyPrice=Open;Sell(0,MyPrice);bLongStoped=true;}12再进场条件设计再进场必须突破跟踪止盈出场前的高点或低点If(bLongStopedandMarketPosition==0andHigh=UpperBandandHighHigherAfterEntry){MyPrice=Max(UpperBand,HigherAfterEntry);If(OpenMyPrice)MyPrice=Open;Buy(Lots,MyPrice);bLongStoped=false;Return;}13例2:四周规则突破交易规则:价格突破20周期高点(日线即四周),做多;价格突破20周期低点,做空;14进场部分代码计算四周高低价HiBand=highest(high[1],Length);LoBand=lowest(low[1],Length);突破四周高点进场做多(以多头模型为例)If(MarketPosition==0&&high=HiBand){MyPrice=Max(HiBand,Open);buy(lots,MyPrice);return;}15出场部分设计采用更小周期的反向突破作为保护性止损;同时采用跟踪止盈的策略。……StopLine=LoBand2;If(StopLineHigherAfterEntry-ATRValue[1]*TrailStopNumATR)StopLine=HigherAfterEntry-ATRValue[1]*TrailStopNumATR;If(Low=StopLine){MyPrice=Min(StopLine,Open);Sell(0,MyPrice);}16例3:双均线交叉系统交易规则:如果短期均线上穿长期均线,做多,如原来持有空单,则先平空单,再建多仓如果短期均线下穿长期均线,做空,如原来持有多单,则先平多单,再建空单17出场部分设计我们使用三种类型的止损设置:进场后设置初始止损;有一定盈利后设置保本止损;盈利增大后使用追踪止盈(峰值价回落ATR倍数);为此,设置三个止损参数:NumericInitialStop(20);//初始止损(千分之N)NumericBreakEvenStop(30);//保本止损(千分之N)NumericTrailingStop(50);//追踪止损(千分之N)三种止损的代码可以放在一起处理,取最有利的价格作为止损(赢)价。多头止损部分的代码//初始止损StopLine=EntryPrice*(1-InitialStop/1000);//达到保本止损条件,将止损位上移到保本的价位If(HigherAfterEntry=EntryPrice*(1+BreakEvenStop/1000))StopLine=EntryPrice;//追踪止损的价位超过保本止损价,止损价随盈利峰值价的上升同步提高If(StopLineHigherAfterEntry*(1-TrailingStop/1000))StopLine=HigherAfterEntry*(1-TrailingStop/1000);Commentary(止损价:+Text(StopLine));//止损触发If(Low=StopLine){MyPrice=StopLine;If(OpenMyPrice)MyPrice=Open;Sell(Lots,MyPrice);bLongStoped=True;//止损后设置标志Commentary(LongPositionStopedat+text(MyPrice));}进出场的更多过滤条件技术指标K线形态成交量或持仓量背离走势(举例)头寸调整问题的提出:一个正期望的系统能否通过亏损增加头寸的头寸调整方式改进收益曲线?测试代码(1)测试代码(2)测试代码(3)测试结果组合测试单品种多策略组合多品种单策略组合TB组合测试组合测试的头寸分配组合报告等市值测试策略评估指标收益风险比调整收益风险比最大资金回撤根据评估指标计算最优头寸对冲交易的优势防范系统风险提高波动率,增加交易机会通过算法交易,提高流动性降低博弈强度套利对冲策略的设计价差回归型的对冲策略价差趋势跟踪策略价差K线及技术指标运用经典的趋势跟踪策略套利对冲策略的测试用Data0,Data1…的Buy/Sell指令价差K线公式(1)价差K线公式(2)价差的四周规则系统(1)价差的四周规则系统(2)胶和锌对冲铜和白糖对冲39谢谢大家!
本文标题:程序化交易策略的进阶设计
链接地址:https://www.777doc.com/doc-830500 .html