我試著找出開盤價小於昨日收盤價5%的股票,可是發現若是使用q_DailyOpen函數則篩選出來的股票會有誤,但若改成getfield("開盤價","D")使用就OK,請問是否q_DailyOpen有問題?
if q_DailyOpen<getfield("收盤價","D")[1]*0.95 then ret=1;
if getfield("開盤價","D")<getfield("收盤價","D")[1]*0.95 then ret=1;
我試著找出開盤價小於昨日收盤價5%的股票,可是發現若是使用q_DailyOpen函數則篩選出來的股票會有誤,但若改成getfield("開盤價","D")使用就OK,請問是否q_DailyOpen有問題?
if q_DailyOpen<getfield("收盤價","D")[1]*0.95 then ret=1;
if getfield("開盤價","D")<getfield("收盤價","D")[1]*0.95 then ret=1;
Hi Jing,
您好,請您提供有問題的錯誤畫面截圖,以利小幫手查看問題的原因,謝謝。
能否揭露你使用的頻率及Print的指令內容?照理說這兩者應該一樣,不一樣就挺奇怪的。
警示腳本程式碼:
if getinfo("Isrealtime")=0 then return;
if GetField("開盤價", "D") > GetField("收盤價", "D")[1]*(1+2/100) then
begin
ret=1;
retMsg=text("open:",GetField("開盤價", "D")," ",q_DailyOpen,"昨收:",GetField("收盤價", "D")[1]);
end;
交易腳本程式碼:
var:intraBarPersist hasalert(false);
if getinfo("Isrealtime")=0 then return;
if hasalert=false and GetField("開盤價", "D") > GetField("收盤價", "D")[1]*(1+2/100) then
begin
alert("開盤比昨天收盤漲");
hasalert=true;
end
else
return;
print("open:",GetField("開盤價", "D")," ",q_DailyOpen,"昨收:",GetField("收盤價", "D")[1]);
以上為2個腳本的程式碼,使用的頻率皆為日頻率,煩請教授指點!
程式碼沒錯。我明天測試看看,情況是否也是如此。
我針對台灣50成份股及中型100,以及你認為有問題的三檔股票262、3490、4533,共153檔,以下列交易腳本單次洗價測試,測試的結果,GetField("開盤價", "D")與q_DailyOpen都相同。
if getinfo("IsRealTime")=0 then return;
var: intraBarPersist OnOff(0);
if OnOff=1 then raiseRunTimeError("單次洗價完成");
if OnOff=0 then
begin
condition1=GetField("開盤價", "D")=q_DailyOpen;
print("GetField(''開盤價'', ''D'')=",GetField("開盤價", "D")," ; ","q_DailyOpen=",q_DailyOpen," ; ","是否相同:",condition1);
end;
OnOff=1;
感謝教授幫忙測試,
我早上有繼續測試,只是今天就沒有發生2種數值不一樣的問題,我這幾天再測試看看
7 評論