[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. No puedo ir a ningún sitio sin ti - 4. - página 382

 
vitor:
Lo siento, pero antes trabajaba en Rumuse y ahora estoy aprendiendo MT4. Sigo siendo un "Dummie" aquí . 11 .09 . No puedo empezar las citas. Por favor, dígame qué es lo que está mal. Estaré encantado de ayudarle.
Abre una nueva cuenta demo, si no funciona reinstala el terminal.
 
Hola, me pueden decir cómo desactivar un EA si una orden abierta por el mismo EA es cerrada por un trader, o por SL o TP.
 
eropov:
Hola, me pueden decir cómo desactivar un EA si una orden abierta por el mismo EA es cerrada por un trader o por SL o TP.
Ya ves, eso es lo que son los asesores, no tienes que aconsejarles... y si una orden está abierta, no te preocupes, el tío Kolya vendrá y lo cerrará todo.
 

BeerGod

Понимаете, советники на то и советники, что не нужно им советовать... а если ордер открыт, то не переживайте, дядя Коля прийдет и всё закроет.

Entonces, ¿no es posible impedir que el EA funcione?

 
eropov:

BeerGod

¿Entonces no es posible detener el EA?

Desactivar el EA pulsando el botón en el terminal, y la orden no se puede retroceder por supuesto, cerrarlo manualmente.


 

BeerGod

Desactivar el EA pulsando el botón en el terminal y la orden no se puede retroceder, por supuesto, cerrarlo manualmente.

Estoy escribiendo un búho que abre una orden con SL y TP.

Necesito una condición que si una orden es cerrada por TP o cerrada por un trader tenga que parar el EA. ¿Cómo se implementa esto de forma programada?

 

Ayúdame a resolver el problema, ¿por qué si el bucle tiene sólo 2 pasadas i primero es igual a 0 y luego inmediatamente es igual a 4?

for(i=0,g=0,c=0;i<OrdersTotal();i++)
    {
    if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == false) break;
    if(OrderMagicNumber() == MasterMagicNumber)
      {
      starttime = OrderOpenTime();
      ArrayResize(prices,ArraySize(prices)+TradesCount);
      if(OrderSelect(i+1,SELECT_BY_POS,MODE_TRADES))
      if(OrderMagicNumber() == MasterMagicNumber) endtime = OrderOpenTime();
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      times[i] = starttime;
      times[i+1] = endtime;
      tickets[i] = OrderTicket();
      symbol = OrderSymbol();
      Alert(i);
      while(g < TradesCount*(i+1))
        {
        if(OrderType() == OP_BUY)
          {
          if(g == TradesCount*i)
            {
            prices[g] = OrderOpenPrice()-LowOpen*Point;
            }else
            {
            prices[g] = prices[g-1]-step*Point;
            }
          }
        if(OrderType() == OP_SELL)
          {
          if(g == TradesCount*i)
            {
            prices[g] = OrderOpenPrice()+HighOpen*Point;
            }else
            {
            prices[g] = prices[g-1]+step*Point;
            }
          }
        g++;
        }
      }
    }

A partir de este script la alerta sale 0, 4.

 
Помогите решить задачу, почему если в цикле всего 2 прохода i сначала равна 0, а затем сразу равна 4?

Por lo que entiendo el código

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == false) break;

hace un break, lo que significa que vamos al principio del bucle y aumentamos i según la condición del bucle

probablemente así

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == false) {i--; break; }

 
Buenas tardes, ¿podríais decirme si existe un EA sencillo basado en dos medias? Sin filtros, trailing stops ni nada parecido. Es decir, si el corto se cruza con el largo desde abajo hacia arriba, se abre una orden de compra y se cierra una orden de venta; y viceversa, si el corto se cruza con el largo desde arriba hacia abajo, se abre una orden de venta y se cierra una orden de compra.
 
first_may:
Buenas tardes, ¿podríais decirme si existe un EA sencillo basado en dos medias? Sin filtros, trailing stops ni nada parecido. Es decir, si el corto se cruza con el largo desde abajo hacia arriba, se abre una orden de compra y se cierra una orden de venta; y viceversa, si el corto se cruza con el largo desde arriba hacia abajo, se abre una orden de venta y se cierra una orden de compra.
Véase la base de código en la sección de EAs.