外汇平台广告

充值优惠月!金币优惠充值进行时!

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

2018-03-08 14:09   来源: 未知    本篇文章有415字,看完大约需要1分钟的时间   
随着“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
 

外汇小贴士:

外汇市场的外汇算法是什么?
常用算法包括:时间加权平均价格算法、分段订货算法、黑冰算法、价格算法、平衡影响和风险算法、最小影响算法、累积分配算法、交易者百分比算法、加权平均价格算法、到达价格算法等。例如:平衡影响和风险算法、最小影响算法只能用于美式期权交易,黑色冰算法只能用于美国价差合约和期货交易,交易量百分比算法仅适用于期货和股票交易。
然而,只有四种交易算法可以在外汇市场上使用:累积分配算法(Accumulate/Distribute)、REACH 价格算法(ArrivalPrice)、分段顺序算法和时间加权平均价格算法(TWAPTimeWeighetdAverageprice)。
 
算法交易在执行速度、效率上都有了很大的提高,除了给普通投资者带来交易方便和利润稳定外,还在交易次数上,案例的数量也对经纪人的流动性起到了积极的作用,当然,经纪人的佣金也会带来一定的增加,这也是一定的固定利润。
关键词:
责任编辑:618wh
  
来源:未知
   

相关文章

炒外汇开户
炒外汇ea大师
炒外汇富拓开户

外汇指标一区

镇店之宝 | 最新MT4指标 | 支撑阻力 | 通道指标 | 震荡指标 | 强弱指标 | 波段指标 | 均线指标 | 箭头指标 | 背离指标 | 分形指标 | 成交量指标 | 抛物线指标 | MT4脚本 | 跟单 | 统计 | 面板 | 风控 | 环境/历史 | 没有未来函数 | 指标源码库 |

外汇指标二区

热门MT4指标 | 布林带 | MA指标 | KDJ指标 | RSI指标 | MACD指标 | CCI指标 | zigzag指标 | ADX指标 | ATR指标 | HMA均线 | 斐波那契 | 最新交易系统 | VIP交易系统 | 热门交易系统 | 外汇1/5分钟系统 | 外汇15/30分钟系统 | 外汇1/4小时系统 | 外汇全时段系统 | 外汇日线图系统 | 外汇MT5指标 | MT5指标模版 | 外汇MT5脚本 |

MQL5市场区

剥头皮EA | 趋势型EA | 网格型EA | 马丁型EA | 多货币EA |

推荐EA精品区

精品外汇EA | 最新EA | 热卖EA | 趋势型EA | 对冲型EA | 剥头皮EA | 马丁型EA | 网格型EA | 多货币EA | 黄金原油EA |

外汇EA普通区

趋势型EA | 马丁型EA | 剥头皮EA | 网格型EA | 对冲型EA | 震荡型EA | MT5外汇EA |
分享本站到

免费热线:1500-0043-492