自适应动态突破系统怎么回测与徐小明实盘直播开仓价相差很大

自适应动态突破系统(Dynamic&Break&Out&II)tb版
& & Numeric ceilingAmt(60);
& & Numeric floorAmt(20);
& & Numeric
bolBandTrig(2.00);
& & Numeric
lookBackDays(20);&
& & Numeric
todayVolatility(0);
& & Numeric
yesterDayVolatility(0);
& & Numeric
deltaVolatility(0);
& & NumericSeries
buyPoint(0);
& & NumericSeries
sellPoint(0);
& & NumericSeries
longLiqPoint(0);
& & NumericSeries
shortLiqPoint(0);
& & Numeric upBand(0);
& & Numeric dnBand(0);
& & Numeric MidLine(0);
& & Numeric Band(0);
& & todayVolatility =
StandardDev(Close,30,1);
& & yesterDayVolatility =
StandardDev(Close[1],30,1);
& & deltaVolatility =
(todayVolatility - yesterDayVolatility)/todayV
& & lookBackDays = lookBackDays *
(1 + deltaVolatility);
& & lookBackDays =
Round(lookBackDays,0);
& & lookBackDays =
Min(lookBackDays,ceilingAmt);
& & lookBackDays =
Max(lookBackDays,floorAmt);
& & MidLine =
AverageFC(Close,lookBackDays);
& & Band =
StandardDev(Close,lookBackDays,bolBandTrig);
& & upBand = MidLine +
bolBandTrig * B
& & dnBand = MidLine -
bolBandTrig * B
& & buyPoint =
Highest(High[1],lookBackDays);
& & sellPoint =
Lowest(Low[1],lookBackDays);
& & longLiqPoint =
Average(Close[1],lookBackDays);
& & shortLiqPoint =
Average(Close[1],lookBackDays);
if(Close &
&If(CrossOver(high,buyPoint))&
&&&Buy(1,max(
buyPoint, Low ));
Commentary("多头触发价:"+Text(buyPoint));
if(Close & dnBand)
& &If(CrossUnder(Low,sellPoint
&SellShort(1,min( sellPoint , High ));
Commentary("空头触发价:"+Text(sellPoint));
if(MarketPosition == 1)
& &If(CrossUnder(Low,longLiqPoint
&Sell(1,min( longLiqPoint , High ));
Commentary("多头退出:"+Text(longLiqPoint));
if(MarketPosition == -1)
&If(CrossOver(high,shortLiqPoint))&
&&&BuyToCover(1,max(
shortLiqPoint, Low ));
Commentary("多头退出:"+Text(shortLiqPoint));
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
自适应动态突破系统
下载积分:30
内容提示:自适应动态突破系统
文档格式:PDF|
浏览次数:147|
上传日期: 08:23:27|
文档星级:
该用户还上传了这些文档
自适应动态突破系统
官方公共微信[交易开拓者]自适应动态突破系统(Dynamic Break Out I (2
我的图书馆
[交易开拓者]自适应动态突破系统(Dynamic Break Out I (2
[交易开拓者]自适应动态突破系统(Dynamic&Break&Out&I&两仪四象正式版指标:EF:=MAX(HHV(CLOSE,N1)-LLV(CLOSE,N1),ABS(CLOSE-REF(CLOSE,N1)))/SUM(ABS(CLOSE-REF(CLOSE,1)),N1);//HHV(CLOSE,N1)-LLV(CLOSE,N1) 震荡行情中N1日的位移;ABS(CLOSE-REF(CLOSE,N1)):趋势行情中的位移量&MAX()取两种行情中最大的位移量;//SUM(ABS(CLOSE-REF(CLOSE,1)),N1); 不考虑 位移的方向 N1日的位移量的总合;//MAX()取两种行情中最大的位移量;与 总位移量的比值&&衡量 行情运动的能力大小比值越大则对于震荡行情来说 价格震荡力度及震荡区间越大。对于趋势行情则是趋势性很强;&&&EFMA:=EMA(EF,N1);//EF表示价格的运动力度,&&&MER:=INTPART(N1-(EFMA-0.5)*N2);//(EFMA-0.5) 因为 EF 与EFMA 的运动区间是0--1之间 因此 EFMA与 这个区间的中值进行比较,如果为正值则为强市,负值则为弱势//N1-(EFMA-0.5)*N2&&N1表示震荡区间的周期即形成 HHV 与LLV的周期,假如K线运动强度大 就会形成负值&&从N1中减去几天使得&&曲线变化更为敏感&&&LY:=SUM((CLOSE-REF(CLOSE,1)),MER);//MER在这里将根据,价格波动的强弱自动增减 ,数量;//SUM((CLOSE-REF(CLOSE,1))*VOL,MER) 通过统计 MER 个日 周期内 (CLOSE-REF(CLOSE,1))前一日 与当日收盘的价差,计算得出价格将向哪个方向运动&&&LYSX:EMA(LY,N1);&&0;FILLRGN(LYSX&0,0,LYSX,COLORRED);VERTLINE(CROSS(LYSX,0),COLORRED);FILLRGN(LYSX&0,0,LYSX,COLORGREEN);VERTLINE(CROSS(0,LYSX),COLORGREEN);真实版 交易系统:PARAM[N1,1,200,12]PARAM[N2,1,100,12]EF:=MAX(HHV(CLOSE,N1)-LLV(CLOSE,N1),ABS(CLOSE-REF(CLOSE,N1)))/SUM(ABS(CLOSE-REF(CLOSE,1)),N1);&&&EFMA:=EMA(EF,N1);&&&MER:=INTPART(N1-(EFMA-0.5)*N2);&&&LY:=SUM((CLOSE-REF(CLOSE,1)),MER);&&&LYSX:=EMA(LY,N1);&&&LYSX&0,BK;&&&LYSX&0,SP;EF:=MAX(HHV(CLOSE,N1)-LLV(CLOSE,N1),ABS(CLOSE-REF(CLOSE,N1)))/SUM(ABS(CLOSE-REF(CLOSE,1)),N1);//HHV(CLOSE,N1)-LLV(CLOSE,N1) 震荡行情中N1日的位移;ABS(CLOSE-REF(CLOSE,N1)):趋势行情中的位移量&MAX()取两种行情中最大的位移量;//SUM(ABS(CLOSE-REF(CLOSE,1)),N1); 不考虑 位移的方向 N1日的位移量的总合;//MAX()取两种行情中最大的位移量;与 总位移量的比值&&衡量 行情运动的能力大小比值越大则对于震荡行情来说 价格震荡力度及震荡区间越大。对于趋势行情则是趋势性很强;&&&EFMA:=EMA(EF,N1);//EF表示价格的运动力度,&&&MER:=INTPART(N1-(EFMA-0.5)*N2);//(EFMA-0.5) 因为 EF 与EFMA 的运动区间是0--1之间 因此 EFMA与 这个区间的中值进行比较,如果为正值则为强市,负值则为弱势//N1-(EFMA-0.5)*N2&&N1表示震荡区间的周期即形成 HHV 与LLV的周期,假如K线运动强度大 就会形成负值&&从N1中减去几天使得&&曲线变化更为敏感&&&LY:=SUM((CLOSE-REF(CLOSE,1))*VOL,MER);//MER在这里将根据,价格波动的强弱自动增减 ,数量;//真实交易中不能使用&&&*VOL&&否则算出来是错的//SUM((CLOSE-REF(CLOSE,1))*VOL,MER) 通过统计 MER 个日 周期内 (CLOSE-REF(CLOSE,1))前一日 与当日收盘的价差,计算得出价格将向哪个方向运动&&&LYSX:=EMA(LY,N1);&&&//0;&&&//LYSX&0,BPK;&&&//LYSX&0,SPK;STICKLINE(LYSX&0,L-ABS(MA((H-L),10))/2,L-2*ABS(MA((H-L),10))/2,COLORRED,0);//亮红灯,立刻买入STICKLINE(LYSX&0,L-ABS(MA((H-L),10))/2,L-2*ABS(MA((H-L),10))/2,COLORgreen,0);//亮绿灯,立刻卖出TMP:=OPEN-CLOSE;DRAWLINE(TMP&0.00001,HIGH,TMP&0.00001,OPEN,COLORCYAN);DRAWLINE(TMP&0.00001,LOW,TMP&0.00001,CLOSE,COLORCYAN);DRAWLINE(TMP&-0.00001,HIGH,TMP&-0.00001,CLOSE,COLORRED);DRAWLINE(TMP&-0.00001,LOW,TMP&-0.00001,OPEN,COLORRED);DRAWLINE(ABS(TMP)&0.00001,LOW,ABS(TMP)&0.00001,OPEN,COLORWHITE);DRAWLINE(ABS(TMP)&0.00001,HIGH,ABS(TMP)&0.00001,OPEN,COLORWHITE);STICKLINE(TMP&0,OPEN,CLOSE,COLORCYAN,0);STICKLINE(TMP&=0,OPEN,CLOSE,COLORRED,1);天才期市神话:.cn/s/blog_49cai.html虽然有“穷则独善其身,达则兼善天下”的古训,但我仍然喜欢不自量的去教导别人,其实在教导别人的同时,也在教导我自己。2009年度的期货行情,扑朔迷离,最近使得很多期货高手都已无所适从,以宽幅振荡为主基调的格局显露无疑,很多趋势跟踪者的资金曲线出现大幅回撤,甚至报怨、至少是怀疑趋势跟踪是否仍然有效?我想以我去年编写的一个叫做“两仪四象”的趋势跟踪系统为例,来谈一谈我的看法。&这个系统的思想非常简单,源码也只有七行,如果你愿意合并的话,三行也可以。&&&&两仪就是阴、阳,四象的意思就是取自价格的开、高、低、收,实际上也并未全部用到。N天内的价格涨跌合计值是正数,还是负数,决定买卖信号的方向。同时,源码的第一行计算了一个市场效率值,这个值会在0-1之间波动,它的计算得值,代表市场是处于趋势市,还是处于振荡市,其意义在于通过第三行的算法,对N天的取值,实现自动的浮动,以更好的自适应市况。[交易开拓者]自适应动态突破系统(Dynamic Break Out II)tb版今天要報告的系統是”Building winning Trading Systems with TradeStation”裡面的第四個系統。這是屬於適應性(Adaptive)系統之一,所謂的適應性系統的觀念,是指這種系統的參數,會依據市場目前的狀況而自行調整。舉例來說,Donchian Channel(也就是我最愛的Price Channel Breakout)系統,如果參數設的太短(比如說20天的價格突破),那麼在趨勢明確的市場裡就會表現的不錯,因為可以在行情剛啟動的時候就產生訊號進場。而且出場的機制也會跟蹤的比較緊密,不容易讓到手的獲利回吐出去。但是太短的參數在擺盪的市場裡,就會因為進出場訊號出現的太頻繁而導致常常被巴來巴去。所以在擺盪的市場裡,應該要把參數設得比較長一點(比如說60天的價格突破),讓訊號不要產生的那麼頻繁而導致反覆被巴的情形。而Adaptive System(適應性系統)的設計原則,就是讓系統本身的參數會依據目前市場的狀況而自行調整參數本身的值,而不是像一般人常用的固定參數值的方式。而如何讓參數的值會依據市場狀況的變動而自行調整呢?之前報告過的ChoppyMarketIndex可以是一種方式,ADX也可以是一種方式。這兩種指標都可以指出目前市場是屬於趨勢市場或者是擺盪市場。而在這本書裡,用的則是市場的波動度來做為衡量的標準。作者認為在擺盪市場裡,市場的波動會隨著變大,所以應該要隨著增加Donchian Channel系統參數的值(在這裡用look back days),這樣比較不容易產生進反覆的出場訊號。而在趨勢市場裡,市場的走勢趨向明確,而波動度會隨著變小,因此應該要減少參數的值,讓行情一發動的時候就可以進場,也讓出場的點位追蹤的比較緊密。(藍色投機客註:我發現波動度跟市場的趨勢性不一定呈現負相關,但是為了忠於原著,所以繼續用作者的觀點來做說明。畢竟重點是要讓大家知道適應性系統Adaptive System的觀念)在決定了採用什麼指標來代表目前市場的趨勢性之後,我們可以根據 Donchian Channel在過去歷史資料的回測,來看理想的參數值應該訂在什麼樣的上下限之間。而根據作者的一些回測顯示,參數值最低不應該低於20天,最高不應該高過60天。所以我們訂出參數值的上下限應該介於20天到60天之間。接下來我們就來看如何界定市場的波動度。一開始的時候,這個系統會以20天的價格突破來做為基準,之後每天收盤的時候,去計算最近30天收盤價的標準差,然後用這30天收盤價的標準差來定義市場的波動度。我們也可以用ATR來代替標準差。然後每天來比較市場波動度的增減,如果市場波動度變大10%,那麼也就把look back days參數值增加10%。而如果市場波動度減少10%,那麼也就跟著把look back days參數值減少10%。在作者第一代的Dynamic Breakout Strategy裡面,只有單純的使用Adaptive Donchian Channel 來作為進出場的系統,並且很簡單的放了一個USD$1,500的停損機制而已。而在這個第二代的Dynamic Breakout Strategy 裡面,則是加入了Adaptive Bollinger Band的濾網機制。這個Adaptive Bollinger Band計算的長度,就是用上面所計算出來的look back days的長度,也就是當收盤價要在Bollinger Band的Upband 的上方,才可以進行多方的交易。而也只有當收盤價在Bollinger Band的 Downband的下方,才可以進行空方的交易。而停損的機制也由固定USD$1,500的停損,改為Adaptive移動平均線的停損。而這個Adaptive移動平均線的計算長度,也是用上面所計算出來的look back days的長度。所以下面就是這個系統的程式碼:{Dynamic Break Out II by George PruittThis system is an extension of the original Dynamic Break Out system writtenby George for Futures Magazine in 1996. In addition to the channel break outmethodology, DBS II incorporates Bollinger Bands to determine trade entry.}Inputs: ceilingAmt(60),floorAmt(20),bolBandTrig(2.00);Vars: lookBackDays(20),todayVolatility(0),yesterDayVolatility(0),deltaVolatility(0);Vars: buyPoint(0),sellPoint(0),longLiqPoint(0),shortLiqPoint(0),upBand(0),dnBand(0);todayVolatility = StandardDev(Close,30,1);yesterDayVolatility = StandardDev(Close[1],30,1); {See how I offset the function call to get yesterday's value}deltaVolatility = (todayVolatility - yesterDayVolatility)/todayVlookBackDays = lookBackDays * (1 + deltaVolatility);lookBackDays = Round(lookBackDays,0);lookBackDays = MinList(lookBackDays,ceilingAmt); {Keep adaptive engine within bounds}lookBackDays = MaxList(lookBackDays,floorAmt);upBand = BollingerBand(Close,lookBackDays,+bolBandTrig);dnBand = BollingerBand(Close,lookBackDays,-bolBandTrig);buyPoint = Highest(High,lookBackDays);sellPoint = Lowest(Low,lookBackDays);longLiqPoint = Average(Close,lookBackDays);shortLiqPoint = Average(Close,lookBackDays);if(Close & upBand) then Buy("DBS-2 Buy") tomorrow at buyPif(Close & dnBand) then SellShort("DBS-2 Sell") tomorrow at sellPif(MarketPosition = 1) then Sell("LongLiq") tomorrow at longLiqPif(MarketPosition = -1) then BuyToCover("ShortLiq") tomorrow at shortLiqP&&Inputs: ceilingAmt(60),floorAmt(20),bolBandTrig(2.00);Vars: lookBackDays(20),todayVolatility(0),yesterDayVolatility(0),deltaVolatility(0);Vars: buyPoint(0),sellPoint(0),longLiqPoint(0),shortLiqPoint(0),upBand(0),dnBand(0);todayVolatility = StdDev(Close,30);yesterDayVolatility = StdDev(Close[1],30); {See how I offset thefunction call to getyesterday's value}deltaVolatility = (todayVolatility - yesterDayVolatility)/todayVlookBackDays = lookBackDays * (1&+ deltaVolatility);lookBackDays = Round(lookBackDays,0);lookBackDays = MinList(lookBackDays,ceilingAmt); {Keep adaptive engine withinbounds}lookBackDays = MaxList(lookBackDays,floorAmt);upBand = BollingerBand(Close,lookBackDays,+bolBandTrig);dnBand = BollingerBand(Close,lookBackDays,-bolBandTrig);buyPoint = Highest(High,lookBackDays);sellPoint = Lowest(Low,lookBackDays);longLiqPoint = Average(Close,lookBackDays);shortLiqPoint = Average(Close,lookBackDays);if(Close&& upBand) then Buy("DBS-2 Buy") tomorrow at buyPif(Close&& dnBand) then Sell("DBS-2 Sell") tomorrow at sellPif(MarketPosition =&1) then Exitlong("LongLiq") tomorrow at longLiqPif(MarketPosition = -1) then Exitshort ("ShortLiq") tomorrow at shortLiqPoint&&Params&&&&Numeric ceilingAmt(60);&&&&Numeric floorAmt(20);&&&&Numeric bolBandTrig(2.00);Vars&&&&Numeric lookBackDays(20);&&&&&&&&&&&&Numeric todayVolatility(0);&&&&Numeric yesterDayVolatility(0);&&&&Numeric deltaVolatility(0);&&&&NumericSeries buyPoint(0);&&&&NumericSeries sellPoint(0);&&&&NumericSeries longLiqPoint(0);&&&&NumericSeries shortLiqPoint(0);&&&&Numeric upBand(0);&&&&Numeric dnBand(0);&&&&Numeric MidLine(0);&&&&Numeric Band(0);Begin&&&&todayVolatility = StandardDev(Close,30,1);&&&&yesterDayVolatility = StandardDev(Close[1],30,1);&&&&deltaVolatility = (todayVolatility - yesterDayVolatility)/todayV&&&&lookBackDays = lookBackDays * (1 + deltaVolatility);&&&&lookBackDays = Round(lookBackDays,0);&&&&lookBackDays = Min(lookBackDays,ceilingAmt);&&&&lookBackDays = Max(lookBackDays,floorAmt);&&&&MidLine = AverageFC(Close,lookBackDays);&&&&Band = StandardDev(Close,lookBackDays,bolBandTrig);&&&&upBand = MidLine + bolBandTrig * B&&&&dnBand = MidLine - bolBandTrig * B&&&&buyPoint = Highest(High[1],lookBackDays);&&&&sellPoint = Lowest(Low[1],lookBackDays);&&&&longLiqPoint = Average(Close[1],lookBackDays);&&&&shortLiqPoint = Average(Close[1],lookBackDays);if(Close & upBand)&&{&&&If(CrossOver(high,buyPoint))&&&&{&&&&&Buy(1,max( buyPoint, Low ));&&}Commentary("多头触发价:"+Text(buyPoint));}if(Close & dnBand){&&&If(CrossUnder(Low,sellPoint ))&&&{&&&&&&SellShort(1,min( sellPoint , High ));&&&}Commentary("空头触发价:"+Text(sellPoint));}if(MarketPosition == 1){&&&&&If(CrossUnder(Low,longLiqPoint ))&&&{&&&&&&Sell(1,min( longLiqPoint , High ));&&&}Commentary("多头退出:"+Text(longLiqPoint));}if(MarketPosition == -1){&&&If(CrossOver(high,shortLiqPoint))&&&&{&&&&&BuyToCover(1,max( shortLiqPoint, Low ));&&}Commentary("多头退出:"+Text(shortLiqPoint));}End&&WEN HUA&&ZHIBIAO&&ceilingAmt:=60;floorAmt:=20;bolBandTrig:=2;todayVolatility: = STD(CLOSE,30);yesterDayVolatility := STD(REF(CLOSE,1),30);//yesterDayVolatility := REF(STD(CLOSE,30),1);//因为今天没有收完盘所以,采用今天的数据不准:deltaVolatility: = (todayVolatility - yesterDayVolatility)/todayVlookBackDays2: = N * (1 + deltaVolatility);lookBackDays1: = INTPART (lookBackDays2);&&&&&&//取整lookBackDays0: = MIN(lookBackDays1,ceilingAmt);//比天花板低&lookBackDays:=&&MAX(lookBackDays0,floorAmt);//比地板高//lookBackDays:=VALUEWHEN(lookBackDays1&60 AND lookBackDays1&20,lookBackDays1);//在 上下界限之间 就选 这个值,//lookBackDays:=VALUEWHEN (MIN(lookBackDays1,ceilingAmt)= MAX(lookBackDays1,floorAmt),lookBackDays1);MidLine := MA(CLOSE,lookBackDays);Band: = STD(CLOSE,lookBackDays);upBand: = MidLine + bolBandTrig * BdnBand: = MidLine - bolBandTrig * BbuyPoint: =HHV(REF(HIGH,1),lookBackDays);sellPoint: =LLV(REF(LOW,1),lookBackDays);longLiqPoint: = MA(REF(CLOSE,1),lookBackDays);shortLiqPoint: =MA(REF(CLOSE,1),lookBackDays);VERTLINE(CLOSE & upBand AND CROSS(HIGH,buyPoint),COLORRED);VERTLINE(CROSS(longLiqPoint,C),COLORGREEN);TMP:=OPEN-CLOSE;DRAWLINE(TMP&0.00001,HIGH,TMP&0.00001,OPEN,COLORCYAN);DRAWLINE(TMP&0.00001,LOW,TMP&0.00001,CLOSE,COLORCYAN);DRAWLINE(TMP&-0.00001,HIGH,TMP&-0.00001,CLOSE,COLORRED);DRAWLINE(TMP&-0.00001,LOW,TMP&-0.00001,OPEN,COLORRED);DRAWLINE(ABS(TMP)&0.00001,LOW,ABS(TMP)&0.00001,OPEN,COLORWHITE);DRAWLINE(ABS(TMP)&0.00001,HIGH,ABS(TMP)&0.00001,OPEN,COLORWHITE);STICKLINE(TMP&0,OPEN,CLOSE,COLORCYAN,0);STICKLINE(TMP&=0,OPEN,CLOSE,COLORRED,1);&&WEN HUA XITONG;ceilingAmt:=60;floorAmt:=20;bolBandTrig:=2;todayVolatility: = STD(CLOSE,30);yesterDayVolatility := STD(REF(CLOSE,1),30);//yesterDayVolatility := REF(STD(CLOSE,30),1);//因为今天没有收完盘所以,采用今天的数据不准:deltaVolatility: = (todayVolatility - yesterDayVolatility)/todayVlookBackDays2: = N * (1 + deltaVolatility);lookBackDays1: = INTPART (lookBackDays2);&&&&&&//取整lookBackDays0: = MIN(lookBackDays1,ceilingAmt);//比天花板低&lookBackDays:=&&MAX(lookBackDays0,floorAmt);//比地板高//lookBackDays:=VALUEWHEN(lookBackDays1&60 AND lookBackDays1&20,lookBackDays1);//在 上下界限之间 就选 这个值,//lookBackDays:=VALUEWHEN (MIN(lookBackDays1,ceilingAmt)= MAX(lookBackDays1,floorAmt),lookBackDays1);MidLine := MA(CLOSE,lookBackDays);Band: = STD(CLOSE,lookBackDays);upBand: = MidLine + bolBandTrig * BdnBand: = MidLine - bolBandTrig * BbuyPoint: =HHV(REF(HIGH,1),lookBackDays);sellPoint: =LLV(REF(LOW,1),lookBackDays);longLiqPoint: = MA(REF(CLOSE,1),lookBackDays);shortLiqPoint: =MA(REF(CLOSE,1),lookBackDays);CLOSE & upBand AND CROSS(HIGH,buyPoint),BK;CROSS(longLiqPoint,C),SP;
TA的最新馆藏[转]&[转]&[转]&[转]&量化交易中所谓「回测易,实盘难」的问题怎么解释?
我的图书馆
量化交易中所谓「回测易,实盘难」的问题怎么解释?
【何波的回答(26票)】:不同风格的策略对于回测的要求是不同的,比如对于多因子选股或者趋势策略等,需要注意的几点是:1. 区分好样本内数据和样本外数据,这个和机器学习很类似,样本内数据用于训练,样本外数据用于校验。这样做的目的是为了避免过拟合陷阱。2. 收益的分布,看看你回测后所有交易的收益分布,看看你的收益来源是少数的几次大的收益还是来源多次的小的收益。来源于大的收益,你的收益波动性就很大,实盘往往会达不到你的效果。3. 参数的稳定性。如果你某个参数过敏感,随便调整下就对收益影响很大,那你实盘的情况和模拟盘也有很大可能会有出入。这类策略严格来说,避免了一些常见的坑,还是比较容易做到回测和实盘类似的。对于高频交易来说,回测和实盘的差距就更大了,需要注意的点就更多了,简单列出几个吧:1. 数据的精度,基本来说,这类策略需要是全部行情严格按照时间戳来回放,分钟级别的都太粗糙了。2. 滑点问题,实盘很难避免滑点,你要估计出一个滑点的数字,在回测里扣除。3. 行情的延迟问题,在回测里行情是没有延迟的,而在实盘行情必然有延迟,这部分也会对收益有很大影响。4. 成交问题,有些策略,比如被动做市商策略,你需要自己模拟订单的撮合成交情况,这部分和实盘往往有很大差距,你需要尽可能的去近似。而你采用交易所提供的模拟撮合环境的话,基本上是不可信的。5. 在实盘因为延迟的缘故,你还会遇到反向选择的问题,你也需要去评估实盘和回测这方面的差距。总之,在高频交易策略中,实盘能达到回测60%的效果,就是回测做的很成功的了。【尼奥的回答(6票)】:刻舟求剑【知乎用户的回答(4票)】:over-fitting还有成交难回测【知乎用户的回答(1票)】:问题一是在心理层面,二是在不可预知的坏事件大概率发生。【袁梓谦的回答(0票)】:未来函数一般自己都会有意的避开。过度拟合虽然也存在,但是回测容易实盘困难主要针对的是实盘操作的行情不确定性。行情走出来之后无论怎样都是确定的了,类似的黄金这种走势,走出来之后大家都会分析,走出来之前怎么应对?当天怎么应对?【任逍遥的回答(0票)】:这个涉及到量化系统的时效性。一套量化系统可能会满足过去几年的市场风格。然而市场风格时时在切换,一套在以前行之有效的系统,未必在未来可以继续赚钱。【丹大舅的回答(0票)】:一般情况下回测的周期远大于实盘的周期,实盘曲线只是回测曲线的一段,所以在收益率表现上会有区别当然,成交、滑点等也是主要因素之一,需区别不同策略类型【slevinlee的回答(0票)】:回测易~是因为你都已经知道事情的结果从果去推因只要你能自圆其说就能成~好比一个人已经成为了成功人士~你可以说他成功的原因是他勤奋善良乐于助人广积阴德好比你当了皇帝再出版个四书五经、毛泽东思想等等你再找一个勤奋善良乐于助人广积阴德的因~却不一定能得到一个同样的果好比你精通四书五经、毛泽东思想却当不了皇帝其实这就是军队演习跟实战有啥区别的问题这种问题实在问的太多了~都不知道从哪里说起了远的咱就不扯了~我就总结一下回测与实战发生差别的各种原因吧1、回测模拟的误差1)回测中有意无意的未来函数(有意的叫骗子,无意的叫傻子)2)交易成本估计误差~实盘有滑点~而回测对滑点可能估计不足3)实盘主力合约换月时升贴水与理论回测所使用的连续合约数据发生差异(这个误差比一般人想象的要大,不然就不会有跨期套利了)2、实盘执行的误差1)停电、死机、掉线、延迟等不可抗拒性因素2)连续涨跌停板、主力合约交易标的停牌等回测时没估计到的意外事件(10年一遇的黄金跌停)3)人为手动干预(资金曲线半年多无法新高无法忍受停掉策略、或者一笔浮盈太多忍不住止盈)3、历史没法重演~理论统计的误差~技术含量最高的误差~前面两种误差都有办法控制在一定范围内而这类就只能跟着感觉走了~样本内样本外测试?减少参数个数防止过度拟合?参数敏感性测试?参数自适应?呵呵...牛市的规律到熊市就不适用了~而道指100年的数据回测出来的策略也可能在101年失效(或者说你抗不过去)历史重演只是假设~没有规律是静止不变的打战时你用骑兵~我就用机关枪你用机关枪我就打阵地战挖战壕你挖战壕我就用坦克~...很多事物都是不断发展变化的~兵法、哲学、自然科学都是如此策略失效很正常~这本身就是个客观规律~如何排除这种误差那就是客观量化投资中的主观艺术部分了【韩开开的回答(0票)】:原来这么多聪明人已经在干了很多年了,闭门造车真是太傻了。【知乎用户的回答(0票)】:曾记否某大师拿着七八个品种拼接后的20年期数据给模型跑,活生生把高利润模型跑废了。就一点,你的模型再牛,震荡+趋势总有办法玩残它。品种那么多,交叉比率满街跑,总有一款适合你。【EdwinXia的回答(0票)】:抛砖引玉一下。。。这不是市场有效性的问题吗?【大路的回答(0票)】:觉的很多人都没有说到点子上,过去是对赢的欲望,实盘是对输的恐惧。
馆藏&59353
TA的推荐TA的最新馆藏

我要回帖

更多关于 cctv期货实盘大赛 的文章

 

随机推荐