文章目录

  • 一、初赛
    • 1. 赛题理解
    • 2. 思路解析
  • 二、复赛:高频交易预测
    • 1. 赛题背景
      • 课题研究要求
      • 比赛规则:
      • 评价标准
      • 数据说明
      • 计分规则
    • 2. 思路解析
  • 三、总结

一、初赛

时间:4/30/2021—5/12/2021

1. 赛题理解

近年来,以A(artificial intelligence)B(big data)C(cloud)为代表的数据智能技术飞速发展。为适应新时期银行科技转型的发展战略,招商银行提出“轻运营”理念,通过对未来业务量进行精准预测,可以合理安排人力,提升关键工作节点的精确化和自动化能力,向着以卓越、高效、低成本为特点的精益运营更进一步。

本次竞赛给出的数据包含日期、节假日信息、时间段、岗位(含2种岗位A、B)、业务类型和业务量数据。赛题共有两个子任务,任务一的权重为0.7, 任务二的权重为0.3。因此优化任务一收益更高,我们需尽量提升任务一的分值。

任务1:预测未来31天各岗位每天的业务量总量

任务2:预测未来31天各岗位每天每半小时粒度的业务总量

竞赛的评价标准为mape,该指标真实值较小的数据的影响要远大于值较大的。
MAPE⁡=1N∑i=1N∣Yi−Y^iYi+1∣×100%\operatorname{MAPE}=\frac{1}{N} \sum_{i=1}^{N}\left|\frac{Y_{i}-\hat{Y}_{i}}{Y_{i}+1}\right| \times 100 \% MAPE=N1​i=1∑N​∣∣∣∣∣​Yi​+1Yi​−Y^i​​∣∣∣∣∣​×100%

数据:
date:日期
post_id:A、B两种业务类型
biz_type:业务类型细分,A有13种,B只有一种
period:时段(每天48个)
amount:业务量(label)

2. 思路解析

比赛第三天有个大佬开源了自己的方案,开源方案github地址,参考大佬的代码,我做了一个基于规则的模型,由于期间还在准备春招实习和毕设系统,所以也没花太多时间,最终初赛185名,前两百名招行给面试机会,面试时间15分钟左右,问了一些很简单的项目问题,最后竟然进了复赛,运气略好。
比赛期间代码的mape值如下:

时间 榜单 任务1 & 方法 任务2 & 方法
5/2 A榜:0.20 0.12027 规则法 0.38963 规则法
5/4 A榜:0.16289 0.12027 规则法 0.26233 lgb
5/10 B榜:0.21122 0.1287 规则法 0.4039 规则法
5/10 B榜:0.14962 0.11743 规则法 0.1985 lgb
5/11 B榜: 0.13935 0.1140 规则法 0.1985 lgb

切换B榜后只有三次提交机会,最后B榜任务1的提交方案中,因为疫情导致2019年数据异常,所以只使用18年的11->12月份数据增长率,推算2020年11月到12月份的增长率。而基数则是2020年11月份的业务量设为w,第一次提交base为w,第二次提交base设为1.05*w,发现效果有提升,但显然系数设置的保守了,如果再大些效果还会更好。

其他大佬的参考方案:

  1. 2021招行Fintech数据赛Rank15开源分享
  2. 招商银行2021FinTech精英训练营数据赛道方案分享Rank24

二、复赛:高频交易预测

时间:6月5日晚17点-6月7日早上5点,一共36小时

1. 赛题背景

高频交易是指从那些人们无法利用的极为短暂的市场变化中寻求获利的计算机化交易,比如,某种证券买入价和卖出价价差的微小变化。通过机器学习模型代替人工经验,在飞速变化的市场中捕捉正确的交易信号,成为新时代量化交易的挑战。我们希望参赛者能够建立一个预测模型,根据每一时刻市场的行情变化,选择当前时刻最佳的交易行动决策,捕捉正确的交易机会最大限度实现“低买高卖”。

课题研究要求

本次大赛为参赛选手提供了两个数据集(训练数据集和评分数据集),数据集中每一行都代表一次以秒为间隔的交易机会,包含买卖五档的价格和挂单量、当前成交量以及成交价的数据。训练集中会给出每次交易机会中采取不同行动值(action value)对应的下一时刻收益(return)。希望参赛选手基于训练数据集,构建交易行动的判断模型,并将模型应用在评分数据集上,输出每次交易机会下应采取的行动以实现尽可能多的收益。

比赛规则:

  1. 竞赛时间:6月5日17:30-6月7日5:00;
  2. 采用数据竞赛的形式,竞赛期间开放数据,预测结果数据限提交3次:6日16:00之前、6日22:00之前、7日5点之前,前两次可自主选择是否提交。
  3. 竞赛结束后,将过程中留存的代码、中间过程文件、实现方案及分工说明等可展现竞赛中工作的文件,以小组为单位,打包压缩后命名为“2021fintech-数据赛道-XX组.zip”,将文件放置服务器指定路径,将路径告知技术导师,截止时间为6月7日5:00,对小组的评价将参考压缩包中的内容。

评价标准

  1. 评价公式:评分数据集中所有交易机会,选择的交易行动对应的累计收益。

数据说明

  1. 训练与测试数据格式

本次比赛将会提供某一交易品种的秒级别交易数据,包含买卖五档的价格和挂单量、当前成交量以及成交价的数据。训练集还包括对应采取的行动值和收益。

训练集包含m个不同的连续交易时间段,评分数据集包含n个不同的连续交易时间段。

tick.csv 文件数据字段格式如下表所示:

字段 数据样例 说明
date 2 交易日期
tx_id 4 每个时间段内的交易机会序号(以秒为间隔)
best_bid_price_1 10 买一价
best_bid_size_1 5 买一量
best_ask_price_1 11 卖一价
best_ask_size_1 21 卖一量
best_bid_price_2 9 买二价
best_bid_size_2 19 买二量
best_ask_price_2 12 卖二价
best_ask_size_2 49 卖二量
best_bid_price_3 8 买三价
best_bid_size_3 13 买三量
best_ask_price_3 13 卖三价
best_ask_size_3 30 卖三量
best_bid_price_4 7 买四价
best_bid_size_4 138 买四量
best_ask_price_4 14 卖四价
best_ask_size_4 32 卖四量
best_bid_price_5 6 买五价
best_bid_size_5 417 买五量
best_ask_price_5 15 卖五价
best_ask_size_5 50 卖五量
last_price 10 成交价
qty 11 成交量

label.csv文件数据字段格式如下表所示:

字段 数据样例 说明
date 2 交易日期
tx_id 4 每个时间段内的交易机会序号(以秒为间隔)
return_1 2 Action1对应的收益
return_2 -10 Action2对应的收益
return_3 3 Action3对应的收益
return_4 -4 Action4对应的收益

注意:
1. (label字段经过了简化处理,只有4个)
2. Tick表中天与天的顺序被打乱了,无法有效利用前一天的交易数据预测后一天

注1:买i价和买i量是指市场中投资者委托在该档位的想要买入该交易品种的交易订单的价格和数量,同理卖j价和卖j量是指委托在该档位的想要卖出该期货合约的交易订单的价格和数量。买一到买五的价量按照价格从高到低排序,档位越低价格越高,所以档位越低越容易成交;卖一到卖五的价量按照价格从低到高排序,档位越低价格越低,所以档位越低越容易成交。请注意,委托价不是实际成交价,其反映市场参与者的心理价位。

注2:由于tick数据是通过网络实时获取的数据,由于网络抖动等原因,存在某一秒没有市场的交易数据,而有些时刻会有多条市场交易数据(1秒以内);在label文件中,存在收益为空的情况,意为无法交易,以0计入收益。
2. 结果评估
需要修改predict.py 脚本下predict方法,将训练的模型封装为该方法的形式,其接受一个时刻的市场行情信息作为输入,返回该时刻下的action(值为[0、1、2、3、4] 中之一,其中0代表拒绝交易,收益为0),考虑到特征构建的需要,每天的前900个时刻的action不做评估,不计入累计收益的计算,具体细节可参考eval.py脚本
提交结果时告知技术导师脚本路径,由技术导师运行eval脚本后告知小组模型的累计收益。

计分规则

  1. 基于所提交数据的结果排名,第一名获得10分,第二名获得9分,第三名获得8分,第四名获得7分,第五名及其以后获得6分;
    基于具体结果,预测累计收益以5000为基准,收益每提高100(大于等于100、小于200),积0.1分。
  2. 由数据赛道导师组,根据比赛提交代码、使用模型、解决方案等进行评分,最高得分不超过2分。

2. 思路解析

这是个典型的高频交易预测问题,需要你根据买卖五档挂单价格和挂单量,以及之前的成交数据,预测下一个tick的交易点,然后采取行动赚取利差。有两种建模思路,

  1. 当作分类问题,赛题里已经把action划分为5种,可以直接以这五种action作为label输入模型,训练。
  2. 当作回归问题,预测交易价格的走势,然后根据价格,确实action,这种比较复杂,不太适合短期快速建模,因此最终采用第一种方案。

特征构造上,主要就是根据bid ask 成交价 成交量以及一些交易指标,划分不同的时间窗口做特征,也可以进行特征交叉。

另外还有一个难题就是最后的数据是一条一条读到模型中来的,因此需要动态的存储之前的数据然后实时构造特征,这一点代码实现也有点难度,还好队里有个大佬,这些问题基本都靠她解决。

训练营一共三期,我选了第一期,本期一共25队,其中研发赛道18队,数据赛道6队,最后的奖项有8个,数据赛道两个名额,研发6个名额,无奈自己太菜,跟着大佬最后拿了个阳光普照奖,结束本轮比赛。

三、总结

这是我自己参加的第一个建模比赛,通过这个比赛,学到了很多数据分析和建模的知识,运气好比赛时有大佬带路,因此才让我一路混到复赛,但自己水平太菜,所以最终只是水了一个经历。

6月8日比赛结束后,11日招行就开始发offer了,最终的offer分三档分别是:总行管培生,总行信息技术部,招银网络科技,含金量依次递减。复赛时每个队伍三个人,基本每个offer各一个,所以复赛offer发放率100%!
通过大家的交流,感觉最终offer发放情况如下:

  1. 管培生offer33%以上,这个感觉发了不止33%
  2. 总行信息技术部33%以上,这个应该是获得最多的
  3. 招引网络科技,这个做为兜底offer,剩下的人手一个,不到30%。

6月11号发offer时,招行先发的管培生offer,然后发信息技术部offer,这两种17:30分之前全部发完,此时群里开始讨论offer情况,然而自己并没有收到offer,已经预感到凉了。

晚上18点以后开始发招银网络科技的offer,我收到这个offer时,第一反应是自己在别人眼里,原来是这个水平,因此很生气,感觉自己被看扁了(虽然自己确实很水,但这个offer还不如不发,像在侮辱人一样

2021招商银行FinTech训练营总结相关推荐

  1. 招商银行2019Fintech训练营面试

    昨天参加了招商银行Fintech训练营的面试,今天有时间就整理了一下,方便大家参考. 一个三个面试官,一个为总行HR,一个总行技术大佬,还有一个西安分行的HR(因为我在西安,感觉分行的HR就是划水的, ...

  2. 2020年招商银行FinTech数据赛道比赛总结

    为期2周的比赛,最后b榜线上AUC0.7765,排名130,不知道第一名是多少,但看群聊,10名左右的人成绩是0.7842,差一个百分点,就与大奖差之千里啊,我还是太菜了=-=. 不过,还是很开心的, ...

  3. 最火爆的人工智能学习基础课程(2021人工智能视觉训练营)

    最火爆的人工智能学习基础课程(2021人工智能视觉训练营) 学习网站 前言 图像轮廓 轮廓特征 学习网站 B站学习网址:人工智能-计算机视觉 唐宇迪:图像处理与计算机视觉基础分享,其中包含超多实战项目 ...

  4. 招商银行fintech评分卡案例

    招商银行fintech评分卡案例 数据简介 数据预处理 变量筛选 相关性分析 模型建立和评价 数据简介 此次分享的数据案例是我的同学参加的2020年招商银行fintech项目时碰到的案例,我就正好拿这 ...

  5. 招商银行2022 FinTech训练营

    写在前面 感觉是一个有排面的活动,分为研发.产品.数据三个赛道.进入训练营可以获得总行实习的offer,参加训练营能认识很多新朋友,团队合作参与项目,还有机会拿到金融科技生提前批的offer.对于一名 ...

  6. 招商银行-FinTech精英训练营初赛-编程题

    第一题是经典dp拼凑钱币的改版,看这里 第二题 题目化简为,一个数字环,才不能选择相邻的数字,问能选择的数字之和最大为多少 类似于leetcode上的股票买卖问题,用一个二维数组表示第i个数字选或者不 ...

  7. 招商银行fintech 2021年机试

    5月2日 选择题 包含单选(40道)和多项选择(10道),累计120分,最后有一个所谓20分的编程题,实际上是下面2个小时的编程题的链接,因此第一个小时所有时间都给选择题,最后拿一下链接就好. TCP ...

  8. 招商银行fintech选拔课题---《基于微博爬虫的舆情分析》上

    最近参加了招商银行总行的fintench精英技术训练营的选拔赛,在通过笔试后,进入了课题研究的环节.因为前段时间学习了一段时间Python,所以选择了<基于微博爬虫的舆情分析>这一课题.该 ...

  9. 2021牛客训练营 F.魏迟燕的自走棋(贪心并查集)

    传送门 费用流会 T T T,但是没试过 H K HK HK之类的 STD 设武器作用于 x , y x,y x,y两个人(如果 k = 1 k=1 k=1那么令 x = y x=y x=y),收益为 ...

最新文章

  1. 输出主键的值 output inserted.id
  2. MySql UNIX_TIMESTAMP和FROM_UNIXTIME函数讲解
  3. oracle判断修改,【数据库】Oracle实现判断条件批量修改功能
  4. 探讨BI可视化下的旅游大数据分析,你的钱都花哪了?
  5. Linux CAN通信
  6. git-撤销工作与的修改-回退缓存区的修改
  7. 正常的vite创建项目并且安装vue router,vant的代码示例
  8. c语言读一字节程序,C语言读写二进制文件
  9. CSS 动画指南: 原理和实战 (一)
  10. matlab altera视频,Altera 官网中文视频教程 下载地址
  11. vue 头像修改-裁剪图片 vue-cropper
  12. Spotfire10.10.0 windows10安装与配置
  13. Python实战——1_1.网页制作
  14. 光耦的基本原理和TLP521的简单应用
  15. 安装软件出现nsis error对话框的解决方法
  16. 解决wpsoffice for linux 退出后在后台驻留进程问题,顺便解决启动弹窗“Failed to open……From=Qing”报错
  17. 【国产化系列】国产银河麒麟Kylin V10操作系统介绍
  18. 客户端测试版本发布流程
  19. 谷歌浏览器如何清除当前页面的缓存
  20. Java正则表达式Pattern.quote()方法详解

热门文章

  1. 智能家居是什么,可以吃吗?
  2. linux系统中arp老化时间计算,Linux实现的ARP缓存老化时间原理解析
  3. android 电话号码标记,Android
  4. 1.QT上位机开发之表格设计-TABLE WIDGET
  5. CentOS安装rar、unrar解压缩软件的方法
  6. 沉睡者IT - 为你解密那些卖虚拟资源和知识付费课程的平台到底有多简单和多赚钱。
  7. 2023最新独立后台茶杯狐影视网站PHP系统源码+大气UI高级
  8. <div></div>使用案例
  9. 基于scrum的估算
  10. 初探神经网络(二)单层感知机的Rosenblatt算法原理