自動交易中心:自動交易中心功能介紹教學

自動交易中心:自動交易中心功能介紹教學

2024-12-10 09:56:18
 

1. XS自動交易是什麼?

XS自動交易的主要功能,是讓我們可以設定欲交易的商品以及券商帳號,然後透過編寫腳本邏輯,來自動進行買進、賣出的動作。透過交易相關的語法,使用者可以控制委託的買賣方向、委託數量、委託價格,也可以進一步的取得已經成交的數量及價格等完整的成交資訊,也就是說透過XS自動交易,使用者可以完成一個全自動化的交易流程。 要設定XS自動交易時,我們也必須把交易的邏輯寫在一個交易腳本內,這個動作可以透過XScript編輯器來完成。

 ( 更多 XScript 編輯器教學請參考《 功能介紹:XScript編輯器? 》 )

設計好交易腳本之後,接下來我們可以進行回測。在回測的過程中,XS自動交易系統會以歷史資料來執行腳本,同時依照腳本內的指令進行交易的動作。這些交易的動作並不會送出委託單,而是會藉由歷史資料來判斷這些交易是否會成交,如果會的話成交價格以及成交數量又會是什麼。最後,透過這些成交的資料,回測系統可以告訴我們這個腳本的勝率、賺賠、報酬率等資訊。 如果接下來我們想要開始執行自動交易時,我們就需要設定這個自動交易執行時的相關參數,例如希望執行哪些商品,希望用什麼資料頻率來執行,希望用那個交易帳號來下單等。這一個動作則是透過「自動交易中心」這一個介面來做設定。每一個「自動交易策略」內可以指定要執行的交易腳本、商品、頻率、交易帳號等。一旦啟動「自動交易策略」,系統就會依照商品的資料來進行洗價以及交易的動作。

2. 語法介紹:什麼是交易腳本

在交易腳本內,核心概念是「Position」(部位),即腳本預期持有的目標部位。Position用來控制商品的買賣,數值可以為正(持有多單)、0(空倉)或負(持有空單)。調整Position時,XS系統會自動依據指令送出委託單,且當委託成交後,部位的數量會與Position數值一致。

2.1. SetPosition語法說明

XS自動交易提供了多種「交易語法」來調整Position,其中常用的「SetPosition」語法如下:
  • SetPosition(目標部位):設定新的部位目標數量。
  • SetPosition(目標部位, 委託價格):在指定價格執行部位目標。

2.2. SetPosition 使用範例

範例#1
if Position = 0 then SetPosition(1);
當Position為0時,買進1張,委託價格使用策略預設價格。執行後Position變為1。 範例#2
if Position = 0 then SetPosition(1, Close);
當Position為0時,買進1張,委託價格為當前收盤價。 範例#3
if Position = 0 then SetPosition(-1);
當Position為0時,賣出1張,使用預設賣出價格。執行後Position變為-1。 範例#4
if Position > 0 then SetPosition(0, MARKET);
若Position大於0,用市價賣出所有持有部位。 MARKET是一個特殊的保留字,代表希望用市價交易。XS自動交易系統會依照帳號類型來決定市價單該如何傳送,如果是證券帳號的話,會傳送市價委託,如果是期貨帳號的話,則會傳送範圍市價委託。 除了SetPosition語法可以更改目標部位之外,另外XS自動交易還提供了BuySellShortCover這四種語法。與SetPosition不同的是,這四種語法所傳入的數量是加碼/減碼的數量。不過不管是透過哪一種語法,這些交易指令最終的目的都是調整商品的目標部位。

3. 交易指令與Position/Filled運作概念

在XS自動交易系統中,Position代表腳本目前預期的持倉目標,例如:買進或賣出某商品的指定數量;而Filled則代表該商品的實際成交部位,兩者配合使用,讓使用者清楚掌握交易執行的狀態。

3.1. Position與Filled的變化流程

假設剛開始執行腳本時,Position和Filled均為0,接下來若腳本執行SetPosition(1)並發出買進1張的委託,Filled和Position的變化情形如下:
  • 委託單尚未成交:Position會變為1,但Filled仍為0。
  • 委託單成功成交:當買進1張的委託單成交後,Filled會更新為1,表示成交部位與Position一致。
利用Filled值可以幫助判斷委託是否已成功執行,例如:若Filled為0則表示尚未成交,若Filled與Position相等則表示已全部成交。

4. 判斷交易狀態Position/Filled的程式範例

以下為根據Filled和Position判斷目前交易狀態的實作範例: 假設當策略啟動時商品的Position為0,接下來的腳本判斷式可以協助監控交易狀態: 範例#1

if Position = 1 and Filled = 0 then begin

    { 已經送出一筆買進1張的委託, 可是還沒有成交 }

end;
  範例#2

if Position = 1 and Filled = 1 then begin

    { 已經送出一筆買進1張的委託, 而且這一筆委託已經成交 }

end;
  範例#3  
if Position = -1 and Filled = 0 then begin

    { 已經送出一筆賣出1張的委託, 可是還沒有成交 }

end;
  範例#4  
if Position = -1 and Filled = -1 then begin

    { 已經送出一筆賣出1張的委託, 而且這一筆委託已經成交 }

    { 注意:Filled和Position一樣,可能為正或負,取決於多單或空單的成交狀況 }

end;
  在這些判斷式中,Filled的值代表了委託是否已被市場完全執行。當Filled等於Position時,表示此商品的目標部位與實際成交數量已同步,腳本可以根據此結果進行進一步的判斷和交易操作。

5. 完整交易策略範例

以下是一個均線策略的範例,根據均線穿越與跌破訊號來進行買賣操作:  
Condition1 = Average(Close, 5) cross over Average(Close, 10);

Condition2 = Average(Close, 5) cross under Average(Close, 10);

if Position = 0 and Condition1 then SetPosition(1);

if Position = 1 and Condition2 then SetPosition(0);
  此策略當短期均線穿越長期均線時,執行買進1張操作;當短期均線跌破長期均線時,則賣出持有的部位。

6. 總結

透過以上XS自動交易功能的設定步驟及語法範例,您可以輕鬆建立並自動執行您的交易策略,達成自動化操作目標。希望這份說明能幫助您快速上手XS自動交易中心,並有效應用於實際交易中! 更多的交易策略範例,可以參考XS編輯器內的系統範例腳本,也可以參考此篇文章喔!   以上就是自動交易中心:自動交易中心功能介紹教學,我是 XQ 小編,我們下次見。