第一次學TradingView程式碼就上手:基本架構與變數介紹-Pine Script語法教學(一)

TradingView是功能齊全的看盤軟體,還不清楚的同學,可以看之前的介紹文章👉TradingView

立即訂閱電子報,掌握最新資訊!

    稱呼

    電子郵件

    以下非必填,但若您願意分享,我們將能推送更精準的內容給您

    投資經驗

    是否為理工科背景、工程師或有寫程式的經驗?

    有興趣的主題
    量化交易台股期貨海外期貨虛擬貨幣美股

    有興趣的量化交易軟體/平台
    不清楚MultiChartsTradingViewPythonXQ

    想透過量化交易達成甚麼目的?
    不確定自動交易選股回測投資績效量化自己的投資方法想找現成的策略套用

    還有什麼想詢問的?

    零成本體驗TradingView台指期量化交易|全自動下單,小台微台也適用

    一、Pine Script 基本語法要素

    Pine Script是一種特定於TradingView平台的腳本語言,可用於創建交易策略,指標和其他技術分析工具。以下是Pine Script的基本語法要素:

    打開TradingView看盤畫面=>點擊Pine編輯器,就會出現以下畫面。

    截圖 2023 03 03 上午10.56.10
    基本的程式碼分為以下幾種要素(在編譯器中為了讓使用者方便識別,預設會用不同的顏色呈現):
    程式碼說明
    標點符號Pine Script鮮少使用標點符號,除了在三元運算子會使用問號 ? 及一般函數用來分隔參數的逗號 , ,預設為淺綠色
    數學公式基本的 + – < > =,預設為淺綠色,還有math.sin、math.cos、math.tan…等,預設為藍色
    文字串只要使用雙引號「“文字”」夾住的都是文字,預設為綠色
    介係詞Pine Script沒有介係詞可忽略。
    宣告用的變數內部變數(var)/外部變數(input):預設為淺綠色
    其他內建保留字組成策略的基礎要素,在 Pine Script 中已經建立好常用的,內建字是無法被更改的,功能五花八門,日後我們會有文章介紹。內建字包含以下幾種:
    ( 1 )交易相關字(strategy.long、strategy.short(預設橘紅色)、Stop、Limit (預設白色)等)。
    ( 2 ) K 棒相關字(Open、High、Low、Close等)預設橘紅色
    ( 3 )日期時間相關字(Year、Month、Date等)預設藍色
    ( 4 )其他保留字(plot、strategy.opentrades.entry_price等)預設藍色。
    ( 5 )內建函數(math.avg、ta.bb等)預設藍色
    ( 6 )預設數值、布林變數預設橘紅色
    截圖 2023 03 03 下午1.00.59
    程式碼翻譯區:

    如果收盤價大於3均線,就在下一根K棒市價買入。

    如果收盤價小於3均線,就在下一根K棒市價賣出。

    訂閱電子報,即時獲取TradingView快閃優惠

    二、內部變數(variable)/外部變數(input)

    當我們在撰寫程式碼的時候,需要先定義一些基本的資料,來讓電腦知道這個字串之後在程式裡面代表的意思,執行這個動作就叫作「宣告」,而拿來作宣告的程式碼就是內部變數var、 外部變數 input,可用來宣告的變數類型包含「數值」、「文字串」、「布林值」 。

    一個交易策略可以用暴力法去撰寫,但會造成程式碼冗長,可讀性也會很低。如果善用變數,把常常需要計算的的數值儲存到我們設定好的變數當中,程式碼可以變得簡潔又容易維護修改。

    例如:計算均線的程式碼為 ta.sma(close,5),在每次需要使用到均線的值都需要寫這麼長的程式碼,但我們可以定義一個變數叫做 MA,讓 MA= ta.sma(close,5) ,日後需要用到均線只需要使用 MA 這個字,整段程式碼會變得易讀輕便很多。

    1. 內部變數 (variable)

    Pine Script的變數為 var,程式碼預設淺綠色

    一樣以上面的例子說明,在 var 之後空格給定變數名稱,並以等於「=」宣告要代入的初始預設值。後續只要提到 x 和 y 就會自動帶入宣告的 3。

    截圖 2023 03 03 下午1.00.59拷貝

    2. 外部變數(input)

    外部變數為 input ,可以直接稱為參數。程式碼預設藍色

    input 和 var 撰寫的方式不同,要用「=」接著input.int宣告要代入的初始值 。兩者最主要的差別是 input 可以在 TV 看盤區域直接修改參數,不須進到 TV 的Pine編譯器內調整。

    若我們要做參數最佳化,則需要將參數宣告成input,否則是var的話則無法跑參數最佳化。(BTW TV因為自身平台算力成本的問題,是沒辦法自動跑參數最佳化的)

    截圖 2023 03 03 下午2.01.57

    3. 在 TV 圖表中修改參數

    把剛在pine編輯器內打好的策略=>點擊新增到圖表

    截圖 2023 03 03 下午2.08.29
    就會在上方的商品圖表上掛單,也可以順便點擊=>策略測試器=>概要,查看策略的回測績效如何。
    截圖 2023 03 03 下午2.05.42 1
    點擊=>MA策略設定(齒輪符號)=>這邊可以自由輸入x與y值=>確定
    截圖 2023 03 03 下午2.06.37
    這樣就完成了策略參數的輸入,可以自由的更改input的數值,然後透過績效來選取適當的input。

    三、變數類型:數值、文字串、布林值

    變數的類型包含數值、文字串和布林值,以下一一說明。

    1. 數值

    數值包含正數、負數、小數、分數等等,上方的均線程式碼宣告的變數類型就是數值,預設橘色

    2. 文字串

    文字串必須要用 “文字” 夾住,預設為綠色。因為文字無法進行數學運算,大多使用在訊息傳達。

    3. 布林值

    布林值為 True 與 False,預設橘紅色。 ,它是一個是非題,不是 True 就是 False。常用於像是判斷收盤價是否有大於均線,就是一個布林值的運用。


    加入LINE社群量化交易討論群」無壓力討論與分享!

    加入Discord 「量化交易討論群」即時獲取實用的資源!

    Anti Fraud 10140382164
    Anti Fraud 10140382163
    Anti Fraud 10140382165
    量化通QuantPass
    量化通QuantPass

    量化通是個致力於全民量化金融教育的社群,我們希望透過由淺入深的內容,帶領大家以正確觀念來實踐自動化的金融投資研究分析。

    文章: 233

    發佈留言

    發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *