如果沒有正確的交易工具,就無法進行有效的技術分析。強大的交易策略有助於避免常見錯誤,改善風險管理,提升識別並利用機會的能力。
對許多人來說,TradingView是一個有問必答的圖表平台。這款強大的HTML5網路應用程式提供技術分析工具中心,幫助數百萬用戶追蹤外匯、加密貨幣以及傳統股市的動向。
TradingView擁有許多強大功能:允許用戶追蹤多個交易平台上的資產,並在其社交網站上發布對交易的看法。本文將重點放在其客製化功能。我們將使用TradingView的專屬程式語言Pine Script,它允許我們對圖表佈局進行更細緻的控制。
開始操作吧!
Pine Script是一種可用來修改TradingView圖表的腳本語言。 TradingView平台已經提供了許多類似功能,但Pine Script的功能更強大。無論是想更換K線圖顏色,還是想回溯測試一個新策略,Pine Editor支援您依據自身需求客製化即時圖表。
程式碼本身已有完備記載,所以一定要查看用戶手冊了解詳情。本文旨在討論一些基礎知識,並介紹在加密貨幣交易中可以派上用場的指標。
Pine Script簡單易用。我們編寫的任何程式碼都是在TradingView的伺服器上運行,因此我們可以透過瀏覽器存取編輯器並開發我們的腳本,無需額外下載或配置。
在本教程中,我們將繪製比特幣/幣安USD(BTCBUSD)貨幣對圖表。如果您還沒有幣安帳戶,請建立免費帳戶(也可建立專業會員帳戶,但在本指南中沒有必要)。
打開鏈接,會看到一張類似於以下的圖表:
-align: center" data-block-id="704c6755-b0ca-4601-a082-a89cfbd39fdb">您的圖表資料可能更新。
現在,我們想取得擁有豐富功能的圖表,點選按鈕進入。然後我們就可以看見更詳細的視圖、繪圖工具、繪製趨勢線的選項以及其他功能。
功能齊全的圖表。您可透過點擊高亮選項卡上方的視圖來調整時間表。
可以看到,我們已經有幾行程式碼了。讓我們點擊加入圖表,看看會發生什麼。
將第二個圖表加入原始圖表下方。新圖表剛好顯示相同數據。將滑鼠放在我的腳本上,並點擊×刪除。現在,讓我們來研究一下程式碼。
研究(「我的腳本」)
第一行只是設定我們的註解。僅需您想呼叫的指標名稱(本例為「我的腳本」),但我們也可以加入一些可選參數。其中一個是覆蓋,該參數指示TradingView將指標放到現有圖表中(而不是新圖表中)。從我們列舉的第一個例子可以看出,預設值為false。雖然現在還看不到它是如何操作的,但overlay=true會將指標加入現有圖表中。
繪製圖表(收盤)
這條線是繪製比特幣收盤價圖表的指令。 繪製圖表只是提供我們一張折線圖,但我們也可以呈現K線圖和長條圖,我們很快就會看到。
現在,讓我們試試以下方法:
//@version=4 study("My Script", overlay=true) plot(open, color=color.purple)
加入完畢後,應該可以看到第二個圖表(看起來像是原圖表向右移動了)。我們做的是繪製開盤價圖表,由於當天的開盤價就是前一天的收盤價,所以這些圖表走勢完全相同是合理的。
好了!讓我們刪除目前註解(記住,點擊右鍵並點擊刪除指標即可實現)。將滑鼠放在比特幣/BUSD上,並點擊隱藏按鈕,可刪除目前圖表。
許多交易者喜歡使用K線圖,比起我們剛才做的那種簡單圖表,K線圖能為我們提供更多資訊。接下來讓我們將繪製的圖表加進去。
//@version=4 study("My Script", overlay=true) plotcandle(open, high, low, close)
開始得很順利,但顏色單調讓它看起來有些乏味。在理想情況下,當開盤價低於收盤價時,K線圖應該呈現紅色,如果收盤價高於開盤價,K線圖呈現綠色。我們在plotcandle()函數上方新增一行:
//@version=4 study("My Script", overlay=true) colors = open >= close?color.red: color.green plotcandle(open, high, low, close)
這要查看每一張K線圖,檢查開盤價是否高於或等於收盤價。如果情況如此,就意味著價格在這段時間內下跌,K線圖將變成紅色。否則會變成綠色。修改plotcandle()函數,加入此顏色方案:
//@version=4 study("My Script" , overlay=true) colors = open >= close?color.red: color.green plotcandle(open, high, low, close, color=colors)
如果您尚未刪除現有指標,請將其刪除,並將此指標新增至圖表。現在我們應該就繪製了一張類似K線圖的圖表。
幹得漂亮!
我們已經完成了一些基本操作。讓我們來看看我們的第一個自訂指標——指數移動平均線,或EMA。這個工具很實用,它能使我們過濾掉任何市場噪音,使價格行為變得平緩。
EMA與簡單移動平均線(SMA)略有不同,它更看重最近的數據。它傾向於對突然的變化作出更多反應,並經常用於短期操作(例如,在日間交易中)。
我們也可以畫出SMA,這樣我們之後就可以對兩者進行比較了。將該行新增至您的腳本。
plot(sma(close, 10))
這繪製的是前十天平均數圖表。調整括號裡的數字,看長度變化時,曲線是如何改變的。
a017a435_ p>
SMA是根據前十天的資料。
EMA的理解比較複雜,但不用擔心。我們先來分析這個公式:
EMA=(收盤價-前一天的EMA)*倍數-前一天一天的EMA
這說明什麼呢?每一天,我們會在前一天的基礎上計算出一個新的移動平均線值。倍數是「加權」最近的天數,用以下公式計算:
倍數=2/(EMA長度+1 )
與簡單移動平均線一樣,我們需要為EMA的長度賦值。在句法上,繪製EMA函數與繪製SMA函數類似。將其與SMA一起繪製,您就可以將兩者進行比較了。
//@version=4 study("My Script", overlay=true) plot(sma(close,=4 study("My Script", overlay=true) plot(sma(close,, 10)) plot(ema(close, 10))
您會看到這兩種類型的MA略有不同。
➟ 想要開啟加密貨幣之旅?歡迎前往幣安買比特幣!
到目前為止,我們已經手動編寫了我們的程式碼,您會有一個直觀感受。現在我們會介紹一些能夠節省時間的功能,特別是如果我們要編寫更複雜的腳本,但又不想從頭開始的時候。
在編輯器右上方,點選新建。會得到一個顯示各種不同技術指標的下拉式選單。點選移動平均指數,查看EMA指標的原始碼。
點選並將其加入圖表中。
這個指數我們的不同,您會注意到input()函數。從可用性角度來看,這些都很不錯,因為您可以點擊此方塊…
…並點擊設定的齒輪圖標,在彈窗中輕鬆更改一些數值。
我們將在下一個腳本中加入幾個input()函數來示範這個內容。
相對強弱指數(RSI)是技術分析中的另一個重要指標。稱為動量指標,衡量資產買賣的價格。在0到100範圍內,RSI得分嘗試告知投資人資產是超買還是超賣。通常情況下,如果一項資產的得分小於或等於30分,就可能被認為是超賣,而得分大於或等於70分,就可能是超買。
前往新建>RSI策略,您可親自查看。 RSI一般以14為週期進行測量(即14小時或14天),但您可以自由調整此設定以適應自己的策略。
將RSI加入圖表中。您應該會看到現在顯示的幾個箭頭(由該程式碼中的strategy.entry()函數定義)。 RsiLE表示延長資產的潛在機會,因為它可能會被超賣。 RsiSE強調在資產超買時可能做空的點。請注意,與所有指標一樣,您沒必要將這些指標作為價格將要下降/增加的鐵證。
有一個方法可供我們測試自己的自訂指標。雖然過去的表現不能保證未來的結果,但對我們的腳本進行回測可以使我們了解其在捕捉訊號方面的有效性。
下面我們將舉一個簡單的腳本範例。我們計劃一個簡單明了的策略,當比特幣的價格跌至1.1萬美元時進入多頭頭寸,當價格超過1.13萬美元時退出多頭頭寸。然後我們可以看到這項策略在歷史上的獲利情況。
//@version=4 strategy("ToDaMoon", overlay=true) enter = input(11000) exit = input(11300) price = close if (price <= enter) strategy.entry("BuyTheDip",strategy.long,comment="BuyTheDip") if (price >= exit) strategy.close_all(comment="SellTheNews")
這裡我們把進入和退出定義為變數——兩者都是輸入,意味著我們以後可以在圖表中對兩者做出更改。我們也設定了價格變量,取每期的收盤價。然後,我們有一些邏輯按照if句式進行。如果括號中部分為真,那麼它下面的縮排區塊就會被運行。否則,會被跳過。
因此,如果價格小於或等於我們期望的入市價,且第一個表達式評估為真,我們將建立一個多頭頭寸。一旦價格等於或超過所需的退市價,第二個區塊將被觸發,關閉所有未平倉部位。
我們用箭頭為圖表加上註釋,顯示我們進入/退出的位置,所以我們用評價參數來指定標記這些點的內容(在本例中是"BuyTheDip"和"SellTheNews")。複製程式碼,並將其新增至圖表。
現在您可以在圖表中看到這些指標。可能需要放大。
TradingView會自動將您的規則套用至較早的資料。您還會注意到,TradingView從Pine Editor切換到策略測試者選項卡。以便讓您看到潛在利潤概覽、交易清單以及各指標的表現。
我們已經進入和退出的頭寸。
現在,我們可以利用目前為止看到的一些概念來編寫我們自己的腳本。我們會將EMA和RSI結合起來,並用它們的數值來影響K線圖的顏色,讓我們可以輕鬆看懂。
但這並不構成理財建議,在使用這些指標方面,客觀地說並沒有完全正確的方法。與其他所有工具一樣,應該將其與其他工具結合,制定自己的投資策略。
現在讓我們來研究一下新腳本。從圖表中刪除所有指標,同時隱藏比特幣/BUSD圖表,這樣我們就有一個簡潔的操作背景了。
讓我們先研究定義。隨意命名,只要確保設定overlay=true即可。
study(title="Binance Academy Script", overlay=true)
記住我們前面的EMA公式。我們需要使用EMA長度來計算出倍數。讓我們把它變成需要整數位的輸入,所以不要留小數位。我們也會設定最小值(minval),以及預設值(defval)。
study(title="Binance Academy Script", overlay=true) emaLength = input(title="Binance Academy Script", overlay=true) emaLength = input(title="Length ", type=input.integer,defval=25, minval=0)
根據此新變量,我們可以計算出圖表中每張K線圖的EMA值:
study(title="Binance Academy Script", overlay=true) emaLength = input(title="EMA Length", type=input.int, type=input.int,defval =25, minval=0) emaVal = ema(close, emaLength)
很好。接下來讓我們來看看RSI。我們將以類似方式為它賦一個長度值:
study(title="Binance Academy Script", overlay =true) emaLength = input(title="EMA Length", type=input.integer,defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = input(title="RSI Length", type=input .integer,defval=25, minval=0)
現在,我們可以計算一下:
study(title="Binance Academy Script", overlay=true) emaLength = input(title="EMA Length", type= input.integer, defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = input(title="RSI Length", type=input.integer, defval=25, minval=0) rsiVal = rsi(close , rsiLength)
在這個階段,讓我們把決定K線圖顏色的邏輯結合在一起,這些顏色要取決於EMA和RSI的值。讓我們假設(a)K線圖的收盤價超過EMA,(b)RSI高於50。
為什麼要這樣假設?因為您可能會決定將這些指標結合起來使用,從而了解何時做多或做空比特幣。例如,您可能認為滿足這兩個條件意味著現在是做多的好時機。或者反過來說,您可以用它來提醒自己什麼時候不要做空,即使其他指標給出的參考恰好相反。
因此,我們的下一行程式碼會類似於這樣:
study(title="Binance Academy Script", overlay=true) emaLength = input(title="EMA Length", type=input.integer,defval=25, defval=25, defval=input.integer, defval=25, 0) emaVal = ema(close, emaLength) rsiLength = input(title="RSI Length", type=input.integer,defval=25, minval=0) rsiVal = rsi(close, rsiLength) colors = close > emaVal and rsiVal > 50? color.green: color.red
如果我們把這句話翻譯成簡明英語,我們其實就是在說,如果EMA值超過收盤價且RSI分數超過50,K線圖就會變成綠色。否則會變成紅色。
接下來,繪製EMA圖表:
study(title="Binance Academy Script", overlay=true) emaLength = input(title="EMA Length", type=input.integer,defval=25, minval=0) emaVal = ema (close, emaLength) rsiLength = input(title="RSI Length", type=input.integer,defval=25, minval=0) rsiVal = rsi(close, rsiLength) colors = close > emaVal and rsiVal > 50? color. green: color.red plot(emaVal, "EMA")
最後,繪製K線圖,請務必包含顏色參數:
study(title="Binance Academy Script", overlay=true) emaLength = input(title="EMA Length", type= input.integer,defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = input(title="RSI Length", type=input.integer,defval=25, minval=0) rsiVal = rsi(close , rsiLength) colors = close > emaVal and rsiVal > 50?color.green: color.red plot(emaVal, "EMA") plotcandle(open, high, low, close, color=colors)
然後,腳本就寫好了!把它加到圖表中,看看它的運作情況。
一張含EMA/RSI指標的比特幣/BUSD指標圖表。
在本文中,我們透過一些基本範例來向您展示了TradingView上Pine Editor的功能。現在,您應該有信心對價格圖表進行簡單註釋,以便從自己的指標中獲得更多見解。
我們在本文中只介紹了其中幾個指標,但建立更複雜的指標並不難-可選擇新建內建腳本或自行編寫內建腳本。
依然缺乏靈感?下列文章可能為您的下一個專案提供一些想法:
《拋物線指標簡明指南》
《斐波那契回呼學習指南》
《先行指標與落後指標詳解》
li>指數平滑移動平均線(MACD)指標詳解