backtrader package¶
Backtrader - Python Trading Framework.
A feature-rich Python framework for backtesting and trading with support for multiple data feeds, brokers, and analysis tools.
This module serves as the main entry point for the backtrader package, exposing all public APIs through a unified namespace.
示例
Basic usage:
import backtrader as bt
cerebro = bt.Cerebro()
data = bt.feeds.GenericCSVData(dataname='data.csv')
cerebro.adddata(data)
cerebro.addstrategy(MyStrategy)
results = cerebro.run()
cerebro.plot()
- Core Components:
Cerebro: Main engine that orchestrates backtesting
Strategy: Base class for trading strategies
Indicator: Base class for technical indicators
Analyzer: Base class for performance analyzers
Broker: Simulated broker for order execution
Feed: Data feed classes for market data input
- Subpackages:
analyzers: Performance analysis tools (Sharpe, Drawdown, etc.)
brokers: Broker implementations (IB, OANDA, etc.)
feeds: Data feed implementations (CSV, Pandas, Yahoo, etc.)
indicators: Technical indicators (SMA, RSI, MACD, etc.)
observers: Chart observers for visualization
sizers: Position sizing algorithms
stores: Data store implementations
filters: Data filtering utilities
参见
Documentation: https://www.backtrader.com/docu/
Subpackages¶
Submodules¶
- backtrader.cerebro module
OptReturnCerebroCerebro.preloadCerebro.runonceCerebro.maxcpusCerebro.stdstatsCerebro.oldbuysellCerebro.oldtradesCerebro.lookaheadCerebro.exactbarsCerebro.optdatasCerebro.optreturnCerebro.objcacheCerebro.liveCerebro.writerCerebro.tradehistoryCerebro.oldsyncCerebro.tzCerebro.cheat_on_openCerebro.broker_cooCerebro.quicknotifyCerebro.__init__()Cerebro.iterize()Cerebro.set_fund_history()Cerebro.add_order_history()Cerebro.notify_timer()Cerebro.add_timer()Cerebro.addtz()Cerebro.addcalendar()Cerebro.add_signal()Cerebro.signal_strategy()Cerebro.signal_concurrent()Cerebro.signal_accumulate()Cerebro.addstore()Cerebro.addwriter()Cerebro.addsizer()Cerebro.addsizer_byidx()Cerebro.addindicator()Cerebro.addanalyzer()Cerebro.addobserver()Cerebro.addobservermulti()Cerebro.addstorecb()Cerebro.notify_store()Cerebro.adddatacb()Cerebro.notify_data()Cerebro.dispatch_channel_event()Cerebro.adddata()Cerebro.chaindata()Cerebro.rolloverdata()Cerebro.replaydata()Cerebro.resampledata()Cerebro.optcallback()Cerebro.optstrategy()Cerebro.addstrategy()Cerebro.setbroker()Cerebro.getbroker()Cerebro.brokerCerebro.plot()Cerebro.__call__()Cerebro.__getstate__()Cerebro.runstop()Cerebro.run()Cerebro.runstrategies()Cerebro.stop_writers()Cerebro.add_report_analyzers()Cerebro.generate_report()
- backtrader.comminfo module
CommInfoBaseCommInfoBase.COMM_PERCCommInfoBase.COMM_FIXEDCommInfoBase.commissionCommInfoBase.multCommInfoBase.marginCommInfoBase.commtypeCommInfoBase.stocklikeCommInfoBase.percabsCommInfoBase.interestCommInfoBase.interest_longCommInfoBase.leverageCommInfoBase.automarginCommInfoBase.__init__()CommInfoBase.get_margin()CommInfoBase.get_leverage()CommInfoBase.getsize()CommInfoBase.getoperationcost()CommInfoBase.getvaluesize()CommInfoBase.getvalue()CommInfoBase.getcommission()CommInfoBase.confirmexec()CommInfoBase.profitandloss()CommInfoBase.cashadjust()CommInfoBase.get_credit_interest()
CommissionInfoComminfoDCComminfoFuturesPercentComminfoFuturesFixedComminfoFundingRate
- backtrader.dataseries module
TimeFrameDataSeriesDataSeries._nameDataSeries._compressionDataSeries._timeframeDataSeries.plotinfoDataSeries.nameDataSeries.CloseDataSeries.LowDataSeries.HighDataSeries.OpenDataSeries.VolumeDataSeries.OpenInterestDataSeries.DateTimeDataSeries.LineOrderDataSeries.getwriterheaders()DataSeries.getwritervalues()DataSeries.getwriterinfo()DataSeries.get_name()DataSeries.frompackagesDataSeries.packages
OHLCOHLCDateTimeSimpleFilterWrapper
- backtrader.errors module
- backtrader.fillers module
- backtrader.flt module
- backtrader.functions module
- backtrader.linebuffer module
LineBufferLineBuffer.UnBoundedLineBuffer.QBufferLineBuffer.__init__()LineBuffer.get_idx()LineBuffer.set_idx()LineBuffer.idxLineBuffer.reset()LineBuffer.qbuffer()LineBuffer.getindicators()LineBuffer.minbuffer()LineBuffer.__len__()LineBuffer.buflen()LineBuffer.__getitem__()LineBuffer.get()LineBuffer.getzeroval()LineBuffer.getzero()LineBuffer.__setitem__()LineBuffer.set()LineBuffer.home()LineBuffer.forward()LineBuffer.backwards()LineBuffer.safe_backwards()LineBuffer.rewind()LineBuffer.advance()LineBuffer.extend()LineBuffer.addbinding()LineBuffer.plot()LineBuffer.plotrange()LineBuffer.oncebinding()LineBuffer.bind2lines()LineBuffer.bind2line()LineBuffer.__call__()LineBuffer.datetime()LineBuffer.date()LineBuffer.time()LineBuffer.dt()LineBuffer.tm_raw()LineBuffer.tm()LineBuffer.tm_lt()LineBuffer.tm_le()LineBuffer.tm_eq()LineBuffer.tm_gt()LineBuffer.tm_ge()LineBuffer.tm2dtime()LineBuffer.tm2datetime()
LineActionsCacheLineActionsMixinPseudoArrayLineActionsLineDelay()LineNum()LinesOperationLineOwnOperation
- backtrader.lineiterator module
LineIteratorMixinLineIteratorLineIterator._nextforceLineIterator._mindatasLineIterator._ltypeLineIterator.plotinfoLineIterator.plotlinesLineIterator.PlotInfoObjLineIterator.plotinfoLineIterator.PlotLinesObjLineIterator.plotlinesLineIterator.IndTypeLineIterator.StratTypeLineIterator.ObsTypeLineIterator.__new__()LineIterator.__init__()LineIterator.stop()LineIterator.getindicators()LineIterator.getobservers()LineIterator.addindicator()LineIterator.bindlines()LineIterator.bind2lines()LineIterator.bind2line()LineIterator.preonce()LineIterator.oncestart()LineIterator.once()LineIterator.prenext()LineIterator.nextstart()LineIterator.qbuffer()LineIterator.__len__()LineIterator.advance()LineIterator.size()LineIterator.frompackagesLineIterator.packages
DataAccessorDataAccessor.PriceCloseDataAccessor.PriceLowDataAccessor.PriceHighDataAccessor.PriceOpenDataAccessor.PriceVolumeDataAccessor.PriceOpenInteresDataAccessor.PriceDateTimeDataAccessor.PriceCloseDataAccessor.PriceLowDataAccessor.PriceHighDataAccessor.PriceOpenDataAccessor.PriceVolumeDataAccessor.PriceOpenInteresDataAccessor.PriceDateTimeDataAccessor.frompackagesDataAccessor.packages
IndicatorBaseObserverBaseStrategyBaseSingleCouplerMultiCouplerLinesCoupler()LineCoupler()
- backtrader.lineroot module
LineRootMixinLineRootLineRoot.IndTypeLineRoot.StratTypeLineRoot.ObsTypeLineRoot.qbuffer()LineRoot.minbuffer()LineRoot.setminperiod()LineRoot.updateminperiod()LineRoot.addminperiod()LineRoot.incminperiod()LineRoot.prenext()LineRoot.nextstart()LineRoot.next()LineRoot.preonce()LineRoot.oncestart()LineRoot.once()LineRoot.size()
LineMultipleLineSingle
- backtrader.lineseries module
MinimalDataMinimalOwnerMinimalClockLineAliasLinesManagerLinesLines.getlinealiases()Lines.itersize()Lines.__init__()Lines.__iter__()Lines.__len__()Lines.size()Lines.fullsize()Lines.extrasize()Lines.__getitem__()Lines.get()Lines.__setitem__()Lines.forward()Lines.backwards()Lines.rewind()Lines.extend()Lines.reset()Lines.home()Lines.advance()Lines.buflen()Lines.__getattr__()Lines.__setattr__()
LineSeriesMixinLineSeriesLineSeries.linesLineSeries.plotinfoLineSeries.__new__()LineSeries.PlotInfoObjLineSeries.plotinfoLineSeries.PlotLinesObjLineSeries.plotlinesLineSeries.csvLineSeries.arrayLineSeries.lineLineSeries.lLineSeries.__getattr__()LineSeries.__setattr__()LineSeries.__len__()LineSeries.__getitem__()LineSeries.__setitem__()LineSeries.__init__()LineSeries.plotlabel()LineSeries.__call__()LineSeries.forward()LineSeries.backwards()LineSeries.rewind()LineSeries.extend()LineSeries.reset()LineSeries.home()LineSeries.advance()LineSeries.size()LineSeries.chkminLineSeries.frompackagesLineSeries.packages
LineSeriesStubLineSeriesStub.extralinesLineSeriesStub.__init__()LineSeriesStub.forward()LineSeriesStub.backwards()LineSeriesStub.rewind()LineSeriesStub.extend()LineSeriesStub.reset()LineSeriesStub.home()LineSeriesStub.advance()LineSeriesStub.qbuffer()LineSeriesStub.minbuffer()LineSeriesStub.frompackagesLineSeriesStub.packages
LineSeriesMaker()
- backtrader.mathsupport module
- backtrader.metabase module
- backtrader.order module
OrderExecutionBitOrderDataOrderParamsOrderBaseOrderBase.refOrderBase.brokerOrderBase.pOrderBase.DAYOrderBase.T_CloseOrderBase.T_DayOrderBase.T_DateOrderBase.T_NoneOrderBase.V_NoneOrderBase.MarketOrderBase.CloseOrderBase.LimitOrderBase.StopOrderBase.StopLimitOrderBase.StopTrailOrderBase.StopTrailLimitOrderBase.HistoricalOrderBase.ExecTypesOrderBase.OrdTypesOrderBase.BuyOrderBase.SellOrderBase.CreatedOrderBase.SubmittedOrderBase.AcceptedOrderBase.PartialOrderBase.CompletedOrderBase.CanceledOrderBase.ExpiredOrderBase.MarginOrderBase.RejectedOrderBase.CancelledOrderBase.StatusOrderBase.refbasisOrderBase.__init__()OrderBase.plimitOrderBase.clone()OrderBase.getstatusname()OrderBase.getordername()OrderBase.ExecType()OrderBase.ordtypename()OrderBase.active()OrderBase.activate()OrderBase.alive()OrderBase.addcomminfo()OrderBase.addinfo()OrderBase.isbuy()OrderBase.issell()OrderBase.setposition()OrderBase.submit()OrderBase.accept()OrderBase.brokerstatus()OrderBase.reject()OrderBase.cancel()OrderBase.margin()OrderBase.completed()OrderBase.partial()OrderBase.execute()OrderBase.expire()OrderBase.trailadjust()
OrderBuyOrderStopBuyOrderStopLimitBuyOrderSellOrderStopSellOrderStopLimitSellOrder
- backtrader.parameters module
ParameterDescriptorParameterManagerParameterManager.__init__()ParameterManager.get()ParameterManager.set()ParameterManager.reset()ParameterManager.update()ParameterManager.to_dict()ParameterManager.keys()ParameterManager.items()ParameterManager.values()ParameterManager.copy()ParameterManager.inherit_from()ParameterManager.get_inheritance_info()ParameterManager.lock_parameter()ParameterManager.unlock_parameter()ParameterManager.is_locked()ParameterManager.get_locked_parameters()ParameterManager.create_group()ParameterManager.get_group()ParameterManager.get_parameter_group()ParameterManager.set_group()ParameterManager.get_group_values()ParameterManager.set_lazy_default()ParameterManager.clear_lazy_default()ParameterManager.add_change_callback()ParameterManager.remove_change_callback()ParameterManager.get_change_history()ParameterManager.clear_history()ParameterManager.add_dependency()ParameterManager.remove_dependency()ParameterManager.get_dependencies()ParameterManager.get_dependents()ParameterManager.begin_transaction()ParameterManager.commit_transaction()ParameterManager.rollback_transaction()ParameterManager.is_in_transaction()
ParameterAccessorParameterizedBaseParameterizedBase.__init_subclass__()ParameterizedBase.__init__()ParameterizedBase.get_param()ParameterizedBase.set_param()ParameterizedBase.get_param_info()ParameterizedBase.validate_params()ParameterizedBase.reset_param()ParameterizedBase.reset_all_params()ParameterizedBase.get_modified_params()ParameterizedBase.copy_params_from()ParameterizedBase.__repr__()
Int()Float()FloatParam()BoolParam()StringParam()String()Bool()OneOf()create_param_descriptor()derive_params()ParamsBridgeParameterValidationErrorParameterAccessErrorvalidate_parameter_compatibility()
- backtrader.position module
- backtrader.signal module
- backtrader.strategy module
StrategyStrategy.envStrategy.cerebroStrategy.brokerStrategy.datasStrategy.dataStrategy.positionStrategy.statsStrategy.analyzersStrategy.__new__()Strategy.__init__()Strategy.csvStrategy.log()Strategy.qbuffer()Strategy.prenext_open()Strategy.nextstart_open()Strategy.next_open()Strategy.start()Strategy.getwriterheaders()Strategy.getwritervalues()Strategy.getwriterinfo()Strategy.stop()Strategy.set_tradehistory()Strategy.clear()Strategy.add_timer()Strategy.notify_timer()Strategy.notify_cashvalue()Strategy.notify_fund()Strategy.notify_order()Strategy.notify_trade()Strategy.notify_store()Strategy.notify_data()Strategy.notify_tick()Strategy.notify_orderbook()Strategy.notify_funding()Strategy.notify_bar()Strategy.get_last_tick()Strategy.get_last_orderbook()Strategy.get_last_funding()Strategy.getdatanames()Strategy.getdatabyname()Strategy.cancel()Strategy.buy()Strategy.sell()Strategy.close()Strategy.buy_bracket()Strategy.sell_bracket()Strategy.order_target_size()Strategy.order_target_value()Strategy.order_target_percent()Strategy.getposition()Strategy.positionStrategy.getpositionbyname()Strategy.positionbynameStrategy.getpositions()Strategy.positionsStrategy.getpositionsbyname()Strategy.positionsbynameStrategy.setsizer()Strategy.getsizer()Strategy.sizerStrategy.getsizing()Strategy.frompackagesStrategy.packages
SignalStrategyBtApiStrategy
- backtrader.talib module
- backtrader.test_helpers module
- backtrader.timer module
- backtrader.trade module
- backtrader.tradingcal module
TradingCalendarBaseTradingCalendarBase._nextday()TradingCalendarBase.schedule()TradingCalendarBase.nextday()TradingCalendarBase.last_weekday()TradingCalendarBase.last_monthday()TradingCalendarBase.schedule()TradingCalendarBase.nextday()TradingCalendarBase.nextday_week()TradingCalendarBase.last_weekday()TradingCalendarBase.last_monthday()TradingCalendarBase.last_yearday()
TradingCalendarPandasMarketCalendar
- backtrader.version module
- backtrader.writer module