手机版

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

阅读 :
外_汇_邦 WaiHuiBang.com

随着“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)

sc = StandardScaler()

sc.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

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

ppn.fit(X_train_std,y_train)

y_pred = ppn.predict(X_test_std)

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

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

 

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

Misclassified samples:2942

Accuracy:0.47

 

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

 

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)

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

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

 

运行下:

 

Misclassified samples:2852

Accuracy:0.49

 

看看学习之后的曲线:

 

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

 

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

 

我们从上面这个简单的机器学习可以看到,这个模型是不具有预测性,也就是说效果是不好的。其实,拿机器学习来做金融市场时间序列的预测,结果基本上也是不行的。很多实证的研究也表明金融时间序列的收益都是随机波动的,不具有自相关的特性。

 

那既然机器学习在预测未来行情上,不具备显著性。那么为什么还要用它呢?

 

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

 

机器学习还在不断的发展,各种已有的积累也容易被很快的更新和淘汰,想要了解这项技术,不断的学习最前沿的相关知识和理论是必要的。至少能够让我们知道,外汇市场中很多宣传自己的EA是使用人工智能来预测行情的基本上都是在做“销售”。

 

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

 

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

外_汇_邦 WaiHuiBang.com
本文标题:一个案例看懂外汇交易中的机器学习 - MT4平台MQL4编程学习
本文地址:https://www.waihuibang.com/fxschool/autotrading/mql4/40720.html

相关文章

  • 怎样编制外汇EA自动交易系统

    以下是一些简单的源码,供参考学习。 //+------------------------------------------------------------------+ //| Designed by OKwh, China | //| Copyright 2007, OKwh Dxdcn | //| | //+----------------------...

    MQL4编程学习
  • EA智能交易

      EA智能交易:  智能交易是Expert Advisor(简称EA)的中文译名,也可译作“专家问”,俗称智能交易系统,是由电脑模拟交易员的下单操作进行机器交易的过程;电脑根据预先编辑好的交易策略程序来执行交易定单。自动交易...

    MQL4编程学习
  • EA编程教程第五讲 操作符

    1 复合语句。一个复合操作(版块)有一个或多个语句构成,他们由大括号和小括号({})包括起来,注意小括号后面不需要分号(;) 例如:if(x==0){Print("invalid position x=",x);return;}2 表达式一个表达式由分号(;)结束,一个分号(;)也...

    MQL4编程学习
  • mt4智能交易系统的突出好处

    ;目前很多的投资者都对mt4智能交易系统很感兴趣,他们都希望可以使用一个最佳的交易系统,从而就可以从外汇交易市场中获取交易收益,该交易系统是深受广大投资者认可以及肯定的系统,其优势深深吸引广大投资者的注意,他们...

    MQL4编程学习
  • MT4中有哪些常用的快捷键?
    MT4中有哪些常用的快捷键?

    MT4是市场行情接收软件,由迈达克软件公司发布,提供免费试用,那么,MT4中有哪些常用的快捷键? Ctrl+M - 市场报价Ctrl+N - 导航Ctrl+T - 帐号终端Ctrl+D - 数据窗口Ctrl+G - 网格Ctrl+L - 成交量Ctrl+O - 选项Ctrl+F -...

    MQL4编程学习
你可能感兴趣