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)
-   -   Sting Variable inhalt als name für double Variable (http://www.expert-advisor.com/forum/showthread.php?t=6777)

Hippo25 13.09.20 19:04

Sting Variable inhalt als name für double Variable
 
Hallo leute

Ich schreibe nur kleine Skrips für mich selbst. Habe nun ein kleines Problem. In einer Sting Variable speicher ich den Namen einer double Variable. Die soll dann in einer if anweisung genutzt werden.

Geht das überhaupt?

string Freiwert;

if ( Freiwert == x) { In Freiwert gespeichert double Variable = Y}

Vielleich kann mir hier jemand helfen
gruss
Hippo

traderdoc 13.09.20 20:04

Zitat:

Zitat von Hippo25 (Beitrag 44416)
Hallo leute

Ich schreibe nur kleine Skrips für mich selbst. Habe nun ein kleines Problem. In einer Sting Variable speicher ich den Namen einer double Variable. Die soll dann in einer if anweisung genutzt werden.

Geht das überhaupt?

string Freiwert;

if ( Freiwert == x) { In Freiwert gespeichert double Variable = Y}

Vielleich kann mir hier jemand helfen
gruss
Hippo

Das geht, wenn vorher der Variablen Freiwert auch ein Wert zugeordnet wurde und wenn x auch ein String ist.

Man kann aber keinen Leerstring mit x vergleichen, da x sicherlich einen Wert besitzt. Sollte allerdings x dann auch ein Leerstring sein, dann wäre der Vergleich immer true. Aber ergibt das irgendeinen Sinn?

traderdoc

Hippo25 13.09.20 21:21

Freiwert wird im vorfeld zugewiesen. In dem fall b1-b10 .
In diesem Wert (Freiwert ( b1- b10 )) soll dann der aktuelle Ask wert gespeichert werden.
wenn ich jetzt

"Freiwert = Ask;" mache habe ich den b Wert überschreiben mit Ask.
Wie mache ich das, das der Inhalt von freiwert benutzt wird.

Freiwert "B2" =Ask;
und schon steht in B2 das aktuelle Ask.

ich hoffe ich habe das richtig beschrieben.



hippo

traderdoc 13.09.20 21:57

Zitat:

Zitat von Hippo25 (Beitrag 44418)
Freiwert wird im vorfeld zugewiesen. In dem fall b1-b10 .
In diesem Wert (Freiwert ( b1- b10 )) soll dann der aktuelle Ask wert gespeichert werden.
wenn ich jetzt

"Freiwert = Ask;" mache habe ich den b Wert überschreiben mit Ask.
Wie mache ich das, das der Inhalt von freiwert benutzt wird.

Freiwert "B2" =Ask;
und schon steht in B2 das aktuelle Ask.

ich hoffe ich habe das richtig beschrieben.

hippo

Sorry, dem kann ich nicht ganz folgen.
Also die Variable Freiwert bistzt anfangs den Stringwert "b1-b10"??
In diesem Wert kann kein Wert gespeichert werden, weil der Wert "b1-b10" ein ein ist und zwar der der variablen Freiwert.
Wenn die Variable Freiwert den Wert Ask bekommen soll, dann lautet das einfach:

Freiwert = (string)Ask;
oder
Freiwert = DoubleToStr(Ask);

traderdoc

Hippo25 13.09.20 22:42

In Freiwert wird entweder b1 oder b2 oder b3 oder b4 oder b5 usw
Also der wert der Variable, die später genutzt werden soll.

und wenn zb. b2 drin steht soll dann da ask eingetragen werden



Freiwert "B2" =Ask;
und schon steht in B2 das aktuelle Ask.

AVT 13.09.20 22:47

Zitat:

Zitat von Hippo25 (Beitrag 44423)
In Freiwert wird entweder b1 oder b2 oder b3 oder b4 oder b5 usw
Also der wert der Variable, die später genutzt werden soll.
und wenn zb. b2 drin steht soll dann da ask eingetragen werden
Freiwert "B2" =Ask;
und schon steht in B2 das aktuelle Ask.

Also ich werde aus Deiner ganzen Beschreibung nicht schlau, was Du überhaupt willst. Schreibe doch einfach mal den Code, dann werden wir glaube ich besser helfen können. AVT

traderdoc 13.09.20 23:19

Zitat:

Zitat von Hippo25 (Beitrag 44423)
In Freiwert wird entweder b1 oder b2 oder b3 oder b4 oder b5 usw
Also der wert der Variable, die später genutzt werden soll.

und wenn zb. b2 drin steht soll dann da ask eingetragen werden



Freiwert "B2" =Ask;
und schon steht in B2 das aktuelle Ask.

Ja dann sollte da stehen:

Code:

if (Freiwert == "b2") Freiwert = DoubleToStr(Ask);
traderdoc

Hippo25 14.09.20 09:07

Ich habs halt so gelöst. ist nicht schön aber funktioniert

if (Freiwert == "b1") {b1 = Ask;}
if (Freiwert == "b2") {b2 = Ask;}
if (Freiwert == "b3") {b3 = Ask;}
if (Freiwert == "b4") {b4 = Ask;}
if (Freiwert == "b5") {b5 = Ask;}
if (Freiwert == "b6") {b6 = Ask;}
if (Freiwert == "b7") {b7 = Ask;}
if (Freiwert == "b8") {b8 = Ask;}
if (Freiwert == "b9") {b9 = Ask;}
if (Freiwert == "b10") {b10 = Ask;}

Hatte gehofft das es kürzer geht. Vielen dank für die hilfe.
Hippo

AVT 14.09.20 09:46

Zitat:

Zitat von Hippo25 (Beitrag 44427)
Ich habs halt so gelöst. ist nicht schön aber funktioniert
if (Freiwert == "b1") {b1 = Ask;}
if (Freiwert == "b2") {b2 = Ask;}
if (Freiwert == "b3") {b3 = Ask;}
if (Freiwert == "b4") {b4 = Ask;}
if (Freiwert == "b5") {b5 = Ask;}
if (Freiwert == "b6") {b6 = Ask;}
if (Freiwert == "b7") {b7 = Ask;}
if (Freiwert == "b8") {b8 = Ask;}
if (Freiwert == "b9") {b9 = Ask;}
if (Freiwert == "b10") {b10 = Ask;}
Hatte gehofft das es kürzer geht.

Also wenn Du willst, daß die Variablen b1 bis b10 jeweils den Ask-Preis bekommen, versuche mal das:
Code:

string FreiwertName[10]={"b1","b2","b3","b4","b5","b6","b7","b8","b9","b10"}; //NamenDerVariablen
double FreiwertWert[10];                                                      //DazugehörigerWert
// ============================================================================
void OnStart()
{
    for(int i=0; i<ArrayRange(FreiwertName,0); i++) //ArraysBeginnenBeiNull
    {
      if(FreiwertWert[i]!=Ask)            //VariableHatNichtDenAskPreis
        FreiwertWert[i]=Ask;              //DannZuweisen
      Print(" 0. i=",IntegerToString(i),
            " 1. FreiwertName=",FreiwertName[i],
            " 2. Wert=",DoubleToStr(FreiwertWert[i],_Digits)
            );
    }
}

Ist es das, was Du willst? AVT

traderdoc 14.09.20 16:26

Zitat:

Zitat von Hippo25 (Beitrag 44427)
Ich habs halt so gelöst. ist nicht schön aber funktioniert

if (Freiwert == "b1") {b1 = Ask;}
if (Freiwert == "b2") {b2 = Ask;}
if (Freiwert == "b3") {b3 = Ask;}
if (Freiwert == "b4") {b4 = Ask;}
if (Freiwert == "b5") {b5 = Ask;}
if (Freiwert == "b6") {b6 = Ask;}
if (Freiwert == "b7") {b7 = Ask;}
if (Freiwert == "b8") {b8 = Ask;}
if (Freiwert == "b9") {b9 = Ask;}
if (Freiwert == "b10") {b10 = Ask;}

Hatte gehofft das es kürzer geht. Vielen dank für die hilfe.
Hippo

Mir ist zwar die Sinnhaftigkeit noch nicht ganz klar, aber wenn Du denkst, dass dann nach Übergabe des Ask-Kurses die Variable Freiwert den Wert des Ask-Kurses beinhaltet, liegst Du komplett falsch, denn die Variable Freiwert und die Variablen b1 bis b10 haben mit Freiwert überhaupt nichts zu tun.

traderdoc


Alle Zeitangaben in WEZ +2. Es ist jetzt 04:38 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