finRL源解读

finRL源解读

  • required = { ‘yfinance’, ‘pandas’, ‘matplotlib’, ‘stockstats’, ‘stable-baselines’, ‘gym’}
数据处理
  • 获取股票日价格以及加入各种指标作为state,如果是多只股票,排列方式为根据每日每只股票排列。index累加。
  • 分成训练集和测试集
建模
  • state_space:

        state_space = (
                1
                + 2 * stock_dimension
                + len(config.TECHNICAL_INDICATORS_LIST) * stock_dimension
        )
    
  • 建环境

  • 建agent,依赖于环境

    agent = DRLAgent(env=env_train)
    
  • 定义state和action

    action = Box(-1.0, 1.0, (2,), float32)
    state = Box(-inf, inf, (21,), float32)
    
  • 构造数据
    env.step

选策略
  • 加载子policy,有很多可选,底层已封装好,一般选择MlpPolicy,policy有一个step,返回值底层已经算好。用来生成数据,然后在env里跑。

    _policy_registry = {
        ActorCriticPolicy: {
            "CnnPolicy": CnnPolicy,
            "CnnLstmPolicy": CnnLstmPolicy,
            "CnnLnLstmPolicy": CnnLnLstmPolicy,
            "MlpPolicy": MlpPolicy,
            "MlpLstmPolicy": MlpLstmPolicy,
            "MlpLnLstmPolicy": MlpLnLstmPolicy,
        }
    }
    初始化:
    super(MlpPolicy, self).__init__(sess, ob_space, ac_space, n_env, n_steps, n_batch, reuse,
    								feature_extraction="mlp", **_kwargs)
    
  • 加载策略模型,agent加载,模型使用的是stable_baselines3原装,可以自定义参数送进去。

      model_ppo = agent.get_model("ppo")
    

    在加载时模型进行初始化:
    input初始化
    model初始化

    # 构建actor函数
    self.deterministic_action, policy_out, logp_pi = self.policy_tf.make_actor(self.processed_obs_ph)
    # 构建critics函数,这是使用双Q
    qf1, qf2, value_fn = self.policy_tf.make_critics(self.processed_obs_ph, self.actions_ph, create_qf=True, create_vf=True)
    
    qf1_pi, qf2_pi, _ =  self.policy_tf.make_critics(self.processed_obs_ph,
    

policy_out,create_qf=True,create_vf=False,reuse=True)
```
target初始化
loss初始化

  • 训练模型,agent训练,使用的是stable_baselines3原装训练

  • 风控:turbulence_threshold

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值