Preguntas de los principiantes MQL4 MT4 MetaTrader 4 - página 258

 
OlgaKom #:

Hola a todos.

Puede alguien decirme cómo obtener el valor del precio del tick y el tamaño del tick correctamente

Al obtener esto para el símbolo

A veces los valores recibidos difieren de los reales.

¿Alguien sabe con qué tiene que ver esto?

En el 4 puede que no funcione correctamente si la moneda del depósito no es el USD y no hay conversiones requeridas en la visión general del mercado. El precio de los puntos en moneda de depósito y los volúmenes de depósito simplemente no se pueden calcular, no hay datos.

Para ser bueno y correcto - si el depósito por ejemplo en RUB, entonces TODOS los pares de rublos disponibles deben ser incluidos. Y es mejor mantener los depósitos en las principales monedas, USD/EUR/JPY. Los menores son sólo para la desesperación.

PS/ Si el depósito no está en USD: El instrumento tiene propiedades SYMBOL_CURRENCY_PROFIT,BASE,MARGIN - antes de operar/analizarlo, añada los pares apropiados con ACCOUNT_CURRENCY, a través de SymbolSelect(). De antemano.

PPS/ Yo tuve una situación así sólo en la 4... es que aún no tenía cuentas exóticas en la 5 :-) no diré nada al respecto

 

No entiendo por qué los niveles de negociación no se muestran en algunos símbolos y no hay posibilidad de establecer la negociación con un solo clic.

 
Hola, tengo una pregunta sobre el terminal MT4. Llevo varios años trabajando con MT4, pero nunca me he encontrado con algo así. No sé qué hacer cuando estoy trabajando en mi PC y no lo tengo en los terminales que están en un servidor remoto.
 

¡¡¡¡Buenas tardes!!!!

Por favor, ayúdenme a cambiar una función que calcula sólo las pérdidas de las órdenes no rentables en una parrilla de órdenes

//+----------------------------------------------------------------------------+
//| Калькуляция убыточных ордеров                                              |
//+----------------------------------------------------------------------------+
double Loss()
  {
   double oLoss = 0;
   for(int i = OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
        {
         if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
           {
            if(OrderType() == OP_BUY || OrderType() == OP_SELL)
              {
               if(OrderProfit()<0)
                 {
                  oLoss += OrderProfit();
                 }
              }
           }
        }
     }
   return(oLoss);
  }

Necesitamos cambiar la función que calcula sólo el tamaño mínimo del lote de cada orden en la red de órdenes. Lote mínimo=0,01

¡¡¡¡Gracias!!!!

 

Buenos días! Acabo de empezar a aprender MQL4 y estoy tratando de desarrollar un Asesor Experto basado en los datos del indicador renko bricks v2. El problema es que el EA con cálculos simples parece ser muy lento en el probador. Funciona pero va muy lento. Creo que tengo poca experiencia para escribir tonterías así que pido ayuda a los mayores).

El resultado final. Expert Advisor scalper, opera en m1, espera el cambio de color del ladrillo y abre una operación en la dirección de un nuevo movimiento. A continuación adjunto el código fuente propio del asesor, y la bajada. Gracias de antemano.

Archivos adjuntos:
 
Dmitri73 #:
Hola, pregunta sobre el terminal MT4. Llevo varios años trabajando con MT4, pero nunca he visto algo así. Nunca antes había visto tal desorden.

Raro, ¿cuál es la construcción?

 

Hola. Pregunta para los expertos en codificación, ya que no encuentro respuesta a mi pregunta en ningún sitio. Estoy utilizando la función for para buscar velas, encontrar la vela correcta y obtener los datos de la misma, pero en una enumeración de velas hay varias, ¿cómo obtengo la más cercana de ellas? No lo encuentro.

int SvechaVniz()
  {
   for( a=2; a<55; a++)
     {
      if(iClose(Symbol(),TF_1,a)<iOpen(Symbol(),TF_1,a))
        {
         dn=a;
         dn_o=iOpen(Symbol(),TF_1,dn);
         dn_h=iHigh(Symbol(),TF_1,dn);
         dn_l=iLow(Symbol(),TF_1,dn);
         dn_c=iClose(Symbol(),TF_1,dn);
         Print(dn);
         в переменную dn приходит несколько индексов свечей, как их перебрать и выбрать ближайший?
        }
     }
   return(0);
  }
 
Александр Вараксин #:

Hola. Pregunta para los expertos en codificación, ya que no encuentro respuesta a mi pregunta en ningún sitio. Estoy utilizando la función for para buscar velas, encontrar la vela correcta y obtener los datos de la misma, pero en una enumeración de velas hay varias, ¿cómo obtengo la más cercana de ellas? No lo consigo.

Si se inicia el ciclo desde la última vela, la última "vela necesaria" será con el índice más cercano.

for( a=55; a>2; a--)
 
Александр Вараксин #:

Hola. Pregunta para los expertos en codificación, ya que no encuentro respuesta a mi pregunta en ningún sitio. Estoy utilizando la función for para buscar velas, encontrar la vela correcta y obtener los datos de la misma, pero en una enumeración de velas hay varias, ¿cómo obtengo la más cercana de ellas? No lo encuentro.

Puedes hacerlo así:

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   
Alert("индекс свечи = ",SvechaVniz(0)); 
   
  }
//+------------------------------------------------------------------+

int SvechaVniz( int n=0)
  {  
  int  k=0;
  
   for(int a=0; a<55; a++)
     {
      if(iClose(Symbol(),0,a)<iOpen(Symbol(),0,a))
        {
         k++;
         if (k>n) return(a);
        }
     }
   return(0);
  }

La función devuelve el índice de la vela que necesita,

El 0 es el más cercano, el 1 es el siguiente.

 
Alekseu Fedotov #:

Puedes hacerlo así:

La función devuelve el índice de la vela que desea,

El 0 es el más cercano, el 1 el siguiente.

Gracias, lo probaré.