指定相對應交易股池交易語法

  •   154 
  • 最後發表   Robert168  2023 十二月 20
Robert168 發文於   2023/12/16

小幫手你好 

我用加入根據波動性進行加權分配

以下語法中的這段 該如何使其使用到相對應股池,範例是美股 

可以用語指定到相對應 自選股池,或自動選股池嗎?

指定相對應股池語法

// 加入根據波動性進行加權分配的原則

Array: Stocks[5]("AAPL", "GOOG", "MSFT", "AMZN", "FB"); // 示例股票池

Var: WeightFactors[5](0), // 每隻股票的波動性加權因子

     TotalWeight(0);      // 總加權因子

 

// 計算每隻股票的波動性加權因子

For i = 1 to ArraySize(Stocks) Begin

    WeightFactors[i] = 1 / ATR(ATRLength)[Stocks[i]]; // 使用倒數的ATR作為波動性指標

    TotalWeight = TotalWeight + WeightFactors[i];

End;

 

// 根據波動性並動態計算股票買賣張數

_Volatility = ATR(ATRLength);  // 使用ATR計算市場波動性

UnitSize = ((AccountValue * RiskPerTrade) / (_Volatility * Close)) / 1000; // 計算交易張數

 

// 根據加權因子分配資金

For i = 1 to ArraySize(Stocks) Begin

    UnitSize = UnitSize * (WeightFactors[i] / TotalWeight); // 根據加權因子調整單位大小

End;

排序方式: 標準 | 最新
XQ小幫手 發文於   2023/12/20

 Hello Robert168,

 

目前只能夠透過 getsymbolfield 來取得不同商品的資料。

所以要根據加權因子來分配資金交易的話,您的執行商品要是股票池內的商品 (ex.自選股清單中的商品),再使用 getsymbolfield 取得不同商品的資訊計算 TrueRange 和 ATR。

需注意XQ的 TrueRange 和 ATR 函數是運算在執行商品上,若要跨商品計算的話需要自行另外撰寫函數。

您可以參考內建的函數腳本來修改。

Robert168 發文於   2023/12/20

了解了 謝謝小幫手的回覆

發表回覆
Close