PyBroker —— 为机器学习构建的算法交易框架
PyBroker 是一个 Python 框架旨在开发算法交易策略,重点是使用机器学习的策略。借助 PyBroker,你可以轻松创建和微调交易规则,构建强大的模型,并获得对策略绩效的宝贵见解。
特性:
- 内置NumPy并使用Numba加速的超快速回测引擎。
- 轻松创建和执行跨多种工具的交易规则和模型的能力。
- 从Alpaca和Yahoo Finance或你自己的数据提供商处访问历史数据。
- 使用Walkforward Analysis训练和回测模型的选项,模拟策略在实际交易中的表现。
- 更可靠的交易指标使用随机引导来提供更准确的结果。
- 缓存下载的数据、指标和模型,以加快你的开发过程。
- 并行计算可实现更快的性能。
使用 PyBroker,你将拥有创建由数据和机器学习支持的成功交易策略所需的所有工具。
示例:
基于规则的策略:
from pybroker import Strategy, YFinance, highest
def exec_fn(ctx):
# Require at least 20 days of data.
if ctx.bars < 20:
return
# Get the rolling 10 day high.
high_10d = ctx.indicator('high_10d')
# Buy on a new 10 day high.
if not ctx.long_pos() and high_10d[-1] > high_10d[-2]:
ctx.buy_shares = 100
# Hold the position for 5 days.
ctx.hold_bars = 5
# Set a stop loss of 2%.
ctx.stop_loss_pct = 2
strategy = Strategy(YFinance(), start_date='1/1/2022', end_date='7/1/2022')
strategy.add_execution(
exec_fn, ['AAPL', 'MSFT'], indicators=highest('high_10d', 'close', period=10))
result = strategy.backtest()
基于模型的策略:
import pybroker
from pybroker import Alpaca, Strategy
def train_fn(train_data, test_data, ticker):
# Train the model using indicators stored in train_data.
...
return trained_model
# Register the model and its training function with PyBroker.
my_model = pybroker.model('my_model', train_fn, indicators=[...])
def exec_fn(ctx):
preds = ctx.preds('my_model')
# Open a long position given my_model's latest prediction.
if not ctx.long_pos() and preds[-1] > buy_threshold:
ctx.buy_shares = 100
# Close the long position given my_model's latest prediction.
elif ctx.long_pos() and preds[-1] < sell_threshold:
ctx.sell_all_shares()
alpaca = Alpaca(api_key=..., api_secret=...)
strategy = Strategy(alpaca, start_date='1/1/2022', end_date='7/1/2022')
strategy.add_execution(exec_fn, ['AAPL', 'MSFT'], models=my_model)
# Run Walkforward Analysis on 1 minute data using 5 windows with 50/50 train/test data.
result = strategy.walkforward(timeframe='1m', windows=5, train_size=0.5)

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
每日一博 | Tars-Java 网络编程源码分析
作者:vivo 互联网服务器团队- Jin Kai 本文从Java NIO网络编程的基础知识讲到了Tars框架使用NIO进行网络编程的源码分析。 一、Tars框架基本介绍 Tars是腾讯开源的支持多语言的高性能RPC框架,起源于腾讯内部2008年至今一直使用的统一应用框架TAF(Total Application Framework),目前支持C++、Java、PHP、Nodejs、Go语言。 该框架为用户提供了涉及到开发、运维、以及测试的一整套解决方案,帮助一个产品或者服务快速开发、部署、测试、上线。它集可扩展协议编解码、高性能RPC通信框架、名字路由与发现、发布监控、日志统计、配置管理等于一体,通过它可以快速用微服务的方式构建自己的稳定可靠的分布式应用,并实现完整有效的服务治理。 官方仓库地址: https://github.com/TarsCloud/Tars vivo推送平台也深度使用了该框架,部署服务节点超过一千个,经过线上每日一百多亿消息推送量的考验。 此前已在vivo互联网技术公众号发布过《Tars Java 客户端源码分析》此篇文章为续集。 Tars-java 最新稳定...
-
下一篇
微软确认 Windows 11 存在 CPU 占用异常的问题
微软近日确认了 Windows 11 系统中所存在的一个错误,该问题影响了运行 Windows 11 21H2 和 22H2 版本的设备,换句话说就是所有发布的 Windows 11 操作系统。 该问题是在用户安装了 KB5026372(2023 年 5 月补丁)后产生的,该问题破坏了文件资源管理器的一个特定部分,导致 CPU 使用率高于正常水平。虽然这个补丁已经发布了一个多月,但微软在近日才确认了这个问题。 在安装 2023 年 5 月 9 日发布的更新或之后的更新后,你可能无法在共享文件或文件夹的 "高级安全设置" 对话框中查看 Effective Access。 微软表示,问题出现在用户试图在 "高级安全设置" 对话框中检查共享文件或文件夹的 Effective Access 权限时出现的。受影响的设备会在用户点击 "查看 Effective Access" 按钮后导致 Windows 显示 "计算 Effective Access...... " 的信息但不会显示查询结果。即使用户选择关闭 "高级安全设置" 对话框,文件资源管理器也会继续占用 CPU 资源。该问题主要影响了商业...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker容器配置,解决镜像无法拉取问题
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- 2048小游戏-低调大师作品
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- MySQL数据库在高并发下的优化方案
- Dcoker安装(在线仓库),最新的服务器搭配容器使用
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题