close

最近在玩程式交易的工具, 發現即使是採用相同的操作策略,
但若交易的某些細部設定不同,最後結果, 也就是我們的獲利率,
會差異十分大.


以下是在這些backtest 所採用的操作策略. 這個策略是依據日線 KD 線來
決定買進或者賣出. 當日 KD 線出現向上交叉時買進,
KD 線出現向下交叉時賣出:

periods = Param( "Periods", 15, 1, 200, 1 );
Ksmooth = Param( "%K avg", 3, 1, 200, 1 );
Dsmooth = Param( "%D avg", 3, 1, 200, 1 );
Kline = StochK( periods , Ksmooth);
Dline = StochD( periods , Ksmooth, DSmooth );
Buy=Cross(Kline, Dline ); // AND AtLow;
Sell=Cross(Dline , Kline); // AND AtHigh;



對這個買賣策略執行backtest, 測試時間從 2009/07/01 到 2010/08/21,
此外, 設定買進與賣出的價格為當天收盤價.
也就是模擬散戶每天利用中午休息時間看盤, 當看到當天日 KD 線發生黃金交叉,
就採收盤的價格買入. 當看到當天KD 線發生向下交叉, 才用收盤的價錢賣出:

>
Figure2.jpg

測試的結果, 最後獲利是 1.93%.



Figure1
figure1.jpg



若我們設定設定買進與賣出的價格為當天收盤價的平均價賣出.
模擬散戶在看到日 KD 線發生向上或向下交叉時, 馬上買進或賣出股票.
>
figure3.jpg

測試結果, 最後獲利提昇到 31.61%

>
Figure4.jpg



這邊有一個問題, 若散戶是看到日線KD交叉, 隔天才用開盤價買進或賣出, 績效會如何呢?
為了模擬這個行為, 我要修改買賣策略為參考前一天的kd線型:
Buy=Ref(Cross(Kline, Dline ), -1);
Sell=Ref(Cross(Dline , Kline), -1);


並且設定買進價格為開盤價, 測試的結果, 最後獲利是 3.4 %. 與第一次的測試結果,
獲利 1.93% 差異不大...




可是當我把測試的時間範圍拉長, 測試時間從: 2007/1/1 到 2010/08/21,
這段時間包括了金融風暴而造成股市崩盤的事件. 共執行了 85次交易.
在當天用收盤價交易的獲利率是: -43%
在隔天用開盤價交易的獲利率是: -87.2%

由模擬測試的結果來看, 交易時機與買入/售出的價格, 對獲利的影響十分大.
若採用收盤或隔天開盤的價格交易, 可能每次交易會讓你的獲利損失
0.3 % ~ 1%, 但是長期下來, 會嚴重侵蝕整體的獲利.
此外, 也會讓你的投資組合, 在遭遇系統風險時, 出現額外的大幅虧損

因此, 散戶在投資股票時, 要十分注意買入的價格. 當累積十次 0.5%價格損失的交易,
會讓你的獲利, 下降 5%. 若是在系統價格快速下降或上揚時, 採用隔天交易的方式,
價格損失通常大於 0.5%


Devil in the detail. 投資人要十分注意每個買賣的細節.










figure1.jpg


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 houcheng 的頭像
    houcheng

    HOUCHENG

    houcheng 發表在 痞客邦 留言(0) 人氣()