var: todayHighPrice(0);
if Close[0] > GetField("High", "D")[0] then todayHighPrice = GetField("High", "D")[0] ;
請問當日創新的寫法,上面寫是否正確呢?
我應用起來好像沒法抓到。
var: todayHighPrice(0);
if Close[0] > GetField("High", "D")[0] then todayHighPrice = GetField("High", "D")[0] ;
請問當日創新的寫法,上面寫是否正確呢?
我應用起來好像沒法抓到。
Close[0] > GetField("High", "D")[0] <- 這個條件不可能滿足。
好的,謝謝
原來是這個要先加 todayHighPrice = GetField("High", "D")[0] ;
今天的收盤價(或即時成交價)不可能大於今天的最高價。
請問這樣寫,是對的嗎
var: IntrabarPersist todayHighPrice(0);
once(time >= 090000 )
begin
if Date <> Date[1] then
todayHighPrice = GetField("High", "D")[0];
end;
if GetField("High", "D")[0] > todayHighPrice then begin
todayHighPrice = High;
end;
若你的當日創新高,指的是目前的價格創今日新高,則應該先設定一個開始監控的時間點,讓市場有時間決定到目前為止的高點。例如,在現貨開盤15分之後,亦即currentTime>=091500,開始判斷是否有創新高。
var: intrabarpersist myH(0);
if currentTime < 091500 then
myH = getField("最高價","D")
else
begin
if c > myH then ret=1;
retMsg="創新高!"
end;
感謝您的回覆,只是我的寫法是 once(time >= 090000 ) ,在大於090000時僅執行一次抓取當日且當下的最高價到變數中,然後後面的價格持續與此變數做比較,不知哪裡錯誤,可否指點出我的想法是否有問題呢 謝
若你的執行商品是台指期,這樣的寫法與我說的一樣。若是股票,其實就是判斷價格有沒有高於開盤價。我想,你面臨的問題應該是跑歷史K棒時,once已經被執行了,這造成今天九點沒有記錄最高價。
您好,我是跑盤中個股雷達,要偵測出開盤至收盤這期間的最高價,想用once在初執行時先把當日最高價存下來比較。
那就不讓程式跑歷史K棒。請在程式第一行寫上:
if getinfo("isrealtime")=0 then return;
好,不過不讓程式跑歷史,應是 getinfo("isrealtime")=1 ,不是嗎?謝謝
11 評論