程式交易之技術分析策略探討-RSI技術指標

幣圖誌Bituzi

 

 

最近每天的市場行情都像在坐雲霄飛車一樣, 
當你以為要下墜的時候,就忽然給你往上狂衝, 
結果衝的正高興的時候,突然又讓你摔到谷底。 
每天上沖下洗,差點沒讓人上吐下瀉。 
希望大家在這波大行情中,都沒被傷到,荷包賺滿滿! 
上星期介紹過RSI指標,這星期我們把他用來實作看看, 
看看最近的行情是否也能抓到。 


最近作留倉交易的人, 
應該是非常的疲累, 
每天看到美股在那邊自導自演, 
開盤跟收盤的情況往往大相逕庭, 
所以勸各位,還是早點去睡覺, 
晚上別在看美股了,以免睡不著。 
最近行情波動很大,對於作程式交易的人, 
或許是不錯的情況,總是要有波動才有利潤可以賺阿。 
不過作當沖的也不見得好賺,畢竟進場點不對的話, 
一進去可能就被秒殺了。 

上星期我們講過RSI指標的特性, 
接下來我們就把他應用在程式交易上, 
因為單純用RSI是否到達超買超賣區來作買賣判斷, 
不容易產生有效訊號, 
所以我們改用兩條RSI指標線的交叉與否來產生訊號, 
接著來看看結果如何? 
 

回測時間,SHOW TIME!


回測目標:驗證RSI指標來做交易訊號是否可以獲利? 
回測標的:用台指15分、30分、60分K線作留倉交易。 
回測成本設定:費用設定為1000元。 
回測時間:從1998年到今天。 
進場方式:(1)當短期(6根K棒)RSI線由下往上突破長期(12根K棒)RSI線時, 
啟動買進訊號,當價格向上突破前3根K棒高點時進場做多。 
(2)當短期(6根K棒)RSI線由上往下突破長期(12根K棒)RSI線時, 
啟動賣出訊號,當價格往下突破前3根K棒低點時進場做空。 
濾網:基本上我們使用開盤後第一根K棒的高低點當作壓力線與支撐線,買訊啟動後要過壓力線才進場做多; 
賣訊啟動後要往下破支撐線才進場做空。 
出場方式:(1)設定停損點數為150點。 
(2)到期當天出場,等到下次訊號出現時在進場。 

我們把報表數據稍微整理如下: 



上圖為最近的進出場訊號K線圖 

 

上圖分別為15分K、30分K、60分K的每年損益比較 



上圖分別為15分K、30分K、60分K的每年損益直方圖 

 

上圖分別為15分K、30分K、60分K的其他重要數據表 

 

上圖為今年以來每月的損益情況 

由上面幾張圖表我們可以得到一些結論: 
  • 本交易策略其實還是可以賺錢的,而且今年8月份更是誇張。
  • 勝率跟前幾種技術指標的交易策略一樣都不高,大概只有40%多一點。
  • Drawdown一樣還是很大。
  • 前幾篇文章都提過,今年技術分析的交易策略,績效表現都不錯。

如何改進缺點- 
  • 如果要增加勝率,一定要把次數降低, 
    因為過多無謂的交易會增加你失敗的次數, 
    所以我們必須再加入其他濾網來過濾掉一些次數。
  • 要降低DD,一定要增加其他種出場點, 
    例如:加入停利的出場方式,像拉回多少點或多少比率,就出場。 
    或是當你獲利超過一定程度,你在設定拉回出場也可以, 
    等等其他的出場方式。
  • 其實很多技術指標並不適合直接拿來當作訊號的主軸, 
    不過拿來當作一些濾網,其實還蠻合適的。

下一篇文章,筆者會把之前寫過的技術指標程式, 
通通一起拿來比較一下, 
順便看看最近的大行情是否都有抓到。 
最近盤勢波動很大, 
大家做交易要非常的小心, 
也祝福大家繼續賺大錢! 



最後把程式碼附上給大家做參考。 

var : buyflag(false),sellflag(false),dh(0),dl(99999); 

if time=0915 then begin 
dh=highd(0); 
dl=lowd(0); 
end; 

if RSI(close,6) crosses above RSI(close,12) then begin 
buyflag=true; 
sellflag=false; 
end; 

if RSI(close,6) crosses below RSI(close,12) then begin 
buyflag=false; 
sellflag=true; 
end; 


if buyflag=true and high > dh and high > highest(high,3)[1] then begin 
buy next bar at highest(high,3)+1 stop; 
end; 

if sellflag=true and low < dl and low < lowest(low,3)[1] then begin sell next bar at lowest(low,3)-1 stop; end; if marketposition > 0 then exitlong at entryprice-150 stop ; 
if marketposition < 0 then exitshort at entryprice+150 stop ; Condition0=dayofweek(date)=3 and dayofmonth(date)>14 and 22>dayofmonth(date); 
if condition0=true then begin
if t>1314 then begin 
exitlong("EXPL") on close; 
exitshort("EXPS") on close; 
end; 
end;

 

本文內容僅供參考,無任何買賣建議,投資人應謹慎評估,風險自負。

精選文章

更多
華新集團被動元件最狂,華新科、信昌電單季漲4倍,當心!作帳狂潮這波正快速退燒。
從落底反彈到 7 月大漲 45%,台塑化果然重返榮耀,或只是景氣循環一場誤會?
【台股市場變了】一天走完一、兩個月行情,你還在等嗎?
力積電、旺宏強攻背後,SK海力士存算一體成真,記憶體榮景就此終結!
美CPI報喜、台股日K留長下影線!周三結算收復5均,台積電法說會成多空關鍵?!
他不是賭錯,是被倍數輾死:海力士一天崩四千萬的血淋淋教訓!