Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 2
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
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