跨頻率語法與警示衝突??

  •   484 
  • 最後發表   *G  2025 二月 21
*G 發文於   2025/01/20

個人寫出一個策略  2分鐘頻率加入跨頻率的30分鐘的SMA   

指標可以劃出沒問題   警示腳本也能編譯完成

但執行警示策略的時候  讀取速度超慢  且慢慢都會走成錯誤  (資料讀取800筆 其他都沒勾選)

最後策略無法執行    SMA語法撰寫是下列average(getfield("Close", "30"),360);

奇怪的是我更改成  EMA語法xfMin_XAverage("30",GetField("Close","30"),360);

策略就能執行    這問題到底出在哪裡......可否幫忙解答

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

你使用2分K跨30分,又要計算360期的30分K平均,需要準備5400筆資料。800筆是不夠的。

XS小編 發文於   2025/01/23

 Hello *G,

 

小編這邊參考您的說明簡單測試,但可以正常執行運算 (參考附圖)。

麻煩提供 策略雷達匯出檔勾選(包含)警示腳本 以及 XQ Log 讓相關人員確認問題原因。

Log資料夾(預設路徑:C:\SysJust\XQLite\LOG)直接壓縮後提供即可。

您可以直接將檔案上傳,如果檔案過大的話也可以保存到雲端後將連結Mail至客服信箱 XQservice@XQ.com.tw 且務必附上 討論文章連結網址(小編才能盡早處理)。

感謝。

附加文件

*G 發文於   2025/02/06

已寄出  再請小幫手查看

XS小編 發文於   2025/02/11

Hello *G,

 

小編收到的匯出檔是指標頁面匯出檔而非策略雷達匯出檔。

由於您提到發生問題的是策略雷達,故提供策略雷達匯出檔會比較適合。

或是麻煩您描述下指標頁面上是哪個腳本和策略雷達相同,如何修改的。

 

另外有個可能性是資料引用筆數不足導致一直重算。

您可以嘗試看在腳本中加上 SetBackBar 來指定所需的資料引用筆數長度看能否解決問題。

*G 發文於   2025/02/11

抱歉小編   我已更新上傳策略雷達

*G 發文於   2025/02/17

請問小編有查出問題了嗎

目前按照小編的建議測試一個禮拜後  雷達啟動是沒問題

但還有個疑問是跨頻率指標畫出來速度   EMA語法xfMin_XAverage("30",GetField("Close","30"),360);   這能很快顯示出來

但 SMA語法撰寫是下列average(getfield("Close", "30"),360);   卻跑了快10秒  

SMA與EMA兩個跨頻率語法的繪製速度與計算   這很難覺得沒關聯   

XQ有考慮新增SMA跨頻率函數嗎

之前忘記謝謝許教授的回覆!!    在此補上感謝協助解答疑惑

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

就我的理解,是因為EMA與SMA運算方式不同,造成SMA速度比較慢。在跑每根K棒時,360期30分鐘的EMA會使用上期的EMA(這個在上期已經算好了),透過下列公式計算。計算時只需要抓當期的30分鐘收盤價結合2/(360+1)運算:

lastEMA + 2/(360+1) * (GetField("Close","30") - lastEMA)

SMA則每根K棒都要抓360根30分K的收盤價計算平均,跨頻率抓30分K會比較慢:

Average(getfield("Close", "30"),360)

這與是否要新增跨頻率SMA無關。

*G 發文於   2025/02/18

理解了!    感謝許教授解惑

XS小編 發文於   2025/02/21

Hello *G,

 

根據您提供的雷達匯出檔,小編認為是因為您沒有撰寫 setbackbar 指定資料引用筆數,導致策略執行錯誤 (錯誤訊息為對應資料不存在)。

可以加上 setbackbar(360); 就可以避開這項錯誤,也不會卡很久 (卡很久的原因應該是因為資料引用筆數不足所導致的調整引用範圍和重算)。

發表回覆
Close