Errores, fallos, preguntas - página 3178

 
Andrei Sokolov #:

Ahora me he encontrado con un algoritmo en el que después de OrderSelect()hay más llamadas a OrderSelect(), por lo que creo que es necesario un aviso si después deOrderSelect() hay más llamadas a OrderSelect() y el OrderSelect() adjunto "selecciona" otro pedido.

Suponga que escribe un bucle:
for(int i=...; ....; i++) {
...
}
Y dentro del bucle, el iterador i cambia su valor bajo una determinada condición.
También es necesario mostrar una advertencia, ¿no crees?

 
Sergey Gridnev #:
Supongamos que escribes un bucle:
for(int i=...; ....; i++) {
...
}
Y dentro del bucle, el iterador i cambia su valor bajo una determinada condición.
¿Cree que también debe generarse una advertencia?

+++ Control de una entrada o una variable de función en una matriz de la misma función o estructura, o la temperatura y la presión en la x del paciente, no en la y.

Control ZY de x o igc)))) en lugar de la temperatura))
 
Sergey Gridnev #:
Supongamos que escribes un bucle:
for(int i=...; ....; i++) {
...
}
Y dentro del bucle, el iterador i cambia su valor bajo una determinada condición.
¿Cree que también debería generarse una advertencia?

Sí.
Pero creo que no tiene sentido seguir discutiendo, ya que no creo que la advertencia se aplique con esas condiciones.

 
Andrei Sokolov #:

Sí.
Pero creo que no tiene sentido seguir discutiendo, porque no creo que la advertencia se aplique con esas condiciones.

En bayscore es un perjuicio en general, y aquí el top-down con bucles tampoco mejorará el entorno de programación y la algorimización.

Es sólo el rigor y la corrección de los algoritmos. No más. y una comprensión de las reglas y posibilidades de la lengua.

 
Andrei Sokolov #:

Sí.
Pero no creo que tenga sentido seguir discutiendo, ya que no creo que la advertencia se aplique con estas condiciones.

Desde el principio, el punto de discusión de esta cuestión estuvo completamente ausente. Estás escribiendo sobre un problema con mql4, en el hilo donde se discuten los problemas de mql5. Si hubieras dicho desde el principio que la pregunta se refiere a mql4, nadie te habría contestado.

 
Alexey Viktorov #:

Escribes sobre un problema en mql4, en un hilo donde se discuten problemas de mql5.

¿Dónde se indica esto?

 
Alexey Viktorov #:

Desde el principio, el punto de discusión de este tema ha estado completamente ausente.

Alexei, primero intentaste señalar, ahora intentas decidir por los demás dónde tiene sentido y dónde no.

Si no hay una respuesta constructiva, no podrías provocar una correspondencia tan inútil.

 
Andrei Sokolov llamadas a funciones.

Ayer toda la noche buscando el bicho, y esta es la segunda vez por este motivo.

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;
}
Ya has recibido muchas respuestas constructivas. Sólo falta que el baterista preste atención a la discusión de los problemas de mql4 en este hilo...
 
Alexey Viktorov #:

Este código deja claro que se trata de mql4. Ojalá le hubiera prestado atención al principio.

Ya has recibido muchas respuestas constructivas. Sólo queda que Tumblr preste atención a la discusión de los problemas de mql4 en este hilo...

¿Dónde dice quesólo se discuten los problemas de mql5?

 
Andrei Sokolov #:

Entonces, ¿dónde dice quesólo se discuten los problemas de mql5?

mql4 está en reserva - hay una sección separada en el foro para ello. Todo lo demás es mql5
Razón de la queja: