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

#thinkscript

#thinkscript

Вопрос:

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

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

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

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

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

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

Спасибо!

Ответ №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);