Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 556

 

belck
:

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

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

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

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

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

Wie wäre es damit.

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



if (TimeCurrent()>=DateTime)
  {
  }
Die Situation ist die, dass ich das Datum nicht benötige. Ich brauche es, um jeden Freitag 30 Minuten vor und 30 Minuten vor Ende der Sitzung ein Signal zu geben, und dann werde ich das Signal in den Code für die Schließung von Aufträgen einbetten.
 
Bei mir funktioniert es, keine Fehlfunktionen.
//---закрыть все позиции в пятницу в 19-40 по серверному времени 
   if(DayOfWeek()==5 && Hour()==19 && Minute()>40){
      //Дать сигнал на закрытие всех позиций    
       
   } 
 
belck:

Grüße!

Ich versuche, meinen EA am Freitag eine halbe Stunde vor Sitzungsschluss schließen zu lassen.

Ich habe das Tutorial ausprobiert, aber es hat nicht funktioniert.

Ich kann fragen, ob jemand einen fertigen Code hat.

Ich habe den Schließungscode. Ich brauche ihn, um eine Sitzung 30 Minuten vorher schließen zu können.


Dies kann für jeden Makler gelten. Schade, dass es bei den Maklerangeboten von UTC noch keinen Unterschied gibt

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:
Bei mir funktioniert es, keine Fehlfunktionen.

Ich habe es auf diese Weise versucht und mit einem Tester getestet, aber die Funktion funktionierte nicht.
 

Nun, das sollte im Testgerät nicht funktionieren.

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

Die Funktionen basieren auf der aktuellen Zeit, und was ich oben geschrieben habe, wird funktionieren, weil TimeCurrent() und TimeDayOfWeek() korrekt funktionieren. Sie müssen nur die Funktion zur Umstellung auf Sommer- und Winterzeit hinzufügen, d.h. den Parameter hrd. Die Umstellung erfolgt in der Regel nach der amerikanischen Sommerzeit (erster Sonntag im November, zweiter Sonntag im März), aber einige Makler stellen nicht um, so dass Sie Ihre

 
belck:

Grüße!

Ich versuche, meinen EA am Freitag eine halbe Stunde vor Sitzungsschluss schließen zu lassen.

Ich habe das Tutorial ausprobiert, aber es hat nicht funktioniert.

Ich kann fragen, ob jemand einen fertigen Code hat.

Ich habe den Schließungscode und brauche ihn, um die Schließung der Sitzung 30 Minuten vorher zu signalisieren.

r772ra:

Vielleicht so.

Ganz und gar nicht so.

Wir müssen den Zeitpunkt des Sitzungsschlusses festlegen datenime SessionClose = . Wenn nicht Sitzungsschluss, sondern Handelsschluss, dann SessionClose = StrToTime("23:30");

Den Wochentag festlegen TimeDayOfWeek()

Falls Freitag, prüfen Sie TimeCurrent() >= SessionClose

 
AlexeyVik:

Dies ist keineswegs der Fall.

Wir müssen den Zeitpunkt des Sitzungsschlusses festlegen datenime SessionClose = .... Wenn nicht Sitzungsschluss, sondern Handelsschluss, dann SessionClose = StrToTime("23:30");

Den Wochentag festlegen TimeDayOfWeek()

Falls Freitag, prüfen Sie TimeCurrent() >= SessionClose


Können Sie den Code genauer beschreiben?
 
AlexeyVik:

Dies ist keineswegs der Fall.

Wir müssen den Zeitpunkt des Sitzungsschlusses festlegen datenime SessionClose = .... Wenn es sich nicht um einen Sitzungsschluss, sondern um einen Handelsschluss handelt, dann ist SessionClose = StrToTime("23:30");


Sitzungsschlusszeit SessionClose = ... und Bieten ... wird im Tester nicht funktionieren, egal wie Sie es definieren :) Überprüfung von Anfang März bis heute
 
belck:

Können Sie den Code genauer beschreiben?

Ja, das kann ich. Aber das geht gegen meine Prinzipien.


GSB:
Sitzungsschlusszeit datenime SessionClose = ... und Bieten ... wird im Tester nicht funktionieren, egal wie Sie es definieren :) Überprüfung von Anfang März bis heute

Was hat das mit dem Prüfgerät zu tun? Obwohl es bis zu den letzten Updates im Testprogramm funktionierte. Ich will jetzt nicht streiten, ich habe es nicht getestet und werde auch nicht gezwungen sein, das Testgerät in nächster Zeit einzuschalten.
 
AlexeyVik:

Ich schon. Aber das ist gegen meine Prinzipien.


Was hat der Prüfer damit zu tun? Obwohl es im Testprogramm vor den letzten Aktualisierungen funktioniert hat. Ich werde jetzt nicht widersprechen, ich habe es nicht getestet und werde auch nicht gezwungen sein, das Testgerät in nächster Zeit einzuschalten.

Gegen die Prinzipien ist nichts einzuwenden, aber der Mann will den EA im Tester laufen lassen, also sind Ihre Optionen für ihn nicht geeignet.

Verwenden Sie meine Version, es wird in der realen und in der Tester, aber bis sie eine Funktion, um automatisch zu berücksichtigen, den Übergang zur Winterzeit, definieren Sie die Übergangszeit für dieses Jahr wie

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;
Von März 2013 bis November 2014 wird korrekt funktionieren und getestet. Stellen Sie die Schicht entsprechend Ihrem Broker ein