rqalpha-自動量化交易系統(一)


因為最近做的東西牽涉到自動計算這一塊,在網上搜了一下,基本上python做自動量化交易成了一個趨勢,於是花了兩天學習一下。

目標很簡單,學習,使用。

rqalpha看起來是比較成熟的,這兒看重的是自帶日線數據(省大事了),並且文檔齊全,代碼一直更新到最近幾天,說明在可預期的一年內應該會越發成熟。另外,開源,走的是apache license2.0協議,不禁止第三方修改,使用,商用。

先說代碼:https://github.com/ricequant/rqalpha, RQAlpha是一個中國市場領先的股票和期貨的回測引擎,具備日級別的歷史數據回測,並且具有很強的可拓展性。由Ricequant米筐科技開源,雖然涉嫌給他們做廣告,不過確實不錯。

文檔很齊全,雖然安裝的過程中還是挺累的。

安裝主要靠兩樣:

安裝指南: http://rqalpha.readthedocs.io/zh_CN/stable/intro/install.html,

詳細環境搭建: http://rqalpha.readthedocs.io/zh_CN/stable/intro/detail_install.html

光靠安裝指南是肯定搭不了的,還要再參考詳細環境搭建。

最后,再說一下我遇到的坑。

一開始看上面似乎對linux支持力度挺大,貌似用命令全搞定,特別是很多的東西一看就是在linux中的地址,於是就用centos7一路搭起來了,

先安裝gcc,g++什么的必備開發工具不待說。

首先一坑:.condarc這文件,一定要是截圖如下方能起作用:

image

否則那個清華大學的地址是加不進來的

然后是 ImportError: No module named 'requests'

需要:pip install requests

一切好了,按照要求運行

rqalpha run

這下報的錯誤更多,最后不得不放棄linux,到windows上來試驗

windows上錯誤前面是一樣的,不過在裝TA-Lib時遇到了新問題,由於需要編譯源碼,得下visual c++ 14.0這樣的命令行編譯器,周六下了一夜后宣告失敗,第二天直接下vs2015專業版安裝,然后在

http://www.cnblogs.com/Hanuman/p/5943608.html這個地方終於搞定了編譯問題

最后數據也下好了,rqalpha version也得到了版本號

結果再次運行rqalpha run還是報一堆錯誤。再去米筐科技官網學習,突然靈光一開,從里面抄了一個簡單策略,

# -*- coding: utf-8 -*-
# 在這個方法中編寫任何的初始化邏輯。context對象將會在你的算法策略的任何方法之間做傳遞。
def init(context):
    logger.info("init")
    context.s1 = "000001.XSHE"
    update_universe(context.s1)
    # 是否已發送了order
    context.fired = False
    context.cnt = 1
 
        
 
        
def before_trading(context, bar_dict):
    logger.info("Before Trading", context.cnt)
    context.cnt += 1
 
        
 
        
# 你選擇的證券的數據更新將會觸發此段邏輯,例如日或分鍾歷史數據切片或者是實時數據切片更新
def handle_bar(context, bar_dict):
    context.cnt += 1
    logger.info("handle_bar", context.cnt)
    # 開始編寫你的主要的算法邏輯
 
        
    # bar_dict[order_book_id] 可以拿到某個證券的bar信息
    # context.portfolio 可以拿到現在的投資組合狀態信息
 
        
    # 使用order_shares(id_or_ins, amount)方法進行落單
 
        
    # TODO: 開始編寫你的算法吧!
    if not context.fired:
        # order_percent並且傳入1代表買入該股票並且使其占有投資組合的100%
        order_percent(context.s1, 1)
        context.fired = True

命名為:buy_and_hold.py放置於目錄C:\Users\Administrator\.rqalpha\examples下,注意的是文件應存成utf-8格式

然后再用命令:

(python35) C:\Users\Administrator>rqalpha run -f C:/Users/Administrator/.rqalpha/examples/buy_and_hold.py -d C:/Users/Administrator/.rqalpha/bundle/ -s 2016-06-01 -e 2016-12-01 --stock-starting-cash 100000 --benchmark 000300.XSHG

前面(python35)表示我在conda環境下的python35下(python35是我起的環境名,代表python為3.5.2)

到這一步,終於搞定,沒報錯了,出了一堆的結果,
然后再加上一個參數—plot,出了效果圖:

image

雖然弄出來了,不過只是拿了現成的東西來使用,下一步是看如何將源碼使用起來,通過修改源代碼達到自己的意圖。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM