zenoftrading

Читают

User-icon
103

Записи

53

Как бесплатно качать исторические котировки c tradingview с помощью python

Искал откуда можно скачать исторические котировки. Да так, чтобы все было в одном месте: и рынок РФ, и рынок США, и фьючерсы, и крипта. Да ещё и бесплатно.

Все эти котировки есть в tradingview, но скачать оттуда можно только в платном аккаунте.

Как бесплатно качать исторические котировки c tradingview с помощью python



Кстати, при регистрации дают пробный период на 30 дней на любом тарифе. Во время пробного периода можно купить платный аккаунт со скидкой до 60%.

Как бесплатно качать исторические котировки c tradingview с помощью python

( Читать дальше )

Как скачать исторические котировки c yahoo finance и финама с помощью python

В одной из прошлых заметок мне нужно было скачать исторические котировки по 650 активам. Часть из них на российском рынке, часть крипта и большая часть на рынке США. Всё, что касается крипты, валют и американского рынка качал с yahoo finance. Российский рынок качал с финама. Естественно качал с помощью питона. Дальше расскажу как это можно повторить.

Yahoo finance и python


Пакет yfinance. Гитахб github.com/ranaroussi/yfinance Установка командой: pip install yfinance

Можно качать не только дневные данные. Интервалы из документации: 1m,2m,5m,15m,30m,60m,90m,1h,1d,5d,1wk,1mo,3mo На практике данные меньше дневных сильно ограничены. Например, часовые доступны за 60 последних дней.

Перейдём к делу, как качать котировки:

import yfinance as yf

data = yf.download(«TSLA», start=«2017-01-01», end=«2017-04-30»)

Как добавить интервал:

data = yf.download(«TSLA», start=«2017-01-01», end=«2017-04-30», interval='1h')

Данные скачиваются в датафрейм. Датафрейм можно сохранить в csv:

data.to_csv('tsla.csv')

Для тикеров с московской биржи нужно добавить постфикс .ME. То есть SBER и GAZP превращаются в SBER.ME и GAZP.ME Для валют тикеры выглядят вот так RUBUSD=X Для криптовалют BTC-USD

( Читать дальше )

Итоги мая

В этом месяце выкатил новую версию Дональда. Снова пришлось править руками на продакшене. Плечо так и не прикрутил. За май жалкие 5%.

Где взять список всего, что торгуется на биржах? Желательно с ликвидностью

Американский рынок



Я нашёл несколько вариантов.

1. На сайте комиссии по ценным бумагам США лежит аккуратный файлик www.sec.gov/include/ticker.txt в котором 12495 строчек. Цифра рядом с тикером, как я понял, это Central Index Key. Нужно самому разбираться что есть что. Похоже что файл отсортирован по капитализации или объёму торгов.
2. Есть сток скринер от насдака www.nasdaq.com/market-activity/stocks/screener Там есть NYSE, NASDAQ и AMEX. Можно отфильтровать по маркет кап, рейтингу, сектору, региону и стране.
3. Запросить через апи в alphavantage. Функция www.alphavantage.co/documentation/#listing-status. Вот такой запрос www.alphavantage.co/query?function=LISTING_STATUS&apikey=demo возвращает файлик с акциями и етфами торгуемымы на прошлый торговый день. На сегодня это 11037 штук. Интересно, что можно запросить тикеры компаний, которые уже не торгуются или торговалить на определенную дату. В доках всё есть. До 500 запросов в день апи бесплатный.

Российский рынок



А что на счёт России? Как это ни парадоксально, но такой список можно взять на сайте московской биржи: www.moex.com/a1600

( Читать дальше )

Трейдинг или инвестирование? Большой бектест на 650 активах. Второй подход

Для начала хочу сказать спасибо, всем кто читает мои заметки и, главное, комментирует их! Благодаря комментарию А.Г. нашёл ошибку в расчётах. Пересчитал и заливаю новые данные. Старый пост оставлю, пусть будет мне уроком. Видимо пора тесты начинать писать.

Кардинально ничего не поменялось, купи и держи в среднем работает лучше чем рассмотренная стратегия.

Расчётные данные в предыдущей заметке неправильные. Вместо пяти результатов публикую 10. Исходные данные всё те же.

На всякий случай опишу параметры:
— Return: доходность
— MaxDrawdown: максимальная просадка
— BuyholdRet: доходность стратегии купи и держи
— BuyholdDrawdown: максимальная просадка стратегии купи и держи
— Deals: количество сделок
— AvgTrade: средняя сделка
— ProfitDeals: количество прибыльных сделок, для процентов нужно умножить на 100
— MaxProfit: максимальный доход в одной сделке
— MaxLoss: максимальный убыток в одной сделке
— ProfitFactor: профит фактор
— SharpeRatio: коэффициент шарпа



( Читать дальше )

Трейдинг или инвестирование? Большой бектест на 650 активах

Данные в этой заметке неправильные. Я неправильно считал некоторые параметры. Можно не читать, и сразу прочитать следующую smart-lab.ru/blog/699827.php Я всё пересчитал и залил новые данные.

Этот пост оставлю как напоминание, что нужно проверять как и что считается. Видимо пора начинать писать тесты...


______________
Мне всегда хотелось постетировать торговую стратегию на большом количестве инструментов. Навести научность на всё это бектестирование. Наконец руки дошли написать свой универсальный недотестер.

Раньше я уже писал про стратегию покупки на закрытии и продажи на открытии Её и выбрал для пробного полёта.

Суть страетегии очень проста. Каждый день покупаем на закрытии, продаём на следующем открытии. Нужно было взять что-то простое для теста.

Всего собрал 650 тикеров:
— индекс IMOEX в полном составе
— наиболее ликвидные фьючерсы на мосбирже (нам же нужно, чтобы миллионы торговались без проскальзываний): рубль/доллар, индекс РТС, нефть, золото, сбербанк

( Читать дальше )

Теперь я знаю что такое опционы!

Из книги узнал что такое опционы и как их можно использовать. Автор рассказывает прям на пальцах. Бонусом идёт понимание как хеджировать портфель.

Читать тяжеловато. Сначала читал перед сном. Хватало на 30 минут и дальше сладкий сон как у младенца. Потом стал читать утром. Дело пошло бодрее.

Хорошо бы написать по мотивам торгового робота. Записал в список дел.

Как слать сообщения в телеграм из питона в три строчки

Удобно когда бот шлёт сообщения в телеграм, а не в лог файл. Как это можно сделать в python? Очень просто.

Как слать сообщения в телеграм из питона в три строчки

Шаг 1. Устанавливаем либу loguru. Вам же нужно логирование в боте? Через loguru настраивается парой строчек.
Шаг 2. Устанавливаем либу notifiers которая шлёт сообщения куда угодно тоже парой строчек.
Шаг 3. Настраиваем

# подключаем либы
from loguru import logger
from notifiers.logging import NotificationHandler

# прописываем параметры телеграм бота, от чьего имени и куда слать, где их взять думаю сами разберетесь
params = {
    'token': 'dfdfsfasdfljsahdfkljhasdfklj',
    'chat_id': 'dfkdsflksdjfls;kfjas;ldkf'
}
tg_handler = NotificationHandler("telegram", defaults=params)

# добавляем в logger правило, что все логи уровня info и выше отсылаются в телегу
logger.add(tg_handler, level="INFO")

Я у себя настроил уровень info. Использую его как раз для сообщений в телегу. А вот debug сообщения в телегу уже не приходят. Нечего эфир засорять. Подробнее про уровни логов можно почитать в справке docs.python.org/3/library/logging.html#logging-levels

Шаг 4. Отправляем сообщение
logger.info("Слава роботам! Убить всех человеков!")

Если не нужны логи, можно слать просто через notifiers.

Итоги апреля

Первый раз пишу отчёт по итогам месяца.

Мой первый робот Дональд. Написан на питоне. Сделан по мотивам стратегии Ларри Вильямса. Торгует на https://binance.com криптой. Интервал дневной.

Почему Дональд? Нужно же его как-то назвать. А названия вроде Super Profitable Trading Crypto Bot 5000 меня не привлекают.

Первый раз зупустил Дональда 1 марта 2021. Первый месяц был отладочный, приходилось постоянно мониторить работу и смотреть как оно там всё. Несколько раз приходилось корректировать работу руками, поэтому в расчёт этот месяц я не беру.

Апрель получился полностью автономным. Дональд торговал сам, я только смотрел на графики пару раз и читал сообщения от Дональда в телеграме. В идеале нужно на графики вообще не смотреть. Доходность за месяц 10,8% Всего семь сделок. Максимальная просадка в 5% совпадает с рассчётной.

Сложности


Сам код получился сложный для понимания. Если открыть его через пару недель, то мне уже сложно будет понять что к чему. В апреле я его переписал и планирую запустить в мае новую версию.

Что дальше?


В мае хочу прикрутить плечо. Рассчётная просадка без плеча 5%, поэтому пространсво для манёвра есть.

Хочу запустить клона Дональда ещё на парочке криптобирж, для подстраховки. Заодно можно будет сравнить их работу.

Работаем дальше.

теги блога zenoftrading

....все тэги



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