# vnpy_spreadtrading **Repository Path**: wcsm/vnpy_spreadtrading ## Basic Information - **Project Name**: vnpy_spreadtrading - **Description**: vn.py框架的价差交易模块 - **Primary Language**: Python - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2021-12-02 - **Last Updated**: 2024-11-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # vn.py框架的价差交易模块 -- 支持本地篮子、gateway篮子 vnpy官方价差交易模块改进版,支持本地定义篮子、券商接口返回的ETF成分股信息作为腿交易、支持申购、赎回 ## 安装 安装需要基于2.6.0版本以上的[VN Studio](https://www.vnpy.com)。 直接使用pip命令(注意切换python环境到官方vnstation环境): ``` # 切换环境 D:\vnstudio\Scripts\activate pip install git+git://github.com/fsksf/vnpy_spreadtrading.git ``` 下载解压后在cmd中运行 ``` python setup.py install ``` ## 使用 ### 在家目录下 .vntrader/basket/ 目录预先放好篮子excel文件 - 文件名为篮子名称, 如 BasketA50.xlsx - 表格内部必须有两列数据: ['证券代码', '清单股数'] ### 改动 - 使用内部basket代码,与上一步的excel名称一致, 如 BasketA50.LOCAL_BASKET - 后缀为 .LOCAL_BASKET 才会被解析成本地篮子 - 后缀为 .BASKET 会被解析成gateway返回的篮子 - 如果某条腿为ETF, 可以选择下单为ETF还是对应的篮子股票 - 合成ask\bid_volume可配置级别1-5, SpreadData增加配置项 price_level    #### 修改策略基础类 ```python def start_long_basket_algo( self, price: float, volume: float, payup: int, interval: int, lock: bool = False, ) -> str: """ 腿中有ETF,会下ETF对应的篮子(需要getaway支持篮子) """ def start_short_basket_algo( self, price: float, volume: float, payup: int, interval: int, lock: bool = False, ) -> str: """""" def purchase(self, vt_symbol, volume): """ 申购 """ return self.send_order(vt_symbol, price=0, volume=volume, direction=Direction.PURCHASE, offset=Offset.NONE, lock=False) def redemption(self, vt_symbol, volume): """ 赎回 """ return self.send_order(vt_symbol, price=0, volume=volume, direction=Direction.REDEMPTION, offset=Offset.NONE, lock=False) ```