Закрытие позиций при помощи торговой функции OrderCloseBy подразумевает, что у нас есть позиции как на покупку так и на продажу по выбранному торговому инструменту и мы хотим сэкономить на половине от спреда открытых позиций. Это очень большая и серьезная тема, особенно важная для тех, кто:
1. Торгует в обе стороны одновременно;
2. Не подключен к сервису ребейта;
3. Позиции закрываются не по одиночке, а одновременно.
Вот эти три условия и определяют, скажем так, "потребителя" данной темы.
В интернете я нашел немного (всего два) алгоритма реализации закрытия встречных позиций при помощи торговой функции OrderCloseBy и оба варианта меня не удовлетворили. Один не универсален, а другой "заморочен" и тоже неэффективен. Поэтому нужно разобраться в этой теме самостоятельно.
Прежде всего нужно решить ряд вопросов, которые почему то не освещены в справке по данной торговой функции.
1. Рассмотреть материал по самой торговой функции OrderCloseBy.
2. Должен ли размер первой позиции быть меньше или равен размеру второй позиции? Что будет если попробовать закрыть больший объем меньшим?
3. Нужно решить задачу по закрытию позиций при помощи рассматриваемой торговой функции когда имеются много позиций разного размера как на покупку так и на продажу. Как это сделать наиболее эффективно? Этот вопрос открыт.
Вот это, как минимум, три задачи которые нужно будет решить. Будем делать это последовательно.