Niemals. Auf jeden Fall ist es ein seltsamer Moment. Ich habe das Los nicht normalisiert. Hier haben wir die Funktion der Losnormalisierung:
//+-------------------------------------------------------------------------------------+//| Проверка объема на корректность и округление |//+-------------------------------------------------------------------------------------+double LotFloor(double value)
{
return(MathFloor(MathMin(MathMax(value, g_minLot), g_maxLot)/g_lotStep)*g_lotStep);
Ich habe überprüft, wo der Fehler lag, nämlich in der Handelsfunktion selbst, von der aus die Funktionen zur Auftragseröffnung aufgerufen werden. Ich habe diese Funktion in den Lot-Parameter der aufrufenden Funktion, die die Aufträge sendet, aufgenommen. Der Fehler ist nicht verschwunden.
Und sobald ich die Normalisierungsfunktion direkt zur ersten Fluchfunktion hinzufügte, und das ist die Funktion, die schwebende Aufträge festlegt, hörte das Fluchen auf. Was meinen Sie damit?
//+-------------------------------------------------------------------------------------+//| Открытие отложенной короткой позиции |//+-------------------------------------------------------------------------------------+bool OpenPendingSell(double lot, double price)
{
int g_ticket = -1;
double OOP = price - i_distanceFromLastPos * pt;
if (OOP < Bid)
{
fCheck_ValidPendingOOP(Symbol(), OP_SELLSTOP, OOP);
g_ticket = OrderSend(Symbol(), OP_SELLSTOP, LotFloor(lot), ND(OOP), 30, 0, 0, NULL, i_magic, 0, CLR_NONE);
}
if (g_ticket > 0)
{
return (true);
}
else
pr ("OpenPendingSell(): Ордер послать не удалось " + GetLastError());
return (false);
}
Im ersten Fall sende ich sofort ein geprüftes Los, und im zweiten Fall prüfe ich die Losgröße in der Funktion OrderSend() selbst. Aber worin besteht der Unterschied?
chief2000: Das Problem ist folgendes: Es gibt ein eindimensionales Array, dessen Größe variieren kann. Wie kann man alle möglichen Kombinationen von Array-Elementen miteinander durchlaufen? Die Reihenfolge der Elemente spielt keine Rolle, d. h. 123==213==321.
Hier ist ein Beispiel für ein Array mit 4 Elementen:
Miteinander scheint es nicht schwierig zu sein.
int k = ArraySize(array);
for(int i=0;i<k-1;i++)
for(int ii=i+1;ii<k;ii++)
{
...
}
Aber hier, wenn es mehr als zwei sind, ist es nicht klar, wie man vergleichen kann. Zeigen Sie eine Methode zum gleichzeitigen Vergleich der drei Zahlen 1, 2 und 3,
Kann mir jemand sagen, wie ich es so einrichten kann, dass ich das Optimierungsfenster nicht erneut öffnen muss..... Cas sted, dass dieses Fenster mit verschiedenen Einstellungen für Hintergrund, Kerze, usw. war.
Hallo zusammen, bitte berät mich zu diesem Thema... Wenn ich das Niveau auf 798 verschieben möchte, ist es zu kompliziert, für viele Paare zu berechnen, wie sollte ich einen Indikator schreiben, der entweder den Preis des verschobenen gleitenden Durchschnitts zeichnet oder ihn im Datenfenster anzeigt, ohne manuell zu zählen?
Aber wenn es mehr als zwei sind, ist es nicht klar, wie man vergleichen kann. Zeigen Sie mir eine Methode, um drei Zahlen 1, 2 und 3 gleichzeitig zu vergleichen,.
Wenn ich mich nicht irre, muss die Anzahl der Zyklen mit der Anzahl der Elemente im Array übereinstimmen. Das Problem ist, dass die Anzahl der Elemente nicht festgelegt ist und viel mehr als 4 sein kann, müssen denken, wie es zu entwerfen. Ich frage mich auch, ob es andere Implementierungsoptionen gibt, die sich auf die Geschwindigkeit, den Speicherverbrauch usw. auswirken.
Ich möchte meine vorherige Frage umformulieren und ergänzen. Nachfolgend ist der Code für ein Array mit 4 Elementen zu sehen. In Wirklichkeit ist die Anzahl der Elemente in der Matrix variabel. Wie kann ich den Code so ändern, dass die Anzahl der verschachtelten "for"-Schleifen variabel wird, d. h. ein "for" pro Array-Element? Vielen Dank!
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
Schauen Sie sich die Tanks an, starten Sie neu, vielleicht hilft das ja... :-)
P.S. Ich bin nur freundlich.
Nein. Panzer sind keine Option. Wenn Sie so etwas wirklich tun wollen. Es wird nur das Ergebnis beruhigen.)
:-)
Niemals. Auf jeden Fall ist es ein seltsamer Moment. Ich habe das Los nicht normalisiert. Hier haben wir die Funktion der Losnormalisierung:
Ich habe überprüft, wo der Fehler lag, nämlich in der Handelsfunktion selbst, von der aus die Funktionen zur Auftragseröffnung aufgerufen werden. Ich habe diese Funktion in den Lot-Parameter der aufrufenden Funktion, die die Aufträge sendet, aufgenommen. Der Fehler ist nicht verschwunden.
Und sobald ich die Normalisierungsfunktion direkt zur ersten Fluchfunktion hinzufügte, und das ist die Funktion, die schwebende Aufträge festlegt, hörte das Fluchen auf. Was meinen Sie damit?
Im ersten Fall sende ich sofort ein geprüftes Los, und im zweiten Fall prüfe ich die Losgröße in der Funktion OrderSend() selbst. Aber worin besteht der Unterschied?
Das Problem ist folgendes: Es gibt ein eindimensionales Array, dessen Größe variieren kann.
Wie kann man alle möglichen Kombinationen von Array-Elementen miteinander durchlaufen?
Die Reihenfolge der Elemente spielt keine Rolle, d. h. 123==213==321.
Hier ist ein Beispiel für ein Array mit 4 Elementen:
Miteinander scheint es nicht schwierig zu sein.
Aber hier, wenn es mehr als zwei sind, ist es nicht klar, wie man vergleichen kann. Zeigen Sie eine Methode zum gleichzeitigen Vergleich der drei Zahlen 1, 2 und 3,Miteinander scheint es nicht schwierig zu sein.
Aber wenn es mehr als zwei sind, ist es nicht klar, wie man vergleichen kann. Zeigen Sie mir eine Methode, um drei Zahlen 1, 2 und 3 gleichzeitig zu vergleichen,.Wenn ich mich nicht irre, muss die Anzahl der Zyklen mit der Anzahl der Elemente im Array übereinstimmen. Das Problem ist, dass die Anzahl der Elemente nicht festgelegt ist und viel mehr als 4 sein kann, müssen denken, wie es zu entwerfen. Ich frage mich auch, ob es andere Implementierungsoptionen gibt, die sich auf die Geschwindigkeit, den Speicherverbrauch usw. auswirken.
Ich danke Ihnen! Spielt es keine Rolle, auf welcher Seite man mit der Zählung beginnt, d.h. beim 3.
Nachfolgend ist der Code für ein Array mit 4 Elementen zu sehen. In Wirklichkeit ist die Anzahl der Elemente in der Matrix variabel.
Wie kann ich den Code so ändern, dass die Anzahl der verschachtelten "for"-Schleifen variabel wird, d. h. ein "for" pro Array-Element?
Vielen Dank!