Einzelnen Beitrag anzeigen
  #3 (permalink)  
Alt 20.08.22
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
AVT befindet sich auf einem aufstrebenden Ast
Standard

Danke für Deine Antwort.
Zitat:
Zitat von TraumExpert Beitrag anzeigen
sollte für Dein Vorhaben nicht die iCustom () Funktion das richtige Mittel sein?
Sobald ich iCustom(...,Indikatorname,...) verwende, muß dieser Indikator auch zwingend da vorhanden sein, wo er mit "Indikatorname" gerufen wird. Nun packe ich meine eigenen Indikatoren aber nicht einfach wild unter Indicators rein, sondern in geordnete Unterstrukturen. So, und was passiert, wenn ich die Unterstruktur ändere oder den so kompilierten "nackten" Hauptindikator weitergebe? "cannot load /Pfad/zu/Indikatorname" - funktioniert also nicht.

Zitat:
Zitat von TraumExpert Beitrag anzeigen
Wenn Du was importieren willst muss du es auch exportieren z.b. aus einer Test.dll
dort wird dann die Funktion die Du importieren wirst wie folgt hinterlegt:
string IchBinEinString() export {
return ("Ich bin ein Test String");
};
Beispiele, wie das mit einer .dll funktioniert habe ich schon gesehen. ABER, und nun kommt das große Aber: In der Dokumentation ist die Rede von einem kompilierten Programm (nix anderes ist ja eine .dll). Ich habe aber keine .dll, sondern eine .ex4. Auch das ist ein kompiliertes Programm. Und da sollte es doch keinen Unterschied geben.

Und eine #export gibt es in MQL nicht. Darum meine Fragen, wie ich das denn einbinden (also wie Du schreibst erst mal exportieren) soll. Ich hoffe, Du verstehst wo bei mir die Probleme liegen.

Natürlich könnte ich hergehen und die komplette Berechnung in eine Funktion CalcNebenIndikator(...) packen und damit den iCustom Aufruf vermeiden: durch den Aufruf von CalcNebenIndikator(). Wenn ich aber mehrere Hauptindikatoren habe, die allesamt denselben Nebenindikator verwenden, dann ist es schlicht unnütze Aufblähung, das in jedem Hauptindikator immer wieder zu wiederholen. Genauso ist es (meiner Meinung nach) völlig hirnrissig, für jeden Hauptindikator ein eigenes Verzeichnis zu machen, in dem dann die verwendeten iCustom Indikatoren liegen, nur damit dieses "cannot load" vermieden wird. Und diese Überlegungen haben mich auf die #import Idee gebracht - platt gesagt, wenn ich mit #include Quellcode einbinden kann, dann geht das mit #import für Programmcode.

AVT

Geändert von AVT (20.08.22 um 02:31 Uhr)