Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Können Sie mir sagen, ob es möglich ist, diese Konstruktion von MQL4 mit m_Trade.PositionModify zu implementieren (m_Trade ist ein Mitglied der Klasse CTrade)?
Der Sinn des Skripts ist es, einen Kauf auf dem Markt mit einer bestimmten Anzahl von Lots zu eröffnen und dann einen Take Profit in 10 Teilen zu setzen. Ich bin an der Tatsache gescheitert, dass PositionModify, ohne einen Stop Loss zu setzen, den Fehler 10016(Falsche Stops in der Anfrage) ausgibt. Und es gibt keine Aufgabe, einen Stop zu setzen :). In der Hilfe heißt es, dass es möglich ist, keinen Wert anzugeben:
Ich habe versucht, den Wert aus dem vorherigen Kauf-Anfrage erhalten übergeben (es ist Null natürlich), gut, die gleiche Rake nur im Profil. Hier ist mein Code:
Ich danke Ihnen im Voraus für Ihre Hilfe.
Gute Einführung in die objektorientierte Programmierung in MQL5.
Mit MT5 Build 1347 kann das erste Codebeispiel nicht kompiliert werden mit dem Fehler "illegal switch expression type".
Ich musste Casting zu int in switch-Anweisungen in AccountInfo.mqh hinzufügen, damit es funktioniert, wie:
switch((int)MarginMode())
Ähnliches Problem auf RTS-3.13 Opening-demo, habe alles ausprobiert (während Limit-Orders auf ORDER_TIME_SPECIFIED_DAY gesetzt sind, wie im Symbolprofil geschrieben) !!!!. Während Buy-Stop-Order ist perfekt offen in den Markt manuell. Dies ist ein Terminal-Fehler, sollten Sie an die Entwickler schreiben
Hallo
Bei einigen Brokern (z.B. FoxPro) tritt beim Versuch, eine Position zu eröffnen, der Fehler 10030 auf. Codebeschreibung: ungültige Füllung. Auf anderen Brokern (zum Beispiel Alpari) funktioniert ohne diese Zeilen
Im Block der Initialisierung des Expert Advisors habe ich verschiedene Werte in den Code geschrieben:
Hilft aber nicht. Wie kann man das Problem lösen? Oder ist diese CTrade-Klasse veraltet und entspricht nicht den neuesten Terminal-Updates und ich muss Handelsoperationen nach dem Standardschema durch die Struktur schreiben?
UPD: Rashid hat oben eine Bibliotheksdatei gepostet, die mein Problem gelöst hat. Es ist traurig, dass die Standardbibliothek einen Fehler hat. Ich werde jetzt den Vergleich untersuchen, um zu sehen, ob es möglich ist, einige Änderungen direkt im EA vorzunehmen, ohne die Bibliothek zu ersetzen, damit alles funktioniert
Gute Einführung in die objektorientierte Programmierung in MQL5.
Mit MT5 Build 1347 kann das erste Codebeispiel nicht kompiliert werden mit dem Fehler "illegal switch expression type".
Ich musste Casting zu int in switch-Anweisungen in AccountInfo.mqh hinzufügen, damit es funktioniert, wie:
switch((int)MarginMode())
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?