Не закрываются некоторые сделки.

 

Советник (скальпер) работает на нескольких десятках пар одновременно. Открывает скажем 5 пар бывает больше, через 5-10 минут должен все закрыть. Периодически, редко  возникает ситуация что одна, две иногда три пары остаются открыты. В чём может быть причина?

И второй вопрос возможно связанный с первым. Что означает в торговой функции OrderClose int slippage, // максимальное проскальзывание?

При открытии сделки понятно что выставляя проскальзывание мы хотим получить достаточно близкую цену открытия к приемлемой цене, если сильно проскользнуло не открываем. Но что означает настройка проскальзывания при закрытии сделки? Если проскользнуло, что не закрывать? Какие размеры проскальзывания нужно выставить что бы точно закрывало? Возможно я неправильно понимаю понятие проскальзывание? Прошу неравнодушных поделиться мыслями.

 
Vadim Kistruga:

Советник (скальпер) работает на нескольких десятках пар одновременно. Открывает скажем 5 пар бывает больше, через 5-10 минут должен все закрыть. Периодически, редко  возникает ситуация что одна, две иногда три пары остаются открыты. В чём может быть причина?


Очевидно, что причина в коде, который неправильно работает.

 
Vadim Kistruga:

Советник (скальпер) работает на нескольких десятках пар одновременно. Открывает скажем 5 пар бывает больше, через 5-10 минут должен все закрыть. Периодически, редко  возникает ситуация что одна, две иногда три пары остаются открыты. В чём может быть причина?

И второй вопрос возможно связанный с первым. Что означает в торговой функции OrderClose int slippage, // максимальное проскальзывание?

При открытии сделки понятно что выставляя проскальзывание мы хотим получить достаточно близкую цену открытия к приемлемой цене, если сильно проскользнуло не открываем. Но что означает настройка проскальзывания при закрытии сделки? Если проскользнуло, что не закрывать? Какие размеры проскальзывания нужно выставить что бы точно закрывало? Возможно я неправильно понимаю понятие проскальзывание? Прошу неравнодушных поделиться мыслями.

На первый вопрос ответить не могу (нужно видеть код советника). По второму вопросу. Для счетов типа "инстант экзекутион", если величина проскальзывания превысила заданный  размер, то будет ошибка (реквота) и ордер не закроется. Советник должен каким то образом обработать данную ситуацию.  Настройка проскальзвывания это допустимая величина на которую изменилась цена с момента отправки  торгового приказа и моментом попытки его исполнить. Между отправкой приказа и попыткой его исполнить может пройти некоторое время и цена изменится на 10 пунктов (например). Если параметр slippage больше 10 пунктов то торговый приказ будет исполнен, если меньше то будет ошибка (реквоте) "цена изменилась" и торговый приказ не исполнится.

Для счетов типа "маркет экзекутион" это не работает. Отправили приказ закрыть по цене 100, цена изменилась до 50 закрытие в любом случае будет по 50 и не важно какой у вас slippage.