TimeTradeServer analog für MT4 - Seite 5

 
fxsaber:

Wie kann man eine Zeichnung vervielfältigen?

Ich denke, die Abbildung zeigt das sehr anschaulich:

  1. Es gibt den EURUSD.
  2. Es gibt eine einminütige Geschichte.
  3. Es gibt eine Serverzeit und eine GMT-Zeit.
  4. Sie haben den TC-Namen angegeben.
  5. Die Differenz zwischen ihnen sollte 2 betragen, tatsächlich ist sie aber 0.
Was brauche ich sonst noch? Bitte lassen Sie es mich wissen, und ich werde es tun.
 
fxsaber:

Wenn Sie eine solche Änderung vornehmen, wird es weitergehen. Die Definition von Sommer und Winter ist noch nicht erfolgt, aber jemand wird es tun.

Erstens heißt es nicht "minus 2", sondern "plus 2". Dann passt es in meinem Fall.

Zweitens: Würden Sie für einen Server, der eine Abweichung von 4 Stunden von der GMT hat, vorschlagen, 4 statt 2 Stunden einzusetzen? Dann brauche ich keine Funktion, ich verwende einfach die ursprünglich bekannte Zahl und erhalte die richtige Antwort. )))

 
Ihor Herasko:

Was brauchen Sie noch? Sagen Sie es mir, ich werde es Ihnen geben.

Der Code und der Name des Handelsservers, mit dem Sie sich verbinden können, wenn Sie eine Demo über das Terminal öffnen.

 
Ihor Herasko:

Zunächst einmal heißt es nicht "minus 2", sondern "plus 2". Dann passt es in meinem Fall.

Zweitens: Würden Sie bei einem Server, der 4 Stunden von der GMT abweicht, dazu raten, 4 statt 2 Stunden anzugeben? Dann brauche ich keine Funktion, ich verwende einfach die ursprünglich bekannte Zahl und erhalte die richtige Antwort. )))

Sie haben mir eine Aussage zugeschrieben, die ich nicht gemacht habe, und dann behauptet, sie sei falsch. Sie haben auch versucht, einen Witz darüber zu machen.

 
Dmitry Fedoseev:

Da die Funktion OrderSend() die Fehlermeldung "market is closed" (der Markt ist geschlossen) erhält, stoppen wir alle Handelsversuche und warten auf eine Preisänderung, was bedeutet, dass der Markt geöffnet wurde.

Die Idee könnte sicherlich helfen, ich würde gerne wissen, wann der Markt geschlossen ist, ohne unnötige Fehler. Wir müssen darüber nachdenken.

 
Maxim Kuznetsov:
Wir sollten nicht auf die letzte (23:59) Minute beim EURUSD achten, sondern auf die Nacht beim Gold. Gold wird ausschließlich in Amsterdam gehandelt, Währungen nach der Serverzeit. Hier finden Sie den GMT-Offset des Servers

Ich verrate dir ein schreckliches Geheimnis: Nicht jeder Tag kann um 23:59 Uhr enden :-) Und wir können nicht im Voraus wissen, wann sie enden wird. Zum Beispiel an Tagen vor den Feiertagen und freitags.

 
fxsaber:

Wenn Sie eine solche Änderung vornehmen, wird es weitergehen. Ich habe die Sommer- und Winterdefinition nicht gemacht, aber das wird schon jemand machen.

Es wird nicht funktionieren, auf Systemen, auf denen sie das System nicht wie installiert aktualisieren :-) Zum Beispiel gibt es in RF immer noch die Zeitumstellung von Winter auf Sommer. Ich bin auf solche Systeme gestoßen...

 
fxsaber:

Der Code und der Name des Handelsservers, mit dem Sie sich verbinden können, wenn Sie eine Demo über das Terminal öffnen.

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

Anmeldung: 12752745

Server: yk2mkat

Server: Alpari-Demo

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

Sie haben mir eine Aussage zugeschrieben, die ich nicht gemacht habe, und dann behauptet, sie sei falsch. Und dann haben Sie versucht, einen Witz darüber zu machen.

Warst du nicht derjenige, der ihn geschrieben hat?

Ich mache keine Witze darüber. In dem von Ihnen übermittelten Code wird 0 in 2 geändert. Genau so viel, wie ich eine Diskrepanz zwischen der tatsächlichen Zeit und der vom Server berechneten Zeit erhalte. Deshalb war ich von diesem Ansatz überrascht: man schaut sich die benötigte Diskrepanz an und setzt den benötigten Offset anstelle von 0. Hier gibt es nichts zu lachen.

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

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

Anmeldung: 12752745

Konto: yk2mkat

Server: Alpari-Demo

Ihor Herasko:

Waren Sie nicht derjenige, der geschrieben hat?

Über den Scherz - kein Scherz. In dem von Ihnen übermittelten Code wurde 0 in 2 geändert. Ich habe den Unterschied zwischen der tatsächlichen und der geschätzten Serverzeit. Deshalb war ich von diesem Ansatz überrascht: man schaut sich die benötigte Diskrepanz an und setzt den benötigten Offset anstelle von 0. Da gibt es nichts zu lachen.

Der Prüfcode

#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());  
}


Ergebnis auf einem Rechner mit der gleichen GMT wie bei 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


Geprüft

AccountServer() = AMPGlobalUSA-Demo

Das ist richtig.