Markt geschlossen

 

Ihr Jungs seid die Entwickler!

Wann werden Sie die Terminalzeit mit der Exchange-Zeit synchronisieren?

2017.01.13 10:00:03.969 Trades  'xxxxx': buy limit 2.00 ED-6.17 at 1.0642
2017.01.13 10:00:03.969 Trades  'xxxxx': sell limit 1.00 ED-6.17 at 1.0813
2017.01.13 10:00:03.975 Trades  'xxxxx': accepted buy limit 2.00 ED-6.17 at 1.0642
2017.01.13 10:00:03.975 Trades  'xxxxx': accepted sell limit 1.00 ED-6.17 at 1.0813
2017.01.13 10:00:03.978 Trades  'xxxxx': failed buy limit 2.00 ED-6.17 at 1.0642 [Market closed]
2017.01.13 10:00:03.979 Trades  'xxxxx': failed sell limit 1.00 ED-6.17 at 1.0813 [Market closed]
 
2017.01.13 10:00:03.210 Trades  'xxxxx': buy limit 1.00 MXI-6.17 at 2230.15
2017.01.13 10:00:03.210 Trades  'xxxxx': sell limit 1.00 MXI-6.17 at 2300.75
2017.01.13 10:00:03.216 Trades  'xxxxx': accepted buy limit 1.00 MXI-6.17 at 2230.15
2017.01.13 10:00:03.218 Trades  'xxxxx': accepted sell limit 1.00 MXI-6.17 at 2300.75
2017.01.13 10:00:03.219 Trades  'xxxxx': failed buy limit 1.00 MXI-6.17 at 2230.15 [Market closed]
2017.01.13 10:00:03.220 Trades  'xxxxx': failed sell limit 1.00 MXI-6.17 at 2300.75 [Market closed]

hinzugefügt.

Die Handelszeit wird geprüft, bevor der Auftrag gesendet wird

//+------------------------------------------------------------------+
//| Expert Check traiding time function                              |
//+------------------------------------------------------------------+
bool CheckTradingTime(MqlDateTime &tick_time)
{
  datetime lk_time = TimeCurrent(tick_time);
  if ( ( tick_time.day_of_week == int(FirstDay)) ||
       ( tick_time.day_of_week == int(SecondDay)))//выходные
  {
    return(false);
  }
#ifdef DEBUG
  if ((tick_time.hour >= 0) && (tick_time.hour < 6))   // DEBUG 6-00
  {
    return(false);
  }
#else
  
if ((tick_time.hour >= 0) && (tick_time.hour < 10))
  {
    return(false);
  }
#endif
// 13 * 3600 + 59 * 60 + 30 = 50370 - 13:59:30
// 14 * 3600                = 50400 - 14:00:00
// 14 * 3600 + 30           = 50430 - 14:00:30
// 14 * 3600 + 60           = 50460 - 14:01:00

// 18 * 3600 + 44 * 60 + 30 = 67470 - 18:44:30
// 18 * 3600 + 45 * 60      = 67500 - 18:45:00
// 18 * 3600 + 45 * 60 + 30 = 67530 - 18:45:30
// 18 * 3600 + 46 * 60      = 67560 - 18:46:00

// 19 * 3600                = 68400 - 19:00:00
// 19 * 3600 + 60           = 68460 - 19:01:00  

// 23 * 3600 + 49 * 60 + 30 = 85770 - 23:49:30
// 23 * 3600 + 50 * 60      = 85800 - 23:50:00
// 23 * 3600 + 50 * 60 + 30 = 85830 - 23:50:30
// 23 * 3600 + 51 * 60      = 85860 - 23:51:00
//---
  ulong trade_time = tick_time.hour * 3600 + tick_time.min * 60 + tick_time.sec;  
//---                    //10:00:02                      
  if(((trade_time >= time_st_mon) && (trade_time < 50370)) ||
      ((trade_time >= time_st_day) && (trade_time < 67470)) ||
      ((trade_time >= time_st_evn) && (trade_time < 85770)))
  {
    return(true);
  }

return(false); 


}
input string          TimeStMon    = "10:00:02";         //Время начала утренней сессии

ulong time_st_mon = GetStringTime(TimeStMon);
ulong GetStringTime(const string a_string)
{
  int k = 0;
  string s_sec, s_min, s_hour;
  int str_size = StringLen(a_string);
//---
  if(str_size != 8) return(0);  
//---  
  for(int i = str_size - 1; i >= 0; i--)
  {
    ushort let_symbol = StringGetCharacter(a_string, i);
    
    if(let_symbol == ':')
    {
      k++;
      switch(k)
      {
        case 1:
          s_sec = StringSubstr(a_string, i + 1, str_size - i - 1);
        break;
        case 2:
          s_min = StringSubstr(a_string, i + 1, str_size - i - 4);
          s_hour = StringSubstr(a_string, 0, i);
        break;
      }
//---
    }
  }
  if(k != 2) return(0);
  ulong t_sec = ulong(StringToInteger(s_sec));
  ulong t_min = ulong(StringToInteger(s_min)) * 60;
  ulong t_hour = ulong(StringToInteger(s_hour)) * 3600;
//---    
  return(t_hour + t_min + t_sec);
}
 
prostotrader:

Ihr Jungs seid die Entwickler!

Wann werden Sie die Terminalzeit mit der Exchange-Zeit synchronisieren?

2017.01.13 10:00:03.969 Trades  'xxxxx': buy limit 2.00 ED-6.17 at 1.0642
2017.01.13 10:00:03.969 Trades  'xxxxx': sell limit 1.00 ED-6.17 at 1.0813
2017.01.13 10:00:03.975 Trades  'xxxxx': accepted buy limit 2.00 ED-6.17 at 1.0642
2017.01.13 10:00:03.975 Trades  'xxxxx': accepted sell limit 1.00 ED-6.17 at 1.0813
2017.01.13 10:00:03.978 Trades  'xxxxx': failed buy limit 2.00 ED-6.17 at 1.0642 [Market closed]
2017.01.13 10:00:03.979 Trades  'xxxxx': failed sell limit 1.00 ED-6.17 at 1.0813 [Market closed]

Es ist wichtig zu verstehen, wer die Weltzeit ausspuckt und seine eigene festlegt, die Börse oder der Broker. Aus eigenem Interesse oder einfach aus Dummheit.

Wer hat die gleiche Zeit wie die Weltzeit?

 
Sergey Chalyshev:

Man muss herausfinden, wer auf die Zeit der Welt spuckt und seine eigene festlegt, die Börse oder der Broker. Sei es aus Eigeninteresse oder einfach nur aus Dummheit.

Wer hat die gleiche Zeit wie die Weltzeit?

Ja, es ist Weltzeit, wir werden an der Moskauer Börse gehandelt, zur gleichen Zeit,

und es ist nicht die Schuld des Brokers, sondern die der Entwickler, denn jeder Kurs, der von der Börse kommt

hat Zeit, daher sollte die Zeit der letzten bekannten Notierung sein

bekannter Zeitpunkt des Austauschs (NICHT DER SERVER) und das TERMINAL

ZeitStrom

Возвращает последнее известное время сервера, время прихода последней котировки по одному из выбранных в "Обзоре рынка" символов.


TimeCurrent, liefert die Zeit des SERVERs, nicht des TERMINALS!

Wahrscheinlich wachsen hier die "Beine".

 
prostotrader:

Ja, lass es sein, die Welt, wir handeln an der Moskauer Börse, nach der Zeit der Börse,

und es ist nicht die Schuld des Brokers, sondern die der Entwickler, denn jeder Kurs, der von der Börse kommt

hat Zeit, daher sollte die Zeit der letzten bekannten Notierung sein

bekannter Zeitpunkt des Austauschs (NICHT DER SERVER) und das TERMINAL

ZeitStrom

Возвращает последнее известное время сервера, время прихода последней котировки по одному из выбранных в "Обзоре рынка" символов.


TimeCurrent, gibt die Zeit des SERVERs zurück, nicht die der Börse!

Daher wohl auch "die Beine wachsen".

Und wenn der Server in Moskau und die Börse in Brasilien steht, kann das sein?

 
Sergey Chalyshev:

Und wenn der Server in Moskau steht und die Börse in Brasilien ist, kann das sein?

Es ist mir egal, wo der Server steht!

Das Zitat (bzw. die ZitatZEIT) ist die aktuelle ZEIT.

Hinzugefügt

Was ist jetzt gerade los?

Der MT5-Server sendet lediglich einen Kurs an das Terminal, unabhängig vom Zeitpunkt des Kurses,

Die Zeit des Servers und die Zeit der Notierung sind nicht synchronisiert, weil es eine Vorbörse gibt.

Der EA sendet den Auftrag, das Terminal bestätigt ihn und der Server vergleicht die Zeit mit

Der Server prüft die Uhrzeit, AUßER ich weiß, wie spät es ist, und passt die Bestellung dann mit einem Fehler von 3 Sekunden (meiner Zeit) an !!!! an.

 
prostotrader:

Es ist mir egal, wo der Server steht!

Die Notierung (oder vielmehr die ZEIT der Notierung) ist die aktuelle HANDELSzeit.

Hinzugefügt von

Was im Moment passiert, ist

Der MT5-Server sendet einfach einen Kurs an das Terminal, unabhängig von der Uhrzeit des Kurses,

Die Zeit des Servers und die Zeit der Notierung sind nicht synchronisiert, weil es eine Vorbörse gibt.

Der EA sendet den Auftrag, das Terminal bestätigt ihn und der Server vergleicht die Zeit mit

der Server prüft die Zeit ÜBERALL und passt die Reihenfolge mit einem Fehler von ca. 3 Sekunden neu an!!!!

Quote (oder besser gesagt Quote TIME) ist die aktuelle TIME.

Dies ist die Zeit der Aktien.

Die Serverzeit wird überhaupt nicht an das Terminal übertragen: TimeLocal == TimeTradeServer.

 

Auch ich habe dieses Problem satt. Das ist ein Thema, das in diesem Forum schon öfters aufgetaucht ist. Jeder löst dieses Problem auf seine Weise, aber ich habe noch nicht die richtige Lösung gesehen. Es muss ermittelt werden, wie man das Problem beheben kann, und die Entwickler müssen aufgefordert werden, dies zu tun.

Jetzt gibt es drei Funktionen, um die Zeit zu erhalten (wenn ich mich recht erinnere):

TimeLocal==TimeTradeServer, Computerzeit,

TimeTradeServer == wertlose Funktion,

TimeCurrent == Zeitpunkt des letzten Zitats.

Wir müssen die Börsenzeit hinzufügen,TimeTradeServer verwerfenoder stattdessen die aktuelle Börsenzeit übergeben, oder einenTimeExchange-Typhinzufügen.




 

Und am besten wäre es, wenn man bestimmte Daten in das Terminal eingeben könnte, ohne dass die Zeit stehen bleibt:

- Sie können neue Bewerbungen einreichen,

- Sie können Aufträge löschen,

- Der Handel ist erlaubt.

Aus irgendeinem Grund gibt es eine solche Funktion im Terminal derzeit nicht.

 

Нужно добавить время биржы, выкинуть TimeTradeServer или вместо него передавать текущее время биржи, или добавить типа TimeExchange.

Für unseren Austausch ist das immer noch keine Option, ich weiß nicht, wie es bei anderen ist.

Sie beginnen den Handel, wann sie wollen, manchmal um 10:00 Uhr, manchmal um 10:03 Uhr oder 10:05 Uhr.

Offenbar schalten sie es ein, wenn sie aufwachen und Kaffee trinken)).


 

Sergej!

Lesen Sie die TimeCurrent-Hilfe - dort steht, dass dies die SERVER-Zeit ist.

Возвращает последнее известное время сервера, время прихода последней котировки по одному из выбранных в "Обзоре рынка" символов.
Grund der Beschwerde: