Forex R Projekt
Sites. googlesiteprof7bitr-for-metatrader-4 mt4R. dll gibt Ihnen die Möglichkeit, die R-Engine zu starten und R-Funktionen direkt aus Ihren MQL4-Skripten, Indikatoren und EAs aufzurufen. Sein ein dünnes Wrapperfrontend um Rterm. exe mit einer einfachen und intuitiven MQL4 API. Alles was Sie benötigen ist eine funktionierende Installation von R (r-project. org) auf Ihrem Trading-PC und die beiden Dateien (mt4R. dll und mt4R. mqh), die in den entsprechenden MT4-Ordnern installiert sind. Es gibt eine Dokumentation in mt4R. mqh, die Sie ohne Probleme beginnen sollte, ist die Idee ganz einfach, wenn Sie bereits wissen, R Sie intuitiv verstehen, was Sie mit dieser Bibliothek tun können. Bitte lesen Sie es, bevor Sie Fragen stellen. Die API-Referenz ist auch für das Surfen im Internet verfügbar. Schließlich kann auch der Code von Trend-O-Mat und Arb-O-Mat als Beispiel dienen, wie diese API verwendet werden soll. Einführung in R R ist eine Sprache und Umgebung für statistische Berechnungen und Grafiken. Es handelt sich um ein GNU-Projekt, das ähnlich der S-Sprache und Umwelt ist, die in den Bell Laboratories (früher ATampT, heute Lucent Technologies) von John Chambers und Kollegen entwickelt wurde. R kann als eine andere Implementierung von S betrachtet werden. Es gibt einige wichtige Unterschiede, aber viel Code, der für S geschrieben wird, läuft unverändert unter R. R liefert eine breite Vielfalt von statistischen (lineare und nichtlineare Modellierung, klassische statistische Tests, Zeitreihenanalyse, Klassifizierung, Clustering.) Und grafische Techniken, und ist sehr erweiterbar. Die S-Sprache ist oft das Vehikel der Wahl für die Forschung in der statistischen Methodik, und R bietet eine Open-Source-Route zur Teilnahme an dieser Aktivität. Eine der Stärken von Rs ist die Leichtigkeit, mit der gut gestaltete Publikations-Qualität-Diagramme erzeugt werden können, einschließlich mathematischer Symbole und Formeln, wo nötig. Große Sorgfalt wurde über die Vorgaben für die kleineren Design-Entscheidungen in Grafiken übernommen, aber der Benutzer behält die volle Kontrolle. R ist als freie Software unter den Bedingungen der Free Software Foundation s GNU General Public License im Quellcode verfügbar. Es kompiliert und läuft auf einer Vielzahl von UNIX-Plattformen und ähnlichen Systemen (einschließlich FreeBSD und Linux), Windows und MacOS. MQL4 - gt R-Projekt - Interface-Bibliothek Schlagworte: mt4R. dll, mt4R. mqh, R, Metatrader vielleicht einige von Sie wollen mit meiner MT4 - gt R-Schnittstelle experimentieren, die es erlaubt, so viele R-Sitzungen (in der Regel ein pro laufender EA) zu starten, Daten weiter und zurück zu übertragen und R-Funktionen aufzurufen. Die R-Sitzungen werden als separate Prozesse im Hintergrund ausgeführt, aber die API in Richtung mql4 sind synchrone Funktionsaufrufe, keine hässlichen Textdateien schreiben und Polling. Die Kommunikation erfolgt über Stdioleitungen zu und von jedem der R-Prozesse. In dieser ZIP-Datei sind die benötigten Dateien (mt4R. mqh und mt4R. dll) für die Ausführung dieser Sache. Die. mhq-Datei enthält außerdem alle API-Dokumentation und andere benötigte Informationen. Mt4R-1.3.0.25.zip 101 KB 3.715 Downloads Hochgeladen am Nov 6, 2010 6:40 pm Und optional für diejenigen, die daran interessiert, wie die DLL arbeitet unten ist der DLL-Quellcode (es benötigt FPC 2.4.2 oder neuer zu kompilieren. Sie sollten installieren Eine aktuelle Snapshot von LazarusFPC mit einem 2.4.3 Compiler, finden Sie eine aktuelle Snapshot-Installer (IDE und Compiler in einem Paket) für win32 auf ftp: ftp. freepascal. orgpublazarussnapshots). Hier ist die Quelle: mt4Rsource-1.3.0.25.zip 19 KB 2.339 Downloads Uploaded 6. November 2010 18:40 Die oben genannten Dateien werden auf die neueste Version aktualisiert. Vergessen Sie die Vorschau-Dateien in Post 2, sie sind alt. Mitglied seit: Mar 2009 Status: Mitglied 1.261 Beiträge aktualisiert die Dateien in Beitrag 1 API geändert, daher haben wir eine Änderung in der Versionsnummer 1.1 - gt 1.2 und eine neue Version der. mqh wird benötigt. New: REXecuteAsync (), um Code im Hintergrund auszuführen und nicht neu zu warten: RIsBusy (), das gewöhnlich am Anfang von start () aufgerufen wird, um zu erkennen, ob der vorherige Aufruf von RExecuteAsync () während eines früheren Ticks noch ausgeführt wird. Diese beiden neuen Funktionen sind nützlich, um Indikatoren zu erzeugen. Im Gegensatz zu EAs und Scripts läuft ein Indikator im GUI-Thread von MT4 und darf nicht blockiert werden. Die start () - Funktion muss sofort zurückkehren. Das vorgeschlagene Muster ist nun, RIsBusy () am Anfang von start () aufzurufen und nichts zu tun, wenn es true zurückgibt und nur wenn R im Leerlauf ist, können Sie R-Funktionen verwenden und der letzte R-Aufruf in der Start-Funktion sollte derjenige sein, der startet Die lange laufende Nummer-Crunching-Aufgabe und sollte mit RExecuteAsync () anstelle von RExecute () durchgeführt werden. Danach kann die start () - Funktion zurückkehren, während R im Hintergrund weiterläuft. Die nächsten Ticks verwenden dann RIsBusy (), um zu überprüfen, ob es beendet ist. Wenn eine der R-Funktionen aufgerufen wird, während sie noch einen anderen Befehl ausführt, wird sie einfach warten, bis sie wieder frei ist und dann den Befehl ausführt. Nur ein R-Befehl kann zu einem Zeitpunkt ausgeführt werden und es gibt eine Sperre pro R-Sitzung, um dies zu gewährleisten. Es gibt keine Fehler (nur Debug-Nachrichten), alles wird noch in der richtigen Reihenfolge geschehen, nur die start () - Funktion kann nicht schnell zurückkehren, wenn es gezwungen ist, auf die Sperre zu warten, also seien Sie vorsichtig, intelligent zu verwenden RIsBusy () und Intelligent organisieren den Kontrollfluss zu gehen durch Start mit minimaler Blockierung. Wenn Sie EAs tun, dann ist das alles nicht notwendig (oder sogar kontraproduktiv), hier kann die start () Funktion blockieren, solange sie will und für das Strategie-Tester ist das sogar nötig. RExecuteAsync () ist nur ein Workaround für Indikatoren und MT4s hässlich Designfehler der Ausführung aller Indikatoren im Haupt-Thread, hier benötigen Sie diese, um langwierige Aufgaben asynchron zu machen, um start () immer schnell zurückzukehren. Morgen werde ich eine kleine Beispielanzeige posten. Profil Beiträge der letzten Zeit anzeigen: Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren «Ein Thema zurück | Ein Thema vor» Antwort schreiben Druckversion anzeigen Thema einem Freund senden Thema abonnieren Benutzer, die gerade dieses Thema anschauen: 1 Gast / Gäste Aber es wird nicht blockieren die MT4-GUI. Die start () - Funktion wird immer sofort zurückkehren, der einzige lang laufende Befehl ist der Aufruf von ar () und das wird in RExecuteAsync () durchgeführt und die gesamte start () - Funktion wird so geschrieben, dass dies der letzte R-Aufruf ist Bevor wir zurückkehren (dies ist wichtig), daher alle ifs und die irgendwie verdrehte Kontrolle fließen (die alte Vorhersage, bevor wir ein neues Modell). Dieser Indikator ist ein experimenteller schneller amp schmutziger Prototyp, den ich für das Testen der asynchronen Ausführung schrieb. Vielleicht könnte ein Code hinzugefügt werden, um sicherzustellen, dass es nur auf Bar geöffnet, aber dann sollte es Schleife von 1 nach hinten und nicht von 0 nach back-1, weil auf bar offenen Close0 und Close1 sind aus der gleichen Zeit und nicht 1 Stunde auseinander und Auch die Indikatorverschiebung muss um 1 bar reduziert werden, um die aktuelle und nicht die nächste zu schätzen. Hier ist, wie es aussieht, wenn eine eurusd H1-Chart (Es scheint, es funktioniert am besten auf höhere Zeitrahmen (H1 und länger), die starke Periodizität zu zeigen scheinen scheint, und eurusd scheint sehr gut zu funktionieren): Attached Image (Zum Vergrößern anklicken) Angehängtes Bild (zum Vergrößern anklicken) MQL4 - gt R-Projekt - Schnittstellenbibliothek Btw, hier ist eine nette Art, sagen wir ein Idiom, für diese R-MT4-Bibliothek. Idee: - Sie wollen nicht Programm R in MQL-Code durch die Verkettung Strings zusammen. Sie wollen dies in R. - MQL ist nur für 3 Dinge gedacht: Übergabe von Daten an R und Abrufen von Ergebnissen zurück aus R und dann zeigt es. - wenn Sie Ihren R-Codealgorithmus ändern möchten, möchten Sie das NUR in Ihrem R-Code OHNE Änderung Ihres MQL-Codes tun. (So im Grunde, Sie schreiben Ihre MQL-Code einmal und Sie nie ändern). Und hier ist, wie Sie dies tun: So Sie im Grunde alle Logik in einer separaten R (Quelle) - Datei und in Ihrem MQL-Code Sie abrufen die resultsvariables zurück wie folgt: Und hier ist ein Beispiel für eine R-Quelldatei: Für die Entwickler , Könnten Sie dieses beigefügte Dokument für einige der Möglichkeiten, um direkt auf R. exe Rterm. exe im Batch-Modus nützlich finden. Arbeiten mit R im Batch-Modus: Einige Hinweise für Anfänger von Michael Lundholm people. su. se lundhreproducebatchmode. pdf Ich kann auf 7Bits dll von C (in einem 32-Bit-Programm) zugreifen, aber keine der beiden neuen Versionen (Naddmer micclly) von C - Eine Idee, warum vielleicht 7Bit verwendet einige super kung-fu bei der Kompilierung der ursprünglichen Version. Auch hat jemand kompiliert die mt4R dll in 64 bit Es wäre schön zu können. Hallo, 1. MT4R. dll - ein Gateway für die Datenübertragung in Textform vom MT4MT5 Terminal in Rterm und Empfangsresultat zurück. Alles weitere 2. Berechnungen im Terminal können auf jedem Tic gemacht werden. Batch-Modus für solche Berechnungen Absurdität. Viel Glück Nebenbei bemerkt, diejenigen von euch, die dieses Projekt verwenden, um auf R zuzugreifen, wünschen, dass die R-Sitzung nicht auf einem Fehler heruntergefahren wird, der die R-Standardeinstellung zu sein scheint. Sie könnten es beheben, immer Fehler zu ignorieren, indem Sie so etwas wie dieses (ungetestet) bearbeiten in Ihrer mt4R. mqh-Datei: Ich habe die quotoptions (errordump. frames) - Zeile in meinem Code getestet und es scheint effektiv zu verhindern, dass R von Shutting Auf den ersten Fehler. Ich kann auch berichten, dass die Ideen, die in dem Zitat unten (M. Lundholm Papier) beschrieben sind, nützlich sind, um eine Schnittstelle zu schaffen, um direkt auf R zuzugreifen. Ich habe eine rudimentäre interaktive R Kommandozeile Demo-Projekt auf und läuft. Für die Entwickler, finden Sie möglicherweise dieses beigefügte Dokument nützlich über einige der Möglichkeiten, um direkt auf R. exe Rterm. exe im Batch-Modus. Arbeiten mit R im Batch-Modus: Hier einige Hinweise für Anfänger von Michael Lundholm people. su. se lundhreproducebatchmode. pdf I 7Bits DLL-Datei von C (in einem 32-Bit-Programm) zugreifen können, aber keiner der beiden neuen Versionen (Naddmer micclly) von C - Eine Idee, warum vielleicht 7Bit verwendet einige super kung-fu bei der Kompilierung der ursprünglichen Version. Auch hat jemand kompiliert die mt4R dll in 64 bit Es wäre schön zu können. Bistreevseh, Schiebe die Schrägstriche in deinem Pfad von quotquot zu quotquot, während R dieses erwartet. Ive verwendet 64 Bit R mit mt4r. dll ohne Probleme. Die tatsächlichen Anrufe zu Rterm. exe werden programmgesteuert durch die Eingabeaufforderung, so dass es keine Rolle, ob Sie 32 oder 64 Bit R wie das Betriebssystem das schwere Heben. Es spielt keine Rolle, dass mt4r. dll 32 Bit ist, weil MT4 32 Bit ist. FXEZ ist fast völlig richtig über die Schrägstriche. Wie dumm von mir. Ein einziges Quotquote entkommt nur das nächste Zeichen in MQL4. Aber doch dann aber wieder. Ye olde R-Probe von Master 7bit hat. Und wenn ich das Olde-Beispiel ausführen, dann sieht es so aus (DBGVIEW. EXE im Vordergrund): Attached Image (Zum Vergrößern anklicken) So muss es eine dritte Ursache des Fehlers geben. Denken Sie daran, einen Blick in DBGVIEW Edit: Win7 i386, die neuesten Patches. Hey Leute, danke für diesen tollen Thread. Ich beginne gerade, total Noob mit MQL4, ein bisschen besser vertraut mit R. habe ich ein paar Fragen: 1. Nachdem die richtigen Dateien für die neue mt4 neue Version herunterzuladen (hier: githubmiccllymt4R), kann ich jetzt kompilieren mt4R. mqh, Mt4Test. mq4 und die beiden Anzeigen ohne Problem. Aber wenn ich versuche, das Skript mt4rTest. mq4 zu einem Diagramm anzubringen, ist dies, was DebugView-Nachrichten. (Vielleicht weil wir Samstag sind) mache ich mir Sorgen um die Zeile 2204 Ungültiger Parameter an C Laufzeitfunktion übergeben. Können Sie bitte überprüfen, ob diese Ausgabe für C Exception-Handler installiert normale 1576 ist: UsersASUS UX32LAppDataRoamingMetaQuotesTerminal50CA3DFB510CC5A8F28B48D1BF2A5702MQL4Librariesmt4R. dll 1576 lt2gt erstellen: Versuch R zu starten: C: Programm FilesRR-3.2.1binx64Rterm. exe --no-save 2204 ungültiger Parameter an C übergeben Laufzeitfunktion. 1576 lt2gt ExecuteCode: in gtgtgt Optionen (digits15) 1576 lt2gt ExecuteCode: aus ltltlt 1576 lt2gt erstellen: R erfolgreich gestartet 1576 RINIT: RHandle 6EDF95C (116.259.164) 1576 lt2gt ExecuteCode: in gtgtgt foo LT - c (0, 1,25, 2,5, 3,75, 5) 1576 lt2gt ExecuteCode: out ltltlt 1576 lt2gt ExecuteCode: in gtgtgt baz LT - foo 42 1576 lt2gt ExecuteCode: out ltltlt 1576 lt2gt ExecuteCode: in gtgtgt as. vector (BAZ) 1576 lt2gt ExecuteCode: aus ltltlt 1 0,0 52,5 105,0 157,5 210,0 1576 RDeinit: RHandle 6EDF95C (116.259.164) 1576 lt2gt STOPP: Stoppen R 1576 lt2gt Stopp: Senden beenden () 1576 lt-1GT TPlotEventLoop: Abschluss 1576 lt-1GT TRConsole: Zerstörung 1576 entfernt Exception-Handler für C: UsersASUS UX32LAppDataRoamingMetaQuotesTerminal50CA3DFB510CC5A8F28B48D1BF2A5702MQL4Librariesmt4R. dll 5356 SHIMVIEW: ShimInfo (Complete) 2. Es wäre eine große Hilfe, wenn Sie mir das einfachste mögliche mt4R Programm zur Verfügung stellen könnten, das mir zeigen kann, wie genau mt4R und R kommunizieren. Zum Beispiel: Alle 3 Sekunden sagen wir: Senden von OHLC-Daten an R (Schlusskurse, zum Beispiel umgekehrt ()) Verwenden Sie R, um eine einfache Operation mit den Zeitzählungen zu tun, zum Beispiel multiplizieren Sie den letzten Datensatz mit 2 Diese Daten in einem R zeichnen Fenster für eine Sekunde erhalten diese Daten zurück von R in mt4R Alert den letzten Datensatz (multipliziert mit 2) 3. Ihrer Meinung nach, was ist die beste Dokumentation da draußen für mich Mein Ziel ist es, die einfachste EA, die mit R, So dass ich alle Änderungen in R, nicht in der EA machen würde, wie es früher in diesem Thread auch gesagt wurde). Ich erkenne, dass ich viel fragen, so dass die erste Antwort 1000 awesomeness Punkte.
Comments
Post a Comment