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

 
Mepkypuu писал(а) >>
¿Pueden decirme por qué no funciona esta función? Debe devolver el número de órdenes pendientes desde la última orden exitosa.

Suponiendo que no haya más de un puesto abierto a la vez, se puede hacer lo siguiente

  int GetLosses ()
   {  
      int Out       = 0;
      int Counter;
      for ( Counter=OrdersHistoryTotal()-1; Counter >=0 ; Counter--)
      {
         OrderSelect( Counter, SELECT_BY_POS, MODE_TRADES);
         if (OrderProfit() > 0)  break;
         Out++;
      }  
      return ( Out);
   }
 
Vinin >>:

Если предположить что одновременно открыто не более одной позиции, то можно сделать так


Por desgracia, no funciona: sólo cuenta las órdenes abiertas. Yo mismo no sé cuál es el problema, pero probablemente no esté en el código.
 
Mepkypuu писал(а) >>

Por desgracia, no funciona: sólo cuenta las órdenes abiertas. No estoy seguro de cuál es el problema, pero probablemente no esté en el código.

Lo siento

  int GetLosses ()
   {  
      int Out       = 0;
      int Counter;
      for ( Counter=OrdersHistoryTotal()-1; Counter >=0 ; Counter--)
      {
         OrderSelect( Counter, SELECT_BY_POS, MODE_HISTORY);
         if (OrderProfit() > 0)  break;
         Out++;
      }  
      return ( Out);
   }
 
Cuando desapareció el historial de operaciones me ofrecieron poner *mostrar todo el historial* pero no existe tal ajuste, el terminal es el 4º metatrader, utilizado por varios DT.
 
kraizislot писал(а) >>
Cuando desaparece el historial de transacciones, me sugirieron que pusiera *mostrar todo el historial* pero no existe tal ajuste, el terminal es el 4º metatrader, utilizado por varios DT.

En la ventana del historial de la cuenta, haga clic con el botón derecho y seleccione todo el historial

 
Buenas tardes, tengo la siguiente pregunta. La función start() en EA se ejecuta después de cada tick. ¿Qué sucederá si he enviado una solicitud de OrderSend(), pero la respuesta llegó dos minutos más tarde, y mientras tanto llegaron algunos ticks? Supongo que la ejecución no volverá a empezar, por ejemplo, en otro hilo, etc., hasta que la función start() termine? Es decir, ¿no habrá una situación en la que envíe diez solicitudes más durante estos 2 minutos? ¿O no será posible ejecutar OrderSend() varias veces, porque el hilo comercial estará ocupado o algo así? Gracias
 
Maxim_M писал(а) >>
Hola, tengo la siguiente pregunta. La función start() en el Asesor Experto se ejecuta después de cada tick. ¿Qué ocurrirá si he enviado una petición OrderSend(), pero la respuesta llega dos minutos después, y durante este tiempo hay varios ticks? Supongo que la ejecución no volverá a empezar, por ejemplo, en otro hilo, etc., hasta que la función start() termine? Es decir, ¿no habrá una situación en la que envíe diez solicitudes más durante estos 2 minutos? ¿O no será posible ejecutar OrderSend() varias veces, porque el hilo comercial estará ocupado o algo así? Gracias

hasta que la función de inicio termine, el Asesor Experto no esperará los ticks, por lo que no se procesarán los nuevos ticks que se pierdan antes de que termine la solicitud actual.

 
Vinin >>:

Сорри

  int GetLosses ()
   {  
      int Out       = 0;
      int Counter;
      for ( Counter=OrdersHistoryTotal()-1; Counter >=0 ; Counter--)
      {
         OrderSelect( Counter, SELECT_BY_POS, MODE_HISTORY);
         if (OrderProfit() > 0)  break;
         Out++;
      }  
      return ( Out);
   }



¡Ah! ¡Claro! ¡Muchas gracias! Ahora funciona.

 
En el indicador Fractales los fractales se muestran a una determinada distancia de los extremos, ¿cómo se puede hacer esto en un indicador personalizado?
 
sanyooooook писал(а) >>
En el indicador Fractals los fractales se dibujan a una determinada distancia de los extremos, ¿cómo hacer eso en un indicador personalizado?

En la 3ª o 4ª vela se pone un fractal en el buffer del indicador, si se cumplen las condiciones