MetaTrader 5 herunterladen

Erstellung der Dokumentation basierend auf Quellcodes von MQL5

20 Juni 2017, 09:45
Andrei Novichkov
0
197

Einleitung

Früher oder später wird jeder Entwickler mit der Notwendigkeit konfrontiert, Dokumentation zu seiner Arbeit zu erstellen. Das Schreiben verschiedener Anleitungen und Hilfen ist ein unentbehrlicher Bestandteil der alltäglichen Tätigkeit und der Kommunikation mit dem Kunden. Darüber hinaus häufen sich mit der Zeit viele Bibliotheken und Code-Fragmente, darunter auch fremde. Eine ordentlich erstellte Dokumentation hilft, mit diesem Material zurechtzukommen. Wenn man bereits beim Schreiben eines Codes die Notwendigkeit der Erstellung einer Hilfe im Auge behält, wird der Zeitaufwand dafür minimiert. Die notwendigen Kommentare und Tags werden gleichzeitig mit der Erstellung des Codes platziert. Auf den ersten Blick scheint diese Arbeit fakultativ zu sein, wenn man sie aber leistet, wird das später viel Zeit und Nerven sparen.

Betrachten wir den Prozess der Erstellung der Dokumetation vom Anfang an und gehen wir dabei auf wichtige Momente ein. Früher wurde bereits ein Artikel zu diesem Thema geschrieben. Allerdings sind nicht alle im Artikel enthaltenen Informationen aktuell, nicht alle Methoden funktionieren. Versuchen wir das Thema zu entwickeln und weiterzuführen. Hauptsächlich werden wir uns mit dem Programm Doxygen unter Verwendung von Doxywizard.exe befassen.

Hinzufügen von MQL Dateien zu Doxygen

Unser Ziel besteht darin, eine Hilfe-/ Präsentationsdatei nach einem bereits geschriebenen Code zu erhalten, der in einer oder mehreren Dateien bereits mit Markierung enthalten ist. Als Ergebnis erhalten wir eine chm-Datei. Darüber hinaus, erstellen wir HTML-Dateien, die diese Aufgaben selbst bewältigen können. Wie ich bereits erwähnt habe, verwenden wir das Programm Doxygen, das unseren Zwecken entspricht.

Der Prozess der Konfiguration des Programms und der Ausgabe resultierender Dateien wurden in dem oben genannten Artikel beschrieben. Seit der Veröffentlichung des Artikels ist aber viel Zeit vergangen, und wenn man alles wie im Artikel beschrieben macht, klappt nichts. Das Programm wird laufen, aber weder Warnungen noch Fehlermeldungen ausgeben, dabei werden keine Dateien erstellt.

Deswegen lösen wir als Erstes dieses Problem, indem wir die Einstellungen des Programms korrigieren. Starten wir doxywizard.exe und beginnen wir es zu konfigurieren, geben wir den Namen des Projekts, Ein- und Ausgabeordner ein sowie markieren wir "Optimize for C++ output" in Mode des Reiters Wizard.

Gehen wir zum Tab Expert und fügen wir Dateien mit der benötigten Erweiterung in Input hinzu:

Nun weiß Doxygen Bescheid, dass es Dateien mit unserer Erweiterung parsen muss, das reicht aber nicht aus! Man muss explizit angeben, dass die Dateien mit der Endung .mq* analog zu den Dateien mit der Endung sind, die Erweiterungen "anzeigen" (wahrscheinlich kann man diese Aktion so bezeichnen):

Ab diesem Moment wird Doxygen unsere Dateien parsen und Ergebnisse ausgeben.

Codierungen


Sprechen wir eine weitere Problemquelle an, die nicht ausreichend beleuchtet wurde, und zwar die Probleme, die mit der Codierung von Quell- und Zieldateien verbunden sind.

Wenn die Sprache der Dokumentation Englisch sein wird, werden wir keine Probleme haben. Aber wenn wir die Dokumentation in einer anderen Sprache haben möchten, erhalten wir nicht lesbare Zeichen. Es liegt daran, dass standardmäßig alle Dokumente in UTF-8 erstellt werden. Wenn ein Teil der Dokumente eine andere Codierung hat, wird der Text praktisch unlesbar sein. Betrachten wir die Lösung:

  1. Legen wir fest, welche Sprache und Codierung standardmäßig verwendet werden. Das werden UTF-8 und Russisch sein:



    Es ist zu beachten, dass es mir nicht gelungen ist, die Änderung DOXYFILE_ENCODING vorzunehmen. Egal welche Codierung in diesem Eingabefeld angegeben wurde, wurde dennoch UTF-8 verwendet. Man kann offensichtlich die Codierung an dieser Stelle auf eine einzige Weise ändern — diese in eine Datei explizit schreiben, durch welche dann "Head" standardmäßig ersetzt wird (dies wurde oben betrachtet). So kann man aber das gewünschte Ergebnis wohl kaum erreichen.

  2. Die Codierung angeben, in welcher die Quelldateien erstellt wurden, das wird nicht unbedingt UTF-8 sein. In unserem Fall wird das eher CP1251 sein. Wenn ein Teil der Dokumente in einer Codierung erstellt wurde, und der andere in einer anderen, kodieren wir die Dateien so um, dass eine Codierung für alle Ausgangsdateien gilt, und legen wir sie in diesem Eingabefeld fest:


  3. Schließlich, wenn die Ausgabe in CHM vorgesehen ist, müssen wir explizit angeben, welche Codierung im HtmlHelp Index (Datei mit der Erweiterung hhk) verwendet wird:


    Für diejenigen, die sich mit dieser Frage auseinandersetzen möchten, hänge ich einen Artikel darüber an, wie man eine Dokumentation in Englisch und Spanisch mithilfe von Doxygen erstellt.

Nun gehen wir auf allgemeine Fragen ein, die besonders wichtig sind. Dazu gehört das Erscheinungsbild der erzeugten HTML-Datei.


Überschrift und Footer der Seite

Die verfügbaren Optionen sind dem Reiter Expert, dem Punkt HTML zugeordnet. Die Schalter, dazu gehören die Felder HTML_HEADER, HTML_FOOTER und HTML_STYLESHEET, erleichtern es, benutzerdefinierte HTML-Dateien in die Erstellung der Dokumentation einzubetten. Den Namen der Felder kann man entnehmen, wofür jedes Feld zuständig ist — für Überschrift und Footer auf jeder Seite sowie für Anzeigestile. Hinweis: damit HTML-Dateien überhaupt generiert werden können, muss der Schalter GENERATE_HTML in diesem Reiter aktiviert werden.

Die beiden HTML-Dateien werden nach besonderen Regeln geschrieben, trotzdem hat bei mir für die Datei footer.html ein Fragment des HTML-Textes ohne Überschrift, ohne Gestaltung, einfach wie folgt funktioniert:

<div>
  <h1 style="text-align: center;">Footer</h1>
</div>

Es ist aber besser, sich an die Regeln zu halten. Um zu verstehen, wie genau benutzerdefinierte Dateien ticken, können wir die Dateien generieren, die das Programm standardmäßig verwendet. Wir erhalten nicht nur die zwei gesuchten HTML-Dateien, sondern auch eine Tabelle mit Stilen. Führen wir das mit dem folgenden Befehl aus:

 - doxygen -w html new_header.html new_footer.html new_stylesheet.css

Hier ist ein Fragment der Datei new_footer.html:

<!-- HTML footer for doxygen 1.8.13-->
<!-- start footer part -->
<!--BEGIN GENERATE_TREEVIEW-->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    $navpath
    <li class="footer">$generatedby
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="$relpath^doxygen.png" alt="doxygen"/></a> $doxygenversion </li>
  </ul>
</div>
<!--END GENERATE_TREEVIEW-->
<!--BEGIN !GENERATE_TREEVIEW-->
<hr class="footer"/><address class="footer"><small>
$generatedby &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="$relpath^doxygen.png" alt="doxygen"/>
</a> $doxygenversion
</small></address>

Es fallen zahlreiche Platzhalter auf, deren Liste und Zweck in der Dokumentation angeführt sind. Man kann einfach verstehen, wo genau die Werbung von Doxygen ausgegeben wird, und wo man eigene Links hinzufügen kann. Analog dazu kann man new_header.html korrigieren, und wenn man will, auch die Tabelle mit Stilen, und diese im angegebenen Reiter miteinzubeziehen. Auf diese Weise kann man das Erscheinungsbild der resultierenden Dokumentation für eigene Zwecke wesentlich ändern.


Präprozessor-Verarbeitung

Doxygen erlaubt es, Dateien im Voraus zu verarbeiten. Dies wird getan, damit das Programm die Makros vom Typ BEGIN_MESSAGE_MAP und Konstruktionen vom Typ __declspec aus Visual Studio verarbeiten könnte. Für unsere Skripts ist es nicht so relevant, deswegen haben wir einach diese Option erwähnt, ohne ins Detail zu gehen. Dieser Mechanismus wird im Punkt Preprocessor im Reiter Expert eingestellt. Zu betonen die Möglichkeit, externe Filter zu erstellen, deren Ziel ist, die Eingabedatei so umzuwandeln, dass Doxygen sie verstehen kann. Dieser Filter stellt ein externes Kommandozeilenprogramm dar, dessen Kommandozeile der Name der Datei hinzugefügt wird. Das Filter-Programm selbst stellt einen Set regulärer Ausdrücke dar, die z.B. ein Assemblerprogramm für Doxygen umwandeln können. Ob die Präprozessor-Verarbeitung anzuwenden oder nicht, entscheidet der Entwickler. Man kann zum Beispiel mithilfe dieses Mechanismus die Konstruktion #property für Doxygen "verständlich" machen.


Beispiele einbetten

Interessant ist die Option, Beispiele in die Dokumentation einzubetten. Dies ist zwar fakultativ, lässt aber die Dokumentation vollständig und professionell aussehen. Die Beispiele werden ins Projekt als eine oder mehrere Dateien eingebettet. Dafür muss der Seite mit dem Code, für welchen der Entwickler ein Beispiel anführen möchte, die folgende Konstruktion hinzugefügt werden:
/** \example filename.ext
 * This is an example of how to use ....
 */

Hier wird der Name der Datei mit Beispielen festgelegt. In der zweiten Zeile kann man genau auflisten, welche Funktionen oder Klassen mit Beispielen versehen sind. Das reicht aber nicht aus, denn wir wissen nicht, wo sich die Datei befindet. Der Pfad zu den Dateien muss in Doxygen explizit angegeben werden. Dies wird wie auf dem Bild umgesetzt: geben wir Pfade zu den Dateien und Muster für ihre Namen an:


Man kann mehrere Dateien mit Beispielen in die Dokumentation einbetten, indem man mehrere Pfade verwendet und das Flag EXAMPLE_RECURSIVE hinzufügt. Als Ergebnis bekommt man eine umfassende Hilfe.


HTML-Tags

Eine weitere hilfreiche Eigenschaft von Doxygen ist die Arbeit mit Fragmenten der HTML-Markierung, die man direkt in den Kommentarblöcken platzieren kann. In der Dokumentation zum Programm gibt es eine solide Liste von HTML-Tags, die Doxygen verarbeiten und ins Dokument einfügen kann. Der folgende Text, zum Beispiel, fügt einen Link und eine Tabelle mit Überschrift in die Beschreibung des Makros hinzu:
/*!
  \def def_example
  \brief <a href="http://www.google.com">links to google</a>
         <table>
           <caption>Single table</caption>
           <tr>
             <td>One</td>
             <td>two</td>
           </tr>
         </table>
*/
#define def_example "Some define"

Zusammen mit der HTML-Markierung kann man Pseudosymbole vom Typ &nbsp; verwenden.

Bei der Verwendung von Links gibt es eine weitere Option — Automatic link generation. In der Praxis bedeutet das, das Doxygen den richtigen Link umwandeln und einen Text vom Typ https://www.mql5.com ins Zieldokument einfügen wird. Automatic link generation beschränkt sich nicht auf einer solchen Umwandlung. Man kann Links zu Dateien, Klassen und einzelne Funktionen erstellen. Dies dient zur Erstellung von Bereichen der Dokumentation vom Typ "See Also". Diese Markierung ermöglicht es, das benötigte Code-Fragment noch besser zu beschreiben. Sie kann für eine Markierung vom Typ "Prev/Next" und für fortgeschrittene Formen der Paginierung sowie für SEO und Werbung verwendet werden.


Titelseite

Oben wurde bereits die Option der Ersetzung des Codes in der Überschrift und im Footer von Webseiten durch einen eigenen Code erwähnt. Darüber hinaus hat der Programmierer die Möglichkeit, ein anderes Design für die Titelseite zu entwickeln. Dafür muss der Entwickler in einer der Dateien angeben, dass ihr Inhalt die Titelseite ist. Dies wird mithilfe des Tags \mainpage ausgeführt, das am Anfang der Datei eingebettet wird:
/*! \mainpage My Personal Index Page
* \image html i.jpg
 */

In dieser Markierung wird deklariert, dass die Datei, in welcher sie abgelegt wurde, die Titelseite mit der Überschrift "My Personal Index Page" ist, nach welcher das Bild "i.jpg" eingefügt wird. Das Bild muss im Voraus vorbereitet werden, Doxygen muss den Pfad zum Bild kennen:


Neben Bildern kann man Dateien von anderen Typen einfügen.


Ausgabe als HTML und HtmlHelp

Man kann die Dokumentation in mehreren Formaten erstellen. In Output im Reiter Wizard kann man die gewünschten Formate markieren. Zuerst wird die Dokumentation im einfachen HTML erstellt. Im Ordner, der als Ausgabeordner festgelegt wurde, wird eine Datei vom Typ index.html erstellt. Das wird die Hauptdatei der Dokumentation sein. Dieses Format ist aber nicht immer praktisch. Deswegen betrachten wir die Erstellung der Dokumentation im Format HtmlHelp. Dafür muss man HTML und "prepare for compressed HTML" in demselben Reiter aktivieren. Des Weiteren definieren wir den Namen der Hilfe-Datei HtmlHelp mit der Erweiterung im Eingabefeld CHM_FILE im Reiter Expert in HTML, ins Feld unten (HHC_LOCATION) — den Pfad für den Zugang zum Compiler der Hilfe hhc.exe. Dieser Parameter ist optional. Wenn das Feld leer bleibt, werden alle notwendigen Dateien vorbereitet, und die Hilfe im Format chm durch einen separaten Aufruf des Programms HTML Help Workshop erhalten wird.

Da gibt es auch weitere Schalter für eine feinere Einstellung. Besonders zu beachten ist GENERATE_CHI. Standardmäßig ist dieser Schalter deaktiviert. Wenn man ihn installiert, generiert Doxygen eine Index-Datei mit der Erweiterung CHI. Wenn später diese Datei löscht wird, wird die Anwendung der Hauptdatei der Hilfe erheblich erschwert. Dadurch verliert quasi die ganze Hilfe im Format HtmlHlp einen Löwenanteil an der Funktionalität.

Über das Einstellen von Codierungen haben wir bereit gesprochen. Es bleibt nur, den Reiter Run zu öffnen und auf den Button "Run Doxygen" zu klicken. Nach einer ganzen Seite technischer Meldungen benachrichtigt Doxygen über das Ende des Vorgangs. Unten gibt es den Button "Show HTML output" für die Ansicht der Dokumentation im Browser. Die Datei im Format HtmlHelp muss man manuell finden und starten.

Ein kurzes Video über die Arbeit mit Doxywizard:


Weiter gehen wir auf einige sekundäre, aber interessante Fragen ein.


Möglichkeiten des Editors Sublime Text 3 hinsichtlich der Platzierung von Tags in einem MQL5-Code

Doxygen benötigt die Platzierung spezieller Tags im Text des Programms, zu welchem die Dokumentation geschrieben wird. Die Tags werden in mehrzeiligen und einzeiligen Kommentaren zu einzelnen Code-Teilen, Klassen, Makros, Funktionen usw. platziert. Je mehr Information der Entwickler in der Dokumentation vermitteln will, je sorgfältiger sie strukturiert werden muss, desto schwieriger wird die Struktur von Tags sein.

Die Platzierung erfolgt im MT5 Editor. Dabei muss man auftretende Fehler aufmerksam verfolgen. Dieser Prozess kann vereinfacht und teilweise automatisiert werden. Verwenden wir den Editor Sublime Text 3. Er erkennt MQL4, und daher kann auch mit MQL5 arbeiten. Verbinden wir beide Pakete, die mit MQL zusammenhängen, im Editor.

Danach installieren wir das Paket, das mit der benötigten Markierung arbeiten kann — DoxyDoxygen. Es beinhaltet Hotkeys, kann Übersetzungen und Autocomplete ausführen. Dieses Paket ermöglicht es, alle notwendigen Tags schneller und einfacher zu platzieren. Wie es in der Dokumentation steht (man kann sie in den angefügten Dateien finden), kann man Doxygen nach der Markierung direkt vom Editor aufrufen. In der angehängten Dokumentation kann man die Beschreibung des Vorgangs zum Konfigurieren des Pakets finden.

Insgesamt gibt es keine Schwierigkeiten oder weitere Nuancen bei der Arbeit mit den beschriebenen Paketen, deswegen gehen wir darauf nicht ausführlicher ein.


Ausgabe als PDF und DjVu

In Doxygen ist diese interessante Option vorgesehen, zurzeit ist aber die Implementierung noch nicht abgeschlossen. Man kann bereits jetzt versuchen, die Dokumentation in diesen Formaten auszugeben, einige Informationen zu diesem Thema sind in der Dokumentation zu Doxygen zu finden. Darüber hinaus gibt es weitere Artikel und Anleitungen auf externen Webseiten. Betrachten wir ausführlicher die Ausgabe als PDF.
  1. Im Punkt Output im Reiter Wizard muss man die Ausgabe als LaTeX markieren und "for PDF" auswählen. In der Dokumentation steht, dass GENERATE_PERLMODE im Reiter Expert in PerlMod markiert werden muss, wir überspringen aber diesen Schritt.
  2. Nehmen wir weitere notwendige Einstellungen vor, darunter die Ausgabe als CHM und HTML (wenn nötig).
  3. Erstellen wir die benötigten Dokumente.

Im Output-Order wird der Order latex erstellt, in welchem Dateien in diesem Format abgelegt werden. Hier endet die Arbeit mit Doxygen. Nun ist es erforderlich, die Dateien aus latex in PDF umzuwandeln. Ich habe das Programm MikTex verwendet, das ich hier als portable heruntergeladen habe. Installieren wir das Programm und starten wir es. Wählen wir TeXworks im Programm aus. Im Editor-Fenster öffnen wir die Datei refman.tex, die Doxygen im Ordner latex erstellt hat. Danach wählen wir XeLaTex auf der Werkzeugleiste im Editor aus und klicken auf den großen grünen Button links. Wir sehen eine Reihe von Fehlermeldungen. Während der Arbeit bietet der Editor zusätzliche Pakete zu installieren (bitte akzeptieren). Wenn die Ausgabe mit einem Fehler beendet wird, kann man versuchen, die "Kompilation" zu wiederholen.

Als Ergebnis wird in demselben Ordner latex die Datei refman.pdf mit unserer Dokumentation erstellt. Die Qualität der Ausgabe lässt zu wünschen übrig: offensichtlich, muss man mit der Gestaltung zusätzlich arbeiten. Wahrscheinlich hätte man viele Mängel vermeiden können, hätte man die Quelldatien latex bearbeitet. Vergessen wir aber nicht, dass die Arbeit noch nicht zu Ende ist, deswegen warten wir auf die offizielle Einbeziehung der Option in Doxygen.

Praktische Anwendung

Gehen wir auf konkrete Beispiele ein und zeigen, wie man Doxygen und andere Programme für die Erstellung der Dokumentation verwenden kann. Fangen wir mit der Erstellung der Dokumentation für die Standardbibliothek, einen Set von Klassen in \MQL5\Include, an. Verwenden wir eine einfache Methode: lassen wir DoxyGen durch alle Dateien laufen, ohne zusätzliche Tags in den Dateien zu platzieren. Zwar erlaubt uns das keine wichtigen Informationen über die Elemente der Bibliothek zu erhalten, wir sehen aber, was genau wir erhalten können. Das erhaltene Ergebnis kann uns passen. Nehmen wir an, dass alle für das Programm benötigten Komponenten bereits auf dem Rechner installiert sind. Fangen wir an:

Für alle Fälle kopieren wir die Standardbibliothek in einen anderen Ordner. Während der Arbeit ist es nicht vorgesehen, in Dateien zu schreiben, aber riskieren wir lieber nicht.

  • Starten wir Doxygen und beginnen wir, es einzurichten. Für eine vorläufige Einstellung kann man die angefügte Datei MQL5Doxygen.zip verwenden. Um den Prozess mit eigenen Dateien nachzubilden, muss man Doxygen für eigene Zwecke einrichten. Geben Sie Ihre Pfade und Ihren Projektnamen an sowie beachten Sie die Codierung und die Sprache.
  • Schauen wir auf den Reiter Wizard, Punkt Output. Als Ausgabeformat wird plain html mit der aktivierten Option With search function verwendet. Dies bedeutet, dass die Datei im Format HtmlHelp nicht generiert wird. Wenn man "prepare fo compressed HTML (.chm)" auswählt, wird "With search function" nicht deaktiviert, aber am Ende erhalten wir die Meldung, dass diese Option nicht verwendet werden kann. Unser Ziel ist aber beides zu erhalten.
  • Deswegen muss die Datei zweimal generiert werden. Erstmals verwenden wir einfache Einstellungen aus der Datei MQL5Doxygen.zip und erhalten die Dokumentation nur im Format HTML im Ordner, der für die Ausgabe bestimmt wurde. Der Anfang der ganzen Dokumentation ist in der Datei index.html enthalten.
  • Ändern wir die Einstellungen und wiederholen wir die Generierung. Deaktivieren wir die Option "With search function" und aktivieren  "prepare fo compressed HTML (.chm)". Kommen wir zum Reiter Expert, HTML. Ich möchte Sie darauf hinweisen, dass CHM_FILE, der Name der Datei mit der ERWEITERUNG angegeben werden muss, in welcher die HtmlHlp Hilfe sowie der Pfad zum Compiler hhc.exe in HHC_LOCATION enthalten sein werden. Wenn man diese Variablen nicht initialisiert, bereitet Doxygen Quelldateien für die HtmlHlp-Hilfe vor, das Programm kann allerdings nicht die Hilfe erzeugen, und HTML Help Workshop muss separat gestartet werden. Nach dem Vornehmen der Änderungen in den Einstellungen kann man mit der Generierung anfangen. Als Ergebnis erhalten wir eine Dokumentation im Format html (wie beim ersten Lauf, aber ohne Suche) und eine Hilfe im Format HtmlHlp. Die Ergebnisse der Ausführung und die Einstellungsdatei sind in der angefügten Zip-Datei StandardLibrary.zip zu finden, aus welcher irrelevante HTML-Dateien entfernt wurden. Wenn Sie die Hilfe-Dokumentation zur Standardbibliothek doch als HTML erhalten möchten, können Sie dies ganz einfach selbständig machen.

Setzen wir mit dem nächsten Beispiel fort. Versuchen wir diesmal die Dateien mit dem Code mit Tags zu versehen und ihr Erscheinungsbild zu verbessern.

  • Zunächst einmal erstellen wir zwei Dateien mit dem einfachsten Testcode. Versuchen wir ihn etwas abwechslungsreich zu gestalten. Erstellen wir die Titelseite mainpage.mq5, die wir gleich mit Tags markieren. Darüber hinaus platzieren wir ein Bild auf der Titelseite. Alle drei Dateien (außer der Datei mit dem Bild) speichern wir im Ordner, den wir als "Source code directory" im Punkt Project im Reiter Wizard definieren. Legen wir hier einen Ausgabeordner und das Logo des Projekts (wenn gewünscht) fest.
  • Erstellen wir einen Ordner für das Bild und speichern wir es in diesem Ordner. Erstellen wir die Datei footer.html durch die Bearbeitung der Datei, die Doxygen für den Footer verwendet. Das Ziel ist, die Werbung von Doxygen zu entfernen. Wenn Sie wollen, können Sie etwas eigenes hinzufügen, ich möchte Sie aber auf die Warnungen in der Datei hinweisen: "is needed for treeview function!", was zur Ordentlichkeit aufruft. Nehmen wir die Änderungen in den Einstellungen vor, und geben wir an, wo das Bild und die neue Datei für den Footer abgelegt wurden. Wie man das macht, haben wir schon oben erwähnt.
  • Erstellen wir eine Datei mit einem Testbeispiel für die Anwendung dieses Codes. Legen wir sie in einem separaten Ordner ab und geben wir den Pfad in Doxygen an.
  • Nun wenn die Struktur des Projekts bereits erstellt wurde, öffnen wir die Dateien mit dem Testcode und platzieren wir die Tags so, wie wir es für nötig halten. Verwenden wir Sublime Text 3 mit dem installierten Set von Pakets, um welche es am Anfang des Artikels ging. In der Zip-Datei finden Sie eine der Varianten einer solchen Markierung, aber offensichtlich nicht die einzig richtige.
  • Nehmen wir die letzten Änderungen in den Einstellungen von Doxygen vor. Man muss auch die eventuelle Notwendigkeit der Ausgabe in zwei Schritten berücksichtigen, wie dies in dem vorherigen Beispiel beschrieben wurde.
  • Ausgeben. Erhalten wir die Dokumentation im Format HTML. Ändern wir die Einstellungen, und wir erhalten die Dokumentation im Format HtmlHelp.

Das ganze Projekt, Quelldateien, die Einstellungsdatei Doxygen und die Dokumentation in beiden Formaten sind in der angehängten Zip-Datei Custom_HTML_CHM.zip zu finden.

Fazit


In diesem Artikel wollte ich mich vom Zitieren der Dokumentation zu verschiedenen Programmen möglichst fernhalten und mich auf komplizierten Momenten konzentrieren, die ein eindrucksvolles Erscheinungsbild der Dokumentation versprechen. Für diejenigen, die alle Tags und Schalter von Doxygen kennenlernen wollen, füge ich die Dokumentation im Format CHM an. Für Pakete Sublime Text 3 gibt es eine integrierte Dokumentation, und der Editor selbst ist breit bekannt.

Beschreibung der angehängten Dateien.

Name Beschreibung
Using_Doxygen_to_generate_Spanish_and_English_documentation.zip Artikel im PDF-Format
SDoxygen_Manual.zip Dokumentation im Format chm zum Programm Doxygen
DoxyDoxygen.zip Dokumentation im PDF-Format zum Paket DoxyDoxygen
MQL5Doxygen.zip Einstellungsdatei Doxygen
StandardLibrary.zip Erhaltene Dokumentation im CHM-Format
Custom_HTML_CHM.zip
Erhaltene Dokumentation im Format HTML und CHM


Übersetzt aus dem Russischen von MetaQuotes Software Corp.
Originalartikel: https://www.mql5.com/ru/articles/3112

Analyse der Grafiken Kontostand/Equity nach Symbolen und nach ORDER_MAGIC von Expert Advisors Analyse der Grafiken Kontostand/Equity nach Symbolen und nach ORDER_MAGIC von Expert Advisors

Die Einführung der Hedging-Option in MetaTrader 5 ermöglichte es, gleichzeitig mehrere Expert Advisors auf einem Handelskonto handeln zu lassen. Dabei ist die Situation möglich, dass eine Strategie profitabel ist, während die andere Verluste bringt. Als Ergebnis schwankt die Grafik um Null. Für diesen Fall ist es praktisch, Kontostand- und Equity-Grafiken für jede Handelsstrategie separat zu zeichnen.

Das Beispiel eines Indikators, der die Linien Unterstützung / Widerstands zeichnet Das Beispiel eines Indikators, der die Linien Unterstützung / Widerstands zeichnet

Im Artikel wird das Realisierungsbeispiel des Indikators für den Aufbau der Linien Unterstützung/Widerstands aufgrund der formalisierten Bedingungen aufgeführt. Sie haben die Möglichkeit, den Indikator zu verwenden, aber verstehen auch nebenbei, wie einfach es ist, das zu realisieren. Nun können Sie selbst die Bedingungen für den Aufbau der Linien formulieren, die Sie nötig finden, dabei den Code des Indikators nach Ihren Wünschen ein wenig ändern.

Die benutzerdefinierten Indikatoren und die Informationsgrafik in CCanvas Die benutzerdefinierten Indikatoren und die Informationsgrafik in CCanvas

Im Artikel werden die neuen Arten der Indikatoren mit einer komplizierteren strukturellen Realisierung betrachtet. Es werden der Aufbau der pseudoräumlichen Typen der Indikatoren und die Erstellung einer dynamisch ändernden Informationsgrafik beschrieben.

Muster, die beim Handeln mit Währungskörben verfügbar sind. Teil III Muster, die beim Handeln mit Währungskörben verfügbar sind. Teil III

Das ist der abschließende Artikel zum Thema "Muster, die beim Handeln mit Körben von Währungspaaren auftreten". Der Artikel beschäftigt sich mit vereinigten Trendindikatoren und der Anwendung gewöhnlicher grafischer Konstruktionen.