隨著“AlphaGo”、“無人駕駛”、“大數據處理”等名詞不斷出現在公眾的視野中的時候,人工智能和機器學習這些詞被不斷的提起。www.emoneybtc.com甚至很多人認為: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
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
看看學習之後的曲線:
好了,以上就是一個簡單的機器學習案例。如果你能看懂的話,就會發現它不是那麼的高深莫測,寫一個機器學習的程序也是比較簡單,但是想要得到一個比較好的結果,確是相當困難的。如果你還是不能看懂的話,那就可以通俗的理解為:機器學習就是一個黑匣子(Black Box),你扔一堆數據進去學習下,然後如果效果好的話,你就可以把實時的數據交給它,讓它給你一個預測,如果效果不好的話,那就只能繼續努力了。
我們從上面這個簡單的機器學習可以看到,這個模型是不具有預測性,也就是說效果是不好的。其實,拿機器學習來做金融市場時間序列的預測,結果基本上也是不行的。很多實證的研究也表明金融時間序列的收益都是隨機波動的,不具有自相關的特性。
那既然機器學習在預測未來行情上,不具備顯著性。那麼為什麼還要用它呢?
我們都知道,AlphaGO自稱一天能和自己下幾百萬盤棋,它是通過無數次的自我學習戰勝了人類棋手。其實,從統計學上來說,機器學習就是能夠不斷訓練,不斷的犯錯,不斷的學習,從而提高估計的精度和概率。那麼對於外匯交易來講,機器學習可以很好的用在交易策略開發上,比如說在策略參數的選擇上,我們就可以嘗試用機器學習來幫助我們根據行情選擇較好的參數。
機器學習還在不斷的發展,各種已有的積累也容易被很快的更新和淘汰,想要了解這項技術,不斷的學習最前沿的相關知識和理論是必要的。至少能夠讓我們知道,外匯市場中很多宣傳自己的EA是使用人工智能來預測行情的基本上都是在做“銷售”。
還是那句話,機器學習沒有那麼高深莫測,重點是用到合適的地方。
外_匯_邦 WaiHuiBang.com
我們在區塊鏈技術的基礎上定義了一個分布式訪問控制系統。其基本思想是代表區塊鏈中主題的訪問權限,以便在訪問請求時輕松實施。通過利用區塊鏈優
混幣服務已經成為加密貨幣的一個組成部分。尤其是對於缺乏隱私和匿名的貨幣來說是非常適用的。對於那些想要將手中的幣清除掉污點的用戶來說,混幣服
印度政府加入最大的區塊鏈協會EEA;區塊鏈音樂平台Aurovine在印度推出;俄羅斯航空正在使用區塊鏈技術發售機票;烏克蘭政府將於十月開始
Particl 是開源的、保護個人隱私的交易平台,在比特幣源碼的基礎上,針對支付領域的需求而開發的一種新型匿名區塊鏈。通過市場、加密貨幣、
新華社香港7月21日電(記者方棟)支付寶日前宣布,旗下香港版“支付寶”AlipayHK已獲許可,其移動支付服務使用范圍將由粵港澳大灣區逐步
外_匯_邦 WaiHuiBang.com 日內穩定交易瀝血之作!5大部分、獨家秘招!日內穩定交易 月月出金 之 持續穩定盈利,以交
【原油期貨開戶辦理流程】原油期貨開戶條件是什麼 【原油期貨開戶辦理流程】原油期貨開戶條件是什麼
歡迎訪問 外 匯 邦 WWW.WaiHuiBang.com 市場敏感度:中含義:記錄新屋開工和未來建造許可證的數量發布新聞的網址:ww
最佳答案: 支付寶拼團失敗後系統會關閉交易並退款。支付寶拼團退款一般是按照普通交易訂單來處理的,主要
最佳答案: 火山掙錢還是快手掙錢,關鍵看你是怎麼去運營了,畢竟火山和快手只是個平台,需要你自己的發原