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

更新於 發佈於 閱讀時間約 8 分鐘
  • 文內如有投資理財相關經驗、知識、資訊等內容,皆為創作者個人分享行為。
  • 有價證券、指數與衍生性商品之數據資料,僅供輔助說明之用,不代表創作者投資決策之推介及建議。
  • 閱讀同時,請審慎思考自身條件及自我決策,並應有為決策負責之事前認知。
  • 方格子希望您能從這些分享內容汲取投資養份,養成獨立思考的能力、判斷、行動,成就最適合您的投資理財模式。
我們首先,先介紹一下MACD的公式及原理
快線:12根價格指數平均線
慢線:26根價格指數平均線
macd: 快線-慢線
signal: 9根的macd指數平均線
柱狀體:macd-signal

MACD最原始的策略
當柱狀體由負值轉正,我們做多
當柱狀體由正值轉負,我們做空
但隨著時代的演進,MACD的運用早已變幻莫測
但我們今天先以原始型態來做介紹

在了解MACD交易理念後,我們就來一窺TradingView pine script語法
//@version=5
strategy(title="MACD strategy", overlay=false)
跟Multicharts不同的是,pine script不需要先宣告參數以及變數
"//"後的是註記文字,不會被編程,這裡的@version=5是註記使用版本五
版本五與版本四語法上會稍有不同,這裡介紹將以版本五為主
strategy( )函數是一個pine script內建函數,用來設定策略的基本設置
title="MACD strategy" 是將策略名稱設定為"MACD strategy"
overlay=false 是將MACD指標線置於圖表下方,不要重疊於圖表

fastLen = input.int(title="Fast Length", defval=12)
slowLen = input.int(title="Slow Length", defval=26)
signalLen = input.int(title="Signal
Length", defval=9)
設置這個區域的程式碼,是為了讓我們能直接在版面上調整參數
input.int( )是設置了一個能輸入整數數字的參數輸入選項
title="" 是設置了這個參數的名稱
defval=12 則是為這個參數設置了Default Value,這個示範為12根K棒

fastMA = ta.ema(close, fastLen)
slowMA = ta.ema(close, slowLen)
macd = fastMA - slowMA
signal = ta.ema(macd, signalLen)
這個區塊的程式碼主要要介紹 ta.ema() 這個內建函數
"ta"是"Technical Analysis"的縮寫,是pine script內建的技術指標函數
而ema則與我們Multicharts的XAverage一樣,是指數平均函數
指數平均函數跟我們一般平均函數的差別是
指數平均函數會把近期的價格加權加重,如此一來會使得指數均線更加貼近行情
使用指數平均是MACD的預設設定

plot(macd, color=color.blue, title="MACD")
plot(signal, color=color.red, title="Signal")
plot( )跟Multicharts一樣是畫上指標的函數
plot(macd, color=color.blue, title="MACD")
第一個參數是欲使用的變數,第二個參數是指標顏色
也可以用color.rgb(***, ***, ***)來調整細節顏色
第三個參數則是為這個指標設定一個名稱

buySignal = ta.crossover(macd, signal)
if (buySignal)
strategy.entry("Buy", strategy.long)
sellSignal = ta.crossunder(macd, signal)
if (sellSignal)
strategy.entry("Sell", strategy.short)
buySignal = ta.crossover(macd, signal)
這段是程式碼是編寫買進訊號(buySignal),其輸出為布林值,即True和False
並運用pine script內建ta.crossover(macd, signal)函數
表達macd柱狀體由負值轉正,亦即macd大於signal的那個瞬間
ta.crossover(參數一, 參數二)
即是放在前面的參數一大於參數二的那個瞬間叫做crossover
前後位置預設的,編寫的時候要注意不要把前後順序搞錯了!
strategy.entry("Buy", strategy.long)則是如此表達
第一個參數"Buy"是會顯示在圖表上的名稱
第二個參數則是表達進場多單
這一區塊程式碼要特別注意的是
pine script的"if條件式"是不需要":"或者"then"等等的條件式編寫
甚至連在這個範例舉出的"if (buySignal)"中的"( )"都不是必要的!
但還是建議可以加上括號,避免在整理及維護的時候難於閱讀

那我們這裡就詳細的介紹完了這個用pine script撰寫的MACD策略
TradingView是一個非常非常強大的看盤軟體
在國際間享負盛名
在之後的文章中
除了用pine script介紹策略程式碼
也將介紹一些實用的TradingView使用小訣竅

最後把上面各段的程式碼整理並放在下面
方便各位複製直接貼在TradingView編輯介面,並按下右上角的「新增到圖表」
這樣就可以直接檢視這個MACD策略的績效
//@version=5
strategy(title="MACD strategy", overlay=false)
fastLen = input.int(title="Fast Length", defval=12)
slowLen = input.int(title="Slow Length", defval=26)
signalLen = input.int(title="Signal Length", defval=9)
fastMA = ta.ema(close, fastLen)
slowMA = ta.ema(close, slowLen)
macd = fastMA - slowMA
signal = ta.ema(macd, signalLen)
plot(macd, color=color.blue, title="MACD")
plot(signal, color=color.red, title="Signal")
buySignal = ta.crossover(macd, signal)
if (buySignal)
    strategy.entry("Buy", strategy.long)
sellSignal = ta.crossunder(macd, signal)
if (sellSignal)
    strategy.entry("Sell", strategy.short)

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

⭐目前凱龍承接三大項業務,歡迎洽詢:
  1. 金融量化系列|凱龍下單機租用 & TradngView & MultiCharts 程式碼諮詢撰寫
  2. Line官方系列|凱龍Line官方模組租用 & Line官方機器人全系列諮詢架設
  3. 網站SaaS平台|凱龍雲端應用 & 網站SaaS平台諮詢架設
⭐凱龍Line官方:@979qbbfo
⭐凱龍官方網站:https://kevinwtf524.com/
即將進入廣告,捲動後可繼續閱讀
為什麼會看到廣告
avatar-img
19會員
17內容數
嗨!我是凱龍負責人Kevin - ⭐️凱龍金融量化(期貨程式交易看這裡!) 凱龍下單機 $545起/月 - ⭐️凱龍商城(餐飲業線上訂餐看這裡!) 凱龍訂餐模組 $690/月 - ⭐️專案客製(各類客製專案看這裡!) 金融量化策略撰寫、商家Line@機器人及各類網站客製架設 - ⭐凱龍官方Line:@979qbbfo
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
你可能也想看
Google News 追蹤
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
MACD 指標,原文名稱Moving Average Convergence & Divergence,透過計算一長一短的價格指數移動平均值間的差值,衍生出股票的買賣訊號。 MACD 上有快線、慢線、柱狀圖這三個區塊。 •快線($DIF) = 12 日 EMA – 26 日 EMA •慢線
Thumbnail
市場上,MACD和RSI是兩種常見的量化交易策略,它們基於不同的技術指標,用於分析股票或其他金融工具的價格走勢,並據此做出決策。
Thumbnail
技術指標源自統計學原理,反映市場變化的概率分佈,而非預測工具。本文了解指標背後邏輯有利活學活用,甚至自行改良創新。
Thumbnail
本文章介紹了股市中常用的技術指標,如相對強弱指標(RSI)、隨機指標(KD)、移動平均線(MA)、動力指標(MTM)、指數平滑異同移動平均線(MACD)、寶塔線。透過這些指標,讓投資者能夠更好地瞭解股票的買賣力道、價格趨勢以及逆勢操作的時機。
這篇文章介紹了多種趨勢指標,包括ADX、布林帶、信封、一目均衡表、移動平均線、拋物線和標準差。透過這些指標可以幫助分析股價趨勢和動向,提供交易建議和潛在投資機會。
Thumbnail
本文討論了趨勢交易策略中的停損模式以及使用動向指標和擺動指標進行交易的情況。提出了更合理的追蹤停損方式以及對ATR指標的改良。作者將在接下來進行測試,並歡迎交流。
Thumbnail
移動平均線是投資初學者的良好起點,以計算收盤價的平均值為基礎,包括簡單移動平均線(SMA)和指數移動平均線(EMA)等。透過均線互動,可執行進出場策略,操作以日線為基準。風險在於即使無趨勢,仍會操作。建議改進方法是添加趨勢濾網,以提升準確度和報酬率。
Thumbnail
移動平均線(Moving Average,簡稱 MA)是金融技術分析中一種基礎且廣泛使用的工具,透過計算一定時期內的平均價格,以平滑價格數據,從而減少市場波動的隨機性,幫助投資者更清晰地看到價格趨勢。
Thumbnail
MACD指標是一個非常流行的技術指標,可用來分析股價的趨勢和動量。它的選股原則、優點和缺點都需要深入了解,才能充分利用它提供的訊號。如果您是投資人,建議使用MACD指標時搭配其他指標使用,以提高分析的精度和可靠性。
Thumbnail
前陣子被YT演算法推薦了這篇: 點我 大約整理了3個重點: MACD指標本身其實是代表多空強度大小,而非網路上常說的多空訊號。 在一個時間格局中用在小周期較合適。 MACD快線慢線和柱體分離時可以試著作為進場多空訊號。 在這裡先小小科普MACD算法 EMA(n)=(前一日EMA(n) ×
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
MACD 指標,原文名稱Moving Average Convergence & Divergence,透過計算一長一短的價格指數移動平均值間的差值,衍生出股票的買賣訊號。 MACD 上有快線、慢線、柱狀圖這三個區塊。 •快線($DIF) = 12 日 EMA – 26 日 EMA •慢線
Thumbnail
市場上,MACD和RSI是兩種常見的量化交易策略,它們基於不同的技術指標,用於分析股票或其他金融工具的價格走勢,並據此做出決策。
Thumbnail
技術指標源自統計學原理,反映市場變化的概率分佈,而非預測工具。本文了解指標背後邏輯有利活學活用,甚至自行改良創新。
Thumbnail
本文章介紹了股市中常用的技術指標,如相對強弱指標(RSI)、隨機指標(KD)、移動平均線(MA)、動力指標(MTM)、指數平滑異同移動平均線(MACD)、寶塔線。透過這些指標,讓投資者能夠更好地瞭解股票的買賣力道、價格趨勢以及逆勢操作的時機。
這篇文章介紹了多種趨勢指標,包括ADX、布林帶、信封、一目均衡表、移動平均線、拋物線和標準差。透過這些指標可以幫助分析股價趨勢和動向,提供交易建議和潛在投資機會。
Thumbnail
本文討論了趨勢交易策略中的停損模式以及使用動向指標和擺動指標進行交易的情況。提出了更合理的追蹤停損方式以及對ATR指標的改良。作者將在接下來進行測試,並歡迎交流。
Thumbnail
移動平均線是投資初學者的良好起點,以計算收盤價的平均值為基礎,包括簡單移動平均線(SMA)和指數移動平均線(EMA)等。透過均線互動,可執行進出場策略,操作以日線為基準。風險在於即使無趨勢,仍會操作。建議改進方法是添加趨勢濾網,以提升準確度和報酬率。
Thumbnail
移動平均線(Moving Average,簡稱 MA)是金融技術分析中一種基礎且廣泛使用的工具,透過計算一定時期內的平均價格,以平滑價格數據,從而減少市場波動的隨機性,幫助投資者更清晰地看到價格趨勢。
Thumbnail
MACD指標是一個非常流行的技術指標,可用來分析股價的趨勢和動量。它的選股原則、優點和缺點都需要深入了解,才能充分利用它提供的訊號。如果您是投資人,建議使用MACD指標時搭配其他指標使用,以提高分析的精度和可靠性。
Thumbnail
前陣子被YT演算法推薦了這篇: 點我 大約整理了3個重點: MACD指標本身其實是代表多空強度大小,而非網路上常說的多空訊號。 在一個時間格局中用在小周期較合適。 MACD快線慢線和柱體分離時可以試著作為進場多空訊號。 在這裡先小小科普MACD算法 EMA(n)=(前一日EMA(n) ×