下载MetaTrader 5

请观看如何免费下载自动交易

有趣的脚本?
因此发布一个链接 -
让其他人评价

喜欢这个脚本? 在MetaTrader 5客户端尝试它

2014.01.13 09:21
指标

循环周期 - MetaTrader 5脚本

| Chinese English Русский Español Deutsch 日本語 Português

发布者:
Nikolay Kositsin
显示:
496
等级:
投票: 11

实际作者:

Witold Wozniak

本指标设计用来测量金融资产的价格变化周期。

本指标在缓存区中保存当前市场的循环值,因其并不稳定所以能不能直接观察。创建指标并与振荡器配合,可以令它们适应不断变化的市场周期,以及自身的转变来适应。

本指标的灵感,来自 John Ehlers 的文章 "Using The Fisher Transform - 使用费舍尔变换",文章出版于 2002 年 11 月的 "Technical Analysis Of Stock & Commodities - 股票和期货技术分析" 杂志。  

循环周期

CyclePeriod 指标句柄变量必须在全局级别声明,以便可以在其它指标代码中引用 (例如, 在 RVI 振荡器):

//---- 声明指标句柄的整数变量
int CP_Handle;

因此, 此 CyclePeriod 指标句柄必须在 RVI 指标的初始化模块中收到:

//---- 取得 CyclePeriod 指标句柄
   CP_Handle=iCustom(NULL,0,"CyclePeriod",Alpha);
   if(CP_Handle==INVALID_HANDLE)
     {
      Print(" 获取 CyclePeriod 指标句柄失败");
      return(1);
     }

现在, 我们有新的 Alpha 指标输入参数变量和均线周期率。这个变量必须变换为开发指标的输入变量。

//+----------------------------------------------+
//| 指数输入参数                                   |
//+----------------------------------------------+
input double Alpha=0.07; // 指标平滑率 

之前的 Length 输入变量必须从输入参数列表中移除,将之变换为 OnCalculate() 函数内的局部变量。

用于指标的平滑数组大小固定为 Length 参数值:

//---- 数组变量的内存分布  
   ArrayResize(Count,Length);
   ArrayResize(Value1,Length);
   ArrayResize(Value2,Length);

此参数的值现在已经改变。所以, 最好设置这些数组的尺寸不小于此变量的假设最大值。

当分析指标图表时, 我们可看到这个之不会超过 100。因此, 数组尺寸将会是相同数值:

//---- 数组变量的内存分布  
   ArrayResize(Count,MAXPERIOD);
   ArrayResize(Value1,MAXPERIOD);
   ArrayResize(Value2,MAXPERIOD);

进一步,OnCalculate() 模块中当前柱线的周期值必须从 CyclePeriod 定制指标缓存区获取,以便用它们来替代 Length 输入参数的值。

//---- 主要的指标计算循环
   for(bar=first; bar<rates_total && !IsStopped(); bar++)
     {
      //---- 复制最新出现数据至数组
      if(CopyBuffer(CP_Handle,0,rates_total-1-bar,4,period)<=0) return(RESET);

      Length=int(MathFloor((4.0*period[0]+3.0*period[1]+2.0*period[2]+period[3])/20.0));
      if(bar<Length) Length=bar; // 以实际柱线数量截取平滑长度

在此情况下,从 CyclePeriod 指标缓存区中取最后四个数值,并计算它们的线性加权平滑,之后,得到的数值用作 Length 平滑周期。最后,指标的最后一行代码必须替换为:

      if(bar<rates_total-1) Recount_ArrayZeroPos(Count,MAXPERIOD);

作为结果, 我们得到 自适应 RVI 振荡器:

RVI 和自适应 RVI 指标

本文译自 MetaQuotes Software Corp. 撰写的俄文原文
官方代码: https://www.mql5.com/ru/code/562

StepMA_Line StepMA_Line

StepMA 作为均线执行。

Levels Levels

又一个计算支撑/阻力水平的指标。

日线范围预测 日线范围预测

在日线图表上预测下一根蜡烛条的变化范围

日线范围预测全 日线范围预测全

在当前图表上预测所有柱线的下一日蜡烛条的变化范围