Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 451

 
Ich fügte Variablen vom Typ int hinzu, in die ich explizit datetime konvertierte, und es funktionierte. Nun muss aber das Ergebnis des Verhältnisses kleiner als 1 sein, d. h.
Formel MathMin(Zeit1-Zeit2,Zeit2-Zeit3)/MathMax(Zeit1-Zeit2,Zeit2-Zeit3)
aber es begann wieder 0 anzuzeigen, obwohl es separat korrekt ist
 
Roman Sharanov:
Ich fügte Variablen vom Typ int hinzu, in die ich explizit datetime konvertierte, und es funktionierte. Aber jetzt muss das Ergebnis des Verhältnisses kleiner als 1 sein, d.h.
Formel MathMin(Zeit1-Zeit2,Zeit2-Zeit3)/MathMax(Zeit1-Zeit2,Zeit2-Zeit3)
aber es begann wieder 0 anzuzeigen, obwohl es separat korrekt ist
(double)MathMin(Time1-Time2,Time2-Time3)/(double)MathMax(Time1-Time2,Time2-Time3)
 
Roman Sharanov:

Ich habe geschrieben, dass ich es auf diese Weise schon versucht habe, aber nichts.

die empfangende Variable muss ebenfalls doppelt sein

 
Toll, jetzt gibt es immer 1
MathMin und MathMax geben denselben Wert an, obwohl ihre Argumente unterschiedlich sind
 
Roman Sharanov:

Bitte beraten Sie mich, wie man das Verhältnis von 2 Zeitrahmen findet? (wir brauchen das Verhältnis der Balken zwischen 2 Perioden)
Ich habe es so geschrieben, aber es ergibt 0. Zeit1>Zeit>Zeit3 immer

Ich habe es ohne explizite Typkonvertierung versucht, und (doppelt) versucht zu schreiben

Anhand eines Beispiels können Sie erklären, was am Eingang und was am Ausgang sein soll. Ich habe bereits alle Tipps und Fragen mehrmals gelesen, aber ich verstehe immer noch nicht, wo wir anfangen und was wir erreichen sollen.

Zum Beispiel dieser Code

#define  PRINT(A) ::Print(#A + " = " + (string)(A));
/********************Script program start function*******************/
void OnStart()
{
 datetime t1 = TimeCurrent(), t2 = TimeCurrent()-PeriodSeconds(PERIOD_M1)*7, t3 = TimeCurrent()-PeriodSeconds(PERIOD_M15);
 PRINT(t1-t2);
 PRINT(t1-t3);
 PRINT(double(t1-t2)/double(t1-t3));
 PRINT((t1-t2)/double(t1-t3));
 PRINT(double(t1-t2)/(t1-t3));
}/*******************************************************************/

führt zu folgendem Ergebnis

2018.02.04 15:41:35.922 00 EURUSD,H1: double(t1-t2)/(t1-t3) = 0.46666667
2018.02.04 15:41:35.922 00 EURUSD,H1: (t1-t2)/double(t1-t3) = 0.46666667
2018.02.04 15:41:35.922 00 EURUSD,H1: double(t1-t2)/double(t1-t3) = 0.46666667
2018.02.04 15:41:35.922 00 EURUSD,H1: t1-t3 = 900
2018.02.04 15:41:35.922 00 EURUSD,H1: t1-t2 = 420
 
Alexey Viktorov:

Und können Sie anhand eines Beispiels erklären, was die Eingabe ist und was die Ausgabe sein soll. Ich habe alle Ratschläge und Fragen bereits mehrmals gelesen, aber ich verstehe immer noch nicht, wovon wir ausgehen und worauf wir hinauswollen.

Zum Beispiel dieser Code

führt zu folgendem Ergebnis

Ja, außer dass es 0 oder 1 ergibt, aber ich habe es mit einer if else-Bedingung gelöst, aber zumindest funktioniert es

 
Roman Sharanov:

Ja, außer, dass es 0 oder 1 ergibt, aber ich habe es mit einer if else-Bedingung gelöst, aber zumindest funktioniert es

Er sagt, dass das Ergebnis wie double ausgegeben werden sollte

und hier

Und auch nach meinem Beispiel.... die Worte sind nicht genug.

Was hat das mit "wenn" zu tun? Dies ist ein bedingter Operator und hängt in keiner Weise vom Typ der Werte in den Bedingungen ab.

Sie kann nur 1 ergeben, wenn Zähler und Nenner gleich sind. Aber es kann NIEMALS 0 sein.

 

Ich wünsche Ihnen allen einen guten Tag.

Können Sie mir bitte sagen, wie ich die riesigen

von Meta-Editoren im Computer.

Ich habe 7 Terminals installiert und jedes zieht einen Meta-Editor mit sich.

7.0 spielt verrückt, wenn Sie versuchen, eine mq-Datei über das Kontextmenü zu öffnen

Sie werden in regelmäßigen Abständen in verschiedenen Meta-Editoren geöffnet, was mir ein sehr unangenehmes Gefühl gibt.

Vielleicht weiß jemand, wie man dieses Problem lösen kann?

Ich möchte nur 1 konfigurierten Meta-Editor haben.

Vielen Dank im Voraus.

 
Northwest:

Ich wünsche Ihnen allen einen guten Tag.

Können Sie mir bitte sagen, wie ich die riesigen

von Meta-Editoren im Computer.

Ich habe 7 Terminals installiert und jedes zieht einen Meta-Editor mit sich.

7.0 spielt verrückt, wenn Sie versuchen, eine mq-Datei über das Kontextmenü zu öffnen

er öffnet sie regelmäßig in verschiedenen Meta-Editoren, was ihn emotional unangenehm macht.

Weiß jemand, wie man dieses Problem lösen kann?

Ich möchte nur 1 konfigurierten Meta-Editor haben.

Vielen Dank im Voraus.

Ich habe dieses Problem für mich mit einem"symbolischen Link/Label" zum MQL-Ordner gelöst. Daher habe ich den Hauptordner aus dem Programmverzeichnis entfernt, eine Verknüpfung zu ihm erstellt und diese Verzeichnisse gelöscht und durch eine Verknüpfung ersetzt. Jetzt habe ich in jedem Terminal den gleichen Satz von Expert Advisors/Indikatoren/Skripten. Und das Öffnen eines beliebigen Maetaditors führt zu denselben Dateien.

Bei MQL4/5 sind die Hauptverzeichnisse natürlich anders.

 
Konstantin Nikitin:

Ich habe dieses Problem mit einem"symbolischen Link/Label" zum MQL-Ordner gelöst. Daher habe ich den Hauptordner aus dem Programmverzeichnis entfernt, eine Verknüpfung zu ihm erstellt und diese Verzeichnisse gelöscht und durch eine Verknüpfung ersetzt. Jetzt habe ich in jedem Terminal den gleichen Satz von Expert Advisors/Indikatoren/Skripten. Und das Öffnen eines beliebigen Maetaditors führt zu denselben Dateien.

Natürlich sind die Hauptverzeichnisse für MQL4/5 unterschiedlich.

Danke für den Rat.

Aber es wäre wünschenswert, wenn ich nur "meine EAs und Indikatoren" in verschiedenen Terminals sehen könnte.

Mit anderen Worten: MMS-Ordner müssen "ihre eigenen" sein.

Das legt die Brute-Force-Methode nahe: Ich sollte die Meta-Editor-Dateien aus den installierten Distributionen heraussuchen.

Lassen Sie nur einen von ihnen zurück. Und verwenden Sie dann den Registrierungsreiniger, um Pfade zu nicht vorhandenen Dateien zu entfernen.

Aber ich weiß nicht, ob es funktionieren wird oder nicht. Ich möchte, dass es ohne Folgen bleibt.