Des miracles avec le testeur.

 

Chers développeurs, j'ai un indicateur qui donne un signal d'entrée et un signal de sortie.
Je lance un robot de trading avec cet indicateur. Trois essais du testeur me donnent trois résultats différents.
Je travaille avec le testeur depuis la version 3. Comme si toutes les nuances étaient prises en compte : l'indicateur ne surcharge pas, le signal n'est pas lu sur la 0ème barre.

Je fais les tests aux prix d'ouverture et je les vérifie dans chaque mode de tick. De quelles informations avez-vous besoin pour comprendre pourquoi les résultats des tests semblent changer avec le même indicateur et les mêmes paramètres EA ?

 

Autant de détails que possible et de préférence à servicedesk.

  1. Quelques rapports sur les résultats.
  2. Les fichiers journaux.
  3. Serveur.
  4. Quels agents sont utilisés
  5. par Expert Advisor avec l'indicateur (le code source est préférable)
  6. .
  7. Les paramètres dans le testeur de stratégie.
 
1CMaster:

Chers développeurs, j'ai un indicateur qui donne un signal d'entrée et un signal de sortie.
J'utilise un robot de trading avec cet indicateur. Trois essais du testeur - trois résultats différents.
Je travaille avec le testeur depuis longtemps, depuis la version 3. J'ai en quelque sorte pris en compte toutes les nuances : l'indicateur ne surdécoupe pas et je ne lis pas le signal sur la 0ème barre.

Quelles sont les informations dont vous avez besoin pour comprendre pourquoi les résultats des tests semblent changer avec le même indicateur et les mêmes paramètres EA ?

MT4 MT5 ?
 
1CMaster:

Chers développeurs, j'ai un indicateur qui donne un signal d'entrée et un signal de sortie.
J'utilise un robot de trading avec cet indicateur. Trois essais du testeur - trois résultats différents.
Je travaille avec le testeur depuis longtemps, depuis la version 3. J'ai en quelque sorte pris en compte toutes les nuances : l'indicateur ne surdécoupe pas et je ne lis pas le signal sur la 0ème barre.

Je fais des tests aux prix ouverts et je les recoupe dans chaque mode de tick. De quelles informations avez-vous besoin pour comprendre pourquoi les résultats des tests changent en quelque sorte avec le même indicateur et les mêmes paramètres EA ?

Parfois, de tels miracles se produisent si une variable (en particulier le tableau) s'avère être non initialisée. // Par erreur.

Dans de tels cas, la variable contient un déchet aléatoire et, par conséquent, des merveilles dans un testeur :)

Vérifiez-le, peut-être une bosse dans le code. J'ai (whew, whew) le testeur ne fait pas de miracle ces derniers temps.

 
alexvd:

Autant de détails que possible et de préférence à servicedesk.

  1. Quelques rapports sur les résultats.
  2. Les fichiers journaux.
  3. Serveur.
  4. Quels agents sont utilisés
  5. par Expert Advisor avec l'indicateur (le code source est préférable)
  6. .
  7. Les paramètres dans le testeur de stratégie.

Chers développeurs.

Je vous envoie tout le code source.

Une brève instruction :

Ouvrez EURUSD H1, mettez-y les indicateurs SS (système de signal) et FB (barres de fibo). Ils montreront deux signaux - cercle - signal de vente. Tous les paramètres sont rigoureusement prescrits, rien ne doit être mis en place.

2. Testeur de démarrage pour la période 01.01.2012 - 25.02.2012 EURUSD H1. Sur un signal de vente, le testeur doit vendre et conclure la transaction sur un signal de clôture.

3 Lorsque plusieurs Testeurs sont exécutés, ils montrent des résultats différents (+96.80 ; -156.20 ; -416.20 ; -335.20). La valeur correcte est -335.20 - et ensuite coïncider visuellement le testeur de signaux avec l'indicateur de signaux SS.

L'indicateur est spécialement écrit pour vérifier l'exactitude du testeur. Je l'ai revérifié plusieurs fois en déplaçant les signaux.

Ce qui se passe n'est pas clair. J'espère que vous pourrez clarifier la situation. Je ne peux pas lancer l'optimisation en raison de résultats différents.

IMPORTANT : J'exécute la version portable de Metatrader (/portable) sur un serveur avec Windows Server 2008 R2 SP1, 2*Xeon 5640 (12 cœurs, 24 threads).

Dossiers :
MQL5.zip  248 kb
 
Où se trouve ce service d'assistance - dois-je y envoyer une demande ?
 
1CMaster:
Où se trouve ce service d'assistance - dois-je y envoyer une demande ?
dans votre profil, profil en haut à droite.
 
1CMaster:

Spécificité de MT5 : Si le tampon de l'indicateur n'est pas volontairement mis à zéro, lors de l'utilisation de iCustom(), le terminal peut renvoyer n'importe quel déchet de la pile comme valeur de tampon.

D'où l'apparition de signaux incompréhensibles.

Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
  • 2010.10.25
  • Nikolay Kositsin
  • www.mql5.com
Статья о традиционных и не совсем традиционных алгоритмах усреднения, упакованных в максимально простые и достаточно однотипные классы. Они задумывались для универсального использования в практических разработках индикаторов. Надеюсь, что предложенные классы в определенных ситуациях могут оказаться достаточно актуальной альтернативой громоздким, в некотором смысле, вызовам пользовательских и технических индикаторов.
 
MoneyJinn:

Spécificité de MT5 : Si le tampon de l'indicateur n'est pas mis à zéro délibérément, lors du travail par iCustom(), le terminal peut renvoyer n'importe quel déchet de la pile comme valeur de tampon.

D'où l'apparition de signaux incompréhensibles.

Avez-vous un lien vers l'utilisation correcte de iCustom() en tenant compte de ces nuances ? Je suis fatigué de le vérifier et de chercher ce qu'il y a.
 
1CMaster:
Existe-t-il un lien vers l'utilisation correcte de iCustom() en tenant compte de ces nuances ? Parce que je suis fatigué de le vérifier et de chercher ce qui ne va pas.

Quel est le rapport avec iCustom() ? L'indicateur à connecter doit initialiser le tampon (par exemple avec des zéros, si oscillateur) avant utilisation.

Je vous ai fait une allusion assez précise hier sur l'origine de votre salive.

MetaDriver:

Parfois, de tels miracles se produisent si une variable (un tableau en particulier) s'avère être non initialisée. // Par inadvertance.

// Ou bien croyez-vous sacrément que c'est la faute du testeur, alors pourquoi seulement vous ?
 
https://www.mql5.com/ru/docs/array/arrayinitialize

ArrayInitialize

Initialise un tableau numérique avec la valeur spécifiée.

void  ArrayInitialize(
   double  array[],     // инициализируемый массив
   double  value        // значение, которое будет установлено
   );

Paramètres

tableau[]

[out] Le tableau numérique à initialiser.

valeur

[in] Nouvelle valeur à attribuer à tous les éléments du tableau.

Документация по MQL5: Операции с массивами / ArrayInitialize
Документация по MQL5: Операции с массивами / ArrayInitialize
  • www.mql5.com
Операции с массивами / ArrayInitialize - Документация по MQL5
Raison: