首頁 > 用交易程式,為自己開啟交易大門吧! > Multicharts下單指令介紹-PowerLanguag...

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

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

本文為 PowerLanguage 語法教學的系列文章,建議依照以下順序閱讀,先從熟悉基本的 Multicharts 程式碼開始,很快就可以開始寫屬於自己的第一支策略囉!

第一次學 Multicharts 程式碼就上手 – PowerLanguage語法教學(一)
Multicharts 常用內建保留字 – PowerLanguage語法教學(二)

Multicharts-PowerLanguage 下單指令介紹

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

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

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

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 PowerLanguage 買賣指令 : buy、sell、sellshort、buytocover

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

區分觸發條件

如果在同一個策略中,同時有好幾個進出場邏輯一起運行,在圖表與交易明細上很難去區分這筆交易是由甚麼條件觸發。
這時就可以將不同邏輯的進出場方式個別命名,命名不是強制選項。若省略沒填,會直接使用 Multicharts 內預設的名稱 Buy 與 Short。

幫助策略開發

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

避免相同名稱

在命名進出場名稱的時候要注意,如果同一個交易策略中,有相同的名稱,在 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 PowerLanguage 什麼時間 :next bar

Multicharts 進出場價格: market、at 價格

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

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

Multicharts 委託方式:stop、limit、 market

market 市價單 – 速度優先

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

Buy ("Buy_MA") next bar at market;

limit 限價單 – 價格優先

limit 為限價單,下方的程式碼意思為,「在價格 9400 掛一口多單的限價委託單」。當市場價格來到9400以下時,則買進一口多單。
一般用於拉回買進或是逢高賣出,可以成交在比市價更好的價格。

Buy ("Buy_MA") next bar at 9400 limit;

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

stop 停損單 – 趨勢優先

stop 為停損單,即主觀交易中俗稱的觸價單。下方程式碼意指,「 當未來價格來到9500以上,買進一口多單 」。
一般用於突破型策略,當突破某個價格當下要立刻買進,用 stop單是很好的選擇。

Buy ("Buy_MA") next bar at 9500 stop ;

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

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

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


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

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

發表迴響

作家資訊

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

更多文章

?
我要提問