Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1096
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
У меня есть время и цена точек A и В
Как узнать время и цену точки С ? Она посередине между A и В
Не найду нигде примера
У меня есть время и цена точек A и В
Как узнать время и цену точки С ? Она посередине между A и В
Не найду нигде примера
Время С = Время Б - ( (Время Б - Время А) / 2)
Цена по Времени С
Время С = Время Б - ( (Время Б - Время А) / 2)
Цена по Времени С
Проверил, иногда попадаю на выходные)
А можно как то в самой линии центр узнать?
Вот моя линия
как узнать тикет последнего открытого ордера? так не работает:
Что именно Вы хотите узнать? Нужно четко разделять понятия ОРДЕР, СДЕЛКА и ПОЗИЦИЙ.
Второе: сразу внесли путаницу наименовав объекты торгового класса CTrade словами "order_1" " "order_2". Объекты класса CTrade принято называть "m_trade_1" и "m_trade_2". Это на работоспособность не влияет, но путаницу вносит.
Третье: метод PositionClose не сработает уже только потому, что вы ему передаёте тикет позиции равный нулю (а нулём Вы их инициализируете в OnInit() ) - таких идеальных условий, когда первая позиция имеет тикет "0" можно получить только в тестере.
Четвёртое: метод Buy
Примечание
Успешное окончание работы метода Buy(...) не всегда означает успешное совершение торговой операции. Необходимо проверять результат выполнения торгового запроса ( код возврата торгового сервера) вызовом метода ResultRetcode(), а также значение, возвращаемое методом ResultDeal().
Метод ResultDeal()
Получает тикет СДЕЛКИ.
Что именно Вы хотите узнать? Нужно четко разделять понятия ОРДЕР, СДЕЛКА и ПОЗИЦИЙ.
Второе: сразу внесли путаницу наименовав объекты торгового класса CTrade словами "order_1" " "order_2". Объекты класса CTrade принято называть "m_trade_1" и "m_trade_2". Это на работоспособность не влияет, но путаницу вносит.
Третье: метод PositionClose не сработает уже только потому, что вы ему передаёте тикет позиции равный нулю (а нулём Вы их инициализируете в OnInit() ) - таких идеальных условий, когда первая позиция имеет тикет "0" можно получить только в тестере.
Четвёртое: метод Buy
Примечание
Успешное окончание работы метода Buy(...) не всегда означает успешное совершение торговой операции. Необходимо проверять результат выполнения торгового запроса ( код возврата торгового сервера) вызовом метода ResultRetcode(), а также значение, возвращаемое методом ResultDeal().
Метод ResultDeal()
Получает тикет СДЕЛКИ.
Спасибо! разобрался уже
в общем проблема была от обилия информации, сплетен и возможностей.... была уверенность, что в Result() не смогу поймать тикет, ибо через раз начинают вспоминать событие OnTradeTransaction() ... и понеслось!
сейчас с тестером МТ5 разбираюсь, пока нужны просто воспроизводимые примеры, речи не идет о функциональном коде - пока только тестер
еще раз спасибо за помощь!
такой код может получить тикеты последних ордеров в тестере:
Спасибо! разобрался уже
в общем проблема была от обилия информации, сплетен и возможностей.... была уверенность, что в Result() не смогу поймать тикет, ибо через раз начинают вспоминать событие OnTradeTransaction() ... и понеслось!
сейчас с тестером МТ5 разбираюсь, пока нужны просто воспроизводимые примеры, речи не идет о функциональном коде - пока только тестер
еще раз спасибо за помощь!
такой код может получить тикеты последних ордеров в тестере:
Да при помощи ResultOrder получится тикет ордера.
Да при помощи ResultOrder получится тикет ордера.
ОК, с этим проблем теперь не наблюдаю, но очередная проблема появилась при использовании CTrade: вот имею запомненный тикет ордера, могу закрыть по тикету с помощью PositionClose(m_ticket)
а как узнать закрыт ли у меня ордер или нет, в MQL4 это было просто: выбрал ордер через OrderSelect() и проверил if(OrderCloseTime()>0) - если время закрытия не равно 0, то ордер закрыт
как узнать, что ордер закрыт используя СБ CTrade ?
ОК, с этим проблем теперь не наблюдаю, но очередная проблема появилась при использовании CTrade: вот имею запомненный тикет ордера, могу закрыть по тикету с помощью PositionClose(m_ticket)
а как узнать закрыт ли у меня ордер или нет, в MQL4 это было просто: выбрал ордер через OrderSelect() и проверил if(OrderCloseTime()>0) - если время закрытия не равно 0, то ордер закрыт
как узнать, что ордер закрыт используя СБ CTrade ?
Забудьте про ОРДЕР! Есть позиция!
Я ведь сразу спросил: что именно Вам нужно: ОРДЕР, СДЕЛКА или ПОЗИЦИЯ? Не путайте терминологию. После исполнения торгового приказа появляется ПОЗИЦИЯ! Не ОРДЕР!
Поэтому сначала словами опишите, что делаете и что хотите получить. Вместо ОРДЕР применяйте "торговый приказ BUY" и "торговый приказ SELL". В результате получаем "позиция BUY" или "позиция SELL".
ОК, с этим проблем теперь не наблюдаю, но очередная проблема появилась при использовании CTrade: вот имею запомненный тикет ордера, могу закрыть по тикету с помощью PositionClose(m_ticket)
а как узнать закрыт ли у меня ордер или нет, в MQL4 это было просто: выбрал ордер через OrderSelect() и проверил if(OrderCloseTime()>0) - если время закрытия не равно 0, то ордер закрыт
как узнать, что ордер закрыт используя СБ CTrade ?
Если не учитывать, что тикет позиции как правило соответствует тикету ордера, но не факт что абсолютно всегда, то можно воспользоваться без СБ функцией PositionSelectByTicket
В этот код расчета индикатора можно подставить свою формулу расчета?
Например open/2