RiceQuant開源框架RQAlpha學(xué)習(xí)筆記

一秽誊、關(guān)于RQAlpha

RQAlpha是一個(gè)由米筐科技Ricequant開源的Python算法交易和回測引擎,適合A股市場,是事件驅(qū)動(dòng)的設(shè)計(jì)。RQAlpha 從數(shù)據(jù)獲取、算法交易愧口、回測引擎,實(shí)盤模擬轴脐,實(shí)盤交易到數(shù)據(jù)分析调卑,為程序化交易者提供了全套解決方案。RQAlpha 具有靈活的配置方式大咱,強(qiáng)大的擴(kuò)展性恬涧,用戶可以非常容易地定制專屬于自己的程序化交易系統(tǒng)。

二碴巾、相關(guān)背景知識

股票回測:股票回測是指設(shè)定了某些股票指標(biāo)組合后溯捆,基于歷史已經(jīng)發(fā)生過的真實(shí)行情數(shù)據(jù),在歷史上某一個(gè)時(shí)間點(diǎn)開始,嚴(yán)格按照設(shè)定的組合進(jìn)行選股提揍,并模擬真實(shí)金融市場交易的規(guī)則進(jìn)行模型買入啤月、模型賣出,得出一個(gè)時(shí)間段內(nèi)的盈利率劳跃、最大回撤率等數(shù)據(jù)谎仲。

最大回撤(Max Drawdown):策略在整個(gè)時(shí)間段上虧損最嚴(yán)重的時(shí)候相比凈值最高值下跌的百分比。描述策略可能出現(xiàn)的最糟糕的情況刨仑。例如一個(gè)賬戶的凈值是100,200,50,300,150,100, 200郑诺,那最大的虧損就是從300那個(gè)點(diǎn)開始一直虧到100。MaxDrawDown=1-(100/300)=0.67

最大回撤是策略評估時(shí)非常關(guān)鍵的一個(gè)指標(biāo)杉武,通常與風(fēng)險(xiǎn)承受能力相關(guān)辙诞。

三、RQAlpha框架代碼結(jié)構(gòu)


RQAlpha框架代碼結(jié)構(gòu)

四轻抱、RQAlpha事件機(jī)制

· 事件注冊:

RQAlpha 大部分的組件是以 add_listener 的方式進(jìn)行事件的注冊飞涂。

以策略執(zhí)行為例:

1. 當(dāng)Bar數(shù)據(jù)生成時(shí),觸發(fā) EVENT.BAR 事件祈搜,那么用戶的 handle_bar 相關(guān)的代碼注冊了該事件則會立即執(zhí)行较店。

2. 當(dāng)訂單下單時(shí),觸發(fā) EVENT.ORDER_PENDING_NEW 事件夭问,前端風(fēng)控模塊注冊了該事件泽西,則可以立即對該訂單進(jìn)行審核,如果不滿足風(fēng)控要求缰趋,則直接指定執(zhí)行 order._cancel(reason) 來保證有問題的訂單不會進(jìn)入實(shí)際下單環(huán)節(jié)捧杉。

3. 當(dāng)訂單成交時(shí),觸發(fā) EVENT.TRADE 事件秘血,那么系統(tǒng)的賬戶模塊因?yàn)樽粤嗽撌录抖叮涂梢粤⒓从?jì)算成交以后的收益和資金變化。

程序化交易中很多操作灰粮,都是通過注冊事件的方式插入到 RQAlpha 中進(jìn)行擴(kuò)展的仔涩。

· 事件源:

1. 獲取回測時(shí)間段內(nèi)的交易日;

2. 遍歷交易日獲取日線/分鐘線/tick的行情數(shù)據(jù)粘舟,發(fā)布事件到事件總線熔脂。

EVENT.TICK tick數(shù)據(jù)更新事件

· PRE_TICK

· HANDLE_TICK

· POST_TICK

EVENT.BAR bar數(shù)據(jù)更新事件

· PRE_BAR

· HANDLE_BAR

· POST_BAR

EVENT.BEFORE_TRADING 交易發(fā)生前事件

· PRE_BEFORE_TRADING

· HANDLE_BEFORE_TRADING

· POST_BEFORE_TRADING

EVENT.AFTER_TRADING 交易成交后事件

· PRE_AFTER_TRADING

· HANDLE_AFTER_TRADING

· POST_AFTER_TRADING

EVENT.SETTLEMENT 結(jié)算事件

· PRE_SETTLEMENT

· HANDLE_SETTLEMENT

· POST_SETTLEMENT

· 事件分類:


RQAlpha事件分類

五、日回測系統(tǒng)流程


日回測系統(tǒng)流程圖

六柑肴、RQAlpha策略


· 策略運(yùn)行方式:


RQAlpha策略運(yùn)行方式


· RQAlpha的API:


RQAlpha的API

RQAlpha 抽離了策略框架的所有技術(shù)細(xì)節(jié)霞揉,以API的方式提供給策略研發(fā)者用于編寫策略,從而避免陷入過多的技術(shù)細(xì)節(jié)晰骑,而非金融程序建模本身适秩。


·?策略編寫流程:

RQAlpha策略編寫流程

·?范例策略的運(yùn)行:

(1)buy_and_hold.py:

buy_and_hold策略:在回測開始的第一天買入資金量的100%的平安銀行并且一直持有。

命令行運(yùn)行:

回測的起始時(shí)間為 2016-06-01, 結(jié)束時(shí)間為 2016-12-01,我們給策略分配的起始資金為 100000, Benchmark 設(shè)置為 000300.XSHG秽荞。

運(yùn)行結(jié)果:

(2)golden_cross.py:

golden_cross策略:使用talib計(jì)算長短兩根均線,如果短均線從上往下跌破長均線骤公,也就是在目前的bar短線平均值低于長線平均值,而上一個(gè)bar的短線平均值高于長線平均值,即進(jìn)行清倉扬跋;如果短均線從下往上突破長均線阶捆,為入場信號。

命令行運(yùn)行:

回測的起始時(shí)間為 2016-06-01, 結(jié)束時(shí)間為 2017-12-01钦听,我們給策略分配的起始資金為 300000, Benchmark 設(shè)置為 000300.XSHG趁猴。

運(yùn)行結(jié)果:


(3)macd.py:

單股票macd策略:用Talib計(jì)算MACD取值,macd 是長短均線的差值彪见,signal是macd的均線。 如果macd從上往下跌破macd_signal娱挨,進(jìn)行清倉余指。如果短均線從下往上突破長均線,為入場信號跷坝,滿倉入股酵镜。

命令行運(yùn)行:

回測的起始時(shí)間為 2016-06-01, 結(jié)束時(shí)間為 2017-12-01,我們給策略分配的起始資金為 300000, Benchmark 設(shè)置為 000300.XSHG柴钻。

運(yùn)行結(jié)果:


回測衡量指標(biāo):


阿爾法(Alpha):表示策略所持有投資組合的收益中和市場整體收益無關(guān)的部分淮韭,是策略選股能力的度量。當(dāng)策略所選股票的總體表現(xiàn)優(yōu)于市場基準(zhǔn)組合成分股時(shí)贴届,阿爾法取正值靠粪;反之取負(fù)值,該值越大越好毫蚓。

貝塔(Beta):表示投資的系統(tǒng)性風(fēng)險(xiǎn)占键,反映了策略對大盤變化的敏感性。例如元潘,一個(gè)策略的Beta為1.3畔乙,則大盤漲1%的時(shí)候,策略可能漲1.3%翩概,反之亦然牲距;如果一個(gè)策略的Beta為-1.3,說明大盤漲1%的時(shí)候钥庇,策略可能跌1.3%牍鞠,反之亦然。該值越小越好上沐。

夏普比率(Sharpe Ratio):表示每承受一單位總風(fēng)險(xiǎn)皮服,會產(chǎn)生多少的超額報(bào)酬,可以同時(shí)對策略的收益與風(fēng)險(xiǎn)進(jìn)行綜合考慮。sharp是衡量策略最重要的一個(gè)指標(biāo)龄广,該指標(biāo)的計(jì)算不僅考慮收益率硫眯,還考慮了風(fēng)險(xiǎn),因此比較具有參考價(jià)值择同,可以理解為經(jīng)過風(fēng)險(xiǎn)調(diào)整后的收益率两入。

信息比率(Information Ratio):衡量單位超額風(fēng)險(xiǎn)帶來的超額收益。信息比率越大敲才,說明該策略單位跟蹤誤差所獲得的超額收益越高裹纳,因此,信息比率較大的策略的表現(xiàn)要優(yōu)于信息比率較低的紧武。

索提諾比率(Sortino ratio):應(yīng)該是每承擔(dān)一單位的下行波動(dòng)(相對于比較基準(zhǔn)或無風(fēng)險(xiǎn)收益率)所能獲得的單位收益剃氧,數(shù)值越大,說明承擔(dān)同樣下跌風(fēng)險(xiǎn)的情況下阻星,可以獲得更多的超額收益或者基準(zhǔn)上的回報(bào)朋鞍。

收益波動(dòng)率(Volatility):金融資產(chǎn)價(jià)格的波動(dòng)程度,是對資產(chǎn)收益率不確定性的衡量妥箕,用于反映金融資產(chǎn)的風(fēng)險(xiǎn)水平滥酥。波動(dòng)率越高,金融資產(chǎn)價(jià)格的波動(dòng)越劇烈畦幢,資產(chǎn)收益率的不確定性就越強(qiáng)坎吻;波動(dòng)率越低,金融資產(chǎn)價(jià)格的波動(dòng)越平緩宇葱,資產(chǎn)收益率的確定性就越強(qiáng)瘦真。


參考文檔:

Geosmart's Notes

RQAlpha 3.0.x Documentation

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市贝搁,隨后出現(xiàn)的幾起案子吗氏,更是在濱河造成了極大的恐慌,老刑警劉巖雷逆,帶你破解...
    沈念sama閱讀 218,640評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件弦讽,死亡現(xiàn)場離奇詭異,居然都是意外死亡膀哲,警方通過查閱死者的電腦和手機(jī)往产,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來某宪,“玉大人仿村,你說我怎么就攤上這事⌒宋梗” “怎么了蔼囊?”我有些...
    開封第一講書人閱讀 165,011評論 0 355
  • 文/不壞的土叔 我叫張陵焚志,是天一觀的道長。 經(jīng)常有香客問我畏鼓,道長酱酬,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,755評論 1 294
  • 正文 為了忘掉前任云矫,我火速辦了婚禮膳沽,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘让禀。我一直安慰自己挑社,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,774評論 6 392
  • 文/花漫 我一把揭開白布巡揍。 她就那樣靜靜地躺著痛阻,像睡著了一般。 火紅的嫁衣襯著肌膚如雪腮敌。 梳的紋絲不亂的頭發(fā)上录平,一...
    開封第一講書人閱讀 51,610評論 1 305
  • 那天,我揣著相機(jī)與錄音缀皱,去河邊找鬼。 笑死动猬,一個(gè)胖子當(dāng)著我的面吹牛啤斗,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播赁咙,決...
    沈念sama閱讀 40,352評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼钮莲,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了彼水?” 一聲冷哼從身側(cè)響起崔拥,我...
    開封第一講書人閱讀 39,257評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎凤覆,沒想到半個(gè)月后链瓦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,717評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡盯桦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,894評論 3 336
  • 正文 我和宋清朗相戀三年慈俯,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拥峦。...
    茶點(diǎn)故事閱讀 40,021評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡贴膘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出略号,到底是詐尸還是另有隱情刑峡,我是刑警寧澤洋闽,帶...
    沈念sama閱讀 35,735評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站突梦,受9級特大地震影響诫舅,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜阳似,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,354評論 3 330
  • 文/蒙蒙 一骚勘、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧撮奏,春花似錦俏讹、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,936評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至玲献,卻和暖如春殉疼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背捌年。 一陣腳步聲響...
    開封第一講書人閱讀 33,054評論 1 270
  • 我被黑心中介騙來泰國打工瓢娜, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人礼预。 一個(gè)月前我還...
    沈念sama閱讀 48,224評論 3 371
  • 正文 我出身青樓眠砾,卻偏偏與公主長得像,于是被迫代替她去往敵國和親托酸。 傳聞我的和親對象是個(gè)殘疾皇子褒颈,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,974評論 2 355

推薦閱讀更多精彩內(nèi)容