2015年1月5日 星期一

●K線型態的轉折應用 [程式碼]

EasyTrader ArtNo 234
日前 Wen大的部落格放了一篇有關型態的交易策略,整個程式內容還蠻多的,相信不少讀者也是花了一些時間作研究,從內容來看,這是一個在KD指標與價格轉折點之間找背離,作為進出場的依據,不過對台指期來說原始策略的績效普通,因此趁著假日作了一點研究,以下為我的處理方式
1.將屬於型態部份先分離出來,去掉一些不必要的程式碼並作成指標觀察
比較特別得是這裡使用的轉折計算方式並非內建函數 SwingHigh/SwingHighBar, SwingLow/SwingLowBar 以K棒根數作判斷 ,它是以轉折點的百分比作判斷
以下是策略程式裡分析出來的指標程式碼
input:swing(2.0);
vars:pcswing(0),last(0),curhigh(0),curlow(0),swhigh(0),swlow(0),swhigh1(0),swlow1(0),
highbar(0),highbar1(0),lowbar(0),lowbar1(0),chighbar(0),clowbar(0),xhigh(0),xlow(0),xclose(0);

pcswing = swing/100.; { 這是轉折的百分比}
xclose = close;
xhigh = high;
xlow = low;

{ SWINGS: INITIALIZE MOST RECENT HIGH AND LOW }
if currentbar = 1 then begin
{ Initialize curhigh and curlow }
curhigh = xhigh; {current high price}
curlow = xlow; {current low price}
end;

{ SEARCH FOR A NEW HIGH }
if last<>1 then begin
if xhigh > curhigh then begin
curhigh = xhigh; {save values at new high}
chighbar = currentbar;
end;
if xlow < curhigh - curhigh*pcswing then begin
last = 1; {last high fixed}
swhigh1 = swhigh; {previous high}
highbar1 = highbar;
swhigh = curhigh; {new verified high}
highbar = chighbar;
curlow = xlow; {initialize new lows}
clowbar = currentbar;
end;
end;

{ SEARCH FOR A NEW LOW }
if last <> -1 then begin
if xlow < curlow then begin
curlow = xlow; {save values at new lows}
clowbar = currentbar;
end;

if xhigh > curlow + curlow*pcswing then begin
last = -1;
swlow1 = swlow;
lowbar1 = lowbar;
swlow = curlow;
lowbar = clowbar;
curhigh = xhigh; {initialize current high}
chighbar = currentbar;
end;
end;

Plot1[currentbar - highbar](SwHigh*(1+PcSwing/8),"SWH1") ;
Plot2[currentbar - Lowbar](SWLow*(1-PcSwing/8),"SWL1") ;

2.策略修改與測試
我依據它的邏輯設定
  • 當轉折高點往下跌某個百分比為作空進場價 Value1 = Swhigh*(1-SellTrig)
  • 當轉折低點往上漲某個百分比為作多進場價 Value2 = Swlow*(1+BuyTrig)
設計了兩個不同進場方式並搭配常用的出場規則作測試
策略 A
if MP <> 1 and Close[1] < Value2 then Buy next bar at Value2 stop ;
if MP <> -1 and Close[1] > Value1 then Sell next bar at Value1 stop ;

台指期 日K 留倉 交易期間 2004/11/1 ~ 2014/10/31 交易成本 1200


策略B
if MP = 0 then Buy next bar at Value2 stop ;
if MP = 0 then Sell next bar at Value1 stop ;
台指期 60分K 留倉 交易期間 2004/11/1 ~ 2014/10/31 交易成本 1200

看起來利用型態的轉折也是有不錯的績效喔

0 留言:

張貼留言

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

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