TimeTradeServer analogue pour MT4 - page 4

 

C'est un bon point, vous devez connaître l'heure du serveur le week-end. Parce que le temps du serveur s'arrête et donne toujours le vendredi.
Besoin d'un moyen d'identifier, les week-ends pour les copieurs sans utiliser la dll

Le TimeTradeServer fonctionne parfaitement dans MT5, ajoutez-le à mt4 et cela résoudrait d'un coup les problèmes d'analyse du temps.

 
Alexandr Gavrilin:

C'est un bon point ici, vous devez connaître l'heure du serveur le week-end. Parce que le temps du serveur s'arrête et donne toujours le vendredi.
Nous avons besoin d'un moyen d'identifier le week-end pour les copieurs sans utiliser de dll.

TimeTradeServer fonctionne parfaitement dans MT5, ajoutez-le à mt4 et il résoudrait d'un coup les problèmes d'analyse du temps.

Lorsque la fonction OrderSend() se heurte à une erreur "le marché est fermé" (cela existe), arrêtez toutes les tentatives de transaction et attendez que le prix change, ce qui signifierait que le marché s'est ouvert.

 
Dmitry Fedoseev:

Lorsque la fonction OrderSend() rencontre une erreur de type "marché 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.

et "comme non rencontré", l'historique entier est chargé d'ordres en attente)

 
fxsaber:

Vitaly a donné un lien vers cette fonction. Je ne me souviens pas sur quoi l'idée est basée. Mais j'ai dû le vérifier quand j'écrivais. Essayez-le.

L'idée est basée sur la recherche de cotations de dernière minute pour le symbole le plus courant (dans ce cas EURUSD) et sur le calcul du décalage horaire du serveur par rapport à GMT. Mais il y a tellement de "si" ici que, malheureusement, ce n'est pas une solution au problème.

J'ai vérifié sur Alpari, ça ne marche pas :


 
Ihor Herasko:

J'ai vérifié sur Alpari, ça ne marche pas :

Y aura-t-il donc des données de lecture ?

 
fxsaber:

Il y aura donc des données à reproduire ?

J'ai donné une photo. Peut-être que tu ne le vois pas ?

 
Taras Slobodyanik:

et "comme je ne suis pas tombé dessus", toute l'histoire est parsemée de pauses)

Pouvez-vous être plus précis ?

 
Ihor Herasko:

J'ai fait un dessin.

Comment reproduire à partir d'un dessin ?

 
Ihor Herasko:

L'idée est de trouver les cotations de dernière minute pour le symbole le plus courant (dans ce cas EURUSD) et de calculer en quelque sorte le décalage de l'heure du serveur par rapport à l'heure GMT. Mais il y a tellement de "si" ici que, malheureusement, ce n'est pas une solution au problème.

J'ai vérifié sur Alpari, ça ne marche pas :


vous ne devez pas chercher la dernière minute (23:59) sur l'EURUSD, mais la nuit sur l'or. L'or se négocie strictement sur amsterdam, les devises sur l'heure du serveur. Trouvez ici le décalage GMT du serveur
 

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading

Particularités de mql4, trucs et astuces

Ivan Titov, 2019.08.12 16:19

Êtes-vous en train de dire que si les caractères non forex ont un historique disponible, alors cela ne fonctionnera pas ?

Voici également un exemple pour le forex sur Alpari-Demo EURUSD,H1 dans le testeur :

Pour 2019.02.19 14:00:00 retours 2019.02.19 11:00:00

Pour 2019.06.19 14:00:00-retour 2019.06.19 11:00:00

Bien qu'en hiver il devrait être GMT+2 et en été GMT+3 (EET).

// Аналог по серверному времени - 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);
}

Faites un tel changement et cela fonctionnera. Je n'ai pas fait de définition d'été et d'hiver, quelqu'un le fera.