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

 
Valeriy Yastremskiy #:
Neuer Balken erscheint, wenn iTime != OldTime dann Alert und OldTime =iTime bei Nullverschiebung/Balken.

Welcher Wert soll in OldTime geschrieben werden? O_o

Der Pfeil selbst wird in dem Moment gezeichnet, in dem sich der Null-Balken öffnet.

Ich habe diese Bedingung gestellt.

 if(iTime(NULL,0,0)!=iTime(NULL,0,1))
      {
      Alert("ДИВЕРГЕНЦИЯ НА "+Symbol());
      }

Es funktioniert nicht richtig - selbst im Testprogramm gibt es eine Menge Warnmeldungen im Protokoll.

if(iTime(NULL,0,1)!=iTime(NULL,0,0))
      {
      Alert("ДИВЕРГЕНЦИЯ НА "+Symbol());
      }

ich erhalte auch eine Reihe von Warnmeldungen - ich weiß nicht, wie ich das schreiben soll(((

 
DanilaMactep #:

Welcher Wert soll in OldTime geschrieben werden? O_o

Der Pfeil selbst wird in dem Moment gezeichnet, in dem sich der Null-Balken öffnet.

Ich habe diese Bedingung gestellt.

Es funktioniert nicht richtig - selbst im Testprogramm gibt es eine Menge Warnmeldungen im Protokoll.

Ich erhalte auch eine Reihe von Warnmeldungen - ich verstehe nicht, wie man das schreibt(((

 
static datetime OldTime=0;
if(iTime(NULL,0,0)!=OldTime)
      {
      Alert("ДИВЕРГЕНЦИЯ НА "+Symbol()); OldTime=iTime(NULL,0,0);
      }

Wenn Sie also hochfahren, erhalten Sie auch eine Benachrichtigung. Wenn ein neuer Balken erscheint, wirdiTime(NULL,0,0) geändert, und es gibt einmal keine Gleichheit, dann gibt es Gleichheit und das if ist falsch.

Sie können es auch so machen.

static bool FlagNewBar=false;
   if(BarTime!=Time[0])
     {
      BarTime=Time[0];
      FlagNewBar=true;
     }

Oder wir könnten einen neuen Balken in einem beliebigen Zeitrahmen erhalten.

bool FlagNewBarF(int prd, datetime &ArgBarTime,bool &FlagNbar)
  {
   FlagNbar=false;
   if(ArgBarTime!=iTime(NULL,prd,0))
     {
      ArgBarTime=iTime(NULL,prd,0);
      FlagNbar=true;
     }

   return(FlagNbar);
  }

Der Aufruf würde folgendermaßen aussehen

 if(FlagNewBarF(1, BarTime1,FlagNewBar1))
     {
      Alert("FlagNbar1 ",FlagNewBar1,"BarTime1 ",TimeToStr(BarTime1,TIME_DATE|TIME_SECONDS));
      
     }

   if(FlagNewBarF(5, BarTime5,FlagNewBar5))
     {
      Alert("FlagNbar5 ",FlagNewBar5,"BarTime5 ",TimeToStr(BarTime5,TIME_DATE|TIME_SECONDS));
     
     }
 
Valeriy Yastremskiy #:

Auf diese Weise wird auch beim Laden eine Warnung ausgegeben. Wenn ein neuer Balken erscheint, wirdiTime(NULL,0,0) geändert, und es gibt einmal keine Gleichheit, dann gibt es Gleichheit und das if ist falsch.

Vielen Dank für die Hilfe - ich habe es angeschraubt - es gab 1 Meldung beim Kompilieren - mal sehen, was als nächstes passiert:-)
 

"Neuer Balken" ist böse, bei diesem Ereignis können Sie Daten vom Indikator "letzter Balken", d.h. newbar-1, erhalten.

Wenn Sie 3 Terminals auf einem Server betreiben und je nach Handelshäufigkeit das Signal in einigen Terminals überspringt, d.h. vor dem Senden des Ordersatzes druckt (z.B. Kaufsignal), und der Indikatordruckwert zeigt den Wert des vorherigen Balkens.

Natürlich können Sie einige Kontrollen durchführen...

 
Valeriy Yastremskiy #:
Der allgemeine Metaquotes-Ordner ist der Terminal-Ordner, er enthält die allgemeinen Terminal-Ordner, die Terminal-Protokolle, Daten und den Tester-Ordner, der seine eigenen Protokolle und Dateiordner hat. Der Ordner mcl enthält Protokolle von EAs, Skripten, Indikatoren, Fenstern und Unterfenstern.
alles. Spc. Gestern habe ich sie gereinigt. Ich werde es heute noch einmal überprüfen. 30 GB bereinigt. Von etwa 10 Terminals und Geschichte meist auf Werkzeuge und Protokolle...
 
Artyom Trishkin:

In diesem Thread möchte ich damit beginnen, denjenigen zu helfen, die wirklich das Programmieren in der neuen MQL4 verstehen und lernen wollen und einfach zu MQL5 wechseln wollen - die Sprachen sind sehr ähnlich.

Dieser Blog ist ein guter Ort, um Probleme, Algorithmen zu ihrer Lösung und alle anderen Fragen zur MT-Programmierung zu diskutieren.

Ich hoffe, dass sich andere erfahrene Mitglieder unseres Forums an der Diskussion beteiligen werden und dass die Branche für alle interessant sein wird.

Hallo, niemand kann mir mit der Funktion Auftragsabschluss helfen, ich versuche folgendes,

for (int i=1; i<=OrdersTotal(); i++)

{

if(OrderSelect(i-1,SELECT_BY_POS)==true)

{

if( Ask<= OrderOpenPrice())CloseBay();

}

}

Wenn Ask über der Orderbucht liegt, ist alles in Ordnung, sobald Bid über der Orderbucht liegt, wird die Order entfernt, und sollte entfernt werden, wenn Ask unter dem Eröffnungskurs liegt. Bitte helfen Sie mir, dies zu verstehen, ich wäre Ihnen sehr dankbar. Mit freundlichen Grüßen Alexander.

 
Alexandr Spravchikov #:

Hallo, niemand kann mir mit der Funktion Auftragsabschluss helfen, ich versuche es so,

Haben Sie das schon ausprobiert?

void CloseBuy()
{
   for(int i= OrdersTotal()-1; i>=0; i--)
   {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      {
         if((OrderSymbol()==_Symbol) && (OrderMagicNumber()==Magic) && (OrderType()==OP_BUY))
         {
            if( Ask<= OrderOpenPrice())
            if(!OrderClose(OrderTicket(),OrderLots(),Bid,Slip,Green))
            {
               Print("Error closing a buy order!"+  IntegerToString(_Period,0) +" Error code = " + IntegerToString(GetLastError(),0));
            }
         }
      }
   }
   return;
}
 

Grüße. Können Sie mir bitte sagen, wie man eine Handels-Api-Abfrage für "BTCUSDT" macht, um die Anzahl der Lose nicht in BTC, sondern in USDT anzugeben?

 

Hallo zusammen! Ein Ratschlag, bitte.


Die Idee ist einfach. Einen EA zu schreiben, der eine Position eröffnet und die gegenüberliegende schließt, wenn eine der globalen Kanalgrenzen durchbrochen wird. Der Kanal wird durch den Indikator aufgezeichnet.

Ich habe eine Variante mit Hilfe von Internet-Leitfäden erstellt. Dieser Bot öffnet/schließt Positionen im Strategietester, aber wenn man sich den Chart ansieht, erfüllt er meine Bedingungen überhaupt nicht. Ich habe alle Variablen im Puffer geprüft und auf Fehler untersucht. Ich habe keine Ergebnisse erhalten.


Wenn jemand kann, bitte beraten Sie mich, was falsch ist, welche Richtung zu graben. :3


Ich habe eine Datei mit Variablen aus dem Puffer, eine Demonstration des Indikators, seine Anfangsvariablen und meine Variante des Expert Advisors beigefügt.

Dateien:
9.png  14 kb
f2.png  26 kb
second.mq4  15 kb
 
E1Macho1 #:

Hallo zusammen! Können Sie mir bitte einen Tipp geben?

Welchen Weg soll ich gehen? :3

In die Richtung der Verwendung des Debuggers gehen

Grund der Beschwerde: