Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   Variablenauflösung für Programm (http://www.expert-advisor.com/forum/showthread.php?t=6734)

AVT 31.07.20 22:16

Variablenauflösung für Programm
 
Ich kann meinen Indikator einfach nicht dazu bringen, einen extern einzugebenden Pfad zu einem anderen Indikator korrekt aufzulösen.
Beide Indikatoren liegen zusammen in demselben Unterverzeichnis /AVT/FX-Pairs/PairStrength.

Code:

extern string OwnEmaIndi = "\\AVT\\FX-Pairs\\PairStrength\\MA-HMA.EMA.ex4"; //alt. indi
Derzeit ist die aufrufende iCustom Zeile so:
Code:

CurEma1=iCustom(SSpsTable[i].SpsPairName,TrendPeri,OwnEmaIndi, 0,0);
Aber anstatt die Unterordner mit einzubeziehen, kriege ich die Meldung:
cannot open file: 'C:\Users\AVT\MT4\MQL4\indicators\EA-HMA.EMA.ex4'

Ich habe schon versucht, über den Pfad des laufenden Indikators (mit einfachem Ersetzen des Namens) die korrekte Auflösung zu kriegen, da stellt er dann aber den gesamten Pfad zweimal hintereinander - was auch wieder falsch ist.

Ganz abgesehen davon, daß es den in der Meldung beschriebenen Namen gar nicht gibt - weder im Verzeichnis, noch im gesamten Code!! :eek: Ich habe also keine Ahnung, wie der überhaupt auf solch eine Zeichenfolge kommt. :eek:
Nun bin ich mal wieder ratlos und hoffe auf Eure Tips.
Danke. AVT

Indikator-Trading 31.07.20 22:38

Du kannst ".ex4" weglassen und ersetze dein "\\" gegen "/" oder "//"

Bei mir hat folgendes ohne Probleme funktioniert:

double Test1 = iCustom(Symbol(),0,"00_Entry//Aroon",20,0,1);
double Test2 = iCustom(Symbol(),0,"00_Entry//Aroon.test.ex4",20,0,1);
double Test3 = iCustom(Symbol(),0,"00_Entry//Aroon.test",20,0,1);
double Test4 = iCustom(Symbol(),0,"00_Entry/Aroon.test.ex4",20,0,1);
double Test5 = iCustom(Symbol(),0,"00_Entry/Aroon.test",20,0,1);

AVT 01.08.20 10:19

Zitat:

Zitat von Indikator-Trading (Beitrag 44150)
Du kannst ".ex4" weglassen und ersetze dein "\\" gegen "/" oder "//"

Bei mir hat folgendes ohne Probleme funktioniert:

double Test1 = iCustom(Symbol(),0,"00_Entry//Aroon",20,0,1);
double Test2 = iCustom(Symbol(),0,"00_Entry//Aroon.test.ex4",20,0,1);
double Test3 = iCustom(Symbol(),0,"00_Entry//Aroon.test",20,0,1);
double Test4 = iCustom(Symbol(),0,"00_Entry/Aroon.test.ex4",20,0,1);
double Test5 = iCustom(Symbol(),0,"00_Entry/Aroon.test",20,0,1);

Danke Indikator-Trading!
Wenn ich den Pfad direkt in iCustom einsetze, ist ja auch alles ok. Aber ich will eben nicht irgendwo was hardcodieren, sondern per User Eingabe veränderlich machen - daher die externe Variable. Und diese Variable korrekt aufzulösen ist das Problem.
AVT

Indikator-Trading 01.08.20 23:17

Das hier funktioniert bei mir:

Zitat:


extern string OwnEmaIndi = "00_Entry//Aroon";

int OnInit()
{
double Test =iCustom(Symbol(),0,OwnEmaIndi,20,0,1);
Comment(DoubleToStr(Test));
return(INIT_SUCCEEDED);
}
Hier noch etwas, was ich nicht ganz verstehen kann:

Dein Pfad:
Zitat:

/AVT/FX-Pairs/PairStrength
Deine Fehlermeldung:
Zitat:

'C:\Users\AVT\MT4\MQL4\indicators\EA-HMA.EMA.ex4'
iCustom durchsucht ja eigentlich den Indikatorpfad von deiner MT4-Installation.
Wo anders wirst du damit wohl leider keine Indikatoren ausladen können, das habe ich auch schon probiert. Auch die MQL4 Dokumentation zeigt einem da keinen Lösungsweg auf.
Ist es also doch evtl. einfach nur ein Fehler in dem Pfad, welchen du angibst. Eigentlich müsste sonst deine Fehlermeldung z. B. eher so aussehen:

2020.08.01 23:04:16.976 cannot open file 'C:\Users\AVT\AppData\Roaming\MetaQuotes\Terminal\ 1DAFD9A7C67DC84FE37EHH1FCTE51F45\MQL4\indicators\AVT\FX-Pairs\PairStrength\MA-HMA.EMA.ex4

Generell würde ich aber keine Indikatoren/EAs mit Punkt im Namen trennen. Gleichwohl lief beides bei mir ohne Probleme, dennoch eher unschön, vor allem wenn man noch wie ich aus der DOS-Ära stammt.

AVT 02.08.20 15:05

Zitat:

Zitat von Indikator-Trading (Beitrag 44156)
Das hier funktioniert bei mir:
Code:

extern string OwnEmaIndi = "00_Entry//Aroon";

Nu geht es - die "Vorwärts-Slashes" funktionieren, obwohl die Dok "Rückwärts-Slashes" angibt. :) Rückwärts ist für einen Unixer sowieso völlig daneben.

Zitat:

Hier noch etwas, was ich nicht ganz verstehen kann: ...
Dein Pfad: ...
Deine Fehlermeldung: ...
Das liegt daran, daß ich beide (terminal und editor) mit "-portable" aufrufe; damit landet alles im Installationsverzeichnis und ich muß nicht das ganze System nach zugehörigen Dateien durchforsten. :D

Danke noch mal für Deine Hilfe. :) AVT


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:53 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum