Общие вопросы по разработке > индикатор сбоит и глючит

Общие вопросы по разработке в Альфа-Директ 4. Обсуждение разработки пользовательских индикаторов, стратегий.
KakTak
Сообщения: 128
Зарегистрирован: 21 мар 2016, 17:55

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

Непрочитанное сообщение KakTak » 22 авг 2018, 01:26

.......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/ пробовал в настройках отключать масштабирование в закладке "оси", не помогло. Ж)

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

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

Непрочитанное сообщение evge » 22 авг 2018, 09:14

всё дело в ТФ и загружаемой истории.

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

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

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

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

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

AddParameter("x", 10500, 2);
никогда такого не было и вот опять

KakTak
Сообщения: 128
Зарегистрирован: 21 мар 2016, 17:55

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

Непрочитанное сообщение KakTak » 22 авг 2018, 11:14

я не совсем понял куда x пихать потом?

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

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

Непрочитанное сообщение evge » 22 авг 2018, 13:43

Из документации:

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)

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

KakTak
Сообщения: 128
Зарегистрирован: 21 мар 2016, 17:55

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

Непрочитанное сообщение KakTak » 22 авг 2018, 14:40

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

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

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

Непрочитанное сообщение evge » 22 авг 2018, 15:02

в Initialize()

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

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

AddParameter("Period", 1000);

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

AddParameter("Period", 1000, 5);

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

KakTak
Сообщения: 128
Зарегистрирован: 21 мар 2016, 17:55

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

Непрочитанное сообщение KakTak » 22 авг 2018, 15:10

Но у меня только один параметр это 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 баров?

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

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

Непрочитанное сообщение evge » 22 авг 2018, 15:19

Добавить любой другой параметр, только для цели загрузки истории.

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

KakTak
Сообщения: 128
Зарегистрирован: 21 мар 2016, 17:55

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

Непрочитанное сообщение KakTak » 22 авг 2018, 20:31

в торговом месяце примерно 16500 минут

KakTak
Сообщения: 128
Зарегистрирован: 21 мар 2016, 17:55

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

Непрочитанное сообщение KakTak » 22 авг 2018, 20:36

кароче отстой, причем полный! Спасибо за разбор полетов


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

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

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