Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 768
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Nun, meine Ortszeit ist 1 Stunde länger als die Serverzeit.
Können Sie also erklären, was an diesen Werten verwirrend ist?
Es gibt nichts Verwirrendes an diesen Werten, alles ist richtig, aber darum geht es hier nicht.
Das Problem mit dem Freitag ist insbesondere dann nicht relevant, wenn Ihre Ortszeit X Stunden länger ist als die Zeit des Brokers.
Aber stellen Sie sich vor, dass es auf Ihrem lokalen Computer nicht +1, sondern -1 Stunde Unterschied zum Broker gibt.
Und es gibt diese einfache Bedingung:
In diesem Fall:
1. der Broker hat den ersten Tick des Freitags, z.B. den heutigen Tick, der eine Zeit von 2014.11.07 00:00 hat
2. die Anzahl der Sekunden, die vom01.01.1970 00:00 Uhr bis zum fraglichen Tick verstrichen sind, d. h.2014.11.07 00:00 Uhr
3. wir nehmen die Anzahl der Sekunden, die vom 01.01. 1970 00:00 bis zum06.11.2014 21:30 verstrichen sind(es handelt sich um das gestrige Datum, weil wir die Zeit des lokalen PCs nehmen, der zum Zeitpunkt des Tickens nicht Freitag, sondern Donnerstag ist, was der 6. Tag ist, oder um genauer zu sein, 2014.11.06 23:00, die Differenz von 1 Stunde)
Voila, die Anzahl der Sekunden in Punkt 2 ist größer als in Punkt 3.
Das bedeutet, dass der erste Freitags-Tick den im Code angegebenen Druck ausführt, obwohl, wenn dieStringToTime()-Funktion das Datum vom Server des Brokers übernimmt, alles wie geplant funktionieren würde, der Druck würde am Freitag erst erscheinen, wenn die Zeit über21:30 Uhr geht
Hallo.
Es gibt eine Aufgabe wie diese. (kann nicht mit einem Häkchen versehen werden)
Wenn ein schwebender Auftrag ausgelöst wird {dann...}.
In meinem EA verwende ich Terminal.mqh, um Aufträge zu berechnen.
Terminal // Mas_Tip[0] offen Kaufen
// wenn die Anzahl der Kaufaufträgeum 1 gestiegen ist
wenn (Mas_Tip[0]+1)
{
Funktion
}
Alles funktioniert. Aber es wird bei jedem nächsten Tick ausgelöst.
Wie kann man dieses Gehäuse an einer Zecke befestigen? Anschließend wird der Wert des vorherigen Ticks mit dem des aktuellen Ticks verglichen.
Können Sie die hervorgehobene Zeile in unsere Sprache übersetzen? Was sein sollte und was man bekommt, wenn man diese Zeile ausführt...
// wenn die Anzahl derKaufaufträge um 1 gestiegen ist, dann...
{
Funktion z.B. öffnet oder schließt andere Aufträge...
}
Es muss nicht so seinif (Mas_Tip[0]+1) können wir tunif (Mas_Tip[0] >Mas_Tip[1]) // wenn es mehr Kaufaufträge als Zellen gibt. Eröffnen Sie zum Beispiel ein schwebendes Verfahren.
Der Punkt ist, dass beim nächsten Tick diese Daten wieder zutreffen.
// wenn die Anzahl derKaufaufträge um 1 gestiegen ist, dann...
{
Funktion z.B. öffnet oder schließt andere Aufträge...
}
wenn (Mas_Tip[0]+1)
In den Klammern von if sollte ein bool stehen, d. h. true oder false.
Hier ist es offensichtlich int. Das ist eine ganze Zahl.
Natürlich ist wahr gleich 1 und falsch gleich 0 (wenn ich mich nicht irre). Aber trotzdem ist es nicht richtig. Was gibtMas_Tip[0] zurück?
wenn (Mas_Tip[0]+1)
in den Klammern von if sollte ein bool sein, d.h. true oder false.
Aber hier ist es offensichtlich int. Das ist eine ganze Zahl.
Natürlich ist wahr gleich 1 und falsch gleich 0 (wenn ich mich nicht irre). Aber trotzdem ist es nicht richtig. Was gibtMas_Tip[0] zurück?
Anzahl der offenen Kaufaufträge.
// wenn die Anzahl derKaufaufträge um 1 gestiegen ist, dann...
{
Funktion z.B. öffnet oder schließt andere Aufträge...
}
Nein, das ist es, was Sie wollen. Eigentlich ist es das nicht. Es gibt einen Wert im Array Mas_Tip[0], und wenn er größer als Null ist, wird die Bedingung if(Mas_Tip[0]) wahr sein. Und wenn wir 1 zu diesem Wert addieren, wird er immer wahr sein, da die Anzahl der offenen Aufträge nicht gleich -1 sein kann.
Nein, so wollen Sie es haben. In Wirklichkeit ist das nicht der Fall. Es gibt einen Wert im Array Mas_Tip[0], und wenn dieser größer als Null ist, ist die Bedingung if(Mas_Tip[0]) bereits erfüllt. Und wenn wir 1 zu diesem Wert addieren, wird er immer wahr sein, da die Anzahl der offenen Aufträge nicht gleich -1 sein kann.
Ich habe versucht, es auf diese Weise zu tun
}
Es stellt sich heraus, dass es sich um ein einmaliges Ereignis handelt.
wenn (Mas_Tip[0]+1)
in den Klammern von if sollte ein bool sein, d.h. true oder false.
Aber hier ist es offensichtlich int. Das ist eine ganze Zahl.
Natürlich ist wahr gleich 1 und falsch gleich 0 (wenn ich mich nicht irre). Aber trotzdem ist es nicht richtig. Was gibtMas_Tip[0] zurück?
false ist 0 und true, wenn es nicht 0 ist.
Versuchen Sie diese Zeile
Der Compiler warnt zwar vor einem möglichen Präzisionsverlust, aber es wird funktionieren.können SieMas_Tip[0] ablegen
Wie man ein Ereignis bekommt. Ein Kauf ist eröffnet.
können SieMas_Tip[0] ablegen
Wie man ein Ereignis bekommt. Ein Kauf ist eröffnet.