稳博投资开发类笔试题目0329

217 阅读7分钟

关注我们,每周发布最新的笔面试题目和解析

全球 QUSNT 都在看1.png

前言

量化开发类笔试题目,开卷 48h。第一题倾向于逻辑题和算法题相结合的形式。第二题是项目题,考察候选人对C++编写项目和回测系统的理解和认识,可以看出系统设计能力和相关代码经验,区分度明显。

春招和暑期实习和笔试也陆陆续续开始了,欢迎同学们在公众号后台留言投稿,你们的每条留言小编都会仔细查看,投稿一场完整笔试的同学有机会获得一杯奶茶的现金奖励,累计投稿三场的有机会免费加入知识星球。

题目1

考虑一个投掷硬币问题

背景: 小P和小H分别选择一个4个硬币组成的序列(正面由U表示,反面由D表示),一枚硬币每次会公正的投掷并记录结果,先出现的序列为获胜者。

问题: 给定小P选择的一个序列,请为小H设法给出胜率最大的对应序列,并给出C++/python代码

实例: 小P选择DDDD,小H可以选择UDDD

扩展: 将4改为任意有限正整数,你会如何优化你的计算,可以选择回答或者不回答。

【思路】

  1. 题目来源 penney's game,本题的关键在于这是一个连续投掷的场景,即需要考虑投掷四次后的前后关联。

  2. 对于任意给定的序列,小 H 的最优策略是选择一个序列,这个序列能够尽可能早地在游戏中出现,同时延迟小 P 序列的出现。基于前缀分析的策略,如果小 H 的序列在前几个硬币上与小 P 的序列相似,但在最后一个硬币上不同,那么小 H 的胜率通常会更高。这样,小 H 的序列在小 P 的序列形成的过程中就有机会先于小 P 的序列完成,因为它利用了小 P 序列的内部模式。

注意: 需要的是极值,而非较优解

题目2

C++实现一个回测系统框架的demo(针对股票日频即可),并将统计模块具体实现(包括收益曲线的计算,IC,Sharpe以及你认为重要的统计指标)注:框架编写可以参考已有的开源框架如BackTrader,vnpy等。

【简要思路】

实现一个C++回测系统框架的Demo,针对股票日频数据,并具体实现统计模块,是一个涉及多个复杂组件的任务。为了保证代码的性能和可维护性,依据现代C++的最佳实践进行设计和实现。以下是详细的实现思路,分为几个主要部分:

1. 系统架构设计

数据管理: 负责数据的加载、存储和访问。可以使用C++11及更高版本的文件操作和内存管理特性,确保数据处理的高效和安全。

策略接口: 定义策略的基类,包括初始化、信号生成等虚函数。策略类应能够根据历史数据生成交易信号。

执行引擎: 根据策略生成的信号执行交易,管理订单、持仓和资金。

统计模块: 计算策略的性能指标,如收益曲线、IC、Sharpe比率等。

事件驱动系统: 框架的核心,负责协调各个组件的交互。使用C++的事件队列、回调函数等实现。

2. 数据管理

使用std::vector或std::map存储股票日频数据,键为日期,值为价格等信息。

实现数据读取功能,支持从CSV或数据库读取股票数据。利用C++的文件流(fstream)和字符串处理功能。

3. 策略接口设计

设计一个策略基类,包含虚函数如initialize(初始化策略)、generateSignals(生成交易信号)等。

可以通过继承该基类,实现自己的交易策略。

4. 执行引擎

管理订单流程,包括订单创建、撮合和执行。

管理持仓信息和资金账户。

使用现代C++的智能指针管理资源,确保内存安全。

5. 统计模块实现

收益曲线: 计算每个交易日的累计收益,可以使用std::accumulate。

IC(信息系数): 衡量预测值和实际值之间的相关性,需要实现相关性计算函数。

Sharpe比率: 计算策略的风险调整后收益率,需考虑无风险利率和策略收益的标准差。

其他指标: 如最大回撤(Max Drawdown)、胜率(Win Rate)等,根据策略特性选择合适的指标。

6. 事件驱动系统

设计事件类和事件队列,事件包括市场数据更新、交易信号、订单事件等。

使用C++11的std::function和std::bind实现回调机制,处理不同类型的事件。

7. 实现细节和性能优化

内存管理: 利用C++11引入的智能指针(如std::unique_ptr和std::shared_ptr)管理动态分配的内存,防止内存泄露。

多线程和并发: 使用C++11的线程库()、互斥量()等实现数据处理和计算的并行化。

模板编程: 利用模板实现策略和模型的泛化,提高代码的复用性和灵活性。

其他思路或想法欢迎在留言区交流补充

最后介绍一下我们的知识星球

一个专门为那些寻求在量化投资数据科学机器学习领域内深度学习与交流交流的专业人士和爱好者设计的社群。创建这个星球,目的是为了沉淀有价值的内容,构建一个质量更高、更专注的学习和交流环境,从而帮助每一位成员提升自己。

在这个知识星球里,你将获得:

1.校招/社招笔面试经验交流与分享: 包含准备笔面试的策略、技巧以及职场规划等,同时提供大量往届真题等资料,帮助你充分准备,助力你成为offer收割机。

 2.专业知识与技能提升:   

数据处理与分析: 分享如何处理和分析数据,包括使用最新的工具和技术,以及数据清洗和预处理的最佳实践。 

量化策略: 深入探讨量化交易策略的设计、测试和优化,让你能够创建和评估自己的交易策略。

组合优化技巧: 介绍如何通过组合优化提高投资组合的性能,包括风险管理和资产配置的策略。 

交易系统开发: 分享交易系统的开发过程,从系统架构设计到实现,包括API接口的使用、自动化交易的实现等。 

3.不定期行业大咖分享: 邀请量化投资与机器学习领域的行业专家,分享他们的知识、见解和经验。 

4.编程技巧与算法知识: 不定期分享编程技巧、算法知识、学习方法和个人心得,帮助成员更有效地规划时间和学习路径。

 5.大厂面试内推渠道: 实时发布大厂面试内推信息,为你的职业发展提供支持。

 我们致力于打造一个全面、高效且互帮互助的社群。无论你是量化投资和机器学习领域的初学者,还是已有深厚背景的专业人士,这里都将是你学习新知识、分享经验、扩展人脉的理想之地。

图片