quantaxis是國內一款非常著名的量化開源框架,適合量化中小團隊,天總無償分享自己公司的核心開源框架造福廣大量化愛好者,真是值得點贊!自己也是剛使用quantaxis沒多久,看了天總在bilibili的直播視頻,自己踩了很多坑,我想總結下在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 模擬交易相關模塊
有了虛擬環(huán)境,咱們繼續(xù)下載quantaxis的相關代碼,主要涉及以下模塊:
安裝命令:
pip install quantaxis
2、QA后臺服務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),后面服務開啟方式同,不再重復。
quantaxis_webserver
輸入以后顯示如下

3、QA可視化網頁終端基礎版本 QADESK_BASIC
安裝命令:
git clone https://github.com/yutiansut/QADESK_BASIC.git
(需要自己下載git)
或者直接進入QADESK_BASIC ,自己下載壓縮包,解壓到自己想要的文件夾:

打開下載后目錄中index.html文件,效果如下,先不用管它:

4、基于RABBITMQ的消息分發(fā)訂閱 QAPUBSUB
安裝命令:
pip install quantaxis_pubsub
需要進行以下配置(這里抄了天總的文檔,感謝天總的無私奉獻?。?/p>
配套服務配置流程1:—安裝elang和rabbitmq,安裝流程參考這里,其中軟件的版本下載官網最新的即可。
配套服務配置流程2:—配置rabbitmq: 啟用插件、創(chuàng)建用戶、分配角色、設置權限,參考鏈接。rabbitmq配置好了之后運行如下命令
以下服務開啟(默認端口在開啟對應服務時有提示)
rabbitmq-plugins enable rabbitmq_management
rabbitmqctl add_user admin admin
rabbitmqctl set_user_tags admin administrator
rabbitmqctl set_permissions -p "/" admin '.*' '.*' '.*'
這個時候,你可以在網頁打開:
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合約的歷史行情數據,起始價格340,日期20191102。

這個時候你可以打開rabbitmq,點擊exchange,你可以看到模擬的tick數據正在pub到這里。

6、行情推送分發(fā) QUNATAXIS MARKETCOLLECTOR
安裝命令:
pip install qarealtime_collector
開啟虛擬行情服務:(虛擬行情測試, 切記: 此命令會污染實時行情源, 切記不能和實時行情同時運行)
QARC_WEBSERVER
7、QIFIAccount 和QASTRATEGY
不用多說,安裝命令:
pip install qifiaccount
pip install qastrategy
8、模擬行情關鍵組件:qatrader
模擬賬戶和模擬交易主要靠這個組件運行:
安裝命令:
pip install qatrader
運行命令:
首先打開cmd,建立個模擬賬號,效果見下圖:
qatrader --acc 1010101 --pwd 101010 --broker QUANTAXIS

接著開啟交易服務:
qatraderserver
開完上面服務以后,可以在rabbitmq了看到:

點擊ARORDER_ROUTER,可以看到下圖賬號路由已經發(fā)送,后面訂單發(fā)送都可以從這里看到。

現在可以打開QADESK_BASIC 這個可視化界面了,登錄賬號密碼可以試試admin admin ,點擊模擬可以看到,賬號已經開起來了:

9、模擬下單:
模擬下單方式有多種,一種通過http方式,一種通過代碼方式,這里主要講解代碼方式:
首先打開jupyter lab:
命令行輸入:
jupyter lab
比如想以價格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)境 -模擬賬號建立-下單交易流程就全部結束了。如果有研發(fā)好的策略,就可以通過模擬賬號試運行了,穩(wěn)定了就上實盤收割唄!