Fehler, Irrtümer, Fragen - Seite 2138

 

Ich glaube, es gibt ein Problem mit dem Hochladen der Geschichte.

Gestern habe ich etwa 30 Minuten gewartet, dann habe ich mein Konto geändert, und heute habe ich beschlossen, es noch einmal zu überprüfen:


  1. Ich eröffne ein Rubel-Konto RUR
  2. Im Testprogramm führe ich einen Test mit EURUSD durch.
  3. Das Terminal versucht, EURRUR-Kurse zu laden
  4. Keine Zitate, der Tester ist eingefroren



Ich kämpfte irgendwie, dann beschlossen, die Geschichte, die nicht vorhanden ist herunterladen

2018.02.21 15:58:48.244 Tester  EURRUR: history data begins from 2018.02.21 00:00
2018.02.21 15:58:48.344 Tester  USDRUR: preliminary downloading of M1 history started
2018.02.21 15:58:49.244 Tester  USDRUR: 20% history downloaded
2018.02.21 15:58:49.544 Tester  USDRUR: 30% history downloaded
2018.02.21 15:58:49.844 Tester  USDRUR: 40% history downloaded
2018.02.21 15:58:50.144 Tester  USDRUR: 51% history downloaded
2018.02.21 15:58:50.444 Tester  USDRUR: 61% history downloaded
2018.02.21 15:58:50.657 Tester  USDRUR: 71% history downloaded
2018.02.21 15:58:51.057 Tester  USDRUR: 81% history downloaded
2018.02.21 15:58:51.357 Tester  USDRUR: 91% history downloaded
2018.02.21 15:58:51.657 Tester  USDRUR: preliminary downloading of M1 history completed in 0:03.417
2018.02.21 15:58:51.657 Tester  USDRUR: history data begins from 2016.12.26 00:00
2018.02.21 15:58:51.661 Core 1  agent process started
2018.02.21 15:58:52.095 Core 1  connecting to 127.0.0.1:3000
2018.02.21 15:58:52.095 Core 1  connected
2018.02.21 15:58:52.103 Core 1  authorized (agent build 1755)
2018.02.21 15:58:52.105 Tester  EURUSD,H1 (Alpari-MT5-Demo): testing of Experts\Exp - TickSniper PRO FULL v36 20180220.ex5 from 2018.01.01 00:00 to 2018.02.10 00:00
2018.02.21 15:58:52.891 Core 1  common synchronization completed
2018.02.21 15:58:53.064 Tester  quality of analyzed history is 100%
2018.02.21 15:58:54.393 Core 1  EURRUR: history synchronization started



Es ist OK auf USDJPY

 

Es ist eine dumme Situation mit benutzerdefinierten Zeichenleisten. Ich kann in die Historie (CustomRatesReplace) so viele Takte schreiben, wie ich will, aber ich kann sie hier nicht lesen (CopyRates) (TERMINAL_MAXBARS).

Wir müssen diese falsche Situation irgendwie lösen. Perfekt sehen den Beginn der lokalen Geschichte durch

SeriesInfoInteger(_Symbol, PERIOD_M1, SERIES_SERVER_FIRSTDATE);

Aber um es vorwegzunehmen.

Vielleicht um eine Möglichkeit zu geben, TERMINAL_MAXBARS über MQL zu ändern? Oder CopyRates ohne MaxBars-Grenze überladen lassen?

 

Habe dieses Verhalten von MT5 schon lange bemerkt, aber jetzt beschlossen zu schreiben.

Ich arbeite mit ME und MT5+Tester. Manchmal kann ich keine Verbindung zum Agenten herstellen und muss das Terminal neu starten. Ich habe mich an diesen Fehler gewöhnt, also geht es nicht darum.

Ich schließe also Terminal und drücke F4 in ME, um Terminal zu öffnen. Und hier beginnt der Unsinn.

ME geht mehrmals in den Zustand "Nicht ansprechbar" über. Das Terminal lässt sich nicht starten. Nach ein paar Sekunden drücke ich erneut F4 - die Reaktion ist dieselbe wie zuvor.

Das Ergebnis ist, dass Terminal in 20 Sekunden (Minimum) auf einem nicht schwachen Rechner (viel Speicher, SSD, 95% CPU frei) gestartet wird.

Wenn Sie es mit MT4 vergleichen - es ist der Himmel und die Erde. MT4 wird fast sofort durch F4 von ME aus gestartet. MT5 - es startet wie eine super rohe Anwendung.

 
fxsaber:

Es ist eine dumme Situation mit benutzerdefinierten Zeichenleisten. Ich kann in die Historie (CustomRatesReplace) so viele Takte schreiben, wie ich will, aber ich kann sie hier nicht lesen (CopyRates) (TERMINAL_MAXBARS).

Wir müssen diese falsche Situation irgendwie lösen. Perfekt sehen den Beginn der lokalen Geschichte durch

Aber um es vorwegzunehmen.

Vielleicht wäre es möglich, TERMINAL_MAXBARS über MQL zu ändern? Oder CopyRates ohne MaxBars-Grenze überladen lassen?

SD ist der Meinung, dass es kein Problem darstellt, wenn man die Kursentwicklung nicht weiter als bis zu MaxBars zurückverfolgen kann. Dieses Beispiel (eines von vielen Szenarien, in denen der erforderliche Verlauf, der sich bereits auf dem lokalen Rechner befindet)

Es wird davon ausgegangen, dass der Grenzwert festgelegt wird, um Ressourcen zu sparen. Und das zu Recht!

Stellen wir uns ein Marktprodukt vor, das für die Berechnung von Equiti-Line-Statistiken bestimmt ist.

Es stellt sich heraus, dass der Benutzer, vor der Anwendung dieses Produkts, muss UnlimitBars tun. Und nach dem Auftragen - wieder zurückgeben.

nicht beeindruckt. Die Krücke bleibt am Leben!

 

Indikatoren geben beim Starten des Terminals nicht immer ACCOUNT_LOGIN zurück

0 11:00:01.880 Custom indicator tester EURUSD,H1: erfolgreich geladen
0 11:00:01.887 tester EURUSD,H1: OnInit 0 < ---- AccountInfoInteger(ACCOUNT_LOGIN) liefert 0
0 11:00:01.887 tester EURUSD,H1: initialisiert
0 11:00:01.887 tester EURUSD,H1: OnCalculate 0 < ---- AccountInfoInteger(ACCOUNT_LOGIN) ergab 0
0 11:00:05.980 tester EURUSD,H1: OnCalculate 0 < ---- AccountInfoInteger(ACCOUNT_LOGIN) ergab 0
0 11:00:06.654 tester EURUSD,H1: OnCalculate 0 < ---- AccountInfoInteger(ACCOUNT_LOGIN) ergab 0
0 11:00:07.030 tester EURUSD,H1: OnCalculate 442394 < ---- AccountInfoInteger(ACCOUNT_LOGIN) liefert Kontonummer
0 11:00:07.040 tester EURUSD,H1: OnCalculate 442394 < ---- AccountInfoInteger(ACCOUNT_LOGIN) liefert Kontonummer

Quellcode

//+------------------------------------------------------------------+
//|                                                       tester.mq4 |
//|                        Copyright 2017, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
   string text=IntegerToString(AccountInfoInteger(ACCOUNT_LOGIN));
   Print("OnInit "+text);

   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   string text=IntegerToString(AccountInfoInteger(ACCOUNT_LOGIN));
   Print("OnCalculate "+text);
   return(rates_total);
  }
//+------------------------------------------------------------------+

Ich mag mich irren, aber meiner Meinung nach kann kein Programm funktionieren, wenn die Kontonummer nicht bekannt ist: .....

 
Vladimir Pastushak:

Ich mag mich irren, aber meiner Meinung nach kann kein Programm funktionieren, wenn die Kontonummer nicht bekannt ist.....

Ich verwende niemalsKontonummern in EAs und Indikatoren, außer für den Report-Handel.

Aber ich stimme zu, dass auch offline die Kontonummer (die letzte Verbindung vor dem Ausschalten des Terminals) immer verfügbar sein sollte.

 
fxsaber:

Ich verwendedie Kontonummer nie in EAs und Indikatoren, außer bei Report-doors.

Aber ich stimme zu, dass auch offline die Kontonummer (letzte Verbindung vor dem Ausschalten des Terminals) immer verfügbar sein sollte.

Auch online. Sie müssen immer wissen und verstehen, unter welchem Konto und zu welchem Zeitpunkt was passiert ist.

Wie können Sie ein Programm ausführen, wenn Sie nicht wissen, für welches Konto etwas getan wird?

Es handelt sich nicht um "sharash montash", die Leute haben vielleicht Millionen auf ihren Konten hier....

 
Vladimir Pastushak:

Auch online. Sie müssen immer wissen und verstehen, unter welchem Konto und zu welchem Zeitpunkt was passiert ist.

Wie kann man ein Programm ausführen, wenn man nicht weiß, für welches Konto etwas gemacht wird?

Dies ist kein "Sharash Montash", die Leute haben vielleicht Millionen auf ihren Konten hier....

99 % der EAs analysieren keine Kontonummern.

 
fxsaber:

99 % der Berater analysieren die Kontonummer nicht

weil 99,99% der EAs "sharash montash" sind ....

Ich bin sicher, dass jeder Qualitäts-EA sein eigenes Betriebsprotokoll führen sollte, entweder während des Betriebs oder beim Entladen des EA sollte der Benutzer das Betriebsprotokoll auf Anfrage erhalten. Bei kritischen Fehlern ist sie obligatorisch!

Unter kritischen Fehlern verstehe ich Verbindungsabbrüche, erneute Anfragen, langsamer Code.

 
Vladimir Pastushak:

weil 99,99% der EAs "sharash montash" sind ....

Ich schreibe genau diese Art von Ratgebern.