Блог им. ANTI_Finsov

Организация алгоритмической торговли портфелем из стратегий с использованием вебхуков. Часть 2.

Всем добрый день!

Я уже в своё время писал о том, что на Tradingview (далее TV) наконец-то появился адекватный способ полноценной автоматизации торговли без применения костыльных решений.

Например, раньше TV предоставлял возможность отправлять сигналы только на почту.

Поэтому приходилось писать программу, которые бы считывала данные с почтового клиента и отправляла их уже в торговый терминал.

Либо второй вариант, сканирования выделенной области экрана на наличие в нём заданного цвета сигнала покупка (зелёный), продажа (красный). А о каком открытом API речи даже и не шло.

Очевидно, что у данных решений были определённые недостатки, но они позволяли так или иначе автоматизировать торговлю. И если вы торгуете максимум 1-2 инструментами вышеописанного функционала может быть вполне достаточно, но в случае желания работать с портфелем из стратегий эти решения не совсем подходят.

Но благо TV дал нам наконец функционал, используя который мы можем наконец построить портфель из нескольких стратегий.  

Речь идёт о возможности получения сигнала через вебхуки (WebHook).

Defenitions:

Вебхук — это механизм отправки уведомлений при наступлении в системе события, на которое подписано клиентское приложение. Под событием понимается изменение состояния системы.

Например, событиями является: торговая система в TV сформировала сигнал на продажу.  Самое уведомление будет содержать информацию о наименование стратегии и типе сигнала (покупка, продажа…).

Вид уведомления можно задать либо в JSON формате, либо просто в виде текста:

{

 «nameTs»:«Акции APPLE»,

 «operation»:«sell»

 }

Клиентское приложение, которое подписано на вебхуки, получает данное уведомление и обрабатывает его в соответствии со своей логикой. В простейшем случае по стратегии c наименование “Акции APPLE ” совершается сделка по продаже в торговом терминале.

Передача же информации из клиентского приложения в торговый терминал, может осуществляется посредством открытого API, которое предоставляет практически любой брокер. В случае же его отсутствия, как например с Quik. Можно использовать другие механизмы, например запись информации в файл транзакций, либо организация на стороне Quik локального сервера (см. рисунок ниже).

Стоить отметить, что на Tradingview можно писать не только линейные стратегии типа купить-продать-закрыть позиции, но также и стратегии с управлением капитала. Ну например реализовать тот же мартингейл или пирамидинг это не проблема.  Для этого просто потребуется использовать в уведомлении к вебхукам набор предопределённых плейсхолдеров.

Плейсхолдеры — это переменные, которыми можно заменить в тексте 

определенное содержимое: названия, числа, даты, изображения и т. д

 {«nameTs»:" Акции APPLE ",

«operation»:"{{strategy.order.action}},

«position»:"{{strategy.market_position_size}}"}

{{strategy.order.action}} — текущая состояние стратегии (покупка-продажа)

{{strategy.market_position_size}} — количество открытых лотов стратегии на текущий момент.

 В целом схема выглядит следующим образом:

 Организация алгоритмической торговли портфелем из стратегий с использованием вебхуков. Часть 2.



★7
13 комментариев
прикольное решение =)
avatar
Какое то нагромождение костылей
avatar
wrmngr,  ну предложите свою архитектуру приложения на базе вебхуков. Или альтернативные решения автоматизации торговоли. 
avatar
ANTI_Finsov, писать серьезные боевые алгоритмы на платформе трейдинг вью это уже смешно.
avatar
wrmngr, для hft не подходит, все остальное можно реализовать. 
avatar
ANTI_Finsov, нет. Это только игрушки. Поверьте более опытным товарищам на слово
avatar
ANTI_Finsov, сам ТВ уже костыль, еще и на чужих котировках — для мелких таймов это может быть смертельно.
Почему не делать всё то же самое в терминале?
Если он этого не позволяет — подумать о замене.

Эх, мне бы ваши навыки… Знал бы куда применить.
avatar

Очень интересно, продолжайте пожалуйста!
П.С. К сожалению, лайкнуть не смогу, не хватает рейтинга

avatar
Есть вопрос с безопасностью. Как исключить вариант, что на ваш вебхук сходит кто-то кроме tradingview?
avatar
day0markets, прописываете ip адреса tradingview они указаны на их сайте
avatar
ANTI_Finsov, ну в целом как вариант, если они действительно выкладывают свои ip и не меняют их постоянно.
а так схема, конечно, костыльная немного. например, если вебхук не дошел, то что? будут кидать его снова или просто проигнорят? контролировать и логировать это никак не получится, такая своеобразная точка нестабильности системы. в целом, выглядет норм для среднесрока и небольших депошек.
avatar
day0markets, ну у меня еще не было такого чтобы хуки не доходили.
avatar
TradingViewScraper kotlin Websockets
github.com/PerfectDreams/TradingViewScraper
avatar

теги блога ANTI_Finsov

....все тэги



UPDONW
Новый дизайн