Sunday, February 5, 2017

Forex Tester Zugriffsverletzung

Forex Tester 3 Forum Ich habe eine automatisierte Strategie, die ich in C codierte mit dem C11-Standard mit dem MinGW GCC-Compiler. Ich möchte Forex Tester verwenden, um meine automatisierte Strategie backtest. Also, um über die API zu lernen, habe ich ein neues Projekt mit dem C-Strategien Beispiel für Forex Tester 2, die die ObjectsTest-Strategie ist erstellt. Nach der Suche durch die StrategyInterfaceUnit. h-Datei, entdeckte ich, dass ich die Windows. h Header-Datei enthalten, die MinGW enthält so keine Probleme gibt. Ich habe einen Header, der die erforderlichen Funktionen als C-Funktion exportiert (kein Name Mangel), und dann das Projekt kompiliert. Ich musste einige der Defaults in den Funktionsaufruf-Implementierungen entfernen, da die Defaults bereits in den Funktionsdeklarationen enthalten waren. Ich habe dann die Strategie in Forex Tester 2 installiert und dann versucht, es auszuführen. Ich erhalte den folgenden Fehler: quotError MainFormUnit. ProcessTick (SymbolList. AddSingleTick) Zugriffsverletzung bei Adresse 00000000. Lesen von Adresse 00000000.quot mir scheint, dass ein Zeiger auf die Null-Adresse zeigt. Ich hatte ein ähnliches Problem beim Ausprobieren der Beispiel-Indikator. Beide Beispiele exportieren das IntrfProcsRec-Objekt. So umfaßte ich den Export wie folgt: ifdef cplusplus extern quotCquot endif EXPORT TInterfaceProcRec IntrfProcsRec ifdef cplusplus endif Um einen C-Export auszuführen (wiederum um Namensmangel zu vermeiden). Dies half nicht, da ich immer noch die gleiche Fehlermeldung. 1. Verwenden Sie kostenloses Visual C Express von Microsoft-Website mit weniger Schwierigkeiten und mehr Menschen mit. Auch ich denke, die Code-Seite ist kleiner als der Rest der Compiler. 2. Achten Sie auf 1 Fehler in der StrategyInterfaceUnit. h auf Ver 1.11 alle Objekte Fenster Löschen - Fenster, in dem ObjType zu löschen - Art von Objekten Leere ObjectsDeleteAll (int Fenster 0, TObjectType ObjType objAnyObject) KH: Die Implementierung ist nicht OK ---- - Alle Objekte löschen ---------------------------------------------- ------- Leere ObjectsDeleteAll (int Fenster 0. TObjectType ObjType objAnyObject) if (rec. pObjectsDeleteAll NULL) return rec. ObjectsDeleteAll (rec. pObjectsDeleteAll, Fenster, ObjType) entfernen Sie die markierte Rot. 3. Die Delphi-Version von StrategyInterfaceUnit. pas hatte mehr Inhalt dann C StrategyInterfaceUnit. h Check out und ausprobieren und sehen, ob diese helfen. Wer ist online? Mitglieder in diesem Forum: 0 Mitglieder und 2 GästeAcces Verstoß bei der Adresse 0075FA55 im Modul ForexTes. Acces Verletzung bei Adresse 0075FA55 in Modul ForexTester. exe. Read von address0000001C OS Microsoft Windows 7 Home Premium 6.1.7601 Service Pack 1 7601 OS OS Microsoft Corporation FUKUYAMA-PC FUJITSU FMVA56CR x64- PC Intel (R) Core (TM) i5-2520M CPU 2.50GHz2501 MHZ2 4 BIOS FUJITSU Phoenix Technologies Ltd. Version 1.18, 20.110.325 SMBIOS 2.6 Windows-C: Fenster C: windowssystem32 DeviceHarddiskVolume2 quot6.1.7601.17514quot fukuyama-PC () (RAM) 4.00 GB 3,20 GB 1,08 GB 6,40 GB 3,40 GB 3,20 GB C: pagefile. sys 415 1 100 Ich muss einen automatischen Code-Konverter aus MQL4 API (eine C-ähnliche Sprache) in Forex Tester API (C Delphi DLL) zu erstellen. Es gibt Vorschläge, dass es mit Hilfe von ANTLR und MMVP getan werden kann. Jedoch weiß ich nicht, wie es mit Hilfe der oben genannten Technologien getan werden kann. Könnte jemand sagen, wie mein Problem gelöst werden können Wenn Sie nicht wissen, wie Sie meine Aufgabe mit ANTLR oder MMVP erreichen, dann beraten Sie bitte andere Technologien. Hier ist ein Beispiel für ein einfaches MQL4-Programm. Ein Beispiel für das gleiche Programm in C-API geschrieben. Zuerst begrüßen Sie, um anzufangen, am StackOverflow zu fragen. Vielleicht haben Sie schon bemerkt, dass Ihre MQL4-Code-Syntax nicht die aktuelle Version von MQL4 ist (wie unten erwähnt, ein Newquot - MQL4). Überprüfen Sie und überprüfen Sie, ob Ihr Projekt nicht nur Probleme aufgrund dieser Art von Paradigmenwechsel, nur per se. Hoffe, Sie können Ihre quotinputquot-Seite-Code-Basis zu steuern. Im Falle nicht, die ganze Anstrengung geht zu Nase-tauchen in das Felsbett (für Details bitte überprüfen weitere Bemerkungen unten) ndash user3666197 Dec 16 15 at 9:00 Vielen Dank für eine solche schnelle Antwort. Diese Experten arbeiten an einem neuen Meta Trader. Die meisten Experten, die in Forex Tester API konvertiert werden müssen, sind in der alten MQL4 geschrieben. Aus diesem Grund habe ich Ihnen ein Beispiel in der alten MQL4 ndash geschrieben Justinserg Dec 16 15 um 9:17 Sie wurden empfohlen, ANTLR MMVP für Ihre Aufgabe zu verwenden Nun ist das Kernproblem nicht in der ANTLR Art von Tools Fähigkeiten versteckt. Ich habe einige Zeit erforscht, wenn ANTLR unsere Codebasisprobleme retten konnte, wo unsere IDE (nicht die Standard-MetaLang, eine andere, eine flexiblere, konfigurierbare und programmierbare IDE verwendet wurde) noch nicht in der Lage war, Syntax-Fehler auf brace - Passend zu einem mehrstufigen kommentierten Quellcode. Während ANTLR ist außer Frage ein sehr mächtiges Pferd, würde man verbringen Altersgruppen zu engen Band in nur mit dieser Art von allgemeinen Sprache-Modellierung und abstrakte Syntax-Baum-Modellierung Wissen zu spezialisieren. Wenn Ihr Team kann ein paar viele Jahre in diese Lernkurve zu verbringen. Gut, halten Sie die Planung. Wenn nicht . Es ist eine hohe Zeit, Ihren Projektplan zu überprüfen, neu zu gestalten und umzusetzen. . Nota bene: Code-Umwandlung ist der einfachste Teil. Eine Notwendigkeit, Unterschiede in der Syntax, ein Bedürfnis zu decken Unterschiede in den Variablen Bereich immer ein bisschen härter Lexer kann ein bisschen helfen in diesem Ich mag Ihre Idee, eine Proxy-Schicht auf C-Seite, basierend auf Ziel-API-Dienste, so zu erstellen Um ein fehlendes Verhalten auf dem flexibleren Teil der MQL4-gtForex Tester-Marschroute zu vermitteln. In guten Tagen von MQL4. (Wenn es in der Tat war ein MQL4 nicht die New-Hybrid) habe ich ein paar Syntax-Wrapper für ähnliche Zwecke entwickelt, aber mit einer anderen Motivation, wo die einfachen amp einfachen MQL4 Konzepte waren nicht möglich, hilflos zu bleiben. Das richtige Verständnis sowohl der Hauptarchitektur als auch verschiedener modi operandi, die im MetaTrader Terminal 4 als ein Codeausführungs-Ökosystem der MQL4-Programmtypen zur Verfügung stehen, ist nur ein Anfang des Lösungsansatzes, sobald Sie sich entschieden haben, eine Codeumwandlung von MQL4-DSL-Domäne zu erarbeiten Eine andere DSL-Domäne. Der letzte Nagel in den Sarg. Syntax kriecht in neu - MQL4.56789. Es ist schwer, nicht zu erwähnen, dass in den letzten Jahren MQL4 begann eine ganz andere Sprache zu werden. Einmal kann guesstimate, was bedeutet, dass für eine Code-Basis Wartung, desto mehr Albtraum dies hinter dem Vorhang, sobald Code-Basis erstreckt sich über n-Hunderte viele Jahre. Einfach ausgedrückt, während die Schlüsselbegriffe nicht so oft bewegen, jede neue Version von entweder MetaTrader Terminal 4 als Codeausführung Ökosystem oder die MetaEditor als halbintegrierten Codekompilierung Werkzeugkette früher als MetaLang. exe (prä - New bekannt - MQL4.56789.) (Während beide aus ihrer eigenen Kontrolle verteilt werden, auch mit einer erzwungenen Aktualisierung durch eine Broker-Seite betrieben Politik, so dass keine Möglichkeit für eine bestimmte Version-Einfrieren können Sie von einem Pflicht-Tanz auf dieser Mine - Feld) Wie es gelöst werden kann Wenn ich in Ihrer Situation wäre, würde ich die Project Manager Project Sponsor zu fragen, was ist das verfügbare Budget, Zeiteinschränkung und Kunde Präferenz für die Schaffung eines solchen universellen Code-Converter. Wenn machbar. Ich würde ein neues Projekt mit einem solchen Zeitplan Work-force Budget starten und eine unabhängige Project Management Amp-Kostenkontrolle davon zu erwerben. Wenn nicht machbar, würde ich das Projekt Lenkungsausschuss bitten, Metriken neu zu definieren und update amp publish angepasst Projektplan Work-force Schedule Budget für die Code-Basis-Umwandlung Aufgabe ohne ein automatisiertes Tool durchgeführt werden.


No comments:

Post a Comment