寫了一個台指期1分K單根K棒成交量大於前20根K棒均量的5倍警示,但結果卻不盡人意

  •   355 
  • 最後發表   豪邁野豬  2025 一月 17
豪邁野豬 發文於   2025/01/13

如提,我使用的程式碼如下:

input: length(20);  setinputname(1,"均量期數");

input: VolumeXtime(5);  setinputname(2,"量增倍數");

settotalbar(60);

setbarback(Length);

if volume > Average( volume[1],length)* VolumeXtime then ret = 1;

 

但以今天(1/13)來說,只有觸發兩次警示

一次是08:47單根K棒是283口,20MA是110口,遠不及我要的5倍

另一次是16:00單根K棒是158口,20MA是38口,也不到5倍

請問是我計算的方式錯了嗎??還是哪邊寫錯了呢?

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

08:47單根K棒是283口,Average( volume[1],20)是97口,而非110口。儘管如此,283>97*5應該也不是True,不應該觸發。這裡會觸發訊號,很奇怪。另外,16:00單根K棒是158口,Average( volume[1],20)是31口,而非38口。這裡就符合觸發訊號的條件。

XS小編 發文於   2025/01/17

Hello 豪邁野豬,

 

您可以先確認看是否有調整過策略中的input參數,因為策略執行時會以策略的參數為主,且調整策略參數並不會改動到腳本中的參數。

若確認過兩者是相同的,可以將 Average( volume[1],length)* VolumeXtime 改用變數保存後在使用在條件中,最後再印出看數值為何。

像是:

value1 = Average( volume[1],length)* VolumeXtime;

if volume > value1 then begin 

    ret = 1;

    print(date, time, volume, value1);

    end;

 

若還是有問題的話,麻煩提供 XQ Log 讓相關人員確認。

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

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

感謝。

發表回覆
Close