593 字
3 分钟
vnpy学习03_各文件功能梳理
先推荐一片vnpy专栏教程:
钱塘小甲子:https://blog.csdn.net/qtlyx/column/info/30705
他写的也比较不错
他基本是按照”先深遍历”的思路阅读的,每个代码块追究比较细致,
我个人喜欢先易后难,否则代码太多,看起来容易灰心,先把容易的清理干净,在追溯代码。
vnpy文件夹结构
├── api #很多dll文件和so文件,结合之前wiki中的说明应该是 各个“外部对接接口”的实现了。飞鼠,数字货币等,可以先不看│ ├── bigone│ ├── binance│ 。。。。。。。│ ├── xspeed│ └── xtp├── data # reademe提示:shcifco:上海中期接口,可先不看│ ├── \_\_init\_\_.py│ ├── README.md│ └── shcifco├── event│ ├── eventEngine.py #TODO 重点学习│ ├── eventType.py #定义变量EVENT_TIMER,以及test()函数│ └── \_\_init\_\_.py├── \_\_init\_\_.py├── \_\_init\_\_.pyc├── pricing #期权相关,可不看│ ├── black.py #Black76期权定价│ ├── bsCython│ ├── bsCython.pyd│ ├── bs.py #bs期权定价公式│ ├── crrCython│ ├── crrCython.pyd│ ├── crr.py #期权工具类,二叉树计算价格,计算dot等│ ├── \_\_init\_\_.py│ └── README.md├── rpc #rpc相关工具类,核心无关│ ├── \_\_init\_\_.py│ ├── README.md│ ├── testClient.py│ ├── testServer.py│ └── vnrpc.py└── trader ├── app #TODO 重点学习 ├── gateway ├── ico #图标,忽略 ├── \_\_init\_\_.py ├── language #中英文的静态变量,显示用
├── uiBasicWidget.py ├── uiMainWindow.py ├── uiQt.py #以上3个是显示或界面相关的 ├── vtConstant.py #和vtText,读入constant.py中变量,到d中 ├── vtEngine.py #主引导,TODO 重点学习 ├── vtEvent.py #EVENT\_TICK,EVENT\_TIMER,EVENT_LOG等 EVENT开头的类枚举固定标识串的赋值 ├── vtFunction.py #工具类,方法函数,getJsonPath,loadJsonSetting ├── vtGateway.py #TODO 重点学习 ├── vtGlobal.py #读取配置文件VT_setting.json ├── vtObject.py #定义实体类,VtBaseData,VtTickData,VtBarData,VtTradeData等 ├── VT_setting.json #字体,mongo密码等配置 ├── vtText.py #读入text.py的配置文件,存到变量d中 └── vtUtility.py #工具类,class BarGenerator方法updateBar,updateTick。 class ArrayManager方法updateBar,up,down,cci,rsi等技术指标的计算第一步:先把容易看的代码消灭了,如上
第二步:需要细看的其实就4个文件(夹)
trader /vtEngine.py /vtGateway.py /app/
event /eventEngine.py第三步:先从例子入手:
TurtleStrategy下的run的ipy
from turtleEngine import BacktestingEngineengine = BacktestingEngine()engine.setPeriod(datetime(2014, 1, 1), datetime(2018, 12, 30))engine.initPortfolio('setting.csv', 10000000)
engine.loadData()engine.runBacktesting()engine.showResult()代码比较容易理解
执行流程:
初始变量,load数据,跑回测,显示结果
部分信息可能已经过时