double GetPriceFractal(string symbol, ENUM_TIMEFRAMES timeframe, int mode_fractal, int count_find, int number_fractal, int &bar_fractal, int shift) { int n=0; for(int i=shift; i<count_find; i++) { //double price_fractal=iFractals(symbol,timeframe,mode_fractal,i); double price_fractal=NormalizeDouble(iCustom(symbol,timeframe,"X-bars",InpLeftSide,InpRightSide,mode_fractal,i),Digits); if(price_fractal>0) { n++; if(n==number_fractal) { bar_fractal=i; return(price_fractal); } } } return(EMPTY_VALUE); }
Beachten Sie, dass Sie in mode_fractal die Puffernummer dieses benutzerdefinierten Indikators angeben müssen - für die obere 0, für die untere 1. Andernfalls stimmen in den Standardfraktalen die Bezeichnerwerte für Fraktale nicht mit den Pufferwerten dieses benutzerdefinierten Indikators überein:
Nicht von einem anderen Indikator aus anrufen :)
Oder zeigen Sie, wie Sie es machen.
Ich rufe es von dieser Funktion aus auf
int n=0;
for(int i=shift; i<count_find; i++) {
//double price_fractal=iFractals(symbol,timeframe,mode_fractal,i);
double price_fractal=NormalizeDouble(iCustom(symbol,timeframe,"X-bars",InpLeftSide,InpRightSide,mode_fractal,i),Digits);
if(price_fractal>0) {
n++;
if(n==number_fractal) {
bar_fractal=i;
return(price_fractal);
}
}
}
return(EMPTY_VALUE);
}
Und sie ihrerseits von diesem
if(count_fractals<1) return(false);
double pt=SymbolInfoDouble(symbol,SYMBOL_POINT);
int n=1, dg=(int)SymbolInfoInteger(symbol,SYMBOL_DIGITS);
for(int i=n; i<=count_fractals; i++) {
double price_fractal=GetPriceFractal(symbol,timeframe,mode_fractal,count_find,n,bar_fractal,shift);
double result_compare=fabs(NormalizeDouble(price_fractal-match_price,dg));
if(result_compare<delta_points*pt) {
if(mode_fractal==0) BufferFractalUp[bar_fractal]=price_fractal;
else BufferFractalDn[bar_fractal]=price_fractal;
/// Print("Цена бара с фракталом ",n," совпала с проверяемой ценой, возвращаем true");
return(true);
}
n++;
}
return(false);
}
So sieht es in OnCalculate() aus
Aufrufen aus dieser Funktion
int n=0;
for(int i=shift; i<count_find; i++) {
//double price_fractal=iFractals(symbol,timeframe,mode_fractal,i);
double price_fractal=NormalizeDouble(iCustom(symbol,timeframe,"X-bars",InpLeftSide,InpRightSide,mode_fractal,i),Digits);
if(price_fractal>0) {
n++;
if(n==number_fractal) {
bar_fractal=i;
return(price_fractal);
}
}
}
return(EMPTY_VALUE);
}
Na ja... Sie rufen es nicht richtig auf - es hat nur zwei Parameter in den Einstellungen, und Sie setzen 3 nach dem Namen.
Und warum normalisieren Sie das? Dafür gibt es keinen Grund.
Ich rufe es von dieser Funktion aus auf
int n=0;
for(int i=shift; i<count_find; i++) {
//double price_fractal=iFractals(symbol,timeframe,mode_fractal,i);
double price_fractal=NormalizeDouble(iCustom(symbol,timeframe,"X-bars",InpLeftSide,InpRightSide,mode_fractal,i),Digits);
if(price_fractal>0) {
n++;
if(n==number_fractal) {
bar_fractal=i;
return(price_fractal);
}
}
}
return(EMPTY_VALUE);
}
Beachten Sie, dass Sie in mode_fractal die Puffernummer dieses benutzerdefinierten Indikators angeben müssen - für die obere 0, für die untere 1. Andernfalls stimmen in den Standardfraktalen die Bezeichnerwerte für Fraktale nicht mit den Pufferwerten dieses benutzerdefinierten Indikators überein:
Standard-Fraktale:
Konstante
Wert
Beschreibung
MODE_UPPER
1
Obere Zeile
MODE_LOWER
2
Unterm Strich
Puffer des benutzerdefinierten Indikators:
0 Obere Zeile
1 Unterm Strich
Na ja... Sie rufen es nicht richtig auf - es hat nur zwei Parameter in den Einstellungen und Sie setzen 3 nach dem Namen.
Und warum normalisieren Sie das? Das brauchen Sie hier nicht.
mode_fractal ist ein oberes oder unteres Fraktal, auf das man nicht verzichten kann.
Die Null wird nach dem Punkt geschrieben
mode_fractal ist das obere oder untere Fraktal, wie auch ohne dieses.
die Null wird nach dem Punkt eingeschrieben
Ich habe oben geschrieben, dass die Werte für den Standardindikator und Ihren benutzerdefinierten Indikator nicht übereinstimmen.
Warum gibt es in Meta Trader 4 kein Fibonacci, aber in der Beschreibung?
Was meinen Sie mit "nein"? Es gibt: Menüpunkt "Einfügen" --> "Fibonacci"
MetaTrader4 von PlayMarket