1. 程式人生 > >PyAlgoTrade框架研究

PyAlgoTrade框架研究

近研究量化交易,看了幾個回測的框架,最後盯上 PyAlgoTrade 這個專案。感覺很不錯,支援

策略回測和實盤交易,提供全面的技術分析介面,算是python的量化交易框架裡比較出色的作品。所以對這個框架進行了一番研究。

程式化交易系統的程式設計正規化:事件驅動的程式設計

量化交易,一般是採用統計學和數學工具,對資產的各個方面進行定量分析,並制訂程式化的交易策略嚴格執行來獲得收益。這裡面有兩大核心任務,一個是資料分析,一個是程式化交易。

與純粹的資料分析不同,因為有交易動作的存在,同時,在實盤交易中,還要實時更新價格、成交量等資料。這裡面可以很明顯的看到系統的結構:

資料分析模組----行情介面和資料來源----交易訂單管理模組----交易下單API

這幾個模組之間還存在狀態一致性的維護。因此,交易系統的設計,一般採用事件驅動的設計。比如MetaTrader 4的設計,MQL也是採用事件回撥

來計算指標或者進行EA交易。PyAlgoTrade也是基於這個理念開發的。PyAlgoTrade自己封裝了一套事件分發機制,具體的實現可以參考:

資料結構的取捨

量化交易中的資料以資產價格或者成交量的時間序列為主,這類序列化資料的分析框架有很多。大部分的科學計算框架,比如:Numpy、SciPy、

statsmodels、scikit-learn等等,都支援序列或者Array的分析。在Python的科學計算框架體系中,Numpy是核心,其核心的 ndarray

 資料結構

也被廣泛使用於其他資料分析框架之中。但是儘管 ndarray 適用於分析領域,在程式化交易中,仍然希望資料結構內的變化依然能有一個對外的通知,

需要一個帶有事件支援的資料結構。因此PyAlgoTrade並沒有採用 ndarray 或者pandas的 dataframe 作為基礎資料結構,而是自行封裝了一個 DataSeries 

結構,以及針對每個K線或者蠟燭圖的 Bar 結構。

與資料分析框架的整合方式

儘管因為需求的原因,需要單獨實現一套資料結構,但是要使用主流的分析框架,依然需要使用ndarray這樣的資料結構。這裡就存在一個數據轉換的問題。同時,由於

實盤交易的原因,PyAlgoTrade策略實現上,以複寫 onBars

 方法(其意義與MQL中的 onTick方法類似)為主,因此也是需要每次更新Tick資料就進行一次計算。

這裡就涉及到一個移動視窗問題。PyAlgoTrade也對此做了一定的封裝。這裡可以參考:

talib的封裝。

相關推薦

PyAlgoTrade框架研究

近研究量化交易,看了幾個回測的框架,最後盯上 PyAlgoTrade 這個專案。感覺很不錯,支援 策略回測和實盤交易,提供全面的技術分析介面,算是python的量化交易框架裡比較出色的作品。所以對這個框架進行了一番研究。 程式化交易系統的程式設計正規化:事件驅動的

【量億資料-金融資料-量化交易】PyAlgoTrade框架研究

最近研究量化交易,看了幾個回測的框架,最後盯上PyAlgoTrade這個專案。感覺很不錯,支援 策略回測和實盤交易,提供全面的技術分析介面,算是python的量化交易框架裡比較出色的作品。所以對這個框架進行了一番研究。 程式化交易系統的程式設計正規化:事件驅動的程式設計

Mina框架研究

顯示當前的時間 guide forname cfa services com pri 開發 監聽端口 Apache MINA(Multipurpose Infrastructure for Network Applications) 是 Apache 組織一個較新的項目,它

RPC框架研究(二)Hadoop源代碼-1

trac 挑戰 b2c ott 技術分享 style dsm mod spa 報名了阿裏中間件性能大賽,我來說是一個全新的挑戰。一切從空白學起,比賽的過程也是學習的過程 是的。想讓自己學好。給自己報一個比賽吧~ 就像當初學圍棋,也是報了圍棋比賽,為

WebAppBuilder獨立於Portal之arcgis for js應用框架研究

1.前言          最近在做專案過程中,用到了WAB,先做一下總結和歸類。Webappbuilder(簡稱WAB)是執行在portal或者online的一款webGIS開發應用程式,其程式碼開源並且具有優秀的設計外觀、多個系統微件、多平臺執行、積木模式搭建、靈活可擴充套件的開發方式,為現代webGIS

Java日誌框架研究及常見配置

按照基本的定義,日誌即是對程式執行過程中關鍵事件的記錄;大體日誌分為執行日誌和開發日誌,執行日誌在業務層面記錄一些關鍵事件,為後面的跟蹤執行提供幫助,而開發日誌大多數時候是除錯日誌,根據事件流的輸出來除錯程式;因為開發人員本身的關注領域,執行日誌可能製作的比較少,難以達到

框架】iOS框架研究

更多內容歡迎光臨作者部落格: 學習iOS開發已有數年時間,基本的各種庫操作都能夠熟練完成,但是對於iOS的整體框架還需要重新學習一邊。每天的工作其實都離不開這套框架,它上至使用者所見之介面,下至底層作業系統,就相當於一個工具箱,不論你的App多麼複雜或者多麼簡單,都

GAN框架研究與思路整理

  本文內容將著重分析當前GAN原理及其應用場景,比對其相對於傳統深度學習方法在影象生成等方面的區別 一、原始GAN原理           原始GAN論文中的思想為生成模型與判別模型間的零和博弈,通

spserver 開源伺服器框架研究與分析

網上開源的C/C++伺服器框架 還是比較少的。 最近研究了 spserver , 裡面用了較多的設計模式,使用設計模式的目的是把不變的東西和可變的東西分離並且封裝起來,避免以後修改程式碼, 應用設計模式的書裡面講的就是 “對修改關閉,對擴充套件開放”,但是濫用設計模式會把簡單

Facebook的物體分割新框架研究2——DeepMask

一、DeepMask【Learning to Segment Object Candidates.2015 NIPS】 一句話,DeepMask是幹啥的:產生region proposal的! 納尼?不知道region proposal是什麼?來複習一下最近的物體檢測系

基於MVC設計模式的WEB應用框架研究~~轉

MVC設計模式是基於J2EE的WEB應用開發的首選模式,當前許多流行的框架也都是基於MVC設計模式的。本文簡要介紹了MVC設計模式和Struts框架,並提出了一種基於MVC模式的新型WEB應用開發框架——WebFramework,並對該框架的各個層次的組成、功能進行了詳細的描

小程式的框架研究報告(開發框架、UI框架

最近開始畢業設計了,根據需求文件,我們需要使用小程式的微信運動API,寫一個運動類APP,所以我就開始查詢小程式相關的文件與社群。 微信小程式才剛剛起步,生態不能說很豐富,但是依然有很多優秀的開源專案: awesome-wepy 開發模式 一個前端專

Appium自動化測試框架研究(2)——搭建IOS環境

    今天的文章講iOS的Appium環境搭建。   對於iOS而言,只能在Mac筆記本上安裝Appium,以及所需要的各種元件。   也許有人會問,能否在Windows系統上使用Appium測試iOS手機,這不就不用花錢買Mac了嗎?答案是不可以,因為Appi

今天研究Unity Ioc 框架

問題 .com 檢查 消息 框架 今天 log blog config 今天研究Unity Ioc 框架,被自己坑了兩個多小時。 運行就報錯,反反復復檢查了很多次,配置文件,代碼都沒有問題,也從新寫了好幾遍。 最後仔細看報錯消息才知道,config文件沒有生成到目錄…………

研究些架構,少談些框架——一名阿裏架構師的筆記

pos 不同的 還原 don eva art 同步 限制 it行業 微服務架構和SOA區別 微服務現在辣麽火,業界流行的對比的卻都是所謂的Monolithic單體應用,而大量的系統在十幾年前都是已經是分布式系統了,那麽微服務作為新的理念和原來的分布式系統,或者說SOA(面向

Yarn框架和工作流程研究

ide 一段 lin 占用 記錄 park 純粹 單個 task 一、概述 將公司集群升級到Yarn已經有一段時間,自己也對Yarn也研究了一段時間,現在開始記錄一下自己在研究Yarn過程中的一些筆記。這篇blog主要主要從大體上說說Yarn的基本架構以及其各個

研究些架構,少談些框架(1):論微服務架構的核心概念

定位 dubbo spring 提供服務 電信 cor res gate 虛擬 微服務架構和SOA區別 微服務現在辣麽火,業界流行的對比的卻都是所謂的Monolithic單體應用,而大量的系統在十幾年前都是已經是分布式系統了,那麽微服務作為新的理念和原來的分布式系統,或者說

研究些架構,少談些框架( 2 ):微服務和充血模型

方法 平時 是把 小系統 生涯 過程 語句 小結 大量 上篇我們聊了微服務的DDD之間的關系,很多人還是覺得很虛幻,DDD那麽復雜的理論,聚合根、值對象、事件溯源,到底我們該怎麽入手呢? 實際上DDD和面向對象設計、設計模式等等理論有千絲萬縷的聯系,如果不熟悉OOA、OOD

研究些架構,少談些框架( 3 ):事件驅動架構

object 邏輯 查詢 同時 最新 order ring 手機 enc 接上篇,我們采用了領域驅動的開發方式,使用了充血模型,享受了他的好處,但是也不得不面對他帶來的弊端。這個弊端在分布式的微服務架構下面又被放大。 事務一致性 事務一致性的問題在Monolithic下面不

研究些架構,少談些框架(4):架構師是技術的使用者

模型 微服務 平滑 架構 ring rds 伸縮性 徹底 前後端 架構師是技術的使用者而不是信徒 我承認我是標題黨, 為什麽要寫這篇充滿爭議的文章?目前架構師這個職位特別火熱,程序員的目標都是成為一個令人尊敬的架構師。但是我們真的理解架構師應該做些什麽?很多人把架構師和框架