1. 摘要
自動交易是現代投資的重要工具,XQ自動交易中心讓用戶能以交易語法輕鬆設定策略,達成自動化交易。本文將以期貨商品和股票商品為範例,詳細說明如何利用語法撰寫進出場條件,並取得庫存成本。透過這些設定,用戶可以快速上手,打造符合自己需求的投資策略。
2. 期貨商品範例
- 執行商品:台股指數近月(FITXN*1)
- 執行頻率:1 分鐘
- 交易帳號:期-模擬交易(內建)-01
- 其他自動交易策略設定:皆為預設
- 進場條件:當「目前商品的『無』預期部位,且收盤價 - 開盤價 >= 上漲點數」則進場掛一筆「市價買進1口」的委託單。
- 出場條件:當「目前商品的『有』預期部位,且商品目前的未平倉成本 - 收盤價 >= 跌破點數」則出場掛一筆「市價平倉持有口數」的委託單。
期貨交易腳本語法的撰寫架構與說明如下:
input:_GoalPrice(30,"上漲點數"),_StopLost(50,"跌破點數");
var:InCondition(false),OutCondition(false);
//僅支援分鐘
if barfreq <> "Min" then raiseRunTimeError("僅支援分鐘");
//InCondition為進場條件,當「收盤價 - 當日開盤價 >= 上漲點數」時,InCondition為True,否則為False。
InCondition = close - GetField("開盤價", "D") >= _GoalPrice;
//OutCondition為出場條件,當「商品目前的未平倉成本 - 收盤價 >= 跌破點數」時,OutCondition為True,否則為False。
OutCondition = filledAvgPrice - close >= _StopLost;
//當「目前商品的預期部位是0,且進場條件為Ture」則將目前商品的預期部位設為1,委託價格使用市價。
//也就是送出一筆「市價買進1口」的委託單。
if position = 0 and InCondition then setposition(1,market);
//當「目前商品的預期部位非0,且出場條件為Ture」則將目前商品的預期部位設為0,委託價格使用市價。
//也就是送出一筆「市價平倉持有口數」的委託單。
if position <> 0 and OutCondition then setposition(0,market);
3. 股票商品範例
- 進場條件:當「目前商品的『無』預期部位,且K棒為實體紅K(close > open)」則進場掛一筆「市價買進1口」的委託單。
- 出場條件:當「目前商品的『有』預期部位,且商品的損益(%)達停損停利」則出場掛一筆「市價平倉持有口數」的委託單。
股票交易腳本語法的撰寫架構與說明如下:
input:_StopProfit(5,"停利X%"),_StopLost(5,"停損Y%");
var:plratio(0),InCondition(false),OutCondition(false);
//僅支援分鐘
if barfreq <> "Min" then raiseRunTimeError("僅支援分鐘");
//plratio為「計算損益(%)」
//請注意:因無庫存時「FilledAvgPrice」為0,此時會有分母為0計算有誤的狀況,故需要判斷當FilledAvgPrice非0時,運算損益。
//註:FilledAvgPrice是「商品目前的未平倉成本」
if FilledAvgPrice <> 0 then
plratio = 100 * (Close - FilledAvgPrice) / FilledAvgPrice
else
plratio = 0;
//InCondition為進場條件,當K棒為實體紅K「close > GetField("開盤價", "D")」則InCondition為True,否則為False。
InCondition = close > GetField("開盤價", "D");
//OutCondition為出場條件,當「損益(%)達停損停利」時,OutCondition為True,否則為False。
OutCondition = plratio >= _StopProfit or plratio <= -1 * _StopLost;
//當「目前商品的預期部位是0,且進場條件為Ture」則將目前商品的預期部位設為1,委託價格使用市價。
//也就是送出一筆「市價買進1張」的委託單。
if position = 0 and InCondition then setposition(1,market);
//當「目前商品的預期部位非0,且出場條件為Ture」則將目前商品的預期部位設為0,委託價格使用市價。
//也就是送出一筆「市價平倉持有張數」的委託單。
if position <> 0 and OutCondition then setposition(0,market);
4. 總結
這篇文章的重點在於掌握 FilledAvgPrice(取得商品目前的未平倉成本)當我們可以在盤中隨時取得庫存成本對於我們控管停損、停利、加、減碼就更加便利方便囉。
更多FilledAvgPrice用法,也可以參考《 FilledAvgPrice - (內建函數)》
以上就是FilledAvgPrice的用法,我是 XQ 小編,我們下次見。