Fehler, Irrtümer, Fragen - Seite 819

 
abeiks:

Nachmittags.

Ich habe einen Block zum Zählen von Schlägen auf Umschlagzeilen erstellt, er scheint alles korrekt zu zählen, aber es fehlen einige Einträge im Protokoll - zum Beispiel gibt es count[Number] =3 und das nächste count[Number] =5. Ich kann sehen, dass die Zählung korrekt ist, aber im Protokoll fehlt aus irgendeinem Grundcount [Number] =4. Manchmal enthält das Protokoll alle Einträge. Ich verstehe nicht, warum das passiert. Wenn Sie Fehler im Code sehen, können Sie den Code korrigieren?

Gibt es eigentlich keine Einträge im Protokoll oder nur in der Registerkarte "Experten"? Ich neige zur zweiten Variante, denn bei der Ausgabe in den Tabulator mit hoher Geschwindigkeit werden einige Zeilen übersprungen. Das ist ein Fehler, kein Bug, denn diese Ausgabe verlangsamt das Programm weniger. Aber im Log werden alle Zeilen gedruckt, es gibt keine Übersprünge.

Wenn Sie Lücken im Protokoll feststellen, wenden Sie sich bitte an den Service Desk.

Außerdem wird beim Ausführen des Testers manchmal die Fehlermeldung "OnTick critical error" ausgegeben, aber beim nächsten Start beginnt der Test. Was könnte das Problem sein?

Dies ist Sache der Entwickler.
 
MetaDriver:

Gibt es keine Einträge im Protokoll oder nur in der Registerkarte "Experten"? Ich neige zur zweiten Variante, da bei der Ausgabe in die Registerkarte mit hoher Geschwindigkeit einige Zeilen übersprungen werden. Dies ist eine Funktion, kein Fehler, da diese Ausgabe das Programm weniger verlangsamt. Aber alle Zeilen werden in das Protokoll ausgegeben, dort gibt es keine Auslassungen.

Wenn Sie Lücken im Protokoll sehen, dann im Service Desk.

Dies ist Sache der Entwickler.

Ja, Sie haben Recht, es stellt sich heraus, dass alles im Protokoll enthalten ist. Bei den visuellen Tests habe ich mir die Protokolle angesehen, so dass ich es nicht bemerkt habe. Diese Funktion war mir nicht bekannt. Ich danke Ihnen!

Визуализируй стратегию в тестере MetaTrader 5
Визуализируй стратегию в тестере MetaTrader 5
  • 2012.06.08
  • MetaQuotes Software Corp.
  • www.mql5.com
Каждому из нас давно знакома поговорка "Лучше один раз увидеть, чем сто раз услышать". Вы можете прочитать десятки книг о Париже или Венеции, но мысленные образы не позволят вам испытать те же ощущения, как от прогулки по их вечерним улицам. Преимущество визуализации, или наглядного представления, может быть легко спроецировано на любой аспект нашей жизни, включая и работу на рынке, например, анализ цен на графиках при помощи индикаторов, и конечно же, визуализация тестирования стратегий. В данной статье собраны все возможности тестера стратегий MetaTrader 5 по визуализации вычислений.
 
abeiks:

Ja, Sie haben Recht, es ist alles im Protokoll enthalten. Ich habe das Protokoll während der visuellen Prüfung im Auge behalten und habe es daher nicht bemerkt. Ich wusste nicht, dass es diese Funktion gibt. Ich danke Ihnen!

GUT.

--

Um einen Text als Zitat auszuwählen, markieren Sie ihn einfach und drücken Sie Strg+3; oder verwenden Sie beim Antworten den Antwort-Link in der unteren rechten Ecke des Beitrags

 
Guten Abend, ich kann keinen Haftbefehl öffnen. Ich habe versucht, alles entsprechend den Erläuterungen und Hilfen zu schreiben. Ich würde gerne verstehen, was an diesem Beispiel falsch ist!
//+------------------------------------------------------------------+
//|                                                     ордерній.mq5 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   
//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---

   MqlTick last_tick;
SymbolInfoTick(_Symbol,last_tick);
double Ask=last_tick.ask;
double Bid=last_tick.bid;

   MqlTradeRequest request={0};
   MqlTradeResult result={0};
   
   request.action= TRADE_ACTION_DEAL;
   request.magic =600;
   request.symbol=Symbol();
   request.volume=1;
   request.sl=Bid-300*Point();
   request.tp=Bid+300*Point();
   request.type=ORDER_TYPE_BUY;
   OrderSend( request,   result    );    
        
  int Error=GetLastError( ) ; ResetLastError();
  printf("Error ",Error);

   
  }
//+------------------------------------------------------------------+
 
MetaDriver:

... Um Text als Zitat auszuwählen, markieren Sie ihn einfach und drücken Sie Strg+3 ...

Danke, ich wusste nicht, dass es so einfach ist.
 
Dimka-novitsek:
Guten Abend, ich kann keine Bestellung eröffnen. Ich habe versucht, alles so zu schreiben, wie es in dem Artikel erklärt wird. Ich würde gerne herausfinden, was in diesem Beispiel falsch ist!

Versuchen Sie dies

//+------------------------------------------------------------------+
//|                                                     ордерній.mq5 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   
//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---

   MqlTick last_tick;
SymbolInfoTick(_Symbol,last_tick);
double Ask=last_tick.ask;
double Bid=last_tick.bid;

   MqlTradeRequest request={0};
   MqlTradeResult result={0};
   
   request.action= TRADE_ACTION_DEAL;
   request.magic =600;
   request.symbol=Symbol();
   request.price=Bid;
   request.deviation=20;
   request.volume=1;
   request.sl=Bid-300*Point();
   request.tp=Bid+300*Point();
   request.type=ORDER_TYPE_BUY;
   OrderSend( request,   result    );    
        
  int Error=GetLastError( ) ; ResetLastError();
  printf("Error %i",Error);

   
  }
//+------------------------------------------------------------------+

Ihnen fehlen der Eröffnungskurs und die Slippage.

request.price=Bid;
request.deviation=20;

Sie können auch die Struktur der Handelsanfrage(MqlTradeRequest) lesen

 

Ich danke Ihnen!!! Ich werde es ausprobieren. Hauptsache, man liest, Hauptsache, man findet es heraus!!!

Ich dachte eigentlich, es sei so selbstverständlich, zu dem bestehenden Preis zu kaufen, dass es nicht angegeben werden muss.

Was ist der Modus, wenn ich nur eine Pose öffne?

 
Nein. In den Meldungen wird nur Error und resultat geschrieben, nicht aber die Werte dieser Variablen! Dies ist der richtige Ort.
       
  int Error=GetLastError( ) ; ResetLastError();
  printf("Error ",Error);
  
  uint resultat= result.retcode ;
   printf("resultat ",resultat);
   
 
Dimka-novitsek:
Nein. In den Meldungen schreibt er nur den Fehler und resultat, er schreibt nicht die Werte dieser Variablen! Dies ist der richtige Ort.

Und ich habe Ihnen diesen Code gegeben

int Error=GetLastError( ) ; ResetLastError();
printf("Error %i",Error);

Machen Sie dasselbe mit result.retcode.

 
fyords:

Und ich habe Ihnen diesen Code gegeben

Machen Sie dasselbe für result.retcode.

Entschuldigung! Ich dachte, die Maschine würde den zitierten Text gar nicht lesen, und das Symbol sei ein unbedeutendes Versehen.