Python量化策略:经波动率调整的随机震荡指标

本文探讨了如何通过调整波动率优化经典的随机震荡指标,结合斐波那契数列动态改变回溯期,以提高在金融市场中的择时能力。通过回测策略,展示了波动率调整后的随机震荡指标在AUDCAD和多货币测试中的表现,强调实际交易中应结合个人研究以实现盈利目标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们都知道著名的随机震荡指标,它是MACD和RSI之外的主要指标之一。众所周知,它波动很大,有时会在很短时间内从超买区域转移到超卖区域。

随机振荡指标一直令我着迷,因为它的简单性和对已知归一化功能的使用。我发现它在技术分析中占据重要的地位,因此在量化交易中也使用了它。但是,我相信我们应该始终对所学知识进行创新,因此,在本文中,我们将优化该指标,令其能够反映价格的波动性。

本文来自《数据黑客》,登录官网可阅读更多精彩资讯和文章。

随机震荡指标

随机震荡指标通过在计算中纳入高点和低点,试图找到超卖和超买区域。计算公式如下:

在这里插入图片描述

我们将创建以下函数,根据OHLC(高开低收)数据计算随机指标:

def stochastics(Data, lookback, what, high, low, where):  
          
    for i in range(len(Data)):  
          
        try:  
            Data[i, where] = (Data[i, what] - min(Data[i - lookback + 1:i + 1, low])) / (max(Data[i - lookback + 1:i + 1, high]) - min(Data[i - lookback + 1:i + 1, low]))  
          
        except ValueError:  
            pass  
      
    Data[:, where] = Data[:, where] * 100

    return Data

# The Data variable refers to the OHLC array  
# The lookback variable refers to the period (5, 14, 21, etc.)  
# The what variable refers to the closing price  
# The high variable refers to the high price  
# The low variable refers to the low price  
# The where variable refers to where to put the Oscillator

在这里插入图片描述

上图显示了GBPUSD的随机震荡指标,回溯期等于14。由于指标的归一化函数的性质会使其介于最小值和最大值之间,因此该指标将始终在0到100之间。通常在交易软件中找到的默认参数是14,且具有某种形式的平滑。通常,其超买水平为20,超卖水平为80。

超买水平是一个被认为市场极为看涨的领域,超卖水平是指市场被视为极度看跌并势必反弹的领域。因此,随机震荡指标是一种逆势指标,旨在发出极端运动的信号。当然我们应保持谨慎,不要根据单一指标的信号做出决策。

调整波动率

适当地使用波动率调整是一个很好的工具,它可以通过修改公式以结合最近的波动率来帮助我们解释即将来临的信号或分析。但是什么是波动性?

### 关于联邦学习中的收敛性分析 #### 数学证明基础 联邦学习的收敛性通常依赖于优化算法的选择以及数据分布的情况。在理想情况下,当所有参与者拥有独立同分布(IID)的数据时,标准的随机梯度下降(SGD)及其变体可以保证良好的收敛性能[^3]。 然而,在实际应用场景中,各客户端的数据往往是非独立同分布(non-IID),这给模型训练带来了挑战。针对这一问题的研究表明,为了确保有效的全局更新并最终实现收敛,需要特别设计适合处理non-IID特性的算法机制[^4]。 #### 影响因素探讨 几个重要因素会影响联邦学习系统的收敛速度和质量: - **数据异质程度**:较高的异质性会使得局部模型差异增大,从而阻碍整体收敛过程。 - **通信频率与压缩技术**:减少通讯次数虽然有助于节省带宽成本,但也可能导致参数同步不足而影响收敛效率;采用量化或稀疏化等压缩手段可以在一定程度上缓解此矛盾。 - **本地迭代轮数设置**:适当调整每一轮次内各个节点执行SGD步数的比例关系到能否找到最优解路径上的平衡点。 #### 改进策略概述 一些有效的方法已经被提出用于改善联邦学习环境下的收敛特性: - **引入动量项**:类似于传统深度神经网络训练过程中使用的技巧,可以帮助加速接近极小值区域的速度,并且能够穿越较浅宽度的山谷地带而不易陷入局部最优点附近震荡徘徊的状态。 - **自适应学习率调节方案**:基于历史信息动态调整每次权重更新幅度大小,既可加快前期探索阶段进展又能保障后期精细化微调效果。 - **正则化惩罚措施**:通过对偏离平均状态过远个体施加额外约束力来抑制异常波动现象的发生概率,促进群体一致性形成的同时也间接促进了整个体系趋于稳定收敛的趋势发展。 ```python def fed_avg_with_momentum(models, global_model, momentum=0.9): avg_grads = [] for client_model in models: grads = compute_gradients(client_model, global_model) if not avg_grads: avg_grads = [momentum * g for g in grads] else: avg_grads = [ (1-momentum)*ag + momentum*g for ag,g in zip(avg_grads,grads)] apply_updates(global_model, avg_grads) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值