Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 420
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
¿Existe una función que devuelva el tipo de variable?
Por ejemplo, usted escribe.
int a=10;
y luego escribes:
functia(a);
y dice: ¡INT!
:)
string functia(double a) { devuelve "¡DABLE!"; } // también inesperadamente
¿Hay alguna función que devuelva un tipo de variable?
Por ejemplo, usted escribe.
int a=10;
y luego escribes:
functia(a);
y dice: ¡INT!
:)
De la ayuda:
Es mucho más sencillo. Cree un botón de visualización (o utilice uno de los botones existentes). Más adelante - todos los objetos necesarios están marcados con la bandera de visibilidad en todos los TFs. Cuando se suelta el botón, todos los objetos se fijan para mostrar la propiedad en todos los TFs (o es necesario si es necesario). No es necesario borrar/reorganizar nada. Lo único que hay que hacer es volver a dibujar el gráfico después de esta operación.
Propiedad del objeto OBJPROP_TIMEFRAMES.
¿Me pueden decir cómo obtener los datos del indicador en un array? Es decir, está claro que tengo que declarar un array
doble matriz_de_números[];
No sé muy bien qué hacer a continuación...
num_array[0] = iMA(NULL,0,13,8,MODE_SMMA,PRICE_MEDIAN,i); // la matriz con el índice [0] es igual a MA, pero si cambiamos el índice a [1], entonces resulta que num_array[1] es igual
los mismos datos del indicador que num_array[0]. Este no debería ser el caso. La matriz debe llenarse secuencialmente. Lo único que se me ocurre es dividir el día en 24
horas, declare una matriz bidimensional y asigne un índice a cada hora con su propia cadena etc....
¿Quizás haya una forma más sencilla o menos engorrosa?
¿Me pueden decir cómo obtener los datos del indicador en un array? Es decir, está claro que tengo que declarar un array
doble matriz_de_números[];
No sé muy bien qué hacer a continuación...
num_array[0] = iMA(NULL,0,13,8,MODE_SMMA,PRICE_MEDIAN,i); // la matriz con el índice [0] es igual a MA, pero si cambiamos el índice a [1], entonces resulta que num_array[1] es igual
los mismos datos del indicador que num_array[0]. Este no debería ser el caso. La matriz debe llenarse secuencialmente. Lo único que se me ocurre es dividir el día en 24
horas, declare una matriz bidimensional y asigne un índice a cada hora con su propia cadena etc....
¿Quizás haya una forma más sencilla o menos engorrosa?
Yo lo veo así:
Yo lo veo así:
Oh, puedo establecer el número máximo de índices en el array a través deArrayResize y pasarlos por el bucle. Muchas gracias, pero entonces me surge una duda, cuando todos los índices estén llenos de datos del indicador, ¿debo borrarlos a través deArrayFree, o se reescribirá solo? o después del 24 se detendrá todo? Perdón por la pregunta tan contundente, pero los arrays son una especie de caballo negro con funciones desconocidas.
Oh, puedo usarArrayResize para establecer el número máximo de índices en el array y pasarlos por el bucle. Muchas gracias, pero entonces me surge una duda, cuando todos los índices estén llenos de datos del indicador, ¿debo borrarlos a través deArrayFree, o se reescribirá solo? o después del 24 se detendrá todo? Perdón por la pregunta tan contundente, pero los arrays son una especie de caballo negro con funciones desconocidas.
Array = un conjunto de variables simples alineadas en una fila para una conveniente referencia de índice. El índice es una variable entera para acceder a los elementos del array por número para organizar un bucle. Índice = contador de números. ArrayFree = destrucción de arrays - como arrasar con casas destartaladas. Pero se puede restaurar de nuevo con ArrayResize. Bueno ,ArrayResize es una valla alrededor de un array residencial. El nuestro está aquí, pero los extraños están detrás de la valla, y está prohibido entrar allí. Puedes introducir cada casa muchas veces (asignar un nuevo valor a un elemento del array). Una matriz es muy simple y conveniente para muchos propósitos. Y los que tienen miedo de las matrices - los ... Por lo tanto, es mejor que los conozcas.
//+------------------------------------------------------------------+ //| Проверка массива | //+------------------------------------------------------------------+ #property strict int m[10]; int n; void OnStart() { ArrayInitialize(m,7); Вывод(); // Заполнить семерками ArrayResize(m,7); Вывод(); // Удалить 3 последних элемента ArrayResize(m,9); Вывод(); // Увеличить размер m[1]=1; m[7]=1; Вывод(); // Изменить 2 элемента for(n=0; n<9; n++) m[n]=n*n; Вывод(); // Заполнить квадратами номеров ArrayCopy(m,m,0,2,7); Вывод(); // Копирование со сдвигом ArrayResize(m,ArraySize(m)-2); Вывод(); // Удалить 2 последних элемента } void Вывод() { string s=""; for(n=0; n<ArraySize(m); n++) s+=" " + string(m[n]); Alert(ArraySize(m), ":", s); }
Pruebe a ejecutar un script como este - y practiqueDe la referencia: