Key_Reversal Indicator For MT5
Key_Reversal Indicator For MT5 zobrazuje zónu obrácení klíče pomocí tří pruhů nebo pohlcujících vzorů. Enulfing pattern je silný reverzní signál, který používají elitní investoři.
Indikátory mají pět jedinečných vstupních úrovní. Období detekce trendu se používá k řešení počtu pruhů, které budou vyhodnoceny pro nalezení směru trendu. Segment úprav filtru je určen pro pokročilé obchodníky, kteří rádi obchodují s křížovými páry na trhu. Signály jsou generovány ve formě červené a modré šipky. Červené šipky indikují nový trend dolů. Modrá šipka naopak naznačuje, že na trhu bude dominovat nový trend vzestupu. Tento indikátor je vybaven pokročilým výstražným systémem, který může generovat e-mailová upozornění. Pokud jste velmi zaneprázdněni, můžete použít SMS výstražný systém tohoto indikátoru.
Skok do obchodů se šipkou je však velká chyba. Analyzujte stav trhu a podle toho určete velikost šarže.
Instalace Key_Reversal Indicator For MT5
Po stažení indikátoru pomocí výše uvedeného formuláře je třeba rozbalit zip soubor. Pak musíte zkopírovat soubor Key_Reversal.mq5 do složky MQL5Indicators vaší instalace MT5 . Poté prosím restartujte MT5 a poté uvidíte indikátor v seznamu indikátorů.
Parametry Key_Reversal Indicator For MT5
Key_Reversal Indicator For MT5 obsahuje parametry 5 lze nakonfigurovat.
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
Vyrovnávací Key_Reversal Indicator For MT5
Key_Reversal Indicator For MT5 2 Key_Reversal Indicator For MT5 poskytuje vyrovnávací paměti 2 .
SetIndexBuffer(0,BufferTKR,INDICATOR_DATA);
SetIndexBuffer(1,BufferBKR,INDICATOR_DATA);
Hlavní části Kodexu
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);
}
//+------------------------------------------------------------------+