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

 
Artyom Trishkin:

Я про Фому, он про Ерёму...

Вот как тут общаться в такой ситуации?

Я говорю о пагубной привычке бездумно инициализировать глобальные переменные в OnInit(), Вы же мне справку пхаете, которую я знаю.

При этом вы в безапелляционной форме навязываете свою пагубную привычку всем новичкам. Поколение ЕГЭ плодите? Клоны не думающих, но слепо движущихся за своим сенсеем?

"Бездумно инициализировать глобальные переменные" - это Ваши слова и Ваша выдумка. Если делать бездумно - то только один совет: "Деньги Ваши, творите что хотите".
 
Vladimir Karputov:
"Бездумно инициализировать глобальные переменные" - это Ваши слова и Ваша выдумка. Если делать бездумно - то только один совет: "Деньги Ваши, творите что хотите".

Нет. Это ВАШИ слова. И ваше "научение" вопрошающему:


Так делать нельзя:

bool TimeFlag,FLG;
int TimeScale=50,TimeInMemory,TimeNow;

точнее после такого объявления обязательно в OnInit() нужно явно проинициализировать (присвоить значения) этим переменным.

Метод Sell также обложите проверками, вроде

trade.ResultRetcode(),
            " (",trade.ResultRetcodeDescription(),")");

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


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

Это ВЫ говорите, что после объявления переменной без явной её инициализации, нужно обязательно в OnInit() явно её проинициализировать.

Результат такого бездумного действа вы могли видеть при запуске приложенного мною тестового советника - потеря значения переменной при смене таймфрейма.

ЗЫ. Имейте мужество признавать свои ошибки и недочёты.

ЗЗЫ. Так что мои слова о бездумности предлагаемой вами слепой обязательной инициализации в OnInit() - соответствуют моему утверждению, что вы предлагаете бездумно тупо инициализировать глобальные переменные в OnInit()

 

скажите в каком билде 

ACCOUNT_FREEMARGIN

сменилось на

ACCOUNT_MARGIN_FREE

 
Artyom Trishkin:


Пожалуйста, продолжайте жить в своём воображаемом мирке и искать того, чего нет.
 
Vladimir Karputov:
Пожалуйста, продолжайте жить в своём воображаемом мирке и искать того, чего нет.

У вас перед глазами проверочный советник. Так, как учите вы новичков инициализировать глобальные переменные, приводит к потере их значений при переключении таймфрейма. Об этом нужно знать, а не делать именно так, и бездумно. Если же инициализировать глобальную переменную НЕ так, как предлагаете вы, то при смене таймфрейма их значения не теряются - соответственно и нет нарушения логики в некоторых случаях, когда значение глобальной переменной не должно зависеть от смены таймфрейма.

Так что мир воображаемый - у вас. Это вы живёте в своём мирке, думая, что со всех сторон обложились проверками, инициализациями (бездумными), и всё у вас тип-топ.

Но проверочный советник доказывает что именно в вашем случае человек может потерять свои деньги. В моём же случае он может спокойно переключать таймфрейм графика, на котором у него работает советник.

Опыт приходит не от прочтения справки. Почаще думайте, прикидывайте различные ситуации.

ЗЫ. Нет чтобы "спасибо" сказать, мол, "не знал, учту, благодарю", вы начинаете детсад включать и обидки...

Не удивлюсь, если забаните - хочешь узнать человека - дай ему немного власти.

 
Artyom Trishkin:

У вас перед глазами проверочный советник. Так, как учите вы новичков инициализировать глобальные переменные, приводит к потере их значений при переключении таймфрейма. Об этом нужно знать, а не делать именно так, и бездумно. Если же инициализировать глобальную переменную НЕ так, как предлагаете вы, то при смене таймфрейма их значения не теряются - соответственно и нет нарушения логики в некоторых случаях, когда значение глобальной переменной не должно зависеть от смены таймфрейма.

Так что мир воображаемый - у вас. Это вы живёте в своём мирке, думая, что со всех сторон обложились проверками, инициализациями (бездумными), и всё у вас тип-топ.

Но проверочный советник доказывает что именно в вашем случае человек может потерять свои деньги. В моём же случае он может спокойно переключать таймфрейм графика, на котором у него работает советник.

Опыт приходит не от прочтения справки. Почаще думайте, прикидывайте различные ситуации.

ЗЫ. Нет чтобы "спасибо" сказать, мол, "не знал, учту, благодарю", вы начинаете детсад включать и обидки...

Не удивлюсь, если забаните - хочешь узнать человека - дай ему немного власти.

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

Да и где написано что обязательно будет проблема если переменная останется не инициализирована? Везде пишут только о возможной ошибке, ТОЛЬКО о возможной... Это последствия еге, из первого поколения.

 
Alexey Viktorov:

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

Да и где написано что обязательно будет проблема если переменная останется не инициализирована? Везде пишут только о возможной ошибке, ТОЛЬКО о возможной... Это последствия еге, из первого поколения.

Да я не расстраиваюсь - я сообщил о неверных утверждениях. Чтобы человек, введённый в заблуждение, понимал, что он введён в заблуждение, и что не нужно тупо заниматься копи-пастом чьих-то выводов, а сам думал, и понимал что произойдёт в том, или ином случае. Случай даже показал простеньким проверочным советником. Так что, я наоборот спокоен: предупреждён - значит вооружен.

А вот инициализировать переменные, ИМХО, всё же нужно, не особенно полагаясь на умолчательные значения неявной инициализации, но думая и понимая где, как, и каким значением, а не так, как "сказал на форуме МОДЕРАТОР - значит истина в последней инстанции"... Модератор - не разработчик.

 
Artyom Trishkin:

Да я не расстраиваюсь - я сообщил о неверных утверждениях. Чтобы человек, введённый в заблуждение, понимал, что он введён в заблуждение, и что не нужно тупо заниматься копи-пастом чьих-то выводов, а сам думал, и понимал что произойдёт в том, или ином случае. Случай даже показал простеньким проверочным советником. Так что, я наоборот спокоен: предупреждён - значит вооружен.

А вот инициализировать переменные, ИМХО, всё же нужно, не особенно полагаясь на умолчательные значения неявной инициализации, но думая и понимая где, как, и каким значением, а не так, как "сказал на форуме МОДЕРАТОР - значит истина в последней инстанции"... Модератор - не разработчик.

Кстати, поднятый тобой вопрос -- полезно выделить вообще в отдельную ветку -- если Ренат создаёт форум ФАК, а Карпутов тусует/дробит/объединяет ветки по каким-то своим критериям.

О том, как происходит инициализация глобальных переменных реально не все знают -- даже "главный подсказчик" Карпутов и то "плавает".

А последний раз ещё на 4-ке, помню, что поднималась эта тема в далёком 2011 году.

p.s. Создал бы ты сам эту ветку, Артём -- название придумай говорящее -- там у тебя тестовая программа есть -- пусть в поисковике вопрос находится.

 
Andrey F. Zelinsky:

Кстати, поднятый тобой вопрос -- полезно выделить вообще в отдельную ветку -- если Ренат создаёт форум ФАК, а Карпутов тусует/дробит/объединяет ветки по каким-то своим критериям.

О том, как происходит инициализация глобальных переменных реально не все знают -- даже "главный подсказчик" Карпутов и то "плавает".

А последний раз ещё на 4-ке, помню, что поднималась эта тема в далёком 2011 году.

p.s. Создал бы ты сам эту ветку, Артём -- название придумай говорящее -- там у тебя тестовая программа есть -- пусть в поисковике вопрос находится.

Не вопрос. Создал. Надеюсь там можно будет делиться и другими знаниями и методами.
 
Комментарии, не относящиеся к этой теме, были перенесены в "Подскажите, а то начал лагать)".