Por cierto, es extraño que llames a Sleep() desde un indicador, porque está prohibido:
La función Sleep() no puede ser llamada desde los indicadores personalizados, ya que los indicadores se ejecutan en el hilo de la interfaz y no deben ralentizarlo. La función tiene incorporada la comprobación del estado de la bandera de parada del experto cada 0,1 segundos.
2016.12.14 22:01:41.431 Trades 'xxxxx': cancel order #49931802 sell limit 1.00 GOLD-9.17 at 1190.2 placed for execution in 64926.078 ms
No se trata del instrumento (liquidez), sino del retraso, que puede darse en CUALQUIER instrumento.
Llevo casi 4 años operando activamente con EAs.
No tengo ninguna pausa en ninguno de mis EAs (excepto la pausa para esperar a que se descarguen los datos del servidor en INDICADORES),
Si hace una pausa, es una señal segura de que el algoritmo de su EA no está funcionando correctamente :(
Yo también hago trading desde hace mucho tiempo y sólo uso EAs. Pero sobre todo en MT4. He estado operando en MT5 sólo con Asesores Expertos usando Límites y no hubo problemas. Yo también estoy en contra de las pausas adicionales en los EAs, sobre todo si es un scalper o un pipsitter, simplemente se puede perder una entrada.
Gennady Mazur: En principio lo hago, pero en Forts la orden suele ser aceptada con éxito...pero en el siguiente tick aún no hay posición... Aquí es donde la apertura adicional puede deslizarse .... resolver parcialmente el problema de esta manera, si la orden es aceptada, aumento la variable Int, y después del aumento las condiciones de apertura son ligeramente diferentes, por lo que no hay una nueva apertura, pero.... si la orden no es aceptada la variable no aumenta, pero aquí está el truco... Me equivoqué de estado y empezaron a aparecer pedidos adicionales.
Ya has respondido a tu propia pregunta. Tenemos que seguir el orden.
Gennady Mazur: Yo también he estado operando durante bastante tiempo y sólo con la ayuda de EAs. Pero sobre todo en MT4. He estado operando en MT5 sólo con Asesores Expertos usando Límites y no hubo problemas. Si soy un scalper o un pipsder, no me gustan las pausas en los Asesores Expertos, además solo me falta una entrada.
Para iniciar sesión y usar el sitio web MQL5.com es necesario permitir el uso de Сookies.
Por favor, active este ajuste en su navegador, de lo contrario, no podrá iniciar sesión.
Ha iniciado sesión. La autenticación de dos factores se ha desactivado. Vuelva a configurarla y escanee un nuevo código QR, o continúe con la autenticación de dos factores desactivada.
Por cierto, es extraño que llames a Sleep() desde un indicador, porque está prohibido:
La función Sleep() no puede ser llamada desde los indicadores personalizados, ya que los indicadores se ejecutan en el hilo de la interfaz y no deben ralentizarlo. La función tiene incorporada la comprobación del estado de la bandera de parada del experto cada 0,1 segundos.
Por cierto, es extraño que llames a Sleep() desde el indicador, ya que está prohibido:
¡Alexei!
Un instrumento bastante líquido :)
No se trata del instrumento (liquidez), sino del retraso, que puede darse en CUALQUIER instrumento.
Llevo casi 4 años operando activamente con EAs.
No tengo ninguna pausa en ninguno de mis EAs (excepto la pausa para esperar a que se descarguen los datos del servidor en INDICADORES),
Si hace una pausa, es una señal segura de que el algoritmo de su EA no está funcionando correctamente :(
No sé qué es Sleep() en absoluto
Entonces es extraño que tú y yo estemos discutiendo sobre las pausas ahora...
No en el sentido de lo que hace Sleep(), sino en el sentido de utilizarlo en mi código.
¿Cómo se implementa una pausa en su indicador?
// Custom indicator Check timer function |
//+------------------------------------------------------------------+
bool CheckTimer(const uint start_value, const uint per_value)
{
uint end_value = GetTickCount();
if(end_value < start_value)
{
if((start_value - end_value) >= per_value) return(true);
}
else
{
if((end_value - start_value) >= per_value) return(true);
}
return(false);
}
//+------------------------------------------------------------------+
//| Custom indicator Get server data function |
//+------------------------------------------------------------------+
int LoadServerData(const string a_symbol, ENUM_TIMEFRAMES period)
{
int fail_cnt = 0;
//---
while((fail_cnt < 5) && !IsStopped())
{
long first_date = long(SeriesInfoInteger(a_symbol, PERIOD_M1, SERIES_SERVER_FIRSTDATE));
//---
if(first_date > 0)
{
if(SymbolIsSynchronized(a_symbol))
{
// Print( "LoadServerData: Первая дата на сервере есть. Пробуем получить локальные данные..." );
return(GetLocalData(a_symbol, period));
}
}
else
{
uint start_tick = GetTickCount();
//---
while(!CheckTimer(start_tick, 10))
{
fail_cnt--;
fail_cnt++;
}
}
fail_cnt++;
}
// Print( "LoadServerData: Первой даты на сервере нет!" );
return(0);
}
Este es un ejemplo antiguo.
Como el error de GetTickCount es bastante alto (hasta 16 ms), ahora uso GetMicrosecondCount().
En principio lo hago, pero en Forts la orden suele ser aceptada con éxito...pero en el siguiente tick aún no hay posición...
Aquí es donde la apertura adicional puede deslizarse .... resolver parcialmente el problema de esta manera, si la orden es aceptada, aumento la variable Int, y después del aumento las condiciones de apertura son ligeramente diferentes, por lo que no hay una nueva apertura, pero.... si la orden no es aceptada la variable no aumenta, pero aquí está el truco... Me equivoqué de estado y empezaron a aparecer pedidos adicionales.
¡Alexei!
Un instrumento bastante líquido :)
No se trata del instrumento (liquidez), sino del retraso, que puede darse en CUALQUIER instrumento.
Llevo casi 4 años operando activamente con EAs.
No tengo ninguna pausa en ninguno de mis EAs (excepto la pausa para esperar a que se descarguen los datos del servidor en INDICADORES),
Si hace una pausa, es una señal segura de que el algoritmo de su EA no está funcionando correctamente :(
Yo también he estado operando durante bastante tiempo y sólo con la ayuda de EAs. Pero sobre todo en MT4. He estado operando en MT5 sólo con Asesores Expertos usando Límites y no hubo problemas. Si soy un scalper o un pipsder, no me gustan las pausas en los Asesores Expertos, además solo me falta una entrada.