首頁 > 用交易程式,為自己開啟交易大門吧! > Multicharts 常用內建保留字-PowerLangu...

Multicharts 常用內建保留字-PowerLanguage語法教學(二)

Multicharts
Multicharts 教學
程式交易軟體
觀念分享

上一篇文(第一次學 Multicharts 程式碼就上手),我們介紹了 Multicharts 的程式語法 PowerLanguage 的基本要素。Multicharts 是一套專門拿來做程式交易的軟體,所以在Multicharts 內建的程式語法編譯器`(PowerLanguage Editor)中,已經把程式交易當中常常會使用到的情境,預設為程式的內建保留字。例如:進出場價、進場時間、部位 、 未平倉損益 、 最大曾經虧損等等。而我們在撰寫程式碼的時候的也會自動跑出提示,讓我們可以更節省時間的去寫一段程式碼。

Multicharts 的 PowerLanguage Editor 於編寫程式時會自動跑出提示(打Cl,系統自動帶出相同開頭的字)

PowerLanguage 的英文字母大小寫並無區別,本篇文章會介紹幾種常用的內建保留字,內建字的預設顏色都是藍色。我們也可以透過編譯器的代碼表中查找程式碼相關的使用方式。

Multicharts常用內建字 – 代碼表查詢內建字與內建函數

Multicharts PowerLanguage 常用內建保留字

布林邏輯判斷內建字:And、Or、Not

and ornot 為布林邏輯判斷的內建字, and 是所有條件都需要符合才會成立,or 則是其中的一個條件符合就會成立,not 則是要該條件不符合才會成立。

內建字說明
And且,所有條件須皆成立。if 上漲 and 成交量放大 then 買進。要兩個條件都符合才會買進。
Or或,只要有一個條件成立。if 上漲 or 成交量放大 then 買進。只要一個條件符合就會買進。
Not非,該條件不符合才會成立。if not 上漲 then 買進。只要條件不符合就會買進。
Multicharts PowerLanguage 布林邏輯判斷內建字:And、Or 與 Not

另外還有比較進階的使用方式,就是用 () 串聯。

if (  上漲 and 成交量放大  ) or 收盤價>均線 then 買進。

以上的例子當中,只要 (上漲 and 成交量放大 ) 或是 收盤價>均線 ,當中兩組有一組條件成立就會觸發買進訊號。而其中我們將 (上漲 and 成交量放大 ) 用 () 綁釘在一起,使之成為同一組的條件。

K棒價格相關內建字:Open、High、Low 、Close

程式交易的的策略,大多數是基於 K 棒來作為條件判斷或是指標計算。在 Multicharts 當中,K棒價格的開高低收就是很直觀的OpenHighLowClose

除此之外 value[N] 是前 N 根 K棒的值,例如:C[1] 代表的是前一根 K棒的收盤價、C[2] 代表的是前兩根K棒的收盤價、 H[2] 就是前兩根 K棒的收盤價。

內建字 說明
Open開盤價,縮寫為 O
High最高價,縮寫為 H
Low最低價,縮寫為 L
Close收盤價,縮寫為 C
value[N]向前數N根K棒,當時的value值
Multicharts PowerLanguage K棒價格相關內建字:Open、High 、 Low 、 Close

時間相關內建字:Year、Month、Date、Time

時間,在我們寫策略的時候也是常常使用到的條件判斷。時間可細分為年、月、日、時。在討論時間相關內建字之前,我們必須先了解在 MultiCharts PowerLanguage 的架構中,日期與時間的顯示方式。

在 MultiCharts 的日期格式為 YYYMMDD。舉個例子,2021/1/1在 MultiCharts 會顯示成1210101。
1210101當中,前三位數字121為年份, PowerLanguage 的語法中,年份預設為西元1900年起算之年數,所以所使用的年份要在減去1900。所以 2021年1月1號,就會顯示成「1210101」(2021-1900=121)。
而月份與日期就相對直觀很多了,須把未滿兩位數的數字用0補滿。
而 MultiCharts 的時間格式為 HHMM,採24小時制,比如說下午兩點零一分,為「1401」。早上八點四十五分 ,為「0845」。

🕑呼叫內建字 Date:回傳該K棒的日期,格式為上方提到的 YYYMMDD
🕑呼叫內建字 Time:回傳該K棒的時間,格式為上方提到的 HHMM
🕑呼叫內建字 Year(D):回傳該日期D的年份,格式為上方提到的 YYY( 西元1900年起算之年數,2021年會顯示成「121」,2021-1900=121 )。
🕑呼叫內建字 Month(D):回傳該日期D的月份,格式為M。三月會回傳3,十月會回傳10。

內建字說明
Date日期,縮寫為 D,格式為YYYMMDD。 2021年1月1號,顯示為「1210101」(2021-1900=121)。
Time時間,縮寫為 T,格式為HHMM。 24小時制,下午兩點零一分,顯示為「1401」。
Year(D) 年份,格式為YYY( 西元1900年起算之年數,2021年會顯示成「121」,2021-1900=121 )。
Month(D) 月份,格式為M。三月會回傳3,十月會回傳10。
Multicharts PowerLanguage 時間相關內建字:Year、Month、Date、Time

進出場相關內建字:EntryPriceExitPrice

這一系列的內建字是我認為非常人性且實用的字,而也不會有任何閱讀障礙,英文單字難度堪比小學生等級。
很多邏輯的需求都能夠透過以下程式碼達成。
例如:出場後三天出場,if D-ExitDate(0)>=3 then sell next bar market .

內建字說明
BarsSinceEntry進場後經過幾根K棒。
EntryPrice進場價
EntryName進場名稱
EntryDate進場日期
EntryTime進場時間
BarsSinceExit出場後經過幾根K棒
ExitPrice 出場價
ExitName 出場名稱
ExitDate 出場日期
ExitTime 出場時間
Multicharts PowerLanguage 進出場相關內建字:EntryPrice、ExitPrice、BarsSinceEntry

部位相關內建字:MarketPositionCurrentContracts

MarketPosition CurrentContracts 為部位相關的內建字,可以顯示部位方向與持倉數量。

MarketPosition 是顯示部位方向,多單為正1,空單為負1,空手為0,比如多單 1口是「1」,空單 100口是「-1」。只考慮方向不考慮持倉的數量。
CurrentContracts 是顯示自己持有的口數,不管是多單 3口或是空單 3口都是回傳「3」,空口回傳「0」。

而實務上我們會將以上兩個函數相乘 ( MarketPosition * CurrentContracts ) ,就可以同時顯示部位的方向和數量。5口空單回傳「-5」、空手回傳 「0」、 多單2口回傳 「2」。

內建字說明
MarketPosition部位方向,只顯示1(多單)、-1(空單)、0(空手)
CurrentContracts在倉口數,只顯示持有單位數量
MarketPosition * CurrentContracts同時顯示部分及口數
Multicharts PowerLanguage 部位相關內建字: MarketPosition、CurrentContracts

損益相關內建字MaxPositionProfitMaxPositionLoss

如果要顯示這次交易的最大獲利要使用 MaxPositionProfit ,最大虧損使用 MaxPositionLoss

內建字說明
MaxPositionProfit本次交易最大曾經獲利金額
MaxPositionLoss本次交易最大曾經虧損金額
BigPointValue每一大點的點值金額
Multicharts PowerLanguage 損益相關內建字:MaxPositionProfit、MaxPositionLoss

停損停利出場相關內建字SetStopLossSetExitOnClose

內建字說明
SetStopLoss設定停損金額
SetExitOnClose尾盤平倉部位
SetBreakEven損益兩平出場
SetProfitTarget設定停利金額
Multicharts PowerLanguage 損益相關內建字:MaxPositionProfit、MaxPositionLoss

繪製指標與文字相關內建字:plottext_new

內建字說明
plot繪製指標或 K線
text_new標示特定的文字,格式為 “文字” ,文字為淺綠色
Multicharts PowerLanguage 繪製指標與文字相關內建字:Plot、text_new

本篇取自「MultiCharts 程式交易|從零到一快速上手」試閱內容,
更多課程內容:https://www.quantpass.org/mc_onlineclass-2/


量化通粉絲社群,定期分享實用資源
✅加入LINE匿名群組量化通 QuantPass」無壓力討論與分享!
✅追蹤量化通的粉絲專頁量化通 QuantPass」,即時獲取的實用資源!

程式交易課程推薦
📣 Multicharts程式交易全系列線上課程-手把手開始用程式交易打造自己的被動收入!

發表迴響

作家資訊

十年經驗法人級操盤手
東尼

更多文章

?
我要提問