English Русский 中文 Español 日本語 Português
Traders Kit: Drag Trade Library

Traders Kit: Drag Trade Library

MetaTrader 4Beispiele | 22 April 2016, 17:02
783 0
TheXpert
TheXpert

Einführung

Zum Zeitpunkt der Entwicklung gab es bereits einige Produkte, die in einem gewissen Umfang die durch die Bibliothek bereitgestellte Funktionalität umgesetzt haben oder ähnliche Funktionen hatten. Ich kann nicht sagen, ob die Bibliothekl besser oder schlechter als diese ist. Sie kommt gegenüber einigen von ihnen in der Funktionalität schlechter weg, z.B. der bekannte Autograph, und zu anderen - im Bedienkomfort. Allerdings hat die Drag Trade Library ihre Besonderheiten und das Produkt wird hoffentlich gefragt sein.



1. Ziel der Entwicklung

Ursprünglich war es geplant einen Expert Advisor zu entwickeln, der direkt auf dem Chart handeln und Ordern handhaben würde, unter Verwendung der Maus und Steuerungsobjekten, bei Beibehaltung der Benutzerfreundlichkeit und einem minimalistischen Interface. Das heißt, ein wesentliches Merkmal des Expert Advisors war die Tatsache, dass er vollständig in der Original-Sprache des Terminals entwickelt wurde und daher sicher für Benutzer war, da er keinen schädlichen Code enthalten konnte. Darüber hinaus war der Expert Advisor als kostenlose Software gedacht.

Die Arbeit an dem Projekt führte zu der Bibliothek, welche die obigen Eigenschaften kombiniert und leicht in nahezu jeden EA zu integrieren ist. Zusätzlich enthält die Bibliothek viele nützliche Funktionen, die außerhalb des Rahmens der Bibliothek verwendet werden können.



2. Struktur

Die Funktionalität der Bibliothek kann in vier Blöcke unterteilt werden:

  1. Trading Block
  2. Information Block
  3. Order-Abwicklung Block
  4. Einstellungen Block

Abb. 1. Bibliothek Funktionalität

Die Funktionalität des EA basiert auf dem gleich aufgeteilten Prinzip an Blöcken - die Benutzerschnittstelle ist in 3 unabhängige Blöcke unterteilt, die gemeinsam und unabhängig voneinander genutzt werden können, durch Deaktivieren und Aktivieren der Blöcke, wie es für den Betrieb erforderlich ist. Darüber hinaus hilft dieser Ansatz durch unnötige Verarbeitung von Blöcken verschwendete Ressourcen zu sparen, oder sogar nur minimale Ressourcen zu verwenden, wenn Funktionalitätsblöcke deaktiviert werden. Standardmäßig sind alle Funktionalitätsblöcke deaktiviert.

2.1. Prinzipien der Aktivierung / Deaktivierung von Blöcken

Alle Blöcke für Zeichnen- und Verarbeitungsfunktionen befinden sich in dem Expert Advisor. Allerding erden die Informationen und die meisten Steuerungs- und Informationsobjekte nicht in dem Haupt-Werkzeugfenster gezeichnet. Die Zeichenfläche wird durch Pseudo-Indikatoren bereitgestellt, die außerdem zum Aktivieren und Deaktivieren von Funktionsblöcken dienen. Dies bedeutet, dass, wenn ein bestimmter Indikator in dem Chart vorhanden ist, der entsprechende Funktionsblock des Expert Advisors aktiviert ist und arbeitet.

Die Indikatoren als solche werden nicht verwendet. Ihr einziger Zweck ist die Bereitstellung der Zeichenfläche.

Abb 2. Hilfsindikatoren

Es gibt einige Einschränkungen bei der Verwendung von Indikatoren. Jeder externe Indikator kann in ein Pseudo-Indikator Fenster gezogen werden, aber nicht umgekehrt, da das Vorhandensein eines Fensters durch den Namen des Pseudo-Indikators bestimmt wird und der entsprechende Funktionsblock einfach nicht aktiviert wird.



3. Benutzerschnittstelle

3.1. Expert Advisor Einstellungen

Die Einstellungen wurden aus der Bibliothek entnommen, um einen separaten Funktionsblock zu bilden. Dies ermöglichte es uns tatsächlich einzelne herauszugreifen und die gesamte Funktionalität in der Bibliothek zu platzieren und die Einstellungen außerhalb zu machen, sowohl vor, als auch während des Betriebs des Expert Advisor. Zusätzlich können die Einstellungen in separate logische Blöcke unterteilt werden, ohne an der Spezifikation zu knausern.

Der Prozess selbst besteht darin, das entsprechende Skript auf dem erforderlichen Chart anzuwenden.

Im Moment gibt es 3 Einstellungen-Skripte:

  • DragTrade_CommentsSettings.mq4 - kommentiert Einstellungen (anzeigte Protokolle im Trading-Unterfenster).
  • DragTrade_ObjectsSettings.mq4 - allgemeine Einstellungen der Benutzeroberfläche - Stil der Steuerung und Informationsobjekte.
  • DragTrade_TradeSettings.mq4 - Bibliothek Tradingeinstellungen.

The script provides a description for every property so there should be no problem figuring out how they are set.

Die Umsetzung dieser Funktion basiert auf der der Verwendung globaler Variablen des Terminals zum Speichern der Einstellungen. Dies verhängt einige Einschränkungen in der Anwendung - Linien können auf diese Weise nicht übergeben werden, das die Maximalgröße der übermittelten Informationen begrenzt ist und gleich zu dem double Typ, das heißt 8 Byte.

Ein Beispiel der Einstellung der Expert Advisor Eigenschaften ist im Folgenden zu sehen. Einstellungen für Kommentar- und Objekt-Ausgabe sind für einen ausgeführten Expert Advisor geändert:

Um in der Lage zu sein Strategien im Tester frei zu testen, ohne Angst vor dem Zurücksetzen von Parametern für das Online-Trading zu haben, gibt es eine unterschiedliche Parameterübergabe für Online- und Test-Modus. Einstellungen der Parameter für den einen, werden die den anderen nicht beeinflussen.

Deshalb, wenn Sie die Standard-Parameter im Tester ändern möchten, sollten die gleichen Skripte für den Test-Modus verwenden:

  • DragTrade_TesterCommentsSettings.mq4 - kommentiert Einstellungen (anzeigte Protokolle im Trading-Unterfenster).
  • DragTrade_TesterObjectsSettings.mq4 - allgemeine Einstellungen der Benutzeroberfläche - Stil der Steuerung und Informationsobjekte.
  • DragTrade_TesterTradeSettings.mq4 - Bibliothek Tradingeinstellungen.
3.2. Funktionalität

Also, die Benutzerschnittstelle ist in 3 unabhängige Bereiche unterteilt, die deaktiviert werden können:

  • DragTrade_Infobar (Information Block)
  • DragTrade_OrdersBar (Order-Abwicklung Block)
  • DragTrade_Toolbar (Trading Block)

Als Ganzes sieht es wie folgt aus:


Werfen wir einen genaueren Blick auf sie.

3.2.1. Informationsfenster

Das Informationsfenster ist ein Bereich zum Anzeigen von Informationen. Dies ist der unkomplizierteste Teil der Funktionalität. Es zeigt allgemeine Konto- und Instrument-Informationen, sowie die aktuellen Bibliothek-Einstellungen.

Abb. 3. Informationsfenster

Informationen für die Anzeige können einfach erweitert werden, allerdings erfordert dies Änderungen im Code der Bibliothek.

Wenn Sie das nicht abschreckt, die Funktionalität wird durch die folgenden Funktionen dargestellt: void ClearInformation() und void DrawInformation()

3.2.2. Order-Fenster

Dieses Fenster zeigt Informationen über aktuelle (offene) Instrument-Ordern und enthält und enthält Steuerungen für deren Abwicklung.

Abb. 4. Order-Fenster

Was Sie durch Aktivierung dieses Fensters tun können:

  • Schließen aller Ordern der Orderliste, platziert für ein bestimmtes Währungspaar (nachfolgend in Übereinstimmung mit den EA Magic Number Einstellungen), einschließlich Markt- und Pending Order.
  • Schließen aller Buy-Ordern
  • Schließen aller Sell-Ordern
  • Löschen aller Pending-Ordern
  • Löschen und Schließen aller Ordern

Das folgende Video bietet eine grafische Darstellung der Funktionalität dieses Fensters:

3.2.3. Trading-Fenster

Dieses Fenster wird für die Anzeige der Handelsfunktionalität verwendet. Es ist das wichtigste und erforderliche Fenster, da es die Hauptfunktionen der Bibliothek enthält. Die Aktivierung dieses Fensters gibt Ihnen die Möglichkeit Ordern zu platzieren und abzuwickeln, mit verschiedenen Steuerungen direkt in dem Chart.

Abb. 5. Trading Fenster

Was Sie durch Aktivierung dieses Fensters tun können:

  • Platzieren und Schließen von Markt-Ordern.
  • Öffnen von Pending Ordern, sowohl Stop als auch Limit. Da ich noch keinen ausreichend guten Weg zum Setzen von Stop-Ebenen gefunden habe, fehlen diese aktuell und können nur mit den integrierten Terminal-Funktionen gesetzt werden (d.h. Order-Änderungsfenster).
  • Löschen von Pending-Ordern.
  • Stop-Ebene von Ordern ändern.
  • Auslösekurs von Limit- und Stop-Ordern ändern.

Markt-Ordern werden wie folgt platziert:

  • setzen Sie den Stop Loss Kurs der künftigen Order mit dem Kurs-Zeiger (Pointer)
  • überlagern Sie die Steuerung für "Markt-Order öffnen"

Eine Markt-Order wird durch einfaches Ziehen der Stop-Ebene auf die andere Seite des Kurses geschlossen.

Das folgende Video zeigt Beispiele der Abwicklung von Markt-Ordern.

Abwicklung von Buy-Ordern:




Abwicklung von Sell-Ordern:




Pending Ordern werden wie folgt platziert:

  • legen Sie den Auslösekurs der künftigen Order mit dem Kurs-Zeiger fest
  • überlagern Sie die Steuerung für "Stop Order öffnen", wenn Sie eine Stop Order platzieren möchten, oder für "Limit Order öffnen", wenn Sie eine Limit Order platzieren möchten.

Eine Pending Order wird durch einfaches Ziehen der Order-Linie auf die andere Seite des Kurses geschlossen.

Das folgende Video zeigt Beispiele über die Handhabung von Pending Ordern.

Handhabung von Stop Ordern:




Handhabung von Limit Ordern:


4. Integration in den Expert Advisor

Und schließlich, der interessanteste Teil.

Es ist in der Tat sehr einfach. Der Integrationsvorgang wird durch die Tatsache erheblich vereinfacht, dass nur die minimal notwendigen Einstellungen während der Integration an die Bibliothek übergeben werden. Die verbleibenden Einstellungen werden über externe Skripts abgedeckt.

Das einfachste Beispiel eines Expert Advisor kann anhand einer Shell demonstriert werden, welche die Bibliothek in einen Expert Advisor dreht. Es wird wie folgt aussehen:

//+------------------------------------------------------------------+
//|                                      DragTrade_Example_v_1.0.mq4 |
//+------------------------------------------------------------------+
#property copyright "Copyright ɠ2009, TheXpert"
#property link      "theforexpert@gmail.com"

extern int      Magic          = 1111;
extern int      EAMagic        = 1234;
extern int      TimesToRepeat  = 3;
extern int      Slippage       = 3;

#include <DragTrade_v_1.0/DragTradeLib_v_1.0.mqh>

bool Testing;

int init()
{
   Testing = IsTesting();
   DragTrade_Init(Magic, EAMagic, TimesToRepeat, Slippage, "Drag Trade Example");

   Comment_("Test Example of using Drag Trade Library");

   return(0);
}

int deinit()
{
   DragTrade_Deinit();
   return(0);
}

int start()
{
   DragTrade_Start();
   
   return(0);
}

Der obige Code kann als betriebsbereiter Expert Advisor zum Traden mit der Maus angewandt werden.

Ereignisse in diesem Code werden mit jedem neuen Tick behandelt.

Die wichtigsten Bibliothek Integrationspunkte:

  • Die Funktionen init und deinit sind wesentlich und in dem Expert Advisor erforderlich.
  • Fügen Sie die Bibliothek in die Head-Datei DragTradeLib_v_1.mqh ein und stellen Sie sicher, dass die Komponenten der Bibliothek sich alle am richtigen Ort befinden.
  • Die folgenden Bibliothek-Funktionen müssen in den entsprechenden EA-Funktionen aufgerufen werden:
  1. DragTrade_Init
  2. DragTrade_Deinit
  3. DragTrade_Start

Die DragTrade_Init Funktion sieht aus wie folgt:

   void DragTrade_Init(int magic, int eaMagic, int timesToRepeat, int slippage, string ordersComment = "");

Werfen wir einen genauen Blick auf die zu übergebenden Parameter:

  • int magic - die von der Bibliothek verwendete Magic Number. Mit der Bibliothek platzierte Ordern werden diese Nummer führen. Wenn der übergebene Wert gleich -1 ist, werden die Ordern mit der Magic Number 0 geöffnet und die Filteroption wird während der Anzeige nicht verfügbar sein.
  • int eaMagic - Die Magic Number der Strategie. Sie ist so eingeführt, dass die Ordern automatisch platziert werden und manuell von der implementierten Strategie unterschieden werden können. Wenn Sie möchten, dass die Strategie in der Lage ist diese Ordern zu "sehen", können Sie identische Magic Numbers einstellen oder die Rückverfolgbarkeit von zwei Magic Numbers umsetzen. Wenn der Wert -1 ist, wird die zusätzliche Magic Number nicht verwendet.
  • int timesToRepeat - Handelsparameter. Die Anzahl der Versuche eine Order zu platzieren, wenn der verursachende Fehler sofort einen neuen Versuch ermöglicht.
  • int slippage - Handelsparameter. Slippage.
  • string ordersComment - der Kommentar für mit der Bibliothek platzierte Ordern.

Wenn Sie eine schnelle Ausführung möchten, kann die start Funktion des EAs durchgeschleift werden:

int start()
{
   while (!IsStopped())
   {
      DragTrade_Start();
      Sleep(200);
   }
   return(0);
}

Es wird allerdings unmöglich sein einen solchen EA im Tester zu testen - er wird einfrieren.

Eine Lösung kann eine Bestimmung für ein anderes Verhalten des Testers sein:

int start()
{
   if (Testing)
   {
      DragTrade_Start();
   }
   else
   {
      while (!IsStopped())
      {
         RefreshRates();
         
         DragTrade_Start();
         Sleep(200);
      }
   }
   
   return(0);
}

Das an den Artikel angehangene Standardpaket enthält diesen besonderen einfachsten Expert Advisor.

Darüber hinaus enthält das Paket einen Standard Expert Advisor MACD Sample mit integrierter Bibliothek und den Bibliothek-Handelsfunktionen.

Neben den für die Integration erforderlichen Funktionen, bietet die DragTradeLib_v_1.0.mqh Datei einen ganzen Satz an Funktionen, die sich als nützlich bei der Umsetzung von Handelsstrategien erweisen können, die durch die Bibliothek genutzt werden und für die Umsetzung Ihres Code verwendet werden können.



5. Bibliothek Installation

Die Installation ist einfach - Sie müssen das angehangene Archiv in Ihren Terminal-Ordner entpacken, das Terminal neu starten, falls es in Betrieb war, so dass die ausführbaren Dateien in der Liste der Dateien in dem Terminal erscheinen.



6. Lizenz

/* =============================================================================================== */
/* Copyright (c) 2010 Andrey Nikolaevich Trukhanovich (aka TheXpert)                               */
/*                                                                                                 */
/* Permission is hereby granted, free of charge, to any person obtaining a copy of this software   */
/* and associated documentation files (the "Software"),                                            */
/* to deal in the Software without restriction, including without limitation the rights            */
/* to use, copy, modify, merge, publish, distribute,                                               */
/* sublicense, and/or sell copies of the Software, and to permit persons                           */
/* to whom the Software is furnished to do so, subject to the following conditions:                */
/*                                                                                                 */
/*                                                                                                 */
/* The above copyright notice and this permission notice shall be included                         */
/* in all copies or substantial portions of the Software.                                          */
/*                                                                                                 */
/* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS                        */
/* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,                     */
/* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR          */
/* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER                                     */
/* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR         */
/* IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                   */
/* =============================================================================================== */


Fazit

Die Bibliothek wurde bei der Arbeit mit einem realen Handelskonto ausprobiert und erwies sich selbst als nützliches, zuverlässiges und stabiles Tool.

Noch einmal möchte ich meine tiefe Dankbarkeit gegenüber Viktor Khabibulaevich Rustamov ausdrücken. Er war der Urheber der Idee, eine Bibliothek zu erstellen, sowie ein Tester und wertvolle Quelle der Beratung bei der Umsetzung der Idee.

Es ist eine ganze Menge an Code, also sind kleine Fehler und Störungen sehr wahrscheinlich vorhanden. Ich würde es wirklich schätzen, wenn Sie mich von ihnen wissen lassen.

Ich werde versuchen durchführbare (nicht garantierte) Code-Wartung bereitzustellen. Weitere Projektentwicklungen unter den Lizenzbedingungen durch andere Leute werden meine volle Unterstützung erhalten. Ale Kommentare und Vorschläge in Bezug auf die Bibliothek werden, so weit möglich, in zukünftigen Versionen in Betracht gezogen.

Viel Glück und einfaches Trading!


Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalartikel: https://www.mql5.com/ru/articles/1354

Beigefügte Dateien |
MetaTrader 4 auf Mac OS MetaTrader 4 auf Mac OS
Apple Produkte sind sehr beliebt geworden. MetaQuotes Software Corp. folgt aufmerksam dem Fortschritt in der IT-Industrie und hat bereits spezielle mobile Anwendungen für iOS-basierte Geräte veröffentlicht - MetaTrader 4 für iPhone und MetaTrader 5 für iPhone. Es gibt viele Themen in dem MQL4.Community Forum, in denen die Menschen nach der Ausführung von MetaTrader 4 unter dem Mac OS Betriebssystem suchen. In diesem Artikel werden Sie herausfinden, wie MetaTrader 4 über Apples beliebtes Betriebssystem funktioniert.
Synthetische Balken - Eine Neue Dimension Zur Anzeige Grafischer Informationen über Kurse Synthetische Balken - Eine Neue Dimension Zur Anzeige Grafischer Informationen über Kurse
Der wesentliche Nachteil bei der herkömmlichen Anzeige von Kursinformationen mit Balken und japanischen Kerzen ist, dass sie an einen Zeitrahmen gebunden sind. Es war vielleicht zu der Zeit optimal, als diese Verfahren erzeugt wurden, aber heute sind die Marktbewegungen manchmal zu schnell, auf diese Weise in einem Chart angezeigte Kurse können nicht zu einer sofortigen Reaktion auf eine neue Bewegung beitragen. Das vorgeschlagene Kurs-Chart Anzeigeverfahren hat diesen Nachteil nicht und bietet ein sehr vertrautes Layout.
Ein Einblick in Akkumulation/Distribution und Wo Sie sie bekommen können Ein Einblick in Akkumulation/Distribution und Wo Sie sie bekommen können
Der Akkumulation/Distribution (A/D) Indikator hat ein interessantes Merkmal - ein Ausbruch der in das Indikator-Chart gezeichneten Trendlinie deutet, mit einer einem gewissen Grad an Wahrscheinlichkeit, einen bevorstehenden Ausbruch der Trendlinie in dem Kurs-Chart an. Dieser Artikel wird nützlich und interessant für diejenigen sein, die neu sind in der Programmierung mit MQL4. unter diesem Gesichtspunkt habe ich versucht, die Informationen auf eine einfach zu erfassende Weise zu präsentieren und die einfachsten Codestrukturen verwendet.
Das Meta COT Projekt - Neue Horizonte für die CFTC Berichtsanalyse in MetaTrader 4 Das Meta COT Projekt - Neue Horizonte für die CFTC Berichtsanalyse in MetaTrader 4
Der Artikel befasst sich mit der Verwendung von CFTC Daten (Open Interest) in MetaTrader. Der Artikel beschreibt das geplante META COT Projekt in Einzelheiten, zeigt wie die erforderlichen Informationen geladen und verarbeitet werden. Der in dem Projekt inbegriffene Expert Advisor wird uns helfen die Effektivität des in dem Artikel vorgestellten Konzepts zu analysieren. Abschließend werden wir einige Schlussfolgerungen ziehen und nützliche Anregungen bieten.