Mercado: no hay operaciones comerciales - página 7

 
Vitaly Muzichenko:

Construir una función normal con un retorno de lote, no una comprobación verdadero/falso

Y le gusta hacer controles adicionales. Tienes que comprobar si es un probador de estrategias, y luego comprobar adicionalmente lo que la funcióncheckVolumeValue devolvió...

 
Evgeny Belyaev:

¿Estás leyendo en diagonal?

¿Alguna otra pregunta para mí?

¿Dónde está tu grial cuando vemos la señal?

No volcó sus EAs en el Mercado, a juzgar por la composición de los productos.

así que...

hola

;)

 
Vladislav Andruschenko:


Bueno, entonces no debería haber ningún problema con eso.

la misma multidivisa, pasa la prueba.

Y ninguna operación comercial puede ser del estado de ánimo del probador :-) - No sé si está de mal humor (refrescado, durmiendo, con el día libre) y no se produce ninguna actividad comercial.

Basta con probar una extensión diferente o esperar un día y se salta todo de nuevo en el estado de ánimo.

Lo estoy comprobando sin problemas, las funciones funcionan perfectamente. Se ha eliminado la comprobación del lote mínimo, era para que si el mínimo permitido era más de 0,01, entonces no se negociara.
En el validador, vi un lote superior a 0,01, así que no operé.

 
Renat Akhtyamov:

No volcó el EA en el Mercado, a juzgar por la composición de los productos

así que...

hola

;)

Bueno, yo lo hice, así que eso es otro fastidio. ¿Quieres el enlace o puedes encontrarlo tú mismo?

¿Dónde está tu grial cuando vemos la señal?

Incluso hice un trabajo para un hombre.


 

Mira, tengo búhos primer lote se toma de la configuración lo que significa que puede ser menos de lo permitido sólo si el usuario cometió un error al entrar en el lote.

Por ejemplo, el usuario cometió un error tipográfico y escribió 0.005 cuando quería negociar 0.05 lotes - si lo compruebas, los búhos negociarán 0.01 lotes (asumiendo que 0.01 es el lote mínimo)

Y cuando compruebe que un usuario recibirá una impresión sobre un lote introducido incorrectamente, puede añadir una alerta, por si acaso.

Creo que es una cuestión de decisión personal, que quiere tal y cual ....

Por cierto, aquí está parte del código (que también escribí antes) cuando se comprueba también falló:

double CheckVolumeValue(double volume)
{
   double min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);
   if(volume<min_volume)
   {
      Print("Volume is less than the minimum");
      return(min_volume);
   }

   double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX);
   if(volume>max_volume)
   {
      Print("Volume is greater than the maximum");
      return(max_volume);
   }
 ......

}
 
Evgeny Belyaev:

Yo lo hice, así que eso es un fastidio otra vez. ¿Quieres el enlace o puedes encontrarlo tú mismo?

¿Dónde está tu grial cuando vemos la señal?

Prefiero no hablar con los cazadores de ideas sobre estos temas

 
Renat Akhtyamov:

Prefiero no hablar de este tipo de cosas con los cazadores de ideas.

¿Por qué hablas entonces? )

Me estás aburriendo. Todos estamos esperando una señal con volúmenes calculados de la CME. ¿No hay compensación en la CME?

 
Maksim Neimerik:

Mira, tengo búhos primer lote se toma de la configuración lo que significa que puede ser menos de lo permitido sólo si el usuario cometió un error al entrar en el lote.

Por ejemplo, el usuario cometió un error tipográfico y escribió 0.005 cuando quería negociar 0.05 lotes - si lo compruebas, los búhos negociarán 0.01 lotes (asumiendo que 0.01 es el lote mínimo)

Si quiere operar a 0,005 y quería operar a 0,05 - puede añadir una alerta.

Creo que es una cuestión de decisión personal, que quiere tal y cual ....

Por cierto, aquí está parte del código (que también he escrito antes) cuando la comprobación también falló:

Tienes que hacer todo primero, y luego comprobar el mínimo/máximo

double CheckVolumeValue(double volume)
{
   double min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);
   double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX);
 ...

   if(volume<min_volume)
   {
      Print("Volume is less than the minimum");
      return(min_volume);
   }

   
   if(volume>max_volume)
   {
      Print("Volume is greater than the maximum");
      return(max_volume);
   }
}

e inmediatamente al regreso hacer la normalización

return(NormalizeDouble(volume,LotDigit(symb)));
 
Vitaly Muzichenko:

Haz todo primero, y luego comprueba el mínimo/máximo

y luego hacer la normalización inmediatamente al regreso.

En general, vale, es hora de terminar esta conversación.

Algunos defectos imaginarios los viste enseguida, pero la esencia (escribí sobre la vuelta del lote) ha quedado sin tu atención...

Gracias a todos por su ayuda.

 
Maksim Neimerik:

En definitiva, es hora de terminar esta conversación.

Algunas faltas imaginarias las viste de inmediato, pero la esencia (escribí sobre el regreso del lote) quedó sin tu atención...

Gracias a todos por su ayuda.

Maxim, ¿puedes oírme?

Vuelve a leer el código que di y su mensaje

Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias de comercio

Mercado: No hay operaciones comerciales

Vitaly Muzichenko, 2020.01.27 18:37

Hay que hacer todo primero, y luego comprobar el mínimo/máximo.

double CheckVolumeValue(double volume)
{
   double min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);
   double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX);
 ...

   if(volume<min_volume)
   {
      Print("Volume is less than the minimum");
      return(min_volume);
   }

   
   if(volume>max_volume)
   {
      Print("Volume is greater than the maximum");
      return(max_volume);
   }
}

y normalizarlo inmediatamente a una vuelta

return(NormalizeDouble(volume,LotDigit(symb)));

Se comprueba el mínimo/máximo y luego se hacen los cálculos, por lo que el cálculo puede ser cualquier cosa. Debe comprobar el mínimo/máximo después de los cálculos, no antes

---------------------------

Y aquí está la mía)