當前位置:首頁 » 編程語言 » python回測

python回測

發布時間: 2022-07-23 02:10:15

❶ 怎麼學習python量化交易

下面教你八步寫個量化交易策略——單股票均線策略

1 確定策略內容與框架

若昨日收盤價高出過去20日平均價今天開盤買入股票
若昨日收盤價低於過去20日平均價今天開盤賣出股票

只操作一隻股票,很簡單對吧,但怎麼用代碼說給計算機聽呢?

想想人是怎麼操作的,應該包括這樣兩個部分

既然是單股票策略,事先決定好交易哪一個股票。

每天看看昨日收盤價是否高出過去20日平均價,是的話開盤就買入,不是開盤就賣出。每天都這么做,循環下去。

對應代碼也是這兩個部分

definitialize(context):
用來寫最開始要做什麼的地方
defhandle_data(context,data):
用來寫每天循環要做什麼的地方

2 初始化

我們要寫設置要交易的股票的代碼,比如 兔寶寶(002043)

definitialize(context):
g.security='002043.XSHE'#存入兔寶寶的股票代碼

3 獲取收盤價與均價

首先,獲取昨日股票的收盤價

#用法:變數=data[股票代碼].close
last_price=data[g.security].close#取得最近日收盤價,命名為last_price

然後,獲取近二十日股票收盤價的平均價

#用法:變數=data[股票代碼].mavg(天數,『close』)
#獲取近二十日股票收盤價的平均價,命名為average_price
average_price=data[g.security].mavg(20,'close')

4 判斷是否買賣

數據都獲取完,該做買賣判斷了

#如果昨日收盤價高出二十日平均價,則買入,否則賣出
iflast_price>average_price:
買入
eliflast_price<average_price:
賣出

問題來了,現在該寫買賣下單了,但是拿多少錢去買我們還沒有告訴計算機,所以每天還要獲取賬戶里現金量。

#用法:變數=context.portfolio.cash
cash=context.portfolio.cash#取得當前的現金量,命名為cash

5 買入賣出

#用法:order_value(要買入股票股票的股票代碼,要多少錢去買)
order_value(g.security,cash)#用當前所有資金買入股票
#用法:order_target(要買賣股票的股票代碼,目標持倉金額)
order_target(g.security,0)#將股票倉位調整到0,即全賣出

6 策略代碼寫完,進行回測

把買入賣出的代碼寫好,策略就寫完了,如下

definitialize(context):#初始化
g.security='002043.XSHE'#股票名:兔寶寶
defhandle_data(context,data):#每日循環
last_price=data[g.security].close#取得最近日收盤價
#取得過去二十天的平均價格
average_price=data[g.security].mavg(20,'close')
cash=context.portfolio.cash#取得當前的現金
#如果昨日收盤價高出二十日平均價,則買入,否則賣出。
iflast_price>average_price:
order_value(g.security,cash)#用當前所有資金買入股票
eliflast_price<average_price:
order_target(g.security,0)#將股票倉位調整到0,即全賣出

現在,在策略回測界面右上部,設置回測時間從20140101到20160601,設置初始資金100000,設置回測頻率,然後點擊運行回測。

7 建立模擬交易,使策略和行情實時連接自動運行

策略寫好,回測完成,點擊回測結果界面(如上圖)右上部紅色模擬交易按鈕,新建模擬交易如下圖。 寫好交易名稱,設置初始資金,數據頻率,此處是每天,設置好後點提交。

8 開啟微信通知,接收交易信號

點擊聚寬導航欄我的交易,可以看到創建的模擬交易,如下圖。 點擊右邊的微信通知開關,將OFF調到ON,按照指示掃描二維碼,綁定微信,就能微信接收交易信號了。

❷ 用Python 做策略回測,耗時很長,有什麼加速辦法

少用for,盡量用numpy/pandas的向量化方法。
少用自己寫的python方法,先看看numpy /pandas是不是已有現成的功能。
有幾個numpy 的加速包,比如numexpr.
安裝Intel MKL.
最後,可以講關鍵部分用c/c++實現。
如果無法避開python的for,建議使用Numba來提速,理想情況下可以達到和numpy向量化差不多的速度。

❸ 《Python與量化投資從基礎到實戰》pdf下載在線閱讀,求百度網盤雲資源

《07 Python股票量化投資課程(完結)》網路網盤資源免費下載

鏈接:https://pan..com/s/1MgFE6VMeR8H6YkS2jxEZmw

?pwd=zxcv 提取碼:zxcv

07 Python股票量化投資課程(完結)|09課後大作業|08第八課資料|07第七課資料|06第六課資料|05第五課資料|04第四課資料|03第三課資料|02第二課資料|01第一課資料|25人工智慧與量化投資(下).mp4|24人工智慧與量化投資(上).mp4|23實盤交易(下).mp4|22實盤交易(中).mp4|21實盤交易(上).mp4

❹ python量化哪個平台可以回測模擬實盤還不要錢

Python量化投資框架:回測+模擬+實盤
Python量化投資 模擬交易 平台 1. 股票量化投資框架體系 1.1 回測 實盤交易前,必須對量化交易策略進行回測和模擬,以確定策略是否有效,並進行改進和優化。作為一般人而言,你能想到的,一般都有人做過了。回測框架也如此。當前小白看到的主要有如下五個回測框架: Zipline :事件驅動框架,國外很流行。缺陷是不適合國內市場。 PyAlgoTrade : 事件驅動框架,最新更新日期為16年8月17號。支持國內市場,應用python 2.7開發,最大的bug在於不支持3.5的版本,以及不支持強大的pandas。 pybacktest :以處理向量數據的方式進行回測,最新更新日期為2個月前,更新不穩定。 TradingWithPython:基於pybacktest,進行重構。參考資料較少。 ultra-finance:在github的項目兩年前就停止更新了,最新的項目在谷歌平台,無奈打不開網址,感興趣的話,請自行查看吧。 RQAlpha:事件驅動框架,適合A股市場,自帶日線數據。是米筐的回測開源框架,相對而言,個人更喜歡這個平台。 2 模擬 模擬交易,同樣是實盤交易前的重要一步。以防止類似於當前某券商的事件,半小時之內虧損上億,對整個股市都產生了惡劣影響。模擬交易,重點考慮的是程序的交易邏輯是否可靠無誤,數據傳輸的各種情況是否都考慮到。 當下,個人看到的,喜歡用的開源平台是雪球模擬交易,其次是wind提供的模擬交易介面。像優礦、米筐和聚寬提供的,由於只能在線上平台測試,不甚自由,並無太多感覺。 雪球模擬交易:在後續實盤交易模塊,再進行重點介紹,主要應用的是一個開源的easytrader系列。 Wind模擬交易:若沒有機構版的話,可以考慮應用學生免費版。具體模擬交易介面可參看如下鏈接:http://www.dajiangzhang.com/document 3 實盤 實盤,無疑是我們的終極目標。股票程序化交易,已經被限制。但對於萬能的我們而言,總有解決的辦法。當下最多的是破解券商網頁版的交易介面,或者說應用爬蟲爬去操作。對我而言,比較傾向於食燈鬼的easytrader系列的開源平台。對於機構用戶而言,由於資金量較大,出於安全性和可靠性的考慮,並不建議應用。 easytrader系列當前主要有三個組成部分: easytrader:提供券商華泰/傭金寶/銀河/廣發/雪球的基金、股票自動程序化交易,量化交易組件 easyquotation : 實時獲取新浪 / Leverfun 的免費股票以及 level2 十檔行情 / 集思路的分級基金行情 easyhistory : 用於獲取維護股票的歷史數據 easyquant : 股票量化框架,支持行情獲取以及交易 2. 期貨量化投資框架體系 一直待在私募或者券商,做的是股票相關的內容,對期貨這塊不甚熟悉。就根據自己所了解的,簡單總結一下。 2.1 回測 回測,貌似並沒有非常流行的開源框架。可能的原因有二:期貨相對股票而言,門檻較高,更多是機構交易,開源較少; 去年至今對期貨監管控制比較嚴,至今未放開,只能做些CTA的策略,另許多人興致泱泱吧。 就個人理解而言,可能wind的是一個相對合適的選擇。 2.2 模擬 + 實盤 vn.py是國內最為流行的一個開源平台。起源於國內私募的自主交易系統,2015年初啟動時只是單純的交易API介面的Python封裝。隨著業內關注度的上升和社區不斷的貢獻,目前已經一步步成長為一套全面的交易程序開發框架。如官網所說,該框架側重的是交易模塊,回測模塊並未支持。 能力有限,如果對相關框架感興趣的話,就詳看相關的鏈接吧。個人期望的是以RQAlpha為主搭建回測框架,以雪球或wind為主搭建模擬框架,用easy系列進行交易。

❺ 選股策略回測用 Matlab 好還是用 Python 好

首先十年的日級別數據量的確不大,使用Python來說的話不應該出現memoryerror,應該是在編程方面需要再多留意,我們在Ricequant上使用的分鍾數據大概是200-300個GB左右,也是Python和Java共同合作完成的。

語言只是一個語言,興許會有各種語法的不同,但是在談語言的時候我們需要了解背後的工具箱和社區,以及它為什麼處理一些事情比另外的一些語言要好。


身Python初期用來做金融回測等是應該被放棄的,用來開發策略也應該是被放棄的,因為相比matlab的矩陣運算來做開發,實在是太方便了。只不過後
來Python推出了series、pandas等一系列的強悍library,pandas的語法基本在「無恥」地模仿matlab和R,而
pandas的開發者正是美國大名鼎鼎的對沖AQR,因此使data
crunching和對數據的一些操作大大便利,此外,又包裝了海量的開源社區的數學和科學計算庫,也能處理各種的machin
learning等等的問題。

從科學計算的語言的發展來看,從最初的人們對浮點數計算的需求加入了fortran,再一路進行,讓工具更加的讓科學計算容易再容易(Python也封裝了大量早期的數學家們用fortran寫的數學計算基礎庫,這些經歷了幾十年的考驗、加速等等):

我們來看下python目前的科學技術棧:

numpy: basic array manipulation - 基礎的數組處理
scipy: scientific computing in python, including signal processing and optimization - 科學計算,包括信號處理和優化等
matplotlib: visualization and plotting - 幾行代碼就可以做圖形化顯示了
IPython: write and run python code interactively in a shell or a notebook - 互動式編程環境,這是能將來替代掉matlab的一個必備,即在一行一行代碼的輸入、顯示過程中學習、改進
pandas: data manipulation - 最重要的矩陣運算等
scikit-learn: machine learning - 機器學習


是隨著以後的發展Python的開源屬性就會體現的越來越強大,可以讓更多的人享受到其便利和貢獻進來,包括Quantopian也放出了zipline
的python回測框架,只需要引入yahoo數據即可進行回測,並且Python的速度由於跟C的很好的結合可以達到非常快的速度,而且可以將來和其他
系統很容易整合對接實盤交易介面。

由於歐美已經有很多的投行和對沖在往Python的技術棧靠攏,因此選擇了Python即掌握了一門重要的工具,並且無需跟一家私有化公司進行捆綁。

當然,最後的最後,所有的python回測你都可以來Ricequant - Beta上完成,我們支持海量的市場、財務數據,還有不斷加入的和大數據公司合作的輿情數據等等,同時策略回測完還可以做實時模擬交易,享受到實時數據的計算。在雲平台上已經支持了幾乎所有的Python科學計算庫,無需花時間安裝、測試等等。

❻ 選股策略回測用matlab好還是用python好

我沒錢,支持免費開源

拋開版權不說,初期入手策略測試、數據分析用matlab非常方便
但是策略測試方法、框架弄清楚後,要做正規的回測,還是Python方便,這里的正規是指嚴格的事件流驅動,雖然速度慢,但是避免未來函數影響、接近實盤的邏輯。
Python在這方面已經有很多庫了,quantopian的zipline應該算鼻祖了,國內的優礦網和ricequant都跟zipline很像,另外還有知乎大神的zn.py,PyAlgoTrade等

❼ 用Python怎麼做量化投資

本文將會講解量化投資過程中的基本流程,量化投資無非這幾個流程,數據輸入------策略書寫------回測輸出
其中策略書寫部分還涉及到編程語言的選擇,如果不想苦惱數據輸入和回測輸出的話,還要選擇回測平台。
一、數據
首先,必須是數據,數據是量化投資的基礎
如何得到數據?

Wind:數據來源的最全的還是Wind,但是要付費,學生可以有免費試用的機會,之後還會和大家分享一下怎樣才Wind里摘取數據,Wind有很多軟體的借口,Excel,Matlab,Python,C++。
預測者網:不經意間發現,一個免費提供股票數據網站 預測者網,下載的是CSV格式
TB交易開拓者:Tradeblazer,感謝@孫存浩提供數據源
TuShare:TuShare -財經數據介麵包,基於Python的財經數據包,利用Python進行摘取
如何存儲數據?
Mysql
如何預處理數據?

空值處理:利用DataFrame的fill.na()函數,將空值(Nan)替換成列的平均數、中位數或者眾數
數據標准化
數據如何分類?
行情數據
財務數據
宏觀數據
二、計算語言&軟體

已經有很多人在網上詢問過該選擇什麼語言?筆者一開始用的是matlab,但最終選擇了python
python:庫很多,只有你找不到的,沒有你想不到,和量化這塊結合比較緊密的有:
Numpy&Scipy:科學計算庫,矩陣計算
Pandas:金融數據分析神器,原AQR資本員工寫的一個庫,處理時間序列的標配

Matplotlib:畫圖庫
scikit-learn:機器學習庫
statsmodels:統計分析模塊
TuShare:免費、開源的python財經數據介麵包

Zipline:回測系統
TaLib:技術指標庫
matlab:主要是矩陣運算、科學運算這一塊很強大,主要有優點是WorkSpace變數可視化

python的Numpy+Scipy兩個庫完全可以替代Matlab的矩陣運算
Matplotlib完克Matlab的畫圖功能
python還有很多其他的功能
pycharm(python的一款IDE)有很棒的調試功能,能代替Matlab的WorkSpace變數可視化
推薦的python學習文檔和書籍
關於python的基礎,建議廖雪峰Python 2.7教程,適合於沒有程序基礎的人來先看,涉及到python的基本數據類型、循環語句、條件語句、函數、類與對象、文件讀寫等很重要的基礎知識。

涉及到數據運算的話,其實基礎教程沒什麼應用,python各類包都幫你寫好了,最好的學習資料還是它的官方文檔,文檔中的不僅有API,還會有寫實例教程
pandas文檔
statsmodels文檔
scipy和numpy文檔
matplotlib文檔

TuShare文檔
第二,推薦《利用Python進行數據分析》,pandas的開發初衷就是用來處理金融數據的
三、回測框架和網站
兩個開源的回測框架
PyAlgoTrade - Algorithmic Trading

Zipline, a Pythonic Algorithmic Trading Library

❽ python回測系統 模擬回測 最簡單量化回測系統有哪些支持期貨和股票

github上有一個jdhc簡單回測 是用python寫的比較簡單,需要設置些參數。

熱點內容
編譯人生 發布:2025-01-31 14:19:47 瀏覽:681
c語言數組題目 發布:2025-01-31 14:19:38 瀏覽:961
說話加密 發布:2025-01-31 14:02:28 瀏覽:552
android倉庫管理系統 發布:2025-01-31 14:02:27 瀏覽:700
batsql語句 發布:2025-01-31 14:00:13 瀏覽:733
沈陽加密狗 發布:2025-01-31 13:54:58 瀏覽:705
聯想伺服器怎麼裝windows7 發布:2025-01-31 13:54:52 瀏覽:874
java二級考試歷年真題 發布:2025-01-31 13:50:31 瀏覽:171
編程一刻 發布:2025-01-31 13:36:44 瀏覽:585
編程小草出土 發布:2025-01-31 13:33:27 瀏覽:579