買賣指令
PowerLanguage提供了Buy、Sell、SellShort和BuyToCover買賣下單指令。
買賣下單指令的語法由動作+進出場名稱和口數+委託單類型(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,可以省略,只是增加可讀性,程式執行時會跳過。 |
Buy指令
Buy指令下單買進的動作+進場名稱和口數+委託單的類型(OrderCommandType)。
如果買進委託單成交的時候有空單的倉位,會將空單的倉位平倉。
下單指令語法 | ||
動作 | 進出場名稱和口數 | 委託單類型 |
Buy |
[("EntryLabel")][TradeSize] |
OrderCommandType |
Buy語法
Buy[("EntryLabel")] [TradeSize] OrderCommandType;
Where:
EntryLabel
– 命名這次進場買進為EntryLabel。買進名稱會顯示在圖表上。
[]代表可省略參數,如果沒有指定EntryLabel,預設名稱第一筆為”Buy”,第二筆”Buy#2″,第三筆”Buy#3″,以此類推。
賣出(Sell)時,可以用買進名稱指定要賣出哪一次進場。
TradeSize
– 指定要下單的股數(口數)。股數(口數)後面必須接下面其中一個同義字: Share, Shares, Contract 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 股數(口數)。
股數(口數)後面必須接下面其中一個同義字: Share, Shares, Contract 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
– 指定要下單的股數(口數)。股數(口數)後面必須接下面其中一個同義字: Share, Shares, Contract 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 股數(口數)。
股數(口數)後面必須接下面其中一個同義字: Share, Shares, Contract 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