Reinforcement Learning - Reinforcement Learning in Quantitative Trading — QLib...

谈笑风生 153 views 9 replies
#1 ·

https://qlib.readthedocs.io/en/latest/component/rl/overall.html#reinforcement-learning

我之前怎么就没想到 RL 能拿到股市里赚钱?

https://github.com/microsoft/qlib/blob/main/examples/workflow_by_code.ipynb

我的修改版:
workflow_by_code.ipynb|attachment (23.4 KB)

用 gbdt(Gradient boosting Descision Trees) 在 2008-01-01~2022-12-31 的沪深 300(CSI300)数据上训练(用 2023-01-01~2024-12-31 时段的数据验证),TopkDropoutStrategy 在 2025-01-01~2026-01-01 的数据上测试,¥1M 本金一年考虑佣金等损耗的收益率为 36.3%。

想想我自己炒股是多么可笑:跟着感觉走,看 K 线图买,看行业新闻买

Why others should give you the money?


以下是 ipynb 跑的结果,有兴趣的同学可以自己改参数泡泡看:训练/测试时间段、本金、不同的预测模型。这是没有用到 RL、DL 的,只是 ML 中的 GBDT 方法。

BACKTEST CONFIGURATION

Initial Balance: ¥1,000,000.00
Backtest Period: 2025-01-01 to 2026-01-01
Benchmark: SH000300
Strategy: Top 50 stocks, drop 5

DAILY TRADING POSITIONS

Total trading days: 243

PORTFOLIO PERFORMANCE REPORT

datetime account return total_turnover turnover total_cost cost value cash bench
2025-01-02 1.000000e+06 0.000000e+00 0.000000e+00 0 0 0 0.000000e+00 1000000 -0.029101
2025-01-03 9.995766e+05 2.967226e-17 8.468850e+05 0.846885 423.442501 0.000423 8.468850e+05 152691.555858 -0.011842
2025-01-06 9.996503e+05 2.973868e-04 1.110323e+06 0.26355 646.92666 0.000224 9.270902e+05 72560.183476 -0.00164
2025-01-07 1.016419e+06 1.698515e-02 1.350526e+06 0.240287 857.588266 0.000211 1.003152e+06 13266.58854 0.007201
2025-01-08 1.016714e+06 4.872197e-04 1.546516e+06 0.192823 1057.595387 0.000197 9.956121e+05 21101.993759 -0.001815
2025-01-09 1.018238e+06 1.696031e-03 1.745443e+06 0.195657 1257.958116 0.000197 9.944653e+05 23772.779828 -0.002465
2025-01-10 1.001521e+06 -1.625080e-02 1.907442e+06 0.159098 1427.833264 0.000167 9.621667e+05 39354.338869 -0.01254
2025-01-13 9.973824e+05 -3.931961e-03 2.107648e+06 0.199902 1628.586149 0.0002 9.571349e+05 40247.50714 -0.002671
2025-01-14 1.036712e+06 3.962310e-02 2.288269e+06 0.181095 1818.011962 0.00019 9.790450e+05 57667.291179 0.026334
2025-01-15 1.033460e+06 -2.926083e-03 2.514769e+06 0.218479 2037.15906 0.000211 9.907175e+05 42742.208978 -0.006415
2025-01-16 1.042446e+06 8.888842e-03 2.702204e+06 0.181366 2237.511785 0.000194 9.740672e+05 68378.342198 0.001146
2025-01-17 1.039311e+06 -2.797466e-03 2.927309e+06 0.21594 2456.227223 0.00021 9.839314e+05 55379.254144 0.003147
2025-01-20 1.040474e+06 1.318763e-03 3.139483e+06 0.204148 2663.820568 0.0002 9.944624e+05 46011.225018 0.004548
2025-01-21 1.034467e+06 -5.536934e-03 3.388942e+06 0.239755 2909.394658 0.000236 9.964707e+05 37996.378399 0.000765
2025-01-22 1.025713e+06 -8.249430e-03 3.617724e+06 0.221159 3129.547773 0.000213 1.005195e+06 20518.301228 -0.009286
2025-01-23 1.028865e+06 3.283318e-03 3.832895e+06 0.209777 3345.45842 0.00021 1.007083e+06 21781.490038 0.00177
2025-01-24 1.042512e+06 1.344743e-02 4.010269e+06 0.172398 3534.09111 0.000183 9.984013e+05 44110.652403 0.007656
2025-01-27 1.043590e+06 1.191273e-03 4.177833e+06 0.160731 3698.021814 0.000157 1.006911e+06 36679.191418 -0.004117
2025-02-05 1.039712e+06 -3.560374e-03 4.340634e+06 0.156 3860.375584 0.000156 1.004089e+06 35623.347986 -0.005764
2025-02-06 1.057966e+06 1.775528e-02 4.543242e+06 0.194869 4066.599314 0.000198 1.015317e+06 42648.945485 0.012582

PERFORMANCE SUMMARY

Total Return: 48.25%
Annualized Return: 42.45%
Sharpe Ratio: 2.3872
Max Drawdown: -10.13%
Volatility: 17.78%

TRADING ACTIVITY SUMMARY

Analyzing 243 trading days…

Date Action Stocks In Stocks Out Total Held


2025-01-02 00:00:00 Initial 0 0 0
2025-01-03 00:00:00 Buy 49 0 49
2025-01-06 00:00:00 Rebalance 5 5 49
2025-01-07 00:00:00 Rebalance 6 5 50
2025-01-08 00:00:00 Rebalance 5 5 50
2025-01-09 00:00:00 Rebalance 5 5 50
2025-01-10 00:00:00 Rebalance 4 5 49
2025-01-13 00:00:00 Rebalance 5 5 49
2025-01-14 00:00:00 Rebalance 4 4 49
2025-01-15 00:00:00 Rebalance 5 5 49
2025-01-16 00:00:00 Rebalance 4 5 48
2025-01-17 00:00:00 Rebalance 6 5 49
2025-01-20 00:00:00 Rebalance 5 5 49
2025-01-21 00:00:00 Rebalance 5 5 49
2025-01-22 00:00:00 Rebalance 6 5 50
2025-01-23 00:00:00 Rebalance 5 5 50
2025-01-24 00:00:00 Rebalance 4 5 49
2025-01-27 00:00:00 Rebalance 5 4 50
2025-02-05 00:00:00 Rebalance 4 4 50
2025-02-06 00:00:00 Rebalance 4 5 49

DETAILED POSITION CHANGES (First 3 Trading Days)

2025-01-02 00:00:00:
Initial purchase of 0 stocks

2025-01-03 00:00:00:
Bought (49 stocks): SH600377, SZ300450, SH688008, SH688223, SZ002916…

2025-01-06 00:00:00:
Bought (5 stocks): SH601012, SZ000063, SZ002466, SZ300033, SH603296
Sold (5 stocks): SH600938, SH688012, SH600066, SH601857, SZ002180

……

analysis_position.report_graph(report_normal_df)
newplot(1)|461x500
analysis_position.risk_analysis_graph(analysis_df, report_normal_df)

image|308x500
image|690x282

analysis_model.model_performance_graph(pred_label)
image|247x500

❤️hugging_face_exploding_head
6
#2 ·

业界普遍做法是用 RL 做 execution

❤️👍️
3
#3 ·
Lrefrain Lrefrain

没接触过高频量化。大概都是做哪些呢?
之前只听说过 跨市场套利 做市商
在你这里刚刚听说到 execution

我虽然行过死荫的幽谷,也不怕遭害,因为你与我同在。
诗篇 23:4

#4 ·
Lrefrain Lrefrain

刚刚读到 Lrefrain 大作《How to avoid World War III》 🤣 🤣 🤣

我虽然行过死荫的幽谷,也不怕遭害,因为你与我同在。
诗篇 23:4

#5 · (edited)
Zethes

草,笑死我了,早年黑历史,从哪看到的啊。。

admin
#6 ·
Lrefrain Lrefrain

Sorry, your post is identified as NSFW. This may be false-positive. Moderates shall act ASAP. Thanks for your attention on this matter. BOT-CREATOR ADMIN.

#7 ·
Zethes

笑死我了,早年黑历史了,从哪看到的啊

#8 · (edited)
Zethes

就是一般来说,你在市场上 take 别人的单会有一定的 impact,当你的资金量大的时候会尤其有这个问题。
举个例子比如你是一个 intraday 的 low/mid-freq statistic arbitrage 策略,每天或者每几分钟入场一次,假设入场时机不是 open/close auction 等没有 spread 的时机,那你每次入场的时候可能由于资金量不小,会导致你的资金对市场产生很大影响。比如原本你的 alpha 可能只能赚几个 bps,但是由于下单不够精细导致产生了很大的冲击成本,那你的 alpha 可能就被成本吃掉很多,甚至完全失效。
所以这时候为了解决一种“在规定时间内达成规定仓位”的问题,就产生了 execution 这个环节。目的是在于减少交易成本,这一步一般都偏高频,做的精细的话会有更高频的 signal 做辅助,做得好做到比市场成交的 vwap 低几个 bps。如果做的特别好的话甚至可以单飞成为一个高频策略。

❤️💯️👍️
6
#9 ·
Lrefrain Lrefrain

网上公开的,可能会议举办方忘了匿名

我虽然行过死荫的幽谷,也不怕遭害,因为你与我同在。
诗篇 23:4

#10 ·
Lrefrain Lrefrain

发现一个不错的网站,能拿到比较新的业界信息。

https://www.bestpractice.ai/ai-use-cases-by-industry-sector


https://www.bestpractice.ai/ai-case-study-best-practice/jpmorgan's_new_ai_program_for_automatically_executing_equity_trades_in_real-time_out-performed_current_manual_and_automated_methods_in_trial

以下是您提供的 JPMorgan LOXM AI 交易程序案例研究的中文翻译

AI 案例研究:JPMorgan LOXM 实时自动执行股票交易程序

行业
金融服务
投资银行与投资服务

项目概述
摩根大通(JPMorgan)自 2017 年第一季度起在欧洲开始测试其 AI 程序 LOXM,该程序用于实时自动化股票交易执行,能够优化交易速度和价格,同时处理海量订单且不会引发市场波动。

试验取得成功后,银行计划于当年第四季度将其推广至亚洲和美国业务。

LOXM 直接应用于交易执行环节。摩根大通宣称,这是首家主要银行将 AI 技术应用于实时交易执行(而非仅用于事后分配等环节,其他同行大多停留在后端应用)。

Daniel Ciment(摩根大通全球股票电子交易主管)表示:虽然 LOXM 初期专注于交易自动化,但未来可能进一步训练系统,让其深入了解每位终端客户的个体行为与反应,从而在执行交易时考虑客户偏好。这种机器定制化方式,能更高效、大规模地实现个性化服务。

报告结果
据摩根大通称,在试验中,LOXM 实现了显著的成本节约,表现远超现有的手动交易和传统自动化交易方法

核心技术
LOXM 通过深度学习(特别是强化学习)在数十亿笔历史交易数据(包括真实和模拟交易)上进行训练,使其能够在全球股票市场中:

  • 以最快速度
  • 以最优价格
  • 执行大宗股票交易
  • 同时将市场冲击(market impact)降至最低,避免引发价格剧烈波动

应用功能

  • 运营优化
  • 交易执行

背景与行业意义
金融机构越来越积极部署 AI 技术,以降低运营成本,因为 AI 在处理海量数据和从经验中学习方面表现日益出色。随着更多机构削减成本,同行之间的竞争压力也在不断加剧。

作为全球营收最大的投资银行,摩根大通如此大力投入 AI 技术,将进一步加剧对手的紧迫感,推动整个行业加速向 AI 驱动的交易执行转型。

补充说明(基于公开信息更新)
LOXM 项目最早于 2017 年公开披露,使用深度强化学习(Deep Reinforcement Learning)优化订单拆分与执行策略。后续报道显示,该系统已成为摩根大通交易基础设施的重要组成部分,并在 2020 年代持续演进,用于降低交易成本、提升执行效率,并在机构交易中贡献显著价值(部分报道提到年度节约可达数亿美元级别,并持续优化至覆盖更多资产类别)。

这份案例是金融行业早期成功将强化学习应用于实时交易执行的经典范例,展示了 AI 如何在高频、复杂的市场环境中实现超越传统方法的表现,同时兼顾合规与市场稳定性。

我虽然行过死荫的幽谷,也不怕遭害,因为你与我同在。
诗篇 23:4

❤️
1