Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
La soluzione proposta non ha colpito nient'altro finora. Pertanto, non potrei suggerire di meglio.
Se si mette la soluzione davanti all'SB ora, diventa sincronizzata.
#include <Trade\Trade.mqh>
Posso avere un piccolo esempio? Quando si collegano le classi - la tua e quella di SB:
#include <Trade\Trade.mqh>
Entrare nel tema)
Preso da qui
Entrare nel tema)
Preso da qui
Ho appena scambiato le linee...
Posso fare un piccolo esempio? Quando si collegano le classi - la tua e quella di SB:
#include <Trade\Trade.mqh>
Mi sto addentrando nell'argomento).
Sì, ho dimenticato questa sfumatura. Tuttavia, questa restrizione non esiste più...
Se si riorganizzano gli inludi, non giurerà, ovviamente. Ma l'effetto sarà nullo - SB non sarà sincronizzato.
Purtroppo non vedo una bella soluzione. Finora
// Это сделает СБ синхронизированным и не потребует каких-либо изменений в экспертах.
#ifdef OrderSend
#undef OrderSend
#define CTrade CTradeBase
#include <Trade\Trade.mqh>
#undef CTrade
class CTrade : public CTradeBase
{
virtual bool OrderSend(const MqlTradeRequest &request,MqlTradeResult &result)
{
bool res;
string action="";
string fmt ="";
//--- action
if(m_async_mode)
res=::OrderSendAsync(request,result);
else
res=ORDERSEND::OrderSendSync(request,result); // единственное отличие от стандарта
//--- check
if(res)
{
if(m_log_level>LOG_LEVEL_ERRORS)
PrintFormat(__FUNCTION__+": %s [%s]",FormatRequest(action,request),FormatRequestResult(fmt,request,result));
}
else
{
if(m_log_level>LOG_LEVEL_NO)
PrintFormat(__FUNCTION__+": %s [%s]",FormatRequest(action,request),FormatRequestResult(fmt,request,result));
}
//--- return the result
return(res);
}
};
// Эта строчка позволяет сделать все OrderSend корректными.
#define OrderSend ORDERSEND::OrderSendSync
#else
#include <Trade\Trade.mqh>
#endif
Colpa mia, dichiarato con troppa sicurezza, non ho controllato.
Sì, l'avevo dimenticato. Tuttavia, questa restrizione non esiste più...
Se si riorganizzano gli inludi, ovviamente, non giura. Ma l'effetto sarà nullo - SB non sarà sincronizzato.
Purtroppo non vedo una bella soluzione. Finora, così
// Это сделает СБ синхронизированным и не потребует каких-либо изменений в экспертах.
...
Beh, cioè, per inserire la vostra classe, e Trade\Trade.mqh sarà già tirato su.
E se fosse necessario ereditare da Trade\Trade.mqh? Come?
Beh, cioè, per collegare la tua classe, e Trade\Trade.mqh sarà tirato su.
L'ereditarietà funzionerà come prima. Ma è meglio che tu chiarisca la tua domanda.
Cioè, fate di CTrade una classe base nella prima riga del vostro codice:
Come dovrebbe essere in questo caso? Invece di #include <Trade\Trade.mqh>, dovresti inserire il codice suggerito?
Eredita questo codice da CTrade.
Cioè, fate di CTrade una classe base nella prima riga del vostro codice:
Di conseguenza, non dovresti più collegare Trade\Trade.mqh al tuo programma, ma piuttosto un inluder, per esempio #include <aTradeSync.mqh> che contiene la tua classe e #include <Trade\Trade.mqh> scritto lì all'inizio.
Io non lo farei in questo modo, perché richiederebbe di cambiare gli EA scritti in precedenza. E OrderSend puro non sarà sincronizzato, solo SB-OrderSend. Non tutti usano solo SB. Alcuni usano anche MQL5 puro.
Pertanto, la soluzione seguente sembra ottimale per ora. Tutti gli EA funzioneranno senza modifiche.
#include <TradeSync.mqh> // Если подключен OrderSendSync.mqh - СБ станет синхронизированной, иначе - стандартной.
Non lo farei in questo modo, perché richiederebbe di cambiare gli EA scritti in precedenza. E OrderSend puro non sarà sincronizzato, solo SB-OrderSend. Non tutti usano solo SB. Alcuni usano anche MQL5 puro.
Pertanto, la soluzione seguente sembra ottimale per ora. Tutti gli EA funzioneranno senza modifiche.
#include <TradeSync.mqh> // Если подключен OrderSendSync.mqh - СБ станет синхронизированной, иначе - стандартной.