特定時間內滿足條件

  •   346 
  • 最後發表   CDY  2024 十一月 19
CDY 發文於   2024/11/12

想問一下,如何在特定一段時間內滿足條件的才警示呢

例如想警示早上9點半前總量有1萬張的股票,當在10點以後創新高,則跳警示

本來有寫這樣的語法去過濾

input: timeline(093000); setinputname(1,"時間切算點");

variable:RangeVolume(0);

if date <> date[1] then RangeVolume = 0; 

if Time < timeline then RangeVolume = q_DailyVolume;

但發現9半以後才1萬張的也還是會滿足,想問該怎麼處理或該怎麼寫才能限定9半前的總量就好?

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

(1)請確定你用的是分鐘頻率,而非日頻率。9點30分之後才一萬張的也滿足,應該是使用日頻率造成。

(2)RangeVolume變數應該使用intrabarpersist宣告。

if barfreq<>"Min" then raiseRunTimeError("限用分鐘頻率");
input: timeline(093000,"時間切算點");
variable: intraBarPersist RangeVolume(0);
if date <> date[1] then RangeVolume = 0; 
if Time < timeline then RangeVolume = q_DailyVolume;

XS小編 發文於   2024/11/19

Hello CDY,

 

小編補充,報價欄位 (q_DailyVolume) 只有即時的狀況下能夠使用。

如果需要在回測上測試的話,可以考慮改用資料欄位 (GetField("Volume", "D")) 取得日頻率的資料。

發表回覆
Close