【vn.py学习笔记(八)】vn.py utility、网站划词取义源码BarGenerator、源码ArrayManager源码阅读
在量化投资的网站探索中,作者对vn.py产生了浓厚的源码兴趣,并投身于相关学习。网站目前,源码作者主要专注于vn.py在A股市场量化策略的网站学习,面临的源码主要技术难点包括获取和维持日线数据、实现自动下单交易、网站开发全市场选股程序、源码编写选股策略回测程序,以及运用机器学习进行股票趋势预测。STL源码 书籍推荐作者计划通过阅读vn.py源码,深入了解其架构机制,并通过分享形式记录学习心得,以便更好地理解vn.py。
相关github仓库地址:github.com/PanAndy/quan...
如有收获,请关注公众号以支持作者。同时,作者也收集了一些量化投资和技术相关的溯源码进口配额视频及书籍资源,欢迎关注公众号亚里随笔获取。
本文将重点探讨vn.py/trader/utility.py中的内容,主要包括工具函数、BarGenerator和ArrayManager。工具函数部分相对容易理解,主要是对通用功能进行封装。BarGenerator是K线合成器,负责根据实时tick数据合成1分钟K线,显示源码的标签并进一步合成n分钟K线。ArrayManager是指标计算辅助类,负责维护一定量的历史数据,以供计算sma、ema、atr等常见指标。BarGenerator和ArrayManager是本次学习的重点。
工具函数部分主要提供合约代码转换、window qt 源码编译路径读取、json文件读写、数值位数设置、日志等功能,主要是对基本功能进行封装,没有复杂的算法。
BarGenerator类用于从tick数据中生成1分钟bar数据,也可以用于从1分钟的bar数据中合成x分钟或x小时的bar。BarGenerator的主要函数包括update_tick、update_bar、update_bar_minute_window、update_bar_hour_window、on_hour_bar和generate。
ArrayManager是一个时间序列容器,用于按时间序列缓存bar数据,提供技术指标的计算。ArrayManager提供的函数分为四类:init函数、update_bar、@property函数和技术指标函数。
pythonå¨çº¿ç½ç«(pythonç½ç«)
Pythonå¼åè¿åªäºç¥åç½ç«å游æï¼
è°·æï¼GoogleAppEngineããGoogleearthãè°·æç¬è«ãGoogle广åä¹ä¹æç项ç®é½å¨å¤§é使ç¨Pythonå¼å
CIAï¼ç¾å½ä¸æ å±ç½ç«å°±æ¯ç¨Pythonå¼åç
NASAï¼ç¾å½èªå¤©å±(NASA)大é使ç¨Pythonè¿è¡æ°æ®åæåè¿ç®ãç¾å½å®èªå±ä»å¹´èµ·æpythonä½ä¸ºä¸»è¦å¼åè¯è¨ã
YouTubeï¼ä¸çä¸æ大çè§é¢ç½ç«YouTubeå°±æ¯Pythonå¼åç
Dropboxï¼ç¾å½æ大çå¨çº¿äºåå¨ç½ç«ï¼å ¨é¨ç¨Pythonå®ç°ï¼æ¯å¤©ç½ç«å¤ç亿个æ件çä¸ä¼ åä¸è½½ã
Instagramï¼ç¾å½æ大çå¾çå享社交ç½ç«ï¼æ¯å¤©è¶ è¿3åå²æ©¡ä¸å¼ ç §ç被å享ï¼å ¨é¨ç¨Pythonå¼å
Facebookï¼å¤§éçåºç¡åºåéè¿Pythonå®ç°ç
Redhatï¼ä¸çä¸ææµè¡çLinuxåæ°çæ¬ä¸çyumå 管çå·¥å ·å°±æ¯ç¨é¡·è¡¡Pythonå¼åç
è±ç£ï¼å ¬å¸å ä¹ææçä¸å¡åæ¯éè¿Pythonå¼åç
ç¥ä¹ï¼å½å æ大çé®ç社åºï¼éè¿Pythonå¼å(Quora)
æ¥é¨å»çï¼å½å ç¥åçå¨çº¿å»çç½ç«æ¯ç¨Pythonå¼åç
é¤ä¸é¢ä¹å¤ï¼è¿ææçãéå±±ãè ¾è®¯ãç大ãç½æãç¾åº¦ãé¿éãæ·å®ãåè±ãæ°æµªãæ壳çå ¬å¸é½å¨ä½¿ç¨Pythonå®æåç§åæ ·çä»»å¡ã
æ±æ¯è¾å¥½çPythonç»ä¹ ç½ç«
éåPythonå ¥é¨é¥¥å å¦ä¹ ç5个ç½ç«
1.Pythonå®æ¹ç½ç«
ææå¨çPythonæç¨ã
2.èé¸æç¨Pythonæç¨
åºæ¬å ¥é¨çº§æç¨ï¼è¿æä¸äºç®åçè¿é¶çå³éæç¨ã
3.å»éªå³°çPythonæç¨
å»éªå³°èå¸ç²ççæç¨ç¸å½ä¸éï¼ç±æµ å ¥æ·±ï¼ç®æ¯è¿é¶æç¨ï¼ä¸æ¥æ¥æ·±å ¥ï¼åé¢è¿æä¾äºä¸ä¸ªå®ææç¨ã
4.Pythonä¸æå¦ä¹ 大æ¬è¥
è¿éæFlaskèµæå¤§å ¨ï¼å¦æä½ éè¦ï¼å¯ä»¥æ¾å°
ä½ æ³è¦çå ä¹æææç¨ã
5.github
å¸æ对å¨å¤§å¦éå¦ä¹ Python课ç¨çåå¦ï¼æè æ°æå¦ä¹ Pythonæä¾å¸®å©ã
å¦ä½ç¨Pythonæ建ä¸ä¸ªç½ç«ï¼Pythonæ建ç½ç«ï¼å©ç¨ç°æçæ¡æ¶è¿æ¯æºç®åçãå¨è¿æ»åé举ä¸ä¸ªä¾å-å©ç¨Flaskæ建ä¸ä¸ªç½ç«ã
Flask
Flaskæ¯ä¸ä¸ªä½¿ç¨Pythonç¼åçè½»é级Webåºç¨æ¡æ¶ãå ¶WSGIå·¥å ·ç®±éç¨Werkzeugï¼æ¨¡æ¿å¼æå使ç¨Jinja2ãFlaskå建ä¸ä¸ªåºç¨å¾ç®åï¼åªéè¦ä¸è¡ä»£ç å°±å¯ä»¥å建ä¸ä¸ªåºç¨ãä¸ä¸ªæå°çåºç¨çèµ·æ¥åè¿æ ·:
ç´æ¥æ§è¡pythonhello.pyï¼å°±å¯ä»¥çå°é¡µé¢å°±å¯ä»¥è®¿é®äºï¼è¿åªæ¯å®æ¹ç»åºçä¸ä¸ªç¤ºä¾ï¼æ¹ä¾¿å¦ä¹ ã
åºç¨åå§å
ææFlaskç¨åºé½å¿ é¡»å建ä¸ä¸ªç¨åºå®ä¾ãWebæå¡å¨ä½¿ç¨ä¸ç§å为Webæå¡å¨ç½å ³æ¥å£ï¼WebServerGatewayInterfaceï¼WSGIï¼çåè®®ï¼ææ¥æ¶èªå®¢æ·ç«¯çææ请æ±é½è½¬äº¤ç»è¿ä¸ªå¯¹è±¡å¤çãç¨åºå®ä¾æ¯Flaskç±»ç对象ï¼ç»å¸¸ä½¿ç¨ä¸è¿°ä»£ç å建ï¼
Flaskç±»çæé å½æ°åªæä¸ä¸ªå¿ é¡»æå®çåæ°ï¼å³ç¨åºä¸»æ¨¡åæå çååãå¨å¤§å¤æ°ç¨åºä¸ï¼Pythonç__name__åéå°±æ¯æéçå¼ã
è·¯ç±åè§å¾å½æ°
客æ·ç«¯ï¼ä¾å¦Webæµè§å¨ï¼æ请æ±åéç»Webæå¡å¨ï¼Webæå¡å¨åæ请æ±åéç»Flaskç¨åºå®ä¾ãç¨å¤ä½åºå®ä¾éè¦ç¥é对æ¯ä¸ªURL请æ±è¿è¡åªäºä»£ç ï¼æ以ä¿åäºä¸ä¸ªURLå°Pythonå½æ°çæ å°å ³ç³»ãå¤çURLåå½æ°ä¹é´å ³ç³»çç¨åºç§°ä¸ºè·¯ç±ãå¨Flaskç¨åºä¸å®ä¹ä»¿è®©æ»è·¯ç±çæç®ä¾¿æ¹å¼ï¼æ¯ä½¿ç¨ç¨åºå®ä¾æä¾çapp.route修饰å¨ï¼æ修饰çå½æ°æ³¨å为路ç±ãä¸é¢çä¾å说æäºå¦ä½ä½¿ç¨è¿ä¸ªä¿®é¥°å¨å£°æè·¯ç±ï¼
index()å½æ°æ³¨å为ç¨åºæ ¹å°åçå¤çç¨åºãå¦æé¨ç½²ç¨åºçæå¡å¨åå为ï¼å¨æµè§å¨ä¸è®¿é®p
å¯å¨æå¡å¨
ç¨åºå®ä¾ç¨runæ¹æ³å¯å¨Flaskéæçå¼åWebæå¡å¨ï¼
__name__=='__main__'æ¯Pythonçæ¯å¸¸ç¨æ³ï¼å¨è¿éç¡®ä¿ç´æ¥æ§è¡è¿ä¸ªèæ¬æ¶æå¯å¨å¼åWebæå¡å¨ãå¦æè¿ä¸ªèæ¬ç±å ¶ä»èæ¬å¼å ¥ï¼ç¨åºåå®ç¶çº§èæ¬ä¼å¯å¨ä¸åçæå¡å¨ï¼å æ¤ä¸ä¼æ§è¡app.run()ãæå¡å¨å¯å¨åï¼ä¼è¿å ¥è½®è¯¢ï¼çå¾ å¹¶å¤ç请æ±ã轮询ä¼ä¸ç´è¿è¡ï¼ç´å°ç¨åºåæ¢ï¼æ¯å¦æCtrl-Cé®ã
Flaskå¼åçç½ç«å®ä¾
æ¬ç¤ºä¾ä¸ç½ç«çç»æå¦ä¸
å¯å¨æå¡å¨çé¢
访é®WEB页é¢
æ´ä¸ªæ¯å©ç¨Flaskèªå·±æ建çä¸ä¸ªWEB页é¢ï¼æ°æ®åºè¯è¿mysqlåmongodbé½å¯ä»¥æ£å¸¸è®¿é®ãæ´ä½æè§Flaskçå¦ä¹ ææ¬ä¼æ¯Djangoä½ï¼èä¸ä¹æ¯Djangoæ´çµæ´»ã
pythonå¦ä¹ ç½ç«æ¨èï¼æ°æå ¥é¨1.Python.org
Pythonå®æ¹ç½ç«ãä½ å¯ä»¥ä»è¿éä¸è½½Pythonãéå¢ä½¿ç¨ãå¦ä¹ Pythonãå®æ¹ææ¡£èªç¶æ¯ææå¨çå¦ä¹ èµæï¼åªè¦ä½ è±ææ°´å¹³å¤ï¼å¦ä¹ èµ·æ¥åºè¯¥ä¸é¾ã
2.Pythonæç¨
Pythonæç¨ä»¥åä»¥å ¶ä¸ºä»£é¡·æ¸æ©è¡¨çä¸ç³»åä¸æPythonæç¨ãèèå°å¯è½é¨å人çè±ææ°´å¹³ä¼æ为é 读Pythonå®æ¹ææ¡£çéç¢ï¼æ以ä¸ææç¨ä¹æ¯å¿ é¡»çãç¸å¯¹äºå®æ¹ææ¡£ï¼è¿æ¹æç¨å¯è½æ´å éååå¦è ï¼ä¹æ¯è¾è½å¤å»ºç«ä½ç³»ã
3.StackOverflow
è±è¯ç«ç¹ï¼%çç¨åºåæ¥å¸¸å·¥ä½å°±æ¯ä»åæ°Googleå¤å¶ä»£ç ï¼å©ä¸ç%å°±æ¯ä»è¿ä¸ªç½ç«å¤å¶äºã
4.Django
以åå ¶ä»å¸¸ç¨çæææ¡æ¶çææ¡£ãä¸åçå¦ä¹ æ¹åä¼æä¸åçæ¡æ¶ï¼æ¯å¦tensorflowãFlaskãTornadoãRequestsãScrapyççã
5.CSDN
以CSDN为代表çä¸ä¼å½å å客ç«ï¼è¿æCTOãå¼æºä¸å½ãå客åççã
æ¨èå 个å¦ä¹ Pythonçå è´¹ç½ç«1ãPython@Coursera
è¿ä¸ªæ¸ æ©è¯¾ç¨æ¯ä¸ºä»æ¥æ²¡æ¥è§¦è¿ç¼ç¨ç人åå¤çãä½ åªéè¦å°å¦çæ°å¦æ°´å¹³å°±å¯ä»¥äºã
2ãIntrotoComputerScience@Udacity
Udacityæä¾äºä¸ä¸ªå¾æ£çå 费课ç¨ï¼å¼ä½ è¿å ¥Pythonç¼ç¨çæéåå¦ä¹ å ³äºæç´¢å¼æç许å¤ä¸è¥¿ï¼ä»¥åå¦ä½ç¼åä½ èªå·±çå°åç½ç»ç¬è«ã
3ãPythonspot
Pythonspotæ¯ä¸ä¸ªç»¼åæç¨ï¼ååäºå¾å¤ä¸åç±»å«çç¥è¯æ¿åï¼é¦å ä½ å°æ¥æåå¦è èµæºæ¥å¸®ä½ å¼å§è°¨éµPythonçå¦ä¹ ï¼ç¶åä½ ç»§ç»ä¿æåè¿ä½ è½å¦å°æ´å¤å ³äºä½¿ç¨Pythonå¼åwebçã
å¦ä½æ¾å°Pythonçå®æ¹ç½ç«ï¼ç¾åº¦æç´¢pythonï¼æå®æ¹æ å¿çå°±æ¯ã
å¦ä½æ¾å°Pythonçå®æ¹ç½ç«ï¼å¯ä»¥é 读ç¸å ³ä¹¦ç±ï¼ä¸è¿ï¼è¿ç±»åçé®é¢æ´ç´æ¥çæ¯ç´æ¥æç´¢ãä¸è±ææç´¢é½å¯ä»¥ï¼ç¾åº¦æç´¢å¯ä»¥ä½¿ç¨å ³é®è¯Pythonå®æ¹ç½ç«ï¼å¦ä¸å¾æ示å°å¯çï¼ç¬¬äºæ¡è®°å½å°±æ¯äºï¼è¦æ³¨æçæ¯ï¼å®æ¹ç½ç«æ¯å¸¦âå®æ¹âåæ ·çï¼è¿æ¯ç¾åº¦çä¿¡èªè®¤è¯ï¼è¯¦ç»æ åµå¯éè¿ç¾åº¦å®æ¹äºè§£ã
ç¸å ³æå±
Pythonç±è·å °æ°å¦å计ç®æºç§å¦ç 究å¦ä¼çGuidovanRossumäºå¹´ä»£å设计ï¼ä½ä¸ºä¸é¨å«ä½ABCè¯è¨çæ¿ä»£åãPythonæä¾äºé«æçé«çº§æ°æ®ç»æï¼è¿è½ç®åææå°é¢å对象ç¼ç¨ã
Python解汪桥éå¨æäºæ©å±ï¼å¯ä»¥ä½¿ç¨CæC++ï¼æè å ¶ä»å¯ä»¥éè¿Cè°ç¨çè¯è¨ï¼æ©å±æ°çåè½åæ°æ®ç±»åã?Pythonä¹å¯ç¨äºå¯å®å¶å软件ä¸çæ©å±ç¨åºè¯è¨ãPython丰å¯çæ ååºï¼æä¾äºéç¨äºå个主è¦ç³»ç»å¹³å°çæºç ææºå¨ç 没åã
å¹´æï¼è¯è¨æµè¡ææ°çç¼è¯å¨Tiobeå°Pythonå å为æå欢è¿çç¼ç¨è¯è¨ï¼å¹´æ¥é¦æ¬¡å°å ¶ç½®äºJavaãCåJavaScriptä¹ä¸ã
以ä¸å 容åèç¾åº¦ç¾ç§-Python
py开发语言中哪里有知识库呢?
第一:Python 标准库:应该浏览一下这份文档,它为标准库中的类型、函数和模块提供了完整(尽管很简略)的参考资料。标准的 Python 发布版包括了 大量 的附加模块。其中有针对读取 Unix 邮箱、接收 HTTP 文档、生成随机数、解析命令行选项、写 CGI 程序、压缩数据以及很多其它任务的模块。略读一下库参考会给你很多解决问题的思路。
安装 Python 模块 展示了如何安装其他 Python 用户编写的附加模块。
Python 语言参考: 详细说明了 Python 语法和语义。
它读起来很累,不过对于语言本身,有份完整的手册很有用。
第二:其它 Python 资源:
,或查看VNPY知乎视频zhihu.com/org/vnpy/zvid...。
2024-11-30 20:30
2024-11-30 20:15
2024-11-30 19:53
2024-11-30 19:48
2024-11-30 18:35