В чем дело? - страница 2

 
Scriptong:

Нет, не старый. Видимо, Вы как-то не так проводите эксперимент.

Итак, простой эксперимент.

1. Создаем советник:

 2. Подключаем его к графику, предварительно изменив значения настроечных параметров:

 

3. Вносим правку в советник:

 4. Компилируем (в журнале видим соответствующие записи):

 

5. Смотрим значения параметров эксперта:

 

 

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

Так это уже давно обсуждалось и об этом сказал paukas. Теперь так и должно быть.
 
AlexeyVik:
Так это уже давно обсуждалось и об этом сказал paukas. Теперь так и должно быть.

paukas  утверждает, что значения настроечных параметров сбрасываются при любой компиляции советника:

При перекомпиляции советника в тестере параметры не меняются, а вот если он при этом был прикреплен к графику, то параметры сбрасываются и заменяются на то что в коде по умолчанию записано. Это не бага. Это фича.

Мною было показано, что это не так.

 
Scriptong:

paukas  утверждает, что значения настроечных параметров сбрасываются при любой компиляции советника:

Мною было показано, что это не так.

 

Аа... Ну, да я попутал кто кому и что объяснял.

 
Scriptong:

paukas  утверждает, что значения настроечных параметров сбрасываются при любой компиляции советника:

Мною было показано, что это не так.

 


При любом это вы отсебятину придумали когда вспомнили что могут сбрасываться.
 
Scriptong:

paukas  утверждает, что значения настроечных параметров сбрасываются при любой компиляции советника:

Мною было показано, что это не так.

 

Вы попытались показать, что советник, прикрепленный к окну и советник в тестере - не две большие разницы, а одно и то же. А как насчет темы топикстартера о поведении советника в отладчике? 

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

 
tara:

Вы попытались показать, что советник, прикрепленный к окну и советник в тестере - не две большие разницы, а одно и то же. А как насчет темы топикстартера о поведении советника в отладчике? 

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

1. Можно подробнее о том, в чем неадекватность теста и в чем конкретно прав paukas?

2. В сообщении топикстартера нет слов "переменные" и "константы". Стало быть, вынесено надуманное суждение о том, что именно имел в виду топикстартер.

3. О том, что советник как-то не так ведет себя в отладчике, топикстартер не пишет. Там речь о том, что он его отладил. Затем ясно написано:

Запускаю из навигатора. 

  Запуск из навигатора - это далеко не отладка. Следовательно, еще одно надуманное суждение.

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

 
Scriptong:

1. Можно подробнее о том, в чем неадекватность теста и в чем конкретно прав paukas?

2. В сообщении топикстартера нет слов "переменные" и "константы". Стало быть, вынесено надуманное суждение о том, что именно имел в виду топикстартер.

3. О том, что советник как-то не так ведет себя в отладчике, топикстартер не пишет. Там речь о том, что он его отладил. Затем ясно написано:

  Запуск из навигатора - это далеко не отладка. Следовательно, еще одно надуманное суждение.

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

Неадекватность теста в том, что Вы использовали input (внешние константы), а не extern (внешние переменные). Константы при компиляции инициализируются, а переменные - нет. Ваш второй тезис спасает ситуацию, но лишь до того момента, когда мы спросим об этом у топикстартера. 

Насчет отладчика - цитата:" Отлаживаю кнопкой Start/Resume debugging. Компилирую. Запускаю из навигатора.".  Есть альтернативные версии? - обучите, плиз. 

С четвертым тезисом почти согласен.  

 
tara:

Неадекватность теста в том, что Вы использовали input (внешние константы), а не extern (внешние переменные). Константы при компиляции инициализируются, а переменные - нет. Ваш второй тезис спасает ситуацию, но лишь до того момента, когда мы спросим об этом у топикстартера. 

Насчет отладчика - цитата:" Отлаживаю кнопкой Start/Resume debugging. Компилирую. Запускаю из навигатора.".  Есть альтернативные версии? - обучите, плиз. 

С четвертым тезисом почти согласен.  

tara:

Неадекватность теста в том, что Вы использовали input (внешние константы), а не extern (внешние переменные). Константы при компиляции инициализируются, а переменные - нет. Ваш второй тезис спасает ситуацию, но лишь до того момента, когда мы спросим об этом у топикстартера. 

Насчет отладчика - цитата:" Отлаживаю кнопкой Start/Resume debugging. Компилирую. Запускаю из навигатора.".  Есть альтернативные версии? - обучите, плиз. 

С четвертым тезисом почти согласен.  

Горячо, тара, молодец! Почти точно. А может и совсем точно. Растолкуй, пожалуйста:

Дело вот в чем: в программе 2 типа внешних переменных extern и без extern ( Вы их почему константами, а не переменными называете?  Но ведь"The input storage class defines the external variable")

 При запуске (без трансляции), когда прикрепляю советник к графику, все переменные инициализируются так, как им положено. Например,  "int i;"

Дальше советник работает, начальные значения переменных, которые без extern, изменяются. Например, теперь i=5;

Дальше "альтернативная версия" запуска, не из навигатора.

Перезапуск: Не выгружая советника, т.е. когда  i=5, жму F7,

открывается окно с extern переменными. Жмем ОК, программа начинает работать, проходя через объявления тех переменных, которые без extern. Это точно, я там брейки ставил, они не обходятся. В том числе проходим и через объявление "int i;".

Затем добираемся до OnInit() , а там те переменные, которые extern -  нормально инициализированы, а те, которые без extern, сохранили значения, которые были до перезапуска, т.е. i=5 уже на входе в OnInit().

Т.е. считаете это не баг? Так и должно быть? Растолкуйте, пожалуйста про  variables, которые без extern 

Спасибо 

 

Не пользуюсь input'ами и другими новшествами, и ничего не путается! Вот когда всё когда-нибудь "устаканится", тогда будет смысл перестраиваться! А пока не теряйте время и берегите нервы! ;)

Кстати, и extern приходится менять самому, нажимая на улыбающуюся мордочку! А раньше всё менялось при компиляции само! :(

 
evnt:

Т.е. считаете это не баг? Так и должно быть? Растолкуйте, пожалуйста про  variables, которые без extern  

Приведите пример кода и пошаговую инструкцию воспроизведения. Потому как "на пальцах" ничего непонятно. Если код секретный, то оставьте в нем только то, что показывает проблему, остальное выбросьте.
Причина обращения: