ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

TensorTrade 随机过程包(tensortrade.stochastic.processes)源码级实战指南

TensorTrade 随机过程包(tensortrade.stochastic.processes)源码级实战指南 人工智能金融科技机器学习【免费下载链接】tensortradeAn open source reinforcement learning framework for training, evaluating, and deploying robust trading agents.项目地址https://gitcode.com/gh_mirrors/te/tensortrade点击查看免费下载导读tensortrade.stochastic.processes是 TensorTrade 强化学习交易框架内置的合成行情数据引擎负责基于布朗运动Wiener Process及其衍生模型批量生成可用于回测与训练的 OHLCV K 线数据。本文以该包的完整模块结构为主线深入解读几何布朗运动GBM、分数布朗运动FBM、Heston 随机波动率模型、Cox-Ingersoll-RossCIR、Merton 跳跃扩散模型与 Ornstein-Uhlenbeck 均值回归过程共七类随机过程的数学模型、源码实现与统一调用方式并结合ModelParameters参数体系与真实配置文件给出可直接运行的代码示例。读完本文你将掌握如何用一行 API 调用生成任意时间框架的合成价格序列并理解其底层实现原理。包结构总览根据 tensortrade.stochastic.processes 的 API 文档索引该包由以下 7 个子模块组成模块随机过程模型特点brownian_motion.py布朗运动Wiener Process所有模型的随机性基座gbm.py几何布朗运动GBM资产价格的基本随机游走模型fbm.py分数布朗运动FBM引入 Hurst 参数支持趋势/均值回归heston.pyHeston 随机波动率模型波动率本身服从均值回归过程cox.pyCox-Ingersoll-RossCIR利率建模波动率水平依赖merton.pyMerton 跳跃扩散模型GBM 泊松跳跃ornstein_uhlenbeck.pyOrnstein-UhlenbeckOU均值回归过程从 tensortrade/stochastic/init.py 可以确认包的对外 API 通过import tensortrade.stochastic as sp直接暴露cox、fbm、gbm、heston、merton、ornstein六个顶级函数。注意brownian_motion模块不导出顶级函数而是作为其余模块的底层依赖存在——例如 gbm.py 直接from tensortrade.stochastic.processes.brownian_motion import brownian_motion_log_returns。此外包顶层的导入带有一个条件判断仅在环境中存在stochastic第三方库时才注册上述过程tensortrade/stochastic/init.py而 requirements.txt 中明确要求stochastic0.6.0。统一调用接口一行生成 OHLCV 数据所有六个顶级函数共享同一套签名与默认值这是整个包最实用的设计。以 gbm.py 中的gbm()为例def gbm(base_price: int 1, base_volume: int 1, start_date: str 2010-01-01, start_date_format: str %Y-%m-%d, times_to_generate: int 1000, time_frame: str 1h, params: ModelParameters None) - pd.DataFrame:参数含义如下base_price生成价格的基准值初始价格水平默认 1base_volume生成成交量的基准值默认 1start_date数据起始日期默认2010-01-01start_date_format起始日期的解析格式默认%Y-%m-%dtimes_to_generate要生成的 K 线根数默认 1000time_frame时间框架支持1min、1H、1D、1W、1M等写法源码中统一按分钟缩放paramsModelParameters实例不传时自动使用default()构造的参数集。函数返回一个标准的pd.DataFrame列包含open、high、low、close与volume可直接用于 TensorTrade 的Stream/DataFeed或常规回测。唯一的例外是 fbm.py它用hurst参数取代了params。ModelParameters全模型统一参数体系参数表源自 parameters.py参数说明默认值all_s0初始资产价格必填all_time模拟的时间长度生成点数必填all_delta时间步长如1/252表示日频、1/12表示月频必填all_sigma随机过程的波动率必填gbm_muGBM 的年化漂移因子必填jumps_lambda每个时间点发生跳跃的概率0.0jumps_sigma跳跃大小的波动率0.0jumps_mu平均跳跃大小0.0cir_aCIR 的均值回归速率0.0cir_muCIR 的长期平均利率0.0all_r0起始利率值0.0cir_rhoHeston 模型中两个 Wiener 过程的相关系数0.0ou_aOU 的均值回归速率0.0ou_muOU 的长期平均利率0.0heston_aHeston 中波动率的均值回归速率0.0heston_muHeston 的长期平均波动率0.0heston_vol0Heston 的起始波动率0.0参数前缀与其所属模型一一对应gbm_属于几何布朗运动jumps_属于 Merton 跳跃扩散cir_属于 CIRou_属于 Ornstein-Uhlenbeckheston_属于 Heston。两套预置参数工厂ModelParameters之外utils/parameters.py还提供了两个工厂函数便于快速起步default(base_price, t_gen, delta)parameters.py#L97-L133固定取值——all_sigma0.125、gbm_mu0.058、jumps_lambda0.00125、jumps_mu-0.2、cir_a3.0、ou_a3.0、heston_a0.25、heston_mu0.35、heston_vol00.06125random(base_price, t_gen, delta)parameters.py#L136-L172对all_sigma、gbm_mu、jumps_lambda等参数在均匀分布区间内随机取值适合批量生成多样化场景。所有顶级生成函数在paramsNone时都会自动调用default()因此零配置即可运行。七类随机过程的数学内核与源码实现1. 布朗运动Wiener Process——一切随机性的源头brownian_motion.py 实现了最基础的随机增量def brownian_motion_log_returns(params): sqrt_delta_sigma np.sqrt(params.all_delta) * params.all_sigma return np.random.normal(loc0, scalesqrt_delta_sigma, sizeparams.all_time)即每个时间步的增量服从均值为 0、标准差为σ·√Δt的正态分布这是随机游走的标准离散化。brownian_motion_levels()则调用convert_to_prices()将对数收益序列转换为价格序列。2. 几何布朗运动GBMgbm.py 在布朗运动基础上加入漂移项sigma_pow_mu_delta (params.gbm_mu - 0.5 * pow(params.all_sigma, 2)) * params.all_delta return wiener_process sigma_pow_mu_delta注意其中的0.5·σ²修正项——这正是 Itô 引理的标准形式也说明 GBM 是 Black-Scholes 期权定价公式背后的基础过程。价格通过对数收益np.exp()后递推累积得到见 helpers.py 的convert_to_prices。3. 分数布朗运动FBMfbm.py 的独特之处在于它直接依赖第三方库stochastic的FractionalBrownianMotion并以hurst参数控制过程特性hurst 0.5反持久性价格倾向均值回归hurst 0.5退化为标准布朗运动hurst 0.5持久性/趋势性价格倾向延续当前方向。默认hurst0.61略高于 0.5生成的序列带有轻微趋势。同时其成交量构造也不同volumes volume_volatility * price_volatility base_volume即成交量与价格波动相关。4. Heston 随机波动率模型heston.py 是包内最复杂的实现资产价格路径由 GBM 驱动但波动率本身服从一个均值回归的 CIR 过程且两者通过cir_rho相关。实现要点cox_ingersoll_ross_heston()heston.py#L101-L129构造波动率水平路径随机项乘上√(前一期波动率)体现 CIR 的“水平依赖”特征heston_construct_correlated_path()heston.py#L132-L158用简化 Cholesky 思路构造与第一条路径相关的第二条布朗运动get_correlated_geometric_brownian_motions()heston.py#L197-L236则用 scipy 的sp.linalg.cholesky生成任意 n 个相关资产的路径组合。注意源码 docstring 中作者标注“This method is dodgy! Need to debug!”即 Heston 价格路径生成在数值稳定性上存在已知风险大规模使用前应结合测试验证对应测试见 test_heston.py。5. Cox-Ingersoll-RossCIRcox.py 与 OU 仅有一处关键区别——随机项乘以√(levels[i-1])即波动率随利率水平变化drift a * (mu - levels[i - 1]) * params.all_delta randomness np.sqrt(levels[i - 1]) * brownian_motion[i - 1]这一“水平依赖”特性使 CIR 成为经典的利率建模过程也是 Heston 中波动率路径的基础。6. Merton 跳跃扩散模型Merton 模型 GBM 对数收益 跳跃项。跳跃部分在 heston.py#L27-L57 的jump_diffusion_process()中实现以泊松过程方式随机产生跳跃时刻跳跃大小服从normalvariate(jumps_mu, jumps_sigma)正态分布。合并在geometric_brownian_motion_jump_diffusion_log_returns()中完成heston.py#L60-L77而 merton.py 直接复用该实现生成价格序列。7. Ornstein-UhlenbeckOUornstein_uhlenbeck.py#L25-L45 是最经典的均值回归过程drift params.ou_a * (params.ou_mu - ou_levels[i - 1]) * params.all_delta ou_levels.append(ou_levels[i - 1] drift randomness)ou_a控制回归速度ou_mu是长期均值。生成的序列会围绕ou_mu上下波动适合模拟均值回归交易策略的市场环境。统一 OHLCV 组装流程除 FBM 外所有模型生成的价格序列最终都经由同一套管道组装成 K 线 DataFrame核心在 helpers.py 的两个函数scale_times_to_generate(times, time_frame)helpers.py#L27-L62把“根数 × 时间框架”换算成分钟级点数——如times1000, time_frame1h会得到 60000 个分钟点支持MIN/H/D/W/M五种后缀非法格式抛出ValueErrorget_delta(time_frame)helpers.py#L65-L88返回对应的时间步长日频为1/252月频为1/12。组装时helpers.py#L116-L180以start_date为起点生成分钟级时间轴价格由price_fn(params)生成后取绝对值abs防止负价成交量由GaussianNoise.sample()叠加base_volume生成最终用price_frame[price].resample(time_frame).ohlc()将分钟数据重采样为 OHLC 四价成交量按sum()聚合。这也解释了为什么times_to_generate是“K 线根数”而非分钟点数——真正的精细度由重采样前的分钟轴承担。实战五种随机过程一键生成以 docs/source/examples/use_stochastic_data.md 中的完整示例为蓝本docs下的图片即该示例的运行输出五种过程的调用完全对称import random import tensortrade.stochastic as sp # 几何布朗运动 data sp.gbm( base_price100, base_volume5, start_date2010-01-01, times_to_generate1000, time_frame1H ) data.close.plot() # Heston 随机波动率 data sp.heston( base_price100, base_volume5, start_date2010-01-01, times_to_generate1000, time_frame1H ) # 分数布朗运动注意 hurst 参数 data sp.fbm( base_price100, base_volume5, start_date2010-01-01, times_to_generate1000, time_frame1H ) # Cox-Ingersoll-Ross data sp.cox( base_price100, base_volume5, start_date2010-01-01, times_to_generate1000, time_frame1H ) # Ornstein-Uhlenbeck data sp.ornstein( base_price100, base_volume5, start_date2010-01-01, times_to_generate1000, time_frame1H )生成结果的绘制样例分别见 use_stochastic_data_3_1.pngGBM、use_stochastic_data_5_1.pngHeston、use_stochastic_data_7_1.pngFBM、use_stochastic_data_9_1.pngCIR与 use_stochastic_data_11_1.pngOU。从视觉对比中可以直观看出GBM 呈随机漂移趋势、Heston 波动率随环境变化、FBM 带有连续性趋势、CIR 与 OU 则围绕均值回归。上述代码的完整可运行版本同时收录于 examples/use_stochastic_data.ipynb。进阶自定义参数与随机参数集不传params时使用default()的固定参数若需注入自定义参数直接构造ModelParameters传入即可from tensortrade.stochastic.utils.parameters import ModelParameters, default, random from tensortrade.stochastic.utils.helpers import get_delta delta get_delta(1h) params ModelParameters( all_s0100, all_time1000, all_deltadelta, all_sigma0.3, gbm_mu0.05, jumps_lambda0.01, jumps_sigma0.005, jumps_mu-0.1, cir_a2.0, cir_mu0.6, all_r00.5, cir_rho0.3, ou_a1.5, ou_mu0.4, heston_a0.5, heston_mu0.3, heston_vol00.05 ) data sp.merton(base_price100, time_frame1h, times_to_generate1000, paramsparams)而random(base_price, t_gen, delta)生成的随机参数集适合批量跑多组参数实验——例如 examples/training 目录下的训练脚本可用于把这些合成数据接入强化学习训练流程如 train_historical.py、train_ray_long.py 等。另外注意 setup.py 与 requirements.txt 中声明了本模块运行所需的numpy1.26.4、pandas2.2.3,3.0与stochastic0.6.0依赖。测试与验证tests/tensortrade/unit/stochastic/processes/目录为每个过程提供了独立单测test_gbm.pytest_fbm.pytest_heston.pytest_cox.pytest_merton.pytest_ornstein_uhlenbeck.py在动手扩展或校准参数前建议先运行对应测试确认环境依赖尤其是stochastic0.6.0就绪。此外由于 gbm.py、fbm.py 与 helpers.py 中使用了resample(1H)等大写频率写法在较新的 pandas 版本下会出现H is deprecated的 FutureWarning在 examples/use_stochastic_data.ipynb 的运行输出中即可见虽不影响功能但建议关注 pandas 升级后的兼容性。小结tensortrade.stochastic.processes以“统一参数、统一接口、统一组装”三层设计把 7 类金融随机过程封装成了与 TensorTrade 数据管道无缝衔接的合成数据工具ModelParameters统一承载全部模型参数六个顶级函数共享签名helpers.py统一完成时间轴缩放与 OHLCV 重采样。无论是快速生成回测行情、批量构造训练场景还是研究不同随机过程对交易策略的影响都可以从这一包直接获得开箱即用的能力。赞分享人工智能金融科技机器学习【免费下载链接】tensortradeAn open source reinforcement learning framework for training, evaluating, and deploying robust trading agents.项目地址https://gitcode.com/gh_mirrors/te/tensortrade点击查看免费下载相关推荐大麦自动抢票工具3 步配置开售自动完成选票下单大麦自动抢票工具3 步配置开售自动完成选票下单 ticket purchase 是一个大麦自动抢票工具开票前你写好演出、观演人、价位到点它替你完成搜索、人工智能金融科技机器学习探索随机过程的奥秘《随机过程张灏》资源推荐探索随机过程的奥秘《随机过程张灏》资源推荐 项目介绍 在现代科学和工程领域随机过程是一个不可或缺的概念广泛应用于金融、通信、生物信息学等多个领域。为了TensorTrade 滑点建模详解RandomUniformSlippageModel 源码实现与实战配置指南TensorTrade 滑点建模详解RandomUniformSlippageModel 源码实现与实战配置指南 本文围绕 TensorTrade 的 API人工智能金融科技机器学习上一篇G6 边元素基础样式配置全解箭头、标签、光晕与实时调试下一篇如何用AI智能体打造专业投资决策系统TradingAgents-CN完全指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表