Родилась идея. В уме прикидываю варианты. Прихожу домой, пишу программу... В ней открываю позицию функцией OrderSend() сразу внутри OnInit().
Запускаю на тестере стратегий -- не работает. Конечно(!) же, ищу ошибку у себя... Трачу время, силы, и нервы в поисках оной... Оказывается, проблема системная, OrderSend() в функии инициализации не работает совсем. Тестер стратегий и реал -- не дружат между собой.
Aleksey Nikolayev #: Не хватает полной, чёткой, компактной и однозначной документации по непосредственно торговым возможностям языка. Информация как бы размазана тонким слоем по документации и форуму.
Опишите какими свойствами должна обладать документация что бы быть четкой, компактной и однозначной. Приведите пожалуйста пример, что бы было понятней что Вы имеете в виду.
На сколько я понял, вы говорите о том, что документация уходит в излишние подробности и описания синтаксических возможностей, при этом вопрос за которым Вы к ней обратились часто размазан по нескольким разделам.
Да, в параметрах. По ходу написания программы раздумывал об исходном значении, изменял его. Делал "промежуточные" компиляции. Значение 3 для X зависло в памяти. И дальнейшие компиляции на него перестали влиять.
secret #: mql5 своей чрезмерной сложностью подобен ассемблеру, или WinAPI)
вот это и раздражает) то что на EL можно сделать в пару строк, здесь требует простыню кода.
Новичкам не завидую)
Добрый день. Спасибо за отзыв. Может быть Вы составите пример? Понимаю, его составление займет у Вас время, но хочу понять какой вид сложности Вы имете в виду (их много).
Да, в параметрах. По ходу написания программы раздумывал об исходном значении, изменял его. Делал "промежуточные" компиляции. Значение 3 для X зависло в памяти. И дальнейшие компиляции на него перестали влиять.
Вы, похоже, не знали про существенное отличие переменных входных параметров (объявляемых со словом input) и обычных переменных (объявляемых без input).
Входные параметры так и задуманы, что значение для них указывается в диалоговом окне входных параметров при запуске уже готового советника на графике или во вкладке входных параметров в тестере стратегий. Значение, присвоенное входному параметру в исходном коде используется только для подстановки его в поле ввода этого параметра при первом запуске (на графике или в тестере) и при принудительном сбросе значений входных параметров к значениям по умолчанию.
Поэтому для исследования влияния разных значений на поведение советника нужно либо менять их не в коде, а в терминале перед запуском. Если же кажется удобнее менять в коде, то можно убрать слово input из описания переменной, превратив её в обычную переменную. Её значение тогда указывается только в исходном коде.
У вас скорее всего было так: сначала вы поставили в коде значение X=3, скомпилировали, запустили в тестере или на графике. Во входные параметры запуска в терминале подставилось значение X=3 и оно запомнилось терминалом. Потом в коде вместо 3 вы поставили что-то другое, например X=10. Скомпилировали, запускаете в терминале, но там в поле ввода значения этого входного параметра осталось прошлое значение, равное 3. Поэтому оно и присваивается переменной Х при запуске.
OrderSend() в функии инициализации не работает совсем. Тестер стратегий и реал -- не дружат между собой.
Тестеру стратегий все равно, в каком месте программы вызывается OrderSend. Можете его успешно вызвать даже ДО OnInit. Просто иногда могут быть нулевыми bid/ask.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Можно подробности?
Input на дефолты не скинул на графике, после изменения кода
Еще пример подводного камня:
Родилась идея. В уме прикидываю варианты. Прихожу домой, пишу программу... В ней открываю позицию функцией OrderSend() сразу внутри OnInit().
Запускаю на тестере стратегий -- не работает. Конечно(!) же, ищу ошибку у себя... Трачу время, силы, и нервы в поисках оной... Оказывается, проблема системная, OrderSend() в функии инициализации не работает совсем. Тестер стратегий и реал -- не дружат между собой.
Приходиться переписывать...
Не хватает полной, чёткой, компактной и однозначной документации по непосредственно торговым возможностям языка. Информация как бы размазана тонким слоем по документации и форуму.
Опишите какими свойствами должна обладать документация что бы быть четкой, компактной и однозначной. Приведите пожалуйста пример, что бы было понятней что Вы имеете в виду.
На сколько я понял, вы говорите о том, что документация уходит в излишние подробности и описания синтаксических возможностей, при этом вопрос за которым Вы к ней обратились часто размазан по нескольким разделам.
Еще пример подводного камня:
...OrderSend() в функции инициализации не работает совсем...
Как Вы думаете, если бы OrderSend работала бы в функции инициализации, то как бы работал Ваш эксперт?
Можно подробности?
Да, в параметрах. По ходу написания программы раздумывал об исходном значении, изменял его. Делал "промежуточные" компиляции. Значение 3 для X зависло в памяти. И дальнейшие компиляции на него перестали влиять.
При установке различного ПО можно встретить возможность выбора, например 1) Минимум 2) Стандарт 3) Максимум
Было бы здорово иметь выбор. Конечно, понято, что несколько вариантов, это сложнее чем один общий вариант.
(PS Отойду на некоторое время.)
mql5 своей чрезмерной сложностью подобен ассемблеру, или WinAPI)
Добрый день. Спасибо за отзыв. Может быть Вы составите пример? Понимаю, его составление займет у Вас время, но хочу понять какой вид сложности Вы имете в виду (их много).
Да, в параметрах. По ходу написания программы раздумывал об исходном значении, изменял его. Делал "промежуточные" компиляции. Значение 3 для X зависло в памяти. И дальнейшие компиляции на него перестали влиять.
Вы, похоже, не знали про существенное отличие переменных входных параметров (объявляемых со словом input) и обычных переменных (объявляемых без input).
Входные параметры так и задуманы, что значение для них указывается в диалоговом окне входных параметров при запуске уже готового советника на графике или во вкладке входных параметров в тестере стратегий. Значение, присвоенное входному параметру в исходном коде используется только для подстановки его в поле ввода этого параметра при первом запуске (на графике или в тестере) и при принудительном сбросе значений входных параметров к значениям по умолчанию.
Поэтому для исследования влияния разных значений на поведение советника нужно либо менять их не в коде, а в терминале перед запуском. Если же кажется удобнее менять в коде, то можно убрать слово input из описания переменной, превратив её в обычную переменную. Её значение тогда указывается только в исходном коде.
У вас скорее всего было так: сначала вы поставили в коде значение X=3, скомпилировали, запустили в тестере или на графике. Во входные параметры запуска в терминале подставилось значение X=3 и оно запомнилось терминалом. Потом в коде вместо 3 вы поставили что-то другое, например X=10. Скомпилировали, запускаете в терминале, но там в поле ввода значения этого входного параметра осталось прошлое значение, равное 3. Поэтому оно и присваивается переменной Х при запуске.
Putnik #:
OrderSend() в функии инициализации не работает совсем. Тестер стратегий и реал -- не дружат между собой.
Тестеру стратегий все равно, в каком месте программы вызывается OrderSend. Можете его успешно вызвать даже ДО OnInit. Просто иногда могут быть нулевыми bid/ask.