變數

  •   156 
  • 最後發表   阿林  2023 六月 08
阿林 發文於   2023/06/01

請問小幫手 假設我使用兩分鐘頻率 例如今天早上9點30分的兩分k棒的high=日最高價

然後接下來可能9點40分從高點跌下來2% 然後當日振福有3% 然後可能過了15分鐘都沒再過高

我要如何用變數紀錄讓他不會再一直更新累計下去  我的意思是

假設9點30分的high是今天的最高點 可是很有可能等等10點過後 又拉過9點30分的那一個高點產生一個新的當日最高點

那我變數要如何寫 才不會好像計數器一樣一直累加上去 而是讓變數只記錄9點30分的那個高點呢

再麻煩小幫手了

排序方式: 標準 | 最新
test999 發文於   2023/06/02

聽不太懂你在說什麼

如果只想紀錄9.30前的最高點 用下面的判斷式即可 

if time<093000   //時間小於9點30分

XQ小幫手 發文於   2023/06/06

Hello 阿林,

 

您可以參考 test999 的回覆,用時間作條件限制。

舉例來說:

 

if issessionfirstbar then value1 = high;

if high > value1 and time <= 093000 then value1 = high;

 

這樣value1就會是開盤到 093000 這根Bar之間的最高價。

 

感謝 test999 的熱心回覆。

阿林 發文於   2023/06/06

小幫手您好 因為我說9點半的高點是舉例 因為我要的情況他可能今天高點不一定是出現在九點半

if barfreq <> "Min" or Barinterval <> 2 then RaiseRuntimeError("請設定頻率為2分鐘");

var:dd(0);

Value1 = GetQuote("振幅");

if issessionFirstBar then begin dd = 0; 

if high[3] = GetField("最高價", "D") and low <= high[3]*0.98 and value1 >= 3 then dd += 1; end;

如果我寫這樣那這個變數dd會一直累加上去 要怎樣寫才會讓dd只記錄一次 而且就算接下來又有同樣條件出現

這個dd也不會被覆蓋過去呢? 例如現在九點半dd紀錄一次了 那現在10點多了 又發生一次dd會去紀錄的情況

要怎樣寫就算10點多又發生一次if high[3] = GetField("最高價", "D") and low <= high[3]*0.98 and value1 >= 3 then dd += 1; end;

我寫的情況 但他只會紀錄九點半那次 而不會再覆蓋過去呢

再麻煩小幫手了 感謝

XQ小幫手 發文於   2023/06/08

 Hello 阿林,

 

就以您的範例,只需要加一個 dd <= 1 的條件即可。

像是if high[3] = GetField("最高價", "D") and low <= high[3]*0.98 and value1 >= 3 and dd <= 1 then dd += 1;

這樣dd += 1 就會被限制只會增加一次。

發表回覆
Close