MACD的讀取,自動交易與交易腳本不一樣

  •   423 
  • 最後發表   測不同  2025 二月 25
測不同 發文於   2025/02/17

在交易腳本測試時有把print印出,抓到的macd及macd[1]是正確的,但在自動交易時macd及macd[1],print出來後卻不正確,請問該怎麼解

附加文件

排序方式: 標準 | 最新
虎科大許教授 發文於   2025/02/17

執行自動交易,預設讀取資料筆數100筆,用來計算MACD是不夠的。回測時會由回測期間開始計算MACD,計算的數值在最前面的兩三百筆之後就會計算出正確的MACD。你要讓兩者一樣,在執行自動交易時,設定讀取資料筆數300筆以上就會一樣了。

測不同 發文於   2025/02/18

setTotalBar(6000);

input: Length(76, "天數"), RSVt(7, "RSVt權數"), Kt(7, "Kt權數"),difs(19,"dif短天"),difl(38,"dif長天"),macdl(12,"macd天");

stochastic(Length, RSVt, Kt, rsv15, k15, _d15);

MACD(WeightedClose,difs,difl,macdl,_dif,_macd,_osc);

我已經預讀改到6000了 還是會發生第一筆資料 macd數字不正確 macd[1]=0 的問題,感覺預載是無效的。

跑的是30分K,沒有跨頻率還需要另外宣告要走的是30分K嗎?

附加文件

虎科大許教授 發文於   2025/02/18

(1)最前面的一、兩百筆指標數值不正確,是正常現象,因為XQ需要跑足夠的資料筆數計算指標,指標數值才會正確。

(2)主頻率若是30分鐘,計算的技術指標也是30分鐘指標,則用你寫的Stochastic及MACD計算即可,不需要跨頻率。

測不同 發文於   2025/02/19

請教 我後來自動交易又做一個沒有SetPosition(3)指令的,他就會讀取300筆資料,可是當我有執行另一個有setpoint(3),就不會讀取300筆資料。

這是為何???

附加文件

虎科大許教授 發文於   2025/02/19

你比較的兩個策略並不相同,也許第二個策略沒有使用Print指令,所以沒有顯示相關數據。

測不同 發文於   2025/02/20

兩個是一樣的,我直接copy過去把除了有中文註解的原本是SetPosition的命令,紅線框起來的是兩邊都有的那是昨晚放一晚的成果,測試的頻率是5分K

 

附加文件

虎科大許教授 發文於   2025/02/20

兩個策略都是主頻率5分鐘,且沒有跨30分K計算技術指標?

你可能需要提供更完整的資訊,不然很難猜。

測不同 發文於   2025/02/20

測試的那個跑5分是為了快速得出數值是否正確,

在執行的是跑30分,沒有跨頻率

都沒有跨頻率

 完整資訊是指甚麼

測不同 發文於   2025/02/20

完整資訊是需要上傳程式給你們看嗎?

 

虎科大許教授 發文於   2025/02/20

若你願意,也可以直接貼到論壇來。主要是程式碼,並告知使用的頻率。

顯示更多回應 發表回覆
Close