Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1111

 
Alexey Viktorov:

Практически это одна строка кода. Но для неё надо получить тикет позиции. Вот советник из OnInit открывающий позицию лотом 0.2 и в OnTick закрывающий половину позиции.

Или вот полный код из класса CTrade

Спасибо!!

 
Artyom Trishkin:

Зайдите здесь в раздел Статьи и полистайте - есть тут много по ООП, в том числе и для начинающих.

Ни на что не претендуя. Но почему нет где прочитать ....

Глобальные и локальные переменные.  Выбор объявления видимости переменной определяется необходимостью использования значений переменных функции в других функциях и конечно в онтик советника. То есть, если от функции требуется только передаваемое ей значение, то все переменные функции правильно объявить локальными. Если функция расчетная, и переменные, которым присваиваются результаты вычислений используются  в других функциях, эти переменные необходимо объявлять на глобальном уровне.

То же с классами и уровнем видимости переменных, функций, методов. Если сначала, то мы определяем что нам нужно от класса, какие функции, переменные, структуры и их мы объявляем публичными. Если члены класса используются только внутри класса, то их видимость приват или защищенная, в зависимости от необходимости наследования.

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

В общем мысль, если мануал был бы более понятно объяснен, язык учился бы быстрее, и без дополнительных статей. На сегодня без них никак (конечно только про себя говорю)) ). Авторам статей респект.

 

Есть ли в MQL аналог try, catch и throw из C++ ?

 

Приветствую. Подскажите, пожалста.

Есть индикатор, который создает на графике объекты, и есть советник, который работает по этим объектам, (перебирая их список).

Но советник обнаруживает объекты только на следующем тике, после их создания.

Возможно ли чтоб советник мог обнаруживать объекты на том-же тике, когда они создаются?

 
Andrey Sokolov:

Приветствую. Подскажите, пожалста.

Есть индикатор, который создает на графике объекты, и есть советник, который работает по этим объектам, (перебирая их список).

Но советник обнаруживает объекты только на следующем тике, после их создания.

Возможно ли чтоб советник мог обнаруживать объекты на том-же тике, когда они создаются?

Можно алгоритм индикатора перенести в советник. Такие индикаторы, которые не имеют буферов, перенести в советник намного проще.

 
Alexey Viktorov:

Можно алгоритм индикатора перенести в советник. Такие индикаторы, которые не имеют буферов, перенести в советник намного проще.

Это понятно, но пока вопрос именно такой.

При этом, если выводить в печать сообщения из индикатора и советника, то первое идет от индикатора. 

Так-же ChartRedraw(0); и в конце индикатора, и в начале ОнТик советника не помогли.

 
Andrey Sokolov:

Это понятно, но пока вопрос именно такой.

«Такой», это какой? Как вы представляете себе прочесть что-то ещё не написанное или увидеть ещё не нарисованное?

 
Alexey Viktorov:

«Такой», это какой? Как вы представляете себе прочесть что-то ещё не написанное или увидеть ещё не нарисованное?

"прочесть" на этом-же тике, но после отрисовки возможно? 

"«Такой», это какой? " - чтоб советник работал по объектам


Попробую через OnChartEvent

 
Andrey Sokolov:

"прочесть" на этом-же тике, но после отрисовки возможно? 

"«Такой», это какой? " - чтоб советник работал по объектам
Ну нет-же конечно. Представьте что я пишу это сообщение, а вы в это время его читаете. Такое может быть? Даже я читаю не сообщение, а только набираемый для сообщения текст. Пока нет объекта нет и свойств этого объекта. И даже больше, попробуйте прочесть в самом индикаторе, свойства объекта СРАЗУ после его создания. Ничего не получится. Между созданием объекта и обращением к его свойствам должен быть какой-то временной «зазор».
 
Andrey Sokolov:

Попробую через OnChartEvent

В OnChartEvent тоже надо знать точное имя объекта. А его нет пока нет самого объекта.

Причина обращения: