Faites un tel changement et il continuera. La définition de l'été et de l'hiver n'a pas été faite, quelqu'un le fera.
Premièrement, ce n'est pas "moins 2" mais "plus 2". Alors pour mon cas, ça colle.
Deuxièmement, pour un serveur qui a un décalage de 4 heures par rapport à GMT, suggérez-vous de mettre 4 au lieu de 2 ? Dans ce cas, je n'ai pas besoin de fonction, il me suffit d'utiliser un nombre initialement connu et d'obtenir une réponse correcte. )))
Tout d'abord, ce n'est pas "moins 2", mais "plus 2". Alors pour mon cas, ça colle.
Deuxièmement, pour un serveur qui est décalé de 4 heures par rapport à l'heure GMT, conseillez-vous de mettre 4 au lieu de 2 ? Dans ce cas, je n'ai pas besoin de fonction, il me suffit d'utiliser un nombre initialement connu et d'obtenir une réponse correcte. )))
Vous m'avez attribué une déclaration que je n'ai pas faite et vous avez dit que c'était faux. Vous avez également essayé de faire une blague à ce sujet.
Comme la fonction OrderSend() rencontre une erreur "le marché est fermé" (cela existe), nous arrêtons toutes les tentatives de négociation et attendons que le prix change, ce qui signifiera que le marché s'est ouvert.
L'idée pourrait certainement aider, j'aimerais savoir quand le marché est fermé sans erreurs inutiles. Nous devons y réfléchir.
Maxim Kuznetsov: Nous ne devons pas chercher la dernière minute (23:59) sur l'EURUSD, mais la nuit sur l'or. L'or se négocie strictement amsterdam, monnaies selon l'heure du serveur. Trouvez ici le décalage GMT du serveur
Je vais vous dire un terrible secret, tous les jours ne peuvent pas se terminer à 23h59 :-) Et nous ne pouvons pas savoir à l'avance à quelle heure elle se terminera. Par exemple, les jours précédant les vacances et les vendredis.
Faites un tel changement et il continuera. Je n'ai pas fait de définition d'été et d'hiver, quelqu'un le fera.
Cela ne fonctionnera pas sur les systèmes où ils ne mettent pas à jour le système tel qu'il est installé :-) Par exemple, il y a toujours le changement d'heure de l'hiver à l'été en RF. J'ai rencontré de tels systèmes...
Vous m'avez attribué une déclaration que je n'ai pas faite, puis vous avez dit qu'elle était fausse. Et puis vous avez essayé de faire une blague à ce sujet.
Je ne plaisante pas avec ça. Dans le code que vous avez soumis, 0 est changé en 2. Exactement autant que j'obtienne un décalage entre le temps réel et le temps calculé par le serveur. C'est pourquoi j'ai été surpris par cette approche : regarder l'écart nécessaire et mettre le décalage nécessaire au lieu de 0. Il n'y a pas de quoi rire ici.
A propos de la blague - pas de blague. Le code que vous avez soumis a été modifié de 0 à 2. J'ai obtenu la différence entre le temps réel et le temps estimé du serveur. C'est pourquoi j'ai été surpris par cette approche : regarder l'écart nécessaire et mettre le décalage nécessaire au lieu de 0. Il n'y a pas de quoi rire.
Le code de contrôle
#property strict#define HOUR 3600#define DAY (24 * HOUR)
#define WEEK 7datetime GetBarTime( constdatetime time, constbool NextBar = false, string Symb = NULL, constENUM_TIMEFRAMES TimeFrame = PERIOD_M1 )
{
if (Symb == NULL)
Symb = _Symbol;
return(iTime(Symb, TimeFrame, iBarShift(Symb, TimeFrame, time) - (NextBar ? 1 : 0)));
}
datetime GetTimeDayOfWeek( constint Shift = 0, constENUM_DAY_OF_WEEK Day = SUNDAY )
{
constdatetime 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( constbool SummerTime = false )
{
constdatetime 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_6940794voidOnStart()
{
PRINT(TimeGMT());
PRINT(TimeServerGMT());
}
Résultat sur une machine avec le même GMT que chez Alpari.
Comment reproduire à partir d'un dessin ?
Je pense que la figure le montre de manière très éloquente :
Faites un tel changement et il continuera. La définition de l'été et de l'hiver n'a pas été faite, quelqu'un le fera.
Premièrement, ce n'est pas "moins 2" mais "plus 2". Alors pour mon cas, ça colle.
Deuxièmement, pour un serveur qui a un décalage de 4 heures par rapport à GMT, suggérez-vous de mettre 4 au lieu de 2 ? Dans ce cas, je n'ai pas besoin de fonction, il me suffit d'utiliser un nombre initialement connu et d'obtenir une réponse correcte. )))
De quoi d'autre avez-vous besoin ? Dites-moi, je vous fournirai.
Le code et le nom du serveur de trading auquel vous pouvez vous connecter en ouvrant une démo via le terminal.
Tout d'abord, ce n'est pas "moins 2", mais "plus 2". Alors pour mon cas, ça colle.
Deuxièmement, pour un serveur qui est décalé de 4 heures par rapport à l'heure GMT, conseillez-vous de mettre 4 au lieu de 2 ? Dans ce cas, je n'ai pas besoin de fonction, il me suffit d'utiliser un nombre initialement connu et d'obtenir une réponse correcte. )))
Vous m'avez attribué une déclaration que je n'ai pas faite et vous avez dit que c'était faux. Vous avez également essayé de faire une blague à ce sujet.
Comme la fonction OrderSend() rencontre une erreur "le marché est fermé" (cela existe), nous arrêtons toutes les tentatives de négociation et attendons que le prix change, ce qui signifiera que le marché s'est ouvert.
L'idée pourrait certainement aider, j'aimerais savoir quand le marché est fermé sans erreurs inutiles. Nous devons y réfléchir.
Nous ne devons pas chercher la dernière minute (23:59) sur l'EURUSD, mais la nuit sur l'or. L'or se négocie strictement amsterdam, monnaies selon l'heure du serveur. Trouvez ici le décalage GMT du serveur
Je vais vous dire un terrible secret, tous les jours ne peuvent pas se terminer à 23h59 :-) Et nous ne pouvons pas savoir à l'avance à quelle heure elle se terminera. Par exemple, les jours précédant les vacances et les vendredis.
Faites un tel changement et il continuera. Je n'ai pas fait de définition d'été et d'hiver, quelqu'un le fera.
Cela ne fonctionnera pas sur les systèmes où ils ne mettent pas à jour le système tel qu'il est installé :-) Par exemple, il y a toujours le changement d'heure de l'hiver à l'été en RF. J'ai rencontré de tels systèmes...
Le code et le nom du serveur de trading auquel vous pouvez vous connecter en ouvrant une démo via le terminal.
Code: https://www.mql5.com/ru/forum/327616/page3#comment_14093858
Identifiant : 12752745
Serveur : yk2mkat
Serveur : Alpari-Demo
Vous m'avez attribué une déclaration que je n'ai pas faite, puis vous avez dit qu'elle était fausse. Et puis vous avez essayé de faire une blague à ce sujet.
Ce n'est pas toi qui l'a écrit?
Je ne plaisante pas avec ça. Dans le code que vous avez soumis, 0 est changé en 2. Exactement autant que j'obtienne un décalage entre le temps réel et le temps calculé par le serveur. C'est pourquoi j'ai été surpris par cette approche : regarder l'écart nécessaire et mettre le décalage nécessaire au lieu de 0. Il n'y a pas de quoi rire ici.
Code: https://www.mql5.com/ru/forum/327616/page3#comment_14093858
Identifiant : 12752745
compte : yk2mkat
Serveur : Alpari-Demo
Ce n'est pas vous qui avez écrit?
A propos de la blague - pas de blague. Le code que vous avez soumis a été modifié de 0 à 2. J'ai obtenu la différence entre le temps réel et le temps estimé du serveur. C'est pourquoi j'ai été surpris par cette approche : regarder l'écart nécessaire et mettre le décalage nécessaire au lieu de 0. Il n'y a pas de quoi rire.
Le code de contrôle
Résultat sur une machine avec le même GMT que chez Alpari.
Vérifié
C'est correct.