小幫手求救

  •   283 
  • 最後發表   ceimen  2024 八月 22
ceimen 發文於   2024/08/18

// XQ: 簡化的 HMA 交易策略

//

Inputs: price(Close), length(10); 

 

Vars: halfLength(0), sqrtLength(0), WMA1(0), WMA2(0), HMA(0), mkp(0);

 

// 計算半長度(向下取整)

halfLength = Floor(length / 2);

 

// 計算平方根長度(向下取整)

sqrtLength = Floor(SquareRoot(length));

 

// 計算簡單移動平均線

WMA1 = XAverage(price, halfLength); 

WMA2 = XAverage(price, length);

 

// 計算 Hull Moving Average

HMA = XAverage(2 * WMA1 - WMA2, sqrtLength); 

 

// 最簡單的策略:價格大於 HMA 時買入,小於時賣出

if mkp = 0 then begin

    if C > HMA then begin

        mkp = 1;

        SetPosition(1, MARKET); // 開倉買入

    end;

end;

 

if mkp = 1 then begin

    if C < HMA then begin

        mkp = 0;

        SetPosition(0, MARKET); // 平倉賣出

    end;

end;

此交易策略 我怎麼回測都無任何交易筆數,能幫我看看嗎

XS小編 發文於   2024/08/22

Hello ceimen,

 

小編這邊測試的結果應該是 input 的 price 造成回測錯誤。

建議可以先把參數拿掉,直接將 close 寫在函數中。

錯誤的部分會請相關人員確認。

 

另外與其用變數mkp來控制進出場,小編會建議直接使用 position 和 filled。

可參考 自動交易語法介紹

發表回覆
Close