Analogo di TimeTradeServer per MT4 - pagina 5

 
fxsaber:

Come si riproduce da un disegno?

Penso che la figura lo mostri in modo molto eloquente:

  1. C'è EURUSD.
  2. C'è una storia di un minuto.
  3. C'è un orario del server e un orario GMT.
  4. Avete indicato il nome del TC.
  5. La differenza tra loro dovrebbe essere 2 ma in realtà è 0.
Di cos'altro ho bisogno? Per favore fatemelo sapere e lo farò.
 
fxsaber:

Fate un tale cambiamento e andrà avanti. La definizione di estate e inverno non è stata fatta, qualcuno la farà.

In primo luogo, non è "meno 2" ma "più 2". Allora per il mio caso si adatta.

In secondo luogo, per un server che ha un offset di 4 ore da GMT, suggeriresti di mettere 4 invece di 2? Allora non ho bisogno della funzione, uso solo il numero inizialmente noto e ottengo la risposta corretta. )))

 
Ihor Herasko:

Di cos'altro avete bisogno? Ditemelo e provvederò.

Il codice e il nome del server di trading a cui ci si può connettere aprendo una demo attraverso il terminale.

 
Ihor Herasko:

Prima di tutto, non è "meno 2", ma "più 2". Allora per il mio caso si adatta.

In secondo luogo, per un server che è sfalsato di 4 ore dal GMT, consiglieresti di mettere 4 invece di 2? Allora non ho bisogno della funzione, uso solo il numero inizialmente noto e ottengo la risposta corretta. )))

Lei mi ha attribuito un'affermazione che non ho fatto e poi ha detto che era sbagliata. Ha anche cercato di fare una battuta su questo.

 
Dmitry Fedoseev:

Dato che la funzione OrderSend() si imbatte in un errore "market is closed" (esiste una cosa del genere), fermiamo tutti i tentativi di trading e aspettiamo che il prezzo cambi, il che significa che il mercato si è aperto.

L'idea potrebbe certamente aiutare, vorrei sapere quando il mercato è chiuso senza errori inutili. Dobbiamo pensarci.

 
Maxim Kuznetsov:
Non dovremmo cercare l'ultimo (23:59) minuto sull'EURUSD, ma la notte sull'oro. L'oro commercia rigorosamente amsterdam, le valute secondo l'ora del server. Da qui trovare l'offset GMT del server

Ti dirò un terribile segreto, non tutti i giorni possono finire alle 23:59 :-) E non possiamo sapere in anticipo a che ora finirà. Per esempio, nei giorni prefestivi e il venerdì.

 
fxsaber:

Fate un tale cambiamento e andrà avanti. Non ha fatto la definizione di estate e inverno, qualcuno la farà.

Non funzionerà, su sistemi in cui non aggiornano il sistema come cazzo è stato installato :-) Per esempio c'è ancora il cambio di orario dall'inverno all'estate in RF. Ho incontrato tali sistemi...

 
fxsaber:

Il codice e il nome del server di trading a cui ci si può collegare aprendo una demo tramite il terminale.

Codice:https://www.mql5.com/ru/forum/327616/page3#comment_14093858

Accesso: 12752745

Server: yk2mkat

Server: Alpari-Demo

TimeTradeServer аналог для МТ4
TimeTradeServer аналог для МТ4
  • 2019.12.02
  • www.mql5.com
Интересует решение этой функции под МТ4 TimeTradeServer...
 
fxsaber:

Lei mi ha attribuito un'affermazione che non ho fatto e poi ha detto che era sbagliata. E poi hai cercato di fare una battuta su questo.

Non sei stato tu a scriverlo?

Non sto scherzando. Nel codice che hai inviato, 0 è cambiato in 2. Esattamente quanto ho una discrepanza tra il tempo reale e il tempo calcolato dal server. Ecco perché mi ha sorpreso questo approccio: guardare la discrepanza necessaria e mettere l'offset necessario invece di 0. Non c'è niente da ridere qui.

TimeTradeServer аналог для МТ4
TimeTradeServer аналог для МТ4
  • 2019.12.03
  • www.mql5.com
Интересует решение этой функции под МТ4 TimeTradeServer...
 
Ihor Herasko:

Codice:https://www.mql5.com/ru/forum/327616/page3#comment_14093858

Accesso: 12752745

conto: yk2mkat

Server: Alpari-Demo

Ihor Herasko:

Non sei stato tu a scrivere?

Riguardo allo scherzo - non è uno scherzo. Il codice che hai inviato è stato cambiato da 0 a 2. Ho ottenuto la differenza tra il tempo reale e quello stimato del server. Ecco perché mi ha sorpreso questo approccio: guardare la discrepanza necessaria e mettere l'offset necessario invece di 0. Non c'è niente da ridere.

Il codice di controllo

#property strict

#define  HOUR 3600
#define  DAY (24 * HOUR)
#define  WEEK 7

datetime GetBarTime( const datetime time, const bool NextBar = false, string Symb = NULL, const ENUM_TIMEFRAMES TimeFrame = PERIOD_M1 )
{
  if (Symb == NULL)
    Symb = _Symbol;
    
  return(iTime(Symb, TimeFrame, iBarShift(Symb, TimeFrame, time) - (NextBar ? 1 : 0)));
}

datetime GetTimeDayOfWeek( const int Shift = 0, const ENUM_DAY_OF_WEEK Day = SUNDAY )
{
  const datetime Res = TimeCurrent() / DAY * DAY;
  
  return(Res - (((WEEK + (TimeDayOfWeek(Res) - Day)) % WEEK) + Shift * WEEK) * DAY);
}

// https://www.mql5.com/ru/forum/327616/page4#comment_14098877
// Аналог по серверному времени - https://www.mql5.com/ru/docs/dateandtime/timegmtoffset
// Работает для FOREX-символов, когда M1-история доступна за ближайшую неделю
int TimeServerGMTOffset( const bool SummerTime = false )
{
  const datetime Sunday = GetTimeDayOfWeek();
  
  return(((int)MathRound((double)MathMin(Sunday - DAY - GetBarTime(Sunday), Sunday + DAY - GetBarTime(Sunday, true)) / HOUR) - SummerTime - 2) * HOUR);
}

// Аналог по серверному времени - https://www.mql5.com/ru/docs/dateandtime/timegmt
// Работает для FOREX-символов, когда M1-история доступна за ближайшую неделю
datetime TimeServerGMT( void )
{
  return(TimeCurrent() + TimeServerGMTOffset());
}

#define  PRINT(A) Print(#A + " = " + (string)(A))

// https://www.mql5.com/ru/forum/170953/page8#comment_6940794
void OnStart()
{  
  PRINT(TimeGMT());
  PRINT(TimeServerGMT());  
}


Risultato su una macchina con lo stesso GMT di Alpari.

2019.12.03 19:28:09.048 Test5-3 EURUSD,M1: TimeServerGMT() = 2019.12.03 17:28:12
2019.12.03 19:28:09.048 Test5-3 EURUSD,M1: TimeGMT() = 2019.12.03 17:28:09


Controllato

AccountServer() = AMPGlobalUSA-Demo

È corretto.