#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);