誠邀您參加全球知名外匯經紀商OANDA的自營交易(Prop Trader)
報名OANDA自營交易(Prop Trader),並通過我們的考核,您就可以使用OANDA提供的資金進行交易,獲得高達90%的交易利潤分成。
優化了挑戰塞交易規則
無最低交易天數限制等優化了挑戰賽的交易規則。
500,000美元交易資金
您可以使用最高500,000美元的資金進行交易。
豐富的交易商品
您可以交易包括外匯、黃金、原油、股票指數等多種商品。
Pine Script(Pine腳本)入門-針對初學者詳細說明種類與函數
1.什麼是Pine Script?
・TradingView的Script語言
此程式語言可製作出運用於TradingView圖表的指標與策略(交易邏輯)。雖然程式語言似乎令人感到難以理解,但Pine Script的使用程序則相對簡易。
透過本篇文章,希望能讓毫無經驗的使用者也能從指標到策略都順利製作成功。
在後面的章節中將會介紹可以透過複製粘貼原始編碼再加上輕微的修改,就可以製作成適合自己的指標與策略,希望大家務必嘗試挑戰看看。
・能利用PineScript做到的事
Pine編輯器
圖表的下方有腳本編碼的編輯器。此為TradingView的標準功能,具有大量可供簡化編碼書寫過程的便利功能。
重點標註功能
可以藉由不同的顏色,區別出預先內建的函數與變數。附加資訊的顯示功能(彈出視窗)
只要以游標點擊Pine語言中的內建函數,便會顯示出附加的資訊。此處會簡單顯示函數的使用方法以及變數的種類等等。
無需參閱相關說明手冊就能夠了解使用方法,帶來極大的便利性。
指標與策略的儲存功能
此功能可儲存自己製成的指標與策略。資料將會儲存於TradingView中的我的帳戶內。
此功能的優點,在於只要處於能夠登入 TradingView的環境中,無論人在何處都可以製作與編輯。
腳本的公開功能
此功能可在TradingView公開並共享交易想法以及製作的腳本。亦可透過開源軟體來公開腳本,目前在全球各地都有使用者公開了各式各樣的交易想法。
另外,在 TradingView公開的指標並不會消失,會持續保存在TradingView中。
正因如此,此系統的魅力也在於偏好的指標不會輕易消失。
若公開的腳本為指標,便能在下方的位置找到,大家可作為參考。
2.Pine Script有兩種類別
・PineScript共有「indicator型」以及「strategy型」兩種類別
・ indicator型(適用於Version5。Version4則是study型。)
此為可供書寫指標的類別(下圖)。能夠輕易製作出主視窗的布林通道、子視窗的MACD交叉等等。
亦備有使用頻繁的內建函數(後述),因而可簡單組成許多物件。
實際製作指標的腳本時,可從右下方開啟選單後,選擇製作新指標的項目。
接著寫入宣告為指標的Indicator並開始製作。
・strategy型
此為可供書寫交易買賣策略的類別。能夠進行自動化交易,並驗證(回測)過去的買賣結果。
可藉此得知自己想出的交易策略在何時最有優勢或劣勢,對於交易人可說是最重要的一個項目。
請務必善加利用對交易有所幫助的回測。
此策略可以在畫面下方目測觀察,藉以分析交易的走勢。
實際製作策略的腳本時,可從右下方開啟選單後,選擇製作新策略的項目。
接著寫入宣告為策略的Strategy並開始製作。
3.什麼是Pine Script的函數?
・什麼是「函數」
函數這個詞語時常在程式中出現。以最淺顯易懂的文字來說明,即為「能夠進行○○的功能」。
意即可將輸入的內容替換成其他項目的功能。
上圖只是簡單的範例,其實函數能夠整合複雜的計算與處理過程。
參數也是另外一個在書寫程式時頻繁出現的詞語。
在上圖當中,參數即為5或3等置入函數(輸入)的數值。
透過參數的移動,能夠得出15這個結果。
而得出的15在程式中被稱為返回值。
TradingView為頻繁使用的操作內容充分準備了內建函數。
藉由靈活運用,即可輕鬆簡便地寫出腳本。
・關於Built-in函數(內建函數)
Built-in函數是預先準備在Pine腳本中的函數。在進行交易的腳本中,特別便利的一點即是能夠輸入各種複數參數並加以運算。
例如:當計算指數平滑移動平均線時,需要進行以下的運算。(便於追蹤當前走勢的移動平均線)
到了這樣的程度,雖然亦可寫出所有的腳本,但一旦想要均除的期間是100天、200天便相當困難。
以下在此處使用Built-in函數。
TradingView中用於指數平滑移動平均線的Built-in函數為ta.ema。
若以此來書寫
指數平滑移動平均線 = ta.ema(價格, 平均週期※)
※如果是3天平均的輸入3除了指標以外,也為了畫面的顯示功能等部分準備了這樣的Built-in函數,可透過靈活運用來有效減少書寫腳本時的失誤。
下圖的範例只列出了3種兩個數值的交叉,其他還有著各式各樣的Built-in函數,足以書寫出簡單有力且可信度高的腳本。
Built-in函數名稱 | 返回值 |
ta.sma(s, length) | s期間內length的簡單移動平均值 |
ta.ema(s, length) | s期間內length的指數平滑移動平均值 |
ta.cross(s1,s2) | s1,s2序列交叉時true |
ta.crossover(s1, s2) | s1在s2上方交叉時true |
ta.crossunder(s1, s2) | s1在s2下方交叉時true |
4.什麼是Pine Script的變數?
・什麼是變數
由於變數出現的次數極為頻繁,因此務必深入了解。程式中的變數,意指可供輸入數值與文字等內容的區域。
可想像成「放進了數值的箱子」。
在程式中,需要依照欲操作的數值來決定放置的箱子種類。
其可稱為變數的型。
以較極端的例子來形容,若搞錯了指定的型,就像是將應該倒入瓶中的水倒進了籃子中,導致水噴濺溢出而不敷使用。
只要輸入正確的變數,即可無限次瀏覽數值,亦可輸入其他不同的數值。
請務必準備正確的箱子(型)。
雖然有時也能夠放入不對的箱子(型),但是當中的內容物便可能產生變化,此點需多加留意。
・統整Pine腳本上的書寫方式
變數型的類別
代表性的類別如下所示。變數的型 | 操作的數值 | 範例 |
---|---|---|
Int型 | 整數 | 123,-123 |
float型 | 小數 | 12.34, -12.34 |
string型 | 文字 | ABCD |
bool型 | 真假值 | true,false |
使用變數的步驟
-
①決定箱子的種類 = 決定變數的型。
②為箱子取名字。 = 決定變數的名字。
③在箱子中輸入數值。 = 代入變數的數值。
其被稱為「宣告變數」。
以下為實際的範例。
使用int型的變數,變數的名稱決定取為「i」。
接著代入初始數值14並進行處理。
變數可透過這樣的方式加以運用。
・關於Built-in變數
針對使用頻繁的K線開盤價、收盤價、高價、低價等項目,也準備了可供輕鬆運用的Built-in變數。Built-in變數名稱 | 返回值 |
---|---|
open | K線的開盤價 |
close | K線的收盤價 |
high | K線的高價 |
low | K線的低價 |
volume | 交易量 |
只要在腳本上先置入Built-in變數的名稱,便能夠參考各個數值。
※但是自己製作的變數名稱無法與預先準備好的變數名稱重複。
5. 什麼是Pine Script的運算子?
・什麼是運算子
其可大致分為算術運算與邏輯運算,是在腳本上書寫邏輯時不可或缺的項目。①算術運算子
此為執行加法、減法、乘法、除法的項目。-
此處是將變數如下定義的範例。
var1=6,var2=3,var3=5
算術運算子 | 使用範例 | 實例 | |
---|---|---|---|
+(★) | 加法 | var1+var2 | 6+3=9 |
+=(★) | 加法代入 | var1+=var2 | 執行6+3、 在var1中代入9 |
– | 減法 | var1+var2 | 6-3=3 |
-= | 減法代入 | var1-=var2 | 執行6-3、 在var1中代入3 |
* | 乘法 | var1*var2 | 5×3=15 |
*= | 乘法代入 | var1*=var2 | 執行6x3、 在var1中代入18 |
/ | 除法 | var1/var2 | 6÷3=2 |
/= | 除法代入 | var1/=var2 | 執行6÷3、 在var1中代入2 |
% | 除法的餘數 | var1%var3 | 執行6/5=1.2 剩餘的0.2成為返回值 |
%= | 除法的餘數代入 | var1%=var3 | 在var1中代入剩餘的0.2 |
標有(★)記號的兩項亦可使用文字。
②邏輯運算
邏輯運算共有邏輯運算子以及比較運算子兩種。邏輯運算子
其可用於判斷各式各樣的條件。
-
此處的變數A,B必須是邏輯數值。
也就是必須宣告bool型。
邏輯運算子 | 使用範例 | 實例 |
---|---|---|
and | A and B | 若A與B都是真的、就會返回真 |
or | A or B | 若A與B其中之一是真的、就會返回真 |
not | not A | 若A是假的、就會返回真 |
if | if A | 若A是真的、其後即可執行後續處理。 |
比較運算子
其同樣可用於判斷各式各樣的條件。
比較運算子 | 使用範例 | 實例 |
---|---|---|
< | A<B | A小於B時、就會返回真 |
<= | A<=B | A小於或等於B時、就會返回真 |
> | A>B | A大於B時、就會返回真 |
>= | A>=B | A大於或等於B時、就會返回真 |
== | A==B | A等於B時、就會返回真 |
!= | A!=B | A與B相異時、就會返回真 |
以上說明了算數運算子、邏輯運算子、比較運算子,其可透過組合運用來書寫交易邏輯的核心。
誠邀您參加全球知名外匯經紀商OANDA的自營交易(Prop Trader)
報名OANDA自營交易(Prop Trader),並通過我們的考核,您就可以使用OANDA提供的資金進行交易,獲得高達90%的交易利潤分成。
優化了挑戰塞交易規則
無最低交易天數限制等優化了挑戰賽的交易規則。
500,000美元交易資金
您可以使用最高500,000美元的資金進行交易。
豐富的交易商品
您可以交易包括外匯、黃金、原油、股票指數等多種商品。