Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Пользуйтесь.
И что вы будете делать в "//смотрим причину result.retcode", если получите скажем TRADE_RETCODE_TIMEOUT или TRADE_RETCODE_FROZEN ?
Зачем вы отправляете пустой запрос на сервер? Это выглядит не имеющим смысла.
И что вы будете делать в "//смотрим причину result.retcode", если получите скажем TRADE_RETCODE_TIMEOUT или TRADE_RETCODE_FROZEN ?
Поддерживаю обеими руками. MQ как буд-то не хотят брать на себя ответственность за готовую функцию отправки ордера и получения ответа.
Мой вариант тоже с костылями:
Почему не сделать что-то похожее (не на все случаи жизни, хотя бы на самый простой!) и не выложить в СБ?
в самом деле, какой толк от "быстроты" исполнения OrderSend(...), если мы в ЕА вынуждены ждать
обновления окружения, в данном случае обновления истории... и придумывать разные алгоритмы этого ожидания...
ведь пока история не обновится, дальше мы не двинемся...то есть пользы от этой быстроты никакой...
в самом деле, какой толк от "быстроты" исполнения OrderSend(...), если мы в ЕА вынуждены ждать
обновления окружения, в данном случае обновления истории... и придумывать разные алгоритмы этого ожидания...
ведь пока история не обновится, дальше мы не двинемся...то есть пользы от этой быстроты никакой...
Речь не о встроенных функциях языка, речь о стандартной библиотеке.
Вы говорите, что у вас есть костыль, но что то он того, ненадежный. Дайте пример хорошего надежного костыля.
Я говорю - что может можно вообще обойтись без костылей. Если разработчики соизволили бы изменить поведение OrderSend. Сделать, как в MT4.
Ну - или еще альтернативный вариант. Добавить функцию OrderSendMT4Style. :)
Самостоятельно пишется очень простая перегрузка OrderSend: пока OnTrade не возвратит ответ, все последующие OrderSend возвращают false. Как ответ получен - принудительный false отменяется.
Именно такое решение нужно добавить в СБ. И самим использовать.
В СБ по тому же принципу добавить bool CTrade::IsHistoryLoad( const string Symb = NULL ).
И никаких костылей тогда! Обе функции легко пишутся самостоятельно.
ЗЫ Если хочется совсем полноценно (не для СБ), то в OnTrade по приходу соответствующей синхронизации вызывать самостоятельно OnTick и OnTimer.
Каких-же костылей понаписали... Изучайте поведение функции void OnTradeTransaction()
Так-же обрабатывайте ошибки открытия позиций и ордеров.
Каких-же костылей понаписали... Изучайте поведение функции void OnTradeTransaction()
Так-же обрабатывайте ошибки открытия позиций и ордеров.
Вы прочли тему по-диагонали.
Нет, только по вертикали. Только первую букву каждой строки.
Как с этой простой перегрузкой будут работать 2 советника на одном инструменте?