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 相關文章

MultiCharts使用

PowerLanguage語法

有興趣語法的朋友可以參考購買這本「PowerLanguage程式交易語法大全」。

我自己是覺得很方便,查找快速、內容豐富,相當的方便。

更詳細的部份可以參考:官網