MultiCharts | PowerLanguage語法教學 | CH6:買賣指令

買賣指令

PowerLanguage提供了BuySellSellShortBuyToCover買賣下單指令。
買賣下單指令的語法由動作+進出場名稱和口數+委託單類型(OrderCommandType)組成。

下單指令語法
動作 進出場名稱和口數 委託單類型
Buy [("EntryLabel")][TradeSize] OrderCommandType
Sell [("ExitLabel")][From Entry("EntryLabel")][TradeSize[Total]]
SellShort [("EntryLabel")][TradeSize]
BuyToCover [("ExitLabel")][From Entry("EntryLabel")][TradeSize[Total]]

OrderCommandType

OrderCommandType決定下單的時間點和價格,總共有4種 OrderCommandType

Note: 實務上不建議使用This Bar On Close,因為可能會發生實際交易時的買賣訊號和回測時的不一致,因為MultiCharts是是在收到新K棒的第一筆成交後,才能判斷出上次的成交是K棒的最後一筆成交(This Bar On Close)。
而在回測時因為有歷史資料,所以事先知道K棒的最後一筆成交,不用等到新K棒的第一筆成交後才判斷。
已經完成的K棒

OrderCommandType Semantic
This Bar On Close在這根K棒的最後一筆成交(tick)送出市價單。
顯示下單箭頭在圖表的當根K棒的最後一筆成交(tick)收盤價。
On – 是skip word,可以省略,只是增加可讀性,程式執行時會跳過。
Next Bar At Open
Next Bar At Market
在下一根K棒的第一筆成交(tick)送出市價單。
顯示下單箭頭在圖表的下一根K棒的第一筆成交(tick)開盤價。
Market 和 Open 兩個字可以互換。
At – 是skip word,可以省略,只是增加可讀性,程式執行時會跳過。
Next Bar At <Price> Limit在下一根K棒的第一筆成交(tick)送出限價單,如果委託單在K棒結束時都沒有成交,委託單會被取消。
顯示下單箭頭在圖表的下一根K棒的滿足限價單條件的成交(tick)價位。
Limit – 限價單。
<Price>– 數字,指定限價單的價格。
At – 是skip word,可以省略,只是增加可讀性,程式執行時會跳過。
Next Bar At <Price> Stop在下一根K棒的第一筆成交(tick)送出停損單,如果委託單在K棒結束時都沒有成交,委託單會被取消。
顯示下單箭頭在圖表的下一根K棒的滿足停損單條件的成交(tick)價位。
Stop – 停損單。
<Price> – 數字,指定停損單的價格。
At – 是skip word,可以省略,只是增加可讀性,程式執行時會跳過。
4種 OrderCommandType

Buy指令

Buy指令下單買進的動作+進場名稱和口數+委託單的類型(OrderCommandType)
如果買進委託單成交的時候有空單的倉位,會將空單的倉位平倉。

下單指令語法
動作 進出場名稱和口數 委託單類型
Buy [("EntryLabel")][TradeSize] OrderCommandType

Buy語法

Buy[("EntryLabel")] [TradeSize] OrderCommandType;

Where:

EntryLabel – 命名這次進場買進為EntryLabel。買進名稱會顯示在圖表上。
[]代表可省略參數,如果沒有指定EntryLabel,預設名稱第一筆為”Buy”,第二筆”Buy#2″,第三筆”Buy#3″,以此類推。
賣出(Sell)時,可以用買進名稱指定要賣出哪一次進場。

TradeSize – 指定要下單的股數(口數)。股數(口數)後面必須接下面其中一個同義字: ShareSharesContract or Contracts
[]代表可省略的參數,如果沒有指定TradeSize,預設使用 設定->策略屬性->屬性->固定委託股數(口數)的設定值。

OrderCommandType – 指定下單類型、時間和價格。見OrderCommandType介紹。

Examples

在下一根K棒,市價單買進1口,命名買進名稱為Entry。

Buy("Entry")1 Contract Next Bar Market;

在下一根K棒,限價100的限價單買進2股。

Buy 2 Shares Next Bar At 100 Limit;

在下一根K棒,停損價50的停損單買進10口。

Buy 10 Contracts Next Bar 50 Stop;

Sell指令

Sell指令指定賣出的動作+出場名稱和口數+委託單的類型(OrderCommandType)

下單指令語法
動作 進出場名稱和口數 委託單類型
Sell [("ExitLabel")][From Entry("EntryLabel")][TradeSize[Total]] OrderCommandType

Sell語法

Sell[("ExitLabel")] [From Entry("EntryLabel")] [TradeSize[Total]] OrderCommandType

Where:

ExitLabel – 命名這次賣出為ExitLabel賣出名稱會顯示在圖表上。
[]代表可省略參數,如果沒有指定ExitLabel,預設名稱第一筆為”Sell”,第二筆”Sell#2″,第三筆”Sell#3″,以此類推。

EntryLabel – 指定要賣出的買進名稱。
From是skip word,只是增加可讀性,可以省略。
[]代表可省略參數,如果EntryLabel沒有指定,預設為全部的進場部位。

TradeSize – 指定每一筆多單進場部位都賣出TradeSize 股數(口數)。
股數(口數)後面必須接下面其中一個同義字: ShareSharesContract or Contracts
如果TradeSize後面接Total,根據先進先出(First In, First Out)的原則,先進場的多單先賣出,總共賣出TradeSize股數(口數)。
[]代表可省略參數,如果TradeSize沒有指定,預設賣出全部股數(口數)。

OrderCommandType – 指定下單類型、時間和價格。見OrderCommandType介紹。

Examples

在下一根K棒,從進場名稱是Original Entry的進場部位,市價單賣出10股。

Sell Entry("Original Entry")10 Shares Next Bar At Market;

在下一根K棒,從每一個進場部位,都以市價單賣出5口。

Sell 5 Contracts Next Bar Market;

在下一根K棒,從全部進場部位,以限價100限價單總共賣出1股。

Sell 1 Share Total Next Bar At 100 Limit;

在下一根K棒,全部進場部位,以停損價50的停損單賣出全部股數(口數)。
同義於: 在下一根K棒,以停損價50的停損單全部平倉。

Sell Next Bar 50 Stop;

SellShort指令

SellShort指令指定賣空的動作+進場名稱和口數+委託單的類型(OrderCommandType)
如果賣空委託單成交的時候有多單的倉位,會將多單的倉位平倉。

下單指令語法
動作 進出場名稱和口數 委託單類型
SellShort [("EntryLabel")][TradeSize] OrderCommandType

SellShort語法

SellShort[("EntryLabel")] [TradeSize] OrderCommandType

or

Sell Short[("EntryLabel")] [TradeSize] OrderCommandType

Where:

EntryLabel – 命名這次進場賣空為EntryLabel。賣空名稱會顯示在圖表上。
[]代表可省略參數,如果沒有指定EntryLabel,預設名稱第一筆為”Short”,第二筆”Short#2″,第三筆”Short#3″,以此類推。
買進回補(BuyToCover)時,可以用賣空名稱指定要回補哪一次進場。

TradeSize –  指定要下單的股數(口數)。股數(口數)後面必須接下面其中一個同義字: ShareSharesContract or Contracts
[]代表可省略的參數,如果沒有指定TradeSize,預設使用 設定->策略屬性->屬性->固定委託股數(口數)的設定值。

OrderCommandType – 指定下單類型、時間和價格。見OrderCommandType介紹。

Examples

在下一根K棒,市價單賣空1口,命名賣空名稱為Entry。

SellShort("Entry")1 Contract Next Bar Market;

在下一根K棒,限價100的限價單賣空2股。

SellShort 2 Shares Next Bar At 100 Limit;

在下一根K棒,停損價50的停損單賣空10口。

SellShort 10 Contracts Next Bar 50 Stop;

BuyToCover指令

BuyToCover指令指定買進回補的動作+出場名稱和口數+委託單的類型(OrderCommandType)

下單指令語法
動作 進出場名稱和口數 委託單類型
BuyToCover [("ExitLabel")][From Entry("EntryLabel")][TradeSize[Total]] OrderCommandType

BuyToCover語法

BuyToCover [("ExitLabel")] [From Entry("EntryLabel")] [TradeSize[Total]] OrderCommandType

or

Buy To Cover [("ExitLabel")] [From Entry("EntryLabel")] [TradeSize[Total]] OrderCommandType

Where:

ExitLabel – 命名這次買進回補為ExitLabel買進回補名稱會顯示在圖表上。
[]代表可省略參數,如果沒有指定ExitLabel,預設名稱第一筆為”Cover”,第二筆”Cover#2″,第三筆”Cover#3″,以此類推。

EntryLabel – 指定要買進回補的賣空名稱。
From是skip word,只是增加可讀性,可以省略。
[]代表可省略參數,如果EntryLabel沒有指定,預設為全部的進場部位。

TradeSize – 指定每一筆空單進場部位都買進回補TradeSize 股數(口數)。
股數(口數)後面必須接下面其中一個同義字: ShareSharesContract or Contracts
如果TradeSize後面接Total,根據先進先出(First In, First Out)的原則,先進場的空單先回補,總共賣出TradeSize股數(口數)。
[]代表可省略參數,如果TradeSize沒有指定,預設買進回補全部股數(口數)。

OrderCommandType – 指定下單類型、時間和價格。見OrderCommandType介紹。

Examples

在下一根K棒,從進場名稱是Original Entry的進場部位,以市價單買進回補10股。

BuyToCover Entry("Original Entry")10 Shares Next Bar At Market;

在下一根K棒,從每一個進場部位,都以市價單買進回補5口。

BuyToCover 5 Contracts Next Bar Market;

在下一根K棒,從全部進場部位,以限價100限價單總共買進回補1股。

BuyToCover 1 Share Total Next Bar At 100 Limit;

在下一根K棒,全部進場部位,以停損價50的停損單買進回補全部股數(口數)。
同義於: 在下一根K棒,以停損價50的停損單全部平倉。

BuyToCover Next Bar 50 Stop;

Reference

https://www.multicharts.com/trading-software/index.php?title=Category:Strategy_Orders

https://www.multicharts.com/trading-software/index.php?title=Buy

https://www.multicharts.com/trading-software/index.php?title=Sell

https://www.multicharts.com/trading-software/index.php?title=SellShort

https://www.multicharts.com/trading-software/index.php?title=BuyToCover

發佈留言