Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 496

 
artmedia70:
De nada.

No seas modesto, de nada, me has ahorrado mucho tiempo...
Le deseo lo mejor y buena suerte.
 
artmedia70:
Y pedir int b


¿por qué int? Según el manual, ObjectGet debe ser de tipodouble, y en la función iBarShift b debe ser de tipo datetime
 
rustein:

Gracias, ¿entonces cambiaste ErrNum por ErrNumber y ya está? La advertencia ha desaparecido, todo funcionará correctamente?


string ErrorDescription(int ErrNumber)
{
  switch (ErrNumber)
  {
Puedes ver que estás "en el tanque"... :)))
 
¿cómo puedo dibujar una línea horizontal entre dos puntos y una línea vertical? ..... te digo que necesito un rectángulo para dibujar a un precio y un intervalo de tiempo determinados
 

Ayúdame a encontrar un error... Los nombres de las funciones dicen que debería hacer...

extern double LOT         = 0.1;
extern int Magic          = 77;
extern double MartinStep  = 1.5;


double GetLastOrderProfit()
{
  int time = 0; double profit = 0; 
  for(int i = OrdersHistoryTotal()-1; i>=0; i--)
  {
    if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
    {
      if(OrderSymbol() == Symbol()&& OrderMagicNumber() == Magic)
      {
        if(time<OrderCloseTime())
        {
          time=OrderCloseTime();
          profit=OrderProfit();
        }
      }
    }
  }
  return(profit);
}

//+------------------------------------------------------------------+
double GetLastLot()
{
  int time = 0; double Lot = 0; 
  for(int i = OrdersHistoryTotal()-1;i>=0;i--)
  {
    if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
    {
      if(OrderSymbol() == Symbol()&& OrderMagicNumber() == Magic)
      {
        if(time<OrderCloseTime())
        time=OrderCloseTime();
        Lot = OrderLots(); 
      }
    }
  }

  if(Lot <= 0) Lot = LOT;

  return(Lot);
}

//+------------------------------------------------------------------+
double GetLastTenOrdersProfit()
{
  double profit = 0; int count = 0; 
  for(int i = OrdersHistoryTotal()-1;i>=0;i--)
  {
    if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
    {
      if(OrderSymbol() == Symbol()&& OrderMagicNumber() == Magic)
      {
        if (count<10)
        {
          profit=profit+OrderProfit();
          count++;
        } 
      }
    }
  }

  return(profit);
}
//+------------------------------------------------------------------+
double GetLot()
{
  double Lot = 0; double n = GetLastLot();
  
  if (GetLastTenOrdersProfit() < 0 || GetLastOrderProfit() < 0)
  Lot = NormalizeDouble (n * MartinStep,2);
  
  if (GetLastTenOrdersProfit() >= 0 && GetLastOrderProfit() >= 0 )
  Lot = LOT;
  
  return (Lot);
}

 

¿Por qué no puedo mostrar un comentario del EA? No puedo ver nada en absoluto.

void OnTick()
{
//---
Comentario
("\n ",TimeToStr(Time[1]));
}

 
Alexandr24:

¿Por qué no puedo mostrar un comentario del EA? No puedo ver nada en absoluto.

void OnTick()
{
//---
Comentario
("\n ",TimeToStr(Time[1]);
}


¿En el probador o en el gráfico?
 
En el tester aparece pero la gráfica está vacía, sospecho que es porque está apagada, pero es raro.
 
Exactamente, un día libre, sin garrapatas, nada extraño.
 
Alexandr24:

¿Por qué no puedo mostrar el comentario en el EA? No se muestra nada en absoluto.

void OnTick()
{
//---
Comentario
("\n ",TimeToStr(Time[1]);
}


Salgo todo, pero no uso funciones, uso un solo bucle al principio, en el que todo está definido y calculado.

¡Enel comentario, todo a través de DoubleToStr()! Y las funciones se ralentizan innecesariamente.

Razón de la queja: