WedX - журнал о программировании и компьютерных науках

Построение максимального максимума за предыдущие 5 минут на 1-минутном таймфрейме

Я пытаюсь построить самый высокий максимум предыдущего 5-минутного бара на 1-минутном таймфрейме.

это мой сценарий

//@version=4
study("HTFB B/S 2", overlay=true)

start_y = input(2020, "Year")
start_m = input(5, "Month")
start_d = input(22, "Day")

t5 = time("5")

var float hi1 = na
var float hi5 = na

is_newbar_t5 = not na(t5) and (na(t5[1]) or t5 > t5[1])
canrun = time > timestamp(start_y,start_m,start_d,09,30,0)-1 and time < timestamp(start_y,start_m,start_d,10,0,0)+1

if canrun
    hi1 := high
    if is_newbar_t5
        label.new(bar_index, high, "newbar_t5", yloc=yloc.abovebar)
        hi5 := highest(high,5)
else
    hi1 := na
    hi5 := na

plot(hi1, title="hi1")
plot(hi5, title="hi5", color = is_newbar_t5 ? na : color.lime)

Что приводит к этому графику (на тикере SPX)

введите здесь описание изображения

Как видите, это не ожидаемый результат, потому что он не показывает самый высокий максимум за предыдущие 5 минут.
Я не понимаю, почему это не работает.
Предполагается, что оператор hi5 := highest(high,5) получить самый высокий максимум из предыдущих 5 минутных баров.
Но, похоже, это не так.

Это ошибка в Pine Script?
Или, что более вероятно, ошибка в моей логике?

23.05.2020

Ответы:


1

Проблема вызвана тем фактом, что highest() является одной из функций, которые требуют оценки на каждом баре, чтобы вернуть правильное значение, поэтому нам нужно форсировать это, вынеся его за пределы блока if.

Это приведет к ожидаемому поведению:

h = highest(high,5)
if canrun
    hi1 := high
    if is_newbar_t5
        label.new(bar_index, high, "newbar_t5", yloc=yloc.abovebar, color=color.orange)
        hi5 := h
else
    hi1 := na
    hi5 := na

С датой, установленной на 28-е число: введите здесь описание изображения

28.05.2020
Новые материалы

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

Учебные заметки: создание моего первого пакета Node.js
Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..

ИИ в аэрокосмической отрасли
Каждый полет – это шаг вперед к великой мечте. Чтобы это происходило в их собственном темпе, необходима команда астронавтов для погони за космосом и команда технического обслуживания..


Для любых предложений по сайту: [email protected]