Comments 17
Я дико удивлен данной статье, лично я не пытался собирать объемные данные об инструментах traidingview но первое что я бы посмотрел это инспектор браузера - вкладка сеть, нашел бы там вот такую строчку и с помощью того же wscat получил бы realtime поток событий на выбранном графике (нужно скопировать подключение как curl и заменить curl wscat -c)
Для получения исторических данных придется покопаться (просто поиском по значению например) да и получение самих заголовков запросов все еще нужен браузер, но мне кажется это удобнее и проще чем вот так скриптами.
Как минимум похожим способом я когда то очень давно получал realtime котировки с биржи, принципиально не поддерживающую официально api для этого, ну и доступ к чатам, что тоже обычно закрыто.
Наверное это уже секрет полишинеля, года 4 назад я сделал "реверс инжиниринг" трейдинг вью и нащупал место где котировки передаются на ТФ меньше чем 1 минута, там это сделано через вебсокеты.
Началось все с того, что мне просто нужны были котировки по максимальному набору тикеров, чтобы не подключать кучу разных апишек.
Повесил в итоге headless браузер, и передавал котировки (LHOC) на свой сервер сразу как только они обновлялись.
Может кому-нибудь тоже пригодится такая возможность.
стесняюсь спросить, как вы получали сразу много котировок? вас traidingview не банил за 100500 одновременно открытых подключений?
"Продакшен" код не нашел, после 2022 года уже стало не актуально, но в закромах тест кейсов, нашел код на котором проверял гипотезы.
LogEntries logEntries = driver.manage().logs().get(LogType.PERFORMANCE);
logEntries.forEach(entry -> {
JSONObject jsonMessage = new JSONObject(entry.getMessage());
String method = jsonMessage.getJSONObject("message").getString("method");
if (method.equalsIgnoreCase("Network.dataReceived")) {
// System.out.println(jsonMessage.toString(2));
} else if (method.equalsIgnoreCase("Network.webSocketFrameReceived")) {
String data = jsonMessage
.getJSONObject("message")
.getJSONObject("params")
.getJSONObject("response")
.getString("payloadData");
// тут парсинг, обработка и отправка в очередь сообщений
// которая отправляет очищенные данные в свой бекенд
}
});
TimeUnit.MILLISECONDS.sleep(750);
} while (!interrupt);
Это где-то почитать можно?
Да, интересный способ - выгрузить данные через консоль броузера.
Если бы можно было еще их ловить и отправлять в другой сервис, или записывать в файл.. Не просто скопировать-вставить, а по мере поступления новых данных. Так можно?
Такие успешные трейдеры, что не могут себе позволить подписку (facepalm)
Подскажите прибыльный крипто алгоритм.
Покупать биткоин, когда все новостные ресурсы и блогеры на перебой кричат, все пропало, курс ниже плинтуса, продавайте (он должен быть ниже последнего максимума), продавать, если наоборот, все кричат что ура ура, покупайте, это актив будущего...
Сделки будут с интервалом в несколько лет, с разницей в цене 2х..5х, доходность где то 50% в год.
Риски выхода в фиат, риски кражи или потерь из-за ошибок, эмоциональная нагрузка, годами без движения средств и никаких гарантий что вечный рост не прекратится.
Об алгоритмах, которые приносят прибыль, никто подробно не рассказывает) Потому что чем больше людей о нем знают и используют – тем меньше результата он приносит. Так что выбор такой:
а) Разработать алгоритм самому под себя. Долго, сложно, но возможно. И мы тут раз про это.
б) Купить готовое решение. Но тут высокий риск, что его продадут не только вам, а много кому еще.
в) Торговать с криптофондом, который использует прибыльные алгоритмы, никому о них не рассказывает и зарабатывает за счет того, что вы зарабатываете на этих алгоритмах.
P.s. то, что подсказали вам ниже – не алгоритм. Больше похоже на крик души альткоин-холдера)
Как сложно, мне проще было использовать готовый сервис (называется на букву V). Пусть он и берет свою комиссию за прибыльные сделки, зато удобно. Хоть не приходится создавать заново велосипед. Функционала для прибыльной торговли хватает и он со временем только расширяется.
Как обойти ограничения TradingView и забирать данные с графика без использования платных функций (через Pine Script)