python构建外汇量化交易系统2(附源代码)

python构建外汇量化交易系统2(附源代码)

自发布了python构建外汇量化交易系统1已经有好一段日子了,在一版中只提到了一些框架性的东西,可能实用性还不强。在二版中决定对一版进行一个丰富和提供,并提供该量化交易系统的完整源代码,希望对大家在量化交易模块方面有所帮助。

量化交易其实就是使用大数据技术来代替人的主观判断,构建一个先进的机器学习模型进行决策,利用股票、期货、外汇市场的过去和当前信息来预测它未来的走向,目前量化交易在投资市场上大受追捧。

这里所构建的量化交易系统忽略了市场上的很多影响因素,单单从价格因素出发,通过研究、观察外汇市场上的价格曲线,构建机器学习模型,利用过去的价格去逼近未来的价格,经过检验所预测出来的价格具有较好的参考性,对投资者具有较大的帮助。

该量化交易系统采用神经网络模型,利用前5天的20个价格去逼近后一天的收盘价,而不考虑其它众多因素的影响。一个三层的神经网络可以以任意进度去逼近一个非线性函数。这里采用了外汇数据进行测试,数据来源:https://cn.investing.com/currencies/。这个网站里有很多外汇数据的历史价格信息,你可以在上面找到很多的历史数据。

人工神经网络(Artificial Neural Network,即ANN ),是20世纪80 年代以来人工智能领域兴起的研究热点。它从信息处理角度对人脑神经元网络进行抽象, 建立某种简单模型,按不同的连接方式组成不同的网络。在工程与学术界也常直接简称为神经网络或类神经网络。神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成。每个节点代表一种特定的输出函数,称为激励函数(activation function)。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重,这相当于人工神经网络的记忆。网络的输出则依网络的连接方式,权重值和激励函数的不同而不同。而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。目前,神经网络在人工智能领域应用得非常广泛。bp网络示意图如下:

目前该量化交易系统可能还有很多不完善的地方,希望广大读者能在上面找到一些启发,如果你对这个领域感兴趣,希望这篇文章对你有所帮助。

这里采用了英镑兑人民币的历史交易数据:

一共有近5年的日交易数据,有1327条记录。接下来,对该数据集进行训练集和测试集的划分,数据探索和数据检验等工作,利用sklearn的

sklearn.neural_network

来构建神经网络模型。最后,该量化交易系统还实现了数据监控的功能,随时地监控着市场上的价格变动,等到时机合适时会自动通知你。以下附上完整的源代码和配上一些讲述,如果有任何问题,欢迎留言交流。

以上是该量化交易系统用到的一些模块,有基础的数据处理模块,神经网络模块、评估分数模块、外汇价格监控用到的模块。

#读取数据

#重塑数据,适应模型预测

data_reshape函数把5年的英镑兑人民币历史价格数据进行重塑,用20个价格去逼近一个价格。

model_construct函数构建神经网络模型,并对测试集的结果进行预测。

l_pre是对日最低价的预测,h_pre是对日最高价的预测。

有了价格的预测之后,接下来对外汇的价格进行监控。

利用爬虫爬取外汇价格,当价格水平达到我们的期望时就采取相应的措施。

以上代码实现了自动化的外汇价格监控功能,并在时机适合时给你自动发送邮件。

技术需要沉淀,模型需要完善。希望与广大读者一道,共同推动大数据技术和量化交易的发展。学好技术,大家可以穿着睡衣挣大钱。鸟贵有翼,人贵有志,本社区期待广大读者的留言,我们将与你共同成长!

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注