開盤量

  •   213 
  • 最後發表   東尼  2021 十二月 08
東尼 發文於   2021/06/16

工程師您好:

請問使用雷達 要搜尋開盤量第一筆單大於1000張的個股 該怎麼寫程碼?   頻率設tick?  欄位找無此功能  

 

謝謝

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

Hello 東尼,

 

您可以將頻率設為一分鐘,然後用 GetField("SeqNo", "Tick") 去抓當日最早的一筆成交量。

由於效率考量,小幫手只有在換日開盤的第一根Bar作計算。

附上警示腳本供您參考。

附加文件

東尼 發文於   2021/06/21

謝謝工程師

請問要搜尋超過第一筆超過1000張的指令  該加 在哪?

謝謝~

if getfielddate("Date") <> getfieldDate("Date")[1] then begin

value1 = 0;   

while GetField("SeqNo", "Tick")[value1] >= GetField("SeqNo", "Tick")[value1 + 1] begin

    value1 += 1;

end;

print(date, time, GetField("Volume", "Tick")[value1]);

end;

 

東尼 發文於   2021/06/23

請問工程師:

如果要用雷達搜尋開盤量過1000張 請問指令該怎麼加?

謝謝

 

XQ小幫手 發文於   2021/06/23

Hello 東尼,

 

如果您是要偵測開盤第一筆是否有超過1000張的話 (需注意此腳本只有在換日開盤的第一根Bar作計算):

if getfielddate("Date") <> getfieldDate("Date")[1] then begin

    value1 = 0;   

    while GetField("SeqNo", "Tick")[value1] >= GetField("SeqNo", "Tick")[value1 + 1] begin

        value1 += 1;

        end; 

    if GetField("Volume", "Tick")[value1] > 1000 then begin

        ret = 1;

        print(date, time, GetField("Volume", "Tick")[value1]);

    end;

 

如果您是要偵測現在這筆有沒有超過開盤的第一筆,且開盤第一筆超過1000張的話:

var: _record(0);

if getfielddate("Date") <> getfieldDate("Date")[1] then begin

    value1 = 0;   

    while GetField("SeqNo", "Tick")[value1] >= GetField("SeqNo", "Tick")[value1 + 1] begin

        value1 += 1;

        end;

    _record =  GetField("Volume", "Tick")[value1];

    end;

if GetField("Volume", "Tick") > _record and _record > 1000 then begin

    ret = 1;

    print(date, time, GetField("Volume", "Tick")[value1], GetField("Volume", "Tick"));

    end;

東尼 發文於   2021/06/23

謝謝工程師指導~~

nicksun 發文於   2021/12/03

請問xQ小幫手,啟動這樣語法的策略雷達(資料讀取到已啟動)CPU使用率都會飆高(甚至看過100%).

有沒有其他改善方法?

XQ小幫手 發文於   2021/12/08

Hello nicksun,

 

由於這是要抓到Tick頻率的資訊,所以會需用迴圈,導致運算變大。

小幫手建議您可以使用1分鐘頻率非逐筆,且偵測的商品不要太多,這樣效能應該就不會在開盤的時候暴漲。

發表回覆
Close