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

 
Alexey Viktorov #:

Владимир, а зачем такие извращения??? Проще попользовать функцию OrderCheck(). При том, структуру MqlTradeRequest можно держать объявленной на уровне глобальных переменных и после успешной проверки использовать не заполняя повторно перед OrderSend().

Когда получил размер маржи, ты должен произвести арифметические операции… А тут ы структуре всё уже посчитано.

А если установлен ЕА не на одной паре?

OrderCheck() как-то надёжней
 
Alexey Viktorov #:

Владимир, а зачем такие извращения??? Проще попользовать функцию OrderCheck(). При том, структуру MqlTradeRequest можно держать объявленной на уровне глобальных переменных и после успешной проверки использовать не заполняя повторно перед OrderSend().

Когда получил размер маржи, ты должен произвести арифметические операции… А тут ы структуре всё уже посчитано.

Привет, Алексей! Твой вариант мне понятен, подсказка Виталия тоже резонна.

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

С уважением, Владимир.

 
MrBrooklin #:

Желтым выделено то, что сначала объявили переменную price и присвоили ей значение цены Ask, а буквально через строчку, где проверяется тип ордера, соответственно присваивается значение Bid.

Вопрос - а почему нельзя сразу присвоить Bid на стадии объявления переменной  price или тут есть какой-то сакральный смысл?

если сразу присвоить Bid то через строчку всё равно придётся проверять тип ордера и присваивать Ask :-)

переменной price должно быть присвоено одно из двух значений в зависимости от типа ордера. Начальное задали Ask, если тип не подошел поменяли на Bid. 

просто авторы кода не любят тройной оператор : double price=(orderType==ORDER_TYPE_SELL?Bid:Ask) ; // так короче и на мой взгляд понятнее

 
Maxim Kuznetsov #:

если сразу присвоить Bid то через строчку всё равно придётся проверять тип ордера и присваивать Ask :-)

переменной price должно быть присвоено одно из двух значений в зависимости от типа ордера. Начальное задали Ask, если тип не подошел поменяли на Bid. 

просто авторы кода не любят тройной оператор : double price=(orderType==ORDER_TYPE_SELL?Bid:Ask) ; // так короче и на мой взгляд понятнее

Спасибо, Максим, за оказанную помощь! Теперь всё понятно и логично. Получилось так:

//--- получим цену открытия
   MqlTick mqltick;
   SymbolInfoTick(symb, mqltick);
   double price = (type == ORDER_TYPE_SELL ? mqltick.bid : mqltick.ask);

На две строчки меньше, но зато понятнее. ))

С уважением, Владимир.

 
Vitaly Muzichenko #:

А если установлен ЕА не на одной паре?

OrderCheck() как-то надёжней

Как то не понятно, вторая строка это утверждение или что?

Ну а какая разница на скольких парах установлен советник? Каждый код выполняется отдельно. Пусть даже на одном символе, на разных графиках, с разными магиками будут установлены… Никаких проблем…

 
MrBrooklin #:

Привет, Алексей! Твой вариант мне понятен, подсказка Виталия тоже резонна.

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

С уважением, Владимир.

Специалисты MQ тоже люди и им также свойственно уставать и совершать некоторые «ошибки» которые не влияют на работоспособность кода.

 
Alexey Viktorov #:

Специалисты MQ тоже люди и им также свойственно уставать и совершать некоторые «ошибки» которые не влияют на работоспособность кода.

Так по факту ошибки никакой нет, просто код так написан, что сразу не "въехал" в его суть и поэтому попытался разобраться. )) Максим доходчиво всё по полочкам разложил. Короче говоря, ВСЕМ БОЛЬШОЕ СПАСИБО!!!

С уважением, Владимир.

 
 Помогите ! Окно ордера ! Тиковый график совместно не открывается!
Добрый вечер ! Собственно все в названии темы .Что не так то ? В начале открывался все нормально .Где я какую галочку убрал ?Открываю новый ордер только окно ордера а тикового графика нет
Помогите ! Окно ордера ! Тиковый график совместно не открывается!
Помогите ! Окно ордера ! Тиковый график совместно не открывается!
  • 2025.04.15
  • Heik
  • www.mql5.com
Добрый вечер ! Собственно все в названии темы .Что не так то ? В начале открывался все нормально .Где я какую галочку убрал...
 
Heik #:
 Помогите ! Окно ордера ! Тиковый график совместно не открывается!
Добрый вечер ! Собственно все в названии темы .Что не так то ? В начале открывался все нормально .Где я какую галочку убрал ?Открываю новый ордер только окно ордера а тикового графика нет

Двойной клик в пустом пространстве окна ордера включает/отключает отображение тиков в окне ордера.

Собственно этот дабл-клик можно делать в любом месте окна ордера, лишь бы не по кнопкам "продать/купить по рынку" ;-)

 

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