Build 646: переменные Bool не дают правильных настроек - страница 4

 
deysmacro:
Лучше, чтобы MetaQuotes предоставила возможность, чтобы пользователь мог решить, хочет ли он сбросить настройки или нет после перекомпиляции, верно? Да, я согласен.
 
alop: Я не понимаю ваш пример с EXTERN, написанным с заглавными буквами?
// #define EXTERN extern
EXTERN typename var1=...;
EXTERN typename var2=...;
Пока #define закомментировано, нет никаких externs. Откомментируйте, и тогда они ВСЕ станут внешними.
 

WHRoeder... Я все еще немного не понимаю, о чем вы говорите...

Так как же должен быть написан код - для принудительного изменения переменных в графиках при повторной компиляции?

Это очень важно для многих из нас - я думаю, с обеих точек зрения...

Некоторые люди не хотят, чтобы переменные менялись при перекомпиляции - и я их ПОЛНОСТЬЮ понимаю...

Но для других - у кого работает 30+ пар - необходимость нажимать "reset" на каждом графике - это просто УЖАС...

В любом случае, я думаю, что вы хотите сказать, что вышеуказанное изменение кода либо заставит переменные измениться, либо нет...

Не могли бы вы привести пример вроде этого:

Force variable change:

(пример здесь)

Без принудительного изменения переменной:

(пример здесь)

Я думаю, что вышесказанное будет очень полезно для обеих сторон этого сценария...

Большое спасибо за помощь!

 

Также - если мы хотим принудительно изменить переменные на активных графиках (eas) - разве нет файла кэша, который мы можем просто удалить, чтобы принудительно изменить переменные при перекомпиляции?

Я пытался найти его - но сохраненные значения, похоже, спрятаны где-то в таинственном файле...

Еще раз спасибо за помощь...

Приведенные выше примеры кода тоже подойдут, но было бы неплохо знать, где найти настройки кэша - как еще один обходной путь....

 

Так же...

Если я изменю строку

#define EXTERN extern 

extern typename var1=...;

на

#define EXTERN extern 

define extern typename var1=...;

Я получаю ошибку - внешние переменные уже были определены...

Поэтому - я полагаю - ваш обходной путь кажется запутанным, не могли бы вы пояснить...

Большое спасибо.

 
whistler:

Так же...

Если я изменю строку

extern typename var1=...;

на

define extern typename var1=...;

Я получаю ошибку - внешние переменные уже были определены...

Поэтому - я полагаю - ваш обходной путь кажется запутанным, не могли бы вы пояснить...

Большое спасибо.

Попробуйте следующее:

#define EXTERN и ничего сюда не вставляйте.

EXTERN bool trade1 =true; <= Добавьте EXTERN там, где обычно стоит extern

EXTERN bool trade2 = true;

EXTERN bool trade3 = false;

Если вы хотите добавить экстерны в начало, сделайте следующее:

#define EXTERN extern

Когда вы хотите удалить extern, сделайте следующее:

#define EXTERN убедитесь, что вы удалили extern, как показано ниже

#define EXTERN

Энди

 

Диалог ручного ввода обычно не требуется на этапе кодирования, поэтому просто не используйте модификатор extern до завершения изменений в кодировании.

// will not reset on recompile unless the value is changed in the code.
extern int Var1 = 20;
extern int Var2 = 40;
//will always reset on recompile
int Var1 = 20;
int Var2 = 40;
 

Потрясающий материал... Огромное спасибо...

Я удалил extern и перекомпилировал, но когда я запустил MetaTrader и посмотрел настройки советника на графике - переменные, из которых я удалил extern, полностью исчезли... Я закрыл MetaTrader, а затем снова запустил MetaEditor...

Я добавил обратно extern - снова перекомпилировал - и снова запустил MetaTrader - переменные были добавлены обратно в советник - и переменные были обновлены до новых настроек переменных...

Так что - все получилось - СПАСИБО ОГРОМНОЕ! :) Супа стахс!

 
whistler: WHRoeder... Я все еще немного не понимаю, что вы хотите сказать...
Это
То же самое, что
// #define EXTERN extern
EXTERN typename var1=...;
EXTERN typename var2=...;
typename var1=...;
typename var2=...;
#define EXTERN extern
EXTERN typename var1=...;
EXTERN typename var2=...;
extern typename var1=...;
extern typename var2=...;
#define EXTERN /*EMPTY*/
EXTERN typename var1=...;
EXTERN typename var2=...;
typename var1=...;
typename var2=...;
 

Здравствуйте!

После повторной компиляции (F5), зайдите в советник, откройте Inputs (F7) - внизу справа есть кнопка 'Reset'. Нажав ее, Вы вернете советника к (жестко) закодированным значениям.

Мне потребовалось время, чтобы понять это... ЛОЛ. Чудеса случаются. Как и все остальное. LOL

С наилучшими пожеланиями,

Саймон

С любовью, Ниа