策略雷達跨頻率相關問題 謝謝

  •   318 
  • 最後發表   win193  2022 六月 02
win193 發文於   2022/05/15

小幫手您好

我策略雷達設定的頻率是日K(如附圖紅圈處)

想用策略雷達找符合以下條件的股票

1.日K觀點:大於所有日K線移動平均 且 今天收盤大於昨天收盤

2.周K觀點:大於所有周K線移動平均 且 本周收盤大於前周收盤

所以要在日K中跨頻率到周K

幾個問題請教

(1) 可否幫忙確定我程式"跨頻率"邏輯是否正確? (如附件)

(2) 程式執行讀取個股歷史資料階段總是很慢(如附圖紅圈處)..雖然我監控一千多檔 但是我其他策略都很快

因為要計算日K和周K的均線

不太確定settotalbar(300);SetBarBack(300);足夠嗎?

可以幫我看 是哪裡寫錯導致執行速度很慢嗎?

 

 

 

附加文件

排序方式: 標準 | 最新
win193 發文於   2022/05/15

補充說明

發現讀取潤泰新卡很久 不知原因 如附圖

其他歷史悠久的股票也不會卡很久的說

 

附加文件

win193 發文於   2022/05/16

再請問

(3)執行出現部分股票錯誤  資訊如下

計算停止 因為計算發生錯誤 請檢查腳本內的算式

不好意思 再麻煩幫我一下 謝謝

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

Hello win193,

 

1.就小幫手看來,腳本邏輯沒有錯誤。

 

2.您的腳本中有計算到 240 週 的移動平均,簡單計算的話 240 * 5 = 1200,您設定的筆數不夠。

現在 SetBarBack 可以指定頻率,所以小幫手會建議您可以使用 SetBarBack(240, "W"); 這樣。

另外,SetTotalBar的部分腳本會需要實際計算,換句話說,您會向前計算300筆Bar的數據,但就您的腳本上來看應該是不需要的。

使用 SetTotalBar(1); 就可以。

關於兩者的說明,建議您可以參考連結內容

 

3.小幫手這邊嘗試執行,出現的錯誤訊息是:

計算停止,取得資料欄位錯誤,可能是因為「最大引用」數值小於腳本需要的資料範圍

原因應該是如同小幫手上面所說的,筆數不夠。

或是您可以告知幾個出現此錯誤的商品讓小幫手確認看看。

 

建議您可以提供XQ Log給工程師可以檢驗。

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

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

感謝。

附加文件

win193 發文於   2022/05/18

小幫手好

先感謝您熱情協助

幾個問題再請教

(4)後來發現錯誤是因為我監控普通股全部 有些股票的歷史K棒數不夠 

日K我抓240根K棒  但有些股票掛牌不到240天 所以系統在算240MA會是N/A

周K我抓240根K棒  但有些股票掛牌不到240周 所以系統在算240MA會是N/A

日K觀點我要找站上5 10 20 60 120 240所有均線的股票 周K觀點也是

有沒有辦法找出站上"有歷史數值的"所有均線的股票? 就是若歷史資料只能算出5 10 20 60 120 那股價大於這5條MA也算站上所有均線

EX 6672這支股票就是沒240周線數值  但若站上5 10 20 60 120這5條MA 我也要選出來  目前是初步就被刪除了..

跪求範例提點 謝謝您!!!

 

 

(5)回覆您問題二的建議 我想這樣寫  請問觀念對嗎?

(5.1)SetBarBack(300); //因"日"K最多抓240天的計算 所以至少要240根K棒 我保險抓300

(5.2)SetBarBack(300,"W"); //因跨頻率到"周"K最多抓240周的計算 所以至少要240根K棒 我保險抓300

(5.3)settotalbar(300);//因為我修改程式後會加入以下引用前面數值的語法 即用到[1] [2] 所以我至少要設定settotalbar(大於2以上) ? 

設很大會執行速度變很慢?還是會怎麼樣? EX settotalbar(300)

close >= close[1] and close >= close[2] 

low[2]>=value5[2]

再麻煩小幫手了 非常感謝您!!!

 

 

XQ小幫手 發文於   2022/05/23

Hello win193,

 

4.如果是選股的話,可以使用 GetFieldStartOffset  來判斷最新一筆資料距離第一筆資料間有多少筆資料。

可以用 if GetFieldStartOffset("Close", "W") > 240 then ... 來判斷要計算多長,但策略雷達沒有這個函數。

由於您使用的是日頻率和週頻率資訊,或許您可以考慮改用選股腳本來作。

 

5.1跟2是正確的,另外3的話則是因為您有使用到前兩期變數 (value5[2]) 所以會需要 settotalbar(2)。

close[1] 這個則是因為您有使用 SetBarBack 抓取之前的資料,所以不需要使用 settotalbar,但變數則是要腳本運算才會得到結果。

win193 發文於   2022/05/25

小幫手好

 再次感謝您的協助!!! 再次請教

(6)我去測試選股的 GetFieldStartOffset,日K中跨頻率到周K,目的是"找出周K棒<240根的所有股票"

並先針對五檔股票去算歷史到本周的周K數量(如附圖),發現結果跟K棒數幾乎都不對,

只有IKKA-KY歷史到本周的周K數量50根(不含本周這根K棒)是正確的..找不出原因..再次麻煩小幫手指導!!

程式碼如下

Value1=getFieldStartOffset("close","W");

IF true then Ret=1;

 

OutputField1(Value1);//印出歷史到本周的周K數量

 

 

 

 

附加文件

XQ小幫手 發文於   2022/05/27

Hello win193,

 

就小幫手所知,選股中心裡只會有上市上櫃的資料,未上市櫃前的資料在選股中心裡是取不到的。

就您圖中長榮鋼為例,其上市的日期為 2021/04/12,所以該值出來才會是57。

win193 發文於   2022/05/27

感謝小幫手

請問有辦法抓到興櫃至今的k棒數嗎?

還是有其他方法能解決我的需求呢? 

非常謝謝你

XQ小幫手 發文於   2022/05/31

Hello win193,

 

就小幫手所知,策略雷達和選股中心都只有提供上市上櫃的資料。

只有指標腳本可以在線圖裡取得興櫃資料。

所以您可以在指標腳本裡計算所需資訊,搭配currentbar就可以得知到當根Bar經過了幾根Bar。

win193 發文於   2022/06/02

 謝謝小幫手的熱情協助!!!

發表回覆
Close