[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 498

 
rigc:
(es ist überhaupt keine Zeichnung)))


Ich weiß es nicht - es ist so. Der Indikator ist denkbar einfach:

int start()
  {
   
//----
  double F1=0, F3=0, F13;    // номера фракталов
  int    B1, B3, SR=3;               // номера баров
  
  while(F3==0)                       //поиск фракталов
  {
    F13=iFractals(NULL,0,MODE_UPPER,SR);
    if (F13!=0) 
    {
      if      (F1==0){B1=SR; F1=F13;}
      else if (F3==0){B3=SR; F3=F13;}
    }
    SR++; 
  }
    ObjectSet("Rezist", OBJPROP_TIME1 ,iTime(NULL,0,B3));
    ObjectSet("Rezist", OBJPROP_TIME2 ,iTime(NULL,0,B1));
    ObjectSet("Rezist", OBJPROP_PRICE1,iHigh(NULL,0,B3));
    ObjectSet("Rezist", OBJPROP_PRICE2,iHigh(NULL,0,B1));
    ObjectSet("Rezist", OBJPROP_RAY   , True);

  
//----
   return(0);
  }

SR=3, das habe ich korrigiert. Es war die SR=2-Bar-Nummer, von der aus man nach einem Fraktal suchen konnte

 
Figar0:


Ich weiß es nicht, ich habe es versucht. Der Indikator ist denkbar einfach:

SR=3, das habe ich korrigiert. Es war die SR=2-Bar-Nummer, von der aus man nach einem Fraktal suchen konnte

Ja, ich hab's)))

Danke

Ich schulde dir was.

 
sss2019:
Können Sie mir sagen, wie man eine Bedingung ausführt? Wir haben eine Bedingung, um einen Kaufauftrag zum aktuellen Preis zu eröffnen, sobald der Preis 1,2550 erreicht. Wenn also der Preis höher oder gleich 1,2550 ist, wird die Order eröffnet, und wenn die Order eröffnet ist, blockiert die statische Variable die Eröffnung neuer Orders, bis die Order 0 erreicht. Sobald die Order geschlossen ist und es keine weiteren Orders mit dieser Magie gibt, wird das Eröffnungsverbot aufgehoben und eine neue Order eröffnet, aber der Preis hat sich bereits von diesem Niveau entfernt. Wir brauchen den EA, um Marktaufträge zu öffnen, wenn der Preis dieses Niveau erreicht, aber nicht die schwebenden Aufträge.
Sie haben einen Scheck für mehr oder gleich 1,2550. Mit anderen Worten, wenn der Preis höher ist(er ist schon lange weg), ist das Kriterium ausnahmslos erfüllt, und deshalb werden die Positionen eröffnet.
Sie sollten die Bedingung berücksichtigen, dass der Preis die 1,2550-Marke überschritten hat.
 
artmedia70:
Sie haben eine Prüfung auf größer oder gleich 1,2550. D.h. wenn sie höher ist(der Kurs hat sie längst verlassen), ist das Kriterium noch erfüllt, und deshalb werden Positionen eröffnet.
Sie sollten die Bedingung berücksichtigen, dass der Preis die 1,2550-Marke überschritten hat.


Danke, ich denke, das kann man mit Zeitberechnung machen. Wenn zum Beispiel die Einzahlung auf meinem Konto in Euro oder in Rubel erfolgt, kann mein Expert Advisor dann Fehler machen?

 

Können Sie mir sagen, wie der EA kann die Größe des RAM, Null es gelegentlich oder etwas zu reduzieren, weil ein Terminal frisst bis zu 100 MB und wie ich bemerkt, es frisst, bis es 100% erreicht. Ich habe 25 Terminals irgendwo auf einem Computer installiert.

Ich möchte Sie daran erinnern, dass ich nur ein Diagramm im Einsatz habe, das nicht angezeigt wird. Allerdings werden die Daten von Dutzenden von Währungspaaren verwendet.

Kann die Größe der historischen Datendateien die Speicherbelastung beeinflussen? Wird es schneller gehen, wenn wir nur tägliche Daten hinterlassen?

 
sss2019:


Danke, ich denke, das kann man mit dem Timing machen. Wenn die Einzahlung zum Beispiel in EUR oder RUB erfolgt, kann mein Expert Advisor dann Fehler machen?

Warum sollten Sie das tun? Sie könnten z.B. einen MA mit einer Periode von 0 verwenden und den ersten und zweiten Balken auf einen Schnittpunkt mit dem Level überprüfen. Bei dem aktuellen öffnen Sie.

Die Fehler können im Kopf des Programmierers liegen, nicht in der Kontoeinlage :)

 

Hallo zusammen!

Liebe Fachleute - bitte lösen Sie meine Frage: https://www.mql5.com/ru/forum/116542

 

Können Sie mir sagen, warum dieser Zyklus nicht richtig funktioniert, er sucht nicht nach dem höchsten Maximum, ich kann den Fehler nicht finden. Es überspringt den höchsten Maximalwert und nimmt als Ergebnis den Maximalwert der vorherigen Kerze.

Alle Werte des buystoploss-Arrays sind standardmäßig 0.

Auf dem Bild sieht es so aus, als hätte die Schleife das Maximum der 13. Kerze gefunden und höhere Maxima übersprungen

  i2=0;
  for(i=0;i<7;i++)
    {
    while(i2 <= 19)
      {
      if(High[i2]>buystoploss[i])
        {
        buystoploss[i]=High[i2];
        }
      i2++;
      }
    }
    Alert(" ",buystoploss[4]);
 
sss2019:

Können Sie mir sagen, warum dieser Zyklus nicht richtig funktioniert, er sucht nicht nach dem höchsten Maximum, ich kann den Fehler nicht finden. Er überspringt den höchsten Maximalwert und nimmt als Ergebnis den Maximalwert der vorherigen Kerze.

Alle Werte im buystoploss-Array sind standardmäßig 0.


Das ist ein echter Witz:

Alert(" ",buystoploss[4]);

?

 
sss2019:

Können Sie mir sagen, warum dieser Zyklus nicht richtig funktioniert, er sucht nicht nach dem höchsten Maximum, ich kann den Fehler nicht finden. Es überspringt den höchsten Maximalwert und nimmt als Ergebnis den Maximalwert der vorherigen Kerze.

Alle Werte im buystoploss-Array sind standardmäßig 0.

Nun, zunächst einmal wird i2 nur einmal auf Null gesetzt...

Grund der Beschwerde: