Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 206

 
Alexey Viktorov:
¿Has probado a normalizar a 2 dígitos?

¿Y normalizar qué? El precio actual, y luego comparar..... con qué?

No sé de qué estás hablando
.

 
Vyacheslav Kornev:

Tengo un mac book. Ni siquiera puedo copiar desde el meta-editor

Descifra los valores y el tipo de variables en el segundo caso.
 
Victor Nikolaev:

Descifra los valores y el tipo de variables en el segundo caso.





 
mila.com:

Hola.

Por favor, ayuda a arreglar el hecho de que el precio actual cruza cualquier precio redondo, no uno específico como en el ejemplo.

Por ejemplo:

o

static double prevBid=EMPTY_VALUE;

if (prevBid!=EMPTY_VALUE && prevBid<=levelPrice && Bid > levelPrice ) {

   /// цена пересекла уровень снизу вверх

}

prevBid=Bid;

 
mila.com:

Hola.

Por favor, ayuden a arreglar el hecho de que el precio actual cruza cualquier precio redondo, no uno específico como en el ejemplo.

Por ejemplo:

o

//===============================================================================================
//---------------------------- Возвращает ближайший круглый уровень ----------------------------+
//===============================================================================================
double GetUniversalLevel(int ne=100, string symb="0") {
 if(symb=="0") symb=Symbol();
 static double LastBid;
 double _Level=0, PriceStep=0, bid=0, point=0;
 bid=SymbolInfoDouble(symb,SYMBOL_BID);
 point=SymbolInfoDouble(symb,SYMBOL_POINT);
  if(LastBid<point) LastBid=bid;
   PriceStep=ne*point;
   _Level=MathRound(bid/PriceStep)*PriceStep;
  LastBid=bid;
  return(_Level);
 }

Llamando a

//double R_Level = GetUniversalLevel(100, Symbol()); // круглые 100
double R_Level = GetUniversalLevel(50, Symbol()); // круглые 50
// дальше надеюсь разберётесь
Comment(R_Level );
 
Vyacheslav Kornev:






Intentemos sustituir los valores en la fórmula

if (St==7)
  {
     double Pris_Lin=0;
     Lots0=(L(OP_SELL)+(Bid-0)/10*Lotsc;  
     // Для Евро 
     // Lots0=(L(OP_SELL)+(1.10890-0)/10*0.1;
     // Lots0=(L(OP_SELL)+0.0110890;
     
     .....................
     if (Op_Pr>=Bid)
        Lots0=L(OP_SELL);
     if (Lotsc>Lots0) Loys0=Lotsc;
  }

Si el tamaño del lote se redondea de acuerdo con los requisitos de la DdC, el tamaño del lote aumentará en 0,01 o permanecerá igual.

Pero no hay redondeo, por lo que sólo hay un error - Volumen de lote no válido.

 
Victor Nikolaev:


Intentemos sustituir los valores en la fórmula

Si el tamaño del lote se redondea de acuerdo con los requisitos de la DdC, el tamaño del lote aumentará en 0,01 o permanecerá igual.

Pero no hay redondeo, por lo que sólo hay un error - Volumen de lote no válido.


En realidad, Pris_lin es un precio, y nunca es igual a cero
 
Vyacheslav Kornev:

En realidad Pris_lin es un precio y nunca es cero.

Fíjate bien en el código que has puesto en la página anterior.
 
Victor Nikolaev:

Fíjate bien en el código que has puesto en la página anterior.

Sí, ya lo veo, por eso pido ayuda.
 
Victor Nikolaev:

Fíjate bien en el código que has puesto en la página anterior.

Tengo que tomar el precio y luego modulo calcular la diferencia y eso es todo ( Oferta - Pris_lin)
Razón de la queja: