Открытие и закрытие первого 1-минутного бара

Я знаю, что спрашивать здесь долго, но я ищу способ определить, красна ли первая 1-минутная свеча, что означает, что бар закрывается ниже открытия.

Для этого мне просто нужно значение открытия и значение закрытия первого минутного бара, но я не нашел способа получить закрытие.

Получение открытия довольно прямолинейно:

def openValue = open(period = AggregationPeriod.DAY);

Получить диапазон первого бара также довольно просто, поскольку мы определяем диапазон (1 мин) и возвращаем максимум/минимум этого диапазона.

Если кто-нибудь может помочь, я был бы очень признателен.

Спасибо!


person ADSquared    schedule 19.09.2020    source источник


Ответы (1)


Хорошо, кто-то помог мне разобраться.

def x = barNumber(); //bar

def RTH = getTime() >= RegularTradingStart(getYYYYMMDD()) and 

      getTime() <= RegularTradingEnd(getYYYYMMDD()); 

def TodaysOpen = if RTH and !RTH[1] 

             then open 

             else TodaysOpen[1]; 

def OpenX = if RTH and !RTH[1] 

        then x 

        else double.nan; 

def YesterdaysClose = if !RTH and RTH[1] 

                  then close[1] 

                  else YesterdaysClose[1]; 

def CloseX = if !RTH and RTH[1] 

           then x 

           else double.nan; 

def HighToday = if RTH and !RTH[1] 

            then high 

            else if RTH and high > HighToday[1] 

                 then high 

            else HighToday[1]; 

 def HighX = if high == HighToday 

        then x 

        else double.nan; 

def LowToday = if RTH and !RTH[1] 

           then low 

           else if RTH and low < LowToday[1] 

                then low 

           else LowToday[1]; 

def LowX = if low == LowToday 

       then x 

       else double.nan; 

plot OpenToday = if barNumber() >= HighestAll(OpenX) 

             then HighestAll(if isNaN(close[-1]) 

                             then TodaysOpen 

                             else double.nan) 

             else double.nan; 

 OpenToday.SetStyle(Curve.Long_Dash); 





def firstbarclose = if RTH and !RTH[1] 

             then  close

             else firstbarclose[1]; 



plot CloseBar = if barNumber() >= HighestAll(OpenX) 

             then HighestAll(if isNaN(close[-1]) 

                             then firstbarclose

                             else double.nan) 

             else double.nan; 

closebar.SetStyle(Curve.Long_Dash); 
person ADSquared    schedule 20.09.2020