Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 443

 
Karputov Vladimir:
Значит стоит ещё добавить принтов и проследить куда движется алгоритм.
Так при смене ТФ они есть - я уже и не знаю, куда ещё там принтов добавить....
 

Поставил 880 билд MT4 - компилятор компилирует без ошибок, но терминал вылетает (старый билд корректно работает).

После запуска другого терминала и компиляции там - под старым билдом, запускаю терминал с новым билдом и получаю ошибку при попытки изменить советник (вызвать эдитор) 2015.09.19 22:23:11.272 MetaEditor not found - запуск в терминальном режиме

Ошибки при запуске советника

 

2015.09.19 22:29:49.948 2014.01.20 21:30  Kamikadze_MA_V_04_42_Fibo_04.ex4 GBPUSD,M15: OrderSend error 4051

2015.09.19 22:29:49.948 2014.01.20 21:30  Kamikadze_MA_V_04_42_Fibo_04.ex4 GBPUSD,M15: invalid lots amount for OrderSend function


 
-Aleks-:

Поставил 880 билд MT4 - компилятор компилирует без ошибок, но терминал вылетает (старый билд корректно работает).

После запуска другого терминала и компиляции там - под старым билдом, запускаю терминал с новым билдом и получаю ошибку при попытки изменить советник (вызвать эдитор) 2015.09.19 22:23:11.272 MetaEditor not found - запуск в терминальном режиме

Ошибки при запуске советника

 

2015.09.19 22:29:49.948 2014.01.20 21:30  Kamikadze_MA_V_04_42_Fibo_04.ex4 GBPUSD,M15: OrderSend error 4051

2015.09.19 22:29:49.948 2014.01.20 21:30  Kamikadze_MA_V_04_42_Fibo_04.ex4 GBPUSD,M15: invalid lots amount for OrderSend function


А

#property strict
ставите в своём коде?
 
Karputov Vladimir:

А

ставите в своём коде?
Да - конечно! Пришлось откатиться на 840 билд - он работает корректней.
 
Подскажите, пожалуйста, как создать глобальную переменную с генерацией имени переменной - нужно что б было так "Название переменной_Магический номер".
 
-Aleks-:
Подскажите, пожалуйста, как создать глобальную переменную с генерацией имени переменной - нужно что б было так "Название переменной_Магический номер".
Можно и так, а можно руководствоваться: Переменные
 
Karputov Vladimir:
Можно и так, а можно руководствоваться: Переменные
Не понял ответ - поясню вопрос. У меня есть код, где есть внешняя переменная Magic - её значение задается пользователем, нужно мне обеспечить относительную устойчивость системы после включения-выключения терминала, так как внутри программы есть некий алгоритм, делающий статистический расчет и его последнее значение важно для запуска алгоритма. Я решил взять глобальную переменную для сохранения данных расчета, однако она должна быть привязана к конкретному советнику - логично же её привязать по маджику, таким образом получится название переменной "название глобальный переменной+Magic". Так вот вопрос, как правильно сгенерировать название новой переменной?
 
-Aleks-:
Не понял ответ - поясню вопрос. У меня есть код, где есть внешняя переменная Magic - её значение задается пользователем, нужно мне обеспечить относительную устойчивость системы после включения-выключения терминала, так как внутри программы есть некий алгоритм, делающий статистический расчет и его последнее значение важно для запуска алгоритма. Я решил взять глобальную переменную для сохранения данных расчета, однако она должна быть привязана к конкретному советнику - логично же её привязать по маджику, таким образом получится название переменной "название глобальный переменной+Magic". Так вот вопрос, как правильно сгенерировать название новой переменной?

Устойчивость и внешняя переменная, которую может править пользователь - уже несовместимые условия. Пример: первый запуск - пользователь изменил внешнюю переменную, Вы в своём коде привязались к этому префиксу. Происходит перезапуск терминала и пользователь снова меняет внешнюю переменную. Что будете делать?

В Вашем алгоритме последнее расчётное значение (то, которое очень важно после перезапуска) - какой тип имеет? Double? Если нет, то уже будут проблемы.

 
Karputov Vladimir:

Устойчивость и внешняя переменная, которую может править пользователь - уже несовместимые условия. Пример: первый запуск - пользователь изменил внешнюю переменную, Вы в своём коде привязались к этому префиксу. Происходит перезапуск терминала и пользователь снова меняет внешнюю переменную. Что будете делать?

В Вашем алгоритме последнее расчётное значение (то, которое очень важно после перезапуска) - какой тип имеет? Double? Если нет, то уже будут проблемы.

Ну, пользователь это я, поэтому менять что-то не предполагается безумно. Какие ещё варианты то есть? В init поставить перерасчет и поиск нужного значения?

Переменная int, но можно и double - это не принципиально - хранить будет целые числа. 

 
-Aleks-:
... так как внутри программы есть некий алгоритм, делающий статистический расчет и его последнее значение важно для запуска алгоритма. Я решил взять глобальную переменную для сохранения данных расчета, однако она должна быть привязана к конкретному советнику - логично же её привязать по маджику, таким образом получится название переменной "название глобальный переменной+Magic". Так вот вопрос, как правильно сгенерировать название новой переменной?

Чем такой вариант не подходит? :

   string strText="rezult";
   string strGlobalVariableName=strText+"_"+inpMagic;
Причина обращения: