量化交易软件:赫兹量化中简单均值回归交易策略

本文介绍了均值回归交易策略,利用移动平均线来判断价格的偏离,当价格远离平均值时预测其回归。策略通过计算标准化指数和移动平均线的关系,生成买入和卖出信号。作者还提到策略的调整,如考虑最高价和最低价,以减少频繁交易。
摘要由CSDN通过智能技术生成

概述
均值回归是一种逆势交易,交易者预估价格将返回到某种形式的均衡点位,通常依据均值或其它向心趋势统计值来衡量。 本文讨论一个非常简单的均值回归交易策略。

均值回归快速介绍
行情通常以无规律的周期波动。 这意味着,当我们查看图表时,我们往往会看到上升、下降和相对平坦的阶段。 交易和投资的关键是能够判定这些阶段的变化,这些阶段也称为行情制度。

均值回归可以采用移动平均线的形式,如果行情离它太远,它可能会回退到其区域附近。

什么是均值回归?
均值回归是一个金融术语,即假设资产价格随时间推移,趋向聚拢到平均价格。

使用均值回归作为时机策略涉及辨别证券的交易范围,以及利用量化方法计算平均价格。 均值回归是一种现象,在大量的金融时序数据中均有所表现,来自价格数据、收益数据、和账面数值。

当现行价格低于过去的平均价格时,可认为该证对买方具有吸引力,并预估价格会上涨。 当现行价格高于过去的平均价格时,则预估行情价格会下跌。 换言之,预计自平均价格的偏差将退回至平均值。 这些知识可当作多交易策略的基石。

股票报告服务通常提供周期为 50 天和 100 天的移动平均线。 虽然报告服务提供了平均值,但仍然需要辨别所研究期间的最高价和最低价。

与图表相比,均值回归似乎是一种更科学地选择股票买卖点的方法,因为精确的数值衍生自历史数据,可识别买入/卖出价位,而非试图使用图表(图表,也称为技术分析)来解释价格走势,尽管新兴的尝试是利用 RSI 指标和平均真实范围(ATR)来捕捉这种系统形态。

许多资产类型,甚至汇率,都观测到均值回归;不过,这个过程也许会持续数年,因此对短线投资者并无价值。

均值回归应当展现出一种对称形式,因为一只股票高于或低于其历史平均水平的频率大致相仿。

历史均值回归模型不会收容证券价格的全部实际行为。 例如,也许会出现新信息,永久性影响标的股票的长期估值。 在破产的情况下,它也许会完全停止交易,永远无法恢复到曾经的历史平均水平。

在金融领域中,“均值回归”一词与统计学中的“回归或回归均值”的含义略有不同。杰里米·西格尔(Jeremy Siegel)使用“均值回报率”一词来描述一般原则,即一个金融时序,其中“在短期内回报可能非常不稳定,但从长期来看非常稳定”。按量化来讲,平均年回报率的标准差下降速度快于持有期的倒数,这意味着该过程不是随机游走,而是在低回报率区间之后迎来高回报的补偿期,例如季节性商业。

设计策略
现在,我们取行情与其 200-周期移动平均线的间距,据其得到一个 50-周期的常规化均值,我们准备遵照以下交易信号编码:

每当常规化指数自等于 100 后回落,而当前收盘价低于 5-周期前的收盘价,且低于 200-周期移动平均线时,就会生成做多(买入)信号。
每当常规化指数自等于 100 后回落,而当前收盘价高于 5-周期前的收盘价,且高于 200-周期移动平均线时,就会生成做空(卖出)信号。
如此,在给定条件下,或许这并非最简单的策略,但尽管如此,它还是非常直观和直接的。 信号功能如下:

自上一章节,我们已有明确的目标来开始设计策略:

每当行情远低于其移动平均线时,就会生成做多(买入)信号,寄希望于它回退到较高的均值。
每当行情远高于其移动平均线时,就会生成做空(卖出)信号,寄希望于它回退到较低的均值。
我将对策略进行一些修改,尝试在策略作用不佳时(当净值走低)获得更好的结果。 我将修改这个策略:

- 取代查看最后的收盘价,我会查看最高价和最低价的走高,以便尝试筛选更好的开单。

开单不会太频繁。

修改后的代码如下:

if(previousValue==100)
        {
         if(Normalizado<100 && array_ma[0]>tick.bid  && rates[5].high < rates[1].low )
           {
            Print("Open Order Buy");
            Alert(" Buying");
            Orden="Buy";
            sl=NormalizeDouble(tick.ask - ptsl*_Point,_Digits);
            tp=NormalizeDouble(tick.bid + pttp*_Point,_Digits);
            //trade.Buy(get_lot(tick.bid),_Symbol,tick.bid,sl,tp);
            trade.PositionOpen(_Symbol,ORDER_TYPE_BUY,get_lot(tick.bid),tick.bid,sl,tp,"Buy");
           }
         if(Normalizado<100 && array_ma[0]<tick.ask  && rates[5].low > rates[1].high )
           {
            Print("Open Order Sell");
            Alert(" Selling");
            Orden="Sell";
            sl=NormalizeDouble(tick.bid + ptsl*_Point,_Digits);
            tp=NormalizeDouble(tick.ask - pttp*_Point,_Digits);
            //trade.Sell(get_lot_s(tick.ask),_Symbol,tick.ask,sl,tp);
            trade.PositionOpen(_Symbol,ORDER_TYPE_SELL,get_lot(tick.ask),tick.ask,sl,tp,"Sell");

           }
        }

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值