Excel RTD
功能介绍
RTD (Real-Time Data) 和 DDE (Dynamic Data Exchange) 类似,优势在于:
实时,稳定,效率高,不再担心导出卡顿和需要二次导出的问题
可以根据需要获取单条数据,无需再将数据全部导出
有固定公式的函数,可以根据相应规则获取数据
部分 DDE 导出无法获取的数据,可以通过 RTD 获取
支持 WPS 获取实时数据
使用本插件需要注意的问题
本插件中 RTD 功能依赖于 PythonGO,需要有自主 安装 PythonGO 的能力,如果你已经在使用 PythonGO,或不需要使用 RTD 功能,则可以忽略本条
函数相关字段需要自己输入,且不能输入错误,否则无法获取相应数据
使用时,需要打开
PythonGO
策略引擎,并将PythonGO
右上角版本从NEW 3.12
切换到OLD 3.8/3.12
安装
下载安装文件:点击下载
双击下载后的 exe 文件,程序会自动完成安装,如果看到窗口一闪而过,没有报错,那就是安装完成了
重新启动 Excel
在 Excel 菜单栏能看到名为『无限易』的选项卡即可
如果新版本,插件会自动升级,升级后重启 Excel 即可
如
RTDserver.py
文件有更新,会弹出提示和更新通知
使用说明
所有功能都在 Excel 菜单栏中的『无限易』选项卡中
观看 PythonGO 快速入门,了解如何存放策略,以及加载使用策略
在插件菜单栏找到 『RTD 管理』,点击后选择 『下载 RTDServer 策略』
等到提示下载完成后,在无限易中 加载策略文件,策略文件名为
RTDserver.py
,双击确定创建策略实例,创建名称为『RTD』的实例
点击 运行策略按钮
函数
获取使用说明的三种方式
- 在『函数』部分找到 RTD 说明书,根据说明书菜单栏找到你想要获取的数据名称,点击可以看到函数名称、参数使用说明和示例。该窗口内容可以复制。
- 点击单元格函数 - 找到『RTD InfiniTrader-AddIn』- 选择需要的函数 - 函数参数填写
注意:
此种方法一定不要用来下单,因为这个会实时刷新,会出现重复发单。比如输入单号:222,会发出 3 笔单子,单号为:2、22、222
- 在输入函数时,会有对应的函数说明显示
注意:
带 * 号的参数为可选参数
参数输入错误将无法正确获取到数据
部分函数为数组函数,需要先按住
Ctrl
键选中输出范围,然后输入函数,再同时按住:Ctrl
+Shift
+Enter
键才会显示完整。若为 Excel 365 和 WPS 最新版本可以直接按住Enter
键即可。报撤单函数必须要无限易版本大于 1.2023.0302.1728 才可使用,64 位无限易需要大于 2.2023.0302.1808
Excel 模版
可下载包含期权和期货的 Excel 动态数据交换模板,包括 DDE 模板和 RTD 模板。
每个模板下载之后,再次点击下载也会覆盖上次下载内容。
期权计算器
使用 BS 模型计算的理论期权价格。其中除了波动率是按 百分比 填入,其他均需填入 小数。
盈亏分析
分析实时回报的平仓盈亏的功能,目前支持对实时回报的不同合约、不同策略(针对无限易实时回报的 Memo 栏位筛选)、不同账户进行分析。
操作步骤:
- 无限易实时回报处,右键信息导出。
- 返回 Excel 中选择对应实时回报进行分析。
注意事项:
- 横轴是根据时间动态变化的,可以将多日的实时回报整合到一个表格里进行加载。
- 加载后可以在图像顶部选择展示内容,分别对不同账户、不同策略、不同合约进行分析。
波动率曲面
操作步骤:
- 加载 PythonGO 策略
- 返回 Excel 输入期权品种(T型面板的品种栏位)
- 选择对应的交易所
- 选择绘制看涨期权的波动率曲面或看跌期权波动率曲面,暂不支持价外期权选项
- 点击绘制后,3 秒之内会出现对应波动率曲面
注意事项:
- 波动率曲面会实时更新,更新频率为 10 秒一次
- 对于没有买卖价的期权合约,不会有对应的 tick 数据推送,所以原始点不会包含这些合约,直到其有最新数据后才会有其数据。
- 插件使用 BS 模型计算波动率,内置参数:
- 年天数 365 天
- 股息率 0
- 无风险收益率 2%
- 标的价格:股指期权标的使用合成期货,其他期权使用对应标的最新价
- 期权价格:使用最新价计算
- 和无限易中参数不同,计算结果可能有细微差异
- 可以在图形最上层选择只展示拟合点或只展示原始数据点
波动率锥
操作步骤:
- 加载 PythonGO 策略
- 返回 Excel 输入标的合约名(需要和实时行情或T型面板中的合约代码相同)
- 选择对应的交易所
- 点击绘制后,3 秒之内会出现对应波动锥
注意事项:
- 需要填入的是标的合约名,不要填错了
- 当标的合约历史数据超过一定数量波动率锥也会根据数据量自适应的加长
- 可以在图像上方选择需要展示的数据
RTD 数据信息
下面概述了可获取的数据信息,详细使用方法请见 Excel 菜单栏 - 无限易 - RTD 说明书
行情数据信息
Excel 函数名:InfTickRTD
参数信息:
数据 | 参数 | 备注 |
---|---|---|
买价 | bidPrice1 ~ bidPrice5 | 有五档行情的,才有后续的 bidPrice2 ~ bidPrice5 |
卖价 | askPrice1 ~ askPrice5 | 有五档行情的,才有后续的 bidPrice2 ~ bidPrice5 |
买量 | bidVolume1 ~ bidVolume5 | 有五档行情的,才有后续的 bidVolume2 ~ bidVolume5 |
卖量 | askVolume1 ~ askVolume5 | 有五档行情的,才有后续的 askVolume2 ~ askVolume5 |
最新成交价 | lastPrice | |
涨停价 | upperLimit | |
跌停价 | lowerLimit | |
昨日结算价 | PreSettlementPrice | |
昨日收盘价 | preClosePrice | |
今日最低价 | lowPrice | |
今日最高价 | highPrice | |
今日开盘价 | openPrice | |
今日成交额 | turnover | |
今日成交量 | volume | |
今日持仓量 | openInterest | |
数据更新时间 | datetime |
期权数据信息
Excel 函数名:InfGreeksTD
参数信息:
数据 | 参数 | 备注 |
---|---|---|
隐含波动率 | IV | 自定义每年天数、无风险利率、股息率和默认 IV |
希腊值 | Delta, Gamma, Vega, Rho, Theta | 自定义每年天数、无风险利率、股息率和默认 IV |
标的合约名 | underlying_symbol | |
标的合约最新价 | underlying_price | |
期权类型 | option_type | |
执行价 | strike | |
时间价值 | time_value | |
内在价值 | internal_value |
持仓数据信息
Excel 函数名:InfPositionRTD
参数信息:
数据 | 参数 | 备注 |
---|---|---|
净持仓 | 净持仓 | 填中文参数也要记得加英文双引号 |
今日持仓数量 | 今持多仓 / 今持空仓 | 填中文参数也要记得加英文双引号 |
昨日持仓数量 | 昨持多仓 / 昨持空仓 | 填中文参数也要记得加英文双引号 |
多空头持仓 | 空头持仓,多头持仓 | 填中文参数也要记得加英文双引号 |
投机套保方向 | HedgeFlag | 返回值:1 - 投机,2 - 套利,3 - 套保,4 - 做市商,5 - 备兑 |
开仓冻结持仓 | FrozenPosition | |
平仓冻结持仓 | FrozenClosing | |
昨日持仓平仓冻结持仓 | YdFrozenClosing | |
昨持仓可平仓数量 | YdPositionClose | 包括平仓冻结持仓 |
总持仓可平仓数量 | PositionClose | |
当前可平仓数量 | CloseAvailable | |
今日开仓数量 | OpenVolume | 不包括冻结 |
今日平仓数量 | CloseVolume | 包括昨持仓的平仓,不包括冻结 |
放弃执行冻结持仓 | AbandonFrozenPosition | |
执行冻结持仓 | StrikeFrozenPosition | |
总持仓成本 | PositionCost | |
昨日持仓成本 | YdPositionCost | 当日不变 |
平仓盈亏 | CloseProfit | |
持仓盈亏 | PositionProfit | |
开仓均价 | OpenAvgPrice | |
持仓均价 | PositionAvgPrice |
资金信息
Excel 函数名:InfAccountRTD
参数信息:
数据 | 参数 | 备注 |
---|---|---|
昨日账户结算净值 | PreBalance | |
账户净值 | Balance | |
可用资金 | Available | |
上日可用资金 | PreAvailable | |
平仓盈亏 | CloseProfit | |
持仓盈亏 | PositionProfit | |
动态权益 | DynamicRights | |
手续费 | Fee | |
冻结保证金 | FrozenMargin | |
占用保证金 | Margin | |
风险度 | Risk | 部分柜台这个值无返回值,如有需要可以自行计算 |
出金金额 | Withdraw | |
入金金额 | Deposit |
合约信息
Excel 函数名:InfContractRTD
参数信息:
数据 | 参数 | 备注 |
---|---|---|
合约中文名 | 合约名 | 填中文参数也要记得加英文双引号 |
最小变动价位 | 最小变动价位 | 填中文参数也要记得加英文双引号 |
合约类型 | 合约类型 | 填中文参数也要记得加英文双引号 |
合约乘数 | 合约乘数 | 填中文参数也要记得加英文双引号 |
执行价 | 执行价 | 填中文参数也要记得加英文双引号 |
标的合约代码 | 标的合约代码 | 主要用于期权合约,填中文参数也要记得加英文双引号 |
期权类型 | 期权类型 | 填中文参数也要记得加英文双引号 |
涨跌停价 | 涨停价/跌停价 | 填中文参数也要记得加英文双引号 |
到期日 | 到期日 | 填中文参数也要记得加英文双引号 |
最小下单数量 | 最小下单数量 | 填中文参数也要记得加英文双引号 |
最大下单数量 | 最大下单数量 | 填中文参数也要记得加英文双引号 |
订单信息
函数信息:
数据 | 函数名 | 备注 |
---|---|---|
发单 | InfSendOrderRTD | |
撤单 | InfCancelOrderRTD | |
订单状态 | InfOrderStutusRTD | 根据 Excel 发单的订单号查询该订单的成交状态 |
订单信息 | InfOrderListRTD | 根据订单的成交状态查询处于该成交状态的 Excel 发单的订单信息,如:未成交,已成交,错单,撤单。属于数组函数,输入完成后需要按住 Ctrl + Shift + Enter |
历史数据信息
Excel 函数名:InfHistoryDataRTD
参数信息:
数据 | 参数 | 备注 |
---|---|---|
分钟线 | M1 | 最多 30 天 |
日线 | D1 | 年数最多 2 年(对应日线) |
如果有对应历史数据,会创建一个新的 Sheet 以储存历史数据
技术指标
可结合历史数据查询函数使用
函数信息:
数据 | 函数名 | 备注 |
---|---|---|
SMA | Inf_SMA() | 返回类型,填 1 表示返回全部数组,填 0 返回最新值 |
EMA | Inf_EMA() | 返回类型,填 1 表示返回全部数组,填 0 返回最新值 |
RSI | Inf_RSI() | 返回类型,填 1 表示返回全部数组,填 0 返回最新值 |
BOLL | Inf_Boll() | 返回类型,填 1,输出 BOLL 上轨、BOLL 中轨、BOLL 下轨,填 0 返回最新值 |
MACD | Inf_Macd() | 返回类型,填 1,输出 MACD、DEA、DIF 全部数组,填 0 返回最新值 |
ATR | Inf_ATR() | 返回类型,填 1 表示返回全部数组,填 0 返回最新值 |
KDJ | Inf_KDJ() | 返回类型,填 1,输出 K、D、J 全部数组,填 0 返回最新值 |
其他内置公式
可结合历史数据查询函数使用
函数信息:
公式 | 描述 | 函数名 |
---|---|---|
BSM 定价函数 | 可根据 Black-Scholes-Merton 期权定价模型计算隐含波动率或理论价格 | InfBsModel |
二叉树定价函数 | 二叉树定价模型的计算函数,可通过标的波动率或价格上行概率计算期权价格 | InfbinomialTreeP / InfbinomialTreeV |
套期保值计算函数 | 用于计算套期保值手数 | InfHedgeQuantity |
期货保证金计算函数 | 用于估计期货交易中的保证金金额的函数,默认参数为交易所保证金参数 | InfFutherMargin |
期权保证金计算函数 | 用于估计期权交易中的保证金金额的函数,默认参数为交易所保证金参数 | InfSpOptionMargin / InfStockOptionMargin / InfETFOptionMargin |
动态数据管理
点击『暂停动态数据更新』可以在不关闭 RTD 服务或无限易客户端的情况下暂停数据更新,可以用于保存某些数据信息。
点击『恢复动态数据更新』则继续更新数据。
注意事项
只有无限易实时回报导出内容才可以分析,目前横坐标是本地报单编号,所以如果使用多日的无限易实时回报进行分析,需要手动处理从前的报单编号,不要存在本地报单编号相同的情况。
目前分析的盈亏只是平仓盈亏,持仓盈亏和手续费暂未考虑,后续会考虑。
选择项目需要双击才能选中,如果选择了项目之后,点击绘图出现空白图,说明该合约在实时回报文件中无平仓操作。
常见问题
数据不更新
以下几种可能一一排除:
如果是点击了『暂停动态数据更新』,点击一下『恢复动态数据更新』即可。
如果是点击了『暂停 RTD 服务』,点击一下『恢复 RTD 服务』, 等待下次数据有更新会自动变化更新。
如果是第二次打开 Excel 表格,如果没有更新,可以点击『动态数据管理』-『强制刷新所有单元格』。
数据计算太多,检查 Excel 线程是不是已经全部用上了。线程阻塞之后,RTD 也没法更新。
只能在一个客户端加载一个实例,不可以多个客户端同时加载实例。如果已经发现多个客户端加载了实例,需要删除『全部』实例,然后重新加载一个。
可能是 PythonGO 策略版本不匹配,不要自行移动策略,策略会自动匹配你所用的无限易版本,直接加载就行。
检查客户端实时行情-更新时间栏位,看下是否客户端有更新,如果客户端没有更新,那 Excel 中也不会更新。
检查『RTD 管理』-『RTD 刷新时间设置』是否是设定的刷新时间太长。如果觉得刷新太慢的,也是调节这里。
发单撤单无响应
可能是自定义的单号相同,重载策略可以解决(重载策略后,自定义单号会重新发单)
提示插件被删除 或 卸载不完全
提示:
或
打开 Excel 的加载项:菜单栏 - 文件 - 选项 - 加载项 - 管理 - Excel 加载项 - 点击『转到』
取消勾选 RTD_InfiniTrader-Addln,点击确定
重新安装插件,重启 Excel 即可
加载后在选项卡中找不到插件
解决方法有两种:
文件-选项-加载项-转到 Com 加载项,然后勾选 InfiniTrader
- 如果是 WPS 需要勾选 无限易 Excel 插件,和 Excel 的 COM 加载项名字不一样
在控制面板 - 程序中找到无限易 Excel 插件,右键卸载软件。然后在文件管理器中输入 %appdata% 看看能否找到 InfiniTrader_ExcelModels 文件夹。如果有,将这个文件夹全部删掉。若没有,转第三种解决方法。
下载这个文件,解压缩后,以管理员权限运行:点击下载
已使用前面几种方法但无效,勾选后依然没有显示,请下载,安装后,再打开 Excel 即可:
COM 加载项显示,加载行为:未加载。加载 COM 加载项时出现运行错误。
一般出现在 Windows Server 中:
- 下载如下框架,安装后,重启Excel 点击下载
安装后,打开 Excel 提示:值不在预期的范围内或出现框架报错
提示更新,但是 Excel 更新后没有出现更新日志中的最新内容
出现原因
更新过程出现如下提示:
需要先关闭 Excel 再返回点击确定,如果没有正确操作将不能正确更新。
解决方法
在文件管理器中输入 %appdata% 找到 InfiniTrader_ExcelModels 文件夹,点击『无限易 Excel 插件』重新进行安装。
提示 webview 安装错误
- 首先尝试直接从这里下载安装:点击下载
WPS 提示如下报错
- 这个错误只会在 WPS 12.1.0.16729 之后的版本出现,需要按如下操作关闭沙箱即可。