使用1分K警示當日最高價

  •   381 
  • 最後發表   blue sky  2021 七月 29
blue sky 發文於   2021/07/26

請問小幫手,我在1分K使用下列的腳本,設定如為當日最高價,即出現警示,但常會發生成交價不是當日最高價也會出現警示,但在日線使用下就不會發生,請問是在腳本上少設定了什麼嗎?

input:_time(093000, "過此時段(HHMMSS)才開始監控");

variable:IntrabarPersist DHigh(0), IntrabarPersist DLow(0),strDHigh(""),strDLow("");

if currenttime < _time then return; //在指定時段後才開始判斷。

if getinfo("IsRealTime") <> 1 then return; //即時成交更新資料才開始判斷。

//只需要執行一次去更新目前的最高價與最低價。

once(true) begin

DHigh = high;

DLow = low;

end;

//用以下 if 判斷當收盤價創當日新高,則觸發警示,並在執行紀錄秀出相關資料。

if close > DHigh then begin

strDHigh = Text("收盤價=",close,"創當日新高。前次新高價為=",DHigh);

retmsg = strDHigh;

ret = 1;

DHigh = close;

end;

排序方式: 標準 | 最新
XQ小幫手 發文於   2021/07/29

Hello blue sky,

 

您在once取得的並不是目前的當日最高價和最低價,而是該頻率的最高價與最低價。

所以如果是日線就會是取得當日最高/最低價沒錯,但是1分鐘頻率的話就會是取得該分鐘的最高價與最低價。

建議您將once那一段修改為:

once(true) begin

DHigh = getfield("High", "D");

DLow = getfield("Low", "D");

end;

這樣就可以保證不管在哪個頻率下都是取得該日到目前為止的最高價與最低價。

另外建議您可以將DHigh、DLow和close的值print出來觀察看腳本運作是否有符合您的預期。

blue sky 發文於   2021/07/29

謝謝小幫手的協助

發表回覆
Close