python搭建期貨股票模擬盤--基于quantaxis

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

image

二、安裝quantaxis 模擬交易相關模塊

有了虛擬環(huán)境,咱們繼續(xù)下載quantaxis的相關代碼,主要涉及以下模塊:

1、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

輸入以后顯示如下

image

3、QA可視化網頁終端基礎版本 QADESK_BASIC

安裝命令:


git clone https://github.com/yutiansut/QADESK_BASIC.git 

(需要自己下載git)

或者直接進入QADESK_BASIC ,自己下載壓縮包,解壓到自己想要的文件夾:

image

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

image

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。

image

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

image

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

image

接著開啟交易服務:


qatraderserver

開完上面服務以后,可以在rabbitmq了看到:

image

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

image

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

image

9、模擬下單:

模擬下單方式有多種,一種通過http方式,一種通過代碼方式,這里主要講解代碼方式:

首先打開jupyter lab:

命令行輸入:


jupyter lab

網頁打開: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')

下完單以后可以在可視化頁面看到:

image

這樣子,從搭建環(huán)境 -模擬賬號建立-下單交易流程就全部結束了。如果有研發(fā)好的策略,就可以通過模擬賬號試運行了,穩(wěn)定了就上實盤收割唄!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容