Общие вопросы по разработке > Вопрос по индикатору, разработанному Евгением.

Общие вопросы по разработке в Альфа-Директ 4. Обсуждение разработки пользовательских индикаторов, стратегий.
Аватара пользователя
Den
Сообщения: 344
Зарегистрирован: 09 фев 2016, 15:52
Благодарил (а): 14 раз
Поблагодарили: 4 раза

Re: Вопрос по индикатору, разработанному Евгением.

Непрочитанное сообщение Den » 24 апр 2020, 16:28

Увеличение количества баров не помогает.
Получается это чисто программная проблема самого терминала, а не индикатора?

BugsDigger
Сообщения: 333
Зарегистрирован: 11 ноя 2018, 17:11
Благодарил (а): 21 раз
Поблагодарили: 41 раз

Re: Вопрос по индикатору, разработанному Евгением.

Непрочитанное сообщение BugsDigger » 24 апр 2020, 16:55

Скорее не проблема, а особенность работы.

Индикаторы вызываются периодически, для работы в реальном времени они должны успевать вычислиться за время много меньшее, чем период вызова. Если в секундном ТФ дать вам ~100 тыс. точек, то счет замедлится. А если несколько таких индикаторов?.. Думаю, поэтому и дается история как-то разумно ограниченной длины.

Между прочим, в док-ции время от времени есть замечания, что те или иные фичи работают только для ТФ >= M1; весьма вероятно, что это связано как раз с этой проблемой.

В вашем случае очень м.б., что график, начатый в начале дня, будет работать нормально до ... первой перерисовки. Если терминал захочет перерисовать график, экземпляр индикатора будет пересоздан, и его показания будут пересчитаны с известными последствиями.

Аватара пользователя
evge
Администратор
Сообщения: 1641
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 64 раза
Поблагодарили: 294 раза
Контактная информация:

Re: Вопрос по индикатору, разработанному Евгением.

Непрочитанное сообщение evge » 24 апр 2020, 16:58

Увеличить ограничения чтения истории терминала вы не можете.
Можно попросить через параметр, задав третий параметр "множитель" в объявлении параметра, для принудительного увеличения чтения истории. Но терминал больше своего предельного лимита не прочитает.

Выведите в индикаторе новую серию любого вида (линия или гистограмма или другое), в которую выведите значение MaxIndex или CurrentIndex и вы увидите максимальную историю, которую терминал прочитал в индикаторе.

в Initialize()

Код: Выделить всё

AddSeries("CI", DrawAs.Histogram, Color.Red);


в Evaluate()

Код: Выделить всё

CI = CurrentIndex;
никогда такого не было и вот опять

Аватара пользователя
Den
Сообщения: 344
Зарегистрирован: 09 фев 2016, 15:52
Благодарил (а): 14 раз
Поблагодарили: 4 раза

Re: Вопрос по индикатору, разработанному Евгением.

Непрочитанное сообщение Den » 24 апр 2020, 17:30

CI = 1529 на S12
обрыв верного расчета произошёл в 15:00 где-то
Так можно или нет увеличить чтение истории?

Аватара пользователя
evge
Администратор
Сообщения: 1641
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 64 раза
Поблагодарили: 294 раза
Контактная информация:

Re: Вопрос по индикатору, разработанному Евгением.

Непрочитанное сообщение evge » 24 апр 2020, 18:40

Den писал(а):Так можно или нет увеличить чтение истории?


AddParameter("ЛюбоеИмя", 1000, 5) - 1000 * 5 - попытка принудительно прочитать 5000 баров истории.

смотрите потом на CI что выдало, если меньше, значит предел совершенства был достигнут :)
никогда такого не было и вот опять

Аватара пользователя
Den
Сообщения: 344
Зарегистрирован: 09 фев 2016, 15:52
Благодарил (а): 14 раз
Поблагодарили: 4 раза

Re: Вопрос по индикатору, разработанному Евгением.

Непрочитанное сообщение Den » 24 апр 2020, 19:02

СI = 6519 , теперь расчет верный происходит.

Но очень жёстко тормозит (надо уменьшать размер истории, видимо, методом тыка)

Евгений, спасибо !

P/S Тормозит настолько жёстко, что пришлось удалять DB и logs

Интересно,есть какие-либо варианты облегчить его?

Аватара пользователя
Den
Сообщения: 344
Зарегистрирован: 09 фев 2016, 15:52
Благодарил (а): 14 раз
Поблагодарили: 4 раза

Re: Вопрос по индикатору, разработанному Евгением.

Непрочитанное сообщение Den » 24 апр 2020, 22:31

evge, уточнение -
AddParameter("ЛюбоеИмя", 1000, 5) - 1000 * 5 - попытка принудительно прочитать 5000 баров истории.


Имеется ввиду бары соответствующего ТФ?

К примеру, на S30 за день 1660 баров , так?

BugsDigger
Сообщения: 333
Зарегистрирован: 11 ноя 2018, 17:11
Благодарил (а): 21 раз
Поблагодарили: 41 раз

Re: Вопрос по индикатору, разработанному Евгением.

Непрочитанное сообщение BugsDigger » 25 апр 2020, 07:52

Документ "СКРИПТЫ ПОЛЬЗОВАТЕЛЬСКИХ ИНДИКАТОРОВ И СТРАТЕГИЙ"

AddParameter(Name, Value, Length) – функция добавления в индикатор параметра, который можно задавать через форму настройки.

Параметры:
 Name – имя параметра, должно удовлетворять требованиям описания переменной содержать латинские символы и цифры.
 Value – значение по умолчанию
 Length – опциональный параметр, определяющий масштабный коэффициент (опциональный параметр), позволяющий определять требуемую длину истории для правильного расчета индикатора.
o Length = 0 или нет данного параметра – параметр не влияет на загрузку требуемой истории по инструменту;
o Length > 1 – в качестве требуемой длины истории для расчета индикатора берется значение равное Length * Value.

Пример.
AddParameter("Period", 5); // Создание параметра с именем "Реriod" и значением по умолчанию 5.
AddParameter("SD", 0.5); // Создание параметра с именем "SD" и значением по умолчанию 0.5
AddParameter("History", 100, 2);// Создание параметра с именем "History" и значением 100, требующий размер истории 200 баров ( т.е. 100*2)

Аватара пользователя
Den
Сообщения: 344
Зарегистрирован: 09 фев 2016, 15:52
Благодарил (а): 14 раз
Поблагодарили: 4 раза

Re: Вопрос по индикатору, разработанному Евгением.

Непрочитанное сообщение Den » 25 апр 2020, 08:29

BugsDigger, действительно. Спасибо за ответ.

Аватара пользователя
evge
Администратор
Сообщения: 1641
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 64 раза
Поблагодарили: 294 раза
Контактная информация:

Re: Вопрос по индикатору, разработанному Евгением.

Непрочитанное сообщение evge » 25 апр 2020, 08:42

На 90% вопросов там есть ответ.

Здесь, в форуме, продублировать конечно полезно.

Не забывайте заглядывать в документацию.

AD4-Docs-01.png
AD4-Docs-01.png (17.13 КБ) 2663 просмотра
никогда такого не было и вот опять


Вернуться в «Общие вопросы по разработке»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя