Albus
Albus личный блог
28 апреля 2019, 19:12

Backtrader - первые шаги

Продолжаю учить язык программирования Питон.
Начал разбираться с фреймворком backtrader.
https://www.backtrader.com/
Он позволяет качать котировки с YahooFinance и анализировать их. Можно гонять разные стратегии, считать сколько заработал или потерял. По себе знаю, что самое трудное — сделать первые шаги. Потом всё идёт гораздо легче. Так вот, описываю первые шаги, чтобы получить вот такую картинку. Это код из базового примера с их заглавной страницы, я сам ничего не писал. 
Backtrader - первые шаги
Это стратегия по пересечению скользяшек. На графике видно, что все сделки убыточные (вверху красные кружочки). При удачных сделках они были бы синие. Но дело не в убыточности отдельной стратегии, а в том, чтобы освоить фреймворк.
1. Качаем питон и устанавливаем https://www.python.org/
2. Запускаем чёрное окошко — cmd.exe
3. В командной строке пишем:
pip install backtrader
это установит фреймворк, а потом
pip install requests
без этого не заработает данный пример. Ему нужна эта библиотека, чтобы качать котировки с YahooFinance
4. По идее вся подготовительная работа сделана. Осталось только запустить среду разработки. Она уже есть в установленном вами питоне (IDLE):
Backtrader - первые шаги
С виду это обычный блокнот. В него кидаем этот код и сохраняем с любым именем. Но расширение строго определено:  .py
Backtrader - первые шаги
Сам код:

from datetime import datetime
import backtrader as bt

class SmaCross(bt.SignalStrategy):
	params = (('pfast', 10), ('pslow', 30),)
	def __init__(self):
		sma1, sma2 = bt.ind.SMA(period=self.p.pfast), bt.ind.SMA(period=self.p.pslow)
		self.signal_add(bt.SIGNAL_LONG, bt.ind.CrossOver(sma1, sma2))
cerebro = bt.Cerebro()
data = bt.feeds.YahooFinanceData(dataname='MSFT', fromdate=datetime(2011, 1, 1),todate=datetime(2012, 12, 31))
cerebro.adddata(data)
cerebro.addstrategy(SmaCross)
cerebro.run()
cerebro.plot()
Текст кода интуитивно понятен. Речь идёт про пересечение двух скользяшек с периодом 10 и 30. Анализируются акции Microsoft за 2011 и 2012 годы. Рассматриваются только сигналы на покупку. Покупка происходит при пересечении двух мувингов. Не надо быть программистом, чтобы понять это из данного кода.
Вверху нажимаете Run Module
Backtrader - первые шаги
и получаете картинку как у меня:
Backtrader - первые шаги
Стратегия убыточна. Что и требовалось доказать :)
--
Мой канал на YouTube
34 Комментария
  • Сергей Сергаев
    28 апреля 2019, 20:11

    Что за кривой код который пропустил сигналы на вход и выход отмеченные красными стрелками?
  • Михаил
    28 апреля 2019, 20:31
    Поставьте PyCharm
  • Сергей Сергаев
    28 апреля 2019, 20:32
    Albus (Игорь Китаев), первая стрелка это открытие лонга на пересечении, вторая — закрытие лонга на обратном пересечении. Нет никаких шортов 
    Если этот сигнал не пропускать то результат теста изменится очень существенно.
  • KNK
    28 апреля 2019, 21:34
    A Jupiter не пробовали? Мне так кажется он поудобней Note++.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн