Perfect trend line Indicator For MT5
Perfect trend line Indicator For MT5的Perfect trend line Indicator For MT5有许多不同的名称,因为该指标的第一个版本是为旧的MetaTrader 4平台开发的。该指标的基本算法集中于时段最高点和最低点之间的关键差异。该指标的信号采用动态带的形式,该动态带限制了价格的上升(看跌)和下降(看跌)运动。
血红色的颜色段通过限制多头而起作用,深蓝色的线段限制了看跌的跌幅。精英交易者使用条形图和烛台图样在此类区域中找到最佳交易点。由于依赖关系取决于烛台,因此您必须仔细选择时间范围。选择较短的时间范围可能会导致您发出错误的交易信号。因此,请尝试妄想信号。并且确保您依靠高级风险敞口政策来减少炸毁交易账户的风险。
安装Perfect trend line Indicator For MT5
通过上面的表格下载指标后,您需要解压缩zip文件。然后,您需要将文件PTL.mq5复制到MT5安装的文件夹MQL5Indicators中。之后,请重启MT5,然后您将能够在指标列表中看到该指标。
Perfect trend line Indicator For MT5参数
Perfect trend line Indicator For MT5具有要配置的2 参数。
input int inpFastLength = 3; // Fast length
input int inpSlowLength = 7; // Slow length
Perfect trend line Indicator For MT5缓冲区
Perfect trend line Indicator For MT5提供8 缓冲区。
SetIndexBuffer(0,slowlu ,INDICATOR_DATA);
SetIndexBuffer(1,slowld ,INDICATOR_DATA);
SetIndexBuffer(2,fastln ,INDICATOR_DATA);
SetIndexBuffer(3,fastcl ,INDICATOR_COLOR_INDEX);
SetIndexBuffer(4,arrowar,INDICATOR_DATA);
SetIndexBuffer(5,arrowcl,INDICATOR_COLOR_INDEX);
SetIndexBuffer(6,trend ,INDICATOR_CALCULATIONS);
SetIndexBuffer(7,slowln ,INDICATOR_CALCULATIONS);
守则主要部分
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime& time[],
const double& open[],
const double& high[],
const double& low[],
const double& close[],
const long& tick_volume[],
const long& volume[],
const int& spread[])
{
int i= prev_calculated-1; if (i lt 0) i=0; for (; i lt rates_total && !_StopFlag; i++)
{
int _startf = i-inpFastLength+1; if (_startf lt 0) _startf = 0;
int _starts = i-inpSlowLength+1; if (_starts lt 0) _starts = 0;
double thighs = high[ArrayMaximum(high,_starts,inpSlowLength)];
double tlows = low [ArrayMinimum(low ,_starts,inpSlowLength)];
double thighf = high[ArrayMaximum(high,_startf,inpFastLength)];
double tlowf = low [ArrayMinimum(low ,_startf,inpFastLength)];
if (i gt 0)
{
slowln[i] = (close[i] gt slowln[i-1]) ? tlows : thighs;
fastln[i] = (close[i] gt fastln[i-1]) ? tlowf : thighf;
trend[i] = trend[i-1];
if (close[i] lt slowln[i] && close[i] lt fastln[i]) trend[i] = 1;
if (close[i] gt slowln[i] && close[i] gt fastln[i]) trend[i] = 0;
arrowar[i] = (trend[i]!=trend[i-1]) ? slowln[i] : EMPTY_VALUE;
slowlu[i] = (trend[i]==0) ? slowln[i] : EMPTY_VALUE;
slowld[i] = (trend[i]==1) ? slowln[i] : EMPTY_VALUE;
}
else { arrowar[i] = slowlu[i] = slowld[i] = EMPTY_VALUE; trend[i] = fastcl[i] = arrowcl[i] = 0; fastln[i] = slowln[i] = close[i]; }
fastcl[i] = arrowcl[i] = trend[i];
}
return(rates_total);
}