函數使用問題

  •   718 
  • 最後發表   阿林  2021 七月 28
阿林 發文於   2021/03/28

請問小編 NthHighest這個函數可以找到過去期數的最大值

NthHighestBar 這個函數可以找到最大值的那根K棒位置

可是如果我希望能夠找到例如我使用 NthHighest 這個函數

找到過去期數的最大值出來 例如找出來的那天是1月26號

但我希望能夠讓電腦能抓到1月26號那天的收盤價

這樣要怎麼寫呢 再麻煩小編了

排序方式: 標準 | 最新
XQ小幫手 發文於   2021/03/30

Hello 阿林,

 

您可以將頻率調設為天,然後使用 NthHighestBar 此函數找到最大值的 K棒位置,而 close[NthHighestBar(1, high, 期數)] 就是該天的收盤價

範例如下:

value1 = NthHighestBar(1, high, 10);

value2 = close[value1];

 

value2即為過去10期內最高價當天的收盤價。

阿林 發文於   2021/04/18

請問小幫手 我希望今天的最高價 只能是一根兩分k棒 意思就是

不希望今天等於最高價的兩分k棒超過兩根 可是我寫的以下腳本似乎有誤

請小幫手幫忙檢查感謝

 

if barfreq <> "Min" or Barinterval <> 2 then RaiseRuntimeError("請設定頻率為2分鐘");

variable:dd(0);

if high = GetField("最高價","D") then dd = 1

else dd +=1;

if  dd = 1 then ret =1;

 

XQ小幫手 發文於   2021/04/20

Hello 阿林,

 

您的寫法 dd 沒有重置,所以會一直往上加。如果遇到股價一直突破高點的時候 dd 也會持續增加。

小幫手修改了一下並附上匯出腳本給您參考。

如果您只要在收盤前或其他時間才進行掃描的話,只要加上時間限制即可。

附加文件

阿林 發文於   2021/04/26

感謝小編回答

阿林 發文於   2021/04/26

想請問小編 就是我有一個腳本 裡面有寫到這條

nthhighest(3,GetField("最高價","D")[1],20);

這樣程式在執行都沒有問題

但是當我改成

nthhighest(3,GetField("最高價","D")[1],30);

只是把後面期數 由20改成30

腳本執行的時候 就會顯示 計算停止 因為計算發生錯誤 請檢察腳本內的算式

請問這是什麼問題呢

XQ小幫手 發文於   2021/04/27

Hello 阿林,

 

根據您的敘述,小幫手認為有可能是資料讀取筆數不足的原因。

如果您發現調整資料筆數後還是一樣發生問題的話,需要您提供策略雷達/選股中心/交易中心匯出檔、腳本和 Log 來檢視問題為何。

Log資料夾(預設路徑:C:\SysJust\XQLite\LOG)壓縮檔案

您可以直接將檔案上傳,或是Mail至客服信箱 XQservice@XQ.com.tw且附上討論文章連結網址。

 

感謝。

阿林 發文於   2021/05/12

我把資料讀取比數調到最大5000筆 變成

nthhighest(3,GetField("最高價","D")[1],60);

後面期數改60就不行 但是我後面期數改55就可以

而且 value2 = average(GetField("收盤價","D"),60);

60日的移動平均也不行 我腳本執行的頻率是2分鐘

再麻煩小編了

XQ小幫手 發文於   2021/05/13

Hello 阿林,

 

策略雷達中的資料讀取筆數可以選擇筆數或著是日期,小幫手選擇日期並放在三個月前(超過所需的60天),執行雷達就不會發生錯誤。

附上匯出的策略雷達供您參考。

附加文件

阿林 發文於   2021/05/17

感謝小編 更改過後就可以了 但是有一個問題就是 

就是改這樣 他在啟用腳本cpu使用率會很高

而且雷達在啟動會變很慢 例如 

我執行商品300檔 兩個程式都是執行300檔

但是我把資料讀取筆數條到三個月前的那個程式

就會很慢才開得起來 另一個就一樣預設的資料讀取200筆

在開的速度就快很多 而且也不會佔用cpu那麼高

請問小編這有方法可以改善嗎 

還是勢必你只要有寫到例如60日均線這種的腳本

就一定會這樣?

XQ小幫手 發文於   2021/05/18

Hello 阿林,

 

啟動商品速度會變慢這關係到您所需的商品數以及資料長度。

由於您腳本運算時需要如此長的資料,那麼就需要花相對長的時間來讀取。

您可以考慮減少商品數量,使用較大的頻率 (像是從分鐘改成日) 都可以有效地降低所需的讀取資料,進而減少啟動時間。

CPU使用率的話則關係到您一次啟用的雷達數量,多久運算一次(是否有開逐筆洗價),還有監控的商品數量。

如果想降低CPU使用率的話就只能請您減少上面所敘述的事項。

顯示更多回應 發表回覆
Close