Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Ich habe meinen Expert Advisor im Assistenten erstellt. Ich kenne mql nicht sehr gut. Könnten Sie mir bitte anhand des Beispiels der Umschläge erklären, was zu tun ist?
Die Klasse CSignalEnvelopes verfügt nicht über ein solches Marktmodell.
Fazit: Wir müssen die Klasse verbessern (oder unsere eigene Klasse schreiben).
2011.10.06 23:00:34 Solaris Executor EURUSDm,M1: kann Funktion 'InfoOfTrading' aus dll 'Solaris.dll' nicht aufrufen (Fehler 127)
Was ist der Unterschied zwischen dem Aufruf von Funktionen aus einer DLL in MT4 und MT5? Ich kompiliere eine dll, es funktioniert gut in MT5, aber in MT4 erzeugt es einen Fehler:
2011.10.06 23:00:34 Solaris Executor EURUSDm,M1: kann Funktion 'InfoOfTrading' aus dll 'Solaris.dll' nicht aufrufen (Fehler 127)
Geben Sie mir bitte eine Beschreibung des Funktionsprototyps. Wahrscheinlich haben Sie _stdcall für MT5 verwendet.
MT5 hat einen flexibleren Mechanismus für die Verknüpfung von DLL-Funktionsnamen - er unterstützt automatisch sowohl _stdcall (fortschrittlicher mit Namensdekoration) als auch _cdecl (alte klassische Methode). MetaTrader 4 unterstützt nur _cdecl-Aufrufe.
Haben Sie den Artikel"How to write a DLL for MQL5 and share data in 10 minutes" gelesen?"Er erklärt ausführlich, wie man DLL-Funktionen aufruft.
Geben Sie bitte eine Beschreibung des Funktionsprototyps an. Wahrscheinlich haben Sie für MT5 das Design _stdcall verwendet.
MT5 hat einen flexibleren Mechanismus für die Verknüpfung von DLL-Funktionsnamen - er unterstützt automatisch sowohl _stdcall (fortschrittlicher mit Namensdekoration) als auch _cdecl (alte klassische Methode). MetaTrader 4 unterstützt nur _cdecl-Aufrufe.
Lesen Sie den Artikel"Wie schreibt man eine DLL für MQL5 und tauscht Daten in 10 Minuten aus?"Dort finden Sie eine detaillierte Beschreibung der DLL-Funktionsaufrufe.
Ich habe versucht, es so zu deklarieren:
Und so:
anstelle des alten:
Aber jetzt ein anderer Fehler:
2011.10.07 01:35:05 Solaris executor EURUSDm,M1: Funktion 'InfoOfTrading' Aufruf von dll 'Solaris.dll' kritischer FehlerIch habe den Artikel gelesen.
In den Einstellungen des Projekts wird die Art des Aufrufs explizit angegeben:
Und in MT5 funktioniert immer noch ohne Fehler.
Im Allgemeinen werden die Signale in der Hilfe genau so beschrieben, wie Sie sie brauchen. Sie können es hier sehen. Die Abbildung zeigt die Einstellungen des CCI-Indikators. Daher wird Ihr Expert Advisor höchstwahrscheinlich nicht nur auf den Signalen des Hüllkurven-Indikators basieren. Es gibt auch die CCI.
Richtig, das tut mir leid. Ich habe das falsche Bild gepostet. Aber das ändert nichts an der Sache. Hier ist ein Bild vom EA nur für Umschläge.
Was muss ich tun? Wie bringe ich es in Ordnung?
Übrigens, im surs-Beispiel aus der Standard-MT4-Auslieferung erfolgt der Aufruf über __stdcall:
und es funktioniert gut.
Übrigens, im surs-Beispiel aus der Standard MT4-Auslieferung erfolgt der Aufruf über __stdcall:
und es funktioniert gut.
Im MT4-Beispiel:
MT4_EXPFUNC char* __stdcall GetStringValue(char *spar)
и имена экспортируемых функций явно описываются через *.def файл:
LIBRARY ExpertSample
EXPORTS GetIntValue
GetDoubleValue
GetStringValue
GetArrayItemValue
SetArrayItemValue
GetRatesItemValue
SortStringArray
ProcessStringArray
stdcall scheint unterstützt zu werden. Ich bin mir nicht sicher, ob es korrekt ist, die Parameterübergabe durch & für Vierer zu beschreiben.
Das MT4-Beispiel:
MT4_EXPFUNC char* __stdcall GetStringValue(char *spar)
и имена экспортируемых функций явно описываются через *.def файл:
LIBRARY ExpertSample
EXPORTS GetIntValue
GetDoubleValue
GetStringValue
GetArrayItemValue
SetArrayItemValue
GetRatesItemValue
SortStringArray
ProcessStringArray
stdcall wird unterstützt. Ich bin mir nicht sicher, ob es richtig ist, die Parameterübergabe durch & für die vier zu beschreiben.
Ich bin nach zwei Jahren mit 4 völlig verunsichert. :)
1. Es stellt sich heraus, dass eine als Referenz übergebene Variable nicht in eine DLL geschrieben werden kann. Dafür müssen Sie ein Array verwenden.
2. und es ist obligatorisch, die *.def-Datei zu verwenden.
Hier sind eigentlich 2 Unterschiede bei der Arbeit mit 4er und 5er dlls, die ich entdeckt habe, es kann noch mehr geben.