возможно обновление данных индикатора во время премаркета вместо начала сессии?

Я написал скрипт для рисования вчерашних максимумов/минимумов/закрытий и максимумов/минимумов двухдневной давности.

Я бы хотел, чтобы скрипт обновлял строки во время премаркета текущего дня, а не в начале сессии в 9:30.

Есть ли простой способ сделать то или иное, что потребует более сложного переписывания всего скрипта (я новичок в скрипте pine)?

//@version=4
study("YY H/L2", overlay=true)
security_1 = security(syminfo.tickerid, 'D', high[1], lookahead=barmerge.lookahead_on)
plot(timeframe.isintraday ? security_1 : na, title="Yhigh", trackprice=true, offset=-99999, color=#a5d6a7, linewidth=2)
security_2 = security(syminfo.tickerid, 'D', low[1], lookahead=barmerge.lookahead_on)
plot(timeframe.isintraday ? security_2 : na, title="Ylow", trackprice=true, offset=-99999, color=#4caf50, linewidth=2)
security_3 = security(syminfo.tickerid, 'D', high[2], lookahead=barmerge.lookahead_on)
plot(timeframe.isintraday ? security_3 : na, title="YYhigh", trackprice=true, offset=-99999, color=#ffcc80, linewidth=2)
security_4 = security(syminfo.tickerid, 'D', low[2], lookahead=barmerge.lookahead_on)
plot(timeframe.isintraday ? security_4 : na, title="YYlow", trackprice=true, offset=-99999, color=#ff9800, linewidth=2)
security_5 = security(syminfo.tickerid, 'D', close[1], lookahead=barmerge.lookahead_on)
plot(timeframe.isintraday ? security_5 : na, title="Yclose", trackprice=true, offset=-99999, color=#b39ddb, linewidth=2)

ОБНОВЛЕНИЕ: пытаюсь добавить вторую переменную, которая бы обновляла линии на графике в конце дневной сессии в 16:00

security_1 = security(syminfo.tickerid, 'D', high[1], lookahead=barmerge.lookahead_on)  
security_1a = security(syminfo.tickerid, 'D', high, lookahead=barmerge.lookahead_on)  

Можно ли использовать security_1 между 9:30 и 15:59 и security_1a между 16:00 и 9:29 следующего дня в функции plot()? Таким образом, как только сессия закончится (и начнется нерабочее время), линия будет обновлена ​​до максимума текущего дня. Таким образом, когда график открывается во время премаркета на следующий день, линии уже находятся на том уровне, который будет «вчерашним максимумом» до начала сессии.

Я думал об использовании оператора if для этого, но то, что я пробовал до сих пор, не сработало.


person Rick911    schedule 05.02.2020    source источник


Ответы (2)


Предварительные рыночные данные недоступны за дневные интервалы, просмотренные security().

person PineCoders-LucF    schedule 05.02.2020

Как уже упоминал Люк, пре- и постмаркеты не являются частью дневной сессии, поэтому для их достижения вам следует вызывать в безопасности не 'D'-таймфрейм, а '1440':

security_1 = security(syminfo.tickerid, '1440', high[1], lookahead=barmerge.lookahead_on)

И естественно этот скрипт нужно вызывать на внутридневном разрешении с включенной расширенной сессией на графике.

person Michel_T.    schedule 06.02.2020
comment
Спасибо, Мишель! Не знал этого. - person PineCoders-LucF; 06.02.2020
comment
@Мишель_Т. Спасибо за ответ, хотя мне нужно продолжать использовать дневной таймфрейм «D», чтобы отслеживать максимумы и минимумы. При вызове «1440» сценарий учитывает максимумы и минимумы расширенного сеанса, которые мне не нужны. Я хотел бы обновить горизонтальные линии при закрытии рынка, чтобы отразить только что закончившуюся сессию. Я отредактировал свой первоначальный пост с тем, что я пробовал. - person Rick911; 08.02.2020
comment
Но пре- и пострынки являются частью расширенной сессии. Вы можете сохранить дневное разрешение на графике, но создать новый тиккерид через функцию тиккерид и установить там расширенную сессию. Таким образом, вы можете запросить данные в безопасности. - person Michel_T.; 08.02.2020