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

 
Roman Sharanov:

Ho creato una variabile in privato

Cerco di lavorarci in un metodo di classe

dice che la variabile non è dichiarata

???

Dov'è il codice?

 
Artyom Trishkin:

Dov'è il codice?

la funzione non deve essere accessibile da codice esterno

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class newC
  {
private:
   int var;
public:
                     newC(int var);
                    ~newC();
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
newC::newC(int var)
  {
      this.var = var;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
newC::~newC()
  {
  }
//+------------------------------------------------------------------+
double varSqrt(){
   return MathSqrt(var);
}
 
Roman Sharanov:

Ho creato una variabile in privato

Cerco di lavorarci in un metodo di classe

dice che la variabile non è dichiarata

???

Artyom Trishkin:

Ma non è giusto.

Chi impedisce di usare un array dinamico nei calcoli? La dimensione di una matrice dinamica (se NON è un buffer indicatore, che è monitorato da un sottosistema) devi guardare tu stesso, e se necessario, cambiare la sua dimensione. Un array statico ha sempre una dimensione fissa - tutto dipende dal compito da svolgere.

Cos'è questa sciocchezza ingiustificata? Gli indicatori, nella loro grande maggioranza, calcolano e mostrano solo la quantità necessaria e sufficiente di dati calcolati. Sempre, in ogni momento, su ogni tick.

Di cosa stai parlando? L'ignoranza? Allora è meglio rimanere in silenzio. Poi la gente dirà di averlo letto sul forum ufficiale di MK. Sta creando deliberatamente una bugia?

Artem! Non annoiarmi.

Nessuno vi impedisce di usare un array dinamico nei vostri calcoli.

Ma!!! Durante i calcoli il processore è occupato, e non ci sarà alcuna scrittura nell'array dinamico.

Quindi qualsiasi dato che arriva in una matrice dinamica durante i calcoli viene automaticamente ignorato. (A volte mettono la protezione, e li scrivono in un buffer).

Spero che questo sia chiaro?

Ecco perché tutti i dati sugli array dinamici sono distribuiti su array statici, in modo che nessun dato venga perso mentre il processore lavora.

Ed è per questo che tutti i calcoli dovrebbero essere eseguiti in array statici!

Naturalmente, la dimensione degli array statici dovrebbe essere impostata "al risparmio". Questo è ovvio.

Ma si può calcolare in essi per tutto il tempo che si vuole. Niente andrà perso nel processo.

Spero che questo sia chiaro.

 
Roman Sharanov:

la funzione deve essere inaccessibile dal codice esterno

Dov'è il metodo pubblico per accedere a var?

Va più o meno così:

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class newC
  {
private:
   int var;
public:
   int               Var(void)      const { return this.var; }
                     newC(int var);
                    ~newC();
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
newC::newC(int var)
  {
      this.var = var;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
newC::~newC()
  {
  }
//+------------------------------------------------------------------+
double varSqrt(){
   return MathSqrt(var);
}
//+------------------------------------------------------------------+

Si usa il metodo Var() per ottenere var;

 
neverness:

Artem! Non annoiarmi.

Nessuno vi impedisce di usare un array dinamico nei vostri calcoli.

Ma!!! Il processore è occupato durante i calcoli e non ci sarà alcuna scrittura nell'array dinamico.

Quindi qualsiasi dato che arriva in una matrice dinamica durante i calcoli viene automaticamente ignorato. (A volte mettono la protezione, e li scrivono in un buffer).

Spero che questo sia chiaro?

Ecco perché tutti i dati sugli array dinamici sono distribuiti su array statici, in modo che nessun dato venga perso mentre il processore lavora.

Ed è per questo che tutti i calcoli dovrebbero essere eseguiti in array statici!

Naturalmente, la dimensione degli array statici dovrebbe essere impostata "al risparmio". Questo è ovvio.

Ma potete calcolarci dentro tutto il tempo che volete. Niente andrà perso nel processo.

Spero che sia chiaro.

Stronzate.

 
Artyom Trishkin:

Dov'è il metodo pubblico di accesso a var?

Funziona così:

Usate il metodo Var() per ottenere var;

così sarà poi accessibile dal codice esterno? Ho bisogno di queste variabili solo all'interno della classe

 
Roman Sharanov:

così sarà poi accessibile da codice esterno? Ho solo bisogno che queste variabili siano prodotte all'interno della classe

Dove è definito questo metodo?

//+------------------------------------------------------------------+
double varSqrt(){
   return MathSqrt(var);
}
//+------------------------------------------------------------------+
 
Artyom Trishkin:

Dove è definito questo metodo?

di seguito nel file di classe

 

Если говорить об индикаторах, то индикаторы (вообще говоря!) следует вычислять. Но в МТ4/МТ5 мы этого не наблюдаем!

Che sciocchezza infondata è questa? Gli indicatori, nella loro grande maggioranza, non fanno altro che calcolare e visualizzare la quantità necessaria e sufficiente di dati calcolati. Sempre, in ogni momento, su ogni tick.

Cosa sono tutte queste sciocchezze? Per ignoranza? Allora è meglio rimanere in silenzio. Poi la gente dirà di averlo letto sul forum ufficiale di MK. Sta creando deliberatamente una bugia?

Artem!

Ci sono array statici negli indicatori MT4/MT5 ?????????????????????

In quale, vorrei sapere?

Che tipo di difetto? - Te l'ho detto subito - se ce n'è uno, dimmi dove?

Tutti gli indicatori di MT4/MT5 che conosco sono dinamici.

Sì, il monitoraggio di tutto il tempo. Sì, ad ogni spunta.

Ma questi sono array dinamici, non statici.

E non c'è nessun "disturbo" qui.

 
Artyom Trishkin:

Stronzate.

Beh, se è una sciocchezza, è provata dall'esperienza.

Non solo "sciocchezze teoriche"!!!

- Se i calcoli sono abbastanza lunghi, i tick non vengono scritti nell'array di dati coinvolti.

QUESTO È UN FATTO!!!