基于强化学习的期权量化交易回测系统2

在本篇博文中,我们将介绍强化学习环境类SopEnv的具体实现。
SopEnv类的基类为gym.Env类,这样做的目的是为了与当前主流的强化学习系统兼容,我们需要重写该类的四个方法:

  • reset:重置系统为初始状态;
  • _next_observation:获取并返回环境状态;
  • _take_action:执行Agent所选择的行动;
  • step:最重要的方法,在该方法中执行如下操作:
    • 执行Agent选择的行动;
    • 获取当前状态;
    • 生成当前奖励信号;

除了上述方法之外,该类还有一个重要的方法startup,在该方法中进入系统主循环。
SopEnv代码如下所示:

import numpy as np
import gym
from gym import spaces

class SopEnv(gym.Env):
    def __init__(self):
        self.refl = ''

    def startup(self, args={}):
        self.reset()
        num = 0
        obs, reward, done, info = self._next_observation(), 0, False, {}
        while True:
            if num > 10:
                break
            print('由Agent选择行动')
            action = {}
            obs, reward, done, info = self.step(action)
            num += 1

    def reset(self):
        print('重置环境到初始状态')

    def _next_observation(self):
        print('返回环境状态...')
        return {}

    def step(self, action):
        self._take_action(action)
        obs = self._next_observation()
        reward = 0.0
        done = False
        return obs, reward, done, {}

    def _take_action(self, action):
        print('执行所选行动,生成订单,调用broker执行订单')

其运行结果如下所示:

重置环境到初始状态
返回环境状态...
由Agent选择行动
执行所选行动,生成订单,调用broker执行订单
返回环境状态...
由Agent选择行动
执行所选行动,生成订单,调用broker执行订单
返回环境状态...
由Agent选择行动
执行所选行动,生成订单,调用broker执行订单
返回环境状态...
由Agent选择行动
执行所选行动,生成订单,调用broker执行订单
返回环境状态...
由Agent选择行动
执行所选行动,生成订单,调用broker执行订单
返回环境状态...
由Agent选择行动
执行所选行动,生成订单,调用broker执行订单
返回环境状态...
由Agent选择行动
执行所选行动,生成订单,调用broker执行订单
返回环境状态...
由Agent选择行动
执行所选行动,生成订单,调用broker执行订单
返回环境状态...
由Agent选择行动
执行所选行动,生成订单,调用broker执行订单
返回环境状态...
由Agent选择行动
执行所选行动,生成订单,调用broker执行订单
返回环境状态...
由Agent选择行动
执行所选行动,生成订单,调用broker执行订单
返回环境状态...

在本节中,我们只是创建了一个强化学习环境类,并启动了环境主循环。
在下一节博文中,我们将讨论通过akshare接口,获取50ETF期权和50ETF本身的日行情数据,将其中通过主循环,依次显示出来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值