quantaxis是國內(nèi)一款非常著名的量化開源框架校读,適合量化中小團隊,天總無償分享自己公司的核心開源框架造福廣大量化愛好者耕陷,真是值得點贊谜慌!自己也是剛使用quantaxis沒多久,看了天總在bilibili的直播視頻对湃,自己踩了很多坑崖叫,我想總結(jié)下在windows上用quantaxis搭建模擬盤,并使用隨機行情的一個流程拍柒,非docker拉起方式心傀。本人只是python愛好者,文科出身拆讯,非專業(yè)化用詞請見諒脂男。
一养叛、環(huán)境準備
首先安裝anaconda3.6以上版本,為避免跟已有安裝包沖突宰翅,推薦重新建立個虛擬環(huán)境弃甥,具體操作如下。
1汁讼、建立python虛擬環(huán)境潘飘。win+r 輸入cmd ,打開cmd命令行(powershell虛擬環(huán)境我這邊用不了掉缺,推薦用cmd)命令行輸入:
conda create -n py36 python=3.6
(py36我給取的虛擬環(huán)境名稱卜录,你可以改成自己的)。同理眶明,如果你想使用3.7版本的Python你就把后面的3.6改成3.7艰毒。
2、進入虛擬環(huán)境搜囱。
activate py36
二丑瞧、安裝quantaxis 模擬交易相關(guān)模塊
有了虛擬環(huán)境,咱們繼續(xù)下載quantaxis的相關(guān)代碼蜀肘,主要涉及以下模塊:
1绊汹、QUANTAXIS
安裝命令:
pip install quantaxis
2、QA后臺服務(wù)QUANTAXIS_WEBSERVER
安裝命令:
pip install https://github.com/yutiansut/tornado_http2/archive/master.zip
pip install tornado==5.1.1
pip install quantaxis_webserver
運行命令:
另外打開一個cmd命令行扮宠,激活虛擬環(huán)境(activate py36)西乖,后面服務(wù)開啟方式同,不再重復(fù)坛增。
quantaxis_webserver
輸入以后顯示如下
3获雕、QA可視化網(wǎng)頁終端基礎(chǔ)版本 QADESK_BASIC
安裝命令:
git clone https://github.com/yutiansut/QADESK_BASIC.git
(需要自己下載git)
或者直接進入QADESK_BASIC ,自己下載壓縮包收捣,解壓到自己想要的文件夾:
打開下載后目錄中index.html文件届案,效果如下,先不用管它:
4罢艾、基于RABBITMQ的消息分發(fā)訂閱 QAPUBSUB
安裝命令:
pip install quantaxis_pubsub
需要進行以下配置(這里抄了天總的文檔楣颠,感謝天總的無私奉獻!)
配套服務(wù)配置流程1:—安裝elang和rabbitmq咐蚯,安裝流程參考這里童漩,其中軟件的版本下載官網(wǎng)最新的即可。
配套服務(wù)配置流程2:—配置rabbitmq: 啟用插件仓蛆、創(chuàng)建用戶睁冬、分配角色、設(shè)置權(quán)限,參考鏈接豆拨。rabbitmq配置好了之后運行如下命令
以下服務(wù)開啟(默認端口在開啟對應(yīng)服務(wù)時有提示)
rabbitmq-plugins enable rabbitmq_management
rabbitmqctl add_user admin admin
rabbitmqctl set_user_tags admin administrator
rabbitmqctl set_permissions -p "/" admin '.*' '.*' '.*'
這個時候直奋,你可以在網(wǎng)頁打開:
http://127.0.0.1:15672,并用用戶名:admin 密碼:admin登入rabbitmq施禾。
5脚线、模擬行情生成 QUANTAXIS_RandomPrice
使用模擬行情的好處就是任何時間都可以拉起來測試,不需要真實行情弥搞。
安裝命令:
pip install quantaxis-randomprice
運行命令:
QARC_Random --code au1912 --date 20191101 --price 340 --interval 1
上面意思就是模擬au1912合約的歷史行情數(shù)據(jù)邮绿,起始價格340,日期20191102攀例。
這個時候你可以打開rabbitmq船逮,點擊exchange,你可以看到模擬的tick數(shù)據(jù)正在pub到這里。
6粤铭、行情推送分發(fā) QUNATAXIS MARKETCOLLECTOR
安裝命令:
pip install qarealtime_collector
開啟虛擬行情服務(wù):(虛擬行情測試, 切記: 此命令會污染實時行情源, 切記不能和實時行情同時運行)
QARC_WEBSERVER
7挖胃、QIFIAccount 和QASTRATEGY
不用多說,安裝命令:
pip install qifiaccount
pip install qastrategy
8梆惯、模擬行情關(guān)鍵組件:qatrader
模擬賬戶和模擬交易主要靠這個組件運行:
安裝命令:
pip install qatrader
運行命令:
首先打開cmd酱鸭,建立個模擬賬號,效果見下圖:
qatrader --acc 1010101 --pwd 101010 --broker QUANTAXIS
接著開啟交易服務(wù):
qatraderserver
開完上面服務(wù)以后垛吗,可以在rabbitmq了看到:
點擊ARORDER_ROUTER凹髓,可以看到下圖賬號路由已經(jīng)發(fā)送,后面訂單發(fā)送都可以從這里看到怯屉。
現(xiàn)在可以打開QADESK_BASIC 這個可視化界面了蔚舀,登錄賬號密碼可以試試admin admin ,點擊模擬可以看到蚀之,賬號已經(jīng)開起來了:
9蝗敢、模擬下單:
模擬下單方式有多種,一種通過http方式足删,一種通過代碼方式,這里主要講解代碼方式:
首先打開jupyter lab:
命令行輸入:
jupyter lab
網(wǎng)頁打開:http://127.0.0.1:8888
比如想以價格350買入au1912 20首合約锁右,在jupyter 里面輸入以下代碼:
from QAPUBSUB import producer
import json
import datetime
host = '127.0.0.1'
p = producer.publisher_routing(
user='admin', password='admin', host=host, exchange='QAORDER_ROUTER')
p.pub(json.dumps({
'topic': 'sendorder',
'account_cookie': '1010101',
'strategy_id': 'test',
'code': 'au1912',
'price': 350,
'order_direction': 'BUY',
'order_offset': 'OPEN',
'volume':20,
'order_time': str(datetime.datetime.now()),
'exchange_id': 'SHFE'
}), routing_key='1010101')
下完單以后可以在可視化頁面看到:
這樣子失受,從搭建環(huán)境 -模擬賬號建立-下單交易流程就全部結(jié)束了。如果有研發(fā)好的策略咏瑟,就可以通過模擬賬號試運行了拂到,穩(wěn)定了就上實盤收割唄!