Переключение ТФ - это по сути удаление и добавление эксперта на график заново. Так что с инициализацией все логично.
Если хотите, чтобы эксперт работал на нескольких таймфреймах, то используйте соответствующие функции. Такая возможность есть.
Может тогда будем обнулять и глобальные переменные для всеобщей логичности?
Да и вообще, с закрытием МТ4 форматировать все диски.
Это не советник. Это индикатор. На счёт логичности не понял. Где логика?
Может тогда будем обнулять и глобальные переменные для всеобщей логичности?
Да и вообще, с закрытием МТ4 форматировать все диски.
Это не советник. Это индикатор. На счёт логичности не понял. Где логика?
Может тогда будем обнулять и глобальные переменные для всеобщей логичности?
Да и вообще, с закрытием МТ4 форматировать все диски.
Впрочем, так сейчас и делаю. Очень не удобно.
Это не советник. Это индикатор. На счёт логичности не понял. Где логика?
Может тогда будем обнулять и глобальные переменные для всеобщей логичности?
Да и вообще, с закрытием МТ4 форматировать все диски.
Впрочем, так сейчас и делаю. Очень не удобно.
С советниками ничего подобного не происходит, т. к. они не привязаны к ТФ. А может, и в советниках тоже самое ? Выходной, не проверишь, нет котировок.
С советниками ничего подобного не происходит, т. к. они не привязаны к ТФ. А может, и в советниках тоже самое ? Выходной, не проверишь, нет котировок.
С советниками ничего подобного не происходит, т. к. они не привязаны к ТФ. А может, и в советниках тоже самое ? Выходной, не проверишь, нет котировок.
Попробуй использовать ГЛОБАЛЬНЫЕ переменные
// в модуле INIT
init()
{
if (GlobalVariableCheck("gGep_LimitBuy3_"+Symbol()) == false )
GlobalVariableSet("gGep_LimitBuy3_"+Symbol(),pLimitBuy3);
if (GlobalVariableCheck("gGep_LimitSell3_"+Symbol()) == false )
GlobalVariableSet("gGep_LimitSell3_"+Symbol(),pLimitSell3);
}
start()
{
lTPSell2 = GlobalVariableGet("gGep_LimitBuy3_"+Symbol());
lTPBuy2 = GlobalVariableGet("gGep_LimitSell3_"+Symbol());
}
1-й старт
init
if (GlobalVariableCheck("gGep_LimitBuy3_"+Symbol()) == false ) // перевнной нет
GlobalVariableSet("gGep_LimitBuy3_"+Symbol(),pLimitBuy3); // инициализируем ее
переключаем ТФ
вновь отрабатывает INIT
if (GlobalVariableCheck("gGep_LimitBuy3_"+Symbol()) == false ) // переменная есть
GlobalVariableSet("gGep_LimitBuy3_"+Symbol(),pLimitBuy3); // сюда не попадем
При этом в init отработка при переключении не позволит вновь инициализировать gGep_LimitBuy3
Работает быстрее чем чтение из файла
только один момент
если выключим машину - включим ПЕРЕМЕННАЯ останется! надо учитывать поэтому после запуска холодной машины принимаем решение
чисть глобальные переменные или нет
Надежда на Метаквотов.
Юра, глобальные переменные не дают запомнить массив. Это не предусмотренно.
Надежда на Метаквотов.
Увы , Вадим...
организовать конечно можно попробовать
но боюсь это слишком сложно
к тому же возможно есть ограничения на кол гл переменных - не знаю
да и кол массивов возможно у тебя велико
а по сути небольшой массив/ы можно хранить и в глобальных
for ( i = 0; i <= КолЭлементов; i++ )
{
mas1 = "gMAS"+i
mas2 = "gMAS"+i
lTPS[ i ] = GlobalVariableGet(mas1+Symbol());
lTPB[ i ] = GlobalVariableGet(mas2+Symbol());
}
Кто печатать будет?
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Хотелось бы, чтобы этого не происходило. Пропадает смысл глобальности. Пусть пользователь сам решит, что, как и где инициализировать.
Метаквоты, ответьте пожалуйста, будет такая возможность?
Кажется раньше, в прежних билдах, с глобольностью было всё в порядке.