2019年3月5日 星期二

[量化狼]指標鈍化應用-多方


價格的順勢交易基本上就是要想辦法合理的定義價格動能,什麼樣的盤勢代表價格強勢或價格弱勢? 我們利用市場上大家時常聽到的指標頓化與標準差做為設計核心,如果大家出去上過股票或期貨的課程或者是看過技術分析的書籍,一定會教導指標頓化的原理,但其實很多人沒有科學與模型化,也不知道是否可以獲利,我們來驗證一下鈍化的應用,首先定義就是當指標大於某臨界值3K棒以上時,且此時價格又在我們定義的標準差之上,我們就視為此時出現價格強勢,常用的指標有KDRSIMACD…等,這邊我們採用KD指標,各位可以回去使用RSIMACD,自行練習。

當我們進場後,出場的決定方式就特別重要,我們這邊使用從最高點拉回多少金額 (or 點數)就出場這樣設計的方式非常符合順勢交易的想法,就是當行情噴出去時,我們預期會走一段趨勢,但這段趨勢會走多久多遠我們並不知道,也不做預設,所以不設定停利或者停損點,讓盤勢告訴我們何時該停利停損,當盤勢從最高點拉回太多幅度時,通常未來就偏向趨於盤整,就出場。
先利用KD指標、標準差定義強勢多頭進場,進場後當拉回一定程度時,出場。這方法通常應用在指數的多頭特別有效,但反過來寫,運用在指數的空頭就會特別慘。其原因就是指數的多空特性不同。
策略基本設定:
策略名稱
指標頓化多方策略
交易層級
5min
交易成本
來回600
回測期間
2001-2019/2
權益曲線:

程式碼:
vars:  var0(0),var1(0),var2(0),var3(0),
       STD_B1(0),
       STD_S1(0),
       KD(0),
       KD_K(0),
       trade_1(False),
       K_count(0)
       ;
vars: trade_position(1);
vars: MM(0);
input: unit(2.6);
{position size}
MM = marketposition;
{index design}

KD = Stochastic(High,Low,close,9,3,3,2,var0,var1, var2, var3 ) ;
KD_K = var2;
var0 = XAverage( close, 288 ) ;
STD_B1 = XAverage( close, 288 ) + 1*StandardDev(close,288,1);
STD_S1 = XAverage( close, 288 ) - 1*StandardDev(close,288,1);

//////////////////////
{buy condition}
////////////////////
if    
       KD_K > 80
       and KD_K[1] > 80
       and KD_K[2] > 80
       and KD_K[3] < 80
       and time < 1300
       and time > 0900
       and MM = 0
       and close > STD_B1
then begin
buy("Buy") 1 contract next bar at market;
end;

if  marketposition = 1 then setdollartrailing(10000* unit);

If DayofMonth(date)>14 and DayofMonth(date)<22 and dayofweek(date)=3 then
begin
setexitonclose;

End;
邏輯中文翻譯:
KD指標連續3 > 80,價格在標準差之上,買進
當價格從最高點拉回某個百分比,出場
每個月結算時出場

回測績效檢視:

年週期分析: