Discussione sull’articolo "Come creare il Tuo Trailing Stop" - pagina 6

 
Nessuno dei codici postati apre le operazioni, dando errori 2021.02.08 23:43:23.200 my_first_ea_sartrailing (ES,M1) Alert: Request to set Buy order failed - error code:4756 Allo stesso tempo la richiesta di prezzi sembra essere effettiva 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


 
Grazie, ottimo articolo molto dettagliato.
 

Sembra che questa sia una discussione morta, ma inserirò i miei commenti.


Ci sono un paio di errori trovati durante la compilazione che devono essere risolti.

Nella richiesta ZeroMemory alla riga 116 il compilatore dice

'ZeroMemory' - toke inatteso, probabilmente il tipo è mission?

'mrequest' - dichiarazione senza tipo

Sembra che la mrequest non sia stata dichiarata correttamente con un tipo......Non sono sicuro di come risolvere questo problema.


Inoltre,


il valore di ritorno di "OrderSend" dovrebbe essere controllato. alla riga 215 e 262


Sembra che possa restituire un valore che non dovrebbe.


Qualsiasi aiuto per risolvere questi due problemi sarebbe molto apprezzato.

Chris

 

Vogliamo davvero capire cosa c'è scritto nei commenti?

classe CTrailingStop{

protetto:
string m_symbol; // simbologia
ENUM_TIMEFRAMES m_timeframe; // timeframe
bool m_eachtick; // lavora su ogni tick
bool m_indicator; // mostra l'indicatore sul grafico
bool m_button; // mostra il pulsante on/off
int m_button_x; // coridinato x del pulsante
int m_button_y; // coordinata y del pulsante
colore m_bgcolor; // colore del pulsante
color m_txtcolor; // colore della didascalia del pulsante
int m_shift; // bool m_shift; // spostamento bool
bool m_onoff; // interruttore on/off
int m_handle; // il codice dell'indicatore
datetime m_lasttime; // ora dell'ultima esecuzione del trailing stop
MqlTradeRequest m_request; // la struttura della richiesta di negoziazione
MqlTradeResult m_result; // struttura del risultato di una richiesta di compravendita
int m_digits; // numero di cifre dopo la virgola del prezzo
double m_point; // valore del punto
string m_objname; // nome del pulsante
string m_typename; // nome del tipo di trail stop
string m_caption; // didascalia del pulsante
 
Una lettura molto gratificante, grazie!
 
Ciao gente, ho cambiato OrderSend per l'oggetto Trade, molto più semplice. Inoltre l'evento viene eseguito ogni secondo, non c'è bisogno di una frequenza così veloce. L'ho cambiato in ogni 60 secondi e le prestazioni sono migliorate drasticamente.
 
Rustam Ayupov #:

Volete davvero capire cosa dicono i commenti?

protected:
string m_symbol;             // simbolo
ENUM_TIMEFRAMES m_timeframe; // timeframe
bool m_eachtick;             // viene eseguito ad ogni tick
bool m_indicator;            // mostra l'indicatore sul grafico
bool m_button;               // pulsante di accensione/spegnimento
int m_button_x;              // coordinata x del pulsante
int m_button_y;              // la coordinata del pulsante
color m_bgcolor;             // colore del pulsante
color m_txtcolor;            // colore della didascalia del pulsante
int m_shift;                 // offset della barra
bool m_onoff;                // on/off
int m_handle;                // maniglia dell'indicatore
datetime m_lasttime;         // ora dell'ultima esecuzione del trailing stop
MqlTradeRequest m_request;   // struttura della richiesta di scambio
MqlTradeResult m_result;     // struttura del risultato della richiesta di compravendita
int m_digits;                // il numero di cifre decimali del prezzo
double m_point;              // valore dell'elemento
string m_objname;            // nome del pulsante
string m_typename;           // nome del tipo di trailing stop
string m_caption;            // iscrizione del bottone

Saluti, Vladimir.