Diskussion zum Artikel "Anlegen eigener Trailing Stops" - Seite 6

 
Keiner der geposteten Codes öffnet keine Trades, sondern gibt Fehler 2021.02.08 23:43:23.200 my_first_ea_sartrailing (ES,M1) Alert: Request to set Buy order failed - error code:4756 Gleichzeitig scheint die Anfrage nach Preisen aktuell zu sein 2021.02.08 23:43:23.200 my_first_ea_sartrailing (ES,M1) Alert: action= 1price= 3900.88sl= 3900.58tp= 3901.88volume= 0.1magic= 12345type= 0type_filling= 0deviation= 1000


 
Danke, toller Artikel, sehr ausführlich.
 

Es sieht so aus, als ob diese Diskussion tot ist, aber ich werde meine Kommentare einfügen.


Beim Kompilieren wurden einige Fehler gefunden, die behoben werden müssen.

In der ZeroMemory-Anforderung in Zeile 116 sagt der Compiler

ZeroMemory' - unerwarteter Toke, wahrscheinlich ist der Typ mission?

mrequest' - Deklaration ohne Typ

Das sieht so aus, als ob mrequest nicht richtig mit einem Typ deklariert wurde: ....... Ich bin nicht sicher, wie man das beheben kann.


Außerdem,


Rückgabewert von "OrderSend" sollte überprüft werden. in Zeile215 und 262


Dies sieht so aus, als würde ein Wert zurückgegeben, der nicht zurückgegeben werden sollte.


Für jede Hilfe bei der Behebung dieser beiden Probleme wären wir Ihnen sehr dankbar.

Chris

 

Wollen Sie wirklich verstehen, was in den Kommentaren geschrieben steht?

class CTrailingStop{

protected:
string m_symbol; // Symbolik
ENUM_TIMEFRAMES m_timeframe; // Zeitrahmen
bool m_eachtick; // Arbeit an jedem Tick
bool m_indicator; // Anzeige des Indikators im Diagramm
bool m_button; // Ein/Aus-Schaltfläche anzeigen
int m_button_x; // Koridinate der Schaltfläche x
int m_button_y; // y-Koordinate der Schaltfläche
Farbe m_bgcolor; // Farbe der Schaltfläche
Farbe m_txtcolor; // Farbe der Schaltflächenbeschriftung
int m_shift; // bool m_shift; // bool Verschiebung
bool m_onoff; // Einschalten/Ausschalten
int m_handle; // Name des Indikators
datetime m_lasttime; // Zeitpunkt der letzten Ausführung des Trailing-Stops
MqlTradeRequest m_request; // die Struktur der Handelsanforderung
MqlTradeResult m_result; // Struktur des Ergebnisses einer Handelsanfrage
int m_digits; // Anzahl der Nachkommastellen des Kurses
double m_point; // Punktwert
string m_objname; // Name der Schaltfläche
string m_typename; // Name des Typs der Nachlaufsperre
string m_caption; // Beschriftung der Schaltfläche
 
Sehr lohnende Lektüre, danke!
 
Hallo Leute, ich habe OrderSend für das Trade-Objekt geändert, viel einfacher. Auch das Ereignis wird jede Sekunde ausgeführt, es gibt keine Notwendigkeit für eine solche schnelle Frequenz. Ich änderte es auf alle 60 Sekunden und es verbessert drastisch die Leistung.
 
Rustam Ayupov #:

Wollen Sie wirklich verstehen, was in den Kommentaren steht?

protected:
string m_symbol;             // Symbol
ENUM_TIMEFRAMES m_timeframe; // Zeitrahmen
bool m_eachtick;             // bei jedem Tick ausgeführt
bool m_indicator;            // Anzeige des Indikators im Diagramm
bool m_button;               // Ein/Aus-Taste anzeigen
int m_button_x;              // x-Koordinate der Schaltfläche
int m_button_y;              // die Koordinate der Schaltfläche
color m_bgcolor;             // Farbe der Schaltflächen
color m_txtcolor;            // Farbe der Schaltflächenbeschriftung
int m_shift;                 // Balkenversatz
bool m_onoff;                // ein/aus
int m_handle;                // Indikatorgriff
datetime m_lasttime;         // Zeitpunkt der letzten Ausführung des Trailing-Stops
MqlTradeRequest m_request;   // Struktur der Handelsanfrage
MqlTradeResult m_result;     // Struktur des Ergebnisses der Handelsanfrage
int m_digits;                // die Anzahl der Dezimalstellen des Preises
double m_point;              // Artikelwert
string m_objname;            // Name der Schaltfläche
string m_typename;           // Name des nachlaufenden Stopptyps
string m_caption;            // Knopfbeschriftung

Mit freundlichen Grüßen, Vladimir.