Истерика...
11 лет я занимаюсь разработкой OpenSource проекта, которым пользуются сотни людей ежедневно. И никто, сука, никто из брокеров или бирж ни разу не донатил на разработку коннектора. Никто. А это самая сложная работа — написать подключение.
И вот это случилось…
Рис. 1. Мне задонатили на разработку OsEngine.
Давайте пофантазируем кто бы это мог быть?
Это касается и трейдинга — невозможно успешно дейтрейдить или скальпить в квике. Раньше для свинга и дейтрейда использовал Atas или Tiger, но эти системы платные. Поэтому был очень доволен, когда появился терминал Go Invest, который содержит в себе все необходимое для свинга, трейдинга, анализа рынка, да и для долгосрочных инвесторов он будет очень полезен. При всем при этот терминал бесплатный.
Как-то раз решил перенести свой советник с МТ4 на МТ5. И все было по началу хорошо, пока не обнаружил странное поведение в коде. При помощи записи состояния всех переменных стратегий в лог я выяснил, что некоторые условия срабатывали тогда, когда не надо. И наоборот, некоторые условия не срабатывали.
Самый простой пример:
double a = 5; double b = 10; if (a > b) { }
В любом языке программирования такое условие не выполнится. Но в MQL5 подобные условия иногда выполняются. И от чего это зависит — не понятно.
Тогда мне помогло лишь одно: я переехал с терминала МТ5 от брокера Альпари (он не хотел обновляться до свежей версии) на оригинальный МТ5 последней (на тот момент) версии. И это помогло, подобные баги исчезли. Менять что либо в коде было бесполезно.
И вот недавно я решился сделать заказ для знакомого. По началу все шло хорошо, но вот захотелось добавить асинхронное открытие и закрытие сделок. Казалось бы, что может быть проще?
Опустим такую деталь, что в очень удобном МТ5 нет специальной переменной в запросе, чтобы можно было однозначно судить о том, ответ на какой именно запрос открыть позицию пришел от сервера.