[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 52

 

Aquí está mi función de modificar la orden pendiente. Al modificar, establezco un nuevo precio y un nuevo stoploss. La función funciona parcialmente, pero por alguna razón el probador está recibiendo errores 1.

¿Está bien escrita mi función?

void MovingPendingOrders(/*int ticket, double newPrice*/)
{
  double priceS = NormalizeDouble((Low[1] - i_thresholdFromInput*pt),Digits);           // Новая цена открытия для OP_SELLSTOP
  double priceB = NormalizeDouble((High[1] + i_thresholdFromBasedSL*pt),Digits);        // Новая цена открытия для OP_BUYSTOP
  bool b_mod, s_mod;
  
  int total = OrdersTotal() - 1;
  int s_ticket, b_ticket;

  for(int i=total; i>=0; i--)
  {
    if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
      if(OrderMagicNumber() != i_myMagic) continue;
      {
        if(OrderType() == OP_BUYSTOP)
        {
          b_ticket = OrderTicket();
          b_mod = true;
        }
        if(OrderType() == OP_SELLSTOP)
        {
          s_ticket = OrderTicket();
          s_mod = true;
        }
      }
  }
  
  if(IsTradeAllowed())
  {
    if((b_mod) && (priceB > Ask)) OrderModify(b_ticket,priceB,priceS,0,0,Brown);
    if((s_mod) && (priceS < Bid)) OrderModify(s_ticket,priceS,priceB,0,0,Brown);
  }
  Print("MovingPendingOrders переоткрыл ордер по новой цене");
}
 
hoz:

¿Está bien escrita mi función?

 bool b_mod = false; 
 bool s_mod = false;
 
hoz:

Aquí está mi función de modificar la orden pendiente. Al modificar, establezco un nuevo precio y un nuevo stoploss. La función funciona parcialmente, pero por alguna razón el probador está recibiendo errores 1.

¿Está mi función escrita correctamente?

...y en cada tic se modifica una y otra vez. ¡?!
 
BeerGod:

Por favor, aconseje cómo hacer que un EA emita un comentario en la parte superior de un marco que cubre el gráfico para que sea más fácil de leer.

No sé cómo hacerlo ahora:

Debería ser así:

Deberíamos utilizar algún tipo de fuente. Tal vez incluso crear el suyo propio.
 
silatyt:
...y en cada tic se modifica una y otra vez. ¡?!

No sabía dónde ponerlo, desordené la lógica del Asesor Experto por inexperiencia. Para comprobar el funcionamiento, lo puse en el inicio... Sí, fue en cada tic, por eso el error. Luego, tras la función que define una nueva barra, la puse y corregí el código como me dijoTheXpert y todo salió como debía.
 

Buenas tardes. ¿Podría decirme cómo debería ser un trozo de código de EA, que es responsable de lo siguiente?

1. Recorre los parámetros uno a uno (en un rango determinado, por ejemplo de 10 a 20) del indicador, en el que se basa el EA, hasta que no se cumpla la condición de abrir la operación.

2. Si la condición después de la búsqueda no se cumple - esperar 5 minutos.

 
Buenas tardes. ¿Sabes si es posible enviar la ejecución del código de la línea 35 a la línea 18 (líneas por ejemplo) con las herramientas estándar de mql4. Una especie de salto en el código.
 
tpg_k156:
Buenas tardes. ¿Sabes si es posible enviar la ejecución del código de la línea 35 a la línea 18 con las herramientas estándar de mql4 (líneas por ejemplo). Una especie de salto en el código.

Operadores switch / if - else

y funciones

 
sergeev:

operadores switch / if - else

y funciones



¿es posible forzar que el mismo cuerpo de la función se ejecute de nuevo? como
int Gipo()                   // Пользовательская функция  
{
всякая фигня
if(получили-что-надо)
 {
 return(что-надо);
 }
else
 {
 Gipo();
 }
}
???
 
tpg_k156:

¿es posible forzar que el mismo cuerpo de la función se ejecute de nuevo? como


Sí. Se llama recursión.