Erreurs, bugs, questions - page 2320

 
Rashid Umarov:

Je n'ai rien compris du tout - pourquoi devrais-je m'embêter avec cette citation ? Vous avez fait une supposition - je l'ai vérifiée et je l'ai postée. Beaucoup de gens croient simplement ce qui est écrit sur la barrière. Personne ne va vérifier ce qui est écrit, vous devez le faire vous-même avant d'aller trop loin.

J'ai compris le code C++ et j'ai écrit un exemple de ce code. S'il n'y avait pas d'interdiction, il serait intéressant d'entendre la réponse à l'exemple donné de divergence de Sharpe pour des CT identiques.


Résumé :

  • La formule de MT donne le même résultat pour des CT identiques.
  • La formule du code C++ montre des résultats différents pour des CTs identiques.
 

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

Bugs, bugs, questions

fxsaber, 2018.11.06 18:16

ZS Et dans la formule utilisée en MT, bien sûr, l'unité ne serait pas soustraite. Dans l'exemple proposé, quel que soit le nombre d'intervalles de 144 observés, le Sharpe serait toujours le même.

Grâce à cette unité, la différence serait clairement visible avec un petit nombre de transactions. Par exemple, 5 et 5*10.

 
fxsaber:

J'ai compris le code C++ et j'ai écrit un exemple de ce code. S'il n'y avait pas d'interdiction, il serait intéressant d'entendre la réponse à l'exemple donné de divergence de Sharpe pour des CT identiques.


Résumé :

  • La formule de MT donne le même résultat pour des CT identiques.
  • La formule du code C++ montre des résultats différents pour des CTs identiques.

J'ai rencontré ce problème il y a un an, je ne sais pas s'il a été résolu depuis.

La boucle FOR dans MT5 ne fonctionnait pas correctement si j'utilisais l'opérateur de pré-incrémentation pour une variable.

Le fait est qu'en C++, dans de nombreux cas, la préincrémentation dans de telles boucles donne un petit gain de performance, mais dans MT5, elle n'entraîne que des calculs incorrects.

 
Ilham Djumatov:

J'ai rencontré ce problème il y a un an, je ne sais pas s'il a été résolu depuis.

Dans MT5, la boucle FOR ne fonctionnait pas correctement si l'opérateur de pré-incrémentation d'une variable y était utilisé.

Le fait est qu'en C++, dans de nombreux cas, la préincrémentation dans de telles boucles donne un petit gain de performance, mais dans MT5, elle n'entraîne que des calculs incorrects.

Ces déclarations doivent être étayées par des détails techniques.

Donnez un exemple pour illustrer le problème

 

Probablement une question pour la branche des débutants. Existe-t-il un autre moyen de connaître l'heure actuelle dans le Testeur ?

input int inTimer = 1;
const bool Init = EventSetTimer(inTimer);

void OnTimer()
{
  static datetime TimeTester = TimeCurrent();
  TimeTester += inTimer;
    
  Print(__FUNCTION__ + ": " + (string)TimeCurrent());
  Print(__FUNCTION__ + ": " + (string)TimeTester); // Время Тестера
}

void OnTick()
{
  static bool FirstRun = true;
  
  if (FirstRun)
  {
    DebugBreak();
    
    FirstRun = false;
  }
}


Résultat

2018.09.03 01:35:45   OnTimer: 2018.09.03 01:35:45
2018.09.03 01:35:46   OnTimer: 2018.09.01 00:00:00
2018.09.03 01:35:46   OnTimer: 2018.09.03 01:35:46
2018.09.03 01:35:47   OnTimer: 2018.09.01 00:00:00
2018.09.03 01:35:47   OnTimer: 2018.09.03 01:35:47
2018.09.03 01:35:48   OnTimer: 2018.09.01 00:00:00
2018.09.03 01:35:48   OnTimer: 2018.09.03 01:35:48
2018.09.03 01:35:49   OnTimer: 2018.09.01 00:00:00
2018.09.03 01:35:49   OnTimer: 2018.09.03 01:35:49
 

Pourquoi la date d'expiration d'un ordre en attente ne peut-elle pas être fixée à la seconde près ? Économie de ressources informatiques?

Pour supprimer un ordre en suspens à la seconde près, nous devons créer un système complet avec une minuterie. Il n'y a aucun moyen de résoudre ce problème dans le testeur sans la minuterie (voir ci-dessus).

 
Quel genre d'erreur est-ce là ?
2018.11.07 22:15:35.840 Core 1  2018.11.02 16:34:10   failed unknown 184467.4407360955 M FILTER_EURUSD.rann_RannForex at 0.00000 tp: 0.00000 [Invalid request]
 
fxsaber:

Probablement une question pour la branche des débutants. Existe-t-il un autre moyen de connaître l'heure actuelle dans le Testeur ?

TimeTradeServer().

 
J'avais plusieurs centaines de thèmes dans mes favoris, tous vidés... Sans que je le sache.
 

Je comprends que vous puissiez vérifier par vous-même...

Dans le testeur, quel événement est généré en premier, le tic-tac ou la minuterie ?

Par exemple, le Timer doit être appelé à 12:00:00.000. Et il y a un tic-tac avec la même heure. Lequel est déclenché en premier, OnTimer ou OnTick ?