2013年10月23日 星期三

●台指期貨的潛規則---漲跌密碼part 1 (含程式碼)

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日
5.來回成本: 1200






單純以日線策略來看是可行的,而且 MDD 也約在總淨利10%左右,是值得開發的策略 ,下一篇將會把這樣的概念放到短週期來測試,讀者也可以依據本篇闡述的規則先作練習喔!

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 ;

2 留言:

匿名 提到...

版主好! 請問您分析個個乖離率出現的頻率圖 , 在EXCEL中 如何寫它出現的頻率次?

WEN 提到...

用PRINT應該就可以了。

張貼留言

如果有私人問題想請教,請透過網站右方『與站長聯絡』之表單,謝謝!

----------------------------------------------------------------------------------------------------
網站聲明(Disclaimer)
本教學網站內所提供之程式碼(包括函數、指標、訊號)屬開放程式碼,用意在於讓使用者學習程式語法之撰寫,使用者可以任意修改語法內容並調整參數。本網站所有之內容(包括文章、影片、歷史紀錄、程式碼、教材)限用於個人學習使用,請勿轉寄、濫用,嚴禁私自串接帳戶交易。
-------------------------------------------------------------------------------------------------