關於q_DailyOpen的問題

  •   209 
  • 最後發表   Jing  2024 五月 15
Jing 發文於   2018/08/12

我試著找出開盤價小於昨日收盤價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;

排序方式: 標準 | 最新
XQ小幫手 發文於   2018/08/13

Hi Jing,

您好,請您提供有問題的錯誤畫面截圖,以利小幫手查看問題的原因,謝謝。

Y_L_ 發文於   2024/05/14

我想找出今天開盤高於昨天收盤2%的股票,將q_DailyOpen函數與getfield("開盤價","D")的數字 print出來發現2這者的數字不一樣,經查證q_DailyOpen印出來的數字跟xq看盤軟體的一樣,但是getfield("開盤價","D")卻不一樣,從圖裡面可以看到有些股票2者的數值一樣有些不一樣,請問是哪邊有錯誤呢?

附加文件

虎科大許教授 發文於   2024/05/14

能否揭露你使用的頻率及Print的指令內容?照理說這兩者應該一樣,不一樣就挺奇怪的。

 

 

Y_L_ 發文於   2024/05/14

警示腳本程式碼:

 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個腳本的程式碼,使用的頻率皆為日頻率,煩請教授指點!

虎科大許教授 發文於   2024/05/14

程式碼沒錯。我明天測試看看,情況是否也是如此。

虎科大許教授 發文於   2024/05/15

我針對台灣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;

附加文件

Y_L_ 發文於   2024/05/15

感謝教授幫忙測試,

我早上有繼續測試,只是今天就沒有發生2種數值不一樣的問題,我這幾天再測試看看

 

發表回覆
Close