Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 129

 
Roman.:

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 ist nur das Ergebnis, das Sie beruhigt))
 
hoz:
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:

//+-------------------------------------------------------------------------------------+
//| Проверка объема на корректность и округление                                        |
//+-------------------------------------------------------------------------------------+
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.
 
Vielleicht gibt es ja solche Skripte!!!
 
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?Stufen zu MA
 
Roger:

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.
 
paladin80:



Ich danke Ihnen! Spielt es keine Rolle, auf welcher Seite man mit der Zählung beginnt, d.h. beim 3.
 
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!

int start() { 

   int Array[4]                                       = {1, 2, 3, 4};
   int x1, x2, x3, x4;
   int Array_Size                                  = ArrayRange(Array,0);


   for(x1=0; x1<Array_Size; x1++) {
      Print("Combination                       = ", Array[x1]);

      for(x2=x1+1; x2<Array_Size; x2++) {
         Print("Combination                    = ", Array[x1] + "   " + Array[x2]);

         for(x3=x2+1; x3<Array_Size; x3++) {
            Print("Combination                 = ", Array[x1] + "   " + Array[x2] + "   " + Array[x3]);

            for(x4=x3+1; x4<Array_Size; x4++) {
               Print("Combination              = ", Array[x1] + "   " + Array[x2] + "   " + Array[x3] + "   " + Array[x4]);
            }
         }
      }
   }


   return(0);
}