Fehler, Irrtümer, Fragen - Seite 1864

 

Ich kann keine Antwort an die SR senden. Er zögert eine Minute und gibt dann auf

 
fxsaber:

Ich kann keine Antwort an die SR senden. Er zögert eine Minute und gibt dann auf

Dies ist eine neue Art von Verbot)))
 
stringo:

Ja, sortiert nach Zeit. Die Suche nach dem ersten Eintrag erfolgt durch binäre Suche.

Langsame binäre Suche stellt sich heraus
#include <MT4Orders.mqh>

// Metaquotes-Demo, Netting, RTS-6.17, 2017.04.06 - 2017.04.07, на основе реальных тиков, начальный баланс 10000000 RUR
void OnTick()
{  
  static bool Error = false;  
  static int Type = OP_BUY;
  
  if (Error)
    return;
  
  MqlTick Tick;    

  if (OrderSelect(0, SELECT_BY_POS) && (OrderType() <= OP_SELL))
  {
    const datetime PosTime = (datetime)::PositionGetInteger(POSITION_TIME);      
    HistorySelect(PosTime, PosTime);

    OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 0);   
  }
  else if ((OrdersTotal() == 0) && SymbolInfoTick(_Symbol, Tick) && (Tick.bid != 0) && (Tick.ask != 0))
  {
    Error = (OrderSend(_Symbol, Type + OP_BUYLIMIT, 1, (Type == OP_BUY) ? Tick.ask : Tick.bid, 0, 0, 0, "", 0, 0, INT_MAX) == -1);        
    
    if (!Error)
    {
      OrderSend(_Symbol, Type + OP_BUYLIMIT, 1, (Type == OP_BUY) ? Tick.ask : Tick.bid, 0, 0, 0);
      
      Type = OP_SELL - Type;
    }    
  }
}

Ohne rosa Linien funktioniert es schnell. Mit ihnen ist es sehr langsam (um mehrere Größenordnungen). Jedes HistorySelect(PosTime, PosTime) wählt nicht mehr als ein paar Dutzend Datensätze aus der Historie aus. Aber wofür werden dann die ganzen Rechenressourcen verwendet? Ist es wirklich gerecht, diese Dutzende von Datensätzen bei jedem Ticken zu kopieren?

 

Wieder einmal bin ich auf ein Problem gestoßen, bei dem derselbe EA im Tester und in Echtzeit unterschiedlich funktioniert. Zuerst dachte ich, es läge an den komplizierten Indikatoren. Dann habe ich die eingebauten Bands angeschlossen. Ich habe noch nie derartige Probleme gesehen.

Ich habe ein sehr einfaches Arbeitsschema.

OnInit - Ich erhalte Indikator-Handle

OnTick - Analyse (Kopieren in den Puffer) und Handel

OnDeinit - Freigabe des Handles.

Ich habe das Folgende getan, um es zu testen. Ändern Sie den Algorithmus in Echtzeit entsprechend dem Schema:

OnTick - Erhalt des Indikatorhandles, Analyse (Kopieren in den Indikatorpuffer) und Handel, ich gebe das Handle frei.

Und oh mein Gott! Alles fängt an, mit dem Prüfer übereinzustimmen!

Was ist das? Fehler? Oder etwas anderes.....

 
Alexey Kravchenko:

Was ist das? Ist es ein Fehler? Oder ist es etwas anderes.....


Handelt es sich um einen Mehrwährungsindikator?
 
Sergey Dzyublik:

Handelt es sich um einen Mehrwährungsindikator?
Standard-Bandanzeige. EA Multicurrency.
 
Es kann sein, dass eine der verglichenen Optionen die anderen Währungspaare nicht aktualisiert.
Und deshalb werden unterschiedliche Ergebnisse erzielt.
 
Sergey Dzyublik:
Vielleicht aktualisiert eine der Optionen, die wir vergleichen, die Daten für andere Währungspaare nicht.
Dies ist der Grund für die unterschiedlichen Ergebnisse.

Diese Aktualisierung sollte also korrekt vom Terminal selbst durchgeführt werden?

Ich erhalte Handles in OnInit für alle Symbole, mit denen ich arbeite, und synchronisiere alle benötigten Zeitrahmen. Ich bearbeite sie nur, wenn sich ein neuer Balken bildet. Mein Expert Advisor wird mit dem "linken" Symbol gestartet :-)

Darum geht es nicht, sondern darum, dass es in Bezug auf die Auslösung keine Unterschiede zur Echtzeit geben sollte.

Und wenn Sie den Blinker jedes Mal betätigen müssen, damit er richtig funktioniert, ist er nicht mehr in Frage....

 
Alexey Kravchenko:

Diese Aktualisierung muss also vom Terminal selbst korrekt durchgeführt werden?
Und wenn es, damit alles richtig funktioniert, notwendig ist, den Indikator jedes Mal in die Hand zu nehmen, dann kommt das nicht in Frage....


Sehen Sie sich die Antworten in diesem Thread an, insbesondere die der Entwickler, vielleicht sind sie hilfreich:
https://www.mql5.com/ru/forum/190003

 

Meine Herren! Ich entschuldige mich vielmals dafür, dass ich überhaupt schreibe. Aber ich brauche Hilfe, wie man so schön sagt, so schnell wie möglich.

Ich habe einen Terminal-Fehler, es hat aufgehört, benutzerdefinierte Indikatoren und Expert Advisors zu verbinden.

Protokoll wie dieses

2017.04.20 18:18:59.764 Custom Indicator Laden von AD (@Si,H1) fehlgeschlagen

Dies ist der benutzerdefinierte Indikator aus dem Ordner Examples, der nach der Aktualisierung der Erstinstallation erscheint.

Alles andere, was benutzerdefiniert ist, sowie Indikatoren und EAs wurden nicht mehr geladen. Plötzlich! (Es funktionierte und wurde bereits getestet und gehandelt)

Ich bin sicher, dass jemandem schon einmal etwas Ähnliches passiert ist.

Gibt es eine Lösung?

Nun zum Thema:

2017.04.20 18:48:00.931 Experten Laden von ExpertMACD (@Si,H1) fehlgeschlagen

2017.04.20 18:48:42.786 Experten Laden von ChartInChart (@Si,H1) fehlgeschlagen


Es fühlt sich an, als würde es den Weg nicht finden...

Was übersehe ich?

Die Plattform wurde neu positioniert. Löschen Sie den Ordner in AppsData/.../Terminal vor der Neuinstallation. Auf einem anderen Computer auf der gleichen Achse (W2008RC2) funktioniert alles.

Danke, ich habe das Bild überprüft.

Ich freue mich auf Antworten... und Ratschläge. Was ist zu tun?

2017.04.21 10:53:54.329 Terminal MetaTrader 5 x64 build 1583 gestartet (MetaQuotes Software Corp.)

2017.04.21 10:53:54.329 Terminal Windows Server 2008 R2 Enterprise (x64 basierter PC), IE 08.00, UAC, Intel Core i5

2017.04.21 10:53:54.329 Terminal C:\Users\Администратор\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075

2017.04.21 10:55:07.320 Experten Laden von MACD Sample (EURUSD,H1) fehlgeschlagen

2017.04.21 10:55:45.669 Custom Indicator Laden von AMA (EURUSD,H1) fehlgeschlagen