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

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

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

    電子郵件

    有興趣的主題
    量化交易金融知識台灣股市國內期貨海外期貨虛擬貨幣

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

    還有什麼詢問的?

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

      文章: 57

      發佈留言

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