Questions des débutants MQL5 MT5 MetaTrader 5 - page 1365

 

Quel est, selon vous, le meilleur calcul:

//+------------------------------------------------------------------+
//| Расчет цены                                                      |
//+------------------------------------------------------------------+
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);
  }

Ou est-il préférable de se retirer par

int  CopyHigh( 
int  CopyLow( 
 
L'indicateur iCustom peut-il être affiché dans la version web du terminal ?
 

Comment déclarer une classe pour rendre public d[].m[] ; 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[]);
  };

Il s'avère qu'il y a un tableau, mais je n'arrive pas à le sortir.

cg.d[1199].m[3720]
 

Intéressant

Créé dans OnInit()

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


Veuillez me dire si la déclaration du paramètre dans les fonctions ultérieures alourdit le système.

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

Intéressant

Créé dans OnInit()


Dites-moi si le fait de déclarer un paramètre dans des fonctions ultérieures alourdit le système...

Non. Dans les fonctions suivantes, vous ne créez pas un nouvel objet, vous récupérez simplement un pointeur vers l'objet déjà créé dans OnInit() à partir de la liste.

 
Bonjour. Comment puis-je formuler une condition pour ouvrir une transaction dans mql5 ? Condition : Le prix n'a pas changé au cours des N dernières barres sur une certaine échelle de temps.
 
Salutations !
Je ne me suis pas connecté à MetaTrader 5 depuis plus de trois mois (j'étais en voyage d'affaires sans connexion). Maintenant, je ne peux plus du tout me connecter à mon compte.
Comment puis-je utiliser à nouveau le compte ? Ou au moins retirer des fonds de celui-ci ?
 
knoughr #:

Quelque part sur un bout de papier, vous avez le site web du courtier, le nom d'utilisateur et le mot de passe pour accéder à votre compte personnel. Il s'agit du morceau de papier sur lequel vous avez soigneusement noté toutes ces informations lors de votre inscription. Vous en avez un, n'est-ce pas ? Ensuite, c'est facile - vous pouvez faire tout ce dont vous avez besoin dans votre bureau personnel : effectuer des dépôts, des retraits, ouvrir de nouveaux comptes, changer le mot de passe des anciens.

Et si tu ne le fais pas - qui ne se cache pas, ce n'est pas ma faute.
 

Quelqu'un peut-il vous dire comment trouver la valeur maximale ou minimale dans un tableau si le tableau a des valeurs vides définies commeEMPTY_VALUE.


Cette fonction ne fonctionne donc pas.

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

Si je change EMPTY_VALUE en NULL, cela ne fonctionne pas non plus.

Peut-être existe-t-il une solution de contournement plus simple pour le système, sinon je vais essayer de résoudre le casse-tête chinois).

Merci d'avance, bonnes gens.

 
Mikhail Toptunov #:

Quelqu'un peut-il suggérer comment trouver la valeur maximale ou minimale dans un tableau si le tableau a des valeurs vides définies commeEMPTY_VALUE.


Cette fonction ne fonctionne donc pas.

Si je change EMPTY_VALUE en NULL, cela ne fonctionne pas non plus.

Il existe peut-être une solution de contournement plus simple pour le système ou je vais essayer de faire un puzzle chinois).

Merci d'avance, bonnes gens.

D'après ce que j'ai compris, vous devez trouver la valeur maximale de l'indicateur qui ne sera jamais égale à zéro.

Je déteste NULL et applique toujours 0.0 dans les valeurs numériques, ce qui n'échoue jamais.