Multicharts下單指令介紹-PowerLanguage語法教學(三)


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

一、MultiCharts-PowerLanguage下單指令介紹

這篇文我們就用前面教過的程式碼來組出一條下單指令,先介紹「下單指令」是什麼,下單指令也就是常聽到的交易指令。如果用傳統交易方式來說明,就像是打電話給營業員,告訴他今天我們要用什麼價格、買什麼商品,用什麼方式買。

一個完整的程式交易下單指令通常會由以下幾個要素構成:

  1. 買賣指令: 下甚麼單?買單或是賣單
  2. 命名進出場:這筆交易指令的進出場名稱(非必要選項)
  3. 時間:在什麼時間?
  4. 價格:用什麼價格?
  5. 委託方式:什麼委託方式?stop觸價單、limit限價單、market市價單

Mc 101209091709
Mc 101209091709

二、MultiCharts 買賣下單指令:buy、sell、sellshort、buytocover

MultiCharts的買賣指令共四種:BuySellSellShortBuyToCover,分別為多單的買賣空單的買賣PowerLanguage 的語法基本上都可以一看就明白。

多單使用的是 Buy 和 Sell ,Buy 是「買入多單」,Sell 是「平倉多單」。以 Buy 來舉例,下面程式碼的意思就是「用市價買入一口多單」,其中 Buy_MA 為這筆交易的名稱,後面會說明。

buy (“Buy_MA”) next bar at market ;

空單的買賣指令是 SellShort 和 BuyToCover。 Short 在股票期貨市場是做空的意思,所以 Sellshort 就是「賣出空單」,BuyToCover 直白翻譯是買回來補掉,就是「買回空單」。 用 Sellshort 來舉例,下面程式碼的意思是「 用市價做一口空單」。

Sellshort (“Buy_MA”) next bar at market;

買賣指令 說明
Buy  多單進場,買一口多單
Sell  多單出場,多單平倉
SellShort  空單進場,買一口空單
BuyToCover  空單出場,空單平倉

三、MultiCharts 命名進出場:(“Buy_MA”)、(“我是名稱”)

1. 區分觸發條件

如果在同一個策略中,同時有好幾個進出場邏輯一起運行,在圖表與交易明細上很難去區分這筆交易是由甚麼條件觸發。

這時就可以將不同邏輯的進出場方式個別命名,命名不是強制選項。若省略沒填,會直接使用 MultiCharts 內預設的名稱 Buy 與 Short。

2. 幫助策略開發

一個策略有多個進出場方式,建議把它命名為不同的名稱,在識別上會比較容易。後續調整策略時,也可以很明確的知道是哪一個進出場的績效表現好,哪個績效不好,對於整個策略開發流程有很大的幫助。

3. 避免相同名稱

在命名進出場名稱的時候要注意,如果同一個交易策略中,有相同的名稱,在 PLE 編譯的時候會跳出失敗指令 ,所以要避免有相同的進出場名稱。

buy (“Buy_MA”) next bar at market ;

Buy_MA 為這筆交易的名稱。在程式碼中需要以(“”)夾住進出場名稱,如(“我是進場名稱”)。

四、MultiCharts 進出場時間:next bar

實務上都是只用 next bar,主因是 MultiCharts 的機制為「該根K棒收盤」才運算策略。因此要做交易只能在下一根 K棒才能動作,用 this bar 成交到的價格是過去的價格,實務上不會成交到,回測上會有不準確的風險存在。

進出場時間 說明
next bar 下一根K棒,實務上使用
this bar 這一根K棒,不建議使用

五、MultiCharts 進出場價格: market、at 價格

進出場價格可以說是整個策略最重要的部分,主要分為市價和指定價格,市價是直接成交,指定價格要搭配 stop、limit 使用,後面會一起說明。

進出場價格 說明
market 市價, 馬上成交不指定價格,以市場上最新的價格做交易
指定價格 以指定價格委託,可以填數值或是運算值。如10,000、「今天最高價」HighD(0) 或 「一根K棒的最高價」H

六、MultiCharts 委託方式:stop、limit、 market

1. market 市價單 – 速度優先

market 為市價單,也是剛剛委託價格中的市價。 market單跟 stop單、limit單最大的不同是不用指定價格,因為它本身就是用當下的市場價格。能夠以最快的速度成交,但也因為不指定價格,通常會成交在比較差的點位。

🔶 一般用於需要搶速度的策略,market單能用最有效率的方式成交。

Buy (“Buy_MA”) next bar at market;

2. limit 限價單 – 價格優先

limit 為限價單,下方的程式碼意思為,「在價格 9400 掛一口多單的限價委託單」。當市場價格來到9400以下時,則買進一口多單。

🔶 一般用於拉回買進或是逢高賣出,可以成交在比市價更好的價格。

Buy (“Buy_MA”) next bar at 9400 limit;

limit單的特性是可以指定委託價格,而實際成交價一定會等於或優於限制的價位。所以如果是委託買進的價格,比現在的市場價格還高, limit單會直接成交。但在實務使用上,比較常使用的是 stop停損單和 market 市價單, limit限價單要搭配下單機使用,所以比較不會使用到。

3. stop 停損單 – 趨勢優先

stop 為停損單,即主觀交易中俗稱的觸價單。下方程式碼意指,「 當未來價格來到9500以上,買進一口多單 」。

🔶 一般用於突破型策略,當突破某個價格當下要立刻買進,用 stop單是很好的選擇。

Buy (“Buy_MA”) next bar at 9500 stop;

stop 單是掛單在那邊等,等價格到就買進,換句話說如果委託買進的價格比現在市場價還低,就會直接成交。

買賣指令 說明
market 市價單,速度優先。 以當下的市場價格立刻成交。
一般用於需要搶速度的策略,market 單能用最有效率的方式成交。
limit 限價單,價格優先。當價格優於委託價時成交。
一般用於拉回買進或是逢高賣出,可以成交在比市價更好的價格。
stop 停損單、觸價單,趨勢優先。當價格突破委託價時成交。
一般用於突破型策略,當突破某個價格當下要立刻買進,則 stop 單是很好的選擇。

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

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


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

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

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

東尼 Tony
東尼 Tony

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

文章: 57

發佈留言

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