Musashi大,關於跌破開盤價的通知

  •   341 
  • 最後發表   WEIWANG  2022 十月 17
WEIWANG 發文於   2022/10/14

Musashi大你好,

我設法寫一個:
1.若跌破開盤價就通知一次
2.跌破後,若價格回升到開盤價+5TICK以上,若之後再度跌破開盤價就再通知一次

頻率設為1分線,是當沖使用,每天09:03啟動

但是我發現每次通知都是錯的價位,請問問題是在哪裡 
真的想破頭才發問,感謝

if issessionFirstBar then value1=1;

if value1 = 1 then begin 

if close < AddSpread(GetField("開盤價"), -1) 

then ret = 1;

value1=0;

end;

if value1 = 0 then begin 

if close > AddSpread(GetField("開盤價"), 5) 

then value1=1;

end;

 

排序方式: 標準 | 最新
musashi 發文於   2022/10/14

沒測試過,先試試看吧

if issessionFirstBar then value1=0;

if  value1 = 0 //事件未發生
and C cross Under AddSpread(GetField("開盤價"), -1) 
then begin
    ret = 1; retMsg="第1次跌破開盤價";
    value1=1;//第1次跌破開盤價
end;

if  value1 = 1 //第1次跌破開盤價時
and C cross over AddSpread(GetField("開盤價"), 5) 
then begin
    value1=2;//價格回升到開盤價+5TICK以上
end;

if  value1 = 2 //價格回升到開盤價+5TICK以上時
and C cross Under AddSpread(GetField("開盤價"), -1) 
then begin
    ret = 1; retMsg="第2次跌破開盤價";
end;

 

WEIWANG 發文於   2022/10/15

Musashi大,謝謝,看了之後很有收穫,而且之前我也不知道有retmsg這樣的用法

XQ小幫手 發文於   2022/10/17

 Hello WEIWANG,

 

小幫手補充,如果您是使用逐筆洗價的話,在用變數紀錄條件是否達成時可以參考 IntrabarPersist 函數。

不然若條件只有在 bar 中間符合的話變數會無法記住。

另外 AddSpread 是交易函數,所以只能使用在交易腳本當中。

發表回覆
Close