警示的code 在選股跑不出來

  •   452 
  • 最後發表   Ling0914  2025 一月 24
Ling0914 發文於   2025/01/23

請問一下 以下是我寫的警示的code
基本上就是判斷收盤有沒有站上月線
希望可以在接近收盤的時候買入個股

code編譯成功後 警示對應的個股 可以print正確的資訊
但是不知道為什麼一樣的code放到選股策略
選擇普通股全部 搜尋後 好幾天都完全沒有資料

我個人猜測是使用了 getfield close的原因 
因為如果是使用 close去跑的話是沒問題的

不過用警示雷達的話 設定的頻率為5分鐘
就不能只使用close去抓日線的資訊 而要用getfield 抓日線

想請問各位大大有什麼好方法嘛?


附上code如下

input:MIN_VOLUME(100);

var: dayClose(0),avg20(0),dayVolume(0);

dayClose = getfield("Close","D");

dayVolume = getfield("volume","D");

avg20 = Average(dayClose, 20);

 

condition1 = (dayClose cross above avg20); 

condition2 = dayVolume > MIN_VOLUME; //過濾成交量低的股票

 

if(condition1 and condition2)

then begin

print("觸發日期=" ,Date);

ret=1;

end;

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

日頻率之下,Close與getfield("Close","D")相同。若你選股主頻率不是日,則使用跨頻率且透過變數運算,會有邏輯問題。

  • 按讚來自於
  • aierdfcv1955
Ling0914 發文於   2025/01/23

選股的設定頻率是 日 
警示的設定頻率是 日

但是同樣的code跑出來的結果不一樣

虎科大許教授 發文於   2025/01/23

選股只會在最新收盤數據符合條件才會選出來。你所謂的結果不同,指的是什麼?

Ling0914 發文於   2025/01/23

這個是用警示code 商品我隨便選一個4968 可以看到有許多天是符合條件的

附加文件

Ling0914 發文於   2025/01/23

我把一樣的code 放進去選股中心 卻一個商品都跑不出來
從20250101~20250122都沒有
這個邏輯應該是蠻普遍的 應該會選到很多個股才對

附加文件

Ling0914 發文於   2025/01/23

如果我把dayClose 改成 close 
dayVolume 改成 volume 
就可以正常顯示我想要的選股邏輯

想知道原因為何 謝謝教授!

附加文件

虎科大許教授 發文於   2025/01/23

你透過變數處理資料,會受限於讀取資料筆數。這些變數並非系統內建,所以預設的10筆之外,求20筆平均,是沒有數據的。

增加SetTotalBar指令即可解決問題。

setTotalBar(40);
input:MIN_VOLUME(100);
var: dayClose(0),avg20(0),dayVolume(0);
dayClose = getfield("Close","D");
dayVolume = getfield("volume","D");
avg20 = Average(dayClose, 20);
condition1 = (dayClose cross above avg20); 
condition2 = dayVolume > MIN_VOLUME; //過濾成交量低的股票
if condition1 and condition2 then 
    begin
        print("觸發日期=" ,Date);
        ret=1;
    end;

Ling0914 發文於   2025/01/24

原來如此
試過沒問題了
非常感謝教授!

發表回覆
Close