Fehler, Irrtümer, Fragen - Seite 2826

 

Hallo. Ich hoffe, ich habe den richtigen Zweig gewählt.

Im visuellen Tester wird das vom EA verwendete Indikatorfenster fast nie erstellt, es werden keine Fehler angezeigt und alles andere funktioniert.

Der Indikator wird nur angezeigt und gerendert, wenn ich Sleep(1) im Initializer des EA öffne.

Was könnte das Problem sein?

Ich kann Sleep() nicht verwenden, weilChartWindowFind(0, short_name) des benutzerdefinierten Indikators auf der linken Seite des Diagramms nicht mehr funktioniert.

Hier ist ein einfaches Beispiel, mit dem ich ein Problem habe:

int MACDHandle=INVALID_HANDLE;
double macd_value[];

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   MACDHandle=iMACD(_Symbol,0,12,26,9,PRICE_CLOSE);
//Sleep(1);
   ArraySetAsSeries(macd_value, true);
//--- Нужно проверить, не были ли возвращены значения Invalid Handle
   if(MACDHandle<0)
     {
      Alert("Ошибка при создании индикатора MACD - номер ошибки: ",GetLastError(),"!!");
      return(-1);
     }
   else
     {
      Print("MACD инициализирован, handle: ", MACDHandle);
      return(INIT_SUCCEEDED);
     }
  }

//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- Освобождаем хэндлы индикаторов
   IndicatorRelease(MACDHandle);
  }

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
   CopyBuffer(MACDHandle, 0, 0, 1, macd_value);
   Print("macd_value: ", macd_value[0]);
  }
//+------------------------------------------------------------------+
mt5 build 2572
 
fxsaber:

Das ist die Lösung, die ich in Betracht gezogen habe, danke. Das scheint die einzige Möglichkeit zu sein.

Ich weiß nicht, ob sich etwas geändert hat, aber zum Zeitpunkt des Verfassens dieses Artikels funktioniert dieser Code universell:

FileOpen(filename, FILE_READ | FILE_TXT | FILE_ANSI, 0, CP_UTF8);
Синтаксический анализ MQL средствами MQL
Синтаксический анализ MQL средствами MQL
  • www.mql5.com
Суть программирования заключается в формализации и автоматизации неких процессов с помощью языков общего или специального назначения. Торговая платформа MetaTrader позволяет применять программирование для решения самых разных задач трейдера, благодаря встроенному языку MQL. И обычно процесс программирования строится на анализе и обработке...
 
Können Sie einen Weg vorschlagen, wie man die Kernel-Nummer in einem zu testenden EA herausfinden kann? In der MQL-API gibt es so etwas nicht, aber ich glaube, jemand hat den Pfad des Agenten geparst - es ist nicht klar, wie einheitliche Ordner im Tester vorhanden sind.
 
Stanislav Korotky:
Können Sie einen Weg vorschlagen, wie man die Kernel-Nummer in einem zu testenden EA herausfinden kann? In der MQL-API gibt es so etwas nicht, aber ich glaube, jemand hat den Pfad des Agenten analysiert - es ist nicht klar, wie einheitliche Ordner im Tester vorhanden sind.

https://www.mql5.com/ru/forum/1111/page2660#comment_15183572

 

Danke, ich werde es ausprobieren. Die Anschlussnummer kann jedoch auch fünfstellig sein (und technisch gesehen weniger als vierstellig, obwohl sie als für Standarddienste reserviert gelten), so dass ich die Extraktionsmethode für mich korrigieren werde.

 

Guten Tag!

Angenommen, ich lasse einen EA im Debug-Modus laufen, während ich ihn entwickle. Der Standardwert einer der Eingabevariablen wurde soeben im Code geändert. Sein Laufzeitwert wird jedoch aus dem vorherigen Strategietester-Eingabesatz eingefügt.

Die Frage ist: "Warum zum Teufel passiert das? Zur Hölle mit der fehlenden Synchronisation, aber warum priorisiert der Debug-Modus das Set gegenüber dem Code?

Как в MetaTrader 5 быстро разработать и отладить торговую стратегию
Как в MetaTrader 5 быстро разработать и отладить торговую стратегию
  • www.mql5.com
Скальперские автоматические системы по праву считаются вершиной алгоритмического трейдинга, но при этом они же являются и самыми сложными для написания кода. В этой статье мы покажем, как с помощью встроенных средств отладки и визуального тестирования строить стратегии, основанные на анализе поступающих тиков. Для выработки правил входа и...
 
Nikolai Karetnikov:

Guten Tag!

Angenommen, ich lasse einen EA im Debug-Modus laufen, während ich ihn entwickle. Der Standardwert einer der Eingabevariablen wurde soeben im Code geändert. Sein Laufzeitwert wird jedoch aus dem vorherigen Strategietester-Eingabesatz eingefügt.

Die Frage ist: "Warum zum Teufel passiert das? Zum Teufel mit der fehlenden Synchronisation, aber warum hat der Debug-Modus Vorrang vor dem Code?

Kurz gesagt, denken Sie einfach an diese Funktion.

 

Teilen Sie uns mit, wie groß die EX5-Dateien der Kampfhandels-EAs sind?

Ich habe(einzelne (unsigned) Handelslogik) ohne explizite oder implizite(statische Arrays) Ressourcen und ohne GUI ~1250Kb (EX4 - 450Kb). Gleichzeitig ist die Tester-Version (ohne Real-World-Wrapper) ~250Kb groß.

 
fxsaber:

Teilen Sie Informationen, was sind die Größen der EX5-Dateien von Kampfhandel EAs?

150kb ohne Indikatoren

Grund der Beschwerde: