Quien quiera ver gráficos sin barras perdidas - aquí =) - página 9

 
He descubierto la razón por la que los desarrolladores han prohibido que los EAs trabajen en los gráficos sin conexión.
Creo que tiene que ver con el hecho de que para los gráficos offline Bid y Ask devuelven 0. Es decir, para los Expert Advisors que quieren abrir en el mercado es imposible. Pero se me ocurrió la siguiente solución para mi EA que funciona sólo con órdenes pendientes: cambiar Bid y Ask por _Bid() y _Ask() usando la auto sustitución. _MarketInfo() devuelve el spread del instrumento que se está negociando.

int _MarketInfo(string symb_for_work)
{
   if(symb_for_work=="USDCHFm") return(4);
   if(symb_for_work=="CHFJPYm") return(5);
   if(symb_for_work=="GBPUSDm") return(3);
   if(symb_for_work=="USDCADm") return(5);
   if(symb_for_work=="USDJPYm") return(3);
   if(symb_for_work=="EURGBPm") return(4);
   if(symb_for_work=="AUDUSDm") return(4);
   if(symb_for_work=="EURCHFm") return(4);
   if(symb_for_work=="EURJPYm") return(5);
   if(symb_for_work=="EURUSDm") return(2);
   if(symb_for_work=="NZDUSDm") return(6);
   if(symb_for_work=="AUDJPYm") return(6);   
 
return(0);
}
 
double _Bid()
{
   return(Close[0]);
}
 
double _Ask()
{
   return(Close[0]+_MarketInfo(symbol_for_trade)*Point);
}
Creo que la idea es clara. A juzgar por los primeros resultados del EA revisado, las órdenes se abren con normalidad. Ahora es el fin de semana, así que lo probaré en detalle cuando comience el comercio la próxima semana. Creo que podré cumplir lo que quería inicialmente.
 
En mi opinión, una tontería...
Si los desarrolladores vieran que "para los gráficos offline Bid y Ask devuelven 0",
¿qué les impide arreglarlo?
 

Por ejemplo, los gráficos fuera de línea pueden actualizarse con muy poca frecuencia. Y durante el intervalo de actualización, por ejemplo de 1 a 2 minutos, la demanda y la oferta reales pueden alejarse bastante de lo que se muestra en el gráfico sin conexión. Y RefreshRates() no ayudará aquí en absoluto. Bueno, debe haber otras razones además de la ya descubierta. Pero sólo los desarrolladores pueden responder a eso.

 
solandr:

Por ejemplo, los gráficos fuera de línea pueden actualizarse con muy poca frecuencia. Y durante el intervalo de actualización, por ejemplo de 1 a 2 minutos, la demanda y la oferta reales pueden alejarse bastante de lo que se muestra en el gráfico sin conexión. Y RefreshRates() no ayudará aquí en absoluto. Bueno, debe haber otras razones además de la ya descubierta. Pero sólo los desarrolladores pueden responder a eso.

Cierto, si el gráfico no se actualiza, la Oferta quedará obsoleta.
¡Pero también lo hará Close[0]!

No se pueden utilizar precios erróneos a sabiendas en un Asesor Experto de operaciones.
Utilice MarketInfo( MODE_BID ) y MarketInfo( MODE_ASK ) para obtener un precio fresco )
 

Básicamente, estoy bastante satisfecho con Close[0] ;o)
No tengo prisa. Incluso ralentizo el Asesor Experto a propósito ;o) de acuerdo con el siguiente principio:

1. Si el precio actual está al menos a 50 pips de distancia del proveedor, éste puede modificar la orden del proveedor sólo si es necesario moverla al menos 10 pips.
2. Si el precio actual está dentro del rango de 25...50 pips desde el "Oder", el Asesor Experto está autorizado a mover el "Oder" sólo si es necesario moverlo por 5 pips o más.
3. Si el precio actual está más cerca de 25 pips de la orden, el Asesor Experto moverá las órdenes pendientes en 2 pips o más.

Este esquema nos permite reducir el número de movimientos de órdenes pendientes al menos 5 veces, ¡si no más! :o) ¡Resulta que se mueve de 0 (por la noche) a 20 (durante los eventos de noticias) por hora en la cantidad total de unas 60 órdenes pendientes (para 12 divisas)! Es decir, probablemente no haya más de 200 movimientos al día, y no todos los días. ¡En general, creo que en el comercio manual la gente puede mover las órdenes aún más, si siguen exactamente una determinada estrategia y juegan con la misma cantidad de pares de divisas! ;o)

 

¡¡¡komposter, una vez más un GRAN AGRADECIMIENTO por desarrollar un Asesor Experto que fusiona las velas del día del domingo con las del lunes!!!
Llevo un mes trabajando con tu guión en el real. Inicio el script para procesar 19 pares de divisas (todos disponibles en InterbankFX) para 600 barras intradía cada uno. Configuro el tiempo de actualización de los gráficos a 1 minuto. Todo funciona sin problemas en la CPU VIA C3 800 MHz!

Me he dado cuenta de una pequeña característica, supongo que es una característica del terminal, no del Asesor Experto, del que personalmente no tengo ninguna queja. Cuando trabajo en el Metaeditor intento compilar cualquier EA que ni siquiera está unido a un gráfico, el terminal genera errores en sus registros. Al mismo tiempo, este hecho se muestra de forma estable tanto en el procesador de 800MHz, como en el P4 3GHz y el Celeron 2GHz. Construye 198. No lo he probado en 200 ya que hay algunos problemas con las actualizaciones en InterbankFX (aparece la solicitud de actualización pero las construcciones no se descargan - pero no importa).
******************************
2006.12.09 03:26:29 WithoutSunday_4: Manejador inválido -1 en FileFlush
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileWriteInteger
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileSeek
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileFlush
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileWriteInteger
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileSeek
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileFlush
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileWriteInteger
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileSeek
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileFlush
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileWriteInteger
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileSeek
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileFlush
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileWriteInteger
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileSeek
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileFlush
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileWriteInteger
2006.12.09 03:26:29 29 WithoutSunday_4: Manejador inválido -1 en FileSeek
2006.12.09 03:26:29 29 WithoutSunday_4 EURUSDm,Daily: Alert: FileOpenHistory("WS_AUDNZDm1440. hst", FILE_BIN | FILE_WRITE ) - Error #4102
2006.12.09 03:26:29: FileOpen - demasiados archivos abiertos
2006.12.09 03:26:29 29 WithoutSunday_4 EURUSDm,Daily: Alert: FileOpenHistory("WS_NZDJPYm1440. hst", FILE_BIN | FILE_WRITE ) - Error #4102
2006.12.09 03:26:29: FileOpen - demasiados archivos abiertos
2006.12.09 03:26:29 29 WithoutSunday_4 EURUSDm,Daily: Alert: FileOpenHistory("WS_AUDCADm1440. hst", FILE_BIN | FILE_WRITE ) - Error #4102
2006.12.09 03:26:29: FileOpen - demasiados archivos abiertos
2006.12.09 03:26:29:29 SinDomingo_4 EURUSDm,Diario: Alerta: FileOpenHistory("WS_EURCADm1440. hst", FILE_BIN | FILE_WRITE ) - Error #4102
2006.12.09 03:26:29: FileOpen - demasiados archivos abiertos
2006.12.09 03:26:29 29 WithoutSunday_4 EURUSDm,Daily: Alert: FileOpenHistory("WS_EURAUDm1440. hst", FILE_BIN | FILE_WRITE ) - Error #4102
2006.12.09 03:26:29: FileOpen - demasiados archivos abiertos
2006.12.09 03:26:29 29 WithoutSunday_4 EURUSDm,Daily: Alert: FileOpenHistory("WS_GBPCHFm1440. hst", FILE_BIN | FILE_WRITE ) - Error #4102
2006.12.09 03:26:29: FileOpen - demasiados archivos abiertos
*****************************

Normalmente, después de que aparezca, sólo tengo que reiniciar el terminal y todo sigue funcionando con normalidad durante todo el día.
Lo escribo a título informativo y no para que intentes solucionar el problema. Creo que no se puede prescindir de la ayuda de los desarrolladores.

Me dirijo a usted con la siguiente petición. El Asesor Experto para el cálculo de regresiones lineales y parabólicas mencionado anteriormente en esta rama funciona en base a las cotizaciones generadas por este script. Los cálculos de regresión se basan en el promedio de los parámetros de la barra, es decir, se toma como valor de referencia un valor de (O+H+L+C)/4. Pero a juzgar por mis observaciones a largo plazo, supongo que este modelo de lecturas (O+H+L+C)/4 no es del todo exitoso. Coloco un stop para una orden que se abre en la frontera del nivel de confianza del 95% en la frontera del 99,9%. Sin embargo, hubo casos en los que el precio superó el límite del intervalo de confianza del 99,9% por unos pocos pips. Además, el número de estos casos es superior al valor permitido según los datos estadísticos. Por eso quería comprobar mi suposición de que si tomamos como base de cálculo el modelo por Alto y Cierre, este límite será estadísticamente más preciso. El Asesor Experto es muy voluminoso - 184kB en un archivo mq4. Hay muchos lugares donde se hace referencia a las citas. Si corrijo el EA para un nuevo modelo, además de que es bastante laborioso, existe una alta probabilidad de introducir errores en un algoritmo de cálculo bastante complejo, que en mi opinión ya está bien establecido y funciona de forma fiable.

Por eso me gustaría pedirles que mejoren la última versión del script para que forme las cotizaciones del periodo H12 a partir de las velas diarias recibidas.
La barra H12 que se abre a las 00:00 debe tener los valores O=H=L=C=Low de la barra diaria inicial.
La barra H12 que se abre a las 12:00 debe tener los valores O=H=L=C=High de la barra diaria inicial.
Además, el Asesor Experto debe ser capaz de intercambiar los valores, es decir, la barra H12 a las 00:00 = Alto de la barra diaria inicial, la barra H12 a las 12:00 = Bajo de la barra diaria inicial.
Durante la actualización del gráfico en tiempo real, el Asesor Experto debe pasar la(s) última(s) barra(s) H12 del día actual sin procesar, es decir, con los valores actuales de O,H,L,C para cada barra H12.
El procesamiento descrito de las barras debe hacerse sólo después del cierre de la vela diaria, cuando no hay más cambios en las barras H12 del día cerrado.
Si puede ayudarme a mejorar el script existente según el método descrito, mejorará mucho la comprobación del modelo High-Low en términos de análisis estadístico de la creación de canales. Prometo presentar aquí los resultados de las comparaciones. Creo que será interesante su lectura para muchas personas interesadas en el tratamiento de datos estadísticos. GRACIAS de antemano!!!

 
solandr:

InterbankFX está teniendo algunos problemas con la actualización (aparece la invitación a actualizar, pero no se descarga la compilación - pero eso no importa)

Desde los nuevos servidores reales realmente no se actualiza. Con el servidor de demostración de liveupdate se conecta sin problemas.
 

Por mi parte, primero intentaré comprobar el cálculo del canal sólo para el Alto y el Bajo individualmente. Veré los resultados. Si los canales obtenidos con diferentes muestras coinciden en longitud, probablemente podamos prescindir de un nuevo guión para el periodo H12. Es decir, utilizaremos los datos de Alto para los límites superiores de los canales, y los datos de Bajo para los límites inferiores. ¿Quizás te estoy molestando para nada con mis peticiones si todo se puede resolver mucho más fácilmente en mi EA? Creo que no es difícil de implementar en mi Asesor Experto.

 
komposter Tengo un problema aquí, ¿puedes decirme qué hacer? Todos los detalles están aquí http://forum.kimiv.ru/viewtopic.php?t=177
 
solandr:

Me he dado cuenta de una pequeña cosa, que supongo que es una característica del terminal y no del EA, del que personalmente no tengo ninguna queja. Cuando el Asesor Experto se está ejecutando y compilo cualquier EA en el Metaeditor, que ni siquiera está unido a ninguno de los gráficos, hay un error en los registros de la terminal.

Siento no haber contestado en mucho tiempo, acabo de volver de vacaciones...

El problema, me parece, es que EA no cierra los archivos abiertos. La pregunta es por qué no lo hace =)
La única suposición es que durante la compilación, la función de inicio de los EAs en funcionamiento se detiene forzosamente.

Y en el siguiente "inicio", los archivos se vuelven a abrir, pero no hay "espacio suficiente" (máximo 32 archivos abiertos).

El propio Asesor Experto no maneja esta situación de forma bastante correcta: aunque un archivo no se haya abierto, sigue intentando escribir datos en él.
Corregido - añadido una línea =)
if ( HistoryHandle[curChart] < 0 ) continue;


attached Expert Advisor.



En cuanto a los gráficos H12. "Tengo tiempo pero no dinero" no se trata de mí =)
Aunque yo también tengo estos 2 valores inversamente relacionados: a más tiempo libre, menos dinero y viceversa.

En este momento no puedo hacer obras de caridad, tengo demasiado trabajo.
Y el foro tiene 5 páginas (*30 temas) sin leer....
Archivos adjuntos: