А вот если хотите, чтобы выставлялся лимитник именно по цене открытия бара, не уверен, возможно ли такое, не знаю. Самое близкое это buy next bar c limit - по цене закрытия предыдущего бара.
Действительно, buy next bar o; исполняется не по цене открытия и не сразу после закрытия бара, а через N секунд, причем каждый раз по разному...придется менять и тестировать такой вход buy next bar c limit;.
Если выключен IOG, то ордер сгенерируется на закрытии текущего бара, с ценой «Open текущего бара», пошлется на открытии следующего бара.
Если включен IOG, то ордер сгенерируется на тике, на котором выполнено условие генерации ордера, с ценой «Open текущего бара», пошлется на следующем тике.
Для отправки ордера с ценой “Open следующего бара” на следующем баре необходимо использовать следующую команду:
Code: Select all
buy next bar at open next bar limit;
Кстати пожелание к Multicharts - нельзя ли добавить возможность установки дефолтного способа эмуляции маркетов и стопов. Иначе приходится для каждого чарта выставлять, иногда забываю это сделать для новых чартов.
При создании нового чарта настройки должны загружаться из брокер профиля. Затем чарт можно настроить иначе в настройках авто торговли (Format->Strategy properties->Auto trading tab->Select broker plugin->Settings).
Интересно, как проходит исполнение, если используется несколько стратегий и в одно время будет сформировано 2 противоположных сигнала?
Если это ордера с двух разных чартов, то оба могут быть посланы на брокера.
Подробности.
buy next bar c limit работает как лимитка, как я и хотел. Но есть один недостаток, если проходит время и сделка не исполняется, то заявка не меняется. В настройках Unfilled Strategy Order Replacement была активирована опция.
Если лимитного ордера не коснулась цена и/или он не начал заполняться, то отменить ордер можно только из кода (перестать его посылать на следующем просчете). Опции для отмены таких ордеров «в автоматическом режиме» нет. Работать с ордерами будет проще со следующей версии MultiCharts, когда будет реализован
новый движок автоторговли/бэктестинга.
1. Каким образом происходит исполнение, если одновременно формируется сигнал на вход по нескольким стратегиям? Сегодняшний случай, у меня по логике должно быть сформировано 2 заявки по 10 лотов на закрытии бара, в реальности выставляется заявка одна и тут же отменяется, другая выставляется и после частичного исполнения аналогично отменяется. По факту я имею позицию в 2 лота, вместо 20. Каким образом это работает мне не понятно.
Все зависит от конкретной ситуации. Пожалуйста, опишите случай более подробно. С какого количества чартов были сгенерированы ордера? Прикрепите код и воркспейс, которые Вы используете.
2. Как мне добиться чтобы лимитная заявка buy next bar c limit; в случае частичного или неисполнения, переставлялась по рыночной через определенное время?
Кто в курсе, покажите, пожалуйста код, где вход и выход исполняется лимитной ценой с проверкой через N времени на исполнение/неисполнение. Если заявка частично исполнилась, остаток переставлять по рынку. Если не исполнилась, переставлять по рынку. Спасибо.
Есть несколько вариантов:
- Включить опцию «Replace to Market Partially Filled Orders». Если есть частично заполненный ордер, на закрытии бара он будет конвертирован в маркетовый, который будет отправлен на открытии следующего бара. Но если этот ордер продолжает быть сгенерирован скриптом на следующем просчете, то конвертации не будет, будет посылаться оригинальный ордер с количеством не заполнившихся контрактов.
- Включить опцию «Unfilled Strategy Order Replacement». При касании цены ордера рынком (на чарте или на брокере, зависит от опции Get Real-Time Data from) через указанный тайм аут ордер будет конвертирован в маркетовый. Если бар закрывается раньше, чем истекает тайм аут, то ордер будет конвертирован в маркетовый.
- Проверять MarketPosition_at_Broker из кода, по условию переставать генерировать лимит и выставлять маркет.
3. Откуда ложные сделки появляются? По логике кода их не должно быть в принципе...
AAY правильно заметил: «необъяснимых трейдов не видел». Пожалуйста,
исследуйте как работает Ваш код в момент возникновения ложных сделок. Если будут конкретные вопросы, пишите на
support@multicharts.com
Здравствуйте. Спрошу здесь, т.к. вопрос тоже касается автотрейдинга. Есть реверсная стратегия. Состоит из двух сигналов. Один покупает, другой продает. При тестировании и оптимизации на истории все нормально: открывает позицию, держит ее, когда доходит до уровня переворота, то закрывает открытую позицию, и открывает новую в другую сторону на тот же объем. В реал тайме же позицию тоже открывает, но при перевороте просто закрывает позицию, новую не открывает в другую сторону.
В коде сигналов не прописано о закрытии позиций, но тем не менее на истории же они закрываются.
Какого брокера Вы используете? Прикрепите код и воркспейс, которые Вы используете.