【智能金融】- 基于强化学习 DQN 算法的量化交易策略

【智慧金融】系列是基于人工智能系列算法为基础,实现量化交易策略的探索。

规划第一阶段将基于强化学习,推出三篇相关的算法与原代码,结合原代码介绍主要的强化学习知识应用。之后将搭建数据库与前端展示页面提供访问,同时完成从数据采集,数据存储,特征工程,算法训练与应用,以及主要要素的前端展示。

 

Part I: 应用与算法简介


本应用场景针对的是股票交易中交易策略的智能化实现。采用基于DQN的强化学习模型。

DQN是基于Q learning 结合神经网络的改进优化, 由 Deep Mind 在2015年提出《Human Level Control Through Deep Reinforcement Learning》,将Q table换成神经网络,并加入Memory对之前经验进行重采样和训练。

training output diagram

 

Part II: 代码介绍


2.1 库调用

这里库调用相对简单,采用的 keras, 我目前采用的是 keras,基于tensorflow的版本。

import keras
from keras.models import Sequential
from keras.models import load_model
from keras.layers import Dense
from keras.optimizers import Adam
import math
import numpy as np
import random
from collections import deque

元数据提取:

  1. Go to Yahoo Finance

  2. Type in the company’s name for eg. HDFC Bank

  3. Select the time period for e.g. 5 years

  4. Click on Download to download the CSV file

2.2 智能体

作为策略主体的智能体一般采用类的方式建立。

一般由如下几部分构成:

  • 主参数:

    state: 状态,通常状态是指环境的状态,以及智能体在环境中所处的状态,在这次建模时,state_size是考察算法本身会采用多长的股价历史作为输入状态;

    动作空间:对股市策略来讲,常规就3种动作, buy, sell, sit;

    gamma \gamma: 指的是学习率,也是算法本身的远视程度;

    epsilon \varepsilon:  是在 \varepsilon-greedy策略中随机策略所占的概率,在训练过程中,该数值会逐渐减小;本代码中设置了衰减率 epsilon_decay 和最小值 epsilon_min。

  • 模型

模型核心是一个4层的卷积神经网络,输入的大小由状态决定,输出对应的是动作空间决定,这里就是3.

激活函数都采用的 Relu

  • 3
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值