Большое спасибо. Это многим будет полезно. Ждём новую статью
об обработке ошибок возвращаемых сервером.
Конечно, следующая статья уже на подходе ;)
ps: буду признателен за любые конструктивные замечания и предложения по поводу статьи
ps: буду признателен за любые конструктивные замечания и предложения по поводу статьи
ExpertTrader:
Опишите подробнее ситуацию:Я не знаю, вроде сделал все так, но проблема осталать...
2006.05.15 12:12:58 TradeDispatcher: trade context is busy
- какая версия терминала?
- сколько работает экспертов?
- во всех экспертах используются функции TradeIsBusy() и TradeIsNotBusy()?
- перед всеми торговыми операциями?
ExpertTrader:
Вот и ответ на ваш вопрос - слишком частые передвижения СтопЛосса
без разделения доступа к торговому потоку.
4. На момент предыдущего сообщения перед всеми операциями, но
т.к. из-за добавления этих функций к трейлинг-стопу выходило
сообщение Превышен лимит ожидания (30 сек.)!, и стоп не передвигался,
я убрал их от туда.
Надо либо двигать реже (каждые n пунктов), либо поставить больше лимит ожидания.
ps: лучше вместо кода эксперта прикрепить файл - будет удобнее читать комментарии ;)
komposter писал(а):
В использовании функций TradeIsBusy() и TradeIsNotBusy() может возникнуть только одна проблема - если после того, как торговый поток будет занят, эксперта удалить с графика, переменная TradeIsBusy останется равной 1
if(IsStopped())
{
Print("Эксперт был остановлен пользователем!");
TradeIsBusy=0;
return(-1);
}
и тогда, при ручном удалении эксперта, переменная обнулится ?
Спасибо.
ForexFox:
Хотел спросить, а разве не поможет в решении этой проблемы следующее :
if(IsStopped())
{
Print("Эксперт был остановлен пользователем!");
TradeIsBusy=0;
return(-1);
}
и тогда, при ручном удалении эксперта, переменная обнулится ?
Переменная - одна на всех экспертов. Если её обнулять из каждого
эксперта, начнётся бардак ;)Хотел спросить, а разве не поможет в решении этой проблемы следующее :
if(IsStopped())
{
Print("Эксперт был остановлен пользователем!");
TradeIsBusy=0;
return(-1);
}
и тогда, при ручном удалении эксперта, переменная обнулится ?
Например, если удалить с графика эксперт, который в данный момент не торгует, он обнулит переменную, и несколько других экспертов "подерутся" за торговый поток.
komposter:
Например, если удалить с графика эксперт, который в данный момент не торгует, он обнулит переменную, и несколько других экспертов "подерутся" за торговый поток.
ForexFox:
Хотел спросить, а разве не поможет в решении этой проблемы следующее :
if(IsStopped())
{
Print("Эксперт был остановлен пользователем!");
TradeIsBusy=0;
return(-1);
}
и тогда, при ручном удалении эксперта, переменная обнулится ?
Переменная - одна на всех экспертов. Если её обнулять из каждого
эксперта, начнётся бардак ;)Хотел спросить, а разве не поможет в решении этой проблемы следующее :
if(IsStopped())
{
Print("Эксперт был остановлен пользователем!");
TradeIsBusy=0;
return(-1);
}
и тогда, при ручном удалении эксперта, переменная обнулится ?
Например, если удалить с графика эксперт, который в данный момент не торгует, он обнулит переменную, и несколько других экспертов "подерутся" за торговый поток.
А, ну да, все правильно.
Спасибо за разъяснение
А на каком же тогда принципе торгуют торговые системы на чемпионате? там же единый поток на каждый сервак, а система обхода ошибки наверняка не у всех в ТС прописана.
fornax:
Эта статья посвящена одновременной работе нескольких экспертов
на одном терминале.А на каком же тогда принципе торгуют торговые системы на чемпионате? там же единый поток на каждый сервак, а система обхода ошибки наверняка не у всех в ТС прописана.
На чемпионате каждый эксперт работает на своем терминале, поэтому ошибки 146 быть не может в принципе ;)
Подскажите, пожалуйста. В опубликованом алгоритме преведена
последовательность
1.// определяем необходимость входа в рынок
2.// рассчитываем уровни Стоп Лосс, Тейк Профит и размер лота
3.// ждём освобождения торгового потока и занимаем его (если произошла ошибка,
4.// выходим)
5.// обновляем рыночную информацию
6.// пересчитываем уровни Стоп Лосс и Тейк Профит
7.// открываем позицию
Вопрос в том, что расчет в соответствии с пунктом 2. нигде не используется и мне кажется его можно пропустить. Ведь мы всё равно повторно расчитывам уровни в пункте 6. Или я не прав?
1.// определяем необходимость входа в рынок
2.// рассчитываем уровни Стоп Лосс, Тейк Профит и размер лота
3.// ждём освобождения торгового потока и занимаем его (если произошла ошибка,
4.// выходим)
5.// обновляем рыночную информацию
6.// пересчитываем уровни Стоп Лосс и Тейк Профит
7.// открываем позицию
Вопрос в том, что расчет в соответствии с пунктом 2. нигде не используется и мне кажется его можно пропустить. Ведь мы всё равно повторно расчитывам уровни в пункте 6. Или я не прав?
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
New article Ошибка 146 ("Торговый поток занят") и как с ней бороться has been published:
Author: Andrey Khatimlianskii