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

 
001:

El código hará que el EA sea "silencioso" en determinados momentos.

pegue este código en su EA:

extern HourStart=0; // La hora de inicio de la sesión que se va a saltar

///

extern HourEnd=0; // Fin de la sesión que debe saltarse
//+------------------------------------------------------------------+
int inicio()
{
if(Hour()>=HourStart)
{
{ if(Hour()<=HourEnd)
{
return(0);

}

/Pegue este código (arriba) delante de su EA.

}
// tu cuerpo EA
}
//+------------------------------------------------------------------+

¡Muchas gracias!

También cerraría los pedidos...

 
Vinin:
¿Qué querías conseguir?
En general, el resultado es un indicador que muestra, de forma acumulada, el número de lances y de bajas por hora. Es decir, por ejemplo, para el año 20 lances a las 03:00, 30 bajas a las 05:00 Algo así como un perfil de mercado, pero con picos por hora. El indicador está en una ventana aparte.
 
SAnd7:

¡Muchas gracias!

Me gustaría que las garantías se cerraran también...

Si por el tiempo, debemos encontrar una función

OrderClose()

y ponerlo delante.

if(Hour()>=HourClose)

El resultado final:

extern int    HourClose=0;          // Вставить там где вставили extern int    HourStart=0;  Это час закрытия

//+------------------------------------------------------------------+



//+------------------------------------------------------------------+
if(Hour()>=HourClose) OrderClose(...............);// Найти функцию OrderClose и поставить передней if(Hour()>=HourClose)


 

¡¡¡Gracias!!!

Creo que lo tengo.

 
SAnd7:

¡¡¡Gracias!!!

Creo que lo tengo.

Todavía podemos jugar con los minutos.

  Minute()
 
SAnd7:

¡Hola!

He encontrado un buen Asesor Experto (según el probador) y lo he ejecutado en la demo y está perdiendo dinero en la sesión japonesa.

Si conoces el código, cómo hacer que se ejecute en un momento determinado y a una hora determinada para cerrar todas mis órdenes y luego salir.

También un lugar donde insertar este código.

Gracias de antemano.

Haz 2 variables al principio:

extern int    Start    = 2,
              End      = 8;
//-----------------------------------
  int hour = TimeHour(TimeCurrent()); // в начале основной части советника

¡Y luego en las condiciones de apertura y cierre en caso de que quede alguna posición!

     if(hour >= Start && hour < End) // можно открывать
//-----------------------------------------------------
     if(hour < Start || hour >= End) // закрыть, если есть
 

¡Hola!

Actualmente la función está vinculada al gráfico actual (double High[]). ¿Cómo puedo modificar la función para obtener los precios de diferentes plazos High_Lim(PERIOD_H4,10,1) High_Lim(PERIOD_M15,10,1)?

double High_Lim(ENUM_TIMEFRAMES GrafPeriod, int Bari_atp, int Bari_shift)
{
double HighLim=0; 
       HighLim = (High[iHighest(NULL,GrafPeriod,MODE_HIGH,Bari_atp,Bari_shift)]);
          
return(HighLim);
}

void OnTick()
  {
//---
Print("::::::::::::::::::::::::: High_Lim(PERIOD_M15,10,1) = ", High_Lim(PERIOD_M15,10,1));  
Print("::::::::::::::::::::::::: High_Lim(PERIOD_H4,10,1) = ", High_Lim(PERIOD_H4,10,1));     
  }
 
abeiks:

¡Hola!

Actualmente la función está vinculada al gráfico actual (double High[]). ¿Cómo puedo modificar la función para obtener los precios de diferentes plazos High_Lim(PERIOD_H4,10,1) High_Lim(PERIOD_M15,10,1)?

Para encontrar el valor de precio más alto de otro símbolo, utilice iHighest. Allí en lugar de 1 argumento escribir el nombre del símbolo, por ejemplo. "EURUSD". En tu función has escrito NULL, es decir, busca en el gráfico actual.
 
paladin80:
Para encontrar el valor de precio más alto de otro símbolo, utilice iHighest. Allí en lugar de 1 argumento escriba el nombre del símbolo, por ejemplo "EURUSD". En tu función has escrito NULL, es decir, busca en el gráfico actual.
"...obtener precios de diferentes plazos..."
 
abeiks:
"...obtener precios de diferentes plazos..."

En iHighest el segundo parámetro es el plazo.

   double val;
//--- расчет максимального значения цены на 20 последовательных барах
//--- с индекса 4 по индекс 23 включительно на графике  EURUSD на М30 
   int val_index=iHighest("EURUSD",PERIOD_M30,MODE_HIGH,20,4);
   if(val_index!=-1) val=High[val_index];
   else PrintFormat("Ошибка вызова iHighest. Код ошибки=%d",GetLastError());
Razón de la queja: