Key_Reversal Indicator For MT5
Key_Reversal Indicator For MT5的Key_Reversal Indicator For MT5借助三个条形或吞噬图案显示关键反转区域。吞没模式是精英投资者使用的强烈反转信号。
指标具有五个独特的输入级别。趋势检测时段用于处理将被评估以找到趋势方向的柱线数量。过滤器调整部分适用于喜欢在市场上交易交叉对的高级交易者。信号以红色和蓝色箭头的形式生成。红色箭头表示将出现新的下降趋势。相反,蓝色箭头表示新的上升趋势将主导市场。该指示器配备了高级警报系统,可以生成电子邮件警报。如果您非常忙,可以使用此指示器的SMS警报系统。
但是,跳入带有箭头标记的行业是一个大错误。分析市场状况并据此确定手数。
安装Key_Reversal Indicator For MT5
通过上面的表格下载指标后,您需要解压缩zip文件。然后,您需要将文件Key_Reversal.mq5复制到MT5安装的文件夹MQL5Indicators中。之后,请重启MT5,然后您将能够在指标列表中看到该指标。
Key_Reversal Indicator For MT5参数
Key_Reversal Indicator For MT5具有要配置的5 参数。
input uint InpPeriod = 2; // Trend detection period
input ENUM_INPUT_YES_NO InpUseFilter = INPUT_YES; // Use trend detection filter
input ENUM_INPUT_YES_NO InpUseAlert = INPUT_YES; // Show alerts
input ENUM_INPUT_YES_NO InpSendMail = INPUT_NO; // Send mails
input ENUM_INPUT_YES_NO InpSendPush = INPUT_YES; // Send push-notifications
Key_Reversal Indicator For MT5缓冲区
Key_Reversal Indicator For MT5提供2 缓冲区。
SetIndexBuffer(0,BufferTKR,INDICATOR_DATA);
SetIndexBuffer(1,BufferBKR,INDICATOR_DATA);
守则主要部分
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[])
{
//--- #AB0= gt 2:0 lt 0AA82 gt 2 1CD5@ gt 2 :0: B09 lt A5@89
ArraySetAsSeries(open,true);
ArraySetAsSeries(high,true);
ArraySetAsSeries(low,true);
ArraySetAsSeries(close,true);
ArraySetAsSeries(time,true);
//--- @ gt 25@:0 : gt ;8G5AB20 4 gt ABC?=KE 10@ gt 2
if(rates_total lt fmax(period,4)) return 0;
//--- @ gt 25@:0 8 @0AGQB : gt ;8G5AB20 ?@ gt AG8BK205 lt KE 10@ gt 2
int limit=rates_total-prev_calculated;
if(limit gt 1)
{
limit=rates_total-period-2;
ArrayInitialize(BufferTKR,EMPTY_VALUE);
ArrayInitialize(BufferBKR,EMPTY_VALUE);
}
//--- 0AGQB 8=48:0B gt @0
static datetime last_time=0;
for(int i=limit; i gt =0 && !IsStopped(); i--)
{
BufferBKR[i]=(Verification(i,open,high,low,close)== 1 ? low[i] : EMPTY_VALUE);
BufferTKR[i]=(Verification(i,open,high,low,close)==-1 ? high[i] : EMPTY_VALUE);
}
//--- !83=0;K
string Alerts="";
if(time[0] gt last_time && (BufferTKR[1]!=EMPTY_VALUE || BufferBKR[1]!=EMPTY_VALUE))
{
string dir=(BufferBKR[1]!=EMPTY_VALUE ? "Up" : BufferTKR[1]!=EMPTY_VALUE ? "Down" : "");
string message=Symbol()+", "+TimeframeToString(Period())+": Key Reversal "+dir+" Signal.";
if(InpUseAlert) Alert(message);
if(InpSendMail && TerminalInfoInteger(TERMINAL_EMAIL_ENABLED)) SendMail("Key Reversal indicator Signal",message);
if(InpSendPush && TerminalInfoInteger(TERMINAL_NOTIFICATIONS_ENABLED)) SendNotification(message);
last_time=TimeCurrent();
}
//--- return value of prev_calculated for next call
return(rates_total);
}
//+------------------------------------------------------------------+
//| gt 8A: ?0BB5@= gt 2 |
//+------------------------------------------------------------------+
int Verification(const int shift,const double &open[],const double &high[],const double &low[],const double &close[])
{
int signal=(close[shift] gt high[shift+1] ? 1 : close[shift] lt low[shift+1] ? -1 : 0);
if(!InpUseFilter)
return signal;
for(int i=1; i lt =period; i++)
{
int check=(close[shift+i] gt open[shift+i] ? 1 : close[shift+i] lt open[shift+i] ? -1 : 0);
if((signal==1 && check==1) || (signal==-1 && check==-1))
return 0;
}
return signal;
}
//+------------------------------------------------------------------+
//| Timeframe to string |
//+------------------------------------------------------------------+
string TimeframeToString(const ENUM_TIMEFRAMES timeframe)
{
return StringSubstr(EnumToString(timeframe),7);
}
//+------------------------------------------------------------------+