Ошибки, баги, вопросы - страница 3670
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Спасибо! А с какой машины запускали?
Действительно, опираясь на SYMBOL_TRADE_CALC_MODE, стало понятно, что маржа за лот высчитывается по формуле Margin: Lots * InitialMargin * Margin_Rate
Библиотечная функция MaxLotCheck прекрасно работает, когда начальная маржа равна 1.
А если взять, например, GOLD, то по спецификации начальная маржа там 0.000001 а лот 0.38. Простое перемножение дает 0,00000038.
Нужно умножать начальную маржу на размер контракта. В данном случае он 100. Сумма взята из спецификации символа.
И только после этого мы можем правильно запросить OrderCalcMargin, который честно вернет цену около 3700, которая является 1.0 лотом при покупке.
Препарировал MaxLotCheck, вывалив его в OnTick() и слегка доработав напильником под сложившуюся ситуацию.
Возможно, я изобрел велосипед. Подскажите, пожалуйста, готовое решение, если оно есть.
Вот это всё неправильно. Прошу прощения, если кого-то ввёл в заблуждение. Не используйте этот код.
Вы молодец.
Вообще про то как рассчитывается маржа очень хорошо описано в учебнике и примеры там лучше чем в справке.
Что за фигня [Disk error] - такого еще не видел:
Это на MQ-терминале.
2025.09.26 00:01:00.714 Trades '81707222': market sell 0.01 EURUSD, close #4728882562 buy 0.01 EURUSD 1.17071
2025.09.26 00:01:00.761 Trades '81707222': accepted market sell 0.01 EURUSD, close #4728882562 buy 0.01 EURUSD 1.17071
2025.09.26 00:01:00.761 Trades '81707222': failed market sell 0.01 EURUSD, close #4728882562 buy 0.01 EURUSD 1.17071 [Disk error]
Что за фигня [Disk error] - такого еще не видел:
Это на MQ-терминале.
2025.09.26 00:01:00.714 Trades '81707222': market sell 0.01 EURUSD, close #4728882562 buy 0.01 EURUSD 1.17071
2025.09.26 00:01:00.761 Trades '81707222': accepted market sell 0.01 EURUSD, close #4728882562 buy 0.01 EURUSD 1.17071
2025.09.26 00:01:00.761 Trades '81707222': failed market sell 0.01 EURUSD, close #4728882562 buy 0.01 EURUSD 1.17071 [Disk error]
Что-то с демо-сервером?
Что-то с демо-сервером?
В кодобазе не появляется кнопка "Опубликовать".
Я запутался, прошу подсказать!
Платформа Meta Trader 5 раньше была зарегистрирована на фирму MetaQuotes Software Corp, а сейчас на фирму MetaQuotes Ltd.
Вопрос в том, когда произошла перерегистрация?
В коде от MQ фигурирует старое название, а в самом терминале новое.
В частности мне интересно, это переименование было или продажа исключительных прав между двумя юр. лицами?
В дебагере и в реальной торрговли пропускается простое условие
open не равно тру.
Хотя если в дебареге вставить строку tester_strategys == 0, то показывает тру
Если в код дописать else { }. то все работает как нужно
---
Сработает условие или нет, на это влияет где размещу строку
Здесь переменная open в 237 строке и в 256 условие срабатывает
Здесь переменная open прям над условием. И условие не срабатывает.
Оооооочень долго общался с поддержкой Бинанса. Итог: мои IP не в бане, дело не в них. В сухом остатке сейчас получается, что, с одного и того же сервера:
-- команда curl https://fapi.binance.com/fapi/v1/ticker/bookTicker?symbol=ETHUSDT возвращает успех
-- WebRequest из MT5 https://fapi.binance.com/fapi/v1/ticker/bookTicker?symbol=ETHUSDT вот с таким кодом возвращает 503 Service Temporarily Unavailable (разумеется, все URL в белом списке терминала).
Получается, проблема либо в моем коде, либо в МТ5. Мой код дважды проверяли разные люди в саппорте, сказали все в порядке.
После последнего обновления терминала build 5320 все проблемы с WebRequest исчезли. Очевидно, проблема была в самой функции.
Тем временем, написал свои аналоги обеих форм WebRequest на базе WinAPI. Кому понадобится - обращайтесь.