StopLimit - página 6

 

Un apretón de precios posterior a la ruptura, disponible en la apertura de la sesión del día, al día siguiente.
Es un apretón así, en la apertura del mercado.
La única confusión es por qué la ejecución no fue a precio de oferta.
Tengo la sospecha de que las cotizaciones del medidor de profundidad en el probador están mintiendo o las cotizaciones están curvadas.
¿Se ha seleccionado la simulación por ticks reales?

En el comercio real, normalmente se pierden los primeros 1-5 minutos desde la apertura del mercado.
De lo contrario, se producirán esos apretones, al primer precio disponible, y una volatilidad con un diferencial loco.
Por esta razón, antes de que el mercado cierre, por ejemplo a las 23.40, elimine todas sus órdenes de límite máximo.
Y permitir la colocación de órdenes después de las 10.01 con control del spread.

Tienes una orden de stopplimit que se emitió ayer y salta en la apertura del mercado cuando no hay liquidez.
¿Por qué has puesto el límite de 100 ticks? Ponga un límite de 5 ticks para la entrada.


 
Dmitry Fedoseev:

Por eso sacas conclusiones extrañas: por pereza. Yo no lo necesito, tú lo necesitas para entender lo que está pasando.

El último precio en el gráfico fue el 2 de diciembre a las 23:48. Los registros muestran la ejecución de la orden el día 3 a las 10. ¿Qué es esto?

Una vez más, no lo necesito, lo he entendido todo desde hace mucho tiempo. ¿Realmente no entiendes o sólo estás fingiendo?

Elgráfico del 2 de diciembre a las 23:48 no es el último precio, es la línea de tiempo, así es como funciona el terminal ))))))))))))


 
Sergey Chalyshev:

Una vez más, no necesito esto, lo he entendido todo desde hace mucho tiempo. ¿Realmente no entiendes o sólo estás fingiendo?

Enel gráfico del 2 de diciembre a las 23:48 no es el último precio, es la línea de tiempo, así funciona el terminal ))))))))))))


Una expresión muy profunda: 23:48 no es el precio.

Bueno... Me voy... Intentaré no interferir más en tus temas.

 
Dmitry Fedoseev:

Una expresión muy profunda: 23:48 no es el precio.

Bueno... Me voy... Intentaré no interferir más en tus hilos.

Dimitri, no te alejes demasiado e interviene en el caso ))

A veces ayuda, y personalmente me ha ayudado a entender algunos de los problemas.

¿Quiere que le dé un nombre de usuario y una contraseña para mi cuenta de operaciones? Sólo con la condición: no drenar mucho y no cambiar la contraseña.

 
Sergey Chalyshev:

Dimitri, no te alejes demasiado e interviene en el caso ))

A veces ayuda, y personalmente me ha ayudado a entender algunas cuestiones.

¿Quiere que le dé el nombre de usuario y la contraseña de mi cuenta de operaciones? Sólo con la condición: no drenar mucho y no cambiar la contraseña.

Sí. Yo también probaría un par de pedidos en el probador.

 
Dmitry Fedoseev:

Sí. Yo también probaría un par de pedidos en el probador.

Te escribiré en persona

 
Sergey Chalyshev:

Aparentemente nadie lo usa,

el pedido se abre a precios inexistentes:

Un ejemplo sencillo para comprobarlo:

//+------------------------------------------------------------------+
//|                                               StopLimit_Test.mq5 |
//+------------------------------------------------------------------+
#include <Trade\Trade.mqh>
CTrade trade;

input int Deviation = 100;
//+------------------------------------------------------------------+
void OnTick()
  {
   MqlTick tick;
   SymbolInfoTick(_Symbol,tick);
   trade.SetTypeFilling(ORDER_FILLING_RETURN);
   double ticksise=SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE);

   if(OrdersTotal()==0)
      trade.OrderOpen(
         _Symbol,                      // символ
         ORDER_TYPE_BUY_STOP_LIMIT,    // тип ордера
         1.0,                          // объем ордера
         tick.ask+Deviation*ticksise,  // цена исполнения
         tick.ask+10*ticksise,         // цена стоплимита
         0,                            // цена stop loss
         0                             // цена take profit
      );
  }
//+------------------------------------------------------------------+

Y aquí está el problema real: stop_price y limit_price están mezclados. En realidad, primero se confunde el parámetro limit_price y luego el precio. Por lo tanto, si se establece un límite de compra, el precio debe ser mayor que el precio_límite. Pero en el código de la cotización por el contrario, el primer disparo se produce en el precio de cierre tick.ask+10*ticksise y el bylite aparece en algún lugar de arriba (por encima del precio de mercado) y se dispara inmediatamente.

Pero en el probador al principio del periodo de prueba el precio baja así que comprobé con un stoplimit, este tipo de código funciona bien:

void OnTick()
  {

   static int x=0;
   
   if(x==1)return;
   
   x=1;
  

   MqlTick tick;
   SymbolInfoTick(_Symbol,tick);
   trade.SetTypeFilling(ORDER_FILLING_RETURN);
   double ticksise=SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE);

   if(OrdersTotal()==0){
      Comment(GetTickCount()," ",ticksise);
      trade.OrderOpen(
         _Symbol,                      // символ
         ORDER_TYPE_SELL_STOP_LIMIT,    // тип ордера
         1.0,                          // объем ордера
         tick.bid-100*ticksise,  // цена исполнения
         tick.bid-1000*ticksise,         // цена стоплимита
         0,                            // цена stop loss
         0                             // цена take profit
      );
   }

  }

después del primer disparo aparece el límite...

 
Dmitry Fedoseev:

Este es el problema real: el precio del stoploom y el límite se confunden. De hecho, el parámetro limit_price es el primero y luego el precio. Por lo tanto, si se establece un límite de compra, el precio debe ser mayor que el precio_límite. Pero en el código de la cotización por el contrario, el primer disparo se produce en el precio de cierre tick.ask+10*ticksise y el bylite aparece en algún lugar de arriba (por encima del precio de mercado) y se dispara inmediatamente.

Pero en el probador al principio del periodo de prueba el precio baja así que comprobé con un stoplimit, este tipo de código funciona bien:

después del primer disparo aparece el límite...

En mi ejemplo no se confunde nada, BuyLimit se establece más alto que Ask y debería ejecutarse a Ask y no al precio que se especifica en BuyLimit.

Vuelve a leer toda la rama, cansado de explicar.

Intente establecer el BuyLimit por encima del Ask sin el StopLimit.

Basta con sustituirORDER_TYPE_BUY_STOP_LIMIT porORDER_TYPE_BUY_LIMIT .

BuyLimit se activa adecuadamente al precio Ask, y en caso de BuyStopLimit inadecuadamente al precio especificado enBuyLimit.

 
Sergey Chalyshev:

En mi ejemplo no se confunde nada, BuyLimit se coloca por encima de Ask y debería ejecutarse a Ask, no al precio que se especifica en BuyLimit.

Vuelve a leer toda la rama, cansado de explicar.

Intente establecer el BuyLimit por encima del Ask sin el StopLimit.

Basta con sustituirORDER_TYPE_BUY_STOP_LIMIT por ORDER_TYPE_BUY_LIMIT .

BuyLimit se activa adecuadamente en el precio Ask, mientras que en el caso de BuyStopLimit se activa inadecuadamente en el precio especificado enBuyLimit.

Ahora está claro.

 

También se puede comprobar una orden de límite de parada en el probador para Forex. Es suficiente con establecer "Ejecución" = Intercambio.



He comprobado el límite de compra de la siguiente manera: he puesto el precio de la orden limitada peor que el precio de activación. La orden se abrió a precio de mercado (precio de venta) al activarse. Por lo tanto, parece que la funcionalidad en el probador funciona.

Razón de la queja: