klipc的小助理

KlipC使用Python模型和机器学习来计算货币(EUR / USD)未来走势

今天在本文中,KlipC的风险总监和机器学习专家Philip Nucci将教我们的用户如何使用名为支持向量回归(SVR)的机器学习算法创建直观的货币预测Python程序。该程序将读取EUR / USD的历史数据和波动性,并根据当天价格预测开盘价。我们选择EUR / USD是因为它是最广为人知的货币对,并且在货币市场中的流动性最强。


 


对于我们的非程序员来说,支持向量回归(SVR)是支持向量机的一种,并且是一种对数据进行回归分析的监督学习算法。这种回归的SVM版本是由西方几位著名的计算机科学家在1996年提出的。SVR生成的模型仅取决于训练数据的子集,因为构建模型的成本函数会忽略任何接近模型预测的训练数据。


 


支持向量机的优点:


1、在高维空间中有效

2、在分离时具有良好的分离效果

3、在维度数大于样本数的情况下有效


支持向量机回归的缺点:


1、当我们有大量数据集时(这就是为什么我们用每日而不用Tick数据的原因),表现会不佳。


2、如果数据集混乱,则性能低下。(大量附加的无意义的数据)


内核类型:

1、线性的

2、多项式

3、径向基函数

4、 Sigmoid核


让我们开始吧:


由于Nucci先生不会说中文,因此该翻译文章要用英文代码,如果您对代码有任何疑问或需要帮助来创建自己的代码,请与KlipC的一位客户经理联系。


Nucci表示:“在编写一行代码之前,我想做的第一件事是在代码的注释中加入描述。这样,我在回顾我的代码时,就能确切地知道它的作用了。”


 


现在,我们需要导入python软件包,以便更易于编写程序。


 


然后,我们需要做的是将从任意一个数据服务器下载EUR/USD的历史数据加载到名为“ edf”的变量中,该变量是欧元数据的缩写。如果您需要使用实际数据的副本,请随时发表评论或发送电子邮件至Better@KlipC.com。


然后我们打印前13行数据向您展示。


注意:这是从2018年1月1日至2018年1月30日(一月的前30天的数据)。


 

通过将变量设置为空列表来创建用作独立数据集和从属数据集的变量。


 

获取数据集中的行和列,可以用来查看它们的计数,合计有30行6列数据。


 

打印最后一行数据(这将是我们测试的数据)。请注意,日期是2018–01–31,所以日期是31。这将是预测开盘价为1.24131的模型输入。


通过获取除最后一行(稍后将用于测试模型)之外的所有数据,重新创建数据帧,并将最后一行丢失的新数据存储回“edf”。然后打印新数据集的新行数和列数。


 

从“Date”列中获取所有行,将其存储到一个名为“ edf_dates”的变量中,从“Open”列中获取所有行,并将数据存储到一个名为“ edf_open”的变量中。


 


创建独立的数据集“ X”,并将数据存储在变量“dates”中。

创建相关数据集“ y”,并将数据存储在变量“prices”中。

两者都可以通过将数据附加到每个列表来完成。


注意:对于独立数据集,我们只需要日期开始的一天,因此我使用拆分函数来获取日期,并将其转换为整数,然后将数据追加到日期列表中。


 

并查看数据集中记录的日期。


创建一个函数,该函数使用3个不同的支持向量回归(SVR)模型和3个不同的内核,以查看哪个执行最佳。该函数将具有三个参数,即日期、价格和我们要进行预测以获取价格的日期。为此,我将首先创建具有3个不同内核(线性、多项式、径向基函数)的3个SVR模型。接下来,KlipC将使用日期和价格数据训练每个模型。最后但并非最不重要,我们将在图表上绘制模型,以查看哪个模型最适合并返回当天的预测。


 


现在我们可以开始进行EUR/USD 价格预测了。回顾原始数据集中遗漏的最后一行数据,日期为2019–01–31,因此日期为31。这将是预测开放价格为1.24131模型的输入。


因此,现在我将给定模型的价值或31天来预测开盘价。下图中的最佳模型似乎是RBF,它是一个支持向量回归模型,使用了一个称为径向基函数的核函数的核。该模型预测第31天的价格为1.24181,与实际价格1.24131非常接近。



就这样! KlipC获取了我们自己的SVR程序来预测 EUR/USD欧美的走势。如果您想查看我们的网站和我们采用的数据,请通过电子邮件和我们对接,请随时与我们联系。预测金融产品价格走势的未来将极大地依赖于机器学习。但是,KlipC需要提醒读者们,模型是否运作良好很大程度上取决于以下三点。


1、金融产品类型


2、数据的有效性


3、市场新闻/突发事件


最终KlipC提醒大家,我们身处金融领域,由于未知的全球事件(无论是经济还是国际事件),市场将大幅波动,我们是无法对此进行控制的。 在这样的时代,任何基于历史数据的预测都是无用的。这就是风险和资金管理发挥作用的地方,也是我们在一个充满未知因素的世界中坚持的最重要的事情。




评论