Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Спасибо за приложенный код - будем проверять. Но нам также необходимы полные исходные данные индикаторов FATL и T3. Если не затруднит, то приложите их тоже?
Советник то небольшой, и алгоритм несложный.
Тестер никак даже теоретически не может выдавать "TradeDispatcher: trade context is busy" - у него всегда сделки проходят (и отрабатываются на виртуальном сервере, который не выдает таких отказов).
А вот "TradeDispatcher: trade context is busy" может случаться у обычного подключенного эксперта, работающего параллельно тестируемому, из-за нехватки ресурсов процессора. Тестер (особенно на слабых компьютерах) может использовать все ресурсы процессора, ничего не оставляя остальным процессам.
К сожалению, не указано конкретно - в чем проблема? Что такое - "через одну или через...". Если логика работы с ордерами не такая как задумывалась, то необходимо самостоятельно детально разобрать свой код.
Из явных проблемных мест кода эксперта:
1) не везде проверки на результат вызова OrderSelect();
2) после Sleep() не стоит RefreshRates(), что приводит к использованию устаревших закешированных данных рынка (не забывайте, что эксперту на каждом тике выдается зафиксированный отпечаток/snapshot рынка). Через 5 секунд (Sleep(5000)) этот отпечаток с 99% гарантией не соответствует рыночным условиям.
3) как описано в статье, Sleep() при тестировании не учитывается, что может дать расхождение с реальным тестированием
4) условие проверки пересечения базируется на анализе всего двух баров, что явно недостаточно (точность плохая)
5) неструктурированный код, лучше его разбить на несколкьо функций - станет проще понять
Я погонял эксперта в разных режима моделирования, включая отладчик. Никаких проблем с нашей стороны не обнаружил. Вам необходимо более детально разобраться в своем коде.
Я имел ввиду, что пропускает закрытие позиций, так же как и в реале.
Машина у меня неслабая и ничего, кроме висящего советника в терминале не делается. Хотя попробую еще разгрузить комп.
Проблема в том, что советник обычный переворотный на пересечениях. Переворот это ведь закрытие позиции и открытие противоположной, если я правильно понимаю.
Так вот, иногда закрытие не происходит, а просто открывается противоположная сделка, а оставшаяся незакрытая просто забывается, и закрывается по стопу или профиту, пока советник торгует дальше нормально. Таких "незакрытий" получается около 5-6 на 60-70 сделок. Портят всю картину.
Тестер никак даже теоретически не может выдавать "TradeDispatcher: trade context is busy" - у него всегда сделки проходят (и отрабатываются на виртуальном сервере, который не выдает таких отказов).
пока не столкнулся сам, даже не верил....
Значит, ситуация такая:
Есть советник, торгующий на демо-счёте без проблем - все операции проходят удачно, даже при одновременной работе 4-8 советников.
Для тестирования у меня отдельный терминал - там история своя, файлы сгенерённые и подключения к серверу нет. Пытаюсь тестировать - ни одной операции. OrderSend возвращает ошибку №146. На этом терминале в онлайне _не_работает_ни_один_эксперт_.
Если бы у меня не было порверок на ошибки, наверное и не заметил бы - ни одного сообщения от тестера, только мои принты...
Билд 184, файлы сгенерированы period_converter-ом из минуток. Код эксперта, к сожелению, выложить не могу... Из особенностей - установка 2-х отложенных ордеров подряд, остальное - стандартно...
Другие советники тестируются..
Сейчас попробую раскопать проблемное место. Но ошибка явно есть, кривая такая =)