- Mercado y productos (expertos) sin control.
- Errores, fallos, preguntas
- Preguntas de un "tonto"
Existe un EA multidivisa. La idea es la siguiente. Para un símbolo se realizan todos los cálculos, y la negociación se realiza para otro símbolo. El Asesor Experto trabaja con el control explícito de la apertura de una nueva barra. De esta manera, la siguiente cosa desagradable sucede. El Asesor Experto puede no abrir (saltar) una operación en una cuenta real, pero cuando se comprueba en el Probador de Estrategias, esta operación está presente. O bien, el Asesor Experto puede abrir una operación real una barra más tarde de lo necesario pero, de nuevo, cuando se comprueba en el Probador de Estrategias, la operación está ahí. ¿Con qué puede estar relacionado?
Una posición puede no abrirse si entran nuevas cotizaciones y se abre con las antiguas...
Una posición podría no abrirse si entran nuevas cotizaciones y se abre con las antiguas...
Entiendo lo que quieres decir, pero el EA maneja esta situación. Sólo con mirar el registro, no hay ninguna señal. Significa que el EA no se ha disparado por sí mismo (no da solicitud de apertura de posición). O sólo funcionaba en la siguiente barra. Y esto no ocurre siempre. Pero sólo a veces. Y lo que está relacionado con ella no está nada claro...... Aunque en el probador - todo está bien y todo se abre y se cierra correctamente
Existe un EA multidivisa. En resumen, el significado es el siguiente. Todos los cálculos se realizan para un símbolo, mientras que la negociación se realiza para otro símbolo. El Asesor Experto trabaja con el control explícito de la apertura de una nueva barra. De esta manera, la siguiente cosa desagradable sucede. El Asesor Experto puede no abrir (saltar) una operación en una cuenta real, pero cuando se comprueba en el Probador de Estrategias, esta operación está presente. O bien, el Asesor Experto puede abrir una operación real una barra más tarde de lo necesario pero, de nuevo, cuando se comprueba en el Probador de Estrategias, la operación está ahí. ¿Con qué puede estar relacionado?
Intenta imprimir...
Imprimir(.
antes de la señal, después de la señal, en la apertura, después de la apertura
imprimir condiciones explícitas
como
// Imprime( " espera de MyOPEN == 1 " + MyOPEN );
si ( MyOPEN == 1 )
{
Print( " introducido por MyOPEN == 1 " );.
}
---
¡¡¡Ah, y más sobre la apertura de nuevos BARES !!!
¡Tenga en cuenta que hay barras salteadas! Y el Probador no genera barras perdidasno busques sólo un bar, busca un nuevo bar
---
ahora mismo en mi tiempo real
en el gráfico EURUSD M5 desde el principio del día se formaron 140 barras, pero en el CHF 137 barras, es decir, 3 barras perdidas :-)
si sólo busca la barra correspondiente al euro en el CHF, puede perderse una barra
---
y luego están las recotizaciones
Si tienes una SEÑAL y no puedes perderla, ¡utiliza la condición para entrar o salir del mercado!
¡y comprueba si tu señal está LLENA!
y hasta que se haga - ejecutar el código para ejecutar - para no entrar en un bucle, hacer un contador
después de salir del mostrador - compruebe si necesita entrar - salga
y si tiene que entrar - ejecútelo de nuevo
----
además, el código de comercio
además, ¡este código no puede ser sencillo!
( hay un código que es responsable del trabajo mecánico - apertura de la red de arrastre cierre sin pérdidas es decir, el trabajo con las órdenes después de recibir las señales )
Hay un Asesor Experto multidivisa. La idea resumida es la siguiente. Todos los cálculos se realizan para un símbolo mientras se negocia con otro. El Asesor Experto trabaja con el control explícito de la apertura de una nueva barra. De esta manera, la siguiente cosa desagradable sucede. El Asesor Experto puede no abrir (saltar) una operación en una cuenta real, pero cuando se comprueba en el Probador de Estrategias, esta operación está presente. O bien, el Asesor Experto puede abrir una operación real una barra más tarde de lo necesario pero, de nuevo, cuando se comprueba en el Probador de Estrategias, la operación está ahí. ¿Con qué puede estar relacionado?
Estos se llaman requotes. En el probador, las operaciones no son recotizaciones. Por lo tanto, si el ticket de la operación abierta es negativo, es necesario restablecer la bandera de la barra formada.
static int prevtime = 0; // Hora de inicio de la barra
...
int inicio() {
if (Time[0] == prevtime) return(0); // bar es el mismo, por lo tanto exit
prevtime = Time[0]; // barra fresca, mantener el tiempo
...
int ticket = -1;
...
ticket = OrderSend(...); // intenta abrir la posición
if (ticket < 0) { // la posición no se abrió por alguna razón.
Sleep(30000);
// Aquí reseteamos la bandera de la barra formada, para que repitamos la operación en el siguiente tick, no en la siguiente barra
prevtime = Tiempo[1];
}
}
El EA funciona en barras horarias. No se trata de recotizaciones - el EA lo controla y enviará una nueva solicitud si es necesario. Escribí sobre el hecho de que el EA ni siquiera se desencadena para que al menos trate de iniciar la apertura de una orden. Es decir, 2-3 pedidos, se abre bien (como debe ser), y el cuarto (o tercero) puede que ni siquiera empiece a abrirse o se abra una hora más tarde. Aunque, si compruebas este momento en el probador, esta orden estará en el lugar correcto.
El asunto, según tengo entendido, es que los ticks de los instrumentos no vienen parejos. Y el tick de apertura de una nueva barra para el símbolo en el que se realiza el cálculo puede llegar mucho más tarde que para el símbolo en el que operamos. O viceversa. Y aquí puede producirse una discrepancia. Pero, ¿cómo se puede evitar esto?
Su Asesor Experto implica que las velas de una hora en diferentes símbolos se abren de forma sincronizada. Es decir, cuando aparezca una nueva vela de 1 hora en el EURUSD, el Asesor Experto comenzará a comprobar los valores en el marco temporal horario del GBPUSD. Pero si en ese momento no ha comenzado la nueva hora de la libra, todo se va al garete. En general, tenemos que reorganizar un poco la lógica de la EA.
Gracias por la respuesta, creía que ese era el motivo. Por favor, ¿puede decirme cómo? Porque esto es un gran problema. Aquí hay una captura de pantalla, de la real. Podemos ver que en el Probador de Estrategias la pose se abrió a las 15.00 y en la cuenta real se abrió sólo a las 16.00. Aunque tenemos los mismos parámetros en el Probador de Estrategias y en la cuenta real.
El EA funciona en barras horarias. No se trata de recotizaciones - el EA lo controla y enviará una nueva solicitud si es necesario. Escribí sobre el hecho de que el EA ni siquiera se desencadena para que al menos trate de iniciar la apertura de una orden. Es decir, 2-3 pedidos, se abre bien (como debe ser), y el cuarto (o tercero) puede que ni siquiera empiece a abrirse o se abra una hora más tarde. Aunque, si compruebas este momento en el probador, esta orden estará en el lugar correcto.
El asunto, según tengo entendido, es que los ticks de los instrumentos no vienen parejos. Y el tick de apertura de una nueva barra para el símbolo en el que se realiza el cálculo puede llegar mucho más tarde que para el símbolo en el que operamos. O viceversa. Y aquí puede producirse una discrepancia. Pero, ¿cómo evitarlo?
Considere que un nuevo tick de CUALQUIER barra horaria (para cualquier instrumento) es el comienzo de la hora
---
corregir la lógica en este sentido...
en cuanto se abra la barra de horas en cualquier instrumento
volver a calcular el otro instrumento, suponiendo que la barra ya se ha cerrado aunque no haya formado una nueva barra
porque en un par de ticks o unos segundos aparecerá allí
---
digamos que cuenta con 2 o 3 instrumentos
puede captar el comienzo de la hora en al menos 20 símbolos - preferiblemente los instrumentos en yenes ya que son muy rápidos
// --- практически гарантия ловли начала часа двумя БОДРЫМИ парами if ( TimeSaveBehchH1 == iTime("GBJJPY",PERIOD_H1,0) ) { TimeSaveBehchH1 = iTime("GBJJPY",PERIOD_H1,0); // новый бар } if ( TimeSaveBehchH1 == iTime("USDJPY",PERIOD_H1,0) ) { TimeSaveBehchH1 = iTime("USDJPY",PERIOD_H1,0); // новый бар } //--- if ( TimeSaveBehchH1 == iTime("EURUSD",PERIOD_H1,0) ) // в довершении ловим на своей рабоче паре { TimeSaveBehchH1 = iTime("EURUSD",PERIOD_H1,0); // новый бар } if ( TimeSaveBehchH1 == iTime("USDCHF",PERIOD_H1,0) ) // ловим на второй паре { TimeSaveBehchH1 = iTime("USDCHF",PERIOD_H1,0); // новый бар }
para ser honesto y eso no es muy agradable ... la garrapata no llegó a estos pares y usted pasará volando de nuevo
si muestra un trozo de código que genera la entrada - puede encontrar el error en la lógica más rápido
Su Asesor Experto asume que las velas horarias de diferentes símbolos se abren de forma sincronizada. Es decir, cuando aparezca una nueva vela de 1 hora en el EURUSD, el Asesor Experto comenzará a comprobar los valores en el marco de tiempo horario del GBPUSD. Pero si en ese momento no ha comenzado la nueva hora de la libra, todo se va al garete. En general, tenemos que reorganizar un poco la lógica de la EA.
Gracias por la respuesta, creía que ese era el motivo. Por favor, ¿puede decirme cómo? Porque esto es un gran problema. Aquí hay una captura de pantalla, de la real. Podemos ver que en el Probador de Estrategias la pose se abrió a las 15.00 y en la cuenta real se abrió sólo a las 16.00. Aunque en el probador y en el real los parámetros son los mismos.
...
Para el símbolo negociado, el tick de la nueva barra llegó antes, por lo que las barras antiguas del símbolo analizado participaron en el análisis, el inicio ha funcionado y está a la espera de la próxima hora. Es divertido adivinar sin ver un trozo de código.
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso