在1分鐘頻率取60分K的高低價

  •   271 
  • 最後發表   路人小員工  2023 一月 17
路人小員工 發文於   2023/01/14

在台指期開盤後,要抓取前一之60分K(0400~0500)的高低值,並算出三關價

var:High1(0),Low1(0),pre(0),sup(0);

if CurrentTime >=084500 then 

begin

High1 = GetField("High","60")[1];

Low1 = GetField("low","60")[1];

pre=low1 + (High1-Low1) * 1.382;

sup=high1 - (High1-Low1) * 1.382;

end;

1.請問這個寫法正確嗎?還是得把[1]改成[2]呢?

2.如果在1分鐘的頻率下,取最高低數值的部分,是維持找出60分K的數值,還是會變成前一隻1分K的數值?

3.算出來的三關價,會隨著K棒的增加而變化嗎?還是會維持不變的數值呢?

以上問題,請幫忙回答,謝謝!

XQ小幫手 發文於   2023/01/17

Hello 路人小員工,

 

1.是的, GetField("High","60")[1] 在開盤後的前60分鐘 (也就是60分鐘頻率的第一根Bar) 都會取到上一根Bar的資訊 (也就是 04:00~05:00 這根Bar)。

但在那之後就不會是了。

舉例來說,在 100000 這根1分鐘Bar使用GetField("High","60")[1]就會取到開盤那一根60分鐘Bar的資訊。

 

2.看您找的序列資料是哪個序列。

舉例來說,使用在1分鐘頻率上的話 simplehighest(GetField("High","60"), 10) 就會是最近10根60分鐘Bar的最高點。

value1 = GetField("High","60");

simplehighest(value1, 10);

這樣的話則會是近10根1分鐘Bar的 value1 的資訊。

 

3.會,隨著時間變化您取得的 GetField("High","60")[1] 也會變動。

當對位的60分鐘頻率換Bar的話,計算出來的值就會不同。

如果只是要04:00~05:00 這根60分鐘Bar的資訊,只要用變數控制在指定時間運算就好。

舉例來說:

if time = 084500 then begin

    High1 = GetField("High","60")[1];

    Low1 = GetField("low","60")[1];

    pre=low1 + (High1-Low1) * 1.382;

    sup=high1 - (High1-Low1) * 1.382;

    end;

這樣數值就只會在084500這根Bar運算過一次後就維持在該值。

發表回覆
Close