1. 中國的 Python 量化交易工具鏈有哪些
萬得的Python API,可以用來獲取實時數據、歷史數據以及下單交易 優點:萬得大而全 缺點:下單交易功能不是事件驅動(例如成交回報需要用戶去查詢,而不是主推)
同花順iFinD的Python API,類似萬得的API 優點:比萬得便宜,同花順的服務態度很好(用戶提出新需求後很快就能給出確定的答復或者解決方案)
掘金的量化平台
通聯數據的量化平台
QuickFix的Python API(可以用來接國信、方正的FIX介面)
Numpy/Scipy/Matplotlib/Pandas(量化分析)
IPyhon/Spyder(適合做量化分析的IDE環境)
Zipline(策略開發回測)
TuShare財經數據介面 - 可以直接抓取新浪財經、鳳凰財經的網站數據,包括行情、基本面、經濟數據等等。完全免費,簡潔易用,API設計得非常友好,提取的數據格式是Pandas的DataFrame。同時可以獲取非高頻實時數據(取決於網站更新速度,同事經驗大約是15秒),一個極好的非高頻股票策略數據解決方案。
恆生電子的量化贏家平台,提供Python介面,鏈接我點進去後沒看到具體的使用教程,希望回頭補一下。
米礦ricequant在我提出這個問題時尚只有Java的API,後來也支持了Python,期待2016有新的突破。
2. 如何可以優化提升pandas的read
import pandas as pd
data=pd.read_csv('目錄+文件名') #打開csv文件的方式
data=pd.read_excel('目錄+文件名') #打開xls或xlsx文件的方式
仿照類似的,pandas還可以打開一些其他文件
3. 用pandas做數據分析
這個軟體做數據分析是非常不錯的,值得信賴。
4. pandas 如何對上千萬數據分組「快速」取第一行和最後一行
滑鼠選中a1格,按住左鍵,向下拖到最後一格,就選中一列。如果繼續橫向拖,就能選中一個區域。
滑鼠選中a1格,按住左鍵,向左拖到最後一格,就選中了一行,繼續向下拖,也可以選中一個區域。
樓上說的是鍵盤操作法,我說的是滑鼠操作法。
5. 怎麼學習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,按照指示掃描二維碼,綁定微信,就能微信接收交易信號了。
6. 怎麼用python panda 算股票市場收益率
1.收集數據,開盤價,收盤價,交易量
2.用pandas處理數據,處理缺失值
3.用股票收益率的公式帶入
說白了,pandas只是個好用的工具,方法都是一樣的,只是效率問題
有多少人工,就有多少智能
7. 有沒有基於python pandas的回測框架
關鍵詞:開源、python/pandas、易學方便、可以並行、參數優化、事件驅動、亞ms速度、持續維護、支持股票/期貨等
介紹:
在事件驅動的回測框架中,引擎逐個讀取Bar或Tick並處理。數據採集模塊生成市場數據事件,流經策略模塊(Strategy類)產生交易信號,資產組合模塊根據策略信號,並結合風險管理來判斷是否委託下單,模擬的交易所根據滑點、手續費狀況等返回成交結果。
使用XQuant後,大部分時候我們不需要關心底層是如何處理的,只需要在Strategy類中完成從數據到信號的處理即可,這有利於我們快速開發策略。
詳細見Github,歡迎star、issue,PR。
【Update】結合其他回答有必要更新一下,供大家參考:
明晰兩個問題:
1)事件驅動在大部分時候都是必須的,盡量去模擬真實交易過程中的數據播放過程,避免引入未來函數等,機器學習的feature之類可以預先算好存起來;
2)pandas用來I/O,內部的數據結構還是用python自帶的,這樣達到0.1ms/條的數據處理還是挺容易的,如果還是嫌速度慢,可以利用多核優勢,並行運算。
8. 如何 python,pandas判斷一個策略的好壞
啟動IPython notebook,載入pylab環境: ipython notebook --pylab=inline Pandas提供了IO工具可以將大文件分塊讀取,測試了一下性能,完整載入9800萬條數據也只需要263秒左右,還是相當不錯了。 import pandas as pd reader = pd.read_csv('dat
9. pandas如何刪除指定行
1、前提:載入numpy,pandas和Series,DataFrame。生成一個Series,並刪除索引為『c』的項,如圖所示。
10. numpy+pandas除了效率對比excel還有什麼功能上的優勢嗎
python優勢:
1. 處理超大量數據(excel 2010 最多100w行)
2. 需要頻繁改動參數的重復性工作
3. 最大的優勢:各種包(演算法包,數據處理包)
除開以上情況,excel和一些數據可視化工具秒殺python(尤其是可視化及可視化後的交互方面),如果你覺得excel不如python,只能說明你不夠了解excel函數和vba編程