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

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


追蹤量化通的粉絲專頁量化通QuantPass」即時獲取實用的資源!

一、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 教學文章的均線舉例如下圖:

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

發佈留言

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