Quantopian教程系列四

Writing a Contest Algorithm本教程将:给一个概述的quant竞赛和它是如何工作的(第一课)。浏览竞赛算法所需的每个标准(课程2-10)。就如何编写或修改算法以满足竞赛标准提供指导(课程2-10)。向您展示如何测试您的算法是否符合竞赛标准(第十一课)。本教程不会:教你如何研究和实现一种quant策略(为此,你应该参考入门教程)。lession 1 in...
摘要由CSDN通过智能技术生成

Writing a Contest Algorithm

本教程将:
给一个概述的quant竞赛和它是如何工作的(第一课)。

  • 浏览竞赛算法所需的每个标准(课程2-10)。
  • 就如何编写或修改算法以满足竞赛标准提供指导(课程2-10)。
  • 向您展示如何测试您的算法是否符合竞赛标准(第十一课)。

本教程不会:
教你如何研究和实现一种quant策略(为此,你应该参考入门教程)。

lession 1 introduction

Contest Overview

  • 这个比赛每天都会给写在quant上的顶级定量交易算法颁发现金奖励。该竞赛旨在评估具有代表性的多空股票策略。因此,contest算法需要具有一定的结构属性。本教程将简要介绍contest如何工作,然后介绍每个必需的结构属性,并提供如何满足这些需求的指导。

标准

  • 为了参加比赛,算法需要满足一组特殊的标准。这些标准用于选择具有代表性的多空股票策略。算法需要具备以下属性才能参加比赛:

1.正回报。
2.利用0.8倍- 1.1倍之间的杠杆。
3.比较低的头寸集中度。
4.beta-to-SPY很低。
5.中等换手率。
6.多头和空头头寸。
7.在流动性好的股票之间交易。
8.行业风险敞口低。
9.对风格风险的低暴露。
10.使用优化API下订单。

  • 有关所需标准的所有细节,请参阅比赛的官方规则。本教程的第11课有一个笔记本,您可以使用它来查看您的backtest是否通过了所有的竞赛标准。
    竞赛标准在2年的回测中被检查,并且每天重新检查你的算法在竞赛中的表现。如果你的算法在任何时候都不符合一个或多个条件,它将从竞赛中退出。如果您的算法被取消,您可以修改它,使它满足所有的条件,然后重新提交它。
    本教程后面将更详细地讨论和解释每个标准。每节课都集中讨论其中的一个需求,并提供如何编写满足每个标准的算法的建议。

提交一个算法

  • 要参加比赛,你需要编写一个算法,运行一个完整的backtest,然后点击’ enter contest '。在参加比赛后,您的算法将被回测从2年前直到最近的交易日。比赛标准将在2年内进行测试。如果你的算法通过了所有的标准,它将在下一个交易日后被评分和排名,并出现在排行榜上。如果你的算法没有达到任何一个标准,你将会收到一封电子邮件,告诉你你的项目被撤回了,连同你的特定标准都失败了。

得分及排名

  • 满足所有结构标准的竞赛算法在每个交易日之后根据分数进行排名。算法的得分是基于它的样本外收益和波动性。算法获得了高回报和低波动性的高分。
  • 算法提交后的每一天,算法的日收益除以跟踪的63个交易日的波动率,计算波动率调整日收益(VADR)。该算法的分数是该算法提交竞赛以来的vadr之和。
  • 在每个交易日结束时,参与者根据他们提交的最高分进行排名。每天排名前十的参与者将获得现金奖励。

lesson 2 Order with Optimize API

要求是什么?

  • 您的算法需要使用order_optimal_portfolio函数下所有订单。这是优化API的核心功能,也是在quant上将投资组合从一种状态移动到另一种状态的最佳方法。比赛中不允许使用quantapi中的其他排序方法。

为什么需要它?

  • order_optimal_portfolio函数是我们内部实时交易基础结构中支持的惟一一个订购函数。每个接收到分配的人都必须更新该算法以使用优化API。我们正在引导社区在流程的一开始就使用优化API,而不是在最后才使用它。这将使模拟成为一个更好的预测交易性能。

你怎样才能满足这个要求呢?

入门教程的第7课教你如何使用order_optimal_portfolio下订单。通读这一课是学习order_optimal_portfolio基础知识的最佳方法。为了满足这个需求,您需要使用order_optimal_portfolio将您的投资组合从一个状态移动到另一个状态。

lesson 3 Liquid Universe

要求是什么?

  • 你的算法必须只投资于QTradableStocksUS资产池(简称QTU)的股票。

为什么需要它?

  • 你的战略体系是它的基础。您希望资产池尽可能大,但是只包含与平台功能相匹配的资产。对于quant,这意味着我们可以可靠地找到数据的资产,适合我们的风险管理,我们可以在一个多算法的投资组合中使用,我们可以以合理的交易成本进行交易。QTradableStocksUS是满足这些quant需求的最大的资产池。此外,QTradableStocksUS的所有组成部分都包含在风险模型中。

你怎样才能满足这个要求呢?

  • 使用 QTradableStocksUS pipeline 过滤器作为你的基础。通常,这可以通过简单地在pipeline中设置screen=QTradableStocksUS来实现(如果您不熟悉pipeline,请参阅管道教程)。如果您计算了管道外的资产权重/预期阿尔法,那么在将股票传递给order_optimal_portfolio之前,您可能需要检查您想要订购的股票是否在QTU中。有一些宽松内建的竞赛要求-竞赛算法在技术上要求有至少95%的资本投资于股票的QTU,所以你有一些时间来调整你的投资组合,如果你的算法持有的股票跌出了QTU。
  • 下面是一个提供QTradableStocksUS示例:
from quantopian.pipeline import Pipeline
from quantopian.pipeline.experimental import QTradableStocksUS

def make_pipeline():

    return Pipeline(
        columns={
   
            # Your pipeline columns go here.
        },
        screen=QTradableStocksUS()
    )
  • 注意,有多种方法可以使用pipeline过滤器,如QTradableStocksUS。有时将其作为筛选提供是合适的,有时可能需要将其作为掩码提供给另一个pipeline术语。要了解有关过滤器和pieline的更多信息,请参阅pipeline教程。

lesson 4 Position Concentration

要求是什么?

  • 你的算法不能在任何一项资产上投资超过其资本基础的5%。

为什么需要它?

  • 在任何一种资产上投资过多,都会使算法暴露于头寸风险。如果你的大部分资本投资于一项资产,而该资产的价格发生显著变化,那么你的投资组合的价值也会发生显著变化。通过对大量资产进行几笔规模较小的投资,可以降低资产大幅缩水的风险。

你怎样才能满足这个要求呢?

  • 当您调用order_optimal_portfolio时,包含一个PositionConcentration约束。例如,你可以像这样定义1%的头寸集中度:
import quantopian.algorithm as algo
import quantopian.optimize as opt

MAX_SHORT_POSITION_SIZE = 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值