Problèmes avec Time() - page 6

 
CFx:

Pouvez-vous écrire une logique commerciale constamment rentable sur TOUS les types de marché, parce que vous avez fait l'effort d'apprendre ?

Non, je suis encore en train d'apprendre. Mais je sais comment ne pas être un con... Je vois que tu es toujours en train d'apprendre cette compétence.

J'ai juste écrit un code de test pour essayer de vous aider et je l'ai passé au testeur de stratégie... Pourquoi ai-je fait ça ? Avec une attitude comme la vôtre, je ne sais vraiment pas pourquoi je me suis donné la peine...

Mais quoi qu'il en soit, je vais vous dire ce que j'ai trouvé, je peux toujours le faire car j'ai maîtrisé la compétence "ne pas être un con".

Day(), DayOfWeek(), TimeDay() et TimeDayOfWeek() semblent tous fonctionner correctement dans le Straegy Tester (build 427) ... vouliez-vous vraiment utiliser Day() dans votre code ou votre code de construction devrait-il utiliser DayOfWeek() ? le premier, Day() donne une valeur de 0 à 31, le second DayOfWeek() donne une valeur de 0 à 6 le dimanche est 0.

Comment("Day() of the month: ",Day(), " Day of week(): ", DayOfWeek(), "\n", "TimeDay Current: ", TimeDay(TimeCurrent() ), " TimeDay of week Current: ", TimeDayOfWeek(TimeCurrent()) );
 
CFx:

Je devrais donc obtenir autre chose que l'heure du serveur "modélisée".

Non. Vous obtenez l'heure du serveur modélisée parce que vous exécutez le testeur de stratégie en étant déconnecté du serveur de votre courtier... il n'y a donc pas d'heure réelle du serveur... d'où l'heure modélisée que vous obtenez. Si vous étiez toujours connecté à votre courtier et que vous vouliez obtenir l'heure réelle du serveur, vous obtiendriez l'heure du serveur de votre courtier au moment où vous exécutez votre EA dans le testeur de stratégie et cela ne vous serait probablement pas très utile.

Soyez donc heureux que l'heure du serveur que vous obtenez soit modélisée.

 
RaptorUK:

Non, je suis encore en train d'apprendre. Mais je sais comment ne pas être un crétin... Je vois que vous êtes toujours en train d'apprendre cette compétence.

Je viens d'écrire un code de test pour essayer de vous aider et je l'ai passé au testeur de stratégie... Pourquoi ai-je fait ça ? Avec une attitude comme la vôtre, je ne sais vraiment pas pourquoi je me suis donné la peine...

Mais quoi qu'il en soit, je vais vous dire ce que j'ai trouvé, je peux toujours le faire car j'ai maîtrisé la compétence "ne pas être un con".

Day(), DayOfWeek(), TimeDay() et TimeDayOfWeek() semblent tous fonctionner correctement dans le Straegy Tester (build 427) ... vouliez-vous vraiment utiliser Day() dans votre code ou votre code de construction devrait-il utiliser DayOfWeek() ? le premier, Day() donne une valeur de 0 à 31, le second DayOfWeek() donne une valeur de 0 à 6 le dimanche est 0.


Eh bien, je dirais que, vu la façon dont vous m'avez répondu, vous avez échoué à ne pas être un con. Cependant, il y a une différence distincte (et un inconvénient) à être un petit con. Être juste un con, c'est bénin au mieux. Mais être un petit malin, c'est l'équivalent de se tenir devant Bruce Lee, et de lui dire son nom en face. Ou, se tenir devant un millionnaire autodidacte, et lui dire qu'il est fauché. Ou, se tenir devant un vétéran du combat, et lui dire qu'il n'a pas de tripes. Ou, se tenir devant un professeur de mathématiques appliquées, et lui dire qu'il ne connaît rien aux constructions logiques. Ça, c'est être un petit malin.

Deuxièmement, je peux aider n'importe qui à devenir un trader prospère - je l'ai déjà fait cinq (5) fois. Ces personnes souhaitent rester anonymes, avant que vous ne le demandiez. Je ne suis pas ici parce que je veux des compétences en logique commerciale. Je suis venu ici, pour obtenir un peu d'aide avec du MQL, parce que je ne suis pas un développeur MQL et je n'ai pas le temps d'apprendre un langage de programmation, au point où je peux étendre mes compétences créatives de résolution de problèmes en utilisant le langage. Je passe mon temps à perfectionner l'art de créer une logique de transaction et à regarder ma position quotidienne se dérouler sur le marché. La création de nouveaux concepts de trading est mon point fort. Être tête baissée dans le MQL, ne m'a pas rendu rentable. Peut-être que cela a fonctionné pour vous, cependant.

Troisièmement, je ne teste pas dans le Build 427. Une autre supposition que seul un âne pourrait faire. Je dois tester sous la Build 409, et il y a une bonne raison à cela (je n'y reviendrai pas ici). Je l'ai déjà dit - j'ai essayé TOUTES les fonctions Time() de MQL liées aux besoins de l'EA et aucune d'entre elles n'a fonctionné : Day(), TimeHour, TimeMinute, DayOfWeek, etc.

J'ai compris la distinction entre Day() et DayOfWeek(), car je lis toujours la documentation MQL avant de poster une demande d'aide. Je ne me précipite pas sur un forum pour demander de l'aide. J'épuise généralement toutes les sources que je peux trouver sur le web, et j'essaie toutes les configurations que je peux imaginer, y compris les MAUVAISES configurations telles que TimeHour et TimeHour séquentiellement, juste pour voir si j'obtiens une sorte de différence traçable dans le comportement de l'EA.

Quand tout le reste échoue, je me connecte et je demande de l'aide. Les personnes intelligentes font exactement le contraire de ce que j'ai fait - et vous devriez être capable de détecter la différence.

 
RaptorUK:

Non. Vous obtenez un temps de serveur modélisé parce que vous exécutez le testeur de stratégie en étant déconnecté du serveur de votre courtier... il n'y a donc pas de temps de serveur réel... d'où le modèle que vous obtenez. Si vous étiez toujours connecté à votre courtier et que vous vouliez obtenir l'heure réelle du serveur, vous obtiendriez l'heure du serveur de votre courtier au moment où vous exécutez votre EA dans le testeur de stratégie et cela ne vous serait probablement pas très utile.

Soyez donc heureux que l'heure du serveur que vous obtenez soit modélisée.


En fait, ce n'est pas correct.

Le script que j'utilise fournit au moteur du testeur l'heure historique réelle du serveur. Le processus exige que je convertisse les fichiers .csv en fichiers .hst, puis les fichiers .hst en fichiers .fxt. Le moteur du testeur reçoit non seulement les ticks du marché (Bid/Ask), mais aussi la date et l'heure associées à chaque tick. Les données/heures sont transmises au testeur avec les ticks Bid/Ask. Je n'ai pas conçu le script de test, mais il produit une modélisation à 99 % et, surtout, la construction des bougies pour chaque période de temps est fidèle au marché historique. En d'autres termes, comme la date et l'heure sont transmises au testeur avec les ticks, chaque fichier .hst généré contient l'empreinte du volume réel du marché tel qu'il est produit par le marché sur les données et l'heure associées à chaque barre.

Je devrais obtenir l'heure historique réelle du serveur, connecté ou déconnecté du back-end du courtier. C'est ce que fait le script et c'est ainsi que je suis en mesure d'effectuer des backtests sur plusieurs périodes.

 
CFx:

Ce n'est pas correct.

Le script que j'utilise fournit au moteur de test l'heure historique réelle du serveur. Le processus exige que je convertisse les fichiers .csv en fichiers .hst, puis les fichiers .hst en fichiers .fxt. Le moteur du testeur reçoit non seulement les ticks du marché (Bid/Ask), mais aussi la date et l'heure associées à chaque tick. Les données/heures sont transmises au testeur avec les ticks Bid/Ask. Je n'ai pas conçu le script de test, mais il produit une modélisation à 99 % et, surtout, la construction des bougies pour chaque période de temps est fidèle au marché historique. En d'autres termes, comme la date et l'heure sont transmises au testeur avec les ticks, chaque fichier .hst généré contient l'empreinte du volume réel du marché tel qu'il est produit par le marché sur les données et l'heure associées à chaque barre.

Je devrais obtenir l'heure historique réelle du serveur, connecté ou déconnecté du back-end du courtier. C'est ce que fait le script et c'est ainsi que je suis en mesure de faire des backtests multi-trames.

Désolé que vous ne compreniez pas certains des faits.

J'ai aussi utilisé les données tick de Dukascopy, traitées par les scripts eareview et oui, je comprends comment ils fonctionnent. Lorsque vous testez en utilisant le Strategy Tester le 31 mai 2012 et que les données que vous utilisez sont de 2008, l'heure du serveur qui vous est donnée est de 2008, il s'agit d'une heure du serveur modélisée et non d'une heure réelle du serveur... l'heure réelle du serveur est une date de 2012 et non de 2008.

A propos, le chiffre de 99% de qualité de modélisation n'a aucun sens... c'est juste un chiffre qui est écrit dans le fichier fxt.... Lisez le contenu de eareview et vous le constaterez par vous-même. Vous n'avez pas besoin de données tick pour faire du back testing multi timeframe... vous ne pouvez pas regarder n'importe quel timeframe inférieur à M1.... Je suis cependant d'accord sur le fait que les données tick doivent être utilisées comme test final d'un EA. Peut-être pouvons-nous nous mettre d'accord sur ce point.

 
CFx:

Troisièmement, je ne teste pas dans le Build 427. Une autre supposition que seul un âne pourrait faire.

Ce n'est pas une supposition que j'ai faite... Je voulais simplement vous faire savoir dans quelle Build j'ai testé... Je pensais que c'était pertinent.
 
CFx:

Je comprends la distinction entre Day() et DayOfWeek(),

C'est le cas ? votre code dans votre OP montre que vous essayez de fermer une transaction si le jour est 1 ou 2 etc... et bien le 1er avril 2012 était un dimanche, votre code ne va pas fermer une transaction un dimanche... maintenant si vous vouliez dire DayOfWeek() au lieu de Day() cela aurait pu avoir un sens...

Day() == 1 || Day() == 2 || Day() == 3 || Day() == 4 && TimeHour(TimeCurrent()) >=23 && TimeMinute(TimeCurrent()) >=57 || Day() == 5 && TimeHour(TimeCurrent()) >=21 && TimeMinute(TimeCurrent()) >=57

Note: The problem is that all trades remain open Monday through Thursday, through 23:57. Also, all trades remain open on Friday, through 21:57.

Vous ne pouvez pas déterminer si Day() == 4 est un vendredi si vous ne savez pas quel est le mois... Et qu'en est-il des 3 autres semaines du mois ? Vous voulez me faire croire que vous ne tradez que les 5 premiers jours du mois, même si c'est un samedi ou un dimanche ?

 
CFx:

Cela ne fonctionne PAS. Le genre de mentalité qui supposerait automatiquement que ça marche, est probablement la même mentalité qui pense savoir comment trader alors que ça ne marche pas.


Ce n'est pas le genre de mentalité que j'ai, bien que vous ayez fait un assez bon travail pour montrer le genre que vous avez,

Je n'ai rien supposé, j'ai dit que ça marche parce que je SAIS que ça marche.

Testeur de stratégie:

 
Quelqu'un peut-il m'expliquer ce que sont les valeurs de retour des fonctions? Et comment cela fonctionne en détail, s'il vous plaît. ....
 
Jonathan:
Quelqu'un peut-il m'expliquer ce que sont les valeurs de retour des fonctions ? Et comment cela fonctionne en détail, s'il vous plaît. ....
J'ai créé un fil de discussion juste pour vous : Que sont les valeurs de retour des fonctions ? Comment les utiliser ?