如何在盤中執行警示腳本清除程式自動讀取過去的資料?

  •   43 
  • 最後發表   Pierce  2025 七月 04
Pierce 發文於   2025/06/30

如何在盤中執行警示腳本清除程式自動讀取過去的資料?

因為我要上筆條件和現在條件相同就不警示,但要如何不包含首次觸發?

如果我是盤中才開啟警示腳本,由於程式會去讀取過去資料,如果上筆跟當期條件相同,就會導致不觸發警示。

if time > 090300 and value50 <> close  then begin

value50 = close  ;

ret = 1;

end;

頻率3分K,無逐筆洗價

舉例來說,如果我9:49開啟警示腳本,程式自動讀過去資料,該執行股票在9:47 價格為50, 現在9:50價格為50,這樣就無法觸發了,所以要如何盤中才開啟警示腳本時,刪除過去資料或上一筆資料?

排序方式: 標準 | 最新
虎科大許教授 發文於   2025/06/30

沒辦法刪除過去資料,但你可以使用isFirstCall函數來控制,只有在進入即時洗價時才更新value50的數值。在程式最上面寫入:

if isFirstCall("RealTime") then value50 = 0;

這樣就可避免盤中啟動策略時,今天啟動前的數據改變value50。

Pierce 發文於   2025/06/30

if isFirstCall("RealTime") then value50 = 0;

現在盤後沒有洗價所以看print才沒有歸零嗎?

明天盤中再來試試。

XS小編 發文於   2025/07/04

Hello Pierce,

 

小編補充,如果腳本要在即時的資料下才運算的話,可以用 GetInfo("isRealTime") 來限制。

發表回覆
Close