請問有辦法自動交易抓取前一天的MACD值嗎?

  •   361 
  • 最後發表   測不同  2024 十一月 04
測不同 發文於   2024/10/25

各位大大
   請問有辦法自動交易抓到前一天的macd值嗎?
我每次啟動自動交易,他都從新開始累計,只要是_osc[1]以上,一執行都是0。

xfMin_MACD("30",xfMin_weightedclose("30"),12,26,9,_dif,_macd,_osc);

排序方式: 標準 | 最新
虎科大許教授 發文於   2024/10/25

跨頻率時,例如主頻率是5分鐘,要抓前30分鐘的OSC,不可以用_osc[1],它代表前5分鐘的30分OSC。正確寫法如下:

value1=xfMin_GetValue("30",_osc, 1);

測不同 發文於   2024/10/26

這是取值的函數設定

xfMin_MACD("D",xfMin_weightedclose("D"),12,26,9,_dif,_macd,_osc);

_osc_1d=xfMin_GetValue("D",_osc, 2);


可是老師我 print出來的結果讓我無法理解,這是我用指標編譯後print出來的狀況

這是第1行 趨勢上新多 23611.000000 _osc= 0.000000 _osc_1d= 0.000000 _osc[152]= 0.000000    時間10/21 17:00

一直到

第69行 趨勢上新多 23656.000000 _osc= 4.993732 _osc_1d= 0.000000 _osc[152]= 0.000000   時間10/22 15:00 _osc開始有數值

然後

第221行 趨勢上新多 23340.000000 _osc= -26.750115 _osc_1d= -7.131624 _osc[152]= 4.993732   時間10/24 15:00 _osc_1d及 _osc[152] 開始有數字
再到最後

第340行    趨勢上新多 23546.000000 _osc= -10.623720 _osc_1d= -21.087265 _osc[152]= -23.193248     時間10/26 01:45

自動交易   趨勢下新空 23546.000000 _osc= 35.106184 _osc_1d= 40.861111 value1= -5.754927 "  10/26 01:45

然後我用自動交易印出來的數值又不一樣,我該怎麼理解這兩種方法取出來的值,我去比照K線圖的MACD值都對不到

這些數字我比較不出來出於哪裡,有辦法一開始的時候不要是0嗎?(_osc、_osc_1d及 _osc[152])




虎科大許教授 發文於   2024/10/26

自動交易預設的資料筆數只有100筆,不夠使用。你的主頻率若是30分鐘,則跨日計算日的技術指標,大約需要3000筆資料,算出來的指標數值才會正確。

setTotalBar(3000);

若你的主頻率是30分鐘,則[152]代表前152個30分鐘的資料,而非152天前的資料。MACD計算指標時,需要一些資料,逐根K棒計算時都會print數據出來。剛開始計算MACD時,這些指標數值都是0,這很正常,沒辦法控制。

XS小編 發文於   2024/11/04

 Hello 測不同,

 

小編補充,MACD函數在運算時需要前期運算值,故若經過的筆數不夠長的話計算出來的數值會不正確。

所需的筆數可以參考系統內建的選股腳本來作設定。

另外在跨頻率時要考慮到頻率差距並加上去,舉例來說在1分鐘頻率上計算5分鐘頻率的MACD,會需要的資料讀取筆數也會是5倍。

 

感謝 虎科大許教授 的熱心回覆。

  • 按讚來自於
  • akailwithling
發表回覆
Close