文章目录
本文以PyBroker官方文档的示例,一步步完成一个简单的股票组合回测程序。
- 股票组合: 苹果、微软、特斯拉
- 回测时间为:2024年一整年
- 交易策略为:
-
- 做多策略:如果某天的收盘价小于前一天的最低价,就买1/4仓位,持有3天卖出。苹果和微软运用此策略
-
- 做空策略:如果某天的收盘价大于前一天的最高价,就买空100股,持有2天卖出。特斯拉运用此策略
-
1.安装lib-pybroker包
> pip install -U lib-pybroker
2.导入必要包,并使用数据源缓存
这个回测程序使用雅虎财经作为数据源。使用数据源缓存来确保在运行回测时只下载一次所需的数据。
注: 如要获取A股市场数据可以导入from pybroker.ext.data import AKShare 用 AKShare() 获取数据
import pybroker
from pybroker import Strategy, StrategyConfig, YFinance, ExecContext
pybroker.enable_data_source_cache('my_strategy')
3.创建StrategyConfig对象
我们将初始现金设置为 10,000,,这个对象之后用来配置Strategy对象。
config = StrategyConfig(initial_cash=10000)
4.创建Strategy对象
通过传递以下参数来创建 Strategy 类的新对象: 数据源、开始日期、结束日期和配置对象。
strategy = Strategy(YFinance(), '1/1/2024', '12/31/2024', config)
5.定义交易规则1
- buy_low 函数将接收一个包含当前股票代码数据的 ExecContext (ctx)。ExecContext 将包含当前股票代码最近 K 线之前的所有收盘价。通过 ctx.close[-1] 获取最新的收盘价。
- buy_low 函数将使用 ExecContext 来下达买单。购买的股份数量通过 ctx.buy_shares设置,它是通过 ctx.calc_target_shares