English Русский 中文 Español Deutsch 日本語 Português 한국어 Italiano Türkçe
Better Programmer (Partie 04): Comment devenir un développeur plus rapide

Better Programmer (Partie 04): Comment devenir un développeur plus rapide

MetaTrader 5Exemples | 30 mars 2022, 09:25
386 0
Omega J Msigwa
Omega J Msigwa

Introduction

Un développement plus rapide est le rêve de tout développeur. Personne ne veut développer un programme ou un morceau de code toute la semaine ou passer trop d'heures, voire de jours, à essayer de comprendre les choses quand nous sommes bloqués dans le processus de codage.

développement plus rapide

Chaque codeur veut être plus rapide

  • Peut-être avez-vous regardé une vidéo de codage MQL5 sur YouTube qui était difficile à suivre parce que vous êtes trop lent pour rattraper la vitesse de l'instructeur et que vous souhaitez atteindre ce niveau par vous-même.
  • Peut-être avez-vous vu des développeurs avec une vitesse de codage magnifique sur le clavier, ils peuvent écrire un algorithme complexe en quelques minutes qui peut vous prendre des heures voire des jours à coder.
  • Ou peut-être aimeriez-vous pouvoir coder plus rapidement et efficacement afin de pouvoir livrer des travaux plus rapidement sur Freelance et être en avance sur vos concurrents.
  • Ou peut-être voulez-vous impressionner votre conjoint/partenaire par vos capacités de superman sur le clavier, être capable de coder avec aucun bug un algorithme complexe en peu de temps.
  • Parfois, vous voudrez peut-être être en mesure de fournir des mises à jour rapides des produits sur le Market et de corriger les bugs et les erreurs que vos clients vous ont envoyés dans votre boîte de réception de courrier électronique ou de messages MQL5.

Faites attention et prenez votre stylo et votre cahier près de vous car je suis sur le point de larguer des bombes de connaissances sur la façon d'augmenter votre vitesse de codage tout en produisant un travail de haute qualité pour vous et votre client.

Vous n'avez besoin d'aucun de ces éléments pour atteindre votre potentiel de vitesse de codage maximal

    • Vaste expérience de codage
    • Meilleur clavier mécanique
    • Être doué pour la frappe au clavier à mémoire musculaire
    • Beaucoup de RAM, de nombreux cœurs, un processeur graphique puissant sur votre ordinateur personnel (PC)

Développeur plus rapide vs Codeur plus rapide

Avant de commencer à supprimer ces clés, je pense qu'il serait préférable d'expliquer la différence entre un développeur et un codeur.

Développeur Codeur
Les développeurs sont des rédacteurs de code plus expérimentés. Ils sont responsables de pratiquement tout dans le projet, par exemple :

Conception, planification du travail, codage et tout ce qui concerne le projet.                                                                                                                                                                                                                                                                                                                            
Toute personne capable d'écrire du code est souvent qualifiée de codeur par les personnes extérieures à l'industrie technologique. Mais, généralement, les codeurs sont considérés comme le niveau de programmeurs (développeurs) le moins formé ou le moins expérimenté. Ces personnes n'ont pas les mêmes connaissances algorithmiques qu'un programmeur ou un développeur, car elles sont souvent débutantes dans le domaine, maîtrisant un seul langage de codage. Les codeurs sont généralement chargés d'écrire des morceaux de code directs qui peuvent facilement être délégués par les développeurs.

En tant que codeur, vous n'avez pas besoin de tout savoir sur le projet. Par exemple, un client indépendant peut souhaiter ajouter une fonction Trailing Stop dans son EA. Un codeur peut aller directement et le coder, l'appeler dans la fonction Ontick puis le tester une ou deux fois sur MetaTrader 5 pour s'assurer qu'il fonctionne si c'est le cas, il le renvoie au client

Dans cet article, nous allons discuter du terme plus large de développeur - comment vous pouvez développer plus rapidement vos systèmes. Nous allons tout étudier entre le design, l'éthique du travail, les outils à utiliser, le codage, le débogage, etc. 


COMMENT DEVENIR PLUS RAPIDE EN TANT QUE DÉVELOPPEUR

01 : Éviter les bugs et les mauvaises architectures

Les développeurs pensent qu'ils passent beaucoup de temps à écrire du code, mais en réalité, nous passons la plupart de notre temps à lire du code, à déboguer et à déterminer quoi faire.

Cela peut vous prendre trois heures pour déboguer un morceau de code que vous avez codé pendant 30 minutes, donc plus vous avez de bugs, plus il vous faudra de temps pour terminer le codage de votre projet. Vous savez maintenant que les bugs ralentissent notre processus de développement. Donc, la meilleure chose à faire pour nous est de les éviter le plus tôt possible.

Mauvaise architecture + Bugs = c'est la fin du monde (je plaisante)

Avoir des bugs dans votre projet est mauvais, mais ne pas le déboguer ou les repérer facilement simplement à cause d'une mauvaise architecture est encore pire. Il suffit de regarder ce morceau de code tiré d'un EA que quelqu'un m'a donné pour corriger les bugs.

ouble NPB=ND(m_account.Balance()*PortionPC,2);
if(CbT==0||PortChange<0||(PortChange>0&&NPB>PortionBalance))PortionBalance=NPB;
if(Pb+Ph<0)DrawDownPC=-(Pb+Ph)/PortionBalance;
if(!FirstRun&&DrawDownPC>=MaxDDPercent/100)
{       ET(A,displayColorLoss,"Equity Stop Loss Reached");
        if(PlaySounds)PlaySound(AlertSound);
        return(0);
}
if(-(Pb+Ph)>MaxDD)MaxDD=-(Pb+Ph);
MaxDDPer=MathMax(MaxDDPer,DrawDownPC*100);
if(SaveStats)Stats(false,TimeCurrent()<NextStats,PortionBalance,Pb+Ph);

//+-----------------------------------------------------------------+
//|                                                                 |
//+-----------------------------------------------------------------+
double StepAB=InitialAB*(1+StopTradePercent),StepSTB=m_accout.Balance()*(1-StopTradePercent), NextISTB=StepAB*(1-StopTradePercent);
if(StepSTB>NextISTB){   InitialAB=StepAB;
        StopTradeBalance=StepSTB;       }
        
double InitPortion=StopTradeBalance*PortionPC;
if(PortionBalance<InitPortion)
{       if(CbT==0)
 {      AllowTrading=false;
        if(PlaySounds)PlaySound(AlertSound);
        Print("Portion Balance dropped below stop trade percent");
        MessageBox("Reset EA, account balance dropped below stop trade percent on "+Symbol()+Period()," Warning",48);
        return(0); }
        else if(!ShutDown&&!RecoupClosedLoss)
        {       ShutDown=true; if(PlaySounds)PlaySound(AlertSound);
                Print("Portion Balance dropped below stop trade percent");
                return(0);              }
}

Regardez à quel point l'architecture est mauvaise. Il n'est pas étonnant qu'il y ait des bugs dans le code. Comme vous pouvez le voir, le code est difficile à comprendre facilement en un coup d'œil, même si vous êtes celui qui a écrit le code en premier lieu.

Vous serez tellement malchanceux (tout comme moi), si quelqu'un vous engage en tant que freelance pour corriger des bugs, et que vous voyez plus de 10 000 lignes de code comme le code ci-dessus (cela fait plus de 3 semaines maintenant et je n'ai toujours pas fini).

C'est exactement mon point ici. Soyez toujours cohérent avec vos modèles de codage, la façon dont vous nommez les fonctions, créez des variables, etc., choisissez celui avec lequel vous êtes à l'aise et assurez-vous qu'ils sont faciles à utiliser pour vous et pour tout le monde.


02 : Apprenez à déboguer rapidement

Nous avons vu sur le premier point que les bugs nous ralentissent et se nourrissent de notre temps. Le débogage est un long sujet pour tout couvrir dans cet article. Je recommande à tous de lire l'article Débogage des programmes MQL5 pour en savoir plus sur le débogage.

Pour être rapide, nous devons apprendre à déboguer très rapidement, voici quelques conseils rapides.

01 : Utilisez le MétaÉditeur CodeStyler .

C'est comme un petit pas vers le débogage, cet outil incroyable ne peut pas se déboguer lui-même mais peut aider à changer l'apparence de notre code et rendre le code clair et facile à lire.

02 : Affichez et Commentez plus.

Pour découvrir ce qui ne fonctionne pas, nous devons imprimer et commenter plus de code dans les zones suspectes.

Trouvez toujours les bugs dans les zones où ils ne peuvent pas être trouvés.

03 : N'essayez pas de changer quoi que ce soit avant d'avoir bien compris comment cela fonctionne.

Je suis sûr que cela vous est déjà arrivé, vous avez supprimé un morceau de code pour que votre système fonctionne, puis vous vous rendez compte plus tard que le code que vous avez supprimé n'a rien à voir avec les bugs de votre système, alors maintenant vous devez réécrire du code une autre fois et il n'y a aucune garantie que vous n'exposerez pas votre système à d'autres bugs tout au long du processus. 

Avant de supprimer quoi que ce soit, lisez-le dans la documentation s'il s'agit d'une fonction intégrée ou d'une méthode. Si vous n'êtes pas sûr, demandez-le sur le forum. Je copierais personnellement tout le code dans un fichier texte lorsque je ne suis pas sûr de la bonne chose à faire, de cette façon je peux être flexible en changeant de code et en testant de nouvelles choses et en me référant au code principal lorsque j'ai découvert quel était l'erreur.


03 : Les bibliothèques sont créées pour un usage spécifique

Lorsque vous travaillez avec une bibliothèque, il est essentiel d'utiliser les classes fournies de la façon dont elles sont prévues, essayer de forcer notre chemin parce que nous sommes trop paresseux pour implémenter quelque chose de propre est un moyen sûr de provoquer un désastre.

Si vous utilisez la bibliothèque standard, il est recommandé d'instancier et de référencer les membres de la bibliothèque de la meilleure manière qui soit claire, simple, cohérente et probablement de la manière recommandée par les développeurs de bibliothèques professionnels.

Par exemple, au lieu de faire référence à la bibliothèque Trade Classes de manière paresseuse et avec des noms peu clairs qui ne sont même pas cohérents comme celui-ci,

#include <Trade\AccountInfo.mqh> //Classe pour travailler avec les propriétés du compte de trading
#include <Trade\SymbolInfo.mqh>  //Classe pour travailler avec les propriétés des instruments de trading
#include <Trade\OrderInfo.mqh>   //Classe pour travailler avec les propriétés des ordres en attente
#include <Trade\OrderHistoryInfo.mqh>  //Classe pour travailler avec les propriétés de l'historique des ordres
#include <Trade\PositionInfo.mqh>   //Classe pour travailler avec les propriétés de positions ouvertes
#include <Trade\DealInfo.mqh>       //Classe pour travailler avec les propriétés de l'historique des transactions
#include <Trade\Trade.mqh>          //Classe pour l'exécution des opérations de trading
#include <Trade\TerminalInfo.mqh>   //Classe pour obtenir les propriétés de l'environnement du terminal
//--- 
CAccountInfo       ac;
CSymbolInfo        symb;
COrderInfo         orders;
CHistoryOrderInfo  hist_orders;
CPositionInfo      pos;
CDealInfo          _clos;
CTrade             my_trade;
CTerminalInfo      info;

Au lieu de cela, référencez toutes les bibliothèques d'une manière cohérente et facile à comprendre et la meilleure façon de le faire est de le référencer dans le format de membre de Classe de référence m_*** - représente les membres d'un certaine classe

comme ceci,

#include <Trade\AccountInfo.mqh> //Classe pour travailler avec les propriétés du compte de trading
#include <Trade\SymbolInfo.mqh>  //Classe pour travailler avec les propriétés des instruments de trading
#include <Trade\OrderInfo.mqh>   //Classe pour travailler avec les propriétés des ordres en attente
#include <Trade\OrderHistoryInfo.mqh>  //Classe pour travailler avec les propriétés de l'historique des ordres
#include <Trade\PositionInfo.mqh>   //Classe pour travailler avec les propriétés de positions ouvertes
#include <Trade\DealInfo.mqh>       //Classe pour travailler avec les propriétés de l'historique des transactions
#include <Trade\Trade.mqh>          //Classe pour l'exécution des opérations de trading
#include <Trade\TerminalInfo.mqh>   //Classe pour obtenir les propriétés de l'environnement du terminal
//--- 
CAccountInfo       m_account;  //membre de of account info
CSymbolInfo        m_symbol;   //membre de symbolInfo
COrderInfo         m_order;    //membre de OrderInfo
CHistoryOrderInfo  m_orderhistory; //membre de Orderhistory info
CPositionInfo      m_position; //membre de position info
CDealInfo          m_deal;     //membre de deal info
CTrade             m_trade;    //membre de trade info
CTerminalInfo      m_terminal; //membre de terminal info

De plus, n'oubliez pas de mettre des commentaires à la fin de la référence de la bibliothèque afin que vous puissiez vous rappeler en quoi consiste la référence la prochaine fois que vous essayez d'y accéder lorsque vous codez. 

De plus, afin d'accélérer notre capacité à coder, nous devrions préférer utiliser des bibliothèques standard prêtes à l'emploi pour gérer nos tâches plutôt que d'essayer de tout implémenter à partir de zéro. Ces bibliothèques ont été créées par des programmeurs professionnels pour rendre notre code MQL5 DRY (Ne vous répétez pas) et pour accélérer le processus de développement. J'encourage tout le monde à les utiliser, sans parler d'autres bonnes bibliothèques sur la codebase et certaines sur le Market. 

Selon vous, qui code plus rapidement entre ces deux ;

Le codeur qui réécrit tout de zéro (probablement un NOOB) Le codeur qui utilise la bibliothèque standard
double SymbolAsk(string symbol)
{
        if (symbol == "") symbol = Symbol();

        return SymbolInfoDouble(symbol, SYMBOL_ASK);
}

double SymbolBid(string symbol)
{
        if (symbol == "") symbol = Symbol();

        return SymbolInfoDouble(symbol, SYMBOL_BID);
}

int SymbolDigits(string symbol)
{
        if (symbol == "") symbol = Symbol();

        return (int)SymbolInfoInteger(symbol, SYMBOL_DIGITS);
}

double SymbolLotSize(string symbol)
{
        if (symbol == "") symbol = Symbol();

        return SymbolInfoDouble(symbol, SYMBOL_TRADE_CONTRACT_SIZE);
}

double SymbolLotStep(string symbol)
{
        if (symbol == "") symbol = Symbol();

        return SymbolInfoDouble(symbol, SYMBOL_VOLUME_STEP);
}

double SymbolMaxLot(string symbol)
{
        if (symbol == "") symbol = Symbol();

        return SymbolInfoDouble(symbol, SYMBOL_VOLUME_MAX);
}

double SymbolMinLot(string symbol)
{
        if (symbol == "") symbol = Symbol();

        return SymbolInfoDouble(symbol, SYMBOL_VOLUME_MIN);

}


#include <Trade\SymbolInfo.mqh>
CSymbolInfo   m_symbol; 

input string Input_symbol = "EURUSD";
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
     string symbol = Input_symbol=="" ? Symbol() : Input_symbol;
      m_symbol.Name(symbol); //Définit le nom du symbole pour notre objet de classe CSymbolInfo
//---
   return(INIT_SUCCEEDED);
  } 
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
      m_symbol.RefreshRates(); //Obtient la dernière cotation
      double    SymbolAsk = m_symbol.Ask();
      double    SymbolBid = m_symbol.Bid();
      double    SymbolDigits = m_symbol.Digits();
      double    SymbolLotSize = m_symbol.ContractSize();
      double    SymbolLotStep = m_symbol.LotsStep();
      double    SymbolMaxLot = m_symbol.LotsMax();
      double    SymbolMinLot = m_symbol.LotsMin();
  }



















Les utilisateurs de bibliothèque standard sont 3 fois plus productifs que les non-utilisateurs, sans oublier qu'ils ont moins de code dans leurs programmes, ce qui signifie moins de bugs.


04 : Évitez les codes alambiqués

J'espère que dans votre carrière de codage, vous avez vu quelque chose comme le code ci-dessous dans l'EA de quelqu'un

        if(LbT>0)
        {       BEb=ND(BEb/LbT,Digits());
                if(BCa<0)BEb-=ND(BCa/PipVal2/(LbB-LbS),Digits());
                if(Pb>PbMax||PbMax==0)PbMax=Pb;
                if(Pb<PbMin||PbMin==0)PbMin=Pb;
                if(!TradesOpen)
                {       FileHandle=FileOpen(FileName,FILE_BIN|FILE_WRITE);
                        if(FileHandle>-1)
                        {       FileWriteInteger(FileHandle,TbF);
                                FileClose(FileHandle);
                                TradesOpen=true;
                                if(Debug)Print(FileName+" File Written: "+TbF);
                        }
                }
        }

Cela peut être facile au moment où vous écrivez ce bloc de code, mais il ne sera pas facile de le lire au moment où vous voudrez le déboguer, il y a de fortes chances que vous oublierez certaines des variables sinon toutes, vous devrez donc recommencer à vous y référer. Pensez à quel point cette activité vous fait perdre du temps !

Écrire des algorithmes complexes fera que les gens vous détesteront et vous vous embrouillerez.

Forcer toute la logique à apparaître au même endroit est dégoûtant, vouloir avoir trop d'opérations dans une seule fonction ralentira notre processus de développement puisque nous devons organiser soigneusement notre code et nous assurer que tout fonctionne aussi bien.

Si vous avez besoin de certains types d'opérations, envisagez de créer des fonctions indépendantes qui ne peuvent le faire que pour qu'il vous soit facile de terminer une chose puis de passer à l'autre.


05 : Évitez les distractions.

"Soyez conscient lorsque des distractions se présentent à vous, vous saurez qu'il s'agit d'une distraction lorsque vous arrêtez de faire ce que vous étiez censé faire et que vous vous retrouvez à réfléchir à des choses qui n'ont aucune valeur."
— Beverly R. Imes

Gardez votre téléphone en mode silencieux (si vous ne l'éteignez pas du tout) et ne le tirez pas pour vérifier vos "J'aime" et les partages de vos photos sur les réseaux sociaux. Vous serez tellement inefficace si vous le faites. Si vous êtes dans un environnement bruyant et dérangeant, trouvez un endroit pour vous asseoir et terminer votre projet.

Si c'est suffisamment important pour vous, vous éviterez toutes les distractions : fermez la porte, éteignez votre téléphone, éteignez les réseaux sociaux, restez Focus et faites le travail.

Je pense que c'est le plus grand défi que nous devons relever en tant que développeurs dans le monde moderne où vous êtes à un clic de beaux modèles séduisants sur Instagram et de vidéos de chats mignons sur Snapchat.

Il est tentant lorsque les choses sont difficiles sur votre projet lorsque vous ne pouvez pas trouver le bon code à mettre en œuvre, de faire une pause et de voir ce qui se passe sur les réseaux sociaux, ou simplement de sortir et de vous détendre.

Ce n'est pas que je suis contre les pauses et les moments de détente avec des amis non, ne vous méprenez pas, je ne code pas 24h/24 et 7j/7 même si j'ai trop de projets de développement MQL5 et web qui m'attendent. Mais je crois que tout le monde devrait s'en tenir à un horaire qui lui convient. Si ce n'est pas le moment de consulter les médias sociaux, ne le faites pas. Si c'est du temps de codage, tenez-vous-en à cela jusqu'à la fin de la session (peu importe à quel point les choses deviennent confuses ou difficiles) je préfère prolonger les sessions de codage si je n'ai rien d'important à faire après cela.

Les codeurs distraits peuvent coder pendant 5 heures ou plus quelque chose que les programmeurs concentrés peuvent coder en 45 minutes


06 : Lire la documentation et apprendre

Après avoir trouvé la solution à votre problème sur le forum, ne le copiez-collez pas précipitamment en pensant que vous terminerez votre projet plus rapidement de cette façon (j'ai touché cela dans mon premier article). Assurez-vous de comprendre comment coder la solution par vous-même. Il est difficile de travailler avec du code copié quand quelque chose ne va pas, surtout quand il y a des bugs puisque vous ne le comprenez pas personnellement.

J'encourage chaque codeur à lire fréquemment la documentation, en particulier sur les choses que nous ne connaissons pas déjà ou avec lesquelles nous ne sommes pas encore à l'aise.

Comment cela augmente-t-il notre vitesse de développement ?

Plus vous en savez sur le langage MQL5, plus vous êtes à l'aise et plus il devient facile en tant que programmeur. Il est toujours difficile de trouver le bon code pour concrétiser efficacement votre idée (Programme), c'est là que la plupart de notre temps est perdu. J'espère bien que vous pouvez dire à quel point il est difficile de coder même des choses simples si vous n'êtes pas très au courant d'une activité particulière telle que le codage d'indicateurs, de scripts, d'expert advisors, etc.  C'est là que l'expérience entre en jeu.

Alors, comment obtenir de l'expérience ? Ma réponse est toujours simple : apprendre et essayer différentes choses

Ceux qui connaissent bien le langage MQL5 ont des options infinies sur la façon de transformer leur idée en code efficace et significatif. Ils savent où utiliser


07 : Répétition espacée

"Les humains se souviennent ou apprennent plus facilement des éléments lorsqu'ils sont étudiés plusieurs fois sur une longue période de temps (présentation espacée), plutôt que d'être étudiés à plusieurs reprises sur une courte période de temps."
— Hermann Ebbinghaus

C'est ainsi que nous avons appris tout ce que nous savons en le faisant encore et encore lentement jusqu'à ce que cela devienne une seconde nature. Notre mémoire dans notre cerveau est limitée et ne conservera que ce que nous utilisons régulièrement, donc si nous voulons conserver quelque chose dans notre esprit, nous devons le faire régulièrement. Nous devrions apprendre à utiliser cela à notre avantage.

Comment ?

Étant donné que l'une des raisons pour lesquelles nous sommes lents est notre ignorance sur ce sujet particulier, nous devons toujours rechercher les domaines que nous devons améliorer (certains d'entre eux sont abordés dans cet article). Une fois que nous avons trouvé ces domaines, nous devons continuellement nous efforcer de nous améliorer dans ces domaines jusqu'à ce que nous devenions exceptionnellement bons. Cela fonctionne bien lorsque vous essayez d'apprendre et de maîtriser une compétence particulière telle que Apprentissage automatiqueAlgorithmes auto-adaptatifs, etc.


08 : Raccourcis clavier et configuration de MetaEditor

Raccourcis clavier

Les raccourcis clavier sont amusants et peuvent vous faire gagner beaucoup de temps lorsqu'il s'agit d'écrire du code sur le clavier. Je suis un pro dans ce domaine et j'aime apprendre aux codeurs mes raccourcis clavier productifs sur MetaEditor.

L'apprentissage des raccourcis clavier change la vie lorsqu'il s'agit de taper du code et je pense que l'utilisation du clavier au lieu d'une souris devrait être adoptée par tous les développeurs puisque nous passons la plupart de notre temps sur notre clavier, nous devons donc être bons dans ce domaine.

Voici quelques-uns de mes raccourcis préférés sur un PC Windows (pour Mac et Linux,. Je n'en suis pas si sûr, mais les utilisateurs de Mac peuvent remplacer CTRL par COMMAND) ;

RACCOURCI USAGE
 F4 Basculer entre MT5 et MetaEditor
 F7  Compiler le code 
 CTRL+F7  Compiler tous les documents ouverts 
 CTRL+C Copier le code sélectionné 
 CTRL+V Coller le code sélectionné 
 CTRL+X Couper le code sélectionné 
 CTRL+Z Annuler les modifications dans le code  
 CTRL+Y Refaire les modifications dans le code
 CTRL+A Sélectionnez tout le code 
 CTRL+END Déplacer le curseur sur la dernière ligne de code de votre document 
 CTRL+HOME Déplacer le curseur sur la première ligne de code de votre document 
 SHIFT + Directions(GAUCHE, HAUT, DROITE, BAS) Sélectionnez le code vers cette direction   
 TAB Augmenter le retrait du code sélectionné 
 SHIFT+TAB Diminuer l'indentation du code sélectionné  
 CTRL+ Retour arrière Supprimer le mot entier d'une ligne 
 DEBUT Déplacer le curseur au début d'une ligne 
 FIN Déplacer le curseur à la fin d'une ligne 
 CTRL+ ? 
//--- Mettre un séparateur de code à la ligne suivante
 CTRL+>
//+---------------------------------------------------------- ----------------------+
//|                 Ajoute ceci à la ligne actuelle et aux deux suivantes          |
//+---------------------------------------------------------- ----------------------+
 CTRL+"
// ajoute deux barres obliques au début d'une ligne  
 CTRL+, Appliquer styler à votre document actuel 
 CTRL+F4  Fermer le document actuel 
 CRL +F5 Démarrer/Reprendre le débogage sur les données d'historique 
 CTRL+T Ouvrir / masquer la boîte à outils 
 CTRL+D Ouvrir / masquer le navigateur
 ALT+G  Aller à la déclaration de Variable/Fonction 
 WINDOWS+T Pour naviguer entre les applications de la barre des tâches au cas où je voudrais en ouvrir une
Navigateur Internet (CHROME) et recherche d'un problème 
 CTRL+F  Ouvrir le champ de recherche Rechercher
 CTRL+S  Enregistrer le document actuel 
 CTRL + Directions  Sauter d'un mot à l'autre dans cette direction
 CTR + +   Naviguer vers l'avant
 CTRL+ -  Naviguer vers l'arrière 
 CTRL+SHIFT+U  Transformer le code sélectionné (un mot) en Majuscule 
 CTRL+U  Transformer le code sélectionné (un mot) en Minuscule

Coinfiguration de MetaEditor

Il est également important d'avoir la meilleure configuration de MetaEditor qui favorise l'écriture de code plus rapidement. Regardons quelques-uns des paramètres que je recommande à tout le monde d'essayer.


Ces cases doivent être cochées

  • Insérer () et fermer }]" - cela aidera à éviter les erreurs (fin de programme inattendue, parenthèses déséquilibrées) qui pourraient être difficiles et à attraper dans trop de lignes de code.
  • Mettre en surbrillance les crochets correspondants : cela vous rappellera dans quelle fonction ou dans quel bloc vous vous trouvez.
  • Mettre en surbrillance la ligne actuelle – il peut être déroutant d'arriver à l'endroit où vous codiez la dernière fois, la définition de cette option vous aidera à y arriver rapidement en un coup d'œil ou vous devrez continuer à faire défiler le code et le courant ligne sera mise en surbrillance.
  • Historique du presse-papiers : pour voir votre historique de copier-coller, vous pourrez copier différentes lignes de code et y accéder facilement.

D'autres paramètres choisissent la bonne taille de police pour la capacité de vos yeux et la distance entre vos yeux et le PC, pas besoin de définir une petite taille de police que vous pouvez à peine voir.

Vous pouvez jouer avec les paramètres pour trouver plus de paramètres afin d'accéder plus rapidement à Outils>Options.


09 : Apprendre à utiliser Google

Apprendre à faire la bonne recherche Google est une activité qui fait gagner du temps et peut accélérer votre vitesse de codage. Il y a de fortes chances que vous tombiez sur de nombreux problèmes lors du codage et que vous ayez besoin d'une solution immédiate, mais savoir où trouver les solutions ne suffit pas, vous devez également savoir comment rechercher efficacement la solution.

Faire une recherche sur Google vous suffit pour obtenir rapidement les bonnes réponses à vos questions, n'est-ce pas ? FAUX

Voyons un exemple de la façon dont le codeur utilisateur Google moyen qui s'est retrouvé coincé dans la lecture d'un tableau à partir d'un fichier binaire utilise Google pour rechercher la solution.

La première chose que la plupart des gens font est d'aller sur Google et de chercher quelque chose comme comment lire un tableau dans un fichier binaire voici ce qu'ils obtiennent

comment rechercher du MQL5 sur Google

Remarque : Le nombre total de résultats est supérieur à 98 millions. 

Vous voyez ? Le Web est plein de déchets et de sites qui vous font perdre du temps. Si vous ne faites pas attention, vous finirez par perdre votre temps et vos données privées seront volées par des pirates. Le terme de recherche est trop vague pour obtenir le résultat immédiat spécifique dont nous avons besoin. Pour obtenir les résultats souhaités, nous devons être très clairs et précis.

Il y a trop de conseils de recherche pour ceux qui souhaitent approfondir ce sujet, je recommande de regarder cette courte vidéo. Je vais parler de deux conseils seulement. 

01 : Site spécifique à rechercher

Il n'y a pas de meilleur endroit pour obtenir les solutions concernant MQL5 que MQL5.com chaque fois que vous effectuez une recherche sur Google, considérez MQL5.com comme le site que vous souhaitez que Google recherche pour vos réponses.

Ajoutez site:MQL5.com à la fin de votre terme de recherche, et ce résultat de la recherche

résultats de la recherche de mql5

Seuls 568 résultats sont renvoyés cette fois, tous provenant de MQL5.com (Le site : URL) ordonne à Google de rechercher uniquement dans le site spécifié.

02 : Plus spécifique

MQL5.com est encore un site vague à rechercher si vous êtes très clair avec ce que vous voulez car c'est un grand site, il y a un moyen que j'utilise toujours pour moi-même mais ce n'est pas recommandé par google. Mais ça marche ! Je l'utilise depuis peu, mais la clé ici est que vous devez savoir pour quelle partie de MQL5 vous voulez que vos résultats soient prioritaires, par exemple Articles, Forum, Codebase, etc. Vous préférerez peut-être les résultats de :

  •  La section Article si vous voulez en savoir plus sur un sujet.
  •  Le Forum si vous voulez une solution rapide 
  •  Codebase si vous voulez voir ce que les autres ont codé avant.

Rechercher dans ce format MQL5 + suivi de section + puis un terme de recherche, exemple dans ce cas 

Forum MQL5 comment lire un tableau dans un fichier binaire voici le résultat

recherche MQL5 claire mais vague

Cette méthode est spécifique mais nous n'avons toujours pas commandé google vers un site spécifique (le site Web sur lequel vous vous trouvez actuellement uniquement), la meilleure chose serait d'ajouter site:MQL5.com. Le terme de recherche final est maintenant forum comment pour lire un tableau dans un fichier binaire site :MQL5.com Google renverra 399 résultats cette fois.


Conclusion

Cela suffit pour cet article, je travaille encore sur d'autres astuces pour augmenter notre vitesse de programmation et booster notre productivité. Il y a d'autres conseils à venir sur les prochains articles puisqu'il y en a beaucoup. Je recommande à chaque codeur de pratiquer ces habitudes et ces méthodes quotidiennement

Merci d'avoir lu, j'aimerais entendre quelques-uns des conseils de votre part dans la section de discussion de cet article.

Meilleures salutations.

Traduit de l’anglais par MetaQuotes Ltd.
Article original : https://www.mql5.com/en/articles/9752

Mathématiques en trading : ratios de Sharpe et de Sortino Mathématiques en trading : ratios de Sharpe et de Sortino
Le retour sur investissement est l'indicateur le plus évident que les investisseurs et les traders débutants utilisent pour l'analyse de l'efficacité du trading. Les traders professionnels utilisent des outils plus fiables pour analyser les stratégies, tels que les ratios de Sharpe et de Sortino, entre autres.
Better Programmer (Partie 03): Abandonnez ces 5 choses pour devenir un programmeur MQL5 performant Better Programmer (Partie 03): Abandonnez ces 5 choses pour devenir un programmeur MQL5 performant
Ceci est l'article incontournable pour quiconque souhaite améliorer sa carrière en programmation. Cette série d'articles vise à faire de vous le meilleur programmeur possible, quelle que soit votre expérience. Les idées discutées fonctionnent aussi bien pour les débutants en programmation MQL5 que pour les professionnels.
Better programmer (Partie 05) : Comment devenir un développeur plus rapide Better programmer (Partie 05) : Comment devenir un développeur plus rapide
Chaque développeur veut pouvoir écrire du code plus rapidement, et être capable de coder plus rapidement et efficacement n'est pas une sorte de capacité spéciale avec laquelle seules quelques personnes sont nées. C'est une compétence qui s'apprend, c'est ce que j'essaie d'enseigner dans cet article.
Better Programmer (Partie 02): Arrêtez de faire ces 5 choses pour devenir un programmeur MQL5 performant Better Programmer (Partie 02): Arrêtez de faire ces 5 choses pour devenir un programmeur MQL5 performant
Il s'agit de l'article incontournable pour tous ceux qui souhaitent améliorer leur carrière en programmation. Cette série d'articles vise à faire de vous le meilleur programmeur possible, quelle que soit votre expérience. Les idées discutées fonctionnent aussi bien pour les débutants en programmation MQL5 que pour les professionnels.