背景
1、使用框架帮助提升回测的准确度
基础概念
量化回测
手续费(Commission):
手续费是交易者在执行交易时需要支付给经纪商的费用。这个费用可能是固定的,也可能是基于交易金额的百分比。
滑点(Slippage):
滑点是指交易实际执行价格与预期执行价格之间的差异。滑点可能是由于市场波动、交易量不足或执行速度慢等原因造成的。
保证金(Margin):
保证金是交易者在进行杠杆交易时需要存入的一部分资金,作为潜在亏损的保证。保证金允许交易者借入资金进行更大额度的交易。
Filler:
在某些交易系统中,Filler 是一个组件,用于模拟订单的执行过程,包括订单如何被填充(即成交)。
Writer:
Writer 在交易系统中可能指的是将交易数据写入文件或数据库的组件,用于记录交易历史和策略表现。
Broker:
Broker 是提供交易平台和执行交易服务的个人或公司。Broker 可以是传统的金融经纪商,也可以是提供算法交易接口的电子经纪商。
策略结果分析和评价:
这是指对交易策略的表现进行定量和定性的评估,以确定其有效性和潜在的改进空间。
Observer与Analyzer:
在量化交易框架如 Backtrader 中,Observer 和 Analyzer 是用于监控和分析策略表现的工具。Observer 可以在策略运行时实时监控数据,而 Analyzer 提供了多种分析方法来评估策略的历史表现。
Pyfolio Analyzer:
Pyfolio 是一个用于分析和可视化金融策略表现的 Python 库。它提供了一套丰富的工具,可以帮助交易者评估策略的表现,并与基准进行比较。
策略结果分析和评价
Observer与Analyzer
Pyfolio Analyzer
什么叫做portfolio基本的回测
有多个资产通常调仓时间固定目标是使得特定资产达到特定权重
使用场景:多因子组合的回测、FOF的回测,大类资产配置.
代码
下面代码创建一个基本的回测策略,并对上证指数的历史数据进行回测。
1、数据获取
import backtrader as bt
import akshare as ak
import pandas as pd
# 获取上证指数的历史数据,这里使用前复权数据
stock_zh_a_hist_df = ak.stock_zh_a_hist(symbol='000001.SH',
start_date='20200101',
end_date='20240829',
adjust='qfq')
# 将数据转换为适合Backtrader的格式
data = pd.DataFrame(