Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4978
Beiträge: 43260
Benutzer: 7.223
Aktive Benutzer: 73
Links: 84
Wir begrüßen unseren neuesten Benutzer: Mane
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 23 Stunden
- Mane
vor 2 Wochen
- AlbertZiz
vor 2 Wochen
- michak
vor 2 Wochen
- Amateur
vor 2 Wochen
- infos1982

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 219
Gesamt: 219
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 09.05.16
Mitglied
 
Registriert seit: Dec 2013
Beiträge: 56
freitag befindet sich auf einem aufstrebenden Ast
Standard String nach einer Double benennen, um sie auszulesen

Ich muss mir strings in Schleifen so zusammenstellen, dass ich damit bestehende Doubles nach ihren Variablenwerte abrufen kann.

Es entsteht z. B. eine string "Wert001", weil schon eine double Wert001 mit irgeneinem Zahlenwert existiert.
Leider will es aber nicht klappen, dass ich damit nun den doublewert auslesen kann.
Dachte, ich kann das so:
WertneuAusgelesen = (double)Wert001;

oder so lösen:
WertneuAusgelesen = StrToDouble(Wert001);

Geht aber alles nicht. Weiß da jemand Rat?

Geändert von freitag (09.05.16 um 13:57 Uhr)
  #2 (permalink)  
Alt 09.05.16
Mitglied
 
Registriert seit: Jun 2014
Beiträge: 214
Hosch befindet sich auf einem aufstrebenden Ast
Standard

Sali,

macht doch folgendes, damit wir das klarer identifizieren können:
Poste doch bitte mal ein Code-Snippet.

So, kann man da wirklich nicht sagen, was da falsch läuft. Fakt ist, dass das so gehen muss

PHP-Code:
WertneuAusgelesen StrToDouble(Wert001); 
Zitat:
Zitat von freitag Beitrag anzeigen
Ich muss mir strings in Schleifen so zusammenstellen, dass damit bestehende Doubles nach ihren Variablenwerte abrufen kann.

Es entsteht z. B. eine string "Wert001", weil schon eine double Wert001 mit irgeneinem Zahlenwert existiert.
Leider will es aber nicht klappen, dass ich damit nun den doublewert auslesen kann.
Dachte, ich kann das so:
WertneuAusgelesen = (double)Wert001;

oder so lösen:
WertneuAusgelesen = StrToDouble(Wert001);

Geht aber alles nicht. Weiß da jemand Rat?
  #3 (permalink)  
Alt 09.05.16
Mitglied
 
Registriert seit: Dec 2013
Beiträge: 56
freitag befindet sich auf einem aufstrebenden Ast
Standard

Ok - anbei ein Beispiel, bei dem der testwert 5600 werden sollte:

extern double Wert001 = 5600;
extern double Wert002 = 0;
extern double Wert003 = 0;

double testwert;

//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---

//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---

}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{


int numb=0;
for(int z=1;z<=3;z++){ numb++;
string stringLineX = "Wert00"+string(numb);
double LineX = StrToDouble(stringLineX);
if(numb==1) testwert=LineX;
}


Comment(
"\n testwert ", testwert
);
}
  #4 (permalink)  
Alt 09.05.16
Mitglied
 
Registriert seit: Jun 2014
Beiträge: 214
Hosch befindet sich auf einem aufstrebenden Ast
Standard

Sali,

das hier würde noch gehen:
string stringLineX = "Wert00"+string(numb); // Du musst numb++ machen sonst bleibt der immer 0.

damit würdest du den Wert im String haben:

"Wert001"
"Wert002"
"Wert003" etc...


Aber mit StrToDouble würdest du nur 0 erhalten, weil der String-Wert im Parameter stringLineX kein DoubleWert beinhaltet sondern ein alphanumerischen Wert.

Ich weiss, was du im Grunde vorhast. Aber das funktioniert nur mit Reflection, aber soweit ich weiss, kennt MQL4 ein solches Konzept nicht. Oder ich kenne das nicht.
https://de.wikipedia.org/wiki/Reflex...grammierung%29

Und warum machst du das so kompliziert. Du hast doch die externe Parameter und warum greifst du nicht direkt auf die externen Parameter zu? Oder definierst einen Array wo du Zahlwerte hast und greifst mit einer Schleife darauf zu?

Gruss,
Hosch
  #5 (permalink)  
Alt 09.05.16
Mitglied
 
Registriert seit: Dec 2013
Beiträge: 56
freitag befindet sich auf einem aufstrebenden Ast
Standard

Hallo Hosch,
die Schleife brauch ich, weil das 60 Werte sind und ich nicht 60x Einzelschritte kopieren will.
Der Tipp mit der Array bringt mich aber auf gute Gedanken. Ich glaube, damit kann ichs lösen.
Vielen Dank
Stefan
Thema geschlossen

Lesezeichen

Stichworte
double, ea, expert advisor, mql4, programmierung, programmierung metatrader, string

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +2. Es ist jetzt 08:41 Uhr.





Suchmaschine - Reisen - Wavesnode - Facebook Forum - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------