идентификация позиций
Да, возможность идентификации позиции было бы хорошей возможностью.
К сожалению, изначально такой возможности не заложили. Но выход есть - в следующих версиях заложим возможность при установке ордера через SetOrder указывать поле комментария (32 символа), через которое можно идентифицировать позиции.
Да, возможность идентификации позиции было бы хорошей возможностью.
К сожалению, изначально такой возможности не заложили. Но выход есть - в следующих версиях заложим возможность при установке ордера через SetOrder указывать поле комментария (32 символа), через которое можно идентифицировать позиции.
проще, но...
Функция SetOrder не может вернуть номера ордера, так как с помощью этой команды всего лишь выставляется приказ на совершение сделки, а не совершается сделка.
Типичная сделка занимает несколько секунд (вплоть до десятков секунд у реальных счетов), а эксперт не имеет права так долго занимать время.
Исполнением сделки занимается торговый терминал в отдельном потоке, не влияющем на работу остальной части программы.
Функция SetOrder не может вернуть номера ордера, так как с помощью этой команды всего лишь выставляется приказ на совершение сделки, а не совершается сделка.
Типичная сделка занимает несколько секунд (вплоть до десятков секунд у реальных счетов), а эксперт не имеет права так долго занимать время.
Исполнением сделки занимается торговый терминал в отдельном потоке, не влияющем на работу остальной части программы.
нужен обработчик запросов
чтобы SetOrder посылал запрос не серверу, а обработчику а функция возвращала его некий внутренний id, а потом по этому id можно б было
узнать, что с этим ордером. И в дальнейшем использовать этот id (хендл) для идентификации позиции внутри данного запущенного МТ.
Что-то типа этого, возможно я немного запутанно изложил.
чтобы SetOrder посылал запрос не серверу, а обработчику а функция возвращала его некий внутренний id, а потом по этому id можно б было
узнать, что с этим ордером. И в дальнейшем использовать этот id (хендл) для идентификации позиции внутри данного запущенного МТ.
Что-то типа этого, возможно я немного запутанно изложил.
такой способ не получится
Такой способ не получится.
Чтобы "потом" извлечь результат сделки, придется еще полминуты помнить о том, что была сделка и опрашивать терминал?
Этот способ не подходит, так как после перезапуска терминала все данные можно потерять (если не использовать глобальные переменные). В случае с сохранением данных в комментарии можно указать: "MYEXP-5", означающий, что эта позиция открыта экспертом MYEXP на 5 минутном периоде.
Такой способ не получится.
Чтобы "потом" извлечь результат сделки, придется еще полминуты помнить о том, что была сделка и опрашивать терминал?
Этот способ не подходит, так как после перезапуска терминала все данные можно потерять (если не использовать глобальные переменные). В случае с сохранением данных в комментарии можно указать: "MYEXP-5", означающий, что эта позиция открыта экспертом MYEXP на 5 минутном периоде.
запросы
послали ордер, получили хендл, запомнили
типа ф-я GetOrderStatus(id) возвращает либо # позиции, либо 0 если ордер в очереди, -1 если нехватило денег, -99 если ошибка соединения и т.п.
в начале эксперта проверка
if GetOrderState (id)!=0
{
....
....
}
так появляется возможность как-то отследить (И ОТРАБОТАТЬ!) судьбу ордера, меньше вероятность открытия нескольких ордеров,
т.к. между отправкой ордеров и появлении их в трейдтерминале проходит какое-то время.
послали ордер, получили хендл, запомнили
типа ф-я GetOrderStatus(id) возвращает либо # позиции, либо 0 если ордер в очереди, -1 если нехватило денег, -99 если ошибка соединения и т.п.
в начале эксперта проверка
if GetOrderState (id)!=0
{
....
....
}
так появляется возможность как-то отследить (И ОТРАБОТАТЬ!) судьбу ордера, меньше вероятность открытия нескольких ордеров,
т.к. между отправкой ордеров и появлении их в трейдтерминале проходит какое-то время.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здравствуйте.
Часто видел на форуме вопросы об одновременной работе разных советников с позициями и возникающих при этом проблемах их идентификации и разработчики сами писали
"нет никакой возможности узнать, кто открыл ту или иную позицию - сам клиент вручную, эксперт на 5-минутном графике или эксперт на дневном графике etc"
Не кажется ли разработчикам, что введение уникального идентификатора позиции при открытии её функцией SetOrder (и его использование дальше в DeleteOrder, ModifyOrder etc) решило бы все эти проблемы?
Андрей