⑴ 期貨程序化交易系統是如何實現的,用的是什麼編程語言
、程序化交易系統目前主要是通過計算機程序實現的,其實就是把交易者決策的過程用計算機語言描述出來,然後由計算機給出交易建議或直接發送交易指令到期貨公司的交易系統中去,完成一筆交易。
比如我們用自然語言思考某個品種是否應該買入賣出時:「如果大豆0901價格跌破3000元,則開倉賣出三分之一......」用計算機語言描述時可能就是:
「IF A0901<=3000 THEN SELL......」
當然實際上的程序編寫是比較復雜的,因為要做大量的邏輯判斷和公式計算。
2、 理論上來講,用什麼語言都可以完成這樣的任務,但因為涉及到大量的數據讀寫和網路存取,所以最好用自帶資料庫功能的編程語言,比如Delphi,不但數據 庫功能很強,而且可直接讀寫SQL-Server、Oracle、Sybase等證券期貨行業普遍採用的資料庫,相應的網路控制項也齊全。
3、此類交易系統適合所有的交易市場,證券、期貨、外匯都已經有了類似的交易系統,但各自的模型基礎不一樣,因為這些軟體都是根據交易者的經驗來建立交易模型並編寫的,而不同的交易者思路是不完全相同的。
4、在證券市場和期貨市場上,如果個人要建立一個計算機程序化交易系統的話,首先要做的當然是建立交易模型,也就是把自然語言描述的交易決策過程轉換成計算機語言。
其次是建立交易介面,這里有兩個介面問題要解決,一是你的交易程序要讀取行情軟體的數據,以便系統根據行情數據作出交易決策並發出交易指令;二是你的交易程序發出的指令要下到證券公司(期貨公司)的交易伺服器上去,就像你自己敲單一樣。
介面問題涉及到TCP/UDP埠的讀寫,證券(期貨)公司和交易所的通信都是通過TCP/UDP進行的,他們不對最終客戶開放介面,這就需要你自己破解數據格式了。
所以要建立一套有效的程序化交易系統,不但要求程序的編寫者有成功的、長期有效的交易經驗,還要懂得將這些經驗用計算機語言描述出來,這不是一個很簡單的過程。
⑵ python開發EA外匯交易怎麼開發
1.首先,你要有一個EA,必須要有以ex4為擴展名的,如果只有mq4文件的話,就要用MetaTrader自帶的編輯器MetaEditor打開,將mq4通過編譯(compile)並且要不出現錯誤,才能在原存放mq4的文件夾下面得到一個同名的ex4文件。
2.將這個ex4文件復制到MetaTrader 4所在的文件夾下面的experts文件夾下,比如:D:Program FilesACTC MetaTrader 4experts,關閉並重新打開MetaTrader 4。
3.在「導航」下面的「智能交易系統」下面右鍵點擊你想要使用的EA。
拓展資料:
1、 對於想要在 mt5+python 發展 ea 的交易者,最大會立即遇到的困難是,mt5 現在還沒有提供 python 可以調用 mt5 backtest 的介面,也就是在 python 上開發 ea 是無法在 mt5 上作復盤測試的,只能另外再找 python 的第三方 backtest 庫再多寫介面來達成。 復盤不是只有驗證策略的有效性,也扮演調試策略參數的重要工作,所以復盤對於開發 ea 是相當重要的環節。
2、另外在執行速度上,mt5+python ea 的速度自然是無法和純在 mt5 開發的 ea 相比,這個是實際執行壓力測試後得到的結論。因為 mt5+python ea 在調用當前價格和 K 線數據作為信號計算,和調用交易記錄,需要透過 mt5 python 官方庫與 mt5 建立在本地的一個加密的 socket 連接來作,讀寫速度自然是比不過 mt5 ea 直接從 mt5 內存讀取行情數據和訂單信息。雖然 python 是腳本編程語言,與其他編譯型的編程語言程序比自然是不快,但是對於 ea 的應用,這樣的慢是不太感受的到,可以直接感受到與相同 mt5 ea 的慢,主要是慢在與 mt5 間的大量數據傳送和 io 讀寫差異上,尤其是連續調用行情數據比較多時,這樣的速度差異就相當明顯了。
3、這還是有優化方式的,可以仿 mql5 指標對於初始和後續的行情讀取,採取精簡量的讀取方式。 既然有這些缺點,在 mt5 開發 python ea 還是在有些領域有不可替代的優點,所以 metaquotes 才會在 2020 年最終還是把 python 介面和函數庫提供出來。因為現在許多衍生性交易平台都已經具備了 python api,而經過這些年,python 已經成為量化交易程序最有人氣的編程語言,這也讓許多交易團隊在建構量化交易的環境,會優先考慮 python。 另外在人工智慧的量化交易,python 的機器學習和統計數組處理的第三方庫大概是最豐富的編程語言。對於交易策略里有用到 tensorflow 這類機器學習庫,使用 python 來開發自動交易程序是最佳的選擇。 mt5 或是 mt4 ea 受限於當時 metaquotes 自定的限制,只能作單線程運行,當同時觸發事件函數如 OnTimer OnTick OnChartEvent,mt5 底層會作互斥鎖限制一個線程運行。
操作環境: 瀏覽器 電腦端:macbookpro mos14打開goole版本 92.0.4515.131
⑶ python量化哪個平台可以回測模擬實盤還不要錢
Python量化投資框架:回測+模擬+實盤
Python量化投資 模擬交易 平台 1. 股票量化投資框架體系 1.1 回測 實盤交易前,必須對量化交易策略進行回測和模擬,以確定策略是否有效,並進行改進和優化。作為一般人而言,你能想到的,一般都有人做過了。回測框架也如此。當前小白看到的主要有如下五個回測框架: Zipline :事件驅動框架,國外很流行。缺陷是不適合國內市場。 PyAlgoTrade : 事件驅動框架,最新更新日期為16年8月17號。支持國內市場,應用python 2.7開發,最大的bug在於不支持3.5的版本,以及不支持強大的pandas。 pybacktest :以處理向量數據的方式進行回測,最新更新日期為2個月前,更新不穩定。 TradingWithPython:基於pybacktest,進行重構。參考資料較少。 ultra-finance:在github的項目兩年前就停止更新了,最新的項目在谷歌平台,無奈打不開網址,感興趣的話,請自行查看吧。 RQAlpha:事件驅動框架,適合A股市場,自帶日線數據。是米筐的回測開源框架,相對而言,個人更喜歡這個平台。 2 模擬 模擬交易,同樣是實盤交易前的重要一步。以防止類似於當前某券商的事件,半小時之內虧損上億,對整個股市都產生了惡劣影響。模擬交易,重點考慮的是程序的交易邏輯是否可靠無誤,數據傳輸的各種情況是否都考慮到。 當下,個人看到的,喜歡用的開源平台是雪球模擬交易,其次是wind提供的模擬交易介面。像優礦、米筐和聚寬提供的,由於只能在線上平台測試,不甚自由,並無太多感覺。 雪球模擬交易:在後續實盤交易模塊,再進行重點介紹,主要應用的是一個開源的easytrader系列。 Wind模擬交易:若沒有機構版的話,可以考慮應用學生免費版。具體模擬交易介面可參看如下鏈接:http://www.dajiangzhang.com/document 3 實盤 實盤,無疑是我們的終極目標。股票程序化交易,已經被限制。但對於萬能的我們而言,總有解決的辦法。當下最多的是破解券商網頁版的交易介面,或者說應用爬蟲爬去操作。對我而言,比較傾向於食燈鬼的easytrader系列的開源平台。對於機構用戶而言,由於資金量較大,出於安全性和可靠性的考慮,並不建議應用。 easytrader系列當前主要有三個組成部分: easytrader:提供券商華泰/傭金寶/銀河/廣發/雪球的基金、股票自動程序化交易,量化交易組件 easyquotation : 實時獲取新浪 / Leverfun 的免費股票以及 level2 十檔行情 / 集思路的分級基金行情 easyhistory : 用於獲取維護股票的歷史數據 easyquant : 股票量化框架,支持行情獲取以及交易 2. 期貨量化投資框架體系 一直待在私募或者券商,做的是股票相關的內容,對期貨這塊不甚熟悉。就根據自己所了解的,簡單總結一下。 2.1 回測 回測,貌似並沒有非常流行的開源框架。可能的原因有二:期貨相對股票而言,門檻較高,更多是機構交易,開源較少; 去年至今對期貨監管控制比較嚴,至今未放開,只能做些CTA的策略,另許多人興致泱泱吧。 就個人理解而言,可能wind的是一個相對合適的選擇。 2.2 模擬 + 實盤 vn.py是國內最為流行的一個開源平台。起源於國內私募的自主交易系統,2015年初啟動時只是單純的交易API介面的Python封裝。隨著業內關注度的上升和社區不斷的貢獻,目前已經一步步成長為一套全面的交易程序開發框架。如官網所說,該框架側重的是交易模塊,回測模塊並未支持。 能力有限,如果對相關框架感興趣的話,就詳看相關的鏈接吧。個人期望的是以RQAlpha為主搭建回測框架,以雪球或wind為主搭建模擬框架,用easy系列進行交易。
⑷ Quant 應該學習哪些 Python 知識
1. 如果還需要Deep Learning方面的東西的話,可以考慮Theano或者Keras。這兩個東西可能會用在分析新聞數據方面。不過不是很推薦使用這類方法去做量化模型,因為計算量實在是太大,成本很高。
2. 交易框架方面,除了vn.py,還推薦PyAlgoTrade框架,github上可以搜到。私以為這個框架比vn.py牛逼太多了,畢竟是一個在金融IT領域混跡近20年的老妖的作品,架構設計不是一般的優秀。
3. 國內的話,ricequant是個不錯的選擇,雖然使用的是Java,但是團隊我見過,都是做金融IT出身的,基本上都有7、8年以上經驗,底層功底非常扎實,做事情都很靠譜。現在他們也在考慮把SDK擴展到Python這邊。
4. 國內的行情和交易介面,使用的是自己的協議(比如CTP介面使用的是FTD協議),而不是國際上廣泛使用的FIX協議,並且都不開源。如果需要連接行情,還需要考慮將介面SDK為python封裝一下。(修改:評論中有人提到很多券商也開放了FIX介面,不過似乎是在內網使用)
5. 有人談到資料庫了,這里我也說一下,對於高頻tick級別的數據,其量級可以達到每天TB級別,普通的關系資料庫是扛不住的。如果試圖使用傳統的關系資料庫,比如Oracle之類的可以省省了。對付這種級別的數據,採用文件系統+內存索引會更好。不過這種場景,一般也就是機構裡面能碰到了,個人quant可以不用考慮。
⑸ python可以讀取到國內期貨歷史tick數據嗎
歷史tick數據是需要花錢買的。和用什麼軟體沒關系。
⑹ 如何用python進行期貨程序化交易
、程序化交易系統目前主要是通過計算機程序實現的,其實就是把交易者決策的過程用計算機語言描述出來,然後由計算機給出交易建議或直接發送交易指令到期貨公司的交易系統中去,完成一筆交易。
⑺ tushare的介面怎麼樣使用
安裝TuShare
方式1:pip install tushare
方式2:訪問https://pypi.python.org/pypi/tushare/下載安裝
方式3:將源代碼下載到本地python setup.py install
升級TuShare
1、先查看本地與線上的版本版本號:
pip search tushare
2、升級TuShare:
pip install tushare --upgrade
確認安裝成功
import tushare as ts
print ts.__version__
獲取歷史交易數據
import tushare as ts
df = ts.get_hist_data(『600848』)
ts.get_hist_data(『600848』,ktype='W『) #獲取周k線數據
ts.get_hist_data('600848』,ktype='M『) #獲取月k線數據
ts.get_hist_data('600848』,ktype='5『) #獲取5分鍾k線數據
ts.get_hist_data('600848』,ktype='15『) #獲取15分鍾k線數據
ts.get_hist_data('600848』,ktype='30『) #獲取30分鍾k線數據
ts.get_hist_data('600848』,ktype='60『) #獲取60分鍾k線數據
ts.get_hist_data('sh』)#獲取上證指數k線數據,其它參數與個股一致,下同
ts.get_hist_data(『sz』)#獲取深圳成指k線數據 ts.get_hist_data(『hs300』)#獲取滬深300指數k線數據
ts.get_hist_data(『sz50』)#獲取上證50指數k線數據
ts.get_hist_data(『zxb』)#獲取中小板指數k線數據
ts.get_hist_data(『cyb』)#獲取創業板指數k線數據
Python財經數據介麵包TuShare的使用
獲取歷史分筆數據
df = ts.get_tick_data(『000756','2015-03-27』)
df.head(10)
Python財經數據介麵包TuShare的使用
獲取實時分筆數據
df = ts.get_realtime_quotes(『000581』)
print df[['code','name','price','bid','ask','volume','amount','time']]
返回值說明:
0:name,股票名字
1:open,今日開盤價
2:pre_close,昨日收盤價
3:price,當前價格
4:high,今日最高價
5:low,今日最低價
6:bid,競買價,即「買一」報價
7:ask,競賣價,即「賣一」報價
8:volumn,成交量 maybe you need do volumn/100
9:amount,成交金額(元 CNY)
10:b1_v,委買一(筆數 bid volume)
11:b1_p,委買一(價格 bid price)
12:b2_v,「買二」
13:b2_p,「買二」
14:b3_v,「買三」
15:b3_p,「買三」
16:b4_v,「買四」
17:b4_p,「買四」
18:b5_v,「買五」
19:b5_p,「買五」
20:a1_v,委賣一(筆數 ask volume)
21:a1_p,委賣一(價格 ask price)
…
30:date,日期
31:time,時間
⑻ 期貨程序化交易系統是如何實現的,用的是什麼編程語言
、程序化交易系統目前主要是通過計算機程序實現的,其實就是把交易者決策的過程用計算機語言描述出來,然後由計算機給出交易建議或直接發送交易指令到期貨公司的交易系統中去,完成一筆交易。
比如我們用自然語言思考某個品種是否應該買入賣出時:「如果大豆0901價格跌破3000元,則開倉賣出三分之一......」用計算機語言描述時可能就是:
「IF
A0901<=3000
THEN
SELL......」
當然實際上的程序編寫是比較復雜的,因為要做大量的邏輯判斷和公式計算。
2、
理論上來講,用什麼語言都可以完成這樣的任務,但因為涉及到大量的數據讀寫和網路存取,所以最好用自帶資料庫功能的編程語言,比如Delphi,不但數據
庫功能很強,而且可直接讀寫SQL-Server、Oracle、Sybase等證券期貨行業普遍採用的資料庫,相應的網路控制項也齊全。
3、此類交易系統適合所有的交易市場,證券、期貨、外匯都已經有了類似的交易系統,但各自的模型基礎不一樣,因為這些軟體都是根據交易者的經驗來建立交易模型並編寫的,而不同的交易者思路是不完全相同的。
4、在證券市場和期貨市場上,如果個人要建立一個計算機程序化交易系統的話,首先要做的當然是建立交易模型,也就是把自然語言描述的交易決策過程轉換成計算機語言。
其次是建立交易介面,這里有兩個介面問題要解決,一是你的交易程序要讀取行情軟體的數據,以便系統根據行情數據作出交易決策並發出交易指令;二是你的交易程序發出的指令要下到證券公司(期貨公司)的交易伺服器上去,就像你自己敲單一樣。
介面問題涉及到TCP/UDP埠的讀寫,證券(期貨)公司和交易所的通信都是通過TCP/UDP進行的,他們不對最終客戶開放介面,這就需要你自己破解數據格式了。
所以要建立一套有效的程序化交易系統,不但要求程序的編寫者有成功的、長期有效的交易經驗,還要懂得將這些經驗用計算機語言描述出來,這不是一個很簡單的過程。
⑼ 如何實現股票或者期貨的自動化交易
程序化交易跟機械化交易本質沒啥區別
只是自動化而已
跟高手能不能拼在於
首先如何定位高手?
比如,年收益100倍?10倍?1倍?0.3倍?
其實這些神話都有人實現過?
拉瑞就實現過年收益100倍,但我們為啥在富豪榜中能看到巴菲特,而沒有拉瑞?
拉瑞的確是高手,但是他肯定不穩定,或者在高收益的要求下不穩定
手動交易的思路我覺得跟主觀交易的思路是不同的
一般人想把主觀的思路程序化,這也許可能(有句話叫:沒有什麼不可能嘛)
但對初學者,這樣做會讓你很累,
程序就走機械的路,主觀就走靈活的路
⑽ 怎樣用 Python 寫一個股票自動交易的程序
方法一
前期的數據抓取和分析可能python都寫好了,所以差這交易指令介面最後一步。對於股票的散戶,正規的法子是華寶,國信,興業這樣願意給介面的券商,但貌似開戶費很高才給這權利,而且只有lts,ctp這樣的c++介面,沒python版就需要你自己封裝。
方法二
是wind這樣的軟體也有直接的介面,支持部分券商,但也貴,幾萬一年是要的。
方法三
滑鼠鍵盤模擬法,很復雜的,就是模擬鍵盤滑鼠去操作一些軟體,比如券商版交易軟體和大智慧之類的。
方法四
就是找到這些軟體的關於交易指令的底層代碼並更改,不過T+1的規則下,預測准確率的重要性高於交易的及時性,花功夫做數據分析就好,交易就人工完成吧