Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 912

 
drknn:

He observado un comportamiento extraño en el probador de estrategias. Mi EA establece y arrastra órdenes de stop pendientes. Sucede lo siguiente. El Asesor Experto establece un Buy Stop y Sell Stop a 30 pips del precio actual (símbolo - GbpUsd. Cuatro dígitos. Nivel mínimo = 3 pips). Al cabo de un tiempo los sube siguiendo el mercado, si no se han disparado. Así que lo que veo. la modificación es exitosa, la modificación es exitosa, y luego en algún momento en los golpes de tiempo y el error # 1 aparece. Es decir, todo estaba bien, el EA estaba haciendo las mismas acciones y de repente aparece este error. Todos los precios se han normalizado a dígitos. En general, todos los valores que se pasan a la entrada de la función OrderModify( ) están normalizados.

¿Cuál puede ser la razón de este comportamiento del Asesor Experto en el probador?

La normalización debe hacerse para comprobar si la modificación es necesaria. Mejor comparar la diferencia de precios modificada con cero.

if(NormalizeDouble(цена1 - цена2, _Digits) != 0)


Dependiendo de la condición, puede ser mejor poner < o > cero.

 
Viktorline14:

Muchas gracias de nuevo.

Ahora hay un problema, el EA abre varias órdenes seguidas, no una como yo quería(

int start()



  { S1a = NormalizeDouble(iStochastic(NULL, 0, S1_period, 3, S1_slowing, MODE_SMA, 1, MODE_MAIN, 1), 0);

   S1b = NormalizeDouble(iStochastic(NULL, 0, S1_period, 3, S1_slowing, MODE_SMA, 1, MODE_SIGNAL, 1), 0);

   

   if(MyOrderStateB == 1)Sleep(300000);

    else MyOrderStateB = 0;

   if(MyOrderStateS == 1)Sleep(300000);

    else MyOrderStateS = 0;

    

 

     

   if(S1a == S1b && S1a<20.0000 && S1b<20.0000 )

 

      if(!OrderSend(Symbol(), OP_BUY, OrderValue, NormalizeDouble(Ask, Digits), Slippage, Bid - SL * Point, Ask + TP * Point, NULL, 0, 0,clrBlue))

   Print("Opening Buy error #", GetLastError());  

     else Sleep(2);

   MyOrderStateB = 1;

  

   


      

   if(S1a == S1b && S1a>80.0000 && S1b>80.0000 )


    

    

       if(!OrderSend(Symbol(), OP_SELL, OrderValue, NormalizeDouble(Bid, Digits), Slippage, Ask + SL * Point, Bid - TP * Point , NULL, 0, 0,clrRed))

       Print("Opening Sell error #", GetLastError()); 

       else Sleep(2);

       MyOrderStateS = 1;

       

      

       

       

       

   return(0);}


Es algo así.

  int start()

     {
      S1a=NormalizeDouble(iStochastic(NULL,0,S1_period,3,S1_slowing,MODE_SMA,1,MODE_MAIN,1),0);
      S1b=NormalizeDouble(iStochastic(NULL,0,S1_period,3,S1_slowing,MODE_SMA,1,MODE_SIGNAL,1),0);

      if(S1a==S1b && S1a<20.0000 && S1b<20.0000 && MyOrderStateB==0)
         (
        if(!OrderSend(Symbol(),OP_BUY,OrderValue,NormalizeDouble(Ask,Digits),Slippage,Bid-SL*Point,Ask+TP*Point,NULL,0,0,clrBlue))
            Print("Opening Buy error #",GetLastError());
          else
            MyOrderStateB=1;
         )

      if(S1a==S1b && S1a>80.0000 && S1b>80.0000 && MyOrderStateS==0)
        {
       if(!OrderSend(Symbol(),OP_SELL,OrderValue,NormalizeDouble(Bid,Digits),Slippage,Ask+SL*Point,Bid-TP*Point,NULL,0,0,clrRed))
            Print("Opening Sell error #",GetLastError());
         else
            MyOrderStateS=1;
        }



      return(0);
     }
 
Hola, ¿podríais decirme por qué los mensajes push a veces llegan con retraso? Hoy, tras encender el terminal, los mensajes han llegado a mi teléfono media hora después. El internet estaba bien (el teléfono estaba cerca de mi wifi). La mayoría de las veces, por supuesto, todo sucede sin tales retrasos. ¿Cómo se puede hacer más estable la recepción de mensajes push?
 
halk2009:
Hola, ¿podríais decirme por qué los mensajes push a veces llegan con retraso? Hoy, tras encender el terminal, los mensajes han llegado a mi teléfono media hora después. El internet estaba bien (el teléfono estaba cerca de mi wifi). La mayoría de las veces, por supuesto, todo sucede sin tales retrasos. ¿Cómo se puede hacer más estable la recepción de mensajes push?
¿Alguien garantizó la mensajería instantánea?
 
evillive:
¿Alguien garantiza la mensajería instantánea?
No lo sé) por eso pregunto. La mayoría de las veces los mensajes llegan al instante, ¡sólo quiero que sea así todo el tiempo!) Tal vez haya algunos aspectos técnicos que puedan ajustarse para aumentar la fiabilidad de la recepción de los mensajes push.
 
Chicos, aquí está la basura. Puse Playsound en el EA para reproducir el sonido durante la señal, pero mi tarjeta de audio empezó a temblar. Es decir, hay algún tipo de sonido de corta duración, de tirón. Apago el terminal y todo es normal. El sonido está reproduciendo el estándar..... ¿Qué puede ser?
 
drknn:

He visto un comportamiento extraño en el probador de estrategias. Mi EA establece y arrastra órdenes de stop pendientes. Sucede lo siguiente. El Asesor Experto establece un Buy Stop y Sell Stop a 30 pips del precio actual (símbolo - GbpUsd. Cuatro dígitos. Nivel mínimo = 3 pips). Al cabo de un tiempo los sube siguiendo el mercado, si no se han disparado. Así que lo que veo. la modificación es exitosa, la modificación es exitosa, y luego en algún momento en los golpes de tiempo y el error # 1 aparece. Es decir, todo estaba bien, el EA estaba haciendo las mismas acciones y de repente aparece este error. Todos los precios se han normalizado a dígitos. En general, todos los valores que se pasan a la entrada de la función OrderModify() están normalizados.

¿Cuál puede ser la razón de este comportamiento del EA en el probador?

Un intento de modificar una orden sin cambiar los valores de ninguno de sus parámetros. Yo prestaría atención a las comparaciones no estrictas haciéndolas estrictas.
 

¡Buenos días!

¿Puedes darme una pista? ¿Puede utilizar fórmulas para calcular o una referencia...

Cuántos pips en el EURUSD debe pasar el precio antes del stop out = 50%, 200 de apalancamiento son las condiciones de negociación del broker en 1 lote. Margen de compra = 100%.

Gracias.

P.D. Sé que necesitas un precio por punto. De ahí el recuento desde aquí...

 
_Roman:

¡Buenos días!

¿Puedes darme una pista? ¿Puede utilizar fórmulas para calcular o una referencia...

Cuántos pips en el EURUSD debe pasar el precio antes del stop out = 50%, 200 de apalancamiento son las condiciones de negociación del broker en 1 lote. Margen de compra = 100%.

Gracias.

P.D. Sé que necesitas un precio por punto. De ahí el recuento desde aquí...


Es más fácil, cuando la posición ha aumentado el patrimonio en un 50%, contar los puntos. La diferencia en pips será la misma. ;))
 
borilunad:
Es más fácil, cuando la posición ha aumentado el patrimonio en un 50%, contar los puntos. La diferencia en pips será la misma. ;))

:-) Allí, el stop out se calcula como un porcentaje del importe del depósito...

Sí y ahí en la pregunta se me olvidó especificar, por ejemplo, con 1000 dólares de depósito.