1 / 17

DF 登峰程序化交易平台 经典策略模型

DF 登峰程序化交易平台 经典策略模型. ---------------- 深圳登峰科技有限公司. 交易策略形象化. 我有想法和理论,怎么变成 DF 策略呢?. 交易策略. 一个设计良好的交易系统,必须对投资决策的各个相关环节做出相应明确的规定,同时还必须符合使用者的心理特征、投资对象的统计特征以及投资资金的风险特征。 ------------《 系统交易方法 》. R-Breaker. R-Breaker R-breaker 是一个专门使用在股票指数上的交易系统,该系统为日内交易策略,不持仓过夜。 R-Breaker 特点

wan
Download Presentation

DF 登峰程序化交易平台 经典策略模型

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. DF登峰程序化交易平台经典策略模型 ----------------深圳登峰科技有限公司

  2. 交易策略形象化 我有想法和理论,怎么变成DF策略呢?

  3. 交易策略 一个设计良好的交易系统,必须对投资决策的各个相关环节做出相应明确的规定,同时还必须符合使用者的心理特征、投资对象的统计特征以及投资资金的风险特征。 ------------《系统交易方法》

  4. R-Breaker • R-Breaker R-breaker是一个专门使用在股票指数上的交易系统,该系统为日内交易策略,不持仓过夜。 • R-Breaker特点 结合了趋势和反转两种交易方法,既进行趋势交易也进行反转交易。 观察区

  5. R-Breaker交易原理 R-Breaker交易系统的基本原理: • 当日内最高价超过观察卖出价(Ssetup)后,盘中价格出现回落,且进一步跌破反转卖出价(Senter)构成的支撑线时,采取反转策略,即在该点位(反手、开仓)做空; • 当日内最低价低于观察买入价(Bsetup)后,盘中价格出现反弹,且进一当日内最低价低于观察买入价(Benter)后,盘中价格出现反弹,且进一步超过反转买入价构成的阻力线时,采取反转策略,即在该点位(反手、开仓)做多; • 在空仓的情况下,如果盘中价格超过突破买入价(Bbreak),则采取趋势策略,即在该点位开仓做多;在空仓的情况下,如果盘中价格跌破突破卖出价(Sbreak),则采取趋势策略,即在该点位开仓做空。 • 设定止损条件。当亏损达到设定值后,平仓。 • 设定过滤条件。当前一个交易日波幅过小,该交易日不进行交易。 • 在每日收盘前,对所持合约进行平仓。

  6. DF策略编写---R-Breaker Params Number notbef(90000), notaft(145500),f1(0.35), f2(0.07), f3(0.25); Numberreverse0(1.00), rangemin(0.2), xdiv(3), lots(10), ATRLength(20),TrailStop(3); Vars ArraySeries ssetup(0), bsetup(0),senter(0),benter(0),bbreak(0),sbreak(0),ltoday(0),hitoday(9999); ArraySeriesstartnow(0),div(0), rfilter(0),ATRValue(0),HiAfterEntry,LoAfterEntry; ArraySeriesATRValue(0),HiAfterEntry,LoAfterEntry; Array i_reverse, i_rangemin, StopLine; Bool B0,B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,B11,B12,B13,B14,B15,B16,B17,B18,B19,B20; Begin ssetup=HIGHD(1)+f1*(CLOSED(1)-LOWD(1)); //昨日最高+0.35*(昨天收盘-昨天最低) senter=((1+f2)/2)*(HIGHD(1)+CLOSED(1))-(f2)*LOWD(1); //((1+0.07)/2*(昨最高+昨最低)-0.07*昨天最低 benter=((1+f2)/2)*(LOWD(1)+CLOSED(1))-(f2)*HIGHD(1); //((1+0.07)/2*(昨最高+昨最低)-0.07*昨天最高 bsetup=LOWD(1)-f1*(HIGHD(1)-LOWD(1)); //昨最低-0.35*(昨最高-昨收盘) bbreak=ssetup+f3*(ssetup-bsetup); //(ssetup+0.25*(ssetup-bsetup); sbreak=bsetup-f3*(ssetup-bsetup); //bsetup-0.25*(ssetup-bsetup)

  7. DF策略编写---R-Breaker //当日内最高价超过观察卖出价后,盘中价格出现回落,且进一步跌破反转卖出价构成的支撑线时,采取反转策略,即在该点位(反手、开仓)做空; hitoday=HIGHD(0); ltoday=LOWD(0); B2=hitoday>ssetup; IF(B2) { B3=CROSS(senter,CLOSE) AND B0 AND rfilter AND MARKETPOSITION==1; IF(B3) { SELLSHORT(lots,CLOSE); } } //当日内最低价低于观察买入价后,盘中价格出现反弹,且进一步超过反转买入价构成的阻力线时,采取反转策略,即在该点位(反手、开仓)做多; B4= ltoday<bsetup; IF(B4) { B5=CROSS(CLOSE,benter) AND B0 AND rfilter AND MARKETPOSITION==-1; IF(B5) { BUY(lots,CLOSE); } }

  8. DF策略编写---R-Breaker //在空仓的情况下,如果盘中价格超过突破买入价,则采取趋势策略,即在该点位开仓做多; B6=MARKETPOSITION==0 AND CROSS(CLOSE,bbreak) AND B0 AND rfilter; IF(B6) { BUY(lots,CLOSE); } //在空仓的情况下,如果盘中价格跌破突破卖出价,则采取趋势策略,即在该点位开仓做空。 B7=MARKETPOSITION==0 AND CROSS(sbreak,CLOSE) AND B0 AND rfilter; IF(B7) { SELLSHORT(lots,CLOSE); }

  9. DF策略编写---R-Breaker ATRValue = ma(MAX(ref(close,1),h)-min(ref(close,1),l),ATRLength); B11 = BarssinceEntry > 0 and MarketPosition == 1; B12 = BarsSinceEntry > 0 and MarketPosition == -1; IF(B11) { StopLine = REF(HiAfterEntry,1) - TrailStop *REF(ATRValue,1); B13 = Low <= StopLine; IF(B13) { Sell(0, Min(Open, Stopline)); } } ELSE IF(B12) { StopLine = REF(LoAfterEntry,1) + TrailStop * REF(ATRValue,1); B14 = High >= StopLine; If(B14) { BuyToCover(0, Max(Open,Stopline)); } } //设定止损条件。当亏损达到设定值后,平仓。 B15 = MarketPosition == 1 and BarsSinceEntry == 0; IF(B15) { HiAfterEntry = High; } B16 = MarketPosition == 1 and BarsSinceEntry >= 1; If (B16) { HiAfterEntry = Max(HiAfterEntry,High); } B17 = MarketPosition == -1 and BarsSinceEntry == 0; If (B17) { LoAfterEntry = Low; } B18 = MarketPosition == -1 and BarsSinceEntry >= 1; If (B18) { LoAfterEntry = Min(LoAfterEntry,Low); }

  10. DF策略编写---R-Breaker //指定日内交易 B8=TIME>145500 AND TIME <150000; IF(B8) { B9=MARKETPOSITION==1; IF(B9) { SELL(0,CLOSE); } B10=MARKETPOSITION==-1; IF(B10) { BUYTOCOVER(0,CLOSE); } } End 完 指定日内交易的部分

  11. Dual-Thrust • Dual-Thrust Dual-Thrust是较为常见的日内交易策略之一,以今日开盘价加减一定比例的昨日振幅,确定上下轨。日内突破上轨时平空做多,突破下轨时平多做空。 • Dual-Thrust特点 Dual Thrust在Range的设置上,引入前N日的四个价位,使得一定时期内的Range相对稳定,可以适用于日间的趋势跟踪;

  12. Dual-Thrust交易原理 • Dual-Thrus交易系统的基本原理: • 当日内最高价高于价格上轨后,在该点位开仓做多; • 当日内最低价低于价格下轨后,在该点位开仓做空; • 在持仓的情况下,如果盘中价格突破价格上下轨,则在该点位反手开仓。

  13. DF策略编写--- Dual-Thrust PARAMS NUMBER k1(0.5); NUMBER k2(0.5); NUMBER Mday(1); NUMBER Nday(1); NUMBER lots(1); VARS ARRAY buyrange(0),sellrange(0),buytrig(0),selltrig(0),HH,LL,HC,LC,buypoint,sellpoint; BOOL B1,B2,B3,B4,B5,B6,B7; BEGIN HH=HHV(HIGHD(1),Mday); //M日high的最高价 HC=HHV(CLOSED(1),Mday); //M日close的最高价 LL=LLV(LOWD(1),Mday); //M日low的最低价 LC=LLV(CLOSED(1),Mday); //M日close的最低价 sellrange=max(HH-LC,HC-LL); //计算空头触发区间

  14. DF策略编写--- Dual-Thrust HH=HHV(HIGHD(1),Nday); //N日high的最高价 HC=HHV(CLOSED(1),Nday); //N日close的最高价 LL=LLV(LOWD(1),Nday); //N日low的最低价 LC=LLV(CLOSED(1),Nday); //N日close的最低价 buyrange = max(HH-LC,HC-LL); //计算多头触发区间 buytrig=k1*buyrange; selltrig=k2*sellrange; //计算买入卖出触发条件 buypoint=OPEND(0)+buytrig; sellpoint=OPEND(0)-selltrig; //计算买入卖出价格 OUTPUT("buypoint",buypoint); OUTPUT("sellpoint",sellpoint); //输出买入卖出价格线 当K1<K2时,多头相对容易被触发,当K1>K2时,空头相对容易被触发。 因此,投资者在使用该策略时,一方面可以参考历史数据测试的最优参数。 另一方面,则可以根据自己对后势的判断,或从其他大周期的技术指标入手,阶段性地动态调整K1和K2的值。

  15. DF策略编写--- Dual-Thrust B1=HIGH>=buypoint; B2=LOW<=sellpoint; //空仓状态下,日内价格突破价格区间,开仓 B3=MARKETPOSITION==0 AND B1; IF(B3) { BUY(lots,MAX(open,buypoint)); } B4 = MARKETPOSITION==0 AND B2; IF(B4) { SELLSHORT(lots,Min(open,sellpoint)); } //持仓状态下,日内价格突破价格区间,反手开仓 B4=MARKETPOSITION==-1 AND B1; IF(B4) { BUY(lots,Max(open,buypoint)); | } B5=MARKETPOSITION==1 AND B2; IF(B5) { { SELLSHORT(lots,Min(open,sellpoint)); } END

  16. 策略优化从哪些方面着手? • 有完善的进出场规则 • 添加止盈止损条件 • 改成日内交易系统 • 通过DF参数优化,调试交易策略 • 配合DF风控系统运行策略

  17. Thank you! 深圳登峰科技有限公司

More Related