|
Startseite | Registrieren | Hilfe | Benutzerliste | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
#include - Befehl : Wie verwende ich den?
Hallo!
ich möchte in meinem .mq4-Programm eine oft genutzte Funktion in eine externe Datei auslagern. Sagen wir mal beispielhaft (und dass es übersichtlich bleibt) die Berechnung einer EMA mit Timeframe 1 und Periode 20. Nun schrieb ich eine .mqh-Datei mit Namen "EMAS" : PHP-Code:
Meine .mq4-Datei (Also das Hauptprogramm) sieht so aus: PHP-Code:
In der .mqh-Datei "EMAS" bekomme ich keine Fehlermeldung. In der Hauptdatei jedoch umso mehr: declaration of 'EMA1P20' hides global variable (Bezieht sich auf die .mqh-Datei) declaration of 'EMA1P50' hides global variable (Bezieht sich auf die .mqh-Datei) 'EMAS' - function declarations are allowed on global, namespace or class scope only variable 'EMA1P20' not used (Bezieht sich auf die .mqh-Datei) variable 'EMA1P50' not used (Bezieht sich auf die .mqh-Datei) Was mache ich denn hier falsch????
__________________
MQL4-Interessiert... und noch gaaaanz am Anfang |
|
|||
Code:
#property strict #include <EMAs.mqh> enum ENUM_En { EntryEMA1P20=20,EntryEMA1P50=50 }; input ENUM_En Entry=20; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) {} //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { EMAS(); Comment(" EMA1P20= ",EMA1P20," EMA1P50= ",EMA1P50); } Die #include Deklaration wird immer global geschrieben und nicht in die Funktionen intergriert. Und dann musste noch die doppelte Deklaration der Variablen double EMA1P20,EMA1P50; entfernt werden, denn die stehen bereits in der mqh-Datei. traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Ich komme eben erst von der Arbeit, daher kann ich erst jetzt etwas dazu schreiben:
Klasse, traderdoc - es funktioniert !!! Danke !!!!
__________________
MQL4-Interessiert... und noch gaaaanz am Anfang |
|
|||
Mal nebenbei was anderes:
In dem Code ist ja ersichtlich, dass ich aus 2 EMAs eine auswählen möchte. Die Auswahl (!) wird mittels "enum" nummeriert, und später muss sie anhand dieser Nummer einer Variablen zugeordnet werden, die wiederum einer vorher berechneten EMA zugeordnet werden muss. PHP-Code:
Der Code steht nur als Beispiel, was ich meine. Wenn ich jetzt aber zwischen EMA1P1 und EMA1P100 auswählen können möchte - muss ich dann jede EMA von 1 bis 100 definieren und eine if-Abfrage durchführen? Geht das denn nicht einfacher?
__________________
MQL4-Interessiert... und noch gaaaanz am Anfang |
|
|||
Also ich habe festgestellt, daß man die Variablen-Namen nicht zusammensetzen kann/darf, z.B. EMA1+IntegerToString(Periodennummer) - das geht nicht. Aber die Zuordnungen nachher kannst Du mit switch(Entry) und dann case 20: Ent=EMA1P20; break; } machen. AVT
|
Lesezeichen |
Themen-Optionen | Thema durchsuchen |
Ansicht | |
|
|