請問警示或交易模組有辦法直接把開盤的第一筆量抓出來嗎?第一個tick
開盤輛
- 124
- 最後發表 Johnny 2022 二月 10
if Date<>Date[1] then condition1=true; //開盤開始跑
// 為了避免延開的問題所以要判斷到 getfield("成交量", "Tick")<>0 為止
//這樣應該可以解決8成的情況!
if getfield("成交量", "Tick")<>0 and condition1 then begin
value1 = getfield("成交量", "Tick");
condition1 = false; //結束取值
end;
如果是警示的話呢
Hello Johnny,
您可以參考 開盤第一筆成交量 此篇文章。
舉例來說:
if barfreq <> "Min" and barinterval <> 1 then raiseRunTimeError("請使用1分鐘頻率");
var: first_v(0), IntrabarPersist _once(0);
if getfielddate("Date") <> getfielddate("Date")[1] then _once = 0;
if _once = 0 then begin
value1 = 0;
while getfield("Date", "Tick")[value1] = getfield("Date", "Tick")[value1 + 1] begin
value1 += 1;
end;
first_v = getfield("Volume", "Tick")[value1];
_once = 1;
end;
這樣的話 first_v 就會是第一筆的成交量。
這個可以用在警示腳本裡,但要警示的話需要有條件觸發才行。
網站上有教學區,裡面有XS語法的基礎和運用可以閱覽。
感謝 GaryChiang 的熱心回覆。
3 評論