【TradingView】【布林通道策略】程式碼逐條解說

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

首先,我們依然先跟投資朋友介紹公式及原理!

布林通道由三個數值構成,均值、上通道以及下通道。

1. 均值通常是以20根K棒做簡單算術平均

2. 上通道為均值加上2個標準差

3. 下通道為均值減去2個標準差

不了解標準差的投資朋友,可以將標準差理解為這20根K棒的波動程度。

如果這20根K棒價格波動很大

布林通道的上通道跟下通道就會擴展開來,通道就會很寬,反之亦然!

在TradingView呈現如下圖:

raw-image

接著我們來逐行講解如何用TradingView寫出一個簡單的布林通道策略

首先我們使用最原始的布林通道設定:20根均值以及上下加減兩個標準差

然而我們採用順勢策略

即當價格觸碰到上通道,我們做多

當價格碰到下通道,我們做空。

然而我們今天多加了一個指令

即進場後,我們會設定固定點數停利以及固定點數停損出場

那在我們對這個策略有了基本概念之後,就進入我們文章的主題吧!


//@version=5
strategy("Bollinger Bands", overlay=true)

首先我們依然先宣告我們使用的pine script版本,版本為5。

之後我們宣告這是一個strategy,策略。(若為指標,則為indicator(...))

第一個參數為這個策略的名稱

第二個參數overlay為true是將布林通道重疊於K棒圖表之上。


length = input.int(20, "Length", minval=1)
mult = input.int(2, "Multiplier", minval=1, maxval=50, step=1)

這兩行宣告兩個"可修改的變數"

因為他們是可修改的,所以我們用的函數是input.int(),int是整數的意思。

在input.int()中第一個參數為該變數的預設值

第二個參數是為這個變數取名,方便之後在軟體頁面修改(如下圖)

minval為最小值,maxval為最大值,step為數值增加/減少的數值

length為取幾根K棒,預設為20。

mult為標準差乘數,即原始的布林通道設定,預設為2倍。

以下圖片為在軟體上修改的方式,也是為什麼我們要用input.int()函數的原因:

raw-image

mid = ta.sma(close, length)
dev = mult * ta.stdev(close, length)
upperBand = mid + dev
lowerBand = mid - dev

我們使用TradingView內建函數ta.sma以及ta.stdev建立20根均線以及標準差

將均線即布林通道中線取名為mid

並將上一段的乘數"mult=2"乘以標準差,並取名為dev

最後將中線mid加上/減去dev

得到布林通道上通道(upperBand)和下通道(lowerBand)


longCondition = ta.crossover(close, upperBand)
shortCondition = ta.crossunder(close, lowerBand)

這一段我們把做多的情況跟做空的條件寫出來

我們使用TradingView的內建函數ta.crossover()和ta.crossunder()

他們兩個函數是表達向上穿越(黃金交叉)以及向下穿越(死亡交叉)

這兩個函數是預設為第一個參數(close)即前面那個參數

向上crossover/向下crossunder穿越第二個參數upperBand/lowerBand


if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)

這段程式碼我們運用if條件式寫出交易訊號

首先我們運用上一段程式碼建立的多空單訊號來偵測進場條件

之後我們運用TradingView內建進場函數strategy.entry()進場

strategy.entry()的第一個參數為該進場訊號的名稱(方便之後直接呼叫這次進場)

第二個參數為進多單(strategy.long)或空單(strategy.short)的指令


if strategy.position_size!=0
strategy.exit("ByeLong", "Long", profit=400, loss=100)
strategy.exit("ByeShort", "Short", profit=400, loss=100)

這裡我們用if條件式設定了出場的訊號

if strategy.position_size!=0,即為手中若有部位(含多單及空單)

strategy.exit為出場訊號,第一個參數為出場時,會標示在圖表上的名稱

第二個參數為欲出場的部位名稱,即為我們上一段為進場訊號設定名稱的原因

第三個profit參數為固定停利值(單位為ticks)

第四個loss參數即為固定停損值(單位也是ticks)


plot(mid, "Middle Line", color.blue)
plot(upperBand, "Upper Band", color.red)
plot(lowerBand, "Lower Band", color.green)

最後一部分呢,我們要把我們剛剛設定的布林通道掛上我們的圖表上

plot是我們TradingView內建繪製指標的函數

第一個參數為欲掛上的變數

(mid為中線均值upperBand/lowerBand為上/下通道)

第二個為指標的名稱

第三個為指標顏色,此處TradingView非常貼心

我們可以直接在程式碼上面選擇顏色

TradingView真的是非常優秀的看盤軟體!

如下圖:

raw-image

這樣!我們就完成了最原始的布林通道策略設定!

在這裡,我們依然把上面每一段的程式碼整合於此

方便投資朋友直接複製貼上在Pine編輯器

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

length = input.int(20, "Length", minval=1)
mult = input.int(2, "Multiplier", minval=1, maxval=50, step=1)

mid = ta.sma(close, length)
dev = mult * ta.stdev(close, length)
upperBand = mid + dev
lowerBand = mid - dev

longCondition = ta.crossover(close, upperBand)
shortCondition = ta.crossunder(close, lowerBand)

if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)

if strategy.position_size!=0
strategy.exit("ByeLong", "Long", profit=400, loss=100)
strategy.exit("ByeShort", "Short", profit=400, loss=100)

plot(mid, "Middle Line", color.blue)
plot(upperBand, "Upper Band", color.red)
plot(lowerBand, "Lower Band", color.green)

複製貼上並編碼之後就可以直接看到這個策略的績效報告,如下圖:

raw-image

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

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

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

(即使不續約,仍可繼續使用TradingView免費版功能)


⭐目前凱龍承接三大項業務,歡迎洽詢:

  1. 金融量化系列|凱龍下單機租用 & TradngView & MultiCharts 程式碼諮詢撰寫
  2. Line官方系列|凱龍Line官方模組租用 & Line官方機器人全系列諮詢架設
  3. 網站SaaS平台|凱龍雲端應用 & 網站SaaS平台諮詢架設

⭐凱龍Line官方:@979qbbfo

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

⭐instagram:https://www.instagram.com/kevinwtf524/

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

留言
avatar-img
留言分享你的想法!
avatar-img
Kevin 凱龍
21會員
17內容數
嗨!我是凱龍負責人Kevin - ⭐️凱龍金融量化(期貨程式交易看這裡) 凱龍下單機 $545起/月 - ⭐️凱龍商城(餐飲業線上訂餐看這裡) 凱龍訂餐模組 $690/月 - ⭐️專案客製(各類客製專案看這裡) 金融量化策略撰寫、Line@機器人及各類網站客製架設 - ⭐凱龍官方Line:@979qbbfo
Kevin 凱龍的其他內容
2023/05/25
2023/05/25
2023/04/21
歡迎加入【Kevin 凱龍】官方賴@979qbbfo
Thumbnail
2023/04/21
歡迎加入【Kevin 凱龍】官方賴@979qbbfo
Thumbnail
2023/04/11
歡迎加入【Kevin 凱龍】官方賴@979qbbfo
Thumbnail
2023/04/11
歡迎加入【Kevin 凱龍】官方賴@979qbbfo
Thumbnail
看更多
你可能也想看
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
今天有一位同學問我關於一個叫做「布林軌道」的技術指標,於是我先來介紹它的公式及使用方法吧! 首先大家還記的標準差嗎?如果忘記也沒關係,可以先想成一團數據的波動範圍,以常態分布來說,平均向上及向下加一個標準差,會包含34.1%的數據,而如果網上下各看兩個標準差,則能夠包含約97.9的數據....
Thumbnail
今天有一位同學問我關於一個叫做「布林軌道」的技術指標,於是我先來介紹它的公式及使用方法吧! 首先大家還記的標準差嗎?如果忘記也沒關係,可以先想成一團數據的波動範圍,以常態分布來說,平均向上及向下加一個標準差,會包含34.1%的數據,而如果網上下各看兩個標準差,則能夠包含約97.9的數據....
Thumbnail
布林通道的組成 從昨天的布林看趨勢,很清楚的可以看到布林通道由三條線組成,一般而言,上面的線叫上軌,下面的線叫下軌,中間的當然就叫中軌囉。 而以基礎的布林通道的數學定義,就是以20日均線或22日均線(等同月線)為中軌,取上下各兩個標準差做通道。 中軌= 月線,帶動趨勢 然後通道的寬度就叫帶寬!
Thumbnail
布林通道的組成 從昨天的布林看趨勢,很清楚的可以看到布林通道由三條線組成,一般而言,上面的線叫上軌,下面的線叫下軌,中間的當然就叫中軌囉。 而以基礎的布林通道的數學定義,就是以20日均線或22日均線(等同月線)為中軌,取上下各兩個標準差做通道。 中軌= 月線,帶動趨勢 然後通道的寬度就叫帶寬!
Thumbnail
逆勢而為,順勢而行? 如何使用布林通道看趨勢? 眾所皆知的道理,不論做什麼事,順勢而為,事半功倍,逆勢而為,寸步難行。同樣的,那股市新手的你,就算沒有很厲害,也要學會看趨勢,才不會空頭趨勢你做多,多頭趨勢你做空。 一般而言,券商預設是均線(MA)!點按MA按鈕 選擇布林通道BBAND
Thumbnail
逆勢而為,順勢而行? 如何使用布林通道看趨勢? 眾所皆知的道理,不論做什麼事,順勢而為,事半功倍,逆勢而為,寸步難行。同樣的,那股市新手的你,就算沒有很厲害,也要學會看趨勢,才不會空頭趨勢你做多,多頭趨勢你做空。 一般而言,券商預設是均線(MA)!點按MA按鈕 選擇布林通道BBAND
Thumbnail
保力加通道,也就是布林线(Bollinger Band) 是根据统计学中的标准差原理设计出来的一种非常实用的技术指标。它由三条轨道线组成,其中上下两条线分别可以看成是价格的压力线和支撑线,在两条线之间是一条价格平均线,一般情况价格线在由上下轨道组成的带状区间游走,而且随价格的变化而自动调整轨道的位置
Thumbnail
保力加通道,也就是布林线(Bollinger Band) 是根据统计学中的标准差原理设计出来的一种非常实用的技术指标。它由三条轨道线组成,其中上下两条线分别可以看成是价格的压力线和支撑线,在两条线之间是一条价格平均线,一般情况价格线在由上下轨道组成的带状区间游走,而且随价格的变化而自动调整轨道的位置
Thumbnail
淺談布林通道 這是一個很直觀的技術指標,你可以從布林通道看出來現在是上升趨勢,下降趨勢,還是盤整。 布林通道可以從券商的軟體直接設定,如果你沒有特別的偏好,建議用卷商直接給的數值來設就好了。 上升趨勢的布林: 月線上揚,帶寬變大,股價沿上軌移動,這是最強勢的上升趨勢。(如附圖) #可轉債
Thumbnail
淺談布林通道 這是一個很直觀的技術指標,你可以從布林通道看出來現在是上升趨勢,下降趨勢,還是盤整。 布林通道可以從券商的軟體直接設定,如果你沒有特別的偏好,建議用卷商直接給的數值來設就好了。 上升趨勢的布林: 月線上揚,帶寬變大,股價沿上軌移動,這是最強勢的上升趨勢。(如附圖) #可轉債
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News