Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 1365

 

Quale pensi sia il calcolo migliore:

//+------------------------------------------------------------------+
//| Расчет цены                                                      |
//+------------------------------------------------------------------+
int CNewBar::PriceHL2(void)
  {
   double pr;
   int res=ArrayResize(this.m_pr_hl2,this.m_rt);
   for(int b=this.m_rt-this.m_pc; b>0; b--)
     {
      pr=MathAbs((iHigh(this.m_symbol,this.m_timeframe,b) + iLow(this.m_symbol,this.m_timeframe,b))/2);
      m_pr_hl2[this.m_rt-b]=pr;//<0 ? NULL : pr;
     }
   return(res);
  }

O è meglio tirare fuori attraverso

int  CopyHigh( 
int  CopyLow( 
 
L'indicatore iCustom può essere visualizzato nella versione web del terminale?
 

Come dichiarare una classe per rendere d[].m[]; pubblica la classe

class CSMA_Greed : public CObject
  {
   CMAOnArray        chsma;
   struct SDoubleArray { double       m[];};
   string            m_symbol;
   ENUM_TIMEFRAMES   m_timeframe;
   int               m_max_period;
   int               rt,prv;
   double            temp;
   string            Symbol(void)         { return this.m_symbol;    }
public:
   SDoubleArray      d[];
                     CSMA_Greed(const string symbol,const ENUM_TIMEFRAMES timeframe,const int max_period);
                    ~CSMA_Greed(void){};
   void              Init(int MaxMAperiod);
   void              Solve(const int aRatesTotal,const int aPrevCalc,const double  &aData[]);
  };

Si è scoperto che c'è un array, ma non riesco a tirarlo fuori

cg.d[1199].m[3720]
 

Interessante

Creato in OnInit()

   CNewBar *nb = new CNewBar(Symbol(), n_period);
      if(nb==NULL)
         continue;
      if(!list_new_bar.Add(nb))
        {
         delete nb;
         continue;
        }


Per favore, ditemi se la dichiarazione del parametro nelle funzioni successive appesantisce il sistema

CNewBar* nb = list_new_bar.At(i);
      if(nb == NULL)
         continue;
 
Mikhail Toptunov #:

Interessante

Creato in OnInit()


Per favore, ditemi se dichiarare un parametro in funzioni successive appesantisce il sistema

No. Nelle funzioni successive non si crea un nuovo oggetto, si ottiene semplicemente un puntatore all'oggetto già creato in OnInit() dalla lista.

 
Salve. Come posso formulare una condizione per aprire un trade in mql5? Condizione: il prezzo non è cambiato nelle ultime N barre su un certo timeframe.
 
Saluti!
Non mi sono collegato a MetaTrader 5 per oltre tre mesi (ero in viaggio d'affari senza connessione). Ora non posso più accedere al mio account.
Come posso utilizzare di nuovo l'account? O almeno ritirarne i fondi?
 
knoughr #:

Da qualche parte su un pezzo di carta hai il sito web del broker, il nome utente e la password per entrare nel tuo conto personale. Questo è il pezzo di carta su cui hai scritto attentamente tutte queste informazioni quando ti sei registrato. Ne hai uno, vero? Poi è facile - puoi fare tutto quello che hai bisogno di fare nel tuo ufficio personale: fare depositi, prelievi, aprire nuovi conti, cambiare la password su quelli vecchi.

E se non lo fai - che non si nasconde, non è colpa mia.
 

Qualcuno può dire come trovare il valore massimo o minimo in un array se l'array ha valori vuoti definiti comeEMPTY_VALUE.


Quindi questa funzione non funziona.

//+------------------------------------------------------------------+
//| Получим High для заданного номера бара                           |
//+------------------------------------------------------------------+
double CNewBar::iHighMax(int ot,int bands)
  {
   double result=-1;
   result=m_ExtLowerBuffer[ArrayMaximum(m_ExtLowerBuffer,ot,bands)];
   return(result);
  }

Se cambio EMPTY_VALUE con NULL, anche questo non funziona.

Forse c'è un workaround più facile per il sistema, altrimenti proverò a risolvere il puzzle cinese).

Grazie in anticipo, persone gentili.

 
Mikhail Toptunov #:

Qualcuno può suggerire come trovare il valore massimo o minimo in un array se l'array ha valori vuoti definiti comeEMPTY_VALUE.


Quindi questa funzione non funziona.

Se cambio EMPTY_VALUE con NULL, anche questo non funziona.

Forse c'è un workaround più facile per il sistema o proverò a fare un puzzle cinese).

Grazie in anticipo, persone gentili.

Per quanto ho capito avete bisogno di trovare il valore massimo dell'indicatore che non sarà mai uguale a zero.

Odio il NULL e applico sempre lo 0,0 nei valori numerici che non fallisce mai.