Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2462
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Объясните, пожалуйста, как мне найти в истории сегодняшнего дня закрытые позиции?
И посмотреть их время
Тёмный лес какой-то с этими айди
Объясните, пожалуйста, как мне найти в истории сегодняшнего дня закрытые позиции?
Указанный Вами пример для другого - найти все сделки по уже известному идентификатору позиции.
А у Вас, понимаю, нужно найти идентификатор позиции и время её закрытия.
Лучше здесь смотрите пример: https://www.mql5.com/ru/docs/trading/historydealgetinteger
По найденным сделкам ищите сделки ENTRY_OUT и их идентификатор позиции.
В сделке ENTRY_OUT есть её время - это время закрытия позиции, идентификатор которой указан в DEAL_POSITION_ID
Указанный Вами пример для другого - найти все сделки по уже известному идентификатору позиции.
А у Вас, понимаю, нужно найти идентификатор позиции и время её закрытия.
Лучше здесь смотрите пример: https://www.mql5.com/ru/docs/trading/historydealgetinteger
По найденным сделкам ищите сделки ENTRY_OUT и их идентификатор позиции.
В сделке ENTRY_OUT есть её время - это время закрытия позиции, идентификатор которой указан в DEAL_POSITION_ID
Благодарю Вас
Подскажите как получить значения отмеченные красными квадратами?
Первое значение получается функцией SymbolInfoMarginRate(), а вот второе и третье не пойму как получить.
Символ USDJPY метаквотовский демосервер.
Вообще запутался. Вроде форекс, ничего сложного, но как рассчитать маржу не используя OrderCalcMargin()?
У меня не хватает исходных данных и где их брать я не знаю, чтоб рассчитать вот это. Маржа по символу USDJPY , в зависимости от размера лота, рассчитана функцией OrderCalcMargin().
Как рассчитать эту маржу не используя функцию OrderCalcMargin()?
Подскажите как получить значения отмеченные красными квадратами?
Первое значение получается функцией SymbolInfoMarginRate(), а вот второе и третье не пойму как получить.
Символ USDJPY метаквотовский демосервер.
Вообще запутался. Вроде форекс, ничего сложного, но как рассчитать маржу не используя OrderCalcMargin()?
У меня не хватает исходных данных и где их брать я не знаю, чтоб рассчитать вот это. Маржа по символу USDJPY , в зависимости от размера лота, рассчитана функцией OrderCalcMargin().
Как рассчитать эту маржу не используя функцию OrderCalcMargin()?
Может вот это поможет?
SYMBOL_MARGIN_INITIAL
Начальная (инициирующая) маржа обозначает размер необходимых залоговых средств в маржинальной валюте для открытия позиции объемом в один лот. Используется при проверке средств клиента при входе в рынок.
Для получения информации о размере взимаемой маржи в зависимости от типа и направления ордера используется функция SymbolInfoMarginRate().
double
SYMBOL_MARGIN_MAINTENANCE
Поддерживающая маржа по инструменту. В случае если задана – указывает размер маржи в маржинальной валюте инструмента, удерживаемой с одного лота. Используется при проверке средств клиента при изменении состояния счета клиента. Если поддерживающая маржа равна 0, то используется начальная маржа.
Для получения информации о размере взимаемой маржи в зависимости от типа и направления ордера используется функция SymbolInfoMarginRate().
double
Может вот это поможет?
Увы, не поможет.
Я вообще не пойму зачем писать формулы в справке, создавать кучу функций, которые не работают не то, что с брокерами, они не работают у автора-создателя.
На всех форекс символах, выдаёт ноль.
А что не так в этом методе?
Справка говорит, что считать маржу надо по этой формуле Lots * Contract_Size / Leverage * Margin_Rate
Где у меня ошибка?
ЗЫ. Собственно зачем заморачиваться с поиском маржи, если есть OrderCalcMargin? Да просто, эта функция в тестере работает через раз, может в начале тестирования возвращать ноль, а потом начать нормально работать, а может и наоборот глюкнуть.
Может она и в терминале так же работает.Не проверял. Вот это будет реально подстава от разработчиков)
Увы, не поможет.
Я вообще не пойму зачем писать формулы в справке, создавать кучу функций, которые не работают не то, что с брокерами, они не работают у автора-создателя.
На всех форекс символах, выдаёт ноль.
А что не так в этом методе?
Справка говорит, что считать маржу надо по этой формуле Lots * Contract_Size / Leverage * Margin_Rate
Где у меня ошибка?
ЗЫ. Собственно зачем заморачиваться с поиском маржи, если есть OrderCalcMargin? Да просто, эта функция в тестере работает через раз, может в начале тестирования возвращать ноль, а потом начать нормально работать, а может и наоборот глюкнуть.
Может она и в терминале так же работает.Не проверял. Вот это будет реально подстава от разработчиков)
Один и десять лотов.
Верхние строчки этот скрипт. Нижние правильные.
Спасибо, в этом скрипте более понятно написаны методы для обратных пар и кросов, чем в книге.
Но проблему он не решил.
Увы, не поможет.
Я вообще не пойму зачем писать формулы в справке, создавать кучу функций, которые не работают не то, что с брокерами, они не работают у автора-создателя.
На всех форекс символах, выдаёт ноль.
А что не так в этом методе?
Справка говорит, что считать маржу надо по этой формуле Lots * Contract_Size / Leverage * Margin_Rate
Где у меня ошибка?
ЗЫ. Собственно зачем заморачиваться с поиском маржи, если есть OrderCalcMargin? Да просто, эта функция в тестере работает через раз, может в начале тестирования возвращать ноль, а потом начать нормально работать, а может и наоборот глюкнуть.
Может она и в терминале так же работает.Не проверял. Вот это будет реально подстава от разработчиков)
На счёте MQ-Demo всё вроде как работает. Сделайте упрощённый код для проверки, покажите всем… Может подскажут в чём ошибка.
Я пользуюсь функцией OrderCheck() и не смотрите, что там написано
Функция OrderCheck() проверяет достаточность средств для совершения требуемой торговой операции. Результаты проверки помещаются в поля структуры MqlTradeCheckResult
Достаточно посмотреть структуру
и увидим, что и баланс, и эквити после сделки покажет, и маржу, и прочее… И пользоваться этой функцией вовсе не напряжно. Структура запроса MqlTradeRequest заполняется по-любому. Так вот её делаем на глобальном уровне, заполняем, проверяем и прямо с этой структурой отправляем OrderSend(). Правда есть беда в том, что в СБ она работает как-то не так. Я не понял причину, просто для открытия позиции не стал пользоваться СБ.
Alexey Viktorov #:
Я пользуюсь функцией OrderCheck() и не смотрите, что там написано
Достаточно посмотреть структуру
и увидим, что и баланс, и эквити после сделки покажет, и маржу, и прочее… И пользоваться этой функцией вовсе не напряжно. Структура запроса MqlTradeRequest заполняется по-любому. Так вот её делаем на глобальном уровне, заполняем, проверяем и прямо с этой структурой отправляем OrderSend(). Правда есть беда в том, что в СБ она работает как-то не так. Я не понял причину, просто для открытия позиции не стал пользоваться СБ.
Когда-то давно столкнулся с тем, что OrderCheck() иногда, в каких-то редких условиях, возвращает false, хотя реально средств достаточно и ордер успешно отправляется (неттинг, ФОРТС, Открытие).
Поскольку ситуация трудновоспроизводимая, не стал исследовать, что именно в таком случае возвращается в структуре, а просто отказался от использования этой функции.