Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 318
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Por la tarde. Tengo un EA, funciona bien en el probador de estrategias (abre órdenes y todo). Pero cuando lo pongo en un gráfico, no pasa nada. El EA no funciona. También noté una cruz junto al nombre del EA en el gráfico. ¿Cómo solucionarlo?
Cuando pones el EA en el gráfico se abre una ventana con parámetros, hay diferentes pestañas - en la primera "General" tienes que poner un tick delante de "Permitir al EA operar".
Si el EA ya está en el gráfico y se muestra con una cruz - en la barra de herramientas, haga clic en el botón "EAs" (cubo amarillo en un sombrero con un círculo rojo y un cuadrado blanco dentro del círculo).
Buenas tardes. Ayúdame a tratar un problema extraño.
La cuestión es: estoy escribiendo un indicador multitiempo, es decir, un indicador que, estando abierto en cualquier momento, calculará y dará señales para todos los demás momentos también.
La base del indicador es el RSI.
En init() cuando se cambia el marco de tiempo, se pone un array separado en correspondencia de la línea del indicador. Para cada uno de ellos se muestra la línea, cuando se está en tal o cual momento, pero los cálculos para otros momentos no van (función iRSI es estúpidamente persiguiendo ceros en el cálculo). Es decir, se calcula la hora actual, pero no se calculan otras horas.
Pego el código:
Lo que es interesante, si dejamos sólo un array para la línea indicadora y calculamos sólo W1 en cualquier momento, todo se calcula y dibuja correctamente en cualquier(!) momento.
¿Cuál es el truco? ¿Es imposible tomar diferentes matrices para la línea del indicador durante la inicialización, dependiendo del tiempo?
Buenas tardes. Ayúdame a tratar un problema extraño.
La cuestión es: estoy escribiendo un indicador multitiempo, es decir, un indicador que, estando abierto en cualquier momento, calculará y dará señales para todos los demás momentos también.
La base del indicador es el RSI.
En init() cuando se cambia el marco de tiempo, se pone un array separado en correspondencia de la línea del indicador. Para cada uno de ellos se muestra la línea, cuando se está en tal o cual momento, pero los cálculos para otros momentos no van (función iRSI es estúpidamente persiguiendo ceros en el cálculo). Es decir, se calcula la hora actual, pero no se calculan otras horas.
Pego el código:
Lo que es interesante, si dejamos sólo un array para la línea indicadora y calculamos sólo W1 en cualquier momento, todo se calcula y dibuja correctamente en cualquier(!) momento.
¿Cuál es el truco? ¿Es imposible tomar diferentes matrices para la línea del indicador durante la inicialización, dependiendo del tiempo?
Sólo se leen W1 y D1. ¿Qué quieres? Acaba con los demás.
Esa no es la cuestión. He dado los cálculos sólo para D1 y W1, para que el código no sea demasiado largo. Nota: en cada tick de cada marco temporal se imprimen los valores calculados de W1. Así, si se abre cualquier hora excepto W1, se imprimen ceros. Si funciona para el W1, funcionará para los demás.
No se trata de eso. He dado los cálculos sólo para D1 y W1, para no hacer el código demasiado largo. Tenga en cuenta: en cada tic en cualquier marco temporal se imprimen los valores calculados de W1. Así, si se abre cualquier hora excepto W1, se imprimen ceros. Si funciona para W1, funcionará para todos los demás.
¡Correcto! Para que se vea en otros gráficos, hay que abrir también el gráfico semanal.
Para ser sincero, no he entendido esta afirmación.
Y no es necesario mostrar nada más. Si ejecuta el código, verá que ya muestra lo que quiero: en D1 muestra el gráfico RSI D1 y en W1 - el gráfico RSI W1, pero al mismo tiempo, si D1 está abierto, entonces los RSI para W1 son todos cero, y si W1 está abierto, entonces los cálculos para D1 son cero. La pregunta es por qué ocurre esto y cómo solucionarlo.
El problema es que el array de índices se inicializa y redimensiona al tamaño adecuado.
He cambiado el interruptor en init() así:Así que cuando abro D1 - RSI_D1[] se convierte en un índice, y todo está bien con él, pero otros arrays permanecen en estado embrionario.
Lo probé así: declaré todos los arrays de esta manera:
Sin embargo, en ArrayResize GetLastError da un error:
EURUSD,Diario: no se puede redimensionar la matriz
EURUSD,Daily: algún error de matriz
De todos modos, ¿quién puede decirme cómo resolver este problema?
El problema es que el array de índices se inicializa y redimensiona al tamaño adecuado.
He cambiado el interruptor en init() así:Así que cuando abro D1 - RSI_D1[] se convierte en indexado, y todo está bien con él, pero otros arrays permanecen en estado embrionario.
Lo intenté de esta manera: declaré todos los arrays de esta manera:
Sin embargo, en ArrayResize GetLastError da un error:
EURUSD,Diario: no se puede redimensionar la matriz
EURUSD,Daily: algún error de matriz
De todos modos, ¿quién puede decirme cómo resolver este problema?
Si la matriz es dinámica, asegúrese de aumentar el tamaño de la matriz para acomodar los nuevos datos al escribir valores en ella. ArrayResize()
Pero ArrayResize GetLastError da un error:
EURUSD,Daily: no se puede redimensionar el array
EURUSD,Daily: algún error de array
Esto es lo que he escrito más arriba:
Sin embargo en ArrayResize GetLastError da un error:
EURUSD,Diario: no se puede redimensionar la matriz
EURUSD,Diario: algún error de matriz
Para ser sincero, no entendí esa afirmación.
Y no es necesario mostrar nada más. Si ejecuta mi código, verá que ya muestra todo lo necesario: el RSI D1 muestra el gráfico en D1 y el RSI W1 en W1, pero al mismo tiempo, si D1 está abierto, entonces el RSI para W1 son todos cero, y si W1 está abierto, entonces el RSI para D1 son todos cero. La pregunta es por qué ocurre esto y cómo solucionarlo.
¡Porque el buffer está solo y se muestra uno a uno en su llamada!