交易中的强化学习 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ITrecruit1
V2EX    机器学习

交易中的强化学习

  •  
  •   ITrecruit1 2023-05-12 19:47:36 +08:00 1678 次点击
    这是一个创建于 957 天前的主题,其中的信息可能已经有所发展或是发生改变。
    FinTech 社区是 5 万+专注于量化投资 /区块链 /金融科技 /AI 行业的国际招聘社区,欢迎加微信:smilejin689

    加入社区交流!
    官网:www.fintechgl.com
    B 站视频 : https://space.bilibili.com/1426020404
    小红书: https://www.xiaohongshu.com/user/profile/63620ca1000000001f014d66?xhsshare=CopyLink&appuid=63620ca1000000001f014d66&apptime=1681374159
    公众号:FinTech 社区咨询

    什么是强化学习?
    “像人类一样,我们的机器自己学习如何实现成功的策略,从而获得最大的长期回报。这种通过对正确和错误的学习,进行奖惩的范式,被称为强化学习( RL )--谷歌 Deepmind”

    在金融市场上,我们使用强化学习算法的目的,是通过观察交易行为的回报情况,从而学会如何获得最大的回报交易策略。

    如何在交易中应用强化学习?
    在交易领域我们追求的无非是利润最大化。因此强化学习算法应用到交易领域的目的也是,学习最大化长期回报的策略。

    例如,从 2018 年末到 2020 年初,Amazon 的股价几乎持平。正常思维会认为 mean-reverting 策略在这里更有效。

    但从 2020 年初,Amazon 股价回升,出现趋势。如果 2020 年初开始,采用 mean-reverting 策略将导致亏损。从上一年的 mean-reverting 市况来看,大多数交易者在市场开始趋势化时都会退出市场。

    但如果你做多并持有股票,从长远来看这种策略是有益的。在这种情况下,为了将来的长期收益而放弃你当下的回报。

    这种行为类似于 AlphaZero[实现“将死”这个目标,游戏时必须遭受失子的损失]。

    强化学习算法通过从 2017 年和 2018 年 Amazon 股价变动学习到的模型,并且更宏观的考虑“思考”,模型会因此持有 Amazon 的股票,从而在未来获得巨额利润。

    强化学习与传统的机器学习算法有何不同?
    正如在上面的示例中所看到的,我们不必在强化学习算法的每个时间点都提供标签。强化算法首先通过试错学习交易,并在交易结束时计算获利回报。

    然后优化策略,使回报最大化。这与传统的 ML 算法不同,后者需要在每个时间点或按频率添加标签。

    强化学习的组成部分

    强化学习主要有以下部分组成:

    行动:行动就是 RL 算法要解决的问题,对应到交易市场就是买、卖。
    策略:1 、exploration policy:通过随机学习,RL 算法学会要采取的行动。2 、exploitation policy:RL 算法学习过去的经验,并采取行动,从而最大化长期回报。
    状态:增强学习需要有意义的信息,才能采取行动。这里有意义的信息就是状态。例如,你要决定是买入还是卖出微软股票,那怎样的信息才是有用的?可能历史价格数据、基本面数据等等所有这些数据汇总在一起就是需要的状态。
    奖励:奖励可以被认为是希望通过强化系统实现的最终目标。例如,你的目标是建立一个可盈利的交易系统,这时的奖励就是利润。定义奖励函数对于一个强化学习系统是极其重要的,以下指标可用于定义奖励:Profit per tick 、Sharpe Ratio 、Profit per trading
    环境:强化学习系统观察状态的一个“世界”,当 RL 系统要采取行动,环境会执行相关动作后,计算奖励并且进入入下一状态。可以把环境理解为一局象棋比赛或交易微软股票的过程。
    代理:RL 模型的代理是接收输入状态(特征)并且决定要采取的行动。例如 RL 代理把 RSI 和过去 10 天的回报作为输入,然后告诉你是否要继续持有微软股票还是要卖出。下面结合图片简要对代理的工作原理介绍。
    图片: https://uploader.shimo.im/f/lpQFcifST0YOXNCq.gif?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE2ODM4OTEzNDAsImZpbGVHVUlEIjoiaDhna1d2d1JoQ0dDV1BZNiIsImlhdCI6MTY4Mzg5MTA0MCwiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwidXNlcklkIjo3NTIxMjcwMH0.BU-OKWEyfQIATtAVJwllXuudbPFT8-lHgx4D52-6E94

    步骤 1:
    状态&行动:假设微软的股票在当日收盘价是 92 美元,基于状态( RSI 和 10 天回报),代理给出买入信号。
    环境:为简单起见,我们说该订单在下一个交易日(即 1 月 27 日)开盘。该订单以 92 美元的价格成交。因此,环境告诉我们,要以 92 美元的价格买入了微软股票。
    奖励:这里不会有任何奖励,因为我们交易还在进行中。
    步骤 2:
    状态&行动:次日微软股票收盘价为 94 美元,这时代理会分析状态并给出卖出的信号。
    环境:将新增一个卖出订单,该订单将平掉多头头寸。
    奖励:代理将记录 2.1%的奖励。

    为让大家更直观的认识强化学习系统,下图是强化系统的一个简要总结。

    图片: https://uploader.shimo.im/f/DSgNvJUc32zUiQqX.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE2ODM4OTEzNDAsImZpbGVHVUlEIjoiaDhna1d2d1JoQ0dDV1BZNiIsImlhdCI6MTY4Mzg5MTA0MCwiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwidXNlcklkIjo3NTIxMjcwMH0.BU-OKWEyfQIATtAVJwllXuudbPFT8-lHgx4D52-6E94
    Q 表和 Q 学习
    什么是 Q 表和 Q 学习?这两个概念听起来可能有点迷惑,但蕴含的概念是非常简单的。

    在每个交易时刻,RL 代理都需要决定要采取的操作。如果 RL 代理有一张表,告诉它哪一个动作会得到最大的回报?然后简单地选择那个动作。这张表就是 Q 表。

    这里举个 Q 表简单例子,让大家对其有更直观的感受。

    下面的 Q 表行是状态(在本例中是天),操作是列(在本例中是持有和卖出)。此表中的值称为 Q 值。
    上面的 Q 表中,1 月 23 日那天 RL 代理要采取怎样的行动?持有的 Q 值为 0.966 ,则采取“持有”行动,卖出的 Q 值 0.954 ,持有的 Q 值大,因此采取持有。

    如何创建 Q 表?
    让我们通过例子创建一个 Q 表。为了简单起见,让我们以 2021 年 1 月 22 日至 1 月 31 日的价格数据为例。我们已经添加了回报率和累计回报,如下所示。

    上面表格代表你买了某只股票,你已经没有更多的资本。你唯一的两个选择是“持有”或“卖出”。作为第一步,需要创建一个简单的奖励表。

    如果我们决定“持有”,那么我们将在 1 月 31 日之前得不到任何奖励,最后我们将得到 1.09 的奖励。如果我们决定在任何一天出售,那么回报将是截至当天的累计回报。奖励表( R 表)如下所示。如果我们让 RL 模型从奖励表中选择,RL 模型将出售股票并获得 0.95 的奖励(显然这不是我们想要的)。
    预计 1 月 31 日价格将升至 106 美元,涨幅达 9%。因此,你应该把股票持有到那时。我们必须提供这些信息。这样 RL 代理可以做出持有的决定而不是出售。

    我们为了做到这一点,需要创建一个 Q 表。先将奖励表复制到 Q 表中,然后使用 Bellman 公式计算每天行动的奖励。

    Bellman 公式
    图片: https://uploader.shimo.im/f/HNSeI4chHuiQIg04.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE2ODM4OTEzNDAsImZpbGVHVUlEIjoiaDhna1d2d1JoQ0dDV1BZNiIsImlhdCI6MTY4Mzg5MTA0MCwiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwidXNlcklkIjo3NTIxMjcwMH0.BU-OKWEyfQIATtAVJwllXuudbPFT8-lHgx4D52-6E94

    在这个方程中,s 是状态,a 是时间 t 的一组动作,ai 是这个动作集中的一个特定动作。R 是奖励表。Q 是 state action 表,但随着我们通过经验对系统了解的加深,它会不断更新。γ是学习率。

    我们将首先从 R 表中,1 月 30 日的“持有”行动的 q 值开始计算。
    1 、计算采取行动的回报:从 R 表可见为 0.
    2 、假设γ=0.98 。第二天,即 1 月 31 日,卖出和持有操作的最大 Q 值为 1.09 。
    3 、根据 Bellman 公式,1 月 30 日的“持有”行动的 Q 值为 0+0.98*( 1.09 )=1.06 。

    以此类推,得到 Q 表如下所示
    这时 RL 模型将选择“持有”动作以使 Q 值最大化。这个更新 Q 表的过程称为 Q 学习。
    这里我们只使用了行动和状态这两个状态变量。但现实中,我们面对的将是巨大的状态空间,因此,建立一个 Q 表既耗时又耗计算资源。

    为了克服这个问题,我们可以使用深度神经网络。 也可称它们为深度 Q 网络( DQN )。

    深度 Q 网络从过去的经验中学习 Q 表,当以状态作为输入时,它们可以为每个行动计算 Q 值。 我们可以选择最大 Q 值采取的行动,从而得到最大的回报。

    小结
    最后你可以构建自己的 RL 系统来对真实市场数据进行回测和实际交易,从而使强化学习在交易领域更好的发展。

    职位:量化研究员 /交易员 /PM (期权 /期货 /股票 /Crypto 等方向,高中低频都可)
    公司介绍:70+家对冲基金
    关键词:量化策略研究、实盘管理
    地点:沪 /京 /深 /杭 /新 /美 /远程
    推荐奖:RMB 3000-30000 元
    薪资:RMB 40-800 万+奖金
    工作职责:
    1.发掘金融市场运行的客观规律,形成投资策略、验证交易策略并实盘,具体涉及交易想法的策略化、数据处理、策略历史回测、实盘交易等
    2. 对量化投资策略的表现进行跟踪、分析、评估和改进
    任职要求:
    1.国内外顶级大本科及以上学历,数学、计算机等相关专业毕业; 0-10 年相关工作经验(应届生需具备量化实习经验)
    2.精通 python/C++/C#中至少一门语言;
    3.研究任一领域均可:CTA 、A 股、港股、美股、期权、加密货币,高中低频均可;交易执行算法 ; 深度学习 ;金融场景下的 NLP 研究和应用 ;高频交易 ;波动率预测等

    职位:系统开发 /量化开发 Quant Developer/数据开发 Data Engieer
    推荐奖:rmb 5000-20000 元
    地点:沪 /京 /深 /杭 /新 /美 /远程
    年薪:RMB 40-200 万+
    公司:70+家对冲基金
    关键词:c++, 量化系统开发、回测系统开发、Linux 、数据开发、量化开发、量化实现
    职责描述(以下任一):
    1.负责期货 /期权 /股票 /数字货币等的交易系统的开发、优化和维护
    2.对研究员策略实现过程提供数据和技术支持
    3. 开发数据生产任务,对原始数据进行采集、检查、清洗、加工
    任职要求:
    国内外知名院校本科及以上学历,计算机、软件工程等相关专业,有量化行业经验优先
    具备以下任一相关经验:
    1.熟练掌握 C++/Python/JAVA/C#中的一两种语言,懂 Shell ,熟悉常用的数据结构和算法
    2.熟悉 C++和 Python 开发,理解量化策略,过往具备量化策略代码化经验优先
    3.熟练使用 python 进行数据分析及处理,具备一定 c++能力;
    目前尚无回复
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3118 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 11:35 PVG 19:35 LAX 03:35 JFK 06:35
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86