Alle Inhalte von FinGeR
-
EA soll nur am ersten Tick eines Bars traden
Das simpelsten Beispiel dafür mit MQL4 //--- Trading nur auf den erste Tick der neuen Bar if(Volume[0]>1) return;
- Mein erster EA
-
MT 4 Build 574
Ich habe gerade MT4 Build 600 auf Windows 8.1 installiert. Ohne Probleme. Leider gibt es das Feature Info über die Ausführungszeit von Order Operationen in Millisekunden nicht. (weder im Terminal noch in MQL4) Obwohl ich gelesen habe, dass dieses Feature im neuen Update vorhanden sein soll. Vielleicht im nächsten Build Update.
-
Mein erster EA
Die Funktionen init() und deinit() sind dafür uninteresannt. Die Funktion init() wird nur 1x aufgerufen, wenn man den EA in das Chartfenster läd. Die Funktion deinit() wird nur 1x aufgerufen, wenn der EA beendet wird (vom Chart entfernt) Die Funktion start() wird bei jedem Tick aufgerufen. Deinen Range Filter kannst du in der start() Funktion einbauen. Wenn du willst gleich als erstes aber hinter dem if(Bars<300) { Print("bars less than 300"); return(0); }
-
MT 4 Build 574
Habe ich noch nicht ausprobiert. In MT4 wird es wohl ab 3. Februar zur Verfügung stehen, dann probiere ich es gleichmal aus.
-
MT 4 Build 574
Man könnte die Info aller History Position abrufen, egal ob von Hand ausgeführt oder mit einem EA.
-
MT 4 Build 574
Ich würde mal sagen wie mit MQL5 // Info über die Ausführungszeit von Order Operationen in Millisekunden ORDER_TIME_DONE_MSC
-
MT 4 Build 574
Info über die Ausführungszeit von Order Operationen in Millisekunden Da es immer eine Weile dauert bis eine Order wirklich ausgeführt wird, kann es passieren dass sich das Preisniveau in dieser Zeit ändert und man mit der Slippage konfrontiert wird. Je niedriger die Ausführungszeit der Order, desto geringer die Slippage. Beim neuen Update von MetaTrader 4 kann man die Ausführungszeit der Abgeschlossenen Order Operationen (öffnen, ändern, schließen) abrufen. Dadurch wird es dann leichter, die Ausführungszeit von verschiedenen Brokern zu vergleichen. Oder das Testen der Ausführungszeit eines Brokers bei der Verwendung mit verschiedener Hardware an verschiedenen Orten (VPS, Heimcomputer…) Auch ein interessantes Feature wäre der neue Compiler, der beide Sprachen unterstützen kann: MQL4 und MQL5. Wobei einfach nur die meisten MQL5 Funktionen zu den schon bestehenden MQL4 Funktionen hinzugefügt wurden. Eine weitere Sache, die immer Umständlich war, dass hinzufügen von neuen Broker Server Adressen in MetaTrader 4. Man muss nur im Konto-Eröffnung-Assistent auf Hinzufügen eines neuen Brokers klicken und kann dann dort den Namen und die Server Adresse eingeben.
-
...Denken in Strukturen und Setups...
Ich habe für den einen oder anderen einen Interessanten Artikel gefunden. Warum das Denken in Strukturen und Setups, für den Börsenerfolg so wichtig ist !
-
Algo Trading Plattform
Investox ist auch eine Überlegung Wert. Hat auch eine Super Community (deutsch)
-
Ich suche ein Smartphone...
Dual Sim benötige ich nicht. Danke für den Tip, schaue ich mir gleich mal an.
-
Ich suche ein Smartphone...
Das OS ist egal.
-
Ich suche ein Smartphone...
...vielleicht könnt ihr mir weiter helfen. Mein Budget 170 Euro. (Ohne Vertrag) Was mir Wichtig ist: MP3 Player zum Joggen und ein wenig Video mp4 Allgemein Fotos machen. Email's checken und Googeln. Ein Wenig telefonieren und erreichbar sein. Meine engere Auswahl: NOKIA LUMIA 800htc desire 500Welches könnt ihr mir Empfehlen ?
-
Marktscanner - Hilfe benötigt
Ja. Voraussetzung ist das der Broker diese Daten auch aktuell zur Verfügung stellt. Leider habe ich diese Erfahrung sehr oft gemacht, gerade bei MT4, das Symbol Eigenschaften nicht oder nur Teilweise zur Verfügung stehen. Deshalb sind viele Projekte von mir eingestampft wurden. Es kommt auch vor das Symbol Eigenschaften nur am WE nicht zur Verfügung stehen, ich meine jetzt allein nur die Grund Eigenschaften der Symbole wie z.b. Stops Level, Spread, Swap, digits... Und ich habe auch die Erfahrung gemacht das Symbol Eigenschaften zur Verfügen stehen aber Falsch sind.
-
Corrected Average (CA) Update
Indikator Corrected Average (CA) für MetaTrader 5 Fixed: Anzeige Fehler behoben. http://www.metatrade...ed_Average_(CA) 👀
- Marktscanner - Hilfe benötigt
-
Ich kauf mir eine Drohne
Ich finde die Mini Drohne Interessant (Open Source Projekte) War schon kurz davor mir eine zu kaufen zum selber Basteln. Leider ist die Akku Laufzeit sehr kurz. http://t3n.de/news/schwedische-open-source-441657/
-
Wie funktionieren Bitcoins
Bitcoins - Siegeszug einer virtuellen Währung?
- Welchen VPS bzw. Windows?
- Welchen VPS bzw. Windows?
-
Passwortschutz für deinen Expert Advisor mit MQL5
Das klingt toll. Bin gerne dabei.
-
Ross Trading GmbH
Was ist mit der Ross Trading GmbH los? www.ross-trading.de webseite ist Offline. Hat jemand Informationen?
-
Passwortschutz für deinen Expert Advisor mit MQL5
Leider darf man den Artikel nicht komplett Übersetzen. Dort steht weiter unten noch was über Remote licenses. Ich bin am Überlegen ein eigenes Tutorial zu schreiben. Ist besser alles immer diese Stückel Übersetzung.
-
Passwortschutz für deinen Expert Advisor mit MQL5
Einführung Viele Programmierer wollen ihre MQL5 Anwendungen schützen. In diesem Beitrag werden verschiedene Möglichkeiten vorgestellt. Die Beispiele beziehen sich nicht nur auf den Schutz von Expert Advisors sondern auch für Indikatoren und Skripte. Wir beginnen mit einem einfachen Passwortschutz gefolgt von Key Generatoren, Lizenzierung auf bestimmte Broker Konten, Testversionen auf Zeit. (Trial-Version) Zum Schluss folgt das remote-Lizenz-Server-Konzept. Mein letzter Beitrag erklärt die Remote Procedure Calls von MetaTrader 5 an jedem XML-RPC-Server. Ich werde anhand eines Beispiels die Möglichkeit zeigen für das benutzten von Remote-Lizenz in MQL5. Und ich Erkläre eine verbesserte Lösung mit base64-Codierung und der PGP Unterstützung, für einen sehr sicheren Schutz bei Expert Advisors, Skripte und Indikatoren. Ich bin mir natürlich bewusst, dass ein Lizenzierungsschutz der MetaTrader 5 Anwendungen im MQL5.com Market direkt von der MetaQuotes Software Corp. angeboten wird. Was wirklich gut für alle MQL5 Entwickler ist, und ich will mit meinem Beitrag dies nicht als abwertend beurteilen. Beide Lösungen zusammen verwendet, sind ein starker und sicherer Schutz gegen Software-Diebstahl. 1. Passwortschutz Beginnen wir mit der einfachsten Methode. Die am häufigsten verwendete Lösung für den Schutz von Computer Software, ist das Passwort oder ein Lizenzschlüssel. Während oder nach der Installation einer Software wird dem Benutzter ein Dialogfeld zu Eingabe eines Passworts angezeigt( wie z.b. die Microsoft Windows oder Microsoft Office Seriennummer), wenn das Passwort übereinstimmt, ist es Erlaubt eine einzelne registrierte Kopie der Software zu verwenden. Wir können eine "Input Variable" oder eine direkte "TextBox" zur eine Eingabe des Passworts verwenden. Wie das untere Beispiel zeigt: Der folgende MQL5 Code initialisiert eine CChartObjectEdit Box, für die Eingabe des Passwortes. Es wird ein Array benutzt um gleich mehre Passwörter zu erlauben. Das Passwort wird im OnChartEvent() Ereignis überprüft nach dem das Eingabe Ereignis CHARTEVENT_OBJECT_ENDEDIT empfangen wurde. //+------------------------------------------------------------------+//| PasswordProtectedEA.mq5 |//| Copyright 2012, Investeo.pl |//| http://www.investeo.pl |//+------------------------------------------------------------------+#property copyright "Copyright 2012, Investeo.pl"#property link "http://www.investeo.pl"#property version "1.00"#include <ChartObjects/ChartObjectsTxtControls.mqh>CChartObjectEdit password_edit;const string allowed_passwords[] = { "863H-6738725-JG76364", "145G-8927523-JG76364", "263H-7663233-JG76364" }; int password_status = -1;string password_message[] = { "WRONG PASSWORD. Trading not allowed.", "EA PASSWORD verified." };//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+int OnInit() {//--- password_edit.Create(0, "password_edit", 0, 10, 10, 260, 25); password_edit.BackColor(White); password_edit.BorderColor(Black); password_edit.SetInteger(OBJPROP_SELECTED, 0, true);//--- return(0); }//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+void OnDeinit(const int reason) {//--- password_edit.Delete(); }//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+void OnTick() {//--- if (password_status>0) { // password correct } }//+------------------------------------------------------------------+//| ChartEvent function |//+------------------------------------------------------------------+void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) {//--- if (id == CHARTEVENT_OBJECT_ENDEDIT && sparam == "password_edit" ) { password_status = -1; for (int i=0; i<ArraySize(allowed_passwords); i++) if (password_edit.GetString(OBJPROP_TEXT) == allowed_passwords[i]) { password_status = i; break; } if (password_status == -1) password_edit.SetString(OBJPROP_TEXT, 0, password_message[0]); else password_edit.SetString(OBJPROP_TEXT, 0, password_message[1]); } }//+------------------------------------------------------------------+ Diese Methode ist sehr einfach, aber ohne großem Schutz. Denn das Passwort oder die Seriennummer wird gehackt und kann auf Webseiten für jeden öffentlich gemacht werden. Der Entwickler kann nichts tun, bis er eine neue Version seines Expert Advisors anbietet und dann die gestohlenen Passwörter auf eine Schwarze Liste setzt. 2. Key-Generator Key-Generator ist ein Mechanismus, um eine Reihe von Passwörtern anhand von vor definierten Regeln zu erstellen. Ich werde ein kleines Beispiel eines Key Generator zeigen. In diesem Beispiel wird der Schlüssel(Key) durch drei Zahlenpaare dargestellt, die durch zwei Bindestriche getrennt sind. Das Format des zulässigen Key würde dann so aussehen. XXXXX-XXXXX-XXXXX. © -- Übersetzung von Alexander Piechotta alias FinGeR Leider ist die Übersetzung des gesamten Beitrags nicht gestattet. Quelle, Englische Fortsetzung : Continue Reading...
-
MQL5 für Anfänger: Wie verwende ich Indikatoren in meinem Expert Advisor
Einführung Beim programmieren eines Expert Advisors kommt es selten vor das man keine Standart Indikatoren benutzt. Sie sind sehr beliebt beim Programmieren von Trading Strategien, sowohl für den Anfänger als auch fortgeschrittene Entwickler. Den Aufbau von Standart Indikatoren zu verstehen ist nicht schwer, und Ziel dieses Tutorials. Wir lernen wie man die Funktionen verwenden für das Arbeiten mit den integrierten Standard Indikatoren. Grundlagen für die Verwendung von Funktionen der Standard Indikatoren Zum Abrufen der Indikator Daten, erstellen wir eine Verbindung über eine Variable zur Indikator Funktion. Der zweckt dieser Verbindung auch "Handle" genannt ist die Zuordnung einer Instanz des Indikators mit den festgelegten Eingabeparametern. Durch diesen Handle haben wir Zugriff auf die Pufferdaten des Indikators und können sie zu weiteren Berechnung benutzten. Betrachten wir ein Beispiel: // MQL5 Codedouble MA[]; // array für den Indikator iMAint MA_handle; // handle zu dem indikator iMA//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+int OnInit() { //--- erstelle den handle zum iMA MA_handle=iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE); return(0); }//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+void OnTick() { //--- füllt den array MA[] mit den Aktuellen Daten des iMA //--- Kopiert 100 Element (Bar) CopyBuffer(MA_handle,0,0,100,MA); //--- Setzt den Index der Elemente als Reihe, wie MQL4 ArraySetAsSeries(MA,true); //--- hier kann man mit den Daten aus den MA[] arbeiten als Beispiel: if(MA[0]>MA[1]) { //--- eigene Berechnungen } } Wie wir sehen, ist es ganz einfach. In diesem Beispiel sehen wir die Verwendung des iMA (Moving Average) Indikators - der wohl beliebteste Indikator bei den Trader. Der Handle zu einem Indikator sollte innerhalb der Funktion OnInit() erstellt werden. Wir setzen die Indexierung der Elemente als Reihe, wie in MQL4 - Das bedeutet, In unserem Beispiel haben wir die Elemente als Zeitserie. Mit anderen Worten, die aktuelle Bar(welche noch tickt...) hat immer Index[0], die vorherige Bar hat Index[1] usw. Warum benutzten wir Indexierung ? Für den Komfort und die optimale Umsetzung des Algorithmus. Die MQL5 Sprache ermöglicht die bequeme Indexierung für den Programmierer. Warum ist es besser den Handle zu einem Indikator innerhalb der Funktion OnInit () zu erstellen? Natürlich kann man ihn überall im Programm erstellen, da gibt es keine expliziten Verbote. Allerdings gibt es ein starkes Argument zu Gunsten der vorgeschlagenen Art. Die Funktion OnInit () wird nur ein einziges mal, beim Start des Experten Advisors aufgerufen. Den Handle zu einem Indikator in der OnInit() Funktion aufzurufen ist völlig ausreichend, wenn die Parameter des Indikators nicht verändert werden. Für den Fall das die Indikator Parameter geändert werden müssen, ist es möglich, sie wieder zu initialisieren, innerhalb einer anderen Funktion, zum Beispiel in der Funktion onTick(). Programmierlektion Fast jeder Expert Advisor ist für die Durchführung von Handels Operationen nicht nur auf den Demo Konto entworfen, sondern auch auf einem realen Konto. Wenn du ruig schlafen willst, während dein Expert Advisor handelt, solltest du auf alle Möglichkeiten die beim Traden passieren können, vorbereitet sein. Sogar hoch qualifizierte Entwickler von automatisierten Handelssystemen machen oft ärgerliche Fehler. Und der Preis für solche Fehler kann sehr hoch sein! © -- Übersetzung von Alexander Piechotta alias FinGeR Leider ist die Übersetzung des gesamten Beitrags nicht gestattet. Quelle, Englische Fortsetzung : Continue Reading...