首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从零开始学量化(四):用python写一个择时策略

本篇给出写择时策略测的详细步骤,并用代码展示全过程,代码用python写,数据和代码后台回复“择时”获取,可以自己测试。...本文以最简单的双均线策略为例进行测,具体规则如下: 短均线上穿长均线(金叉),且当前无持仓:买入; 短均线下穿长均线(死叉),且当前持仓,卖出; 其他情况,保持之前仓位; 可以考虑控制,单次亏损超过一定幅度平仓...夏普夏普比 = (策略期望收益率 - 无风险收益率)/策略波动率 夏普比综合衡量了收益和风险,是最广泛应用的指标。...胜率 统计胜率要先统计交易次数,然后计算所以交易中盈利次数占的比例 最大是策略从前期最高点到当前时点的亏损,最大是所有中的最大值,反映的是策略的最大可能损失。...、最大、胜率、逐年收益率、单次最大亏损等指标; 收益都用复利; 测结果 ?

11.7K155

【手把手教你】使用pyfinance进行证券收益分析

benchmark):.3f}') alpha:0.0004,t统计量:1.55 beta :1.0634,t统计量:60.09 回归决定系数R2:0.606 03 风险指标 风险指标主要包括标准差和最大...#年化标准差 a_std=tss.anlzd_stdev() #下行标准差 s_std=tss.semi_stdev() #最大 md=tss.max_drawdown() print(f'年化标准差...Calmar比率(Calmar Ratio) :描述收益和最大之间的关系,计算方式为年化收益率与历史最大之间的比率。Calmar比率数值越大,投资组合业绩表现越好。...风险指标 #年化标准差 dd['年化标准差']=tss.anlzd_stdev() #下行标准差 dd['下行标准差']=tss.semi_stdev() #最大...dd['最大']=tss.max_drawdown() #信息比率和特雷诺指数 dd['信息比率']=tss.info_ratio(benchmark) dd['特雷纳指数

2.1K22
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    一个策略的自白

    与最大的差异形成对比的是,无论是日频预期收益、波动率还是夏普率,这两个策略却都是一样的。仅仅因为涨跌序列顺序不同,造成了不同的最大。...顾名思义,最大就是“最大”的那个,它本身就是一个很偶然的量。在样本内测,得到的最大只有这么一个点估计。一旦参数发生变化,最大也会发生变化。因此,使用点估计来评价最大是不够合理的。...而该文认为,不同的指标仅是这些 t 时刻的的某种加权平均。比如,整个策略的最大就是不同 t 时刻的中最大的那个。...结果发现,在这些不同的指标中,平均(ADD)、线性加权(lwDD)以及平均平方(ADD^2)的效果最接近 —— 表现在使用这些指标对策略性能排序的相似度高。...夏普率衡量了一个策略的随机性,因此只要是存在随机性的策略,其夏普率就一定有上界。

    58100

    研报复制(一):《指数高阶矩择时策略》

    报告认为高阶矩可以刻画资产价格的变化,并且有一定的领先性,可以以此构造指数择时策略,原理见研报(在公众号后台回复“高阶矩”获取研报和代码) 文章为个人对报告的理解,结果并不准确,有问题请指出 python..._02*100)) print('') print('测1夏普比为:%s' % Sharp) print('测2夏普比为:%s' % Sharp_01) print('测3夏普比为:%s' % Sharp..._02) print('') print('测1最大为:%s%%' % (MDD*100)) print('测2最大为:%s%%' % (MDD_01*100)) print('测3最大为...测3总收益率为:571.69369844% 测1夏普比为:0.8071530425449338 测2夏普比为:0.8120229809371885 测3夏普比为:0.7049768658906784...测1最大为:40.25782265430625% 测2最大为:34.72891044547697% 测3最大为:39.44870302175746% 以HS300为基准,测1累计收益率展示

    1.7K22

    量化交易

    这个过程中可以以金融行业的服务研究报告,但是要清醒地、有针对性性地看待这些报告 相信时间的作用:效果再好的资金曲线在某个局部也会出现各种波动,这是不可避免的,个人投资者相较而言能够忍受更长的期,没有固定的开发成本...\begin{equation} \left(\frac{\text{策略最终价值}}{\text{策略初始价值}}-1\right)\times 250 \end{equation} 最大比率...描述策略可能出现的最糟糕的状况,一段时间内策略的最大比率是指: \max(1-\frac{\text{策略当日价值}}{\text{当日之前资金最高价值}}) 夏普比率 Sharpe Ratio...Sharpe\, Ratio=\frac{\text{策略年化收益率}-\text{无风险回报率}}{策略回报率标准差} \end{equation} 它的优点是不仅考虑收益,还考虑每次的波动率(幅度...收益风险比 类似于夏普比率,衡量了策略的风险控制和收益平衡能力,公式为年度收益/全段最大资产

    2.2K20

    一位从事量化交易的实战者,手把手带你入门量化交易!

    为了执行测程序,我们得使用软件平台。你可以使用专用的测软件,如Tradestation,或是数字平台,如Excel或MATLAB,或者使用编程语言如Python或C++进行自定义实现。...测系统时,必须能量化其性能表现。量化策略的“工业标准”指标是最大率和夏普率。最大率是指账户权益曲线在特定时间段内(通常是每年)的最大峰谷跌幅,通常以百分比的形式出现。...由于许多统计因素的影响,低频交易策略的最大率通常会比高频交易策略高。历史测会找出过去的最大率,对未来的最大率会有很大指导作用。...请注意,年化回报通常不是衡量的指标,因为与夏普率不同,它没有考虑策略的波动性。 一旦策略通过测并被认为是基本没有偏差,还有了好的夏普率和最低限度的率,是时候建立一个执行系统了。...交易成本会区分开拥有良好夏普率的可盈利策略和拥有较差夏普率的不可盈利策略。使用回测较难准确预测出交易成本。根据策略的频率,需获得历史的交易数据,其中包括买卖价格的勾选数据。

    2K31

    择时荟萃(三):择时策略的溢出效应

    t期末,各个资产的权重通过最优化下述目标得到 以上是基础趋势跟踪策略的构建方法,对看期数进行参数遍历,对应策略的夏普比率如下,大部分参数下,策略都有较高的夏普比。...举个例子, 用债券构建信号,在股票和外汇上交易,测试不同看期下,是否有效果 上图列的是不同看期下的夏普比,如前面提到的,债券对于股票有显著的溢出效应,在各个参数下都有效。...不同看期下的溢出效应策略表现如下 溢出效应是否不同于趋势或反转? 作者随后又测试了,溢出效应是否显著不同于趋势或反转,还是只是一种假象。这里用了两种方法。...这张表是上面问题的答案,第三列Combo是合成策略,可以看到,合成后,策略的最大夏普比里都是提升的,高于单个策略,表明可以合成。...能得到更强的合成策略LeveredSP,ComboLeveredSP 下面是单个策略,和合成策略的净值曲线对比,蓝色线是趋势跟踪策略,红色是溢出效应策略,其他曲线是不同的合成策略,明显看到最近几年合成策略更小

    45310

    仓位管理:超越凯利公式,梦回华尔街!

    如果我们想使用回作为风险度量,我们需要处理其固有的不确定性。我们无法完全限制预期结果,因为最大值可能会出现在很大范围内。然而,我们可以相当有信心地说,所经历的最大不会超过我们的阈值。...事实上,可以证明最大与时间的平方根成正比(大家可以自己证明一下)。直观地说,一个账户下个月的最大将低于下一年的最大。为了准确地设置最大的阈值,我们需要定义时间范围。...通常选择>1000来获得一个精确的分布图。 计算每条曲线的GHPR和最大。 确定在我们指定的置信水平上的水平。 记录GHPR值的中值(可以选择百分位数)。...如果你的策略在测中夏普比率为8,但在实时交易中夏普比率接近0.5,那么你的杠杆将会很高,并很快超过你的风险承受能力。 现在,我们有了一种方法来确定我们理想的头寸规模占我们总账户净值的百分比。...因此,我们将优化程序分为两部分: 1、找出使投资组合夏普比率最大化的相对配置权重。 2、在考虑给定的风险/限制的前提下,确定适用于最大化GHPR的投资组合的杠杆率。

    1.8K20

    使用 Python 进行财务数据分析实战

    本文探讨了Python在金融数据分析中的应用,包括使用Pandas、NumPy和Matplotlib等Python库,它们能够处理股票市场数据、展示趋势并构建交易策略。...测策略 测策略是指通过历史数据来验证交易策略的有效性和盈利性。通常进行测策略需要以下步骤: 选择历史数据:从可靠的数据源获取需要的历史数据,包括价格数据、成交量等。...夏普比率的数值越高,表示投资组合单位风险所获得的超额收益越高,因此夏普比率可以用来度量投资组合的风险调整后表现。通常情况下,夏普比率越高,投资组合的绩效越好。...最大 最大是指在一段时间内资产价格从最高点下跌的幅度。通常用来衡量风险和资产价格波动的程度。最大可以帮助投资者评估投资组合的风险水平,以及资产的价格波动性。...在量化投资中,最大也是一个重要的指标,用来评估交易策略的风险和表现。

    62910

    【价值投资逻辑】高质量、低估值选股模型(代码+报告)

    本文参考:东兴证券《价值投资的逻辑:高质量+低估值》 作者:WindQuant | 001 一、因子提取 1、测区间:2007年1月30日至2018年6月29日; 2、调仓日:每月最后一个交易日为调仓日...三、投资组合表现分析 3.1选出的股票数量分析 部分调仓日的股票代码如下所示: 部分代码展示,全部代码请见文末 在测区间的各个调仓日选出的股票数在18只-86只之间,2009年4月-2009年7月、2014...3.3 收益率分析 3.3.1 投资组合与沪深300指数、中证500指数、上证50指数、上证综指净值对比 部分代码展示,全部代码请见文末 从投资组合与各大指数的净值时序图可以看出,投资组合的测净值在整个测周期内基本大于各大指数的测净值...3.3.2 投资组合与沪深300指数、中证500指数、上证50指数、上证综指收益率对比 通过对比投资组合与沪深300指数、中证500指数、上证50指数、上证综指的年华收益率、收益波动率、夏普比率、最大等指标...部分代码展示,全部代码请见文末 从投资组合与各大指数的收益情况来看,投资组合的年化收益远高于各大指数的年化收益,达27.0,夏普比率也最高,达0.85,但收益波动率与最大最不理想,说明投资组合在高风险下能带来高收益

    1.5K50

    【必看】机器学习应用量化投资必须要踩的那些坑(系列55)

    结论 在日内单边千分之一,隔日单边万分之3的成交假设下,策略表现如下: 夏普:3.55 最大:17.05% 胜率:62.69 盈亏比:1.31 年化:80.36% 1.6....结论 在日内单边千分之一,隔日单边万分之3的成交假设下,策略表现如下: 夏普:0.68 最大:36.92% 胜率:53.21 盈亏比:0.99 年化: 19.02% 1.3....结论 在日内单边千分之一,隔日单边万分之3的成交假设下,策略表现如下: 夏普:0.95 最大:29.71% 胜率:49.64 盈亏比:1.23 年化:17.67% 3.3....结论 在日内单边千分之一,隔日单边万分之3的成交假设下,策略表现如下: 夏普:2.66 最大:17.24% 胜率:57.56 盈亏比:1.22 年化:56.38% 4.3....结论 在日内单边千分之一,隔日单边万分之3的成交假设下,策略表现如下: 夏普:1.66 最大:25.30% 胜率:49.72% 盈亏比:1.39 年化:30.91% 5.3.

    1.5K50

    这个用Python优化的比特币交易机器人简直太烧脑了...

    基于波动率的奖励指标 这种风险可调节的奖励指标中的典型就是夏普比率(Sharpe Ratio,又被称为夏普指数)。它计算的是特定时间段内投资组合的超额收益与波动性的比率。...到目前为止,我们所有的奖励指标都没有考虑到比特币币价最大率(drawdown)这个关键因素。 最大率是指比特币币价从价格顶峰到价格低谷之间的价值差,用来描述买入比特币后最糟糕的情况。...最大率对我们的投资策略来说是致命的,因为只需一次币价突然跳水,我们长时间累积的高收益就会化为乌有。...最大率 为了消除最大率带来的负面影响,我们需要选用可以处理这种情况的奖励指标,就比如说选用 Calmar 比率。该比率与夏普比率类似,只是它将分母上投资组合的标准差替换为最大率。...Calmar 比率的计算公式:(投资组合的收益-大盘的收益)/最大率 我们最后一个奖励指标是在对冲基金行业中广泛使用的 Omega 比率。

    1.1K20

    十行代码实现一个量化交易入门程序

    1 在浏览器中打开 www.joinquant.com 2 编写策略代码 点击顶部的“我的策略”,选择子菜单“我的策略”,在左侧输入python代码 def initialize(context):...3 编译运行 点击编译运行,右侧的上半部分显示测结果,下半部分显示日志和错误。 ? 这里默认的统计时间为2016-6-1到2016-12-31,若想改成自定义的时间需要注册并登录。...例如一个策略的Beta为1.3,则大盘涨1%的时候,策略可能涨1.3%,反之亦然;如果一个策略的Beta为-1.3,说明大盘涨1%的时候,策略可能跌1.3%,反之亦然 (5)夏普比率:表示每承受一单位总风险...(6)最大是一个风险指标,衡量极端风险,表示在测试区间内最大的可能浮亏。注意这里是浮亏,不是亏损。 例如:初始净值为1元,后来增长到最高点1.6元,近期跌到最低点1.6元。...则最大为 (1.6 - 0.6) / 1.6 = 62.5%。 5 分析 图2中的基准收益为4.43%,策略收益为66.69%,远高于基准收益。

    1.2K90

    这个用Python优化的比特币交易机器人简直太烧脑了...

    夏普比率的计算公式:(投资组合的收益-大盘的收益)/投资组合的标准差 从公式中我们可以得出,为了保持较高的夏普比率,投资组合必须同时保证高收益和低波动性(也就是风险)。...到目前为止,我们所有的奖励指标都没有考虑到比特币币价最大率(drawdown)这个关键因素。 最大率是指比特币币价从价格顶峰到价格低谷之间的价值差,用来描述买入比特币后最糟糕的情况。...最大率对我们的投资策略来说是致命的,因为只需一次币价突然跳水,我们长时间累积的高收益就会化为乌有。 ?...最大率 为了消除最大率带来的负面影响,我们需要选用可以处理这种情况的奖励指标,就比如说选用 Calmar 比率。该比率与夏普比率类似,只是它将分母上投资组合的标准差替换为最大率。 ?...Calmar 比率的计算公式:(投资组合的收益-大盘的收益)/最大率 我们最后一个奖励指标是在对冲基金行业中广泛使用的 Omega 比率。

    1.2K20
    领券