Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 2

 
Artyom Trishkin:

Nicht von einem anderen Indikator aus anrufen :)

Oder zeigen Sie, wie Sie es machen.

Ich rufe es von dieser Funktion aus auf


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);
}

Und sie ihrerseits von diesem

bool CheckOnePrices(string symbol, ENUM_TIMEFRAMES timeframe, int mode_fractal, int count_find, int count_fractals, int bar_fractal, double match_price, int delta_points, int shift) {
   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

if(CheckOnePrices(Symbol(),PERIOD_CURRENT,0,rates_total,numFractals,bar,low[i],delta,i+1)) { BufferPointDn[i]=low[i]-distanc*Point;}
 
mila.com:

Aufrufen aus dieser Funktion


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);
}

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.

 
mila.com:

Ich rufe es von dieser Funktion aus auf


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:

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

 
Artyom Trishkin:

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

 
mila.com:

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.
 
Artyom Trishkin:
Ich habe oben geschrieben, dass die Werte für den Standardindikator und Ihren benutzerdefinierten Indikator nicht übereinstimmen.
Falsch - das tun sie. Sie müssen tiefer blicken...
 
Warum gibt es in Meta Trader 4 kein Fibonacci, aber in der Beschreibung?
 
SLANDOV:
Warum gibt es in Meta Trader 4 kein Fibonacci, aber in der Beschreibung?
Wie kommt es, dass sie nicht vorhanden ist? Es gibt: Menüpunkt Einfügen --> Fibonacci
 
Artyom Trishkin:
Was meinen Sie mit "nein"? Es gibt: Menüpunkt "Einfügen" --> "Fibonacci"
MetaTrader4 von PlayMarket
 
SLANDOV:
MetaTrader4 von PlayMarket
Leider kann ich MT4 im Moment weder auf meinem Android- noch auf meinem iOS-Gerät sehen...
Grund der Beschwerde: