在開發完自己的交易策略之後,下一步就是要執行交易策略。 MultiCharts可以自動執行策略的交易委託,並且支援相關合作之經紀商,自動交易的執行牽涉到 MultiCharts和經紀商閘道程式的訊息溝通。
閘道程式的種類有很多,像是經紀商提供的軟體,國內常見的就是交易API。 由 MultiCharts執行的交易策略所產生的交易委託是經由閘道程式來執行。
自動交易有二個主要優點:便利及速度。
交易員可以讓策略自動交易,而無需持續監控部位和自行輸入交易委託。 自動交易和手動交易相比,委託輸入的速度更為快速。某些策略(像是當沖策略)就需要委託傳送沒有延遲、愈快愈好。使用自動交易,交易員就不用再手動輸入委託。 交易會自動地執行,並且將速度延遲減少到最低。
除了便利性這個明顯的優點,自動交易讓交易頻率高的策略(如套利)變得可行,
因為套利機會出現常是一瞬間,手動下單難度很高。
MultiCharts支援同步和異步二種自動交易模式。
這二種模式在執行上十分不同,請選擇適合交易策略執行的模式。
同步(SA)模式下,圖表上每個標記的訊號,都代表是真實成交部位。
異步(AA)模式下,圖表上標記的訊號,和委託實際執行的時間、價位可能會有落差,並不保證圖表上有標記的部位一定會成交。
模式選擇
同步模式自動交易(SA)
當自動交易執行在同步模式下,每個進、出場點的箭頭只有在經紀商回報成交之後才會畫在圖表上。
同步模式可以避免策略部位和市場部位不一致的狀況。 同步模式要正常執行,需要符合下列條件:
1. 同樣的商品只能在一張圖表上交易。若在多個圖表上同時交易相同商品,策略部位和市場部位仍有不一致的可能。
2. 當啟動自動交易時,市場部位必須為0(空手)。
3. 交易員不可透過其他交易平台交易相同商品。
4. 當交易線路斷線重連時,經紀商不會提示委託成交或是取消。
異步模式自動交易(AA)
當自動交易以異步模式執行時,策略符合交易條件時,進出場點的箭頭就會標示在圖表上。
但在異步模式委託單未完成交易(未成交)時,並不保證經紀商的部位會依圖表標記執行。
可能會出現策略部位和市場部位不一致的狀況出現,且依照設定的不同,成交的價位可能會和圖表上標記的價位不同。
同步模式和異步模式比較表
模式
優點
缺點
同步SA
只有經紀商回報成交的委託才會標記在圖表上。圖表上顯示的時間、價位和實際成交的時間、價位完全一致。
圖表上只有實際成交的部位,啟用自動交易前的部位不會標示在圖表上。
異步AA
若在指定的時間內委託單未成交,透過下單機設定可以轉換限價單和停止單為市價單。市價單可以確保策略部位和市場部位一致,但不保證進出場價格會相同。
依照當時市場的情況,委託單可能不會成交,導致策略部位和市場部位可能不一致。
重新計算設定說明
在策略屬性-> 自動交易-> 重新計算(主要為經紀商回報的行為)
此指:SA模式下的“重新計算” (對AA模式無效)
參考測試方式:
SA模式,開啟自動交易,訊號和策略屬性依照1到4分開4張圖測。
訊號中,最末端加入print語句,在PowerLanguage Editor輸出窗口即可看測試結果
[IntrabarOrderGeneration = True] // 3、4測試,請改為False
var:intrabarpersist var1(0);
if Open>close[1] then
buy next bar at market;
var1=var1+1;
print("Bar=",currentbar," D=",date:7:0," T=",time_s:6:0," Status=", barstatus:1:0," C=",Close," mp=",marketposition," v1=",var1 );