第一次學Multicharts程式碼就上手-PowerLanguage語法教學(一)

Multicharts是一套可以全自動進行交易的程式交易軟體,它所使用的程式語言是一種很淺顯易懂的程式語法—PowerLanguage,對於初次接觸程式的人來說非常的好上手。

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

    稱呼

    電子郵件

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

    投資經驗

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

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

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

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

    還有什麼想詢問的?

    隱藏中
    MultiCharts優惠整理!軟體費用特價與折扣代碼
    MultiCharts線上課程限時特價中

    MultiCharts優惠整理!軟體費用特價與折扣代碼

    一、PowerLanguage 基本語法要素

    Multicharts在執行程式交易之前,需要先在 PLE 編譯器上撰寫好程式碼,也就是把原先人為的交易想法轉化成電腦可以執行的程式語言。這樣程式才會依照預先輸入好的指令,在交易時段全自動進行交易,執行進場、出場、停損停利等動作。

    就像每一種語言,都由不同的基本詞彙構成。而在 Multicharts的 PowerLanguage 當中,基本的程式碼分為以下幾種要素(在編譯器中為了讓使用者方便識別,預設會用不同的顏色呈現):

    程式碼 說明
      標點符號 程式碼中通常會包含標點符號,絕大多數程式碼都是使用半形符號。舉個例子來說,在 PowerLanguage 要結束一行程式碼要使用分號「 」,預設為黑色
      數學公式 基本的 + – x ÷,還有< > =,預設為黑色
      文字串 只要使用雙引號「“文字”」夾住的都是文字,預設為淺綠色
      介係詞 預設為紅色,很少使用可忽略。
      宣告用的
      變數
    內部變數(variable)/外部變數(input):預設為藍色
      其他內建
      保留字
    組成策略的基礎要素,在 PowerLanguage 中已經建立好常用的,內建字是無法被更改的,功能五花八門,日後我們會有文章介紹。內建字包含以下幾種:
    ( 1 )交易相關字(BuySellStopLimit 等)預設藍色
    ( 2 ) K 棒相關字(OpenHighLowClose等)預設藍色
    ( 3 )日期時間相關字(YearMonthDate等)預設藍色
    ( 4 )其他保留字(plotentryprice等)預設藍色
    ( 5 )內建函數(AverageBollingerBand等)預設深紫色
    ( 6 )預設數值、布林變數(Value1~99Condition1~99預設深紅色

    以之前 PLE 教學文章的均線舉例如下圖:

    需要免費MultiCharts助教支援?

      填寫表單,符合資格者即可獲得
      🔸新手教學懶人包
      🔸不定時線上線下講座
      🔸免費量身訂做個人的程式
      🔸MultiCharts優惠

      稱呼

      LINE id

      電子郵件

      還有什麼想詢問的?

      Mc 101209091709
      Mc 101209091709

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

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

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

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

      1. 內部變數 (variable)

      PowerLanguage的變數為 variable,等同 var、vars 或 variables,程式碼預設淺紫色

      一樣以上面的例子說明,在 var 之後給定變數名稱,並以小括號「()」宣告要代入的初始預設值。如果同時要宣告多的變數,就以逗號「 , 」區分開,最後用分號「 ; 」結尾。後續只要提到 x1 和 x2 就會自動帶入宣告的 3。

      要特別注意的是,var 只能在PLE編譯器內修改,不能作為參數最佳化。

      2. 外部變數(input)

      外部變數為 input ,同 inputs,也可以直接稱為參數。程式碼預設桃紅色

      input 和 var 撰寫的方式一樣,用「()」宣告要代入的初始值 。唯一不同的地方是 input 可以在 MC 主程式直接修改參數,不須進到MC的PLE編譯器內調整。

      若我們要做參數最佳化,則需要將參數宣告成input,否則是var的話則無法跑參數最佳化。

      3. 在 MC 圖表中修改參數

      本篇文章的實作使用的程式碼建議先參考以下文章設定好喔!

      Input 可以直接從圖表上修改,也能夠跑參數最佳化。調整的方式只要在 MC 圖表中,右鍵點選設定訊號,在跳出視窗中,可以看到中間有當初設定的參數。接著在點選右邊的「設定」,就可以在「參數」視窗修改數值!

      在 MC 圖表中修改參數-1
      在 MC 圖表中修改參數-2

      4. 設定參數最佳化

      同樣在圖表中右鍵,跳出視窗中選擇「最佳化」,再點選第一個的「定期最佳化」-「下一步」。

      MultiCharts 設定參數最佳化 -1
      MultiCharts 設定參數最佳化 -1

      在最佳化設定中,我們這邊將最終值調整成 10,之後再點「最佳64組合方式」就會獲得參數「最佳化報告」。可以從 2D 和 3D 圖示中分析最佳的參數。

      MultiCharts 設定參數最佳化 -3
      MultiCharts 設定參數最佳化 -4

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

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

      1. 數值

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

      PowerLanguage也有已經內建好的變數 value1~value99,預設為深紅色,不用宣告就可直接使用。

      2. 文字串

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

      3. 布林值

      布林值為 TrueFalse,預設深藍色。 ,它是一個是非題,不是 True 就是 False。

      和數值一樣也有內建的變數condition1~condition99,一樣不用宣告可以直接使用。像是判斷收盤價是否有大於均線,就是一個布林值的運用。

      MultiCharts優惠整理!報價源與軟體折扣


      量化通粉絲社群,一起討論程式交易!

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

      加入臉書社團「程式交易 Taiwan」即時獲取實用的資源!

      東尼 Tony
      東尼 Tony

      十年餘法人級投資經驗,曾任加密貨幣量化基金經理人與投資策略長、AI智能基金經理人、證券期貨商自營部操盤手,管理資金規模最高超過七億元。
      熟悉各類金融商品操作與加密貨幣領域,在量化交易、指標設計、策略模組打造、投資組合配置,有著深厚的經驗。
      為”智慧型基金投資系統”之專利創作人,多次受邀至各大學與企業擔任講師。

      文章: 60

      發佈留言

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