Если эксперт загружен на чарте, то при попытке изменения
"Входных параметров" эксперта, изменения не вступают в силу,
после нажатия кнопки "ОК"
Если эксперт загружен на чарте, то при попытке изменения
"Входных параметров" эксперта, изменения не вступают в силу,
после нажатия кнопки "ОК"
код в студию!
void OnInit() { Print( "i=", i ); }
void OnDeinit( const int reason ) { Print( "ii=", i ); }
Парадокс, но так всегда было
Последовательность действий:
- Присоединить эксперта к графику + "OK" -> результат: i=5
- На графике открыть свойства, изменить i на 10 + "OK" -> результат: i=5
- Перекомпилировать в редакторе -> результат: i=10
void OnInit() { Print( "i=", i ); }
void OnDeinit( const int reason ) { Print( "i=", i ); }
Парадокс, но так всегда было
Что именно было? Нормально ведь работает при изменении значения с 5 на 10:
2016.12.05 11:31:04.415 Test (USDJPY,M15) i=5
2016.12.05 11:31:14.433 Test (USDJPY,M15) i=5
2016.12.05 11:31:14.449 Test (USDJPY,M15) i=10
2016.12.05 11:31:20.906 Test (USDJPY,M15) i=10
Что именно было? Нормально ведь работает при изменении значения с 5 на 10:
А последовательность действий какая?
- Запустить эксперт на любом чарте со значениями настроечных параметров, установленных по умолчанию. Получаем i = 5.
- Изменить значение параметра i в диалоге свойств советника на 10. Получаем от deinit i = 5 и от init i = 10.
Да, так работал всегда и это правильно. Непонятно в чем же заключается проблема?
Да, так работал всегда и это правильно. Непонятно в чем же заключается проблема?
Обновитесь до build 1490
2016.12.05 14:04:57.119 i=5
2016.12.05 14:05:10.992 ii=5
2016.12.05 14:05:11.108 i=5
2016.12.05 14:05:24.087 ii=5
это скорее эксперт криво написан чем ошибка в терминале - при переинициализации не происходит сброса некоторых переменных объявленных до "инита" - тут нужно явно прописывать их обновление
Конечно криво, вот только 3 года на всех предыдущих билдах всё работало а в 1490 нет.
Добавлено
ОБНОВЛЯЕМСЯ до 1490
Запускаем советника
//| TestInputs.mq5 |
//| Copyright 2016 prostotrader |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016 prostotrader"
#property link "https://www.mql5.com"
#property version "1.00"
//
input long TestValue = 5;// Test value
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
if( !ObjectCreate(ChartID(), "label_1", OBJ_LABEL, 0, 0, 0 ) )
{
MessageBox( "Label not created!", "Error", MB_OK | MB_ICONHAND );
return(INIT_FAILED);
}
else
{
ObjectSetInteger(ChartID(), "label_1", OBJPROP_CORNER, CORNER_LEFT_UPPER );
ObjectSetInteger(ChartID(), "label_1", OBJPROP_ANCHOR, ANCHOR_LEFT_UPPER );
ObjectSetInteger(ChartID(), "label_1", OBJPROP_XDISTANCE, 5 );
ObjectSetInteger(ChartID(), "label_1", OBJPROP_YDISTANCE, 15 );
ObjectSetInteger(ChartID(), "label_1", OBJPROP_COLOR, clrWhite );
ObjectSetInteger(ChartID(), "label_1",OBJPROP_BACK, false );
ObjectSetString(ChartID(), "label_1", OBJPROP_TEXT, "Test value = "+string(TestValue) );
ChartRedraw(ChartID());
}
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
ObjectDelete(ChartID(), "label_1" );
}
//+------------------------------------------------------------------+
void OnTick()
{
ObjectSetString(ChartID(), "label_1", OBJPROP_TEXT, "Test value = "+string(TestValue) );
ChartRedraw(ChartID());
}
Смотрим значение
Нажимаем "ОК"
Смотрим
Нажимаем "Свойства TestInputs"
Изменяем значение 5 на 10
Нажимаем "ОК"
ВИДИМ
Обновитесь до build 1490
Ага. У меня с утра был еще не обновленный МТ. Обновился. Действительно, изменения значений настроечных параметров, произведенные в окне свойств эксперта, не принимаются. При следующем открытии этого же окна получаем старые параметры.
Непонятно, почему при компиляции все ОК.
Ага. У меня с утра был еще не обновленный МТ. Обновился. Действительно, изменения значений настроечных параметров, произведенные в окне свойств эксперта, не принимаются. При следующем открытии этого же окна получаем старые параметры.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Если эксперт загружен на чарте, то при попытке изменения
"Входных параметров" эксперта, изменения не вступают в силу,
после нажатия кнопки "ОК"