Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1622

 
makssub #:

... Lo controllerò uno di questi giorni.

Oggi o l'altro giorno?

Questo è preoccupante...

 
Roman Sharanov NULL.
Ma se semplicemente copio il codice dal primo costruttore al secondo e non lo chiamo, tutto funziona. Qual è il problema?
PapaYozh #:


Il problema è in MQL.

In queste situazioni, metto l'inizializzazione in un metodo separato che tiro da diversi costruttori.

---

C'è anche un problema con la chiamata del costruttore genitore.

Il problema sta nel non capire cosa succede quando lo si chiama:

CWave(namePref, startPrice, startTime, endPrice, endTime);

E qui è semplice. Un oggetto CWave viene creato e immediatamente distrutto))) Questo oggetto temporaneo non ha niente a che fare con l'istanza nel cui costruttore è stata fatta la chiamata))

 
Vladimir Simakov #:

Il problema è non capire cosa succede quando si fa una chiamata:

E qui è semplice. Un oggetto CWave viene creato e immediatamente distrutto). Questo oggetto temporaneo non ha niente a che fare con l'istanza nel cui costruttore è stata fatta la chiamata))

Dove hai visto il nuovo operatore?
 

Buona giornata a tutti!!!

Sto scrivendo un EA a griglia, ho bisogno di trovare un profitto solo per l'ordine con il ticket massimo e l'ordine con il ticket minimo (il minimo è per dopo), ora voglio trovare un profitto per l'ordine massimo. Allego la funzione e un'immagine che mostra il principio di apertura di una griglia di ordini. La mia domanda è: sono corretto nello scrivere la funzione per calcolare il profitto di un ordine con un biglietto massimo? Grazie in anticipo.

//+----------------------------------------------------------------------------+
//| Расчет профита максимального ордера в сетке                                |
//+----------------------------------------------------------------------------+
double GetProfitMaxOrder(int otype)
{
  int max_ticket=0;
  double max_ticket_profit = 0;
         ticket = 0;
  {
   for (int cnt = OrdersTotal() - 1; cnt >= 0; cnt--) 
    {
    if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == otype)
      {
        max_ticket = OrderTicket();
        if(max_ticket > ticket)
        {
          ticket = max_ticket;
          max_ticket_profit = OrderProfit();
        }
      }
    }
  }
  return(max_ticket_profit);
}

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

Quindi oggi o l'altro giorno?

È un po' allarmante...

Va bene. Volevo controllare subito, ma mi hanno chiamato e ho capito che non sarei tornato presto. È un bel rapporto, vero?).

 
EVGENII SHELIPOV #:

Buona giornata a tutti!!!

Sto scrivendo un EA a griglia, ho bisogno di trovare un profitto solo per l'ordine con il ticket massimo e l'ordine con il ticket minimo (il minimo è per dopo), ora voglio trovare un profitto per l'ordine massimo. Allego la funzione e un'immagine che mostra il principio di apertura di una griglia di ordini. La mia domanda è: sono corretto nello scrivere la funzione per calcolare il profitto di un ordine con un biglietto massimo? Grazie in anticipo.

//+----------------------------------------------------------------------------+
//| Расчет профита максимального ордера в сетке                                |
//+----------------------------------------------------------------------------+
double GetProfitMaxOrder(int otype)
{
  int max_ticket=0;
  double max_ticket_profit = 0;
  {
   for (int cnt = OrdersTotal() - 1; cnt >= 0; cnt--) 
    {
    if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == otype)
      {
      if(max_ticket < OrderTicket())
         {
         max_ticket = OrderTicket();
         max_ticket_profit = OrderProfit()+OrderCommission()+OrderSwap();
        }
      }
    }
  }
  return(max_ticket_profit);
}
 
Vladimir Simakov #:

Il problema è non capire cosa succede quando si fa una chiamata:

E qui è semplice. Un oggetto CWave viene creato e immediatamente distrutto). Questo oggetto temporaneo non ha niente a che fare con l'istanza nel cui costruttore è stata fatta la chiamata))


Non fare i capricci. L'essenza di ciò che accade è che si chiama un metodo che è un costruttore con un diverso set di parametri. Nessun oggetto viene creato da questo.

Una chiamata simile al costruttore, che inoltre non porterà al risultato desiderato:

this.CWave(namePref, startPrice, startTime, endPrice, endTime);
 
Buon pomeriggio. Per favore consigliate come trovare il prezzo di apertura dell'ordine più vicino al prezzo attuale. MQL4. Ha qualche esempio?
 

Ciao, potresti dirmi se ho capito bene l'espressione?

MaxMartinLot = Lot*MathPow(K_Martin,OrdersClose); - significa K_Martin , nella misura di OrdersClose ?

 
законопослушный гражданин #:

Ciao, potresti dirmi se ho capito bene l'espressione?

MaxMartinLot = Lot*MathPow(K_Martin,OrdersClose); - significa K_Martin , nella misura di OrdersClose ?

Cos'è OrdersClose?

Vedere qui