Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 1365

 

Cuál crees que es el mejor cálculo:

//+------------------------------------------------------------------+
//| Расчет цены                                                      |
//+------------------------------------------------------------------+
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 es mejor sacar a través de

int  CopyHigh( 
int  CopyLow( 
 
¿Se puede mostrar el indicador iCustom en la versión web del terminal?
 

Cómo declarar una clase para que d[].m[]; sea pública

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[]);
  };

Resulta que hay una matriz, pero no puedo sacarla

cg.d[1199].m[3720]
 

Interesante

Creado en OnInit()

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


Por favor, dígame si la declaración del parámetro en las funciones posteriores carga el sistema

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

Interesante

Creado en OnInit()


Por favor, díganme si declarar un parámetro en funciones posteriores carga el sistema

No. En las funciones posteriores no se crea uno nuevo, sólo se obtiene de la lista un puntero al objeto ya creado en OnInit().

 
Hola. ¿Cómo puedo formular una condición para abrir una operación en mql5? Condición: El precio no ha cambiado en las últimas N barras en un determinado marco temporal.
 
¡Saludos!
Hace más de tres meses que no me conecto a MetaTrader 5 (estuve de viaje de negocios sin conexión). Ahora no puedo entrar en mi cuenta en absoluto.
¿Cómo puedo volver a utilizar la cuenta? ¿O al menos retirar fondos de ella?
 
knoughr #:

En algún lugar de un papel tienes la página web del broker, el nombre de usuario y la contraseña para entrar en tu cuenta personal. Este es el papel en el que anotó cuidadosamente toda esta información cuando se inscribió. Tienes uno, ¿no? Entonces es fácil: puedes hacer lo que necesites en tu oficina personal: hacer depósitos, retiros, abrir nuevas cuentas, cambiar la contraseña de las antiguas.

Y si no lo haces - que no se esconde, no es mi culpa.
 

¿Puede alguien sugerir cómo encontrar el valor máximo o mínimo en un array si el array tiene valores vacíos definidos comoEMPTY_VALUE.


Así que esta función no funciona.

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

Si cambio EMPTY_VALUE por NULL, tampoco funciona.

Tal vez haya una solución más fácil para el sistema o voy a tratar de hacer un rompecabezas chino).

Gracias de antemano, amables personas.

 
Mikhail Toptunov #:

¿Puede alguien sugerir cómo encontrar el valor máximo o mínimo en un array si el array tiene valores vacíos definidos comoEMPTY_VALUE.


Así que esta función no funciona.

Si cambio EMPTY_VALUE por NULL, tampoco funciona.

Tal vez haya una solución más fácil para el sistema, si no, intentaré resolver el rompecabezas chino).

Gracias de antemano, amables personas.

Por lo que he podido entender, necesitas encontrar el valor máximo del indicador que nunca será igual a cero.

Odio los NULL y siempre aplico 0,0 en los valores numéricos, lo que nunca falla.

Razón de la queja: