【Multicharts】【RSI指標策略】程式碼逐條解說

2023/04/03閱讀時間約 5 分鐘
  • 文內如有投資理財相關經驗、知識、資訊等內容,皆為創作者個人分享行為。
  • 有價證券、指數與衍生性商品之數據資料,僅供輔助說明之用,不代表創作者投資決策之推介及建議。
  • 閱讀同時,請審慎思考自身條件及自我決策,並應有為決策負責之事前認知。
  • 方格子希望您能從這些分享內容汲取投資養份,養成獨立思考的能力、判斷、行動,成就最適合您的投資理財模式。
首先先來介紹一下RSI的公式跟原理
RSI (相對強弱指標) = 100*n根K棒內漲幅加總/n根內漲幅加總+n根內跌幅加總)
其實RSI的原理非常簡單,舉例:n若為5根K棒,其中三根漲,漲幅分別為2點、5點及7點,兩根跌,跌幅分別為4點及7點
套用公式即可得到RSI為:100*(2+5+7)/(2+5+7)+(4+7)=56
RSI指標表達出,近n根K棒內,買方對盤勢的相對強勢程度。但RSI用在小型股時要特別注意,由於小型股價格較容易操縱,要檢視漲勢是否為曇花一現,以上例來說,若五根內只有一根漲,但漲幅為40點,其他四根跌幅分別為2點、4點、7點以及8點
其RSI將為:100*40/40+(2+4+7+8)=66,還是相對高。此時可以回看那根大漲是否為曇花一現的消息面漲幅,待消息消散,是否仍會持續看漲

RSI指標策略程式碼逐行解說
inputs: lenRSI(14), lenFILTER(12);
vars: valueRSI(0), filterRSI(0);
宣告「參數(inputs)」以及宣告「變數(vars)」
在運作程式碼的時候不會改變的,我們稱作「參數(inputs)」
會隨著程式碼運作而改變的,我們稱作「變數(vars)」

valueRSI = RSI(C, lenRSI);
filterRSI = XAverage(C, lenFILTER);
除了使用Multicharts內建的技術指標RSI函數
我們又為這個策略加上了一個簡單的濾網filterRSI
我們首先介紹 RSI內建指標函數valueRSI = RSI(C, lenRSI);
valueRSI 是我們自己取名用來存放RSI數值的變數(vars)
RSI(c, lenRSI) 函數中的RSI是Multicharts內建的名字,不能更改
用RSI()內建函數,Multicharts會直接帶入上段的公式,直接算出RSI的值
C值 是引用當根K棒的收盤價(O是當根開盤價H是當根最高價L是當根最低價)
lenRSI 則是我們自行宣告的參數,就是n根K棒內的n,這個範例設定為12
接著我們來介紹這個簡單的濾網filterRSI = XAverage(C, lenFILTER);
filterRSI 是我們自行取名宣告的變數,用來存放數值
XAverage() 是Multicharts的內建指數平均函數
相較於我們在一般看盤軟體看到的普通均線
指數平均 更能及時反映行情的均線,因為它的公式,會把更近期的價格權重加重
C值 依然是我們當根K棒的收盤價
lenFILTER 則是我們自行宣告的參數,n根K棒的指數平均的n值,範例設定為12

if valueRSI>80 and C>filterRSI then buy next bar market;
if valueRSI<20 and C
這段程式碼則是我們的進出場訊號
我們用 條件式撰寫訊號
if valueRSI>80 and C>filterRSI then buy next bar market;
"如果RSI值大於80 而且 收盤價大於12根K棒指數平均 則 在下根K棒用市價做多"
if valueRSI<20 and C
"如果RSI值小於20 而且 收盤價小於12根K棒指數平均 則 在下根K棒用市價做空"
有些人會在 next bar 後面加上 at,然後才是market;
其實兩個寫法都是對的,at 在語法運用上沒有作用,是輔助我們便於閱讀的!

這樣,我們就完成了最基本的RSI指標策略
接著我們可以用這樣簡單的進出場條件
Multicharts去做績效回測
看看原始的RSI指標策略是不是真的能夠賺錢?
並且使用Multicharts的強項最佳化參數,去修正我們的策略參數
當然還有不可或缺的停損停利以及交易濾網
都將在之後一一介紹!

最後把上面分段的程式碼整理在一起
方便投資朋友直接複製貼在PowerLanguage Editor上!
inputs: lenRSI(14), lenFILTER(12);
vars: valueRSI(0), filterRSI(0);
valueRSI = RSI(C, lenRSI);
filterRSI = XAverage(C, lenFILTER);
if valueRSI>80 and C>filterRSI then buy next bar market;
if valueRSI<20 and C

尚未註冊TrdingView的投資朋友歡迎使用Kevin專屬註冊連結:
享一個月免費試用Premium帳號,到期後可享50%的續約優惠!
(即使不續約,仍可繼續使用TradingView免費版功能)

凱龍預約系統|凱龍下單機|MultiCharts|TradingView|凱龍官方Line💫@979qbbfo|凱龍官網:https://www.kevinwtf524.com/
為什麼會看到廣告
14會員
11內容數
凱龍下單機|MultiCharts|TradingView|凱龍預約系統|凱龍官方Line💫@979qbbfo|凱龍官網:https://www.kevinwtf524.com/
留言0
查看全部
發表第一個留言支持創作者!