数据挖掘2022年2023届秋招爱玩特智能量化研究员岗笔试题(代码片段)

BetterBench BetterBench     2022-11-03     697

关键词:

公司:爱玩特智能
岗位:量化研究员
时间:2022年10月17号,线下开卷笔试

1 题目

笔试说明
1、编程要求
语言:Python
结果汇总至Excel,表一至表五
代码分块汇总至一个python文件、要求注释完整
2、数据说明
数据库链接:bj-cdb-3gfxha84.sql.tencentcdb.com
端口号:59970
账号:test1
密码:ainvest_test1
库名:test
表名:account_balance

数据结构:
As_Of_Date:日期
Position_amount:股票总金额
Cash:现金金额
Total_account:账户总金额(账户总金额=股票总金额+现金总金额)
ID:用户编号
3、考题
1)连接数据库,读取指定数据
2)画出时间-用户数的走势图
3)计算每个用户每天的投资回报率。
投资回报率=今天账户总金额/昨日账户总金额-1
4)计算每个用户每天的累计回报率
累计回报率 = +1)
5)计算描述性统计——所有用户的年化回报率,年化波动率和夏普比率。指出夏普比率最高和最低的用户分别是谁
年化回报率=日回报率平均值252天
年化波动率=日回报率的标准差
根号下252
夏普比率=年化回报率/年化波动率
6)简单线性回归
将样本按照时间分为前95%和后5%。写出前95%的最后一天日期和后5%最后一天日期。
计算每个用户在前95%样本中的年化回报率,定义为X;以及后5%样本中的年化回报率,定义为y
做y对x的线性回归,保留常数项。判断两者相关性是否显著,正相关还是负相关。

2 python代码实现

由本人自己理解并实现,并不一定正确,也不是答案,我提供的代码仅供参考

import pymysql 
import pandas as pd
import matplotlib.pyplot as plt
from functools import reduce
import numpy as np
import statsmodels.api as sm

# 问题(1):连接数据库
conn = pymysql.Connect(
    host = 'bj-cdb-3gfxha84.sql.tencentcdb.com', 
    port = 59970,  
    user = 'root',  
    passwd = 'ainvest_test1', 
    db = 'test', 
    charset = 'utf8'
    )

# 问题(2)画出时间-用户数的走势图
sql = 'SELECT * FROM account_balance;'
data = pd.read_sql(sql, conn)
time_user_number_dict =dict(data.As_Of_Date.value_counts())
time_user_number = sorted(time_user_number_dict.items(), key=lambda item:item[0])
x = range(len(time_user_number))
y = list(dict(time_user_number).values())
plt.plot(x,y,'s-',color = 'r')#s-:方形
plt.xlabel("As_Of_Date")#横坐标名字
plt.ylabel("numbers")#纵坐标名字
plt.show()

# 问题(3)计算每个用户每天的投资回报率。
sql = 'SELECT  As_Of_Date,ID,Total_account FROM account_balance;'
data_history = pd.read_sql(sql, conn)

user_list =  list(set(data_history.ID))
user_return_rate = 
for user in user_list:
    user_data = data_history[data_history['ID'] ==user]
    # 按时间排序
    user_data.sort_values(by='As_Of_Date')
    # 计算投资回报率:(后一行的总金额/前一行的总金额)-1
    return_rate =list((user_data['Total_account'].shift(periods=-1, axis=0)/user_data['Total_account']).apply(lambda x: x-1))
    # 按时间顺序存储每个用户每天的投资回报率
    user_return_rate[user] = return_rate[:-1]

# 问题(4)计算每个用户每天的累计回报率
for user,rate_list in user_return_rate.items():
    # 累计回报率:每天的回报率+1后,再全部求乘积
    reduce_rate = reduce(lambda x,y:x*y,[x+1 for x in rate_list ])
    print('用户ID的累计回报率为='.format(user,reduce_rate))


# 问题(5)计算描述性统计
# 年华回报率
sharpe_ratio_dict = 
for user,rate_list in user_return_rate.items():
    # 年化回报率
    year_return_rate = np.mean(rate_list)*252
    # 年化波动率
    year_volatility = np.std(rate_list,ddof=1)* np.sqrt(252)
    # 夏普比率
    sharpe_ratio = year_return_rate/year_volatility
    sharpe_ratio_dict[user] = sharpe_ratio

# 输出夏普比率最高和最低的用户
sharpe_ratio_dict_sorted= dict(sorted(sharpe_ratio_dict.items(), key=lambda item:item[1]))
print('夏普比率最低的用户是,夏普比率为'.format(list(sharpe_ratio_dict_sorted.keys())[0],list(sharpe_ratio_dict_sorted.values())[0]))
print('夏普比率最高的用户是,夏普比率为'.format(list(sharpe_ratio_dict_sorted.keys())[-1],list(sharpe_ratio_dict_sorted.values())[-1]))


# 问题(6)简单线性回归
# 输出前95%的最后一天日期和后5%最后一天日期。
user_data = data_history[data_history['ID'] ==user_list[0]]
# 按时间排序
user_data.sort_values(by='As_Of_Date')
# 前95%的数据跨度天数
data_len = int(len(rate_list)*0.95)
print('前95%的最后一天日期是'.format(user_data['As_Of_Date'].iloc[data_len-1]))
print('后5%的最后一天日期是'.format(user_data['As_Of_Date'].iloc[len(user_data)-1]))
X = []
Y = []
for user,rate_list in user_return_rate.items():
    # 第一步计算样本前95%的年化回报率
    x_year_return_rate = np.mean(rate_list[:data_len])*252
    # 第二步计算样本后5%的年化回报率
    y_year_return_rate = np.mean(rate_list[data_len+1:])*252
    X.append(x_year_return_rate)
    Y.append(y_year_return_rate)


# 第三步,线性回归分析
X = sm.add_constant(X) # 若模型中有截距,必须有这一步
model = sm.OLS(Y, X).fit() # 构建最小二乘模型并拟合
print(model.summary()) # 输出回归结果

conn.close()

Word题目、本人撰写的文档介绍及代码,见github
https://github.com/BetterBench/Quantitative_research_document

数据挖掘2022年2023届秋招kanaries雾角科技算法岗笔试题(代码片段)

Kanaries雾角科技算法岗位笔试笔试时间:2022年10月13号时长:120分钟几乎是刷过的算法题,最后一题是难度题,其他都是中等题目。1、LeetCode2038.如果相邻两个颜色均相同则删除当前颜色(1)题目总共有n个... 查看详情

数据挖掘2022年2023届秋招知能科技公司机器学习算法工程师笔试题(代码片段)

岗位:高级机器学习算法工程师笔试时间:2022-9-281简答题1、神经网络中防止过拟合的方法(1)降低模型复杂度(2)正则化,正则化正是通过在损失函数上添加额外的参数稀疏性惩罚项(正则项... 查看详情

数据挖掘2022年2023届秋招宏瓴科技公司机器学习算法工程师笔试题

1简介公司:宏瓴科技有限公司岗位:机器学习算法工程师笔试时间:2022-9-28以下答案全是自己总结,这些点对于我来说太难了,我对自己总结的答案也没有信心,题目中说要用公式去表示,我都不知道... 查看详情

我的cv算法岗上岸之路(2023届秋招)

 Datawhale干货 作者:记忆的迷谷@知乎,整理:极市平台来源丨https://zhuanlan.zhihu.com/p/576729164导读 在卷成麻花的2022年,一个没有上述背景、没有名校撑腰的普通科班小硕能入坑中大厂的CV算法岗吗?作者亲... 查看详情

2023届秋招提前批信息汇总(持续更新ing)

 实时更新的文档:2023届秋招提前批信息汇总(持续更新ing)(qq.com)公司投递链接面试网站工作地点截止时间互联网及私企(软件)网易游戏网易游戏(互娱)校园招聘官网https://www.mianshi.online/广州深圳、杭州、... 查看详情

2023届秋招回顾,寒气逼人。。。

作者:OliQ来源:https://www.cnblogs.com/yuanchuziwen/p/16770895.html一、自我介绍就叫我OliQ吧(《白鲸》式的开局)!我来自杭州的一所双非一本学校,是一名普通的本科生,专业【软件工程】。1.1初学编程事实上,我... 查看详情

米哈游2023届秋招开启校招唯一专属内推码eytuc

爆个猛料很猛的米哈游7月又有新岗位啦!!!!不打卡弹性工作。抓紧金7银8面试机会,年中岗位多、急、需求量大,offer流程快。现招:技术(算法、前端、后台、大数据、安卓ios测试,C++,游戏开发,客户端开发,Unity开发,引... 查看详情

偷偷盘点一下23届秋招薪资(代码片段)

...者丨库森来源丨程序员库森(ID:Coolsen88)2023届秋招形式比起前几年严峻了很多,大厂缩招、小厂停招,寒气逼人。我根据牛客网、offershow小程序、脉脉、qq微信群等渠道收集汇总了一波2023届秋招技术岗薪资... 查看详情

自动驾驶决策规划-控制方向2023届秋招总结

隔了这么久,终于打算好好总结一些自己的秋招历程了。。1.基本情况985本硕,研究方向是深度强化学习与机器人控制。今年秋招投递的岗位主要是自动驾驶的决策规划或控制岗位,当然前期也投递了一些机器人公司... 查看详情

一个高考失利人的2022届秋招复盘,目前收到腾讯字节百度阿里京东的offer

文章目录一个高考失利人的2022届秋招复盘,目前收到腾讯字节百度阿里京东的offer前言本人情况和秋招结果战绩大学时间线安排大一大二举一些面试例子数据结构和算法如何考?如何学习这部分知识网络原理如何考?如何学习这部分... 查看详情

数据挖掘恒生金融有限公司2023届秋招数据etl工程师笔试题解析(代码片段)

公司:恒生科技笔试时间:2022年9月24号岗位:数据ETL工程师时间:120分钟1不定项选择题1、SQL修改表结构的关键词是A.alterB.createC.descD.rename答案:A2、正确的是A.一个表中,主键可以唯标识一行记录B.一个事... 查看详情

2023届秋招技术岗内推专场来啦~内推名额等待优秀的你

2023届秋季校园招聘开始啦!作为一个过来人,深知找工作的无奈和奔走的劳累。我是本次校招推星官,小伙伴们赶快准备简历,然后找我内推吧。23届毕业找工作的同学可以注意一下,和博主一起共事的内推... 查看详情

2023届秋招技术岗内推专场来啦~内推名额等待优秀的你

2023届秋季校园招聘开始啦!作为一个过来人,深知找工作的无奈和奔走的劳累。我是本次校招推星官,小伙伴们赶快准备简历,然后找我内推吧。23届毕业找工作的同学可以注意一下,和博主一起共事的内推... 查看详情

2023秋招——快手数据研发一二面面经(代码片段)

🌼今天来总结一下快手数据研发的一、二面,在面试中进步,在总结中成长!对往期内容感兴趣的小伙伴可以参考下面👇:链接:2022暑期实习字节跳动数据研发面试经历-基础数仓.链接:2022百度大数据开发... 查看详情

2023秋招——快手数据研发一二面面经(代码片段)

🌼今天来总结一下快手数据研发的一、二面,在面试中进步,在总结中成长!对往期内容感兴趣的小伙伴可以参考下面👇:链接:2022暑期实习字节跳动数据研发面试经历-基础数仓.链接:2022百度大数据开发... 查看详情

新出炉|2022秋招洞察&2023春招趋势解读

...据支持。(完整报告可在公众号"Hollis"后台回复"秋招"即可获得)本文档中包含了行业洞察、职位洞察、城市、薪资、学历以及2023春招趋势。PS:因为每个读者的具体情况不同,所以,本文档只包含数据展示... 查看详情

如何看待2022届秋招嵌入式开发岗位薪资大涨?

大家好,我是无际。最近在网上看到了关于2022届嵌入式开发岗位薪资大涨的帖子,比如说像海康、大华、汇顶、联发科等公司的招聘。普遍年薪达到25W,甚至有40W的,直逼互联网。虽然不知道是不是网友吹牛逼的... 查看详情

2023届秋招,我重新认清了自己

仅记录个人经历,充满主观感受,甚至纯属虚构,仅供参考,杠就是你对本想毕业再写,但是考虑到等毕业了,24秋招的提前批就快开始了,大概就来不及了,正好现在有点时间,陆陆续续的写... 查看详情