python數字貨幣量化交易開發——建立回測系統(一)
前言
本部落格主要用於記錄個人在數字貨幣量化中的一些真實經歷,主要用到的語言是python,非程式設計師出身,任何交流或者合作邀約(包括但不限於代做演算法或者交易)可直接私信或在下方評論,我會認真回覆的。
之所以重新做這樣一個記錄,是因為近年有過主動和一些拍腦門的演算法交易經歷,結果並不理想,本次重新入場,決定做一個絕對理性的trader,一切以絕對盈利為目的,大量資料回測為根據,寫本部落格的目的之一也是監督自己。
_
_
Episode 1. 個人ohlvc資料儲存探索
其實目前國內有很多網站是支援回測的,但在經過簡單學習後,發現在使用一些回測平臺時,如FMZ會遇到一些奇奇怪怪的bug,比如設定好了近半年的回測,會卡在某一天進行不下去,和個人程式設計不同,線上debug困難重重,於是毅然決然地決定開發自己的回測系統。
於是就遇到了第一個問題,個人比較青睞的1min、5min為單位的歷史柱狀圖,目前交易所普遍能夠調取的柱狀圖數量在1000-3000條這樣一個上限,顯然用於回測是不夠的。
所以要做的第一件事當然是解決問題~
搜尋各類交易所無果,於是思路迴轉——從今天開始向交易所調資料 慢慢建立自己的價格資料庫。
以csv格式儲存,30天為資料上限:
import time
import ccxt
import pandas as pd
symbol_list=[
'ETH/USDT',
'BTC/USDT',
] #只做最大的兩個交易品種ETH&BTC
exchange_id = 'huobipro'
exchange_class = getattr(ccxt, exchange_id)
exchange = exchange_class({
'timeout': 30000,
'enableRateLimit': True,
})
for symbol in symbol_list:
ohlcv_dict={}
b=pd.read_csv('str(symbol[0:3])+'_30d.csv')
ohlcv_dict=b.to_dict ('list')
recent_ohlcv=exchange.fetch_ohlcv (symbol, '1m')
for i in recent_ohlcv:
i[0]= time.strftime('%Y%m%d_%H:%M:%S',time.localtime(int(i[0])/1000))
ohlcv_dict[i[0]]=i
del(ohlcv_dict[i[0]][0])
records=len(ohlcv_dict)
d30_dict =ohlcv_dict.copy()
if records > 43200: #對超出30天的多餘資料作刪減
count=0
for key in ohlcv_dict.keys():
del d30_dict[key]
count +=1
if n>=records-43200:
break
save_ohlcv=pd.DataFrame(d30_dict)
save_ohlcv.to_csv('str(symbol[0:3])+'_30d.csv',mode='w',index=None)
print('save '+str(symbol)+' csv success!!!')
time.sleep(1)
print('--------------------------------')
而目前火幣我設定的fetch limit是它們交易所的調取上限2000條,粗略算了一下只要每天開啟一次併成功執行,資料庫就能自動更新並積累,之後要用的時候也是以時間為key的字典方式的儲存與呼叫。
到這裡為止,其實簡單的個人資料儲存就完成了,隨著時間的積累,在之後完成的回測邏輯的準確度也會上升,現在想想還挺美滋滋的,非常飄,隨即便開始著手回測邏輯的。
今天先更到這裡。
相關文章
- Python數字貨幣量化交易開發——構建回測功能Python
- 數字貨幣/期貨量化交易系統開發(交易演算法)| 量化交易系統開發原始碼示例演算法原始碼
- 數字貨幣交易系統開發、數字貨幣交易平臺開發、 虛擬數字貨幣交易平臺開發、區塊鏈數字貨幣交易系統開發區塊鏈
- 數字貨幣量化交易系統開發功能詳解丨量化交易開發原始碼模式原始碼模式
- 數字貨幣交易系統開發 數字貨幣交易軟體搭建
- 數字貨幣交易系統開發,場外幣幣交易系統開發
- 數字貨幣量化交易系統開發搭建執行架構指南架構
- 數字貨幣期貨合約交易系統開發,自動對衝量化交易所開發
- 免費數字貨幣交易系統、java免費數字貨幣交易系統、免費數字資產交易系統、數字貨幣交易所開源Java
- 免費開源數字貨幣交易所、免費開源數字貨幣交易系統、Java開源數字貨幣交易所 、Java開源數字貨幣交易系統Java
- 幣幣交易/系統開發/現貨量化+合約交易/技術開發python示例Python
- 數字貨幣量化交易平臺 數字貨幣量化交易平臺有哪些 雲度數字貨幣量化交易 什麼是量化交易 雲度量化介紹 數字貨幣市場的量化交易工具有哪些? 量化交易需要注意什麼?
- 數字貨幣現貨交易方式 | 數字貨幣現貨交易模式系統開發定製部署模式
- 青島數字貨幣交易系統開發核心
- 數字貨幣交易所繫統開發,去中化交易系統開發
- 數字貨幣合約量化系統開發(案例詳細)丨數字貨幣合約量化成熟原始碼開發原始碼
- 數字貨幣量化交易機器人系統開發|專案測試|案例詳情|原始碼出售機器人原始碼
- 數字貨幣交易所開發方案丨數字貨幣交易所繫統開發(正式版)丨數字貨幣交易所開發原始碼原始碼
- 數字貨幣交易平臺開發,虛擬幣自動搬磚量化交易平臺開發
- 數字資產法幣交易所開發幣幣交易系統開發
- 數字貨幣量化策略系統開發,搬磚平臺搭建
- 多幣種錢包系統開發,數字貨幣交易所繫統開發
- 符合數字貨幣市場的量化交易系統平臺架構設計開發搭建架構
- 數字貨幣量化合約/合約量化系統開發(開發策略)及案例原始碼原始碼
- 數字貨幣交易所開發(海外版)丨數字貨幣交易所繫統開發(swap交易所開發案例)
- 數字貨幣合約交易所開發,量化交易搬磚制度錢包app開發APP
- 數字貨幣交易所開發(案例)丨數字貨幣交易所繫統開發(JAVA/PHP開發)及原始碼JavaPHP原始碼
- 數字貨幣交易所開發詳情丨數字貨幣交易所繫統開發(詳細及邏輯)丨數字貨幣交易所原始碼原始碼
- 數字貨幣交易所錢包系統開發(開發說明)丨數字貨幣錢包交易所繫統開發(原始碼詳細)原始碼
- 數字貨幣交易所繫統開發(海外版)丨數字貨幣交易所開發(原始碼版)原始碼
- 加密貨幣交易模式系統搭建開發:量化交易帶來的優勢加密模式
- 期貨量化合約交易系統開發多少錢一套?(期貨量化合約交易系統開發流程)
- 數字貨幣撮合交易平臺開發,幣幣現貨交易網站軟體開發網站
- Python金融數字貨幣量化投資Python
- 數字資產多幣種錢包開發幣幣交易系統開發
- 數字貨幣交易所開發系統功能介紹 | 幣幣交易模式定製搭建部署模式
- 數字資產貨幣交易所繫統組成 | 數字資產貨幣交易所繫統開發解決方案
- 數字貨幣量化交易機器人搬磚/交易所繫統開發策略方案與步驟機器人