- 显示:
- 4379
- 等级:
- 已发布:
- 2013.10.01 12:59
- 已更新:
- 2016.11.22 07:33
-
需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务
MovingAverages库是 MetaTrader 5客户端标准包的一部分。
该库包含了计算不同类型的 移动平均线的函数。总共有8个函数。它们可划分为相同类型的2个组,每组含4个。
第一组函数接收到一个数组,但仅返回移动平均线在指定位置的某个数值:
- SimpleMA() - 计算简单移动平均线的某个数值;
- ExponentialMA() - 计算 指数平均线的某个数值;
- SmoothedMA() - 计算 平滑平均线的某个数值;
- LinearWeightedMA() - 计算 线性加权平均线的某个数值。
这些函数本意只为获取一次一个数组的均值,没有针对多次调用进行优化。如果你需要循环使用这一组的任一个函数(计算多个平均值,然后将每个计算值写入一个数组),你就必须组织一个优化算法。
第二组函数本意是为了将基于含初始值的数组的均线值填充到被接收的数组中:
- SimpleMAOnBuffer() - 将price[]数组的简单均线值填充到输出数组buffer[];
- ExponentialMAOnBuffer() - 将price[]数组的指数均线值填充到输出数组buffer[];
- SmoothedMAOnBuffer() - 将price[]数组的平滑均线值填充到输出数组buffer[];
- LinearWeightedMAOnBuffer() - 将price[]数组的线性加权均线值填充到输出数组buffer[];。
函数:
//+------------------------------------------------------------------+ //| MovingAverages.mqh | //| Copyright 2009, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "2009, MetaQuotes Software Corp." #property link "https://www.mql5.com" //+------------------------------------------------------------------+ //| 简单移动平均线 | //+------------------------------------------------------------------+ double SimpleMA(const int position,const int period,const double &price[]) //+------------------------------------------------------------------+ //| 指数移动平均线 | //+------------------------------------------------------------------+ double ExponentialMA(const int position,const int period,const double prev_value,const double &price[]) //+------------------------------------------------------------------+ //| 平滑移动平均线 | //+------------------------------------------------------------------+ double SmoothedMA(const int position,const int period,const double prev_value,const double &price[]) //+------------------------------------------------------------------+ //| 线性加权移动平均线 | //+------------------------------------------------------------------+ double LinearWeightedMA(const int position,const int period,const double &price[]) //+------------------------------------------------------------------+ //| 价格数组的简单移动平均 | //+------------------------------------------------------------------+ int SimpleMAOnBuffer(const int rates_total,const int prev_calculated,const int begin, //+------------------------------------------------------------------+ //| 价格数组的指数移动平均 | //+------------------------------------------------------------------+ int ExponentialMAOnBuffer(const int rates_total,const int prev_calculated,const int begin, const int period,const double& price[],double& buffer[]) //+------------------------------------------------------------------+ //| 价格数组的平滑移动平均 | //+------------------------------------------------------------------+ int SmoothedMAOnBuffer(const int rates_total,const int prev_calculated,const int begin, const int period,const double& price[],double& buffer[]) //+------------------------------------------------------------------+ //| 价格数组的线性加权移动平均 | //+------------------------------------------------------------------+ int LinearWeightedMAOnBuffer(const int rates_total,const int prev_calculated,const int begin, const int period,const double& price[],double& buffer[])
例子:
实际用例请参加文章 "MQL5: 创建你自己的指标"
由MetaQuotes Ltd译自俄语
原代码: https://www.mql5.com/ru/code/77

它是关于超买超卖市场条件的振荡器指标。它也可以被用作动力指标。三重平滑用于除去价格运动周期小于TRIX周期的环状组件.

该振荡器测量一段时间内正增量的和以及负增量的和的比率。

该库包含一些函数,它们返回运行错误代码及交易服务器返回代码的描述。

这是一个演示如何使用WININET.DLL库从互联网上下载页面(文件)的简单实例。