[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 45

 
Stells:

Buenas tardes.

Por favor, ayúdenme a extraer los valores de Up_Line y Down_Line del indicador ExTrendv2 (adjunto) al Asesor Experto.

Lo estoy intentando de la siguiente manera:

Para Up_Line iCustom(NULL, 0, "ExTrendv2", 0, 0,1)

para Línea_baja iCustom(NULL, 0, "ExTrendv2", 0, 1,1)

no lo hace.


¿Un EA con ese indicador no cuelga el terminal?
 

Parece que no se cuelga en el probador.

Sólo que sigo sin poder sacar los valores, no tiene ningún sentido.

 
Hola, estoy tratando de probar el Asesor Experto en un símbolo y 4 marcos de tiempo al mismo tiempo - Tengo un pequeño problema - error 129 - precio incorrecto tanto en la apertura como en el cierre, el hilo de comercio parece estar separado antes de enviar orer y while(IsTradeContextBusy() || !IsTradeAllowed()){int Interval = MathRand()+1000;
Print("El hilo de comercio está ocupado. Repita la comprobación en "+DoubleToStr((Interval/1000),0)+" seg");
Sleep(Interval);} RefreshRates(); ¿Alguien sabe qué es esto y cómo manejarlo?
 
Stells:

Parece que no se cuelga en el probador.

Sólo que sigo sin poder sacar los valores, no tiene ningún sentido.


Inténtalo de esta manera, no hay parámetros.

Up_Line iCustom(  NULL, 0, "ExTrendv2", 0,1);
Down_Line iCustom(NULL, 0, "ExTrendv2", 1,1);

Aunque el indicador recalcula todo en cada tick.

 
Dimoncheg:
Hola a todos, estoy tratando de probar el Asesor Experto en un símbolo y 4 marcos de tiempo al mismo tiempo - Tengo un pequeño problema - error 129 - precio incorrecto tanto en la apertura como en el cierre, el hilo de comercio parece estar separado antes de enviar orer y después del cierre while(IsTradeContextBusy() || !IsTradeAllowed()){int Interval = MathRand()+1000;
Print("El hilo de comercio está ocupado. Repita la comprobación en "+DoubleToStr((Interval/1000),0)+" seg");
Sleep(Interval);} RefreshRates(); ¿Alguien sabe qué es esto y cómo manejarlo?
ERR_INVALID_PRICE 129 Precio incorrecto


Normalizar el precio a Dígitos antes de enviar la solicitud al servidor

 
Vinin:


Inténtalo de esta manera, no hay parámetros

Aunque el indicador hace un recálculo completo en cada tick.

Me arrepiento de haberla puesto en el gráfico. El terminal se puso a pensar profundamente, y después de 15 minutos lo maté
 
artmedia70:
ERR_INVALID_PRICE 129 Precio incorrecto


Normalizar los precios a Dígitos antes de enviar la solicitud al servidor



Los precios son, por supuesto, normalizados por NormalizeDouble(Ask,Digits) y NormalizeDouble(Bid,Digits), para el envío de órdenes probé también la función de Igor Kim, que está aquí - ocurre el mismo error, porque la función no la procesa, sólo intenta enviar la orden cinco veces y ya está. El error no se produce en cada orden de envío de un pedido, la mayoría de los pedidos siguen abiertos. Tengo la sensación de que este problema tiene algo que ver con el flujo de operaciones ya que en cierto caso el error se produce cuando el EA quiere enviar varias órdenes simultáneamente en diferentes timeframes de un mismo símbolo y una suele ser enviada, mientras que el resto no tiene éxito con este error.
 
Dimoncheg:

Los precios son, por supuesto, normalizados por NormalizeDouble(Ask,Digits) y NormalizeDouble(Bid,Digits), para el envío de órdenes probé también la función de Igor Kim, que está aquí - ocurre el mismo error, porque la función no la procesa, sólo intenta enviar la orden cinco veces y ya está. El error no se produce en cada orden de envío de un pedido, la mayoría de los pedidos siguen abiertos. Tengo la sensación de que este problema tiene algo que ver con el flujo de operaciones ya que en cierto caso el error se produce cuando el EA quiere enviar varias órdenes simultáneamente en diferentes timeframes de un mismo símbolo pero una orden suele enviarse pero las otras fallan.

Inmediatamente antes de utilizar Ask y Bid, realice RefreshRates()
 
//-------------------------------------------------------------------+
extern int    TotalOrders    = 1;
//-------------------------------------------------------------------+
// Global variables
int Cnt = 0;              // counter variable, used in for() loops
    // only perform analysis and open new order if we have not reached our TotalOpenOrders max
    if(TotalOpenOrders() < TotalOrders)
    {
//+------------------------------------------------------------------+
//|-----------------------//  Orders Count  //-----------------------|
//+------------------------------------------------------------------+
// This function returns the total amount of orders the expert advisor has open  
int TotalOpenOrders()
{
  Cnt=OrdersTotal();
  int TotalOpenOrders = 0;
  if(Cnt==0)
  {
    return(0);
  }
    else
    {
    for(;Cnt>=0;Cnt--)
    {
      RefreshRates();
      OrderSelect(Cnt,SELECT_BY_POS);
      if(OrderMagicNumber()==Magic)
      {
      TotalOpenOrders++;
      }
    }
  }
  return(TotalOpenOrders);
}
 
artmedia70:
Me arrepiento de haberla puesto en el gráfico. El terminal se puso a pensar profundamente, después de unos 15 minutos lo maté

No se mira el código antes de poner algo.
Razón de la queja: