Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 1187

 
leonerd:

ma è possibile dichiarare una classe come classe base e poi, a seconda delle condizioni, sovrascriverla come una delle classi ereditate?

Il compito è quello di mantenere il nome della classe lo stesso nel codice.

Inoltre, per favore consigliate quale direttiva usare per definire il tester.

È possibile farlo in questo modo?

#include <NewsFilter.mqh>
//...
   if(MQLInfoInteger(MQL_TESTER))
      CNewsFilterTester news_filter;
   else
      CNewsFilter       news_filter;
//---
   news_filter.Init(Symbol(),MagicNumber);
 
Artyom Trishkin:

Grazie. Sì, ma qui l'oggetto news_filter risulta essere indefinito. Deve essere dichiarato globalmente per essere accessibile da qualsiasi punto del codice. Cosa fare?

CNewsFilter       news_filter;
void OnInit()
  {
  }
 
leonerd:

Grazie. Sì, ma qui l'oggetto news_filter risulta essere indefinito. Deve essere dichiarato globalmente per essere accessibile da qualsiasi punto del codice. Cosa fare?

In quali casi sarebbe indefinito?

 
Artyom Trishkin:

In quali casi sarà indefinito?

#include <NewsFilter.mqh>

void OnInit()
  {
//...
   if(MQLInfoInteger(MQL_TESTER))
      CNewsFilterTester news_filter;
   else
      CNewsFilter       news_filter;
//---
   news_filter.Init(Symbol(),MagicNumber);
  }
void OnTick()
  {
   news_filter.Check()...
  }
 

Per favore, aiutatemi a capire la logica dietro l'esecuzione di questa dichiarazione e l'espressione della sua condizione.


CTrade         m_trade;

CPositionInfo  m_position;

if(!m_trade.PositionClose(m_position.Ticket()))

Se NON chiude la posizione definita dal biglietto?

Prima ottiene un biglietto di posizione -> il programma cerca di chiudere la posizione -> il valore booleano restituito è invertito.

Giusto?

 
odyn:

Per favore, aiutatemi a capire la logica dietro l'esecuzione di questa dichiarazione e l'espressione della sua condizione.


Se NON chiude la posizione definita dal biglietto?

Prima ottiene un biglietto di posizione -> il programma cerca di chiudere la posizione -> il valore booleano restituito è invertito.

Giusto?

-> Restituisce true se la posizione con il biglietto specificato è chiusa, altrimenti false

La condizione è: se la posizione con il biglietto specificato non è chiusa...

 
Сергей Таболин:

-> Restituisce true se la posizione con il biglietto specificato è chiusa, altrimenti false

La condizione è: se la posizione con il biglietto specificato non è chiusa...

La domanda è: il programma sta cercando di chiudere la posizione o no?

 
odyn:

La domanda è: il programma cerca di chiudere la posizione o no?

Sì, è così.

 
Сергей Таболин:

Sì, lo è.

Grazie per la vostra risposta

 

Si prega di spiegare.

La funzioneOnTradeTransaction.

Deve essere per forza nell'Expert Advisor?

Se no, in quali casi dovrebbe essere incluso nel codice e perché?

Motivazione: