Всем добрый день!
Я уже в своё время писал о том, что на 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}} — количество открытых лотов стратегии на текущий момент.
В целом схема выглядит следующим образом:
Почему не делать всё то же самое в терминале?
Если он этого не позволяет — подумать о замене.
Эх, мне бы ваши навыки… Знал бы куда применить.
Очень интересно, продолжайте пожалуйста!
П.С. К сожалению, лайкнуть не смогу, не хватает рейтинга
а так схема, конечно, костыльная немного. например, если вебхук не дошел, то что? будут кидать его снова или просто проигнорят? контролировать и логировать это никак не получится, такая своеобразная точка нестабильности системы. в целом, выглядет норм для среднесрока и небольших депошек.
github.com/PerfectDreams/TradingViewScraper