Skip to content

MagicEthan/jinshuyuan_clean

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

金数源1分钟数据,主力拼接程序 数据来源于金数源,2014-2019 不做非活跃品种(如LR等) 注意郑商所代码为3位数

主力拼接方法: 假设对于某品种S,某天DAY_N的主力合约代码为MF

  1. 每个交易日下午15:00收盘时,进行如下检查

① 通过CTP接口查询,对于品种S的所有合约持仓Openinterest量进行排序。

如果发现最大持仓的合约代码 NOT MF,则需要启动换月;

② 通过线上/线下1分钟数据库查询,对于15:00时已订阅的品种S的所有合约的持仓量Openinterest进行排序。

如果发现最大持仓的合约代码 NOT MF,则需要启动换月;

上述两者决定的主力合约应当一致,如果不一致,应当立刻检查二者的数据,暂停换月或者暂停交易,等查明原因修复后,再进行换月与交易。

  1. 假设第一步中的新主力合约代码为MF_NEW

① 计算复权系数

PRICE_NEW = DAY_N 15:00时 MF_NEW的CLOSE_PRICE

PRICE_OLD = DAY_N 15:00时 MF 的CLOSE_PRICE

COEF = PRICE_NEW/PRICE_OLD

② 复权 将所有线上交易用数据库online_mf_nogap_1min中,DAY_N 15:00及之前(包括,且之前到第一个值)品种S的open, high, low, close四个价格数据(注意Volume和Openinterest不要乘),全部乘以COEF并覆盖原数据。

从而实际上,换月当天DAY_N 15:00之前的主力连续数据,仍然是老合约的复权数据;当晚9点或第二天开始候,才是新合约MF_NEW的数据(与回测数据拼接方法一致)

③ 下次实盘开始时的处理

I. 如果S品种有夜盘,则从当日DAY_N晚上9点(包括)开始,online_mf_nogap_1min直接写入MF_NEW的1分钟数据(直接从CTP压制的1分钟数据,无任何复权处理)。DAY_N晚上9点(不包括)之前的,则使用上一步中复权后的数据。

II. 如果S品种无夜盘,则从第二天DAY_N+1早上9点(包括)开始,online_mf_nogap_1min直接写入MF_NEW的1分钟数据(直接从CTP压制的1分钟数据,无任何复权处理)。所有日期Date在DAY_N(包括)之前的,则使用上一步中复权后的数据。

III. 实际操作中,需要重启策略,从数据库online_mf_nogap_1min(或直接从文件中)读取复权处理后的新数据作为cache,并在之后使用MF_NEW的1分钟数据生成交易信号。

About

cleaning 1minute data from jinshuyuan.net

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages