raiseRunTimeError 的問題

  •   274 
  • 最後發表   bowen  2024 八月 16
bowen 發文於   2024/08/12

//value1成交比重
if (GetSymbolField("TSE.TW","成交金額(元)","D")+GetSymbolField("OTC.TW","成交金額(元)","D")) <> 0 
then value1 = getField("成交金額(元)","D") / (GetSymbolField("TSE.TW","成交金額(元)","D")+GetSymbolField("OTC.TW","成交金額(元)","D"))*100;

if date <> date[1] then condition1 = false;
if (time = 090000 and volume > 0 and value1 >= 0.1)
or (time = 090200 and trueAll(volume[1] = 0,2) and value1 >= 0.1) then condition1 = true;

if time = 090300 and condition1 = false then raiseRunTimeError("第1跟K比重未達標");

//value1成交比重
if (GetSymbolField("TSE.TW","成交金額(元)","D")+GetSymbolField("OTC.TW","成交金額(元)","D")) <> 0 
then value1 = getField("成交金額(元)","D") / (GetSymbolField("TSE.TW","成交金額(元)","D")+GetSymbolField("OTC.TW","成交金額(元)","D"))*100;

if date <> date[1] then condition1 = false;
if (time = 090000 and volume > 0 and value1 >= 0.1)
or (time = 090200 and trueAll(volume[1] = 0,2) and value1 >= 0.1) then condition1 = true;

if time >= 090300 and condition1 = false then raiseRunTimeError("第1跟K比重未達標");

想抓成交值靠前的標的,程式第9行 = 跟 >= 的結果為什麼差這多,明顯>= 很多標的是符合的

,但是顯示錯誤,還是哪裡邏輯有問題?

time = 090200 and trueAll(volume[1] = 0,2),是因為有些標的緩開盤。

排序方式: 標準 | 最新
虎科大許教授 發文於   2024/08/12

用>=代表過了090300以後都成立,而用=,只有在那一分鐘成立。過了就不成立。

bowen 發文於   2024/08/12

現在問題是我condition1已經等於true且不會再變,所以raiseRunTimeError那行不應該成立,但卻顯示錯誤,差別只差在 >。

bowen 發文於   2024/08/12

應該是資料讀取的問題,我再試試,感謝。

XS小編 發文於   2024/08/16

 Hello bowen,

 

小編補充,您可以使用 getinfo 函數來判斷腳本是否為運作在即時資料上。

感謝 虎科大許教授 的熱心回覆。

  • 按讚來自於
  • Bowen16
發表回覆
Close