Страница 3 из 4

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

Добавлено: 24 апр 2020, 16:28
Den
Увеличение количества баров не помогает.
Получается это чисто программная проблема самого терминала, а не индикатора?

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

Добавлено: 24 апр 2020, 16:55
BugsDigger
Скорее не проблема, а особенность работы.

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

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

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

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

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

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

в Initialize()

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

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


в Evaluate()

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

CI = CurrentIndex;

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

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

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

Добавлено: 24 апр 2020, 18:40
evge
Den писал(а):Так можно или нет увеличить чтение истории?


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

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

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

Добавлено: 24 апр 2020, 19:02
Den
СI = 6519 , теперь расчет верный происходит.

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

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

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

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

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

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


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

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

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

Добавлено: 25 апр 2020, 07:52
BugsDigger
Документ "СКРИПТЫ ПОЛЬЗОВАТЕЛЬСКИХ ИНДИКАТОРОВ И СТРАТЕГИЙ"

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)

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

Добавлено: 25 апр 2020, 08:29
Den
BugsDigger, действительно. Спасибо за ответ.

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

Добавлено: 25 апр 2020, 08:42
evge
На 90% вопросов там есть ответ.

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

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

AD4-Docs-01.png
AD4-Docs-01.png (17.13 КБ) 16215 просмотров