kirill-demo: 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?
Was ist der Unterschied zwischen dem Aufruf einer Funktion aus einer DLL in MT4 und MT5? Ich kompilieren dll, es funktioniert gut in MT5, aber in MT4 es gibt mir Fehler:
2011.10.06 23:00:34 Solaris Executor EURUSDm,M1: kann Funktion 'InfoOfTrading' aus dll 'Solaris.dll' nicht aufrufen (Fehler 127)
joo: 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.
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.
tol64: 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.
Leute, entschuldigt, wenn diese Art von Frage schon lästig ist, könnt ihr mir sagen, wie ich die Parameter>Registerkarte E-Mail richtig ausfülle? Ich habe eine E-Mail auf mail.ru, wird sie funktionieren? Ich weiß nicht, was ist die Adresse des Servers gibt ... wenn nicht geeignet, wo ein geeigneter zu registrieren? Ich möchte E-Mail-Benachrichtigungen versenden...
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.