# 准备股票池
stock = Stock(code="HK.01157", lot_size=200, stock_name="中联重科")
stock_list = [stock]
# BacktestGateway代表了一个市场仿真器
market = BacktestGateway(
securities=stock_list,
start=datetime(2021, 1, 25, 9, 30, 0, 0),
end=datetime(2021, 2, 1, 12, 0, 0, 0),
)
# 头寸管理
position = Position()
# 账户余额管理
account_balance = AccountBalance()
# 投资组合管理
portfolio = Portfolio(account_balance=account_balance,
position=position,
market=market)
# 执行引擎
engine = Engine(portfolio)
# 初始化策略
strategy = DemoStrategy(securities=stock_list, engine=engine)
strategy.init_strategy()
# 初始化回测框架并开始回测
recorder = BarEventEngineRecorder()
event_engine = BarEventEngine(strategy, recorder, trade_mode=TradeMode.BACKTEST)
event_engine.run()
# 画盈利曲线
plot_pnl(backtest.recorder.datetime, backtest.recorder.portfolio_value)