Рассмотрим пример робота, торгующего по точным сигналам из Телеграмм, с заранее определёнными точкой входа и бумагой для торговли.
Данного бота можно и нужно использовать в качестве примера для реализации подключений к различным каналам с сигналами.
ВАЖНО!!! Сигналы с разных каналов форматируются по-разному и для каждого надо будет менять способ парсинга текста.
В качестве примера робота, который сам торгует по сигналам из Telegram каналов, рассмотрим робот TelegramCryptoXBot.
Внутри проекта код робота находится здесь:
Для получения сообщений-сигналов из Telegram в роботе используется коннектор TelegramNews и источник TabNews, для торговли – источник TabScreener.
Telegram канал CryptoX|Protruding (https://t.me/+byORdjvgSFQ2ODQ0) был выбран для примера, доходность сигналов на длительном промежутке времени не проверялась. Не является инвестиционной рекомендацией.
Его преимущество в том, что сигналы появляются достаточно часто (до нескольких раз в день), сообщения, содержащие сигнал, имеют постоянную структуру, и все параметры для совершения сделки:
Для парсинга берём:
В коде робота за парсинг сигнала отвечает метод ParseToSignal, в котором применяются регулярные выражения, и возвращается объект класса TradeSignal:
Вкладка параметров Base:
1. Regime:2. Volume type – режим выбора объёма.
Contracts – кол-во контрактов инструмента.
Contract currency – валюта контракта.
Deposit percent – процент от депозита.
3. Volume – значение объёма. Это значение зависит от предыдущего пункта. Если указано Contracts, то указывается объём инструмента. Если Contract currency, то указывается кол-во рублей или долларов, которыми нужно войти. Если Deposit percent, то указывается % от общего депозита, которым нужно войти в контракт.
4. Asset in portfolio – тут нужно указывать название валюты, которое будет использовано для расчёта объёма, если Вы выбрали тип объёма “Deposit percent”. В тестере оставляем «Prime». На крипте это обычно “USDT”. В АЛОР это «RUB».
5. Stop percent– на каком расстоянии от цены входа установить stop-loss в процентах на случай, если в сообщении с сигналом будет отсутствовать цена стоп уровня.
ВкладкапараметровManual manage position:
На случай, если автор сигналов вносит коррективы в позицию, типа такого:
При получении сигнала берутся параметры сделки, находится инструмент, и открывается позиция. В скринере используем 1 мин. таймфрейм, чтобы быстро выставить стоп и тейки, а затем это позволяет поминутно проверять пересечение уровня второго тейк-профита, чтобы перенести стоп в безубыток. Данный приём достаточно часто использует автор Telegram канала, поэтому робот это тоже делает. Тейк-профиты выставляются сразу на биржу лимитными ордерами.
Выход из позиции осуществляется либо по стоп-лоссу с убытком, либо 2 тейка и безубыток, либо 3 тейка.
В интерфейсе программы на вкладке источник новостей отображаются сообщения из канала:
Сигнал по SAND обработан, сделка открыта:
Удачных алгоритмов!
Комментарии открыты для друзей!
https://smart-lab.ru/company/os_engine/blog/1024149.php
OsEngine: https://github.com/AlexWan/OsEngine
Поддержка OsEngine: https://t.me/osengine_official_support
Канал научный трейдинг: https://t.me/bad_quant