Доброго дня всем!

Суть вот в чем, надо сделать индикатор Вильямса %R, по формуле и действующий как индикатор в Квике.

Библиотека Луа индикаторов Квика доступна и код открыт. Формула так же известна. Вроде бы не должно быть никаких проблем.
Но как то не работает.
Помогите разобраться, если кто в теме.
Сам ни Луа ни Си шарп ни владею, поэтому текст в Луа для меня не полностью понятен в качестве деталей. Хотя формула там стоит общеизвестная: -100*(val_h-GetValueEX(it.p,CLOSE,ds))/(val_h-val_l)
Это формула из Луа индикатора Квика, в сети она выглядит так:
%R = -(MAX (HIGH (i – n)) – CLOSE (i)) / (MAX (HIGH (i – n)) – MIN (LOW (i – n))) * 100
Где:
CLOSE (i) — текущая цена закрытия;
MAX (HIGH (i – n)) — наибольший максимум за n предыдущих периодов;
MIN (LOW (i – n)) — наименьший минимум за n предыдущих периодов.

Так вот что хотелось бы иметь на выходе. Имеем тиковый график на входе (потоковый рабочий), с секундным таймфреймом. Имеем две сигнальные линии -20 и -80 и линию самого индикатора, которая при перекупленности пересекает линию -20 при перепроданности пересекает линию -80.
В Квике видно как каждую секунду при изминении цены двигается последнее значение линии (кончик линии). Это важно - по пересечению линии с задержкой после пересечения в 10 сек (для примера) позиция открывается или наоборот закрывается если уже была открыта (как один из вариантов).
Т.е. в Квике все графически видно и адекватно работает (сравнивал у других поставщиков данных где присутствует данный индикатор).

Какая проблема в Тслаб - делаю на кубиках и формулу задаю в кубике формулы - так вот, на входе в формулу надо подать минимальное значение за период 14 свечей М5 (беру рабочие параметры того что нужно на выходе) - это два кубика последовательно Минимум и далее МинимумЗа, где период выбираю 4200 (в секундах, так как таймфрейм 1 секунда, поэтому 5 мин х 14 х 60 сек = 4200), так же и максимум два кубика последовательно - Максимум и МаксимумЗа с периодом 4200.

Далее в формулу подключаю кубик Закрытие и в формуле пишем: ((МаксимуЗа-Закрытие) / (МаксимуЗа-МинимумЗа)) * -100

В итоге получаю графически повторение графика цены только в диапазоне от 0 до -100. Прилагаю скриншоты Тслаб и графика из Квика за тот же период (28 января 7-14 часов). Так же сам скрипт индикатора который собрал прикрепляю (скриншот с кубиками).

Вопрос - в чем может быть ошибка? Так как с программой еще знаком слабо возможно какие тонкости не знаю. Но формула вроде простая, поэтому и понять не могу в чем дело.
Самым последний скриншот та же формула, тот же отрезок данных, только поставил таймфрейм 5М на графике и 14 период в кубиках индикатора - картинка практически идентичная той что в Квике.

Но та же формула не рисует в секундном таймфрейме - в чем дело? Возможно есть ограничение на количество баров в кубиках МаксимумЗа и МинимумЗа? И как к примеру это обойти?

Я и текст в Луа приложил - если кто в теме может что подскажет, просто не пойму где собака порылась. Голову уже сломал.

Текст поста отдельно прикрепил - когда сохраняешь пост и смотришь на форуме почемуто некоторые слова коверкает, после возвращения в редактор все нормально. Как буд то программа прописана на форуме вредительская. Ощущение что с разработчиками форума не расплатились за работу как должно они и напакостили.


Attachments
WR(Lua).txt (34 downloads)
Скрипт индикатора %R.tscript (53 downloads)
2022-02-05_112849.png (42 downloads)
2022-02-05_114018.png (29 downloads)
2022-02-05_112751.png (33 downloads)
2022-02-05_115200.png (30 downloads)
Текст поста.txt (17 downloads)



Отредактировано Arseniy (Sat Feb 05 2022 02:01 PM)