Pylivetrader完全指南如何用Python构建实时交易算法【免费下载链接】pylivetraderPython live trade execution library with zipline interface.项目地址: https://gitcode.com/gh_mirrors/py/pylivetraderPylivetrader是一个简单的Python实时交易框架提供与Zipline兼容的接口让开发者能够轻松将Quantopian平台上开发的算法通过经纪商API进行实盘交易。本文将为你提供一个完整的Pylivetrader入门指南帮助你快速掌握这个强大工具的使用方法。 为什么选择PylivetraderPylivetrader的核心优势在于其与Zipline接口的高度兼容性这意味着你可以直接迁移在Quantopian上开发的算法而无需进行大量修改。此外Pylivetrader还提供了以下特点无需预先下载数据 bundle 文件支持多种后端经纪商目前主要支持Alpaca提供交互式shell环境便于调试和测试内置状态管理功能确保算法在重启后能够恢复上下文支持Docker容器化部署简化环境配置 快速安装步骤Pylivetrader目前仅支持Python 3.6版本。推荐使用虚拟环境进行安装$ python3.6 -m venv venv $ source venv/bin/activate (venv)$ pip install pylivetrader如果你计划使用pipeline-live功能还需要安装相关依赖(venv)$ pip install pipeline-live如果你需要在重启后保持上下文持久化可以安装Redis支持(venv)$ pip install redis⚙️ 简单示例双移动平均线策略下面是一个使用Pylivetrader实现的双移动平均线策略示例这是量化交易中最基础也最常用的策略之一from pylivetrader.api import order_target, symbol def initialize(context): context.i 0 context.asset symbol(AAPL) def handle_data(context, data): # 计算移动平均线 # data.history()返回一个pandas数据框 short_mavg data.history(context.asset, price, bar_count100, frequency1m).mean() long_mavg data.history(context.asset, price, bar_count300, frequency1m).mean() # 交易逻辑 if short_mavg long_mavg: # order_target会下单到目标持仓数量 order_target(context.asset, 100) elif short_mavg long_mavg: order_target(context.asset, 0)这个简单的策略通过比较短期和长期移动平均线的位置来决定买入或卖出资产。当短期均线向上穿过长期均线时买入当短期均线向下穿过长期均线时卖出。 配置与运行算法要运行你的算法首先需要创建一个配置文件YAML或JSON格式key_id: BROKER_API_KEY secret: BROKER_SECRET base_url: https://paper-api.alpaca.markets feed: iex # 如果有付费账户可以改为pro然后使用以下命令运行算法$ pylivetrader run -f algo.py --backend-config config.yaml如果你使用Redis存储上下文状态$ pylivetrader run -f algo.py --backend-config config.yaml --storage-engine redis环境变量配置除了配置文件你也可以使用环境变量来配置Pylivetrader$ export APCA_API_KEY_ID{your api key id} $ export APCA_API_SECRET_KEY{your api secret key} $ export APCA_API_BASE_URL{https://api.alpaca.markets/ or https://paper-api.alpaca.markets} $ pylivetrader run -f algo.py MACD策略示例详解让我们来看一个更复杂的示例——MACD移动平均收敛散度策略。这个策略在examples/MACD/macd_example.py文件中可以找到from pylivetrader.api import order_target, record, symbol import pandas as pd BUY_AMOUNT 100 def initialize(context): # 设置交易标的 context.asset symbol(AA) def handle_data(context, data): # 计算短期EMA使用过去12分钟的数据 short_periods 12 short_data data.history( context.asset, price, bar_countshort_periods, frequency1m) short_ema pd.Series.ewm(short_data, spanshort_periods).mean().iloc[-1] # 计算长期EMA使用过去26分钟的数据 long_periods 26 long_data data.history( context.asset, price, bar_countlong_periods, frequency1m) long_ema pd.Series.ewm(long_data, spanlong_periods).mean().iloc[-1] # 计算MACD值 macd short_ema - long_ema # 交易逻辑 if macd 0: order_id order_target(context.asset, BUY_AMOUNT) if order_id: log.info(fBought {BUY_AMOUNT} shares of {context.asset.symbol}) elif macd 0: order_id order_target(context.asset, 0) if order_id: log.info(fClosed position for {context.asset.symbol}) # 记录数据供后续分析 record(AAdata.current(context.asset, price), short_mavgshort_ema, long_mavglong_ema)这个策略通过计算12期和26期的指数移动平均线(EMA)的差值来生成交易信号。当MACD值从负变为正时买入当MACD值从正变为负时卖出。 交互式Shell调试Pylivetrader提供了一个交互式IPython shell让你可以在算法的命名空间中进行调试$ pylivetrader shell algo.py在shell中你可以执行各种操作例如获取资产价格数据data.history(symbol(AAPL), close, 10, 1d)检查是否可以交易某资产data.can_trade(symbol(AAPL))获取账户信息context.account获取投资组合信息context.account.portfolio获取所有未完成订单context.get_open_orders() 从Zipline迁移算法Pylivetrader提供了一个便捷的迁移工具可以将Quantopian/Zipline代码转换为Pylivetrader兼容的代码pylivetrader migrate -i zipline_code.py -o pylivetrader_compatible.py关于迁移的更多详细信息请参考migration.md文件。 烟雾测试(Smoke Test)Pylivetrader提供了烟雾测试功能帮助你在实盘交易前发现代码中的问题import algo from pylivetrader.testing.smoke import harness def before_run(context, backend): # 在算法开始前设置初始仓位 backend.set_position(A, 10, 200) # 修改context的一些字段 def test_algo(): pipeline harness.DefaultPipelineHooker() # 在模拟环境中运行算法 harness.run_smoke(algo, before_run_hookbefore_run, pipeline_hookpipeline, ) if __name__ __main__: import logging logging.basicConfig(levellogging.DEBUG) test_algo()烟雾测试使用合成的后端和价格数据来模拟市场环境帮助你测试算法的各种代码路径确保没有明显的错误。 Docker部署Pylivetrader提供了Docker镜像方便你在任何支持Docker的环境中部署docker run -v $PWD:/work -w /work alpacamarkets/pylivetrader pylivetrader run -f algo.py你也可以从源代码构建Docker镜像docker build -t alpaca/pylivetrader-dev -f dockerfiles/Dockerfile-dev . 更多示例和资源Pylivetrader提供了多个示例算法你可以在examples目录中找到它们包括MACD策略使用移动平均收敛散度指标进行交易Pipeline-Live示例每天筛选顶级股票投资组合优化优化现有投资组合 总结Pylivetrader为Python开发者提供了一个强大而灵活的实时交易框架让你能够轻松地将量化策略从研究环境迁移到实盘交易。通过本文的指南你应该已经掌握了Pylivetrader的基本使用方法包括安装配置、编写算法、调试测试和部署运行。无论你是量化交易新手还是有经验的开发者Pylivetrader都能帮助你快速实现自己的交易策略。开始使用Pylivetrader开启你的量化交易之旅吧要开始使用Pylivetrader请克隆仓库git clone https://gitcode.com/gh_mirrors/py/pylivetrader【免费下载链接】pylivetraderPython live trade execution library with zipline interface.项目地址: https://gitcode.com/gh_mirrors/py/pylivetrader创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考