Perfect trend line Indicator For MT5
Perfect trend line Indicator For MT5 ma wiele różnych nazw, ponieważ pierwsza wersja tego wskaźnika została opracowana dla starej platformy MetaTrader 4. Podstawowy algorytm tego wskaźnika koncentruje się na kluczowej różnicy między najwyższym i najniższym punktem okresów. Sygnały tego wskaźnika mają postać dynamicznego pasma, który ogranicza wzrost (uparty) i spadkowy (niedźwiedzi) ceny.
Krwawo-czerwony segment koloru działa poprzez ograniczenie byków, a ciemnoniebieskie segmenty linii ograniczają niedźwiedzi spadek. Elitarni handlowcy używają pasków i wzorów świeczników, aby znaleźć słodkie miejsce handlowe w takich strefach. Ponieważ zależność leży od świeczników, musisz starannie wybrać ramy czasowe. Wybór niższego przedziału czasowego może prowadzić do wadliwych sygnałów transakcyjnych. Więc spróbuj złudnych sygnałów. I upewnij się, że korzystasz z zaawansowanych zasad ekspozycji na ryzyko, aby zmniejszyć ryzyko wysadzenia rachunku handlowego.
Instalowanie Perfect trend line Indicator For MT5
Po pobraniu wskaźnika za pomocą powyższego formularza musisz rozpakować plik zip. Następnie musisz skopiować plik PTL.mq5 do folderu MQL5Indicators instalacji MT5 . Następnie uruchom ponownie MT5, a wtedy będziesz mógł zobaczyć wskaźnik na liście wskaźników.
Parametry Perfect trend line Indicator For MT5
Perfect trend line Indicator For MT5 2 Perfect trend line Indicator For MT5 ma parametry 2 do skonfigurowania.
input int inpFastLength = 3; // Fast length
input int inpSlowLength = 7; // Slow length
Bufory słowa Perfect trend line Indicator For MT5
Perfect trend line Indicator For MT5 zapewnia bufory 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);
Główne części Kodeksu
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);
}