Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 556

 

belck
:

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

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

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

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

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

Che ne dite di questo.

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



if (TimeCurrent()>=DateTime)
  {
  }
La situazione è che non ho bisogno della data. Ho bisogno che segnali ogni venerdì 30 minuti prima e 30 minuti prima della fine della sessione, e poi incorporerò il segnale nel codice degli ordini di chiusura.
 
Questo funziona, senza malfunzionamenti.
//---закрыть все позиции в пятницу в 19-40 по серверному времени 
   if(DayOfWeek()==5 && Hour()==19 && Minute()>40){
      //Дать сигнал на закрытие всех позиций    
       
   } 
 
belck:

Saluti!

Sto cercando di fare in modo che il mio EA chiuda i trade il venerdì mezz'ora prima della chiusura della sessione.

Ho provato il tutorial, ma non ha funzionato.

posso chiedere se qualcuno ha un codice pronto.

Ho il codice di chiusura. Ho bisogno che sia in grado di chiudere una sessione 30 minuti prima.


Questo può essere più universale per qualsiasi broker. Peccato che non ci sia ancora alcuna differenza nelle quotazioni dei broker di 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:
Questo funziona, senza malfunzionamenti.

provato in questo modo, testato attraverso un tester, poi la funzione non ha funzionato.
 

Beh, questo non dovrebbe funzionare nel tester.

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

Le funzioni sono basate sul tempo corrente, e quello che ho scritto sopra funzionerà perché TimeCurrent() e TimeDayOfWeek() funzionano correttamente. Dovete solo aggiungere la funzione per passare all'ora legale e invernale, cioè il parametro hrd. La commutazione di solito avviene secondo l'orario americano DST (prima domenica di novembre seconda domenica di marzo), ma alcuni broker non fanno la commutazione, quindi dovreste usare il vostro

 
belck:

Saluti!

Sto cercando di fare in modo che il mio EA chiuda i trade il venerdì mezz'ora prima della chiusura della sessione.

Ho provato il tutorial, ma non ha funzionato.

posso chiedere se qualcuno ha un codice pronto.

Ho il codice di chiusura che mi serve per segnalare la chiusura della sessione 30 minuti prima.

r772ra:

Forse così.

Non è affatto così.

Dobbiamo definire il tempo di chiusura della sessione datenime SessionClose = . Se non è la chiusura della sessione, ma la chiusura del commercio, allora SessionClose = StrToTime("23:30");

Definire il giorno della settimana TimeDayOfWeek()

Se venerdì, controllare TimeCurrent() >= SessionClose

 
AlexeyVik:

Questo non è affatto il caso.

Dobbiamo definire il tempo di chiusura della sessione datenime SessionClose = .... Se non è la chiusura della sessione, ma la chiusura del commercio, allora SessionClose = StrToTime("23:30");

Definire il giorno della settimana TimeDayOfWeek()

Se venerdì, controllare TimeCurrent() >= SessionClose


puoi descrivere il codice in modo più dettagliato?
 
AlexeyVik:

Questo non è affatto il caso.

Dobbiamo definire il tempo di chiusura della sessione datenime SessionClose = .... Se non è la chiusura della sessione, ma il trading, allora SessionClose = StrToTime("23:30");


tempo di chiusura della sessione SessionClose = ... e l'offerta ... non funzionerà nel tester, non importa come lo definisci :) Controlla dall'inizio di marzo a oggi
 
belck:

puoi descrivere il codice in modo più dettagliato?

Sì, posso. Ma va contro i miei principi.


GSB:
tempo di chiusura della sessione datenime SessionClose = ... e l'offerta ... non funzionerà nel tester, non importa come lo definisci :) Controlla dall'inizio di marzo a oggi

Cosa c'entra questo con il tester? Anche se ha funzionato nel tester fino agli ultimi aggiornamenti. Non voglio discutere ora, non l'ho testato e non sarò costretto ad accendere il tester a breve.
 
AlexeyVik:

Io posso. Ma è contro i miei principi.


Cosa c'entra il tester? Anche se ha funzionato nel tester fino agli ultimi aggiornamenti. Ora non voglio discutere, non ho testato e non sarò costretto ad accendere il tester a breve.

Nessuna obiezione ai principi, ma l'uomo vuole eseguire l'EA nel tester, quindi le tue opzioni non sono adatte a lui.

Usate la mia versione, funzionerà nella realtà e nel tester, ma fino a quando non avranno fatto una funzione per tenere automaticamente conto della transizione all'ora legale invernale, definite il tempo di transizione per quest'anno come

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;
Da marzo 2013 a novembre 2014 funzionano e testano correttamente. Imposta il turno secondo il tuo broker
Motivazione: