Во-первых, убедитесь, что вы инициализировали все переменные с некоторыми значимыми значениями по умолчанию. Например, вы используете BuyTicket до его инициализации, поэтому при первом запуске он может иметь любое значение.
Выдержка из справочного файла MQL4 (MQL4 Reference / Language Basics / Variables / Initialization of Variables):
If a variable is not initialized explicitly, the value stored in this variable can be any. Implicit initialization is not used.
Итак, в следующей части добавьте к переменным значения по умолчанию:
Во-первых, убедитесь, что вы инициализировали все переменные с некоторыми значимыми значениями по умолчанию. Например, вы используете BuyTicket до его инициализации, поэтому при первом запуске он может иметь любое значение.
Выдержка из справочного файла MQL4 (MQL4 Reference / Language Basics / Variables / Initialization of Variables):
Итак, в следующей части добавьте к переменным значения по умолчанию:
Это правда, однако, это зависит от использования. Иногда вы просто хотите объявить его, потому что знаете, откуда будет взято значение, а иногда вам нужно инициализировать его чем-то, поскольку он может работать некорректно, если не инициализирован определенными значениями по умолчанию.
Это правда, однако, это зависит от использования. Иногда вы просто хотите объявить ее, потому что знаете, откуда будет взято значение, а иногда вам нужно инициализировать ее чем-то, поскольку она может работать некорректно, если не инициализировать ее определенными значениями по умолчанию.
Ему не нужно инициализировать переменные в месте определения, но он определенно должен инициализировать переменные до некоторого значения перед их использованием.
Если он использует их до инициализации, значение будет непредсказуемым. Так же как и его ошибки. Прежде чем углубляться в анализ кода, следует разобраться с этой проблемой.
Современные компиляторы выдают ошибки, если вы пытаетесь использовать неинициализированные переменные. MQL4, к сожалению, этого не делает, поэтому кодер должен быть уверен, что все правильно инициализировано.
Если я правильно вас понял, вы хотите сказать, что тот факт, что он использует неинициализированные переменные, не является поводом для беспокойства только потому, что я не указал, что именно может произойти из-за того, что BuyTicket и некоторые другие переменные содержат неизвестные значения при запуске программы?
Что ж, пусть будет так. Пусть он использует неинициализированные переменные. Что может пойти не так?
Я инициализировал все переменные, как было предложено, а также удалил "==true" из булевых значений. Также я удалил все банковские пробелы внутри строк кода. Я протестировал советник с помощью отладчика на двух разных символах - одном на ноутбуке и одном на ПК в течение примерно 2 часов, и оба работали нормально, продавая, покупая и закрываясь в правильное время без каких-либо ошибок. Однако затем я добавил советника на другие 3 символа на ПК и ноутбуке, так что все 4 символа работали на обоих терминалах, и с этого момента все они начали пропускать входы и выходы. В конце теста на одном терминале я удалил советников до закрытия открытых позиций, а на другом - после закрытия открытых позиций. На терминале, где все еще были открытые позиции, удаление советников заняло очень много времени, а на терминале без открытых позиций все 4 советника удалились сразу. Измененный код размещен отдельно ниже.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Во-первых, убедитесь, что вы инициализировали все переменные с некоторыми значимыми значениями по умолчанию. Например, вы используете BuyTicket до его инициализации, поэтому при первом запуске он может иметь любое значение.
Выдержка из справочного файла MQL4 (MQL4 Reference / Language Basics / Variables / Initialization of Variables):
If a variable is not initialized explicitly, the value stored in this variable can be any. Implicit initialization is not used.
Итак, в следующей части добавьте к переменным значения по умолчанию:
И да, в MQL4 есть ошибки и причуды, но большинства ошибок можно избежать, просто прочитав основы в справочном руководстве.
Также есть статья о распространенных ошибках в программах на MQL4. Посмотрите вверху форума, вы найдете ссылку.
Во-первых, убедитесь, что вы инициализировали все переменные с некоторыми значимыми значениями по умолчанию. Например, вы используете BuyTicket до его инициализации, поэтому при первом запуске он может иметь любое значение.
Выдержка из справочного файла MQL4 (MQL4 Reference / Language Basics / Variables / Initialization of Variables):
Итак, в следующей части добавьте к переменным значения по умолчанию:
Это правда, однако, это зависит от использования. Иногда вы просто хотите объявить его, потому что знаете, откуда будет взято значение, а иногда вам нужно инициализировать его чем-то, поскольку он может работать некорректно, если не инициализирован определенными значениями по умолчанию.
Это правда, однако, это зависит от использования. Иногда вы просто хотите объявить ее, потому что знаете, откуда будет взято значение, а иногда вам нужно инициализировать ее чем-то, поскольку она может работать некорректно, если не инициализировать ее определенными значениями по умолчанию.
Ему не нужно инициализировать переменные в месте определения, но он определенно должен инициализировать переменные до некоторого значения перед их использованием.
Если он использует их до инициализации, значение будет непредсказуемым. Так же как и его ошибки. Прежде чем углубляться в анализ кода, следует разобраться с этой проблемой.
Современные компиляторы выдают ошибки, если вы пытаетесь использовать неинициализированные переменные. MQL4, к сожалению, этого не делает, поэтому кодер должен быть уверен, что все правильно инициализировано.
Вы могли бы указать ему на одну вещь, что он использует var без надлежащей инициализации.
Прочитайте второе предложение в первой строке https://www.mql5.com/en/forum/151167/page2#954612.
Вы могли бы прочитать ответ, прежде чем критиковать его.
BTW, как вы здесь помогаете? "Умные" замечания не очень-то помогают.
Я прочитал, прежде чем опубликовать свой. Я имею в виду, покажите ему одну вещь, которая связана с var, и эта var не инициализируется должным образом.
Хе-хе. GumRai победил его. XD
Если я правильно вас понял, вы хотите сказать, что тот факт, что он использует неинициализированные переменные, не является поводом для беспокойства только потому, что я не указал, что именно может произойти из-за того, что BuyTicket и некоторые другие переменные содержат неизвестные значения при запуске программы?
Что ж, пусть будет так. Пусть он использует неинициализированные переменные. Что может пойти не так?