[ARCHIVO]Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No puedo ir a ningún sitio sin ti - 5. - página 48

 
TarasBY:
¡¿Estás hablando de "considerar" y DC?! ;)

No tiene nada que ver con DC.
 

He estado jugando con un Asesor Experto bastante poco sofisticado que escribí. Pero he decidido añadir a mi experto no una sino varias señales para entrar en el mercado. Pero quiero que sólo una orden por cada señal entre en el mercado.

El asunto es el siguiente. He inventado para delimitar los pedidos por Magic. La búsqueda de pedidos tendría el siguiente aspecto:

//+-------------------------------------------------------------------------------------+
//| Поиск своих ордеров                                                                  |
//+-------------------------------------------------------------------------------------+
int FindOrders(int magic)
{
  int t;                                                 // Количество открытых позиции (buy's + sell's)
  int total = OrdersTotal() - 1;
  
  for(int i=total; i>=0; i--)
  {
    if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
      if(OrderMagicNumber() == magic && OrderSymbol() == Symbol())
      {
        t++;
      }
  }
  
  return(t);
}

A continuación... necesitamos abrir órdenes para cada tipo de señal con su propio Magic. Por ejemplo, para las ventas lo tenía así antes:

//+-------------------------------------------------------------------------------------+
//| Открытие коротких позиций                                                           |
//+-------------------------------------------------------------------------------------+
bool OpenSell()
{
  int ticket = -1;
  string myNote = "Сов шортанул";
  
  ticket = OrderSend(Symbol(),OP_SELL,0.1,Bid,i_slippage,0,0,myNote,magic,0,Red);
    return(true);
  
  return(false);
}

En este punto, he decidido utilizar el operador switch, ¿es razonable utilizar este operador en este caso?

//+-------------------------------------------------------------------------------------+
//| Открытие коротких позиций                                                           |
//+-------------------------------------------------------------------------------------+
bool OpenSell()
{
  int ticket = -1;
  string myNote = "Сов шортанул";
  
    switch(maState)
  {
    case 4:    ticket = OrderSend(Symbol(),OP_SELL,0.1,Bid,i_slippage,0,0,myNote,i_myMagic6,0,Red); break;
    case 5:    ticket = OrderSend(Symbol(),OP_SELL,0.1,Bid,i_slippage,0,0,myNote,i_myMagic25,0,Red); break;
    case 6:    ticket = OrderSend(Symbol(),OP_SELL,0.1,Bid,i_slippage,0,0,myNote,i_myMagic150,0,Red); break;
    case 7:    ticket = OrderSend(Symbol(),OP_SELL,0.1,Bid,i_slippage,0,0,myNote,i_myMagic250,0,Red); break;
    default:   return(false);
  }
    return(true);
}

Y este es el aspecto de la función comercial:

//+-------------------------------------------------------------------------------------+
//| Открытие позиций                                                                    |
//+-------------------------------------------------------------------------------------+
bool Trade(int signal)
{
  if(signal == SIGNAL_BUY && FindOrders() == 0)
    if(!OpenBuy())
    return(false);
  
  if(signal == SIGNAL_SELL && FindOrders() == 0)
    if(!OpenSell())
    return(false);
    
  return(true);
}

¿Debo implementarlo a través del operador de conmutación aquí también? Estaba pensando en pasar Magic a través de parámetros formales a la función FindOrders() también, pero no sé cómo...

 
Hola. Puede calcular una posible pérdida para un tipo de cambio cruzado, por ejemplo GBPCHF, abrir una orden de 1 lote y poner un stop de 50 pip. Por lo que sé, el valor del pip depende de la moneda base, que no se sabe lo que mostrará en el futuro.
 

El valor de 1 pip de GBPCHG (si no me equivoco) para 1 lote es de 8 dólares. Así, si el precio va en contra de usted y se activa un stop-loss, se registrará una pérdida de unos 50*8=-400 dólares.

Y hay que añadir las pérdidas en el spread asc-bid (6-8 pips)...
 
Así que el coste del artículo cambia cada vez
 

Pregunta sobre MT4. He estado probando y optimizando el EA durante bastante tiempo (unos cuantos días).

Todo estaba bien. Y de repente, cuando ejecuto el EA, empieza a mostrar la entrada en cada barra y la salida inmediatamente, en definitiva, no es una estrategia, sino que el infierno sabe qué.

Probablemente en algún lugar, algo salió mal en la configuración. ¿Dónde y qué podría ser? Ayuda. plz....

 
Caesar34:
Hola.. Me pueden decir cómo hacer un período de MA o EMA con un valor negativo, cuando la configuración no permite hacerlo... ? en MT4
¿Spam?
 
Caesar34:


¡¡No!!
Entonces, ¿por qué publicar en un par de hilos con una sola pregunta?
 

La consulta iLow devuelve un valor con 4 decimales, aunque el gráfico tiene 5 decimales.

Debido a esto, el desarrollo del primer programa mql4 está atascado, ¿puede decirme cuál puede ser el problema? ¿O tal vez debería ser así?

 
PolarsLynx:

La consulta iLow devuelve un valor con 4 decimales, aunque el gráfico tiene 5 decimales.

Debido a esto, el desarrollo del primer programa mql4 está atascado, ¿puede decirme cuál puede ser el problema? ¿O tal vez debería ser así?

¿Dónde está el código?