Почему поведение индикаторов и советников отличается при инициализации?
При инициализации индикатора (первый запуск, смена любого input-параметра, смена TF-чарта) происходит сброс ВСЕХ глобальных переменных индикатора. С какой целью так сделано? Я понимаю сброс буферов индикаторов, но зачем сбрасывать глобальные переменные? Это чрезвычайно неудобно, так как нет возможности сохранять рабочую информацию в переменных.
При инициализации советника всё происходит как и ожидается, глобальные переменные остаются в сохранности.
Убедительная просьба к разработчикам, сделайте пожалуйста поведение индикаторов при инициализации так как в советниках.
Коды индикатора и советника в качестве доказательства:
#property indicator_chart_windowinputint Input1 = 1;
int a = 0;
int b = 0;
intOnInit()
{
if (a != Input1)
{
Print ("a!");
a = Input1;
}
if (b == 0)
{
Print ("b!");
b = 100;
}
Print (a, " ", b);
return(INIT_SUCCEEDED);
}
intOnCalculate(constint rates_total,
constint prev_calculated,
constdatetime &time[],
constdouble &open[],
constdouble &high[],
constdouble &low[],
constdouble &close[],
constlong &tick_volume[],
constlong &volume[],
constint &spread[])
{
return(rates_total);
}
inputint Input1 = 1;
int a = 0;
int b = 0;
intOnInit()
{
if (a != Input1)
{
Print ("a!");
a = Input1;
}
if (b == 0)
{
Print ("b!");
b = 100;
}
Print (a, " ", b);
return(INIT_SUCCEEDED);
}
Почему поведение индикаторов и советников отличается при инициализации?
При инициализации индикатора (первый запуск, смена любого input-параметра, смена TF-чарта) происходит сброс ВСЕХ глобальных переменных индикатора. С какой целью так сделано? Я понимаю сброс буферов индикаторов, но зачем сбрасывать глобальные переменные? Это чрезвычайно неудобно, так как нет возможности сохранять рабочую информацию в переменных.
При инициализации советника всё происходит как и ожидается, глобальные переменные остаются в сохранности.
Убедительная просьба к разработчикам, сделайте пожалуйста поведение индикаторов при инициализации так как в советниках.
Коды индикатора и советника в качестве доказательства:
Это поведение было всегда. И оно правильное, потому что это индикатор.
И такое поведение работает при смене таймфрема. Предпологается что для индикатора должно быть пересчитано все.
Это поведение было всегда. И оно правильное, потому что это индикатор.
И такое поведение работает при смене таймфрема. Предпологается что для индикатора должно быть пересчитано все.
с чего это Вы решили, что такое поведение правильное? аргументации - 0.
если Вам нужно инициализировать глобальные переменные - можете это делать с удовольствием в OnInit (), но вот если же Вам понадобиться, наоборот, хранить какую то информацию в глобальных переменных (а глобальные переменные терминала не всегда могут спасти ситуацию если речь о достаточно больших массивах), то ничего поделать с этим не сможете!. и Да, это как раз таки Индикатор, в котором не допустимы никакие задержки, так как будет остановлен поток и варианты хранения переменных в файлах или где то ещё просто не допустимы, как раз согласно идеологии работы индикаторов в отличии от остальных типов программ.
с чего это Вы решили, что такое поведение правильное? аргументации - 0.
если Вам нужно инициализировать глобальные переменные - можете это делать с удовольствием в OnInit (), но вот если же Вам понадобиться, наоборот, хранить какую то информацию в глобальных переменных (а глобальные переменные терминала не всегда могут спасти ситуацию если речь о достаточно больших массивах), то ничего поделать с этим не сможете!. и Да, это как раз таки Индикатор, в котором не допустимы никакие задержки, так как будет остановлен поток и варианты хранения глобальных переменных в файлах или где то ещё просто не допустимы, как раз согласно идеологии работы индикаторов в отличии от остальных типов программ.
опыт работы: 9+ лет :))) с добрым утром! Все уже давно научились жить с этим. На форуме информации об этом вагон и маленькая вагонетка.
Nikolai Semko #: 1. опыт работы: 9+ лет :))) 2. с добрым утром! 3. Все уже давно научились жить с этим. На форуме информации об этом вагон и маленькая вагонетка.
1. Это типа тонкий подкол? не утруждайтесь ходить ко мне в профиль, живите своей жизнью)))
2. здрасте.
3. если вы давно и упорно входите в дом через окно аки муха, то это не значит что делаете правильно. люди входят в дом через дверь. напомню вам, есть специально предназначенная функция для инициализации OnInit (), в ней и должен программист инициализировать всё что ему нужно. а всё, что делается без ведома программиста и без его согласия - зло!
1. Это типа тонкий подкол? не утруждайтесь ходить ко мне в профиль, живите своей жизнью)))
2. здрасте.
3. если вы давно и упорно входите в дом через окно аки муха, то это не значит что делаете правильно. люди входят в дом через дверь. напомню вам, есть специально предназначенная функция для инициализации OnInit (), в ней и должен программист инициализировать всё что ему нужно. а всё, что делается без ведома программиста и без его согласия - зло!
Извините, огромная просьба, можете скинуть мне bild 3323, спасибо.
ArraySortStruct2(Rates, high) - это mql5? А как в 4й версии отсортировать по хаям?
bild 3323
Почему поведение индикаторов и советников отличается при инициализации?
При инициализации индикатора (первый запуск, смена любого input-параметра, смена TF-чарта) происходит сброс ВСЕХ глобальных переменных индикатора. С какой целью так сделано? Я понимаю сброс буферов индикаторов, но зачем сбрасывать глобальные переменные? Это чрезвычайно неудобно, так как нет возможности сохранять рабочую информацию в переменных.
При инициализации советника всё происходит как и ожидается, глобальные переменные остаются в сохранности.
Убедительная просьба к разработчикам, сделайте пожалуйста поведение индикаторов при инициализации так как в советниках.
Коды индикатора и советника в качестве доказательства:
bild 3323
Почему поведение индикаторов и советников отличается при инициализации?
При инициализации индикатора (первый запуск, смена любого input-параметра, смена TF-чарта) происходит сброс ВСЕХ глобальных переменных индикатора. С какой целью так сделано? Я понимаю сброс буферов индикаторов, но зачем сбрасывать глобальные переменные? Это чрезвычайно неудобно, так как нет возможности сохранять рабочую информацию в переменных.
При инициализации советника всё происходит как и ожидается, глобальные переменные остаются в сохранности.
Убедительная просьба к разработчикам, сделайте пожалуйста поведение индикаторов при инициализации так как в советниках.
Коды индикатора и советника в качестве доказательства:
Это поведение было всегда. И оно правильное, потому что это индикатор.
И такое поведение работает при смене таймфрема. Предпологается что для индикатора должно быть пересчитано все.
Это поведение было всегда. И оно правильное, потому что это индикатор.
И такое поведение работает при смене таймфрема. Предпологается что для индикатора должно быть пересчитано все.
с чего это Вы решили, что такое поведение правильное? аргументации - 0.
если Вам нужно инициализировать глобальные переменные - можете это делать с удовольствием в OnInit (), но вот если же Вам понадобиться, наоборот, хранить какую то информацию в глобальных переменных (а глобальные переменные терминала не всегда могут спасти ситуацию если речь о достаточно больших массивах), то ничего поделать с этим не сможете!. и Да, это как раз таки Индикатор, в котором не допустимы никакие задержки, так как будет остановлен поток и варианты хранения переменных в файлах или где то ещё просто не допустимы, как раз согласно идеологии работы индикаторов в отличии от остальных типов программ.
с чего это Вы решили, что такое поведение правильное? аргументации - 0.
если Вам нужно инициализировать глобальные переменные - можете это делать с удовольствием в OnInit (), но вот если же Вам понадобиться, наоборот, хранить какую то информацию в глобальных переменных (а глобальные переменные терминала не всегда могут спасти ситуацию если речь о достаточно больших массивах), то ничего поделать с этим не сможете!. и Да, это как раз таки Индикатор, в котором не допустимы никакие задержки, так как будет остановлен поток и варианты хранения глобальных переменных в файлах или где то ещё просто не допустимы, как раз согласно идеологии работы индикаторов в отличии от остальных типов программ.
с добрым утром!
Все уже давно научились жить с этим. На форуме информации об этом вагон и маленькая вагонетка.
1. опыт работы: 9+ лет :)))
2. с добрым утром!
3. Все уже давно научились жить с этим. На форуме информации об этом вагон и маленькая вагонетка.
1. Это типа тонкий подкол? не утруждайтесь ходить ко мне в профиль, живите своей жизнью)))
2. здрасте.
3. если вы давно и упорно входите в дом через окно аки муха, то это не значит что делаете правильно. люди входят в дом через дверь. напомню вам, есть специально предназначенная функция для инициализации OnInit (), в ней и должен программист инициализировать всё что ему нужно. а всё, что делается без ведома программиста и без его согласия - зло!
1. Это типа тонкий подкол? не утруждайтесь ходить ко мне в профиль, живите своей жизнью)))
2. здрасте.
3. если вы давно и упорно входите в дом через окно аки муха, то это не значит что делаете правильно. люди входят в дом через дверь. напомню вам, есть специально предназначенная функция для инициализации OnInit (), в ней и должен программист инициализировать всё что ему нужно. а всё, что делается без ведома программиста и без его согласия - зло!
Извините, огромная просьба, можете скинуть мне bild 3323, спасибо.
Извините, огромная просьба, можете скинуть мне bild 3323, спасибо.
конечно.
ЗЫ. у Вас в настройках установлено разрешение на получение сообщений только от друзей.ArraySortStruct2(Rates, high) - это mql5?
Да.
А как в 4й версии отсортировать по хаям?
Надо либо менять mql5-редакцию, либо брать альтернативные реализации в той ветке.