Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 572

 
Boris.45:
Hallo, ich schreibe gerade einen EA für MT5. Ich habe einen EA in MT5 geschrieben, den ich für die automatische Suche nach den erforderlichen Mustern und die manuelle Eröffnung von Positionen verwenden wollte. D.h. es gibt keine Handelsfunktionen in dem EA. Mein Problem ist, dass ich diesen EA nicht auf einem Chart installieren kann. Der EA enthält keine Indikatoraufrufe. Alle Indikatoren werden im Programm geschrieben. Ich habe es kompiliert und im Strategietestprogramm ausgeführt. Es gab keine Probleme. Ich habe gerade den EA auf den Chart gesetzt und ihm erlaubt, auf dem Bildschirm zu handeln, in den Einstellungen und im EA-Fenster, das sich öffnet. Anstelle des Smileys auf dem Chart erscheint das Symbol des Expert Advisors auf dem Kurschart und ein grüner Kreis mit einem weißen Dreieck darin. Ich habe dieses Verfahren mehrmals ausprobiert und bin zu den gleichen Ergebnissen gekommen. Ich habe die Perioden im Preisdiagramm gewechselt, die Meldung von OnDeinit() erscheint auf dem Monitor, d.h. eine Kerze wird im Programm verarbeitet und die Arbeit wird eingestellt.

Ich habe einen Blick in das Logbuch geworfen:

- Einer der Versuche, einen EA zu installieren, führte zu einer Profiländerungsmeldung;

- Bei allen anderen Versuchen wird der EA ohne Probleme geladen.

Ich habe mit Profilen gearbeitet: Ich habe die Anzahl der Profile erhöht und für jedes Profil unterschiedliche Diagramme erstellt. Wenn dort etwas nicht in Ordnung war, dann weiß ich es leider nicht. Ich weiß nicht, was kaputt sein muss, damit das Programm eine Meldung über den Profilwechsel ausgibt. Es ist jedoch möglich, dass der Fehler auf eine andere Ursache zurückzuführen ist. Das ist für mich nicht klar.

Zu Testzwecken habe ich heute einen neuen EA (Template) erstellt und nichts in die Funktionen OnInit(), OnDeinit(const int reason), OnTick() geschrieben und versucht, diesen EA auf den Chart zu setzen und den Handel zu ermöglichen.

Ich habe die gleiche Situation wie zuvor.

Bitte helfen Sie mir, mit dieser Situation umzugehen. !!!!!!

Schauen wir sie uns nacheinander an. Hier ist die Vorlage:

//+------------------------------------------------------------------+
//|                                                         Test.mq5 |
//|                              Copyright © 2016, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2016, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Trade function                                                   |
//+------------------------------------------------------------------+
void OnTrade()
  {
//---
   
  }
//+------------------------------------------------------------------+

Hängen Sie es an das Diagramm und einen Screenshot des Diagramms im Studio an, ebenso wie die Einträge aus den Registerkarten "Journal" und "Berater" (falls sie dort erscheinen).

Dateien:
Test.mq5  2 kb
 
Ich schätze, auch hier gibt es keine Profis. pity......
 
Mihail Marchukajtes:
Ich nehme an, auch hier gibt es keine Profis. pity......
Drucken Sie also die Momentum-Werte aus dem Diagramm eines anderen Anwenders im Tester nach
 
Artyom Trishkin:
Drucken Sie also die Momentum-Werte aus dem Diagramm eines anderen Anwenders im Tester nach
Print zeigt, was der Puffer zeichnet. Es liegen keine Informationen vor. Kann jemand eine vernünftige Antwort geben???? Nicht unverständliche Spekulationen....
 
Mihail Marchukajtes:
Print zeigt, was der Puffer zeichnet. Es liegen keine Informationen vor. Kann jemand eine vernünftige Antwort geben???? Nicht irgendeine obskure Spekulation....
Sie geben also null Informationen. Wo ist Ihr Code? Oder ist jeder hier ein Hellseher oder so etwas? Dann sollten Sie das Forum der Magier des zehnten Grades aufsuchen...
 

Liebe Kollegen, können Sie mir sagen, wie man Candlestick-Parameter innerhalb eines bestimmten Bereichs vergleichen kann?

Ich verstehe, wie man den Höchst- oder Mindestwert berechnet.

Hier ist der Code:

void OnTick()

{

double H = 0;

for ( shift = Search_Period; shift >0; shift--)

{

wenn (High[shift] > H)

{ H = High[shift]; }

Warnung (H);

}

}

Das Problem ist jedoch, dass der Wert der Variablen dadurch überschrieben wird.

Mein Ziel ist es, z. B. zwei oder mehr Kerzenständer mit dem gleichen Preiswert von High zu finden. Mit anderen Worten: Nach jeder Iteration sollte eine Variable erstellt werden, die den Wert speichert, dann eine weitere und so weiter, bis das gesamte Intervall überprüft ist. Und dann können sie weiter verglichen werden.

Aber ich habe keine Ahnung, wie man das macht ((.

 
Andrey Koldorkin:

Liebe Kolleginnen und Kollegen, können Sie mir sagen, wie ich Kerzenparameter innerhalb eines bestimmten Bereichs vergleichen kann?

Ich verstehe, wie man den Höchst- oder Mindestwert berechnet.

Hier ist der Code:

...............


Das Problem ist jedoch, dass der Wert der Variablen dadurch überschrieben wird.

Und mein Ziel ist es, zum Beispiel zwei oder mehr Kerzenständer mit dem gleichen Preiswert von High zu finden. D.h. nach jeder Iteration sollte eine Variable erstellt werden, die den Wert speichert, dann eine weitere und so weiter, bis das gesamte Intervall überprüft ist. Und dann können sie weiter verglichen werden.

Aber ich habe keine Ahnung, wie man das macht ((

Es sieht so aus:

//+------------------------------------------------------------------+
//|                                                     TestCopy.mq4 |
//|              Copyright 2016, Artem A. Trishkin, Skype artmedia70 |
//|                       https://login.mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, Artem A. Trishkin, Skype artmedia70"
#property link      "https://login.mql5.com/ru/users/artmedia70"
#property version   "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input int Search_Period=100;  // Количество копируемых High
int searchPeriod=(Search_Period<1)?1:Search_Period;
double mass_high[][2];        // массив значений High и их времени
MqlRates array[];             // Массив для копирования Open, High, Low, Close, Time
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   int copy_bars=(int)fmin(Search_Period,Bars(Symbol(),Period()));
   if(CopyRates(Symbol(),PERIOD_CURRENT,1,copy_bars,array)>0) {
      double H=0;
      int size_h=0;
      for(int i=0; i<copy_bars; i++) {
         if(array[i].high>H) {
            H=array[i].high;
            size_h++;
            ArrayResize(mass_high,size_h);
            mass_high[size_h-1][0]=H;
            mass_high[size_h-1][1]=(int)array[i].time;
            }
         }
      }
   for(int i=0; i<ArrayRange(mass_high,0); i++) {
      printf("Время: %s, High: %.5f",TimeToString((int)mass_high[i][1],TIME_DATE|TIME_MINUTES),mass_high[i][0]);
      }
  }
//+------------------------------------------------------------------+
 
Wie schreibt man zwei verschiedene Berater in einen?
 
Сергей Зырянов:
Wie kann man zwei verschiedene EAs in einem zusammenfassen?
Woran sind Sie interessiert? Sie kopieren den Code von einem EA in einen anderen, aber Sie müssen ihn richtig kopieren. Wenn Sie nicht wissen, wie das geht, bestellen Sie einen Freiberufler.
 
Artyom Trishkin:

Es geht ungefähr so:

Ich werde versuchen, es herauszufinden. Ich danke Ihnen.