Страница 1 из 2

индикатор сбоит и глючит

Добавлено: 22 авг 2018, 01:26
KakTak
.......AddParameter("PeriodType", 0);
.......
if (PeriodType == 4 && BarDate(1).Month != BarDate(0).Month) VABid = 0; //месяцы
VaBid - это счетчик который должен обнулятся каждый месяц, как только я переключаю таймфрейм на 1 минуту и начинаю двигать, уменьшать, увеличивать график, VaBid показывает разные данные в одну и ту же минуту в один и тот же день в зависимости от положения графика, то есть, как я предполагаю, счетчик обнуляется не в первую минуту первого дня месяца, а даже не обнуляется, а каким то макаром изменяются данные то в большую то в меньшую сторону в зависимости от положения графика в окне, ну и размеров окна соответственно.
Представим, что у вас обычный индикатор объема и вот индикатор показывает, что в 13.53 за 1 минуту прошло 1000 контрактов вы смотрите на свечу индикатора и да она довольно большая, походу и правда тысяча, но стоит вам передвинуть график на 3 часа назад эта свечка (13.53) находится у вас в правом стороне окна графика и она стала меньше, "ну ничего" думаете вы просто 3 часа назад торги были активнее, объемы больше и из-за масштабирования размеры свечки визуально уменьшились, наводим курсор чтобы проверить и о боги в 13.53 на этой свече прошло не 1000, а 650 контрактов, не веря своим глазам двигаем график к обеду где всего пару минут назад было 13.53 и что мы видим? а видим мы 1000 контрактов в 13.53, двигаем на три часа назад снова 650. Вот такого рода баг на моем индикаторе.
p/s/ пробовал в настройках отключать масштабирование в закладке "оси", не помогло. Ж)

Re: индикатор сбоит и глючит

Добавлено: 22 авг 2018, 09:14
evge
всё дело в ТФ и загружаемой истории.

Если ТФ это 1 минута представьте какую историю должен загрузить терминал для пары месяцев.

грубо, по акциям 8.75 (час) * 60 (мин) = 525

525 (мин) * 20 (дней) = примерно 10500 баров, и это только 1 месяц

Индикатор просто не получает все сведения для расчета.

Попробуйте задать в параметре множитель для загрузки истории, но думаю терминалу это не понравится :)

AddParameter("x", 10500, 2);

Re: индикатор сбоит и глючит

Добавлено: 22 авг 2018, 11:14
KakTak
я не совсем понял куда x пихать потом?

Re: индикатор сбоит и глючит

Добавлено: 22 авг 2018, 13:43
evge
Из документации:

AddParameter(Name, Value)
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: индикатор сбоит и глючит

Добавлено: 22 авг 2018, 14:40
KakTak
параметр создан, а в function Evaluate() нужно его вставлять? или он автоматом будет работать? if (PeriodType == 4 && BarDate().Month != BarDate(1).Month) VABid = 0; History = 10500; ??? Так? Извините не допирает немного до меня. Будет всем проще если дадите название индикатора где регулировка истории для расчета происходит, подскажите плз

Re: индикатор сбоит и глючит

Добавлено: 22 авг 2018, 15:02
evge
в Initialize()

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

например, у вас есть параметр Period

AddParameter("Period", 1000);

Но вы не уверены что в график загружено будет 1000 баров да и надо может быть по коду больше для анализа, поэтому добавляем так:

AddParameter("Period", 1000, 5);

В итоге заставляем терминал попытаться загрузить 1000 * 5 баров на график :), но кажется там есть предел.

Re: индикатор сбоит и глючит

Добавлено: 22 авг 2018, 15:10
KakTak
Но у меня только один параметр это PeriodType и влияет он только на выбор точки начала расчета, как завязать его с историей в 10000 баров
if (PeriodType == 2 && BarDate() != BarDate(1)) VABid = 0; //дни
if (PeriodType == 3 && BarDate().DayOfWeek != BarDate(1).DayOfWeek) VABid = 0; //недели
if (PeriodType == 4 && BarDate().Month != BarDate(1).Month) VABid = 0;//месяцы

AddParameter("PeriodType", 0);
прописать в нем вот так?
AddParameter("PeriodType", 4, 2500); ??????? 4 * 2500 = 10000 баров?

Re: индикатор сбоит и глючит

Добавлено: 22 авг 2018, 15:19
evge
Добавить любой другой параметр, только для цели загрузки истории.

Но всё равно, как и говорил выше, такой объем он не загрузит 10500 + * ....

Re: индикатор сбоит и глючит

Добавлено: 22 авг 2018, 20:31
KakTak
в торговом месяце примерно 16500 минут

Re: индикатор сбоит и глючит

Добавлено: 22 авг 2018, 20:36
KakTak
кароче отстой, причем полный! Спасибо за разбор полетов