Pourquoi n'y a-t-il PAS d'évaluation complète de l'environnement dans la base de code ? - page 4

 

Quelques éléments à ajouter comme options EA :

- calcul du numéro magique unique, peut-être infaillible pour donner le même résultat lorsque le courtier change le nom du symbole (par exemple de "EURUSD" à "EURUSD.m")

- options de gestion des ordres (trailing stop, break even (en pips ou autres valeurs comme psar, x bars high/low, ma, etc.), clôture de l'ordre)

- traitement étendu des informations sur les ordres par ticket d'ordre (pour lequel un fichier texte (ou csv) semble être le moyen le plus simple et le plus approprié). GV est limité, OrderComment() peut être modifié par le courtier.

 
S'appuyer sur IsNYOnDst
datetime TimeSrvToNY(datetime timeSrv=EMPTY){      // Server time to NY time
   if(timeSrv == EMPTY) timeSrv = timeCur_srv;
      #define NY_TZ_STD -5                   // NY is UTC-5 (STD) or UTC-4 (DST)
   int utcToNY = NY_TZ_STD + IsNYonDST(timeSrv);
   return(TimeSrvToUTC(timeSrv) + utcToNY * 3600);  // Previous called TimeGMT
}
datetime TimeNyToSrv(datetime timeNY){
   int utcToNY = NY_TZ_STD + IsNYonDST(timeNY);
   return( TimeUtcToSrv(timeNY - utcToNY * 3600) ); // Previous called TimeServer
}
 
WHRoeder, mettez-vous à jour le lien de téléchargement ou devons-nous "patcher" manuellement la source WHRea avec toutes les mises à jour que vous fournissez dans ce fil de discussion ?
 
Vous ne pouvez pas mettre à jour les articles une fois qu'ils datent de quelques jours.
 
Je vois... Pourriez-vous s'il vous plaît poster la version la plus récente ici à nouveau alors ?
 
mbirrell:

Je suis un peu inquiet à l'idée de partager mes indicateurs et EAs personnalisés car si je le faisais et que tout le monde commençait à les utiliser, ils ne fonctionneraient plus... Quelqu'un d'autre est-il d'accord ?

Je sais que cela semble un peu égoïste... mais quand j'atteindrai 5 millions, je partagerai ;-)

En fait, si tout le monde utilisait votre Ea, le prix du marché serait soit nul soit infini. Tout le monde voudra acheter ou vendre au même moment.
 

Bonjour les gars, est-ce que l'exemple du tutoriel MQL4 est suffisant si on veut une solution simple et générale ?

Mon EA trade et fait des calculs par barre et non par tick.


int Fun_Error(int Error) // Fonction de traitement des erreurs
{
switch(Error)
{// Erreurs non cruciales
cas 4 : Alert("Le serveur commercial est occupé. Essayez encore une fois..") ;
Sleep(3000) ;// Solution simple
return(1) ;// Quitter la fonction
cas 135:Alert("Le prix a changé, j'essaie encore une fois...") ;
RefreshRates() ;// Rafraîchit les taux
return(1) ;// Quitte la fonction
case 136:Alert("Pas de prix. En attente d'un nouveau tick..") ;
while(RefreshRates()==false) // Attend un nouveau tick
Sleep(1) ;// Pause dans la boucle
return(1) ;// Quitte la fonction
case 137:Alert("Broker is busy. Trying once again..") ;
Sleep(3000) ;// Solution simple
return(1) ;// Quitter la fonction
case 146:Alert("Le sous-système de négociation est occupé. Essayez encore une fois...") ;
Sleep(500) ;// Solution simple
return(1) ;// Quitter la fonction
// Erreurs critiques
cas 2 : Alert("Erreur courante.") ;
return(0) ;// Sortie de la fonction
cas 5 : Alert("Ancienne version du terminal.") ;
Travail=false ;// Termine l'opération
return(0) ;// Sortie de la fonction
cas 64 : Alert("Compte bloqué.") ;
Travail=faux ;// Termine l'opération
return(0) ;// Quitter la fonction
cas 133:Alert("Trading interdit.") ;
return(0) ;// Quitter la fonction
cas 134:Alert("Pas assez d'argent pour exécuter l'opération.") ;
return(0) ;// Quitter la fonction
par défaut : Alert("Une erreur s'est produite : ",Error) ; // Autres variantes
return(0) ;// Quitte la fonction
}
}

 

Cela peut être la base d'un très bon Shell/Template EA : WHR est un codeur MT expérimenté.

Il a été conçu à l'origine comme une source de code EA utile, ce n'est pas un Shell "plug and play".

J'ai mis à jour cette EA de plusieurs façons :

1. J'ai modifié la syntaxe, les noms de variables pour qu'il compile dans les versions actuelles de MQL4.
J'ai aussi ajouté des changements très mineurs pour qu'il compile, commenté avec "Big Be".

2. J'ai incorporé toutes les sections de code supplémentaires que WHR a mises dans le fil de discussion.
J'ai laissé en place mais commenté les sections qui ont été remplacées.
Des erreurs dans l'ajout de ces sections sont possibles, mais j'ai été aussi prudent que possible.
Le manque d'intégration complète avec le reste de l'EA est également possible.

3. Je l'ai également fait passer par un programme qui nettoie le format du texte pour le rendre plus lisible.

Il va commencer à fonctionner dans le testeur de stratégie.
Il n'effectuera pas de transactions, car la configuration des règles d'entrée est laissée à votre discrétion.
Je ne l'ai pas poussé plus loin car j'ai d'autres exigences en matière de temps.

TRAVAIL NÉCESSAIRE :
Bien qu'il y ait des commentaires tout au long, beaucoup ont besoin d'être clarifiés. Ou écrire s'il n'y en a pas. A quoi sert chaque section ou fonction ?
Un exemple : CallAgain() dit "Sauter les ticks inutiles", quelle est la méthode ou la logique ? Il ne prend probablement que les ticks qui sont suffisamment éloignés et/ou qui sont dans la direction du trade s'il s'agit d'un Trailing Stop, mais cela nécessitera une étude pour le vérifier.

Cela lui permettra de mieux remplir son rôle de source d'idées et de mieux fonctionner en tant que modèle d'EA.

TESTS SUPPLÉMENTAIRES :
Ajoutez quelques règles d'entrée et vérifiez que chaque section fait ce qu'elle est censée faire. Cela demande beaucoup d'étude dans le Strategy Tester. Et probablement un peu de codage ici et là pour qu'il fasse ce qu'il est censé faire. Lorsque cela fonctionne, il faut ensuite effectuer de nombreux tests sur un compte de démonstration.

AVERTISSEMENTS :
Au moins une fonction est incomplète, et il peut y avoir des erreurs dans ce code, ou des changements dans Metatrader depuis que le whrea a été écrit qui ne sont pas autorisés.

Coder / utiliser un EA sans le comprendre est un peu comme essayer de piloter un jet sans comprendre toutes les commandes et comment les utiliser.
Mais, faites comme vous le souhaitez : c'est votre argent.

DEMANDEZ
Aidez-nous si vous avez les connaissances nécessaires et un peu de temps.


Big Be (BigBe)

Dossiers :
whrea_v1.2.mq4  188 kb
 
William Roeder:

Pouvez-vous expliquer ce qu'est pips2dbl ?

 
Pooya Khamooshi: Pouvez-vous expliquer ce qu'est pips2dbl ?

Pour convertir les PIP en tick.

Un PIP n'est pas un Point ou un Tick.
Qu'est-ce qu'un TICK ? -Forum de programmation MQL4

L'utilisation de points signifie des ruptures de code sur les courtiers à 4 chiffres, les exotiques (par exemple USDZAR où le spread est supérieur à 500 points) et les métaux. Calculez ce qu'est un PIP et utilisez-le, pas des points.
Comment gérer les paires JPY avec des paramètres ? -Forum de programmation MQL4
Slippage défini en points d'indice - Paires de devises - Expert Advisors et Trading automatisé - MQL5 programming forum

Raison: