Diskussion zum Artikel "Handelsoperationen in MQL5 - Nichts leichter als das" - Seite 4

 
Konstantin Efremov:

UPD: Rashid hat oben eine Bibliotheksdatei gepostet, sie hat mein Problem gelöst. Es ist traurig, dass die Standardbibliothek einen Fehler hat. Ich werde nun den Vergleich studieren, um zu sehen, ob es möglich ist, einige Änderungen direkt in EA vorzunehmen, ohne die Bibliothek zu ersetzen, so dass alles funktioniert

Diese Änderungen sind bereits in der Standardbibliothek enthalten. Ich habe beschlossen, denjenigen, die den Artikel lesen werden, erst jetzt zu antworten.

 

Gut, in der Tat ein schöner...

 
<Deleted>
.
 
Andy Obama:
 

Guten Tag an alle!

Ich fahre fort, die Programmiersprache MQL5 zu studieren. Auf der Suche nach Informationen, die für mich nützlich sind, habe ich fast die gesamte Website durchsucht. Die meisten Informationen, die ich auf der Website gefunden habe, sind für Leute gedacht, die bereits ein Grundverständnis für die Programmierung haben.

Und hier! Ich habe einen weiteren GROSSARTIGEN Artikel gefunden, der mir geholfen hat, viele Dinge zu verstehen und meinen EA zu verfeinern! Es ist schade, dass der Autor diese Artikelserie nicht fortgesetzt hat und sich nur auf 2012 beschränkt hat. Aber nichtsdestotrotz drücke ich diesem Mann meinen GROSSEN Respekt aus und sage ihm im Namen aller Anfänger ein GROSSES DANKESCHÖN!

Mit Respekt, Vladimir.

Документация по MQL5 - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
Документация по MQL5 - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
  • www.mql5.com
MetaQuotes Language 5 (MQL5) - язык программирования технических индикаторов, торговых роботов и вспомогательных приложений для автоматизации торговли на финансовых рынках. MQL5 является современным языком высокого уровня и разработан MetaQuotes Software Corp. для собственной торгово-информационной платформы. Синтаксис языка максимально близок...
 
Kommentare, die sich nicht auf dieses Thema beziehen, wurden in "Off Topic Posts" verschoben.
 
pdev:

Hallo, Vielen Dank für diesen sehr hilfreichen Beitrag und bitte helfen Sie mir, dieses Problem zu lösen. Ich bin neu im MT5 und lerne gerade, EAs zu erstellen, also habe ich den Beispielcode kopiert, um Ctrade.Buy auszuführen, aber der Backtest ist fehlgeschlagen. Hier sind weitere Informationen:


1) Konto: Es ist ein Live-Konto mit der Basiswährung NZD

2) MetaEditor-Einstellungen für den Backtest:


3) Code: Kopiert von https://www.mql5.com/de/articles/481:


//+------------------------------------------------------------------+

//|                                                         demo.mq5 |

//|                        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"

#include<Trade\Trade.mqh>


//--- object for performing trade operations

CTrade  trade;

//+------------------------------------------------------------------+

//| Expert initialization function                                   |

//+------------------------------------------------------------------+

int OnInit()

  {

   //--- set MagicNumber for your orders identification

   int MagicNumber=123456;

   trade.SetExpertMagicNumber(MagicNumber);

   //--- set available slippage in points when buying/selling

   int deviation=10;

   trade.SetDeviationInPoints(deviation);

   //--- order execution mode

   trade.SetTypeFilling(ORDER_FILLING_RETURN);

   //--- logging mode: it would be better not to declare this method at all, the class will set the best mode on its own

   trade.LogLevel(1);

   //--- what function is to be used for trading: true - OrderSendAsync(), false - OrderSend()

   trade.SetAsyncMode(true);

   //---

   return(0);

  }

//+------------------------------------------------------------------+

//| Expert deinitialization function                                 |

//+------------------------------------------------------------------+

void OnDeinit(const int reason)

  {

//---

   

  }

//+------------------------------------------------------------------+

//| Expert tick function                                             |

//+------------------------------------------------------------------+

void OnTick()

  {

   BuySample1();

  }


//--- Buy sample  

//+------------------------------------------------------------------+

//|  Buying a specified volume at the current symbol                 |

//+------------------------------------------------------------------+

void BuySample1()

  {

//--- 1. example of buying at the current symbol

   if(!trade.Buy(0.1))

     {

      //--- failure message

      Print("Buy() method failed. Return code=",trade.ResultRetcode(),

            ". Code description: ",trade.ResultRetcodeDescription());

     }

   else

     {

      Print("Buy() method executed successfully. Return code=",trade.ResultRetcode(),

            " (",trade.ResultRetcodeDescription(),")");

     }

//---

  }

4) Fehlerprotokoll (Bitte beachten Sie, dass ich nur auf EUR/USD teste):

GJ 0 19:36:44.410 127.0.0.1 Anmeldung (Build 1730)

HH 0 19:36:44.420 Netzwerk 38520 Bytes Kontoinformationen geladen

JO 0 19:36:44.420 Netzwerk 1482 Bytes Testerparameter geladen

QE 0 19:36:44.420 Netzwerk 188 Bytes Eingabeparameter geladen

FR 0 19:36:44.421 Netzwerk 443 Bytes der Symbolliste geladen

IF 0 19:36:44.421 Tester-Experten-Datei hinzugefügt: Experts\demo.ex5. 46684 Bytes geladen

QH 0 19:36:44.433 Tester Ersteinlage 10000.00 NZD, Hebelwirkung 1:100

JN 0 19:36:44.437 Tester erfolgreich initialisiert

ES 0 19:36:44.437 Netzwerk 46 Kb Gesamtinitialisierungsdaten empfangen

PP 0 19:36:44.437 Testgerät Intel Core i7-4510U @ 2.00GHz, 8103 MB

RJ 0 19:36:44.799 Symbole EURUSD: zu synchronisierendes Symbol

HR 0 19:36:44.800 Symbole EURUSD: Symbol synchronisiert, 3624 Bytes an Symbolinformationen erhalten

NJ 0 19:36:44.800 Verlauf EURUSD: Verlaufssynchronisation gestartet

GO 0 19:36:44.856 Historie EURUSD: Laden von 27 Bytes Historiendaten zur Synchronisation in 0:00:00.000

RQ 0 19:36:44.856 Historie EURUSD: Historie synchronisiert von 2012.01.01 bis 2017.11.15

EF 0 19:36:44.993 Historie EURUSD,Daily: Historien-Cache für 1010 Balken zugewiesen und enthält 312 Balken von 2014.01.01 00:00 bis 2014.12.31 00:00

ND 0 19:36:44.993 Historie EURUSD,Täglich: Historie beginnt ab 2014.01.01 00:00

OL 0 19:36:44.996 Tester EURUSD,Daily (HalifaxPlus-Live): jeder Tick wird erzeugt

GN 0 19:36:44.996 Tester EURUSD,Daily: Test von Experts\demo.ex5 von 2015.01.01 00:00 bis 2017.11.15 00:00 gestartet

CK 0 19:36:56.288 Symbole NZDUSD: zu synchronisierendes Symbol

IS 0 19:36:56.288 Symbole NZDUSD: Symbol synchronisiert, 3624 Bytes Symbolinformationen erhalten

JL 0 19:36:56.288 Verlauf NZDUSD: Verlaufssynchronisation gestartet

HJ 0 19:36:56.575 Historie NZDUSD: 14 Kb Historiendaten zum Synchronisieren geladen in 0:00:00.078

LS 0 19:36:56.575 Historie NZDUSD: Historie synchronisiert von 2013.01.01 bis 2017.11.15

CO 0 19:36:56.579 Symbole EURNZD: zu synchronisierendes Symbol

OJ 0 19:36:56.580 Symbols EURNZD: Symbol synchronisiert, 3624 Bytes an Symbolinformationen erhalten

DL 0 19:36:56.580 Verlauf EURNZD: Verlaufssynchronisation gestartet

MK 0 19:36:56.656 Historie EURNZD: Laden von 27 Bytes Historiendaten zur Synchronisation in 0:00:00.000

OD 0 19:36:56.656 Geschichte EURNZD: Geschichte von 2013.01.01 bis 2017.11.15 synchronisiert

IN 0 19:36:56.665 Handel 2015.01.02 03:00:00 Marktkauf 0.10 EURUSD (1.20538 / 1.20549 / 1.20538)

PE 0 19:36:56.665 Handel 2015.01.02 03:00:00 Geschäft #2 Kauf 0.10 EURUSD zu 1.20549 durchgeführt(basierend auf Auftrag #2)

FH 0 19:36:56.666 Trade 2015.01.02 03:00:00 deal ausgeführt [#2 buy 0.10 EURUSD at 1.20549]

OG 0 19:36:56.666 Trade 2015.01.02 03:00:00 Auftrag ausgeführt buy 0.10 at 1.20549 [#2 buy 0.10 EURUSD at 1.20549]

FO 0 19:36:56.670 demo (EURUSD,D1) 2015.01.02 03:00:00 Buy() Methode erfolgreich ausgeführt. Return code=10009 (ausgeführt bei 1.20549)

NM 2 19:37:15.823 Verlauf NZDUSD 2016.09.21 23:01:00: beschädigter Verlauf entdeckt (s:-73370, o:73433, h:+48, l:-123, c:-117 -- tv:63, rv:11250111)

JF 2 19:37:15.823 Verlauf NZDUSD 2016.09.21, fehlerhafter Container gefunden, muss neu synchronisiert werden

LQ 2 19:37:16.106 Tester Historie Fehler 9 in undefinierter Funktion

OH 2 19:37:16.106 Tester stoppt bei 0% des Testintervalls mit Fehler '20 NZDUSD'


Bitte sagen Sie mir, was falsch ist und wie ich das Problem beheben kann?

[Gelöscht]  
pdev:

Hallo, Vielen Dank für diesen sehr hilfreichen Beitrag und bitte helfen Sie mir, dieses Problem zu lösen. Ich bin neu im MT5 und lerne gerade, EAs zu erstellen, also habe ich den Beispielcode kopiert, um Ctrade.Buy auszuführen, aber der Backtest ist fehlgeschlagen. Hier sind weitere Informationen:


1) Konto: Es ist ein Live-Konto mit der Basiswährung NZD

2) MetaEditor-Einstellungen für den Backtest:


3) Code: Kopiert von https://www.mql5.com/de/articles/481:


//+------------------------------------------------------------------+

//|                                                         demo.mq5 |

//|                        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"

#include<Trade\Trade.mqh>


//--- object for performing trade operations

CTrade  trade;

//+------------------------------------------------------------------+

//| Expert initialization function                                   |

//+------------------------------------------------------------------+

int OnInit()

  {

   //--- set MagicNumber for your orders identification

   int MagicNumber=123456;

   trade.SetExpertMagicNumber(MagicNumber);

   //--- set available slippage in points when buying/selling

   int deviation=10;

   trade.SetDeviationInPoints(deviation);

   //--- order execution mode

   trade.SetTypeFilling(ORDER_FILLING_RETURN);

   //--- logging mode: it would be better not to declare this method at all, the class will set the best mode on its own

   trade.LogLevel(1);

   //--- what function is to be used for trading: true - OrderSendAsync(), false - OrderSend()

   trade.SetAsyncMode(true);

   //---

   return(0);

  }

//+------------------------------------------------------------------+

//| Expert deinitialization function                                 |

//+------------------------------------------------------------------+

void OnDeinit(const int reason)

  {

//---

   

  }

//+------------------------------------------------------------------+

//| Expert tick function                                             |

//+------------------------------------------------------------------+

void OnTick()

  {

   BuySample1();

  }


//--- Buy sample  

//+------------------------------------------------------------------+

//|  Buying a specified volume at the current symbol                 |

//+------------------------------------------------------------------+

void BuySample1()

  {

//--- 1. example of buying at the current symbol

   if(!trade.Buy(0.1))

     {

      //--- failure message

      Print("Buy() method failed. Return code=",trade.ResultRetcode(),

            ". Code description: ",trade.ResultRetcodeDescription());

     }

   else

     {

      Print("Buy() method executed successfully. Return code=",trade.ResultRetcode(),

            " (",trade.ResultRetcodeDescription(),")");

     }

//---

  }

4) Fehlerprotokoll (Bitte beachten Sie, dass ich nur auf EUR/USD teste):

GJ 0 19:36:44.410 127.0.0.1 Anmeldung (Build 1730)

HH 0 19:36:44.420 Netzwerk 38520 Bytes Kontoinformationen geladen

JO 0 19:36:44.420 Netzwerk 1482 Bytes Testerparameter geladen

QE 0 19:36:44.420 Netzwerk 188 Bytes Eingabeparameter geladen

FR 0 19:36:44.421 Netzwerk 443 Bytes der Symbolliste geladen

IF 0 19:36:44.421 Tester-Experten-Datei hinzugefügt: Experts\demo.ex5. 46684 Bytes geladen

QH 0 19:36:44.433 Tester Ersteinzahlung 10000.00 NZD, Hebelwirkung 1:100

JN 0 19:36:44.437 Tester erfolgreich initialisiert

ES 0 19:36:44.437 Netzwerk 46 Kb Gesamtinitialisierungsdaten empfangen

PP 0 19:36:44.437 Testgerät Intel Core i7-4510U @ 2.00GHz, 8103 MB

RJ 0 19:36:44.799 Symbole EURUSD: zu synchronisierendes Symbol

HR 0 19:36:44.800 Symbole EURUSD: Symbol synchronisiert, 3624 Bytes an Symbolinformationen erhalten

NJ 0 19:36:44.800 Verlauf EURUSD: Verlaufssynchronisation gestartet

GO 0 19:36:44.856 Historie EURUSD: Laden von 27 Bytes Historiendaten zur Synchronisation in 0:00:00.000

RQ 0 19:36:44.856 Historie EURUSD: Historie synchronisiert von 2012.01.01 bis 2017.11.15

EF 0 19:36:44.993 Historie EURUSD,Daily: Historien-Cache für 1010 Balken zugewiesen und enthält 312 Balken von 2014.01.01 00:00 bis 2014.12.31 00:00

ND 0 19:36:44.993 Historie EURUSD,Täglich: Historie beginnt ab 2014.01.01 00:00

OL 0 19:36:44.996 Tester EURUSD,Daily (HalifaxPlus-Live): jeder Tick wird erzeugt

GN 0 19:36:44.996 Tester EURUSD,Daily: Test von Experts\demo.ex5 von 2015.01.01 00:00 bis 2017.11.15 00:00 gestartet

CK 0 19:36:56.288 Symbole NZDUSD: zu synchronisierendes Symbol

IS 0 19:36:56.288 Symbole NZDUSD: Symbol synchronisiert, 3624 Bytes Symbolinformationen erhalten

JL 0 19:36:56.288 Verlauf NZDUSD: Verlaufssynchronisation gestartet

HJ 0 19:36:56.575 Historie NZDUSD: 14 Kb Historiendaten zum Synchronisieren geladen in 0:00:00.078

LS 0 19:36:56.575 Historie NZDUSD: Historie synchronisiert von 2013.01.01 bis 2017.11.15

CO 0 19:36:56.579 Symbole EURNZD: zu synchronisierendes Symbol

OJ 0 19:36:56.580 Symbols EURNZD: Symbol synchronisiert, 3624 Bytes an Symbolinformationen erhalten

DL 0 19:36:56.580 Verlauf EURNZD: Verlaufssynchronisation gestartet

MK 0 19:36:56.656 Historie EURNZD: Laden von 27 Bytes Historiendaten zur Synchronisation in 0:00:00.000

OD 0 19:36:56.656 Geschichte EURNZD: Geschichte von 2013.01.01 bis 2017.11.15 synchronisiert

IN 0 19:36:56.665 Handel 2015.01.02 03:00:00 Marktkauf 0.10 EURUSD (1.20538 / 1.20549 / 1.20538)

PE 0 19:36:56.665 Handel 2015.01.02 03:00:00 Geschäft #2 Kauf 0.10 EURUSD zu 1.20549 durchgeführt(basierend auf Auftrag #2)

FH 0 19:36:56.666 Trade 2015.01.02 03:00:00 deal ausgeführt [#2 buy 0.10 EURUSD at 1.20549]

OG 0 19:36:56.666 Trade 2015.01.02 03:00:00 Auftrag ausgeführt buy 0.10 at 1.20549 [#2 buy 0.10 EURUSD at 1.20549]

FO 0 19:36:56.670 demo (EURUSD,D1) 2015.01.02 03:00:00 Buy() Methode erfolgreich ausgeführt. Return code=10009 (ausgeführt bei 1.20549)

NM 2 19:37:15.823 Verlauf NZDUSD 2016.09.21 23:01:00: beschädigter Verlauf entdeckt (s:-73370, o:73433, h:+48, l:-123, c:-117 -- tv:63, rv:11250111)

JF 2 19:37:15.823 Verlauf NZDUSD 2016.09.21, fehlerhafter Container gefunden, muss neu synchronisiert werden

LQ 2 19:37:16.106 Tester Historie Fehler 9 in undefinierter Funktion

OH 2 19:37:16.106 Tester stoppt bei 0% des Testintervalls mit Fehler '20 NZDUSD'


Bitte sagen Sie mir, was falsch ist und wie ich das Problem beheben kann?

 

In dem Artikel bei der Eröffnung Limit und Stop-Aufträge überall

double price=1000*point;

Ich frage mich, ob diejenigen, die schreiben, dass der Artikel half ihnen den Code aus dem Artikel einfügen?