MultiCharts PowerLanguage 交易相關指令
交易指令
交易指令主要分為「多單」與「空單」的建立與出場。
【多單】
建立多單 → buy
多單平倉 → sell
【空單】
建立空單 → sellshort
空單平倉 → buytocover
語法格式
建立倉位|交易指令(“進場名稱”) 交易口數 進場方式
倉位出場|交易指令(“出場名稱”) from entry(“進場訊號”) 交易口數 出場方式
【說明】
- 綠色代表非必要參數
- 交易口數 → 透過 share、shares、contract、contracts 來加以描述
- 出場時語法的from entry與交易口數順序可顛倒
- 進出場方式,可以使用以下幾種:
- this bar on close
- next bar at open、next bar at market
- next bar at 價格 limit → limit單。交易方向的限價,指的是要優於指定的價格才要成交。
- next bar at 價格 stop → stop單。交易方向的讓價,指的是超過指定的價格後,一定要成交。
- next bar at 價格 or higher → 在指定價格或以上的價格交易
- next bar at 價格 or lower → 在指定價格或以下的價格交易
範例
倉位的建立
//在不特別指定口數時,預設會以1口進行交易;在MultiCharts上會顯示「Buy」的進場訊號
buy this bar on close;
//在MultiCharts上會顯示「B1」的進場訊號,建立一口的多單
buy("B1") 1 contract this bar on close;
//在MultiCharts上會顯示「S1」的進場訊號,建立兩口的空單
sellshort("S1") 2 shares this bar on close;
進場的時機
this bar、next bar
//在一般的情況下,signal都是在該K棒結束後執行。因此大部分的情況下,透過this bar或是next bar的進出場方式,都是在同一個時間點執行。
buy("B21") this bar on close; //在這根K棒的收盤價進場
buy("B22") next bar at open; //在下根K棒的開盤價進場
buy("B23") next bar at market; //在下根K棒時市價進場
而如果是要讓交易的驅動在K棒內產生委託,則可以透過以下語法來開啟或關閉
[intrabarordergeneration=True] #開啟K棒內產生委託
[intrabarordergeneration=False] #關閉K棒內產生委託
stop、limit、or higher、or lower
//透過stop、limit、or higher、or lower進行下單時,會在次根K棒啟開始判斷是否符合條件。
//如果不符合條件,則在該次根K棒後取消執行。
buy next bar at 14200 stop; //在≧14200的價格進場多單
buy next bar at 14200 limit; //在≦14200的價格進場多單
buy next bar at 14200 or higher; //在≧14200的價格進場多單
sellshort next bar at 13500 stop; //在≦13500的價格進場空單
sellshort next bar at 13500 limit; //在≧13500的價格進場空單
sellshort next bar at 13500 or lower; //在≦13500的價格進場多單
因此要注意的是買與賣時的stop單、limit單行為是相反的。如果擔心搞混,直接使用 or higher 或是 or lower 即可。
另外,補充說明,buy與sellshort是代表建立該部位,而不是口數上的加減變化。我們以下面的例子來說明。
buy 10 contracts this bar on close;
...
sellshort 2 contracts this bar on close;
如果是先建立了10口的多單後,部位為「+10」。在之後的程式邏輯執行「sellshort 2 contracts this bar on close;」後,部位不是變成「+8」,而是變為「-2」喔。
出場
出場時機的stop、limit使用方式與多單、空單的進場方式類似,如果擔心混淆,一樣可以直接使用 or higher 或是 or lower 即可。
sell next bar at 13900 stop; //在≦13900的價格進行多單的出場
sell next bar at 13900 or lower; //在≦13900的價格進行多單的出場
sell next bar at 13900 limit; //在≧13900的價格進行多單的出場
sell next bar at 13900 or higher; //在≧13900的價格進行多單的出場
total
total 所代表的含意為,當有多個進場的部位時,將會依先進先出的順序平倉。因此加上這個關鍵字後,部會導致你的所有部位都被平倉,而是部份部位的出場而已。
//假設部位進了10口多單,而你現在希望出場一口。
sell 1 contract total from entry("B1") next bar at 14230 limit;
SET指令
關於SET指令,可以參考「MultiCharts PowerLanguage SET指令」
MultiCharts使用
PowerLanguage語法
有興趣語法的朋友可以參考購買這本「PowerLanguage程式交易語法大全」。
我自己是覺得很方便,查找快速、內容豐富,相當的方便。
更詳細的部份可以參考:官網