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

 
Integer:

Crear un objeto gráfico en el gráfico. Si hay un objeto con un nombre determinado, entonces sale al principio de OnStart(). Para desbloquearlo, elimine el objeto manualmente.

Gracias.

Y, ¿cómo salimos? return(0); me muestra un error.

 
abeiks:

Gracias.

Y, ¿cómo salimos? return(0); me muestra un error.

Según el tipo de función. No es start() sino OnTick(), es void, así que sólo devuelve;

return;
 
r772ra:
Para comentarios sobre la impresión. si no se necesita cuando se trabaja.

Gracias. Me pueden decir cómo se puede poner un límite de tiempo al trabajo del EA en la configuración externa.

He añadido esto


int start()
{
  if(!isTradeTimeInt(21, 30, 01, 00)) return;
а в конце кода вот это
//+------------------------------------------------------------------+
//|  Описание : Возвращает флаг разрешения торговли по времени.                |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    hb - часы времени начала торговли                                       |
//|    mb - минуты времени начала торговли                                     |
//|    he - часы времени окончания торговли                                    |
//|    me - минуты времени окончания торговли                                  |
//+----------------------------------------------------------------------------+
bool isTradeTimeInt(int hb=0, int mb=0, int he=0, int me=0) {
  datetime db, de;           // Время начала и окончания работы
  int      hc;               // Часы текущего времени торгового сервера

  db=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+hb+":"+mb);
  de=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+he+":"+me);
  hc=TimeHour(TimeCurrent());
  if (db>=de) {
    if (hc>=he) de+=24*60*60; else db-=24*60*60;
  }

  if (TimeCurrent()>=db && TimeCurrent()<=de) return(True);
  else return(False);
}
 
Integer:

Según el tipo de función. Ahora no es start() sino OnTick(), es void, por lo que solo retorna;


Gracias.
 
tatianati:

Gracias. ¿Puedes decirme cómo se puede poner un límite de tiempo en la configuración externa del EA?

Añadido esto

extern int   StartHour     = 21;      // Время закрытия, часы
extern int   StartMinute   = 30;      // Время закрытия, минуты
extern int   CloseHour     = 01;      // Время закрытия, часы
extern int   CloseMinute   = 0;      // Время закрытия, минуты
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(isTradeTimeInt(StartHour,StartMinute,CloseHour,CloseMinute))
     {
     //Здесь то,,,,
     //что работает, в этом диапозоне времени
     }
  }
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//|  Описание : Возвращает флаг разрешения торговли по времени.                |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    hb - часы времени начала торговли                                       |
//|    mb - минуты времени начала торговли                                     |
//|    he - часы времени окончания торговли                                    |
//|    me - минуты времени окончания торговли                                  |
//+----------------------------------------------------------------------------+
bool isTradeTimeInt(int hb=0, int mb=0, int he=0, int me=0) {
  datetime db, de;           // Время начала и окончания работы
  int      hc;               // Часы текущего времени торгового сервера

  db=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+(string)hb+":"+(string)mb);
  de=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+(string)he+":"+(string)me);
  hc=TimeHour(TimeCurrent());
  if (db>=de) {
    if (hc>=he) de+=24*60*60; else db-=24*60*60;
  }

  if (TimeCurrent()>=db && TimeCurrent()<=de) return(True);
  else return(False);
}
 

¿Puede un EA mostrar un indicador? Alternativa a ChartIndicatorAdd en MQL5.


¿Y dónde puedo encontrar un ejemplo de un EA que realice cálculos basados en un indicador personalizado?

 
¿Podría decirme si es posible prescribir el ángulo de inclinación de la media móvil o la intersección del precio con la media móvil en un ángulo determinado?
 
Profitov:
¿Podría decirme si es posible prescribir el ángulo de inclinación de la media móvil o la intersección del precio con la media móvil en un ángulo determinado?
Ahora te empezarán a explicar que el ángulo depende de la escala de la carta y que es imposible hacerlo...
Pero si no tomas el ángulo, sino sólo la tangente de ese ángulo, puedes hacer lo que quieras.
 
Por favor, avisen si alguien lo sabe.

Mi Asesor Experto, en int init(), primero prueba un historial de 1000 barras, y luego start(). En el probador este proceso tarda entre 3 y 4 segundos, pero en la vida real tarda unos 8 minutos.
¿Con qué puede estar relacionado? ¿Cómo puedo hacer que las pruebas duren lo mismo que en el probador?
 
agvozdezkiy:

¿Puede un EA mostrar un indicador? Alternativa a ChartIndicatorAdd en MQL5.


¿Y dónde puedo encontrar un ejemplo de un EA que realice cálculos basados en un indicador personalizado?

https://book.mql4.com/ru/samples/icustom