【智慧金融】系列是基于人工智能系列算法为基础,实现量化交易策略的探索。
规划第一阶段将基于强化学习,推出三篇相关的算法与原代码,结合原代码介绍主要的强化学习知识应用。之后将搭建数据库与前端展示页面提供访问,同时完成从数据采集,数据存储,特征工程,算法训练与应用,以及主要要素的前端展示。
Part I: 应用与算法简介
本应用场景针对的是股票交易中交易策略的智能化实现。采用基于DQN的强化学习模型。
DQN是基于Q learning 结合神经网络的改进优化, 由 Deep Mind 在2015年提出《Human Level Control Through Deep Reinforcement Learning》,将Q table换成神经网络,并加入Memory对之前经验进行重采样和训练。
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
元数据提取:
Go to Yahoo Finance
Type in the company’s name for eg. HDFC Bank
Select the time period for e.g. 5 years
Click on Download to download the CSV file
2.2 智能体
作为策略主体的智能体一般采用类的方式建立。
一般由如下几部分构成:
- 主参数:
state: 状态,通常状态是指环境的状态,以及智能体在环境中所处的状态,在这次建模时,state_size是考察算法本身会采用多长的股价历史作为输入状态;
动作空间:对股市策略来讲,常规就3种动作, buy, sell, sit;
gamma : 指的是学习率,也是算法本身的远视程度;
epsilon : 是在
-greedy策略中随机策略所占的概率,在训练过程中,该数值会逐渐减小;本代码中设置了衰减率 epsilon_decay 和最小值 epsilon_min。
- 模型
模型核心是一个4层的卷积神经网络,输入的大小由状态决定,输出对应的是动作空间决定,这里就是3.
激活函数都采用的 Relu