首页学院交易策略EA智能交易文章详细

一个案例看懂外汇交易中的机器学习

外汇网2021-06-17 09:41:34 55
汇外网 - 全球专业的黄金外汇门户导航行情资讯网站

伴随“AlphaGo”、“无人驾驶”、“大报告处理”等名词持续显现在公众的视野中的时机,人工智能和机器学习这些词被持续的提起。甚至很多人觉得:2016年是算法时代的元年,2017年人工智能将令得到愈加迅速的成长。笔者也相信这是一个趋势,由于基于算法的机器学习是人工智能的核心,运用恰当的话,的确非常强大,给各行各业导致全新的面貌。

当前,在国内外量化交易领域已经有少数CTA策略或者外汇EA会涉及一部分机器学习。那么机器学习见底是假使运转的呢?今天就给大家演示下用简单机器学习去交易外汇行情预期。

废话不多说,直接上货吧:

1. 首先,把需要处理的报告做好准备,

前三根k线升幅

目前k线升幅

下一根暴跌(0)/(1)/涨(2)/暴涨(3)

10.36787091

14.01653763

1

0.56490792

-10.0514786

1

6.024039683

7.334618459

1

14.01653763

-4.792107118

1

-10.0514786

14.47722188

2

7.334618459

31.2593872

3

-4.792107118

11.13596167

0

Mt4中用脚本处理好报告,再写入csv里,作为我们的训练报告。

报告量为1.8万条,报告取样为XAUUSD 1h周期。

2. 导入报告,执行处理,

import pandas as pd

import numpy as np

from sklearn.cross_validation import train_test_split

from sklearn.preprocessing import StandardScaler

#获取经历mt4处理的报告集

data = pd.read_csv('XAUUSDtick.csv')

#报告x,y分类

X = data.iloc[:,[1,2]].values

y = data.iloc[:,[3]].values

y = y.ravel()

X_train,X_test,y_train,y_test = train_test_split(X , y , test_size = 0.35, random_state = 0)

c = StandardScaler()

c.fit(X_train)

X_train_std = sc.transform(X_train)

X_test_std = sc.transform(X_test)

3. 用sklearn的感知机模型训练报告

from sklearn.linear_model import Perceptron

#迭代次数1000次,学习率0.3

= Perceptron(n_iter = 1000, eta0 = 0.3, random_state = 0)

.fit(X_train_std,y_train)

y_pred = ppn.predict(X_test_std)

rint 'Misclassified samples:%d' % (y_test != y_pred).sum()

rint 'Accuracy:%.2f'% accuracy_score(y_test,y_pred)

好,我们运行代码,得到结果:

Misclassified samples:2942

Accuracy:0.47

1. 用逻辑回归模型预期涨跌

from sklearn.linear_model import LogisticRegression

lr = LogisticRegression(C=1000.0 , random_state =0)

lr.fit(X_train_std,y_train)

y_pred = lr.predict(X_test_std)

rint 'Misclassified samples:%d' % (y_test != y_pred).sum()

rint 'Accuracy:%.2f'% accuracy_score(y_test,y_pred)

运行下:

Misclassified samples:2852

Accuracy:0.49

看看学习之后的曲线:

好了,以上就是一个简单的机器学习案例。假使你能看懂的话,就会发现它不是那么的高深莫测,写一个机器学习的程序也是比较简单,但是想要得到一个比较好的结果,确是相当问题的。假使你依旧不能看懂的话,那就可以通俗的理解为:机器学习就是一个黑匣子(Black Box),你扔一堆报告进去学习下,然后假使效果好的话,你就可以把实时的报告交给它,让它给你一个预期,假使效果不好的话,那就只能继续付出了。

我们从上面这个简单的机器学习可以目睹,这个模型是不具有预期性,也就是说效果是不好的。其实,拿机器学习来做金融市场时间序列的预期,结果差不多也是不行的。很多实证的研究也显示金融时间序列的收益均为随机波动的,不具有自有关的特性。

那既然机器学习在预期将来行情上,不具备明显性。那么为何还要用它呢?

我们都知道,AlphaGO自称一天能和自己下几百万盘棋,它是通过无数次的自我学习战胜了人类棋手。其实,从统计学上来看,机器学习就是能够持续训练,持续的犯错,持续的学习,进而提升预期的精度和几率。那么对于外汇交易来讲,机器学习可以很好的用在策略逻辑开发上,比如说在策略参数的选择上,我们就可以试图用机器学习来帮助我们依据行情选择较好的参数。

机器学习仍在持续的成长,各种已有的积攒也容易被迅速的更新和淘汰,想要了解这项技术,持续的学习最前沿的有关知识和理论是必要的。起码能够让我们知道,外汇市场中很多宣传自己的EA是运用人工智能来预期行情的差不多均为在做“销售”。

依旧那句话,机器学习没有那么高深莫测,着重是用到合适的地方。

标签:

随机快审展示
加入快审,优先展示

加入VIP