Perfect trend line Indicator For MT5
Perfect trend line Indicator For MT5 ima veliko različnih imen, saj je bila prva različica tega kazalca razvita za staro platformo MetaTrader 4. Osnovni algoritem tega kazalnika je osredotočen na ključno razliko med najvišjimi in najnižjimi točkami obdobij. Signali tega kazalca so v obliki dinamičnega pasu, ki omejuje gibanje cene navzgor (bikov) in navzdol (medved).
Krvavo rdeča barva deluje z omejevanjem bikov, temno modra linija pa omejuje medvedji padec. Elitni trgovci uporabljajo palice in vzorce za svečnike, da najdejo sladko mesto za trgovanje v takih conah. Ker je odvisnost od svečnikov, morate skrbno izbrati časovni okvir. Izbira spodnjega časovnega okvira vas lahko privede do napačnih signalov za trgovanje. Torej, poskusite zoprne signale. In bodite prepričani, da se zanašate na napredno politiko izpostavljenosti tveganju, da zmanjšate tveganje razstreljevanja trgovalnega računa.
Namestitev Perfect trend line Indicator For MT5
Ko naložite indikator prek zgornjega obrazca, morate odpreti zip datoteko. Nato morate kopirati datoteko PTL.mq5 v mapo MQL5Indicators vaše namestitve MT5 . Po tem znova zaženite MT5 in takrat boste lahko videli indikator na seznamu indikatorjev.
Parametri Perfect trend line Indicator For MT5
Perfect trend line Indicator For MT5 ima za nastavitev parametre 2 .
input int inpFastLength = 3; // Fast length
input int inpSlowLength = 7; // Slow length
Odbojniki Perfect trend line Indicator For MT5
Perfect trend line Indicator For MT5 zagotavlja blažilnike 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);
Glavni deli kodeksa
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);
}