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

 

belck
:

приветствую!

помогите разобраться. пытаюсь сделать в советнике закрытие сделок в пятницу за пол часа до закрытия сессии.

пробовал по учебнику, то ничего у меня не получилось

может у кого уже готовый код есть.

код закрытия у меня есть. мне нужен сам сигнализирующий закрытие сессии за 30 минут.

¿Qué te parece esto?

extern datetime DateTime = D'2014.03.21 11:30';  // Дата и время закрытия



if (TimeCurrent()>=DateTime)
  {
  }
La situación es que no necesito la fecha. Necesito que me señale cada viernes 30 minutos antes y 30 minutos antes del final de la sesión, y luego incrustaré la señal en el código para las órdenes de cierre.
 
Este lo tengo funcionando, no hay fallas.
//---закрыть все позиции в пятницу в 19-40 по серверному времени 
   if(DayOfWeek()==5 && Hour()==19 && Minute()>40){
      //Дать сигнал на закрытие всех позиций    
       
   } 
 
belck:

Saludos.

Estoy intentando que mi EA cierre las operaciones el viernes media hora antes del cierre de la sesión.

He probado el tutorial, pero no ha funcionado.

Puedo preguntar si alguien tiene un código listo.

Tengo el código de cierre. Necesito que se pueda cerrar una sesión 30 minutos antes.


Esto puede ser más universal para cualquier corredor. Lástima que aún no haya diferencia en las cotizaciones de los corredores de UTC

void OnStart()
  {
//---
   int hrd=-3; // разница времени в часах котировок брокера с Гринвичем
   datetime tc=TimeCurrent();
   if(f_ts(tc,hrd)>0) Print("CloseAll()");
  }
//+------------------------------------------------------------------+


int f_ts(datetime ti, int hrd)
{
   if(TimeDayOfWeek(ti)!=5) return(-1); // если не пятница  выходим
   datetime t0d,te;
   int dtd=1440*60, res=-1;
   t0d=ti/dtd*dtd;        // начало торгового дня
   te=t0d+dtd-30*60+hrd*3600;     // 30 мин до конца сессии
   if (ti>te)  res=1;
   else        res=0;
   return(res);
 
granit77:
Este lo tengo funcionando, no hay fallas.

Lo intenté de esta manera, lo probé a través de un probador, entonces la función no funcionó.
 

Pues esto no debería funcionar en el probador.

if(DayOfWeek()==5 && Hour()==19 && Minute()>40)

Las funciones se basan en la hora actual, y lo que escribí arriba funcionará porque TimeCurrent() y TimeDayOfWeek() funcionan correctamente. Sólo hay que añadir la función para cambiar al horario de verano e invierno, es decir, el parámetro hrd. El cambio suele realizarse de acuerdo con la hora DST estadounidense (primer domingo de noviembre, segundo domingo de marzo), pero algunos corredores no realizan el cambio, por lo que debe utilizar su

 
belck:

Saludos.

Estoy intentando que mi EA cierre las operaciones el viernes media hora antes del cierre de la sesión.

He probado el tutorial, pero no ha funcionado.

Puedo preguntar si alguien tiene un código listo.

Tengo el código de cierre. Necesito que señale el cierre de la sesión 30 minutos antes.

r772ra:

Tal vez así.

No es así en absoluto.

Necesitamos definir la hora de cierre de la sesión datenime SessionClose = . Si no se trata del cierre de la sesión, sino del cierre de la operación, entonces SessionClose = StrToTime("23:30");

Definir el día de la semana TimeDayOfWeek()

Si es viernes, compruebe TimeCurrent() >= SessionClose

 
AlexeyVik:

Este no es el caso en absoluto.

Necesitamos definir la hora de cierre de la sesión datenime SessionClose = .... Si no se trata del cierre de la sesión, sino del cierre de la operación, entonces SessionClose = StrToTime("23:30");

Definir el día de la semana TimeDayOfWeek()

Si es viernes, compruebe TimeCurrent() >= SessionClose


¿puede describir el código con más detalle?
 
AlexeyVik:

Este no es el caso en absoluto.

Necesitamos definir la hora de cierre de la sesión datenime SessionClose = .... Si no es el cierre de la sesión, sino la negociación, entonces SessionClose = StrToTime("23:30");


hora de cierre de la sesión SessionClose = ... y la licitación ... no funcionará en el probador independientemente de cómo lo defina :) Comprobar desde principios de marzo hasta hoy
 
belck:

¿puede describir el código con más detalle?

Sí, puedo. Pero va en contra de mis principios.


GSB:
hora de cierre de la sesión datenime SessionClose = ... y la licitación ... no funcionará en el probador independientemente de cómo lo defina :) Compruebe desde principios de marzo hasta hoy

¿Qué tiene que ver eso con el probador? Aunque funcionaba en el probador hasta las últimas actualizaciones. No voy a discutir ahora, no lo he probado y no me veré obligado a encender el probador en breve.
 
AlexeyVik:

Sí puedo. Pero va en contra de mis principios.


¿Qué tiene que ver el probador con esto? Aunque sí funcionaba en el probador antes de las últimas actualizaciones. No voy a discutir ahora, no lo he probado y no me veré obligado a encender el probador en breve.

No hay objeciones a los principios, pero el hombre quiere ejecutar el EA en el probador, por lo que sus opciones no son adecuadas para él.

Utilice mi versión, funcionará en el real y en el probador, pero hasta que hicieron una característica para tener en cuenta automáticamente la transición a la hora de invierno, definir el tiempo de transición para este año como

string data_1="2014.03.09"; string data_2="2013.11.03";
if(TimeCurrent() < StrToTime(data_1) && TimeCurrent() > StrToTime(data_2) ) hrd=-2; else hrd=-3;
De marzo de 2013 a noviembre de 2014 funcionará y probará correctamente. Ajuste el turno de acuerdo con su corredor