Einzelnen Beitrag anzeigen
  #7 (permalink)  
Alt 16.04.20
traderdoc traderdoc ist offline
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.735
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Dss ist ja irre, selbst solche Abfragen werden korrekt beantwortet:

string Zeit = "05.16.2020 07:58:00";

if (Zeit > "04.16.2020 22:59" || Zeit < "03.16.2020 08:00") {
Print ("Kein Handel. Zeit: ",Zeit);
return;
}
Print ("Handel. Zeit: ",Zeit);
}

Das lässt doch nur den Schluss zu, dass der Compiler, warum auch immer, aus dem String einer Zeitangabe die Variable vorher in den gewohnten int- bzw. datetime-Typ umwandelt.

Selbst diese Angabe-Form der Zahl funktioniert:

string Zeit = "09";

if (Zeit > "10" || Zeit < "05") {
Print ("Kein Handel. Zeit: ",Zeit);
return;
}
Print ("Handel. Zeit: ",Zeit);
}

Die wiederum aber nicht:

string Zeit = "6";

if (Zeit > "10" || Zeit < "5") {
Print ("Kein Handel. Zeit: ",Zeit);
return;
}
Print ("Handel. Zeit: ",Zeit);
}

Das
string Zeit = "45";

if (Zeit > "99" || Zeit < "5") {
Print ("Kein Handel. Zeit: ",Zeit);
return;
}
Print ("Handel. Zeit: ",Zeit);
}
ergibt ein true!?

Aber das
string Zeit = "55";

if (Zeit > "99" || Zeit < "5") {
Print ("Kein Handel. Zeit: ",Zeit);
return;
}
Print ("Handel. Zeit: ",Zeit);
}
ergibt ein false, was in gewisser Weise evtl. noch logisch wäre, weil 55 zwischen 99 und 5 liegt. (Nur 45 ja auch!)

Aber warum der boolsche Logikwechsel zwischen 45 und 55??

Das wird wiederum richtig erkannt:

string Zeit = "160";

if (Zeit > "199" || Zeit < "150") {
Print ("Kein Handel. Zeit: ",Zeit);
return;
}
Print ("Handel. Zeit: ",Zeit);
}

Das wiederum auch nicht:

void OnTick()
{
//string Zeit = TimeToStr(TimeCurrent(),TIME_MINUTES);

string Zeit = "160";

if (Zeit > "99" || Zeit < "15") {
Print ("Kein Handel. Zeit: ",Zeit);
return;
}
Print ("Handel. Zeit: ",Zeit);
}

Es scheint also so, dass die Strings immer vergleichbar ist, wenn die Zahlen dieselbe Anzahl Stellen besitzen.

Sehr merkwürdig!

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.