Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 575
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
Esta es mi variante para resolver el problema de búsqueda de repeticiones:
Para que el script funcione, el archivo Dictionary debe ser copiado en MQL5\Include
La búsqueda se realiza en el bucle for de una sola pasada resaltado en amarillo. La lista resultante no contiene repeticiones (si A repite a B y B repite a A, saldrá un conjunto {A, B} en lugar de dos {A, B} y {B, A}). ).
La salida de este script mostró lo siguiente:
De la referencia:
Esta es mi versión de la solución al problema de la búsqueda de repeticiones:
Por favor, ayúdenme a encontrar una función para calcular el RSI estándar, los requisitos son simples:
1. Devuelve el valor del RSI en una barra determinada
2. Calcular el índice sólo para las barras (si es necesario), que se solicitan (deseable)
3. Para poder calcular en el TF especificado
4. Funciona a expensas del punto 2 más rápido que el indicador
Quiero integrar la función en el Asesor Experto, si alguien tiene uno listo, por favor compártalo conmigo.
Lo pregunto porque el indicador es muy común y no es un misterio.
Por favor, ayúdenme a encontrar una función para calcular el RSI estándar, los requisitos son simples:
1. Devuelve el valor del RSI en una barra determinada
2. Calcular el índice sólo para las barras (si es necesario), que se solicitan (deseable)
3. Para poder calcular en el TF especificado
4. Funciona a expensas del punto 2 más rápido que el indicador
Quiero integrar la función en el Asesor Experto, si alguien tiene uno listo, por favor compártalo conmigo.
Lo pregunto porque el indicador es muy común y no es un misterio.
¿Qué tiene de malo el iRSI estándar? ¿No es suficientemente secreto?
Hay mis cambios que tendré que hacer en la función...
Tome uno ya hecho y modifíquelo según sus necesidades:
Tome uno ya hecho y modifíquelo según sus necesidades:
Esta es mi variante para resolver el problema de la búsqueda de repeticiones:
Vasily, cuando abro#include <Diccionario.mqh>, se abre lo mismo que en el cuerpo del EA. ¿Debería ser así, o debería haber algún otro código dentro?
Porque en el código, que veo, no está claro cómo busca las repeticiones ((
¿Estoy en lo cierto al suponer que se trata de un error tipográfico? Debería ser 0 en lugar de 1.
así:int searchPeriod=(Search_Period<1)?0:Search_Period;
y además en el script ejecutable:
int copy_bars=(int)fmin(Search_Period,Bars(Symbol(),Period())); // el número de velas a copiar
En este caso, probablemente deberíamos utilizar ya una variable: searchPeriod. ¿no?
------
Otra pregunta, ¿qué hace esta línea? He comprobado que cada elemento de la estructura se pone a cero. Y no entiendo qué estamos poniendo a cero aquí si parece que acabamos de escribir estos datos y debemos utilizarlos más.
ZeroMemory(dataCandle); // Puesta a cero de los datos en la estructura
¿Estoy en lo cierto al suponer que se trata de un error tipográfico? Debería ser 0 en lugar de 1.
así:int searchPeriod=(Search_Period<1)?0:Search_Period;
y además en el script ejecutable:
int copy_bars=(int)fmin(Search_Period,Bars(Symbol(),Period())); // el número de velas a copiar
En este caso, probablemente deberíamos utilizar ya una variable: searchPeriod. ¿no?
------
Otra pregunta, ¿qué hace esta línea? He comprobado que cada elemento de la estructura se pone a cero. Y no entiendo qué estamos poniendo a cero aquí si parece que acabamos de escribir estos datos y debemos utilizarlos más.
ZeroMemory(dataCandle); // borrar los datos de la estructura
"...así:int searchPeriod=(Search_Period<1)?0:Search_Period;"
No, no lo es. Así es como se tiene (literalmente): si Search_Period establecido por el usuario en la configuración es menor que uno, entonces searchPeriod será igual a cero; en caso contrario, searchPeriod será igual al valor de Search_Period establecido por el usuario en la configuración. Esto no es correcto. No necesitamos un rango de búsqueda que sea igual a cero. Por lo tanto, si este rango es establecido por el usuario en 0 o menos de cero (menos de uno), entonces estableceremos este rango igual al mínimo - uno.
" int copy_bars=(int)fmin(Search_Period,Bars(Symbol(),Period())); // número de velas a copiar
aquí ya deberíamos utilizar la variable: searchPeriod. ¿no? "
Sí, es cierto, hay una errata.
"Otra pregunta, ¿qué hace esta línea? ¿Para qué sirve? He comprobado que pone a cero cada elemento de la estructura. Y aquí no puedo entender por qué y qué estamos poniendo a cero si acabamos de escribir estos datos y debemos utilizarlos más. ZeroMemory(dataCandle); // Poner a cero los datos de la estructura".
Lo hacemos antes de llenar la estructura con datos. Primero lo ponemos a cero y luego lo llenamos. Mira - lo ponemos a cero antes del bucle. Y luego en el bucle llenamos la estructura con datos.