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

更新於 發佈於 閱讀時間約 11 分鐘
投資理財內容聲明

首先先來介紹一下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基本原理及公式之後

我們就可以進入Tradingview的程式碼講解環節

//@version=5
strategy("RSI Strategy", overlay=true)

//@version=5 是告訴TradingView該用哪種版本編譯這次的程式碼

我們之後都會用version5來講解策略範例

strategy()是宣告這個策略的基本設定函數

第一個參數"RSI Strategy"則是將這個策略取名

第二個參數overlay則是設定是否把這個策略覆蓋在圖表上面

我們設定為overlay=true,即把進出場訊號標在K棒上面


length = input.int(title="Length", defval=14)
oversold = input.int(title="Oversold", defval=20)
overbought = input.int(title="Overbought", defval=80)

首先,我們先設定三個變數length、oversold還有overbought

分別為rsi的週期長度、超賣區以及超買區

input.int()函數,它是建立一個input物件並利用其中的方法int

建立input物件的好處是能讓我們事後在平台軟體上就可以修改參數

不用再回來原始碼這裡修改代碼

int則是integer的縮寫,即是這個參數需要為整數

然而,三行代碼的頭一個參數title都是設定名稱

第二個參數defval是default value的縮寫

也就是這個數值的預設值,譬如rsi預設取14天,defval就設定為14

同理,oversold跟overbought各自預設為20以及80


rsiValue = ta.rsi(close, length)
buySignal = ta.crossover(rsiValue, overbought)
sellSignal = ta.crossunder(rsiValue, oversold)

ta.rsi()函數是利用TradingView內建的ta(Technical Analysis)物件

這個內建物件可以直接把rsi的值帶出來

我們只需要設定rsi指標的close以及length參數

close即是設定rsi要用成交價計算

length則是我們要取的rsi期間,我們這次舉例預設為14天

接下來我們設定buySignal買進訊號以及sellSignal賣出訊號

用TradingView內建物件ta裡面的crossover方法

crossover方法即為「第一個參數向上穿越超買區overbought」的那根K棒

crossunder方法即為「第一個參數向下穿越超賣區oversold」的那根K棒

(我們這次的範例是用順勢策略作示範)

讀者會發現後面第二個參數都是我們在上一段設定的值

分別為length、overbought跟oversold

上一段先宣告這三個變數,就是為了在此建立訊號用


if (buySignal)
strategy.entry("Buy", strategy.long)
if (sellSignal)
strategy.entry("Sell", strategy.short)

這一段就是建立進出場訊號了!

跟絕大部分程式交易語法一樣,都是建立if條件式

if 後面就是利用我們上一段建立的buySignal成立條件

後面則是用TradingView內建物件strategy裡的進場方法,即strategy.entry()

第一個參數"Buy"是幫這個訊號取名

他會在進場的時候把這時候取的名稱標記在圖表上

第二個參數strategy.long即為進一口多單,同理可推第二段空單進場!

這裡要特別注意的是,就像Multicharts的語法buy跟sellshort一樣

這裡的strategy.long跟strategy.short也都會直接反向建倉

譬如現在持有一口多單,策略偵測到空頭訊號,會直接下兩口空單

部位會直接變成一口空單,即不會有空手的階段

這是一個策略的最初雛形,尚未有停損停利設定的最原始狀態


plotshape(buySignal, style=shape.triangleup, 
location=location.belowbar, color=color.green, size=size.small)
plotshape(sellSignal, style=shape.triangledown,
location=location.abovebar, color=color.red, size=size.small)

這一段我們來幫訊號標(plot)上圖表吧

plotshape()函數是將零星的標示標於圖表的函數

第一個參數buySignal即為欲標記的情形,即是我們上面所設定的"買進訊號"

第二個參數style即為當第一個參數設定的訊號出現時,出現的標記圖形形狀

(這裡要特別注意的是,跟上一段的"Buy"會標記在圖表不一樣,譬如現在手上有一口多單,因為我們預設最多一口,此時又出現buySignal就不會再出現"Buy",而只會出現我們現在在這裡設定的buySignal的標示)

第三個參數location是設定希望上一個參數設定的圖案要置於K棒上方還是下方

color參數則為設定標示顏色,此座標TradingView很貼心

可以直接用滑鼠選顏色,各位客官用了就知道!

size參數則為設定標示圖形大小,除了我們這個範例設定為small

它還可以設定為huge、large、normal以及tiny,由大到小排列

然而sellSignal同理可推,讀者可以自行做上下程式碼的比較!


那這樣我們就完成了今天在TradingView上用pine script程式碼的演示!

這裡把整段程式碼貼在下面,方便讀者可以一次複製

直接貼在TradingView編碼視窗,然後按「新增到圖表」就會跑出策略績效了

//@version=5
strategy("RSI Strategy", overlay=true)

length = input.int(title="Length", defval=14)
oversold = input.float(title="Oversold", defval=20)
overbought = input.float(title="Overbought", defval=80)

rsiValue = ta.rsi(close, length)
buySignal = ta.crossover(rsiValue, overbought)
sellSignal = ta.crossunder(rsiValue, oversold)

if (buySignal)
strategy.entry("Buy", strategy.long)
if (sellSignal)
strategy.entry("Sell", strategy.short)

plotshape(buySignal, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(sellSignal, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)

讀者要注意,要複製到右下角的程式碼喔,不要漏掉了!


尚未註冊TrdingView的投資朋友歡迎使用Kevin專屬註冊連結:

https://www.tradingview.com/?aff_id=131489

享一個月免費試用Premium帳號,到期後可享50%的續約優惠!



關於凱龍

嗨,大家好!我是 Kevin,是凱龍負責人。 凱龍下單機是 Kevin 獨立開發的期貨下單軟體,專用於 TradingView 下單台指期商品:

🟡 凱龍下單機:

.TradingView 下單台指期

.支援程式交易/ 手單交易

.690 元/ 月

.免費試用 30 天


除了以上凱龍下單機的租用方案,凱龍同時也提供以下兩項 TradingView 程式碼業務:

🟡 TradingView 指標&策略:

.試用/ 原始碼購買

🟡 TradingView PineScript 程式碼代寫:

.指標/ 策略/ 合併/ 改寫/ 整合


如您對凱龍以上服務有興趣,或有任何相關問題,歡迎加入 凱龍官方 LINE 聯繫 Kevin!

其實 Kevin 也熟悉 MultiChart PowerLanguage 程式語法,但由於不希望自己在寫指標或策略的時候,TV 和 MTC 的語法邏輯不同而互相干擾,便放棄了 MTC 語法的開發。

同時我也是一名全端軟體工程師,此凱龍官方網站和凱龍官方 LINE 伺服器也都是 Kevin 自己架設的,所以如果投資朋友希望創建整合型的 TradingView 系統,Kevin 也是可以幫上忙的。


🟡凱龍官方LINE:@979qbbfo

🟡凱龍官方網站:https://www.kevinwtf524.com/

🟡instagram:https:///kevinwtf524/

🟡YouTube:https://www.youtube.com/@kevinwtf524

留言
avatar-img
留言分享你的想法!
avatar-img
Kevin 凱龍
22會員
8內容數
嗨!我是凱龍負責人Kevin 提供 TradingView 相關業務: 🟡凱龍下單機 - TradingView 下單台指期 - $690/月 - 免費試用 30 天 🟡TradingView 指標&策略 - 試用/原始碼購買 🟡TradingView PineScript 程式碼代寫
Kevin 凱龍的其他內容
2023/05/25
2023/05/25
2023/04/21
歡迎加入【Kevin 凱龍】官方賴@979qbbfo
Thumbnail
2023/04/21
歡迎加入【Kevin 凱龍】官方賴@979qbbfo
Thumbnail
2023/04/16
歡迎加入【Kevin 凱龍】官方賴@979qbbfo
Thumbnail
2023/04/16
歡迎加入【Kevin 凱龍】官方賴@979qbbfo
Thumbnail
看更多
你可能也想看
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
前篇的KD指標,在數學上的意義代表的是「 當前的股價在N日之內的相對位置」依加權平均定出K值及D值。而RSI這個老牌的技術指標,在數學上的意義代表的是,股價在N日之內的相對強弱的比值。 那麼 RSI指標有沒有比較厲害呢? 使用方法 以6日RSI值為例,80以上為超買,90以上為賣點;20以下為
Thumbnail
前篇的KD指標,在數學上的意義代表的是「 當前的股價在N日之內的相對位置」依加權平均定出K值及D值。而RSI這個老牌的技術指標,在數學上的意義代表的是,股價在N日之內的相對強弱的比值。 那麼 RSI指標有沒有比較厲害呢? 使用方法 以6日RSI值為例,80以上為超買,90以上為賣點;20以下為
Thumbnail
在上一篇我們做完macd指標之後,可以發現macd每次金叉死叉不會說很準 所以我們這時候可以再加上rsi進行指標的雙重判斷,這不僅僅增加指標的可信度 也加強我們在抓關鍵k棒的位置 step1: 在腳本上加上rsi指標 rsi在pine裡面的內建函式長這樣(收盤價,14) step2: 判斷rsi信號
Thumbnail
在上一篇我們做完macd指標之後,可以發現macd每次金叉死叉不會說很準 所以我們這時候可以再加上rsi進行指標的雙重判斷,這不僅僅增加指標的可信度 也加強我們在抓關鍵k棒的位置 step1: 在腳本上加上rsi指標 rsi在pine裡面的內建函式長這樣(收盤價,14) step2: 判斷rsi信號
Thumbnail
甚麼是 RSI 指標? RSI 指標的原理是通過計算過去某一段時間買賣雙方的力道,來判斷最近的漲跌屬於偏強還是偏弱。 使用 RSI 可以在市場中看出以下資訊: 該價格屬於偏強還是偏弱、價格反轉的警告訊號、多空力道的平衡 RSI 的超買與超賣判斷 超買: 當 RSI 值 > 70 以上,代表市場過熱,
Thumbnail
甚麼是 RSI 指標? RSI 指標的原理是通過計算過去某一段時間買賣雙方的力道,來判斷最近的漲跌屬於偏強還是偏弱。 使用 RSI 可以在市場中看出以下資訊: 該價格屬於偏強還是偏弱、價格反轉的警告訊號、多空力道的平衡 RSI 的超買與超賣判斷 超買: 當 RSI 值 > 70 以上,代表市場過熱,
Thumbnail
RSI值 = [設定周期內的漲幅平均值 ÷( 設定周期內的漲幅平均值 +設定周期內的跌幅平均值 )] × 100 RSI1、RSI2、RSI3分別對應6日、12日、24日。 RSI值介乎0-100之间呈常态分配。6日RSI 在80以上或15以下,可能出现反转讯号。
Thumbnail
RSI值 = [設定周期內的漲幅平均值 ÷( 設定周期內的漲幅平均值 +設定周期內的跌幅平均值 )] × 100 RSI1、RSI2、RSI3分別對應6日、12日、24日。 RSI值介乎0-100之间呈常态分配。6日RSI 在80以上或15以下,可能出现反转讯号。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News