EasyTrader ArtNo 029
乖離率(Bias Ratio,BIAS),代表當日股價(收盤價)和移動平均線的差距,以分析股價偏離的程度。當股價和移動平均價的差距愈遠時,乖離率愈大,代表股價即將有修正偏離的可能。當乖離率呈現過高或過低情況時,股價均會產生反轉的修正走勢。「正乖離」越大表示「超買」(Overbought),將有下跌的壓力;「負乖離」越小表示「超賣」(Oversold),將有上升的動能,此時股價將會有向平均成本移動作調整的機會。
金融市場每日的商品交易不是漲就是跌,當多空力道接近平衡時就收平,那麼下一個K棒的趨勢到底往那兒走,就是投資人關心的話題! 在本篇我們用期指漲跌點數的乖離來設計交易策略,首先來看從2003/7/1開始到日前的統計資料,這裡針對圖表的數據先作說明:
1. 收盤價:台指期日收盤價
2.A值:累計十日漲跌點數(今收-昨收)
3.趨勢線:A值的十日平均值
4.B值 = A值-與趨勢線差異的十日平均值
5.乖離值 = 趨勢線/B值
6.上限/下限:乖離值歷史數據各約20%位置參考
為了方便圖表顯示,我將乖離值放大 10倍,讓大家對乖離值的影響有更明確的概念
下圖為乖離值2003/7/1~日前的直方分佈圖,60%的數據落在 -50 到 75之間
從上面兩個圖包含的資訊為
1.累計漲跌的數字平均值是可以作趨勢的判斷
2.乖離值的上下區間是可以作為進出參考的依據(突破上下區間為趨勢盤,區間內價格運動為盤整盤(金融商品60%~70%比例在盤整)
接下來我們先用這假設基礎來作歷史回測看看:
1. 基本設定:台指期 日K線
2. 進場規則:
2-1.往上突破上限,以近三日高點買進,往下跌破下限以近三日低點賣出
2-2.上下區間內皆以過三日高點買進,破三日低點賣出
3.出場規則:進場後2日開始固定百分比停損利與結算日出場
4.回測日期: 2013/10/11 往前 3000日
TS2000i 完整程式碼
{Daily K}
inputs:Xbar(10),Mbar(5),Nbar(5),Cfactor(5),TrendType(1),Highband(5),LowBand(45),
TradeProfit(0.02),TradeStopLoss(0.03) ;
Vars:CloseGap(0),AvgGapTrend(0),Bias(0),PriceDir(0);
vars:MP(0),isBalanceDay(false) ;
MP = MarketPosition ;
if DAYofMonth(Date) > 14 and DAYofMonth(Date) < 22 and DAYofWeek(Date)= 3 then isBalanceDay = True else isBalanceDay =False ;
{Cumulative price change}
CloseGap = Summation(Close-Close[1],Xbar) ;
AvgGapTrend = Average(CloseGap,MinList(Mbar,Nbar)) ;
PriceDir = Average(AbsValue(AvgGapTrend-CloseGap),MaxList(Mbar,Nbar)) ;
if PriceDir <> 0 then Bias = (AvgGapTrend/PriceDir)*Cfactor ;
{ for day trade}
if Bias > -LowBand then Buy next bar at Highest(High,3) stop ;
if Bias < HighBand then Sell next bar at Lowest(Low,3) stop ;
if Bias > HighBand then Buy next bar at Highest(High,3) stop ;
if Bias < -LowBand then Sell next bar at Lowest(Low,3) stop ;
if MP <> 0 and barssinceentry > 2 then Begin
if MP > 0 and Low < EntryPrice*(1 - TradeStopLoss) then ExitLong ("LX_loss") at EntryPrice*(1 - TradeStopLoss) stop;
if MP > 0 and High > EntryPrice*(1 + TradeProfit) then ExitLong ("LX_fit") at EntryPrice*(1 + TradeProfit) stop;
if MP < 0 and Low < EntryPrice*(1 - TradeProfit) then ExitShort ("SX_fit") at EntryPrice*(1 - TradeProfit) stop;
if MP < 0 and High > EntryPrice*(1 + TradeStopLoss) then ExitShort ("SX_loss") at EntryPrice*(1 + TradeStopLoss) stop;
end;
if IsBalanceDay then SetExitonClose ;
Vars:CloseGap(0),AvgGapTrend(0),Bias(0),PriceDir(0);
vars:MP(0),isBalanceDay(false) ;
MP = MarketPosition ;
if DAYofMonth(Date) > 14 and DAYofMonth(Date) < 22 and DAYofWeek(Date)= 3 then isBalanceDay = True else isBalanceDay =False ;
{Cumulative price change}
CloseGap = Summation(Close-Close[1],Xbar) ;
AvgGapTrend = Average(CloseGap,MinList(Mbar,Nbar)) ;
PriceDir = Average(AbsValue(AvgGapTrend-CloseGap),MaxList(Mbar,Nbar)) ;
if PriceDir <> 0 then Bias = (AvgGapTrend/PriceDir)*Cfactor ;
{ for day trade}
if Bias > -LowBand then Buy next bar at Highest(High,3) stop ;
if Bias < HighBand then Sell next bar at Lowest(Low,3) stop ;
if Bias > HighBand then Buy next bar at Highest(High,3) stop ;
if Bias < -LowBand then Sell next bar at Lowest(Low,3) stop ;
if MP <> 0 and barssinceentry > 2 then Begin
if MP > 0 and Low < EntryPrice*(1 - TradeStopLoss) then ExitLong ("LX_loss") at EntryPrice*(1 - TradeStopLoss) stop;
if MP > 0 and High > EntryPrice*(1 + TradeProfit) then ExitLong ("LX_fit") at EntryPrice*(1 + TradeProfit) stop;
if MP < 0 and Low < EntryPrice*(1 - TradeProfit) then ExitShort ("SX_fit") at EntryPrice*(1 - TradeProfit) stop;
if MP < 0 and High > EntryPrice*(1 + TradeStopLoss) then ExitShort ("SX_loss") at EntryPrice*(1 + TradeStopLoss) stop;
end;
if IsBalanceDay then SetExitonClose ;
2 留言:
版主好! 請問您分析個個乖離率出現的頻率圖 , 在EXCEL中 如何寫它出現的頻率次?
用PRINT應該就可以了。
張貼留言
如果有私人問題想請教,請透過網站右方『與站長聯絡』之表單,謝謝!