自動交易中心:利用語法取得庫存成本教學

自動交易中心:利用語法取得庫存成本教學

2024-12-10 17:13:41
自動交易中心:利用語法取得庫存成本教學

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. 股票商品範例

  • 執行商品:元大台灣50(0050)
  • 執行頻率:1 分鐘
  • 交易帳號:證-模擬交易(內建)-01
  • 其他自動交易策略設定:皆為預設
  • 進場條件:當「目前商品的『無』預期部位,且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 小編,我們下次見。