
Besser Programmieren (Teil 04): Wie man ein schnellerer Entwickler wird
Einführung
Eine schnellere Entwicklung ist der Traum eines jeden Entwicklers. Niemand möchte eine ganze Woche an einem Programm oder einem Stück Code arbeiten oder zu viele Stunden, wenn nicht sogar Tage, damit verbringen, Dinge herauszufinden, wenn wir im Programmierprozess stecken bleiben.
Jeder Programmierer möchte schneller sein
- Vielleicht haben Sie ein MQL5-Codierungsvideo auf YouTube gesehen, dem Sie nur schwer folgen konnten, weil Sie zu langsam sind, um mit der Geschwindigkeit des Lehrers mitzuhalten, und Sie möchten selbst auf dieses Niveau kommen.
- Vielleicht haben Sie einige Entwickler gesehen, die mit einer unglaublichen Geschwindigkeit auf der Tastatur einen komplexen Algorithmus in wenigen Minuten schreiben können, für den Sie Stunden, wenn nicht sogar Tage brauchen würden.
- Oder vielleicht möchten Sie schneller und effektiver programmieren können, so dass Sie Aufträge als Freelancer schneller abliefern können und Ihren Mitbewerbern voraus sind.
- Oder vielleicht möchten Sie Ihren Ehepartner/Partner durch Ihre Supermann-Fähigkeiten an der Tastatur beeindrucken, indem Sie in der Lage sind, komplexe Algorithmen mit weniger oder gar keinen Fehlern in kürzester Zeit zu programmieren.
- Manchmal möchten Sie vielleicht in der Lage sein, schnelle Updates für Produkte auf dem Markt zu liefern und Bugs und Fehler zu beheben, die Ihre Kunden in Ihrem E-Mail- oder MQL5-Posteingang verschickt haben.
Passen Sie gut auf und nehmen Sie Stift und Notizbuch zur Hand, denn ich werde Ihnen zeigen, wie Sie Ihre Programmiergeschwindigkeit erhöhen und gleichzeitig qualitativ hochwertige Arbeit für Sie und Ihre Kunden produzieren können.
Sie brauchen nichts von dem, um Ihr maximales Geschwindigkeitspotenzial zu erreichen:
- Umfangreiche Erfahrung im Programmieren.
- Die beste mechanische Tastatur.
- Ein gutes Muskelgedächtnis beim Tippen auf der Tastatur.
- Viele Gigabytes Arbeitsspeicher, viele Kerne, eine leistungsstarke GPU auf Ihrem PC.
Schnellerer Entwickler vs. Schnellerer Programmierer
Bevor ich anfange, die Tasten zu drücken, wäre es wohl besser, den Unterschied zwischen einem Entwickler und einem Programmierer zu erklären.
Entwickler | Programmierer |
---|---|
Entwickler sind erfahrenere Codeschreiber. Sie sind für so ziemlich alles im Projekt verantwortlich, wie zum Beispiel: Design, Arbeitsplanung, Codierung und alles andere, was mit dem Projekt zu tun hat. | Jeder, der etwas Code schreiben kann, wird von Menschen außerhalb der Tech-Branche oft als Programmierer bezeichnet. In der Regel werden Programmierer jedoch als die am wenigsten ausgebildeten oder erfahrenen Programmierer (Entwickler) angesehen. Diese Personen verfügen nicht über die gleichen algorithmischen Kenntnisse wie ein Programmierer oder Entwickler, da sie oft Anfänger in diesem Bereich sind und nur eine Programmiersprache beherrschen. Programmierer werden in der Regel mit der Aufgabe betraut, aussagekräftigen Code zu schreiben, der von Entwicklern leicht delegiert werden kann. Als Programmierer müssen Sie nicht alles innerhalb des Projekts wissen. Der Kunde von einem Freiberuflichen möchte zum Beispiel eine Trailing-Stop-Funktion in seinen EA einbauen. Ein Programmierer kann diese Funktion direkt programmieren, sie innerhalb der Funktion OnTick() aufrufen und sie dann ein- oder zweimal auf dem MetaTrader 5 testen, um sicherzustellen, dass sie funktioniert, und sie dann an den Kunden zurückschicken. |
In diesem Artikel werden wir uns mit dem weiter gefassten Begriff des Entwicklers befassen — wie Sie schneller werden können, wenn Sie Ihre Systeme entwickeln. Wir werden alles zwischen Design, Arbeitsethik, zu verwendenden Werkzeugen, Kodierung, Debugging, etc. untersuchen.
WIE MAN ALS ENTWICKLER SCHNELLER WIRD
01: Bugs und schlechte Architektur vermeiden
Entwickler denken, dass sie viel Zeit mit dem Schreiben von Code verbringen, aber in Wirklichkeit verbringen wir die meiste Zeit damit, Code zu lesen, zu debuggen und herauszufinden, was zu tun ist.
Es kann drei Stunden dauern, einen Code zu debuggen, an dem Sie 30 Minuten gearbeitet haben. Je mehr Fehler Sie haben, desto länger brauchen Sie, um Ihr Projekt fertig zu programmieren. Sie wissen jetzt, dass Fehler unseren Entwicklungsprozess verlangsamen. Das Beste ist also, sie so weit wie möglich zu vermeiden.
Schlechte Architektur + Bugs = das ist das Ende der Welt (nur ein Scherz)
Bugs in einem Projekt zu haben ist schlimm, aber sie nicht zu debuggen oder leicht zu übersehen, nur weil die Architektur schlecht ist, ist noch schlimmer. Sehen Sie sich nur dieses Stück Code aus einem EA an, das mir von jemandem gegeben wurde, um die Fehler zu beheben.
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); } }
Sehen Sie sich nur an, wie schlecht die Architektur ist. Es ist kein Wunder, dass es Fehler im Code gibt. Wie Sie sehen können, ist der Code auf den ersten Blick schwer zu verstehen, selbst wenn Sie derjenige sind, der den Code überhaupt geschrieben hat.
Sie werden so viel Pech haben (genau wie ich), wenn jemand Sie als Freiberufler anstellt, um Fehler zu beheben, dann sehen Sie mehr als 10000 Zeilen Code, die alle wie der obige Code aussehen (Es ist jetzt mehr als 3 Wochen her und ich bin immer noch nicht fertig).
Was ich damit sagen will, ist Folgendes. Seien Sie immer konsistent mit Ihren Codierungsmustern, der Art und Weise, wie Sie Funktionen benennen, Variablen erstellen und so weiter, wählen Sie das, womit Sie sich wohlfühlen und stellen Sie sicher, dass es für Sie und alle anderen einfach zu benutzen ist.
02: Lernen Sie schnelles Debuggen
Wir haben im ersten Punkt gesehen, dass Bugs uns behindern und unsere Zeit auffressen. Debugging ist ein langes Thema, um es in diesem Artikel zu behandeln. Ich empfehle jedem, den Artikel Zur Fehlerbehebung von MQL5-Programmen (Debugging) zu lesen, um mehr über das Debugging zu erfahren.
Um schnell zu sein, müssen wir lernen, wie man sehr schnell debuggt, hier sind einige der schnellen Tipps.
01: Verwenden Sie im MetaEditor den CodeStyler .
Dies ist wie kleine Schritte in Richtung Debugging, dieses erstaunliche Werkzeug kann nicht selbst debuggen, aber es kann helfen, das Aussehen unseres Codes zu ändern und den Code klar und einfach zu lesen.
02: Drucken und kommentieren Sie mehr.
Um herauszufinden, was nicht funktioniert, müssen wir mehr Code in verdächtigen Bereichen drucken und kommentieren.
Finden Sie Fehler immer in Bereichen, in denen sie nicht gefunden werden können.
03: Versuchen Sie nicht, etwas zu ändern, bevor Sie nicht genau verstehen, wie es funktioniert.
Ich bin mir sicher, dass es Ihnen schon einmal passiert ist, dass Sie einen Teil des Codes gelöscht haben, um Ihr System zum Laufen zu bringen, und dann später festgestellt haben, dass der gelöschte Code nichts mit den Fehlern in Ihrem System zu tun hat, so dass Sie nun erneut Zeit aufwenden müssen, um Code zu schreiben, und es gibt keine Garantie dafür, dass Sie Ihr System nicht im Laufe des Prozesses anderen Fehlern aussetzen.
Bevor Sie etwas löschen, lesen Sie in der Dokumentation nach, ob es sich um eine integrierte Funktion oder Methode handelt. Wenn Sie sich nicht sicher sind, fragen Sie im Forum danach. Ich persönlich würde den gesamten Code in die Textdatei kopieren, wenn ich mir nicht sicher bin, ob ich das Richtige tue. Auf diese Weise kann ich flexibel sein, wenn ich den Code ändere und neue Dinge ausprobiere, und auf den primären Code verweisen, wenn ich herausgefunden habe, wo der Fehler liegt.
03: Bibliotheken werden für einen bestimmten Zweck erstellt
Wenn man mit einer Bibliothek arbeitet, ist es wichtig, die zur Verfügung gestellten Klassen für den beabsichtigten Zweck zu verwenden. Wenn wir versuchen, unseren Weg zu erzwingen, weil wir zu faul sind, etwas sauber zu implementieren, ist das ein sicherer Weg in die Katastrophe.
Wenn Sie die Standardbibliothek verwenden, ist es eine gute Praxis, Teile der Bibliothek auf die beste Art und Weise zu instanziieren und zu referenzieren, die klar, einfach und konsistent ist, und wahrscheinlich die Art und Weise, die von professionellen Bibliotheksentwicklern empfohlen wird.
Zum Beispiel, anstatt die Bibliothek Trade Classes auf faule Art und Weise und mit unklaren Namen zu referenzieren, die nicht einmal konsistent sind, wie dieser hier,
#include <Trade\AccountInfo.mqh> //Class for working with trade account properties #include <Trade\SymbolInfo.mqh> //Class for working with trade instrument properties #include <Trade\OrderInfo.mqh> //Class for working with pending order properties #include <Trade\OrderHistoryInfo.mqh> //Class for working with history order properties #include <Trade\PositionInfo.mqh> //Class for working with open position properties #include <Trade\DealInfo.mqh> //Class for working with history deal properties #include <Trade\Trade.mqh> //Class for trade operations execution #include <Trade\TerminalInfo.mqh> //Class for getting the properties of the terminal environment //--- CAccountInfo ac; CSymbolInfo symb; COrderInfo orders; CHistoryOrderInfo hist_orders; CPositionInfo pos; CDealInfo _clos; CTrade my_trade; CTerminalInfo info;
Stattdessen referenzieren Sie alle Bibliotheken in einer konsistenten, leicht verständlichen Weise, und der beste Weg, dies zu tun, ist, auf sie im Referenzformat der Mitglieder der Klassen m_*** - das steht für Mitglieder einer bestimmten Klasse zu verweisen,
so wie hier:
#include <Trade\AccountInfo.mqh> //Class for working with trade account properties #include <Trade\SymbolInfo.mqh> //Class for working with trade instrument properties #include <Trade\OrderInfo.mqh> //Class for working with pending order properties #include <Trade\OrderHistoryInfo.mqh> //Class for working with history order properties #include <Trade\PositionInfo.mqh> //Class for working with open position properties #include <Trade\DealInfo.mqh> //Class for working with history deal properties #include <Trade\Trade.mqh> //Class for trade operations execution #include <Trade\TerminalInfo.mqh> //Class for getting the properties of the terminal environment //--- CAccountInfo m_account; //members of account info CSymbolInfo m_symbol; //members of symbolInfo COrderInfo m_order; //mambers of OrderInfo CHistoryOrderInfo m_orderhistory; //members of Orderhistory info CPositionInfo m_position; //members of position info CDealInfo m_deal; //members of deal info CTrade m_trade; //members of trade info CTerminalInfo m_terminal; //members of terminal info
Vergessen Sie auch nicht, am Ende der Bibliotheksreferenz Kommentare einzufügen, damit Sie beim nächsten Mal, wenn Sie beim Programmieren darauf zugreifen, daran erinnert werden, worum es in der Referenz geht.
Um unsere Programmierfähigkeiten zu beschleunigen, sollten wir lieber fertige Standardbibliotheken für unsere Aufgaben verwenden, als zu versuchen, alles von Grund auf neu zu implementieren. Diese Bibliotheken wurden von professionellen Programmierern erstellt, um unseren MQL5-Code DRY (Don't repeat yourself - nichts wiederholen) zu machen und den Entwicklungsprozess zu beschleunigen. Ich empfehle jedem, sie zu verwenden, ganz zu schweigen von anderen guten Bibliotheken in der Codebasis und einigen auf dem Markt.
Was glauben Sie, wer von diesen beiden schneller programmiert?
Der Alles-Selbermacher (wahrscheinlich ein NOOB oder Neuling) | Nutzer von Standardbibliotheken, Programmierer |
---|---|
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); //Sets symbol name for our CSymbolInfo class object //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- m_symbol.RefreshRates(); //Refresh to Get the Last quote 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(); } |
Nutzer von Standardbibliotheken sind 3x produktiver als die, die sie vermeiden, und ganz abgesehen davon haben sie weniger Code in ihren Programmen, was weniger Fehler bedeutet.
04: Vermeiden Sie verschachtelten Code
Ich hoffe, Sie haben in Ihrer Laufbahn als Programmierer schon einmal so etwas wie den folgenden Code in einem EA gesehen
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); } } }
Es mag einfach sein, wenn Sie diesen Codeblock schreiben, aber es wird nicht einfach sein, ihn zu lesen, wenn Sie ihn debuggen wollen. Die Wahrscheinlichkeit ist groß, dass Sie einige der Variablen, wenn nicht sogar alle, vergessen werden, sodass Sie sich erneut auf sie beziehen müssen. Denken Sie nur daran, wie zeitraubend diese Tätigkeit ist!
Wenn Sie komplexe Algorithmen schreiben, werden die Leute Sie hassen und Sie werden sich selbst verwirren.
Die gesamte Logik an einer Stelle zu platzieren, ist widerlich, und zu viele Operationen in einer einzigen Funktion zu haben, verlangsamt den Entwicklungsprozess, da wir unseren Code sorgfältig anordnen und sicherstellen müssen, dass alles funktioniert.
Wenn Sie bestimmte Arten von Operationen benötigen, sollten Sie unabhängige Funktionen erstellen, die diese nur ausführen können, so dass es für Sie einfach ist, eine Sache zu beenden und dann zur anderen überzugehen.
05: Vermeiden Sie Ablenkungen.
— Beverly R. Imes
Stellen Sie Ihr Telefon auf lautlos (wenn Sie es nicht überhaupt ausschalten) und holen Sie es nicht zurück, um Ihre Likes und Shares auf Ihren Social Media-Fotos zu überprüfen. Sie werden so ineffektiv sein, wenn Sie das tun. Wenn Sie sich in einer lauten, störenden Wohnung befinden, dann suchen Sie sich einen Ort, an dem Sie sich hinsetzen und Ihr Projekt beenden können.
Wenn es Ihnen wichtig genug ist, werden Sie alle Ablenkungen ausschalten: Schließen Sie die Tür, schalten Sie Ihr Telefon aus, schalten Sie die sozialen Medien ab, konzentrieren Sie sich auf Fokus und erledigen Sie die Arbeit.
Ich glaube, das ist die größte Herausforderung, die wir als Entwickler in der modernen Welt bewältigen müssen, in der man nur einen Klick von verführerisch schönen Models auf Instagram und süßen Katzenvideos auf Snapchat entfernt ist.
Wenn es bei einem Projekt schwierig wird und man den richtigen Code nicht findet, ist es verlockend, eine Pause einzulegen und zu schauen, was in den sozialen Medien passiert, oder einfach nur rauszugehen und zu entspannen.
Es ist nicht so, dass ich etwas gegen Pausen und Chillen mit Freunden habe. Nein, verstehen Sie mich nicht falsch, ich programmiere nicht 24/7, obwohl ich zu viele MQL5- und Webentwicklungsprojekte habe, die auf mich warten. Aber ich glaube, dass sich jeder an einen Zeitplan halten sollte, der für ihn funktioniert. Wenn es nicht an der Zeit ist, die sozialen Medien zu checken, tun Sie es nicht. Wenn es Zeit zum Programmieren ist, dann nur bis zum Ende der Sitzung (egal wie verwirrend oder schwierig die Dinge werden). Ich würde es vorziehen, die Programmiersitzungen zu verlängern, wenn ich danach nichts Wichtiges zu tun hätte.
Abgelenkte Programmierer können 5 Stunden oder länger etwas programmieren, was konzentrierte Programmierer 45 Minuten lang tun können.
06: Dokumentation lesen und lernen
Nachdem Sie die Lösung für Ihr Problem im Forum gefunden haben, kopieren Sie sie nicht und fügen Sie sie überstürzt ein, weil Sie denken, dass Sie Ihr Projekt auf diese Weise schneller fertigstellen (Ich habe dies in meinem ersten Artikel erwähnt). Stellen Sie sicher, dass Sie verstehen, wie Sie die Lösung selbst codieren müssen. Es ist schwer, mit kopiertem Code zu arbeiten, wenn etwas schief geht, besonders wenn er Fehler hat, weil man ihn persönlich nicht verstanden hat.
Ich ermutige jeden Programmierer, die Dokumentation mehrfach zu lesen, besonders bei Dingen, die wir noch nicht kennen oder mit denen wir noch nicht vertraut sind.
Wie erhöht sich dadurch unsere Entwicklungsgeschwindigkeit?
Je mehr man über die MQL5-Sprache weiß, desto komfortabler wird sie, und je komfortabler (einfacher) sie wird, desto schneller wird man als Programmierer sein. Es ist immer ein Kampf, den richtigen Code zu finden, um Ihre Idee effektiv in die Realität (Programm) zu bringen, hier wird die meiste Zeit verschwendet. Ich hoffe, Sie können sich vorstellen, wie schwer es ist, selbst einfache Dinge zu programmieren, wenn Sie nicht viel über eine bestimmte Tätigkeit wie das Programmieren von Indikatoren, Skripten, Expert Advisors usw. wissen. Hier kommt die Erfahrung ins Spiel.
Wie bekommt man also die Erfahrung? Meine Antwort ist immer einfach: Lernen und verschiedene Dinge ausprobieren.
Wer sich mit der Sprache MQL5 gut auskennt, hat unendlich viele Möglichkeiten, seine Idee in effektiven und sinnvollen Code umzusetzen. Man weiß über die Verwendung von
- Arrays
- For- / While-Schleifen
- Dateien, um Daten zu lesen/schreiben
- Anfragen und lesen der Daten eines Webservers
- und viele weitere coole Sachen, die ich in diesem Artikel nicht alle aufführen kann.
07: Stufenweises Wiederholung
— Hermann Ebbinghaus
Auf diese Weise haben wir alles gelernt, was wir wissen, indem wir es immer und immer wieder getan haben, bis es uns zur zweiten Natur geworden ist. Unser Gedächtnis in unserem Gehirn ist begrenzt und behält nur das, was wir regelmäßig benutzen, wenn wir also etwas in unserem Gedächtnis behalten wollen, sollten wir es regelmäßig tun. Wir sollten lernen, dies zu unserem Vorteil zu nutzen.
Und wie?
Da einer der Gründe für unsere Langsamkeit unsere Unwissenheit in diesem bestimmten Bereich ist, sollten wir immer nach Bereichen suchen, die wir verbessern müssen (einige davon werden in diesem Artikel besprochen). Wenn wir diese Bereiche gefunden haben, sollten wir uns ständig bemühen, uns in diesen Bereichen zu verbessern, bis wir außergewöhnlich gut werden. Das gilt auch, wenn wir versuchen, eine bestimmte Fähigkeit zu erlernen und zu beherrschen, z. B. Maschinelles Lernen, Selbstlernende Algorithmen, usw.
08: Tastaturkürzel und MetaEditor-Einrichtung
Tastaturkürzel machen Spaß und können viel Zeit sparen, wenn es darum geht, Code mit der Tastatur zu schreiben. Ich bin ein Profi auf diesem Gebiet und bringe Programmierern gerne meine produktiven Tastenkombinationen für MetaEditor bei.
Das Erlernen von Tastenkombinationen verändert das Leben, wenn es um die Eingabe von Code geht, und ich denke, dass die Verwendung der Tastatur anstelle der Maus von jedem Entwickler übernommen werden sollte, da wir die meiste Zeit auf der Tastatur verbringen, also müssen wir gut darin sein.
Hier sind ein paar meiner Lieblingstastenkombinationen auf einem Windows-PC (Für Mac und Linux). Ich bin mir nicht sicher, aber Mac-Nutzer können STRG durch COMMAND ersetzen;
TASTATURKÜRZEL | VERWENDUNG |
---|---|
F4 | Umschalten zwischen MT5 und MetaEditor |
F7 | Code kompilieren |
CTRL+F7 | Alle geöffneten Dokumente kompilieren |
CTRL+C | Ausgewählten Code kopieren |
CTRL+V | Ausgewählten Code einfügen |
CTRL+X | Ausgewählten Code löschen |
CTRL+Z | Änderungen im Code rückgängig machen |
CTRL+Y | Änderungen am Code wiederherstellen |
CTRL+A | Gesamten Code auswählen |
CTRL+END | Cursor auf die letzte Codezeile in Ihrem Dokument setzen |
CTRL+HOME | Cursor auf die erste Zeile des Codes in Ihrem Dokument bewegen |
SHIFT + Richtungstasten(LINKS,HOCH,RECHTS,RUNTER) | Code in diese Richtung markieren |
TAB | Einrückung des ausgewählten Codes erhöhen |
SHIFT+TAB | Einrückung des ausgewählten Codes verkleinern |
CTRL+ Backspace | Das ganze Wort in einer Zeile löschen |
HOME | Den Cursor an den Anfang einer Zeile bewegen |
END | Cursor an das Ende einer Zeile verschieben |
CTRL+ ? | //--- Ein Code-Trennzeichen in die nächste Zeile einfügen |
CTRL+> | //+------------------------------------------------------------------+ //| Fügt dies der aktuellen und den nächsten beiden Zeilen hinzu | //+------------------------------------------------------------------+ |
CTRL+" | // fügt zwei Schrägstriche an den Anfang einer Zeile |
CTRL+, | Styler auf das aktuelle Dokument anwenden |
CTRL+F4 | Schließen des aktuellen Dokuments |
CRL +F5 | Debugging der Verlaufsdaten starten/fortsetzen |
CTRL+T | Toolbox öffnen/verstecken |
CTRL+D | Navigator öffnen/ausblenden |
ALT+G | Zur Variablen-/Funktionsdeklaration gehen |
WINDOWS+T | Zum Navigieren von Anwendungen auf der Taskleiste, nur für den Fall, dass ich den Internet-Browser (CHROME) öffnen und nach einem Problem suchen möchte |
CTRL+F | Das Suchfeld "Suchen" öffnen |
CTRL+S | Das aktuelle Dokument speichern |
CTRL + Directions | Springen von Leerzeichen zu Leerzeichen (von Wort zu Wort) in diese Richtung |
CTR + + | Vorwärts navigieren |
CTRL+ - | Rückwärts navigieren |
CTRL+SHIFT+U | Großschreiben des ausgewählten Codes (bei einem Wort) |
CTRL+U | Ausgewählten Code (in Großbuchstaben) in Kleinbuchstaben umwandeln |
MetaEditor Einstellungen
Es ist auch wichtig, die besten MetaEditor-Einstellungen zu haben, die das schnellere Schreiben von Code begünstigen. Schauen wir uns einige der Einstellungen an, die ich jedem empfehle, auszuprobieren.
Diese Kästchen sollten angekreuzt werden
- Einfügen von () und Schließen von ], ', ], ". Dies hilft, Fehler zu vermeiden (unerwartetes Programmende, nicht geschlossenen Klammern), die bei zu vielen Codezeilen schwer zu finden sind.
- Hervorheben von übereinstimmenden Klammern (Dies erinnert Sie daran, in welcher Funktion oder welchem Block Sie sich befinden).
- Aktuelle Zeile hervorheben (Es kann verwirrend sein, an die Stelle zu gelangen, an der Sie das letzte Mal kodiert haben; wenn Sie diese Option aktivieren, gelangen Sie schnell dorthin, oder Sie müssen nur den Code scrollen und die aktuelle Zeile wird hervorgehoben).
- Verlauf der Zwischenablage (um den Verlauf Ihrer Kopier- und Einfügevorgänge zu sehen, können Sie verschiedene Codezeilen kopieren und leicht darauf zugreifen).
Weitere Einstellungen sind die Wahl der richtigen Schriftgröße für Ihre Augen und der Abstand zwischen Ihren Augen und Ihrem PC, so dass Sie keine zu kleine Schriftgröße einstellen müssen, die Sie kaum sehen können.
Sie können mit den Einstellungen spielen, um mehr Einstellungen zu finden, die Sie schneller machen. Gehen Sie zu Extras => Optionen.
09: Lernen Sie zu googeln
Wenn Sie lernen, wie man richtig googelt, sparen Sie viel Zeit und Sie können Ihre Programmiergeschwindigkeit erhöhen. Die Chancen sind hoch, dass Sie beim Programmieren über viele Probleme stolpern und eine sofortige Lösung brauchen, aber zu wissen, wo die Lösungen zu finden sind, ist nicht genug, Sie müssen auch wissen, wie man effektiv nach der Lösung sucht.
Eine Google-Suche reicht aus, um schnell die richtigen Antworten auf Ihre Fragen zu bekommen, oder? FALSCH!
Nehmen wir ein Beispiel dafür, wie ein durchschnittlicher Programmierer, der beim Lesen eines Arrays aus einer Binärdatei hängen geblieben ist und dann Google benutzt, um nach der Lösung zu suchen.
Das erste, was die meisten Leute tun, ist zu Google zu gehen und nach etwas zu suchen wie "how to read an array in a binary file" (wie man ein Array in eine Binärdatei einliest). Hier ist, was sie bekommen:
Hinweis: Die Gesamtzahl der Ergebnisse beträgt mehr als 98 Millionen.
Sehen Sie, das Web ist voll von Müll und zeitraubenden Seiten, die, wenn Sie nicht aufpassen, Ihre Zeit verschwenden und Ihre privaten Daten könnten von Hackern gestohlen werden. Der Suchbegriff ist zu vage, um das gewünschte Ergebnis sofort zu erhalten. Damit wir die gewünschten Ergebnisse erhalten, müssen wir sehr klar und spezifisch sein.
Es gibt zu viele Suchtipps für diejenigen, die tiefer in dieses Thema einsteigen wollen. Ich empfehle, dieses kurze Video anzusehen. Ich werde nur über zwei Tipps sprechen.
01: Spezifische Website für die Suche
Es gibt keinen besseren Ort, um die Lösungen zu MQL5 zu erhalten, als MQL5.com. Wenn Sie eine Google-Suche durchführen, sollten Sie MQL5.com als die Seite berücksichtigen, die Google nach Ihren Antworten durchsuchen soll.
Fügen Sie site:MQL5.com am Ende Ihres Suchbegriffs ein, dann ist das das Ergebnis der Suche:
Nur 568 Ergebnisse werden zurückgegeben, die diesmal alle von MQL5.com stammen. site:URL befiehlt Google, nur am angegebenen Ort zu suchen.
02: Noch spezifischer
MQL5.com ist immer noch eine vage Ortsangabe zur Suche im Web, wenn Sie sehr genau wissen, was Sie wollen, da es eine umfangreiche Website ist. Es gibt eine Möglichkeit, die ich immer wieder selbst verwenden. Es wird zwar nicht von Google empfohlen, aber es funktioniert, ich habe es immer verwendet. Der Schlüssel hier ist, dass Sie müssen wissen, welcher Teil der Ergebnisse von MQL5 für Sie priorisiert werden soll, zum Beispiel Artikel, Forum, Codebase, etc. Vielleicht bevorzugen Sie Ergebnisse aus:
- Artikel, wenn Sie sich eingehend mit einem Thema befassen möchten.
- Dem Forum, wenn Sie eine schnelle Lösung suchen.
- Der Codebase, wenn Sie sehen wollen, was andere bereits programmiert haben.
Suchen Sie in diesem Format MQl5 + gefolgt von Abschnitt + dann ein Suchbegriff. Hier ein Beispiel in diesem Fall:
"MQL5 forum how to read an array in a binary file", hier ist das Ergebnis:
Diese Methode ist zwar spezifisch, aber wir haben Google noch nicht an einem bestimmten Ort verwiesen (nur zu der Website, auf der Sie sich gerade befinden). Am besten wäre es, wenn Sie jetzt site:MQL5.com als endgültigen Suchbegriff hinzufügen "forum how to read an array in a binary file site:MQL5.com". Google wird diesmal 399 Ergebnisse liefern.
Schlussfolgerung
Das reicht für diesen Artikel, ich arbeite noch an weiteren Tipps, um die Programmiergeschwindigkeit zu erhöhen und die Produktivität zu steigern. In den nächsten Artikeln werden weitere Tipps folgen, da es viele davon gibt. Ich empfehle jedem Programmierer, diese Gewohnheiten und Methoden täglich zu praktizieren.
Vielen Dank für die Lektüre, ich würde gerne einige der Tipps von Ihnen im Diskussionsbereich dieses Artikels hören.
Mit freundlichen Grüßen.
Übersetzt aus dem Englischen von MetaQuotes Ltd.
Originalartikel: https://www.mql5.com/en/articles/9752





- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.