Лонгрид 10 из 13Курс
Собрать учебного торгового клиента
Содержание
Соберём поток котировок и разовую торговую команду в одном файле. Клиент ждёт, когда last станет меньше или равен порогу, и затем либо печатает учебный сигнал, либо отправляет одну лимитную заявку на демо-счёт.
Почему цен две
Переменная | Назначение |
|---|---|
FINAM_TRIGGER_PRICE | Условие, при котором срабатывает учебный сигнал |
FINAM_LIMIT_PRICE | Цена лимитной заявки после срабатывания |
Это разные величины, и объединять их в одну нельзя. Порог решает, когда сработать, а лимитная цена — по какой цене вы готовы купить. Если взять одно число на оба случая, заявка либо исполнится сразу же после срабатывания, либо пример не сработает вовсе.
Сначала запустите dry-run
Чтобы сигнал сработал на первой обычной котировке, временно укажите порог выше текущей цены:
Без переменной FINAM_ENABLE_ORDERS=YES код только напечатает намерение и ничего не отправит.
Запуск dry-run
Разрешить заявку на демо-счёте
Только после успешного dry-run задайте остальные значения:
Повторно проверьте счёт на портале и запустите выбранный клиент. После появления заявки отмените её примером из предыдущего урока или через торговый интерфейс.
Чего намеренно нет в учебном файле
постоянного хранилища состояния;
автоматического переподключения;
проверки позиции, свободных средств и расписания торгов;
ограничения дневного убытка и размера позиции;
восстановления пропущенных событий;
мониторинга и оповещений;
автоматического повтора торговой команды.
Это не недостатки, которые можно игнорировать в production. Следующий раздел показывает, как закрывать их системно.
Что должно получиться
Конец лонгрида