最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

QMT, iQuant, miniQMT的區(qū)別

2023-06-21 07:36 作者:可轉(zhuǎn)債量化分析  | 我要投稿
圖片
各家券商的量化軟件

對于第一次接觸量化交易的朋友來說,經(jīng)常會問到的幾個問題,比如,QMT和iQuant,miniQMT有什么區(qū)別。

首先,QMT和iQuant都是由迅投開發(fā)的。miniQMT是在QMT子模塊下運行的一個極簡模式。


接下來將詳細的講講。

QMT vs iQuant

一般券商采購了迅投的QMT軟件后,接入行情數(shù)據(jù)服務(wù)器和交易服務(wù)器,管理 自家的用戶的資金賬戶,就可以讓它成為可以實盤的的量化交易軟件。(這里為了通俗易懂,簡化了很多細節(jié),實際要復(fù)雜一些)

圖片
QMT里面行情和交易服務(wù)器連接設(shè)置

而iQuant是由國信證券定制開發(fā)的,算是QMT的套殼。iQuant它的大部分功能和其他券商的QMT的功能基本一樣。但也有不同的地方:

  1. iQuant移除了VBA模型

    下圖是國金QMT主界面,在新建策略下面,會看到有VBA模型和python模型

圖片
國金QMT
  1. 而在國信的iQuant的策略開發(fā)模式下,只支持python模型,VBA編寫模型的功能被移除了。

圖片
國信QMT

對于VBA而言,算是一門古老的語言了,至少在互聯(lián)網(wǎng)領(lǐng)域,已經(jīng)沒見過有幾個人在用的了。

不過我查詢了一下它在QMT里面的實盤交易代碼,其實它還是挺適合熟悉通達信公式的朋友使用,很多語法是從通達信的公式演變而來的。有些指標直接可以拿去用的了。截取其中一個例子如下:

圖片
QMT vb編寫交易代碼
  1. iQuant支持投資研究模塊,可使用jupyter notebook逐行運行,便于調(diào)試。

    而其他的券商QMT均沒有這個功能。不過這個功能我試了下,它只調(diào)用我windows系統(tǒng)的jupyter notebook,且它有嚴重的bug,居然運行不了任何代碼?!。(ptrade也有個類似這樣的功能,可以逐行調(diào)用內(nèi)置的獲取行情的函數(shù),ptrade的是可以正常運行的)

圖片
iQuant投資研究功能

少數(shù)券商的QMT無法在虛擬機運行

大部分券商的QMT可以在虛擬機里面運行,這意味可以在云主機服務(wù)器上運行,比如阿里云,騰訊云,在云服務(wù)器上網(wǎng)絡(luò)和系統(tǒng)穩(wěn)定性都有保證,比你在家里放臺電腦要穩(wěn)定,至少不會被家里的小孩倒騰拔了網(wǎng)線。

但也有少數(shù)券商的QMT無法在虛擬機里面運行。比如下圖這個QMT登錄提示

圖片
提示虛擬機運行

之前筆者粗略地對比了下不同券商QMT讀取的系統(tǒng)信息,異同點在于磁盤序列號,如果想要硬剛的讀者朋友可以嘗試修改虛擬機(vmware)的硬盤序列號。

圖片
磁盤序列號為空

其他:

在python編寫策略的代碼層面,QMT和iQuant的接口文檔也基本一致的,可能在一些功能函數(shù)上會有些少出入。二者寫的python代碼可互相在彼此上運行,區(qū)別不大。

QMT 與 miniQMT

miniQMT屬于QMT的一個子功能,一個精簡功能的自動交易框架,默認安裝了QMT之后就可以使用miniQMT,只支持實盤交易,不支持回測。

在miniQMT模式下,你的策略代碼將不再禁錮自帶的QMT軟件下的內(nèi)置編輯器編寫,而是可以自由地選擇pycharm,vscode等編輯器,運行的時候直接使用 python xxxx.py 這樣的形式啟動。且有多個python版本可選。

只是券商很少對它進行宣傳,以致于用它的人并不多。


進入miniQMT的方法:雙擊QMT程序,登錄時勾選極簡模式

圖片
進入極簡模式

注意:極簡模式下,需要一直保持這個miniQMT的程序在運行,這意味者miniQMT也只能在windows系統(tǒng)下運行,因為啟動的程序只有exe格式的可執(zhí)行文件。

XtQuant

而miniQMT的核心是XtQuant,XtQuant又是什么呢?

XtQuant是基于迅投MiniQMT衍生出來的一套完善的Python策略運行框架,對外以Python庫的形式提供策略交易所需要的行情和交易相關(guān)的API接口。

XtQuant運行依賴環(huán)境

XtQuant目前提供的庫包括Python3.6、3.7、3.8版本,不同版本的python導(dǎo)入時會自動切換。根據(jù)群友最新反饋,最新的版本的QMT可以支持到python3.11。

在運行使用XtQuant的程序前需要先啟動MiniQMT客戶端。

然后把你的QMT目錄下的\bin.x64\Lib\site-packages\xtquant復(fù)制到你系統(tǒng)python目錄下的site-packages。

圖片
xtquant

然后就可以在你的代碼里面導(dǎo)入miniQMT的函數(shù),包括獲取行情數(shù)據(jù)函數(shù),下單函數(shù)。

xtquant包含兩個主要模塊,xttrade和xtdata,一個負責控制交易流程,一個負責數(shù)據(jù)行情獲取同步。


簡單的python示例如下:

圖片
python代碼
圖片
python代碼

它的幫助文檔藏在bin.x64\Lib\site-packages\xtquant\doc 目錄下。

從它的幫助文檔來看,它是一套和QMT接口函數(shù)完全不一樣的交易框架。

圖片
xtquant接口文檔

所以QMT的代碼,無法直接拷貝到miniQMT中使用。雖然名字叫miniQMT,但感覺它提供的很多函數(shù)功能,要比QMT更為豐富,用戶可以掌控的流程更多,更靈活。

iQuant版雖然也有精簡版的miniQMT,但它對個人用戶不提供下單功能呢,只對機構(gòu)開放,所以個人只有獲取行情數(shù)據(jù),財務(wù)數(shù)據(jù)等的數(shù)據(jù)權(quán)限。

另外還有一個與之配套的xtdata庫,是專門用來獲取行情數(shù)據(jù)的,而上面的xttrade是專門用來交易下單的。

圖片
xtdata文檔

因為xtdata可以獲取很多股票,可轉(zhuǎn)債,ETF等等歷史數(shù)據(jù),所以即使你不用miniQMT做交易,你也可以白嫖它的數(shù)據(jù),這比用積分的tushare簡直不要太爽。比如可以獲取到股票或可轉(zhuǎn)債的日線,分鐘線,甚至tick數(shù)據(jù)。

比如下面的代碼可獲取 眾信轉(zhuǎn)債 的某個時間的歷史tick數(shù)據(jù),并保存到文件。(只要稍微改造下,就可以獲取全市場的轉(zhuǎn)債的tick數(shù)據(jù)。)

import?pandas?as?pd
import?datetime


def?get_tick(code,?start_time,?end_time,?period='tick'):
????from?xtquant?import?xtdata

????xtdata.download_history_data(code,?period=period,?start_time=start_time,?end_time=end_time)
????data?=?xtdata.get_local_data(field_list=[],?stock_code=[code],?period=period,?count=10)
????result_list?=?data[code]
????df?=?pd.DataFrame(result_list)

????df['time_str']?=?df['time'].apply(lambda?x:?datetime.datetime.fromtimestamp(x?/?1000.0))
????return?df


def?process_timestamp(df,?filename):
????df?=?df.set_index('time_str')
????result?=?df.resample('3S').first().ffill()
????# result?=?result[(result.index?>=?'2022-07-20?09:30')?&?(result.index?<=?'2022-07-20?15:00')]
????result?=?result.reset_index()
????result.to_csv(filename?+?'.csv')


def?dump_single_code_tick():
????#?導(dǎo)出單個轉(zhuǎn)債的tick數(shù)據(jù)
????code='128022'
????start_date?=?'20210113'
????end_date?=?'20210130'

????post_fix?=?'SZ'?if?code.startswith('12')?else?'SH'
????code?=?'{}.{}'.format(code,post_fix)
????filename?=?'{}'.format(code)
????df?=?get_tick(code,?start_date,?end_date)

dump_single_code_tick()

把上面保存為main.py, 然后執(zhí)行python main.py , 片刻就可以看到生成的文件數(shù)據(jù)了。

結(jié)語

因為篇幅原因,上文介紹的一些功能與中間步驟被省略了,如需深入研究,可以瀏覽QMT的官方文檔。


QMT, iQuant, miniQMT的區(qū)別的評論 (共 條)

分享到微博請遵守國家法律
菏泽市| 岳池县| 黄骅市| 大竹县| 商河县| 安宁市| 新平| 万荣县| 项城市| 北海市| 商丘市| 罗江县| 黄浦区| 班戈县| 永年县| 大悟县| 太湖县| 栖霞市| 临沧市| 阿拉善左旗| 开化县| 神池县| 河池市| 蓝田县| 共和县| 藁城市| 丘北县| 大渡口区| 青铜峡市| 阿勒泰市| 观塘区| 三江| 博乐市| 塔城市| 昭觉县| 平南县| 龙泉市| 大同县| 寻乌县| 昔阳县| 桂平市|