Fehler, Irrtümer, Fragen - Seite 3178

 
Andrei Sokolov #:

Nun bin ich auf einen Algorithmus gestoßen, bei demes nachOrderSelect() weitere OrderSelect()-Aufrufe gibt, so dass ich denke, dass eine Warnung erforderlich ist, wennes nachOrderSelect() weitere OrderSelect()-Aufrufe gibt und die eingeschlossene OrderSelect() eine andere Bestellung "auswählt".

Angenommen, Sie schreiben eine Schleife:
for(int i=...; ....; i++) {
...
}
Und innerhalb der Schleife ändert der Iterator i seinen Wert unter einer bestimmten Bedingung.
Meinen Sie nicht auch, dass Sie eine Warnung anzeigen sollten?

 
Sergey Gridnev #:
Angenommen, Sie schreiben eine Schleife:
for(int i=...; ....; i++) {
...
}
Und innerhalb der Schleife ändert der Iterator i seinen Wert unter einer bestimmten Bedingung.
Meinen Sie, dass auch eine Warnung ausgegeben werden muss?

+++ Kontrolle eines Tickets oder einer Funktionsvariablen in einem Array der gleichen Funktion oder Struktur, oder Temperatur und Druck im Patienten x, nicht y.

ZY-Kontrolle von x oder igc)))) anstelle von Temperatur)))
 
Sergey Gridnev #:
Angenommen, Sie schreiben eine Schleife:
for(int i=...; ....; i++) {
...
}
Und innerhalb der Schleife ändert der Iterator i seinen Wert unter einer bestimmten Bedingung.
Meinen Sie, dass auch eine Warnung ausgegeben werden sollte?

Ja.
Aber ich denke, es hat keinen Sinn, weiter darüber zu diskutieren, da ich nicht glaube, dass die Warnung unter solchen Bedingungen umgesetzt wird.

 
Andrei Sokolov #:

Ja.
Aber ich denke, es hat keinen Sinn, weiter darüber zu diskutieren, denn ich glaube nicht, dass die Warnung unter solchen Bedingungen umgesetzt wird.

In Bayscore ist das generell schädlich, und auch hier wird Top-Down mit Schleifen die Programmierumgebung und die Algorithmisierung nicht verbessern.

Es geht nur um die Strenge und Korrektheit der Algorithmen. Mehr nicht. und ein Verständnis für die Regeln und Möglichkeiten der Sprache.

 
Andrei Sokolov #:

Ja.
Aber ich denke, es hat keinen Sinn, weiter darüber zu diskutieren, da ich nicht glaube, dass die Warnung unter diesen Bedingungen umgesetzt wird.

Der Sinn, diese Frage von Anfang an zu erörtern, wurde völlig verfehlt. Sie schreiben über ein Problem mit mql4, in einem Thread, in dem mql5-Probleme diskutiert werden. Wenn Sie von Anfang an gesagt hätten, dass die Frage mql4 betrifft, hätte Ihnen niemand geantwortet.

 
Alexey Viktorov #:

Sie schreiben über ein Problem in mql4, in einem Thread, in dem mql5-Probleme diskutiert werden.

Wo steht das?

 
Alexey Viktorov #:

Von Anfang an war es völlig sinnlos, über dieses Thema zu diskutieren.

Alexej, erst haben Sie versucht, auf etwas hinzuweisen, und jetzt versuchen Sie, für andere zu entscheiden, wo es Sinn macht und wo nicht.

Wenn es keine konstruktive Antwort gibt, sollten Sie nicht so einen sinnlosen Schriftverkehr provozieren.

 
Andrei Sokolov Funktionsaufrufe, enthält.

Gestern die ganze Nacht auf der Suche nach dem Fehler, und dies ist das zweite Mal aus diesem Grund.

void Trailing()
{
   for(int i=OrdersTotal()-1; i>=0; i--)
   {
      if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
      {
         if (OrderSymbol() == Symbol() && OrderMagicNumber()==magic)
         {
            if(OrderType() == OP_BUY)
            {
               if(Bid >= GetAveragePrice(OP_BUY)+start_tral_level*Point)//OrderOpenPrice()
               {
                  if(Bid >= OrderStopLoss()+(tral_stop+tral_step)*Point || OrderStopLoss()==0)
                  {
                     if(!OrderModify(OrderTicket(), OrderOpenPrice()
                     , NormalizeDouble(Bid-tral_stop*Point, Digits), OrderTakeProfit(), OrderExpiration())) 
                     {
                        Print("Trailing buy err ", GetLastError());
                     }
                  }
               }
            }
            if(OrderType()==OP_SELL)
            {
               if(Ask <= GetAveragePrice(OP_SELL)-start_tral_level*Point)//OrderOpenPrice()
               {
                  if(Ask <= OrderStopLoss()-(tral_stop+tral_step)*Point || OrderStopLoss()==0)
                  {
                     if(!OrderModify(OrderTicket(), OrderOpenPrice()
                     , NormalizeDouble(Ask+tral_stop*Point, Digits), OrderTakeProfit(), OrderExpiration())) 
                     {
                        Print("Trailing sell err ", GetLastError());
                     }
                  }   
               }   
            }   
         }
      }
   }
}
double GetAveragePrice(int in_type)//расчет средней цены позиций
{
   double dRes=-1;
   double dSum=0;
   double dLot=0;
   double dComission=0;
   double dSwap=0;
   int iTotalPos=OrdersTotal();
   for(int cnt=0;cnt<iTotalPos;cnt++)
   {
      if(!OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) Print( "Error Select Order");
      {
         if(OrderType()==in_type && OrderSymbol()==Symbol() && OrderMagicNumber()==magic)
         {
            dSum+=OrderOpenPrice()*OrderLots();
            dLot+=OrderLots();
            dSwap+=OrderSwap();
            dComission+=OrderCommission();
         }
      }    
   }     
   if(in_type==OP_BUY && dLot!=0) dRes=dSum/dLot-dSwap/dLot*Point-dComission/dLot*Point;
   if(in_type==OP_SELL && dLot!=0) dRes=dSum/dLot+dSwap/dLot*Point+dComission/dLot*Point;
   
   return dRes;
}
Sie haben bereits eine Menge konstruktiver Antworten erhalten. Es bleibt dem Schlagzeuger nur, die Diskussion der mql4-Probleme in diesem Thread zu beachten...
 
Alexey Viktorov #:

Dieser Code macht deutlich, dass es sich um mql4 handelt. Ich wünschte, ich hätte anfangs darauf geachtet.

Sie haben bereits eine Menge konstruktiver Antworten erhalten. Es bleibt Tumblr nur noch, die Diskussion über mql4-Probleme in diesem Thread zu verfolgen...

Wo steht, dassnur mql5-Probleme diskutiert werden?

 
Andrei Sokolov #:

Wo steht also, dassnur Probleme mit mql5 diskutiert werden?

mql4 ist auf Reserve - es gibt einen eigenen Bereich im Forum dafür. Alles andere ist mql5