Постов с тегом "Python": 230

Python


Пересечение скользящих средних + трейлинг стоп

В прошлых сериях:
— Простое пересечение скользящих стредних на 49 тикерах (https://smart-lab.ru/blog/730110.php)
— Пересечение + стоп в процентах от входа (https://smart-lab.ru/blog/730616.php). Стало только хуже.
— Пересечение + стоп на основе ATR (https://smart-lab.ru/blog/731254.php) Тоже стало хуже.

Тут та же стратегия + трейлинг стоп в процентах. Трейлинг стоп работает очень просто: если цена движется вверх, то стоп подтягивается на величину заданного процента. Если цена движется вниз, то стоп стоит на месте. Напомню, моя цель понять как точка выхода влияет на доходность стратегии. Все остальные условия неизменные. В идеале нужно увеличить доходность, при этом уменьшив просадку.

Рассмотрел четыре варианта трейлинг стопа: 1, 3, 5 и 10%.
Пересечение скользящих средних + трейлинг стоп

Топ 10 по доходности изначальной стратегии со всем вариантами трейлинг стопа

ret, max_dd — доходность и просадка простого пересечения скользящих средних
tps1...10_ret, tps1...10_max_dd — доходность и просадка разных процентов трейлин стопа

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

Софт для просмотра структуры портфеля акций

Сим творением пользуюсь сам постоянно. Буду рад, если кому-то ещё пригодится.

Характеристики

  1. Написан на Python 3, в качестве графической библиотеки используется Tkinter
  2. Цену берёт из API Мосбиржи. Цена — это цена закрытия
  3. Имеется возможность посмотреть цену и структуру портфеля на любую дату в прошлом
  4. Есть возможность импортировать структуру портфеля со Смартлаба
  5. Редактирование портфеля производится с помощь любого текстового редактора

Скриншот окна программы:
Софт для просмотра структуры портфеля акций

Попробовать можно так:
git clone https://github.com/eenden/my_case_tk.git
cd my_case_tk
python view.py
Рекомендуется создать виртуальное окружение с помощью virtualenv и использовать его. Зависимости, как обычно, в файле requirements.txt

Шаблон торговой системы на Python (backtrader, quantstats)

    • 22 сентября 2021, 21:54
    • |
    • Diamond
  • Еще
Сначала я пытался бэктестить системы в TradingView и этого было достаточно для быстрой оценки торговых гипотез, но оказалось, что мало просто знать, где купить и где продать. Не менее важно понимать, сколько купить или продать и для этого нужны другие инструменты.

Зачем Python?

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

Самая простая система, которую можно потестить это пересечение двух скользящих средних: если быстрая SMA пересекает медленную вверх, то покупаем, а если вниз, то закрываем открытую позицию, шортить рынок не будем. Комиссии, проскальзывание и прочие расходы пока не учитываем, нужно начать с какой-то основы.

Что потребуется?

— backtrader для логики торговой системы

— quantstats для формирования отчёта

— Jupyter Notebook, если нужно удобнее редактировать код

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

Как просто изучить программирование

1) Неск недель (может месяцев) разобраться с базовыми конструкциями языка и базовыми структурами данных, связанный список, граф. Любой учебник, не больше 100 страниц, лучше если в нем есть картинки. Может быть скучновато, но это недолгий этап. Проверкой что вы эго закончили будет упражнение построить и сравнить два графа (см картинку), одинаковые они или нет, это полстраницы кода.

Как просто изучить программирование

2) Дальше, выполнить 1-4 интересных визуальных задачи. Визуальных ключевой момент поскольку у людей визуальная система ведущая и если ее задействовать то все будет получаться легче, проще и лучше. 

Например скачать текст Войны Миров, сделать гистограмму частоты слов, и нарисовать ее в красивом виде как на картинке ниже (в зависимости от уровня может уйти от неск дней до неск недель). В процессе выполнения вы обнаружите пробелы в своих знаниях и заполните их. После того как вы это сделаете вы будете знать 70% того что требуется знать в типовых задачах программирования.

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

Как из Python подключиться к API Московской Биржи и выудить оттуда данные?

    • 22 сентября 2021, 08:52
    • |
    • Oksana
  • Еще
Товарищи, объясните пожалуйста, как можно из Python подключиться через API к Московской Бирже и выудить оттуда нужную информацию по ISIN коду?
И ещё, куда можно их загрузить?(в какую-то таблицу или массив) Вроде mySQL бесплатная?
Огромная просьба, если можно, напишите здесь, а не ссылкой «вот, почитай там». По ссылкам, я там обычно всё равно ничего не понимаю((
Спасибо)

Нужно больше данных или как качать данные с яху финанс, финама и бинанса в одном месте

Нужно больше данных или как качать данные с яху финанс, финама и бинанса в одном месте



Короче, меня поглотило программирование. Данных нужно всё больше и одним бинансом не обойтись. Зафигачил единый интерфейс для яху финанс, финама и бинанса. Надеюсь внутренний программист меня отпустит и дальше напишу что-нибудь про тестирование стратегий.

В телеграме есть ссылка на гитхаб и примеры кода bit.ly/zenoftrading

Можно ли отбирать тикеры для конкретной стратегии на основе результатов данной стратегии на данном тикере в прошлом?

Можно. Только осторожно).

Конец статьи.

 

Ну ладно, не конец.

 

Обозначу контекст, чтоб сразу удобно было выключить, если чувствуешь, что не подходит: алго, бэктест стратегии сразу на большом кол-ве инструментов – т.е. скорее всего речь про акции чаще всего, а в данном посте – именно про акции.

 

Я называю это инерцией тикеров, другие это, может, никак не называют. Идея в чем: если стратегия норм, то она будет перформить на всем датасете нормально. Но конечно же для одних инструментов стратегия будет подходить больше, для других меньше. Для меня абсолютно норм тема торговать стратегию на всем дата-сете сплошняком. Но можно ли это улучшить. Можно ли тупо взять успешные в этой стратегии акции в прошлом и только их торговать. Тут, если прислушаться, можно услышать со всех сторон встревоженный шёпот: переподгонка… переподгонка… А посмотрим-ка. Как оказалось, зависит от стратегии. Где-то можно, где-то нельзя.

Для оценки я сделал следующее:



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

Скачиватель исторических данных с бинанса

Скачиватель исторических данных с бинанса


Для тестов мне нужно скачивать много исторических котировок с бинанса. Сделал для себя небольшую обертку на питоне. На выходе получается красивый датафрейм с удобочитаемой датой и столбцами open, high, low, close, volume и csv файл в придачу. Датафрейм или файл можно подавать на вход тестировщика.

Сегодня, например, без особых проблем скачал 1,9 млн строчек минутных котировок.

Исходники залил на гитхаб. Ссылку можно взять у меня в телеграме: bit.ly/zenoftrading
  • обсудить на форуме:
  • Binance

сравнение yahooparser и yfinance для получения текущей цены в python

 


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

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

Я заморочился вопросом о том как мне получить цену текущего момента по ЦБ и использовать её в python скрипте. 
Мой первый способ я описал ТУТ   с этого всё и поехало. 

В комментах к предыдущему посту мне предложили, а не проще ли было использовать github.com/ranaroussi/yfinance ? 

Признаюсь, что о ней я не знал, или знал что она есть, но просто до неё я еще не дошел и решил попробовать самостоятельно изучить вопрос как работает процесс получения данных и его разновидности. 

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

....все тэги
UPDONW
Новый дизайн