Preguntas de los principiantes MQL4 MT4 MetaTrader 4 - página 22
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
Me refería a que cuando se pasan datos a un array, éste se rellena secuencialmente, es decir, array1[] = x; ¿en qué celda se escribirá el valor x si no se especifica directamente el número de celda?
No. Si quiere llenar todas las celdas con el mismo valor , utilice ArrayInitialize().
Si quieres escribir diferentes valores, utiliza el bucle de forma secuencial. Si necesita escribir en una celda específica, especifique su dirección.
No. Si quiere llenar todas las celdas con el mismo valor , utilice ArrayInitialize().
Si quieres escribir diferentes valores, utiliza el bucle de forma secuencial. Si necesita escribir en una celda específica, especifique su dirección.
Gracias,
Aquí hay otra pregunta: a través de ArrayCopy, ¿podré crear un nuevo array con un tamaño igual al número de celdas llenas del anterior? ¿O debo crear primero una segunda matriz y sólo después copiar?
void& dst_array[], // куда копируем
const void& src_array[], // откуда копируем
int dst_start=0, // с какого индекса пишем в приемник
int src_start=0, // с какого индекса копируем из источника
int count=WHOLE_ARRAY // сколько элементов
);
Gracias,
Aquí hay otra pregunta: con ArrayCopy, ¿puedo crear un nuevo array con el mismo tamaño que el número de celdas llenas del anterior? ¿O tengo que crear primero un segundo array y luego copiarlo?
void& dst_array[], // куда копируем
const void& src_array[], // откуда копируем
int dst_start=0, // с какого индекса пишем в приемник
int src_start=0, // с какого индекса копируем из источника
int count=WHOLE_ARRAY // сколько элементов
);
Crear primero, por supuesto.
if ( Spread >= 0 ) ExtSpread [x] = Spread;
if ( TimeCurrent() - iTime( NULL, 0, 0) >= 60 ){
int Spread2[x];
ArrayCopy( Spread2[],ExtSpread[],0,0, WHOLE_ARRAY);}
x=x+1;
if (x > 1000) x = 0;
Así, escribo el valor de Spread en ExtSpread[] y cuando la barra de un minuto termina, lo muevo a otro array - que debería, en teoría, sobrevivir a la siguiente barra.
Tamaño ExtSpread[1000]
Una pregunta más: si la matriz se numera empezando por cero, entonces, si su tamaño es 1000, su última celda será 999?
Entonces es correcto: x++ y si ( x > 999 ) x=0;
if ( Spread >= 0 ) ExtSpread [x] = Spread;
if ( TimeCurrent() - iTime( NULL, 0, 0) >= 60 ){
int Spread2[x];
ArrayCopy( Spread2[],ExtSpread[],0,0, WHOLE_ARRAY);}
x=x+1;
if (x > 1000) x = 0;
Así, escribo el valor de Spread en ExtSpread[] y cuando la barra de un minuto termina, lo muevo a otro array - que debería, en teoría, sobrevivir a la siguiente barra.
Tamaño ExtSpread[1000]
Una pregunta más: si la matriz se numera empezando por cero, entonces, si su tamaño es 1000, su última celda será 999?
Entonces es correcto: x++ y si ( x > 999 ) x=0;
if ( Spread >= 0 ) ExtSpread [x] = Spread;
if ( TimeCurrent() - iTime( NULL, 0, 0) >= 60 ){
int Spread2[];ArrayInitialize (Spread2,EMPTY_VALUE); ArrayResize( Spread2,x,0);
ArrayCopy( Spread2,ExtSpread,0,0, WHOLE_ARRAY);}
x=x+1;
if (x > 999) x = 0;
Aplazado:
scomoroh, 2016.12.04 18:58
Aparece un error al compilar. ¿Cuál es el problema? ¡Ayude a resolverlo!Aplazado:
scomoroh, 2016.12.04 18:58
Durante la compilación aparecerá un error. ¿Cuál es el problema? ¡Ayúdame a resolverlo!ArrayInitialize(max,0) =>ArrayInitialize(arr,0);
for(int a=1;a<=pr;a++) =>for(int a=1;a<pr;a++)
Este es un código muy poco óptimo, el terminal se cuelga durante unos minutos al lanzarlo, y luego será muy lento, y si lo ejecutas con varios gráficos, entonces no funcionará en absoluto
ArrayInitialize(max,0) =>ArrayInitialize(arr,0);
for(int a=1;a<=pr;a++) =>for(int a=1;a<pr;a++)
Este es un código muy poco óptimo, el terminal se cuelga durante unos minutos al lanzarlo, y luego será muy lento, y si lo ejecutas con varios gráficos, entonces no funcionará en absoluto