Ayuda a la codificación - página 371

 

2014.10.15 12:36:23.875 Probador: No se puede cargar Experts\Fisher Auto EA v1 m11

 

2014.10.15 12:36:23.875 No se puede abrir el archivo 'C:\NProgram Files\Forex Broker Inc MT4 Client Terminal\MQL4\Experts\Fisher Auto EA v1 m11.ex4' [2]

 
grego:
2014.10.15 12:36:23.875 No se puede abrir el archivo 'C:\N-Archivos de Programa\N-Terminal de Cliente MT4 de Forex Broker Inc\N-MQL4\Experts\Fisher Auto EA v1 m11.ex4' [2]

Si tu EA está compilado y como he visto se puede cargar en un gráfico en vivo, lo único que puede causar eso es un nuevo metatrader 4 y sus errores de back tester. Pero comprueba si el EA está correctamente compilado

 

la declaración de 'LeftNum1' oculta la declaración global en la línea 20 fisher m111.mq4 119 8

¿quizás un problema entre el experto y el indicador?

 
grego:
2014.10.15 12:36:23.875 No se puede abrir el archivo 'C:\NProgram Files\Forex Broker Inc MT4 Client Terminal\MQL4\Experts\Fisher Auto EA v1 m11.ex4' [2]

Rápida prueba visual de ese EA

Está funcionando y está abriendo (y cerrando) órdenes. Parámetros por defecto utilizados

Archivos adjuntos:
backtest.gif  66 kb
 

Hola chicos de nuevo... otra pequeña petición:

¿alguien puede decirme cómo eliminar los valores duplicados de un array de cadenas?

Por favor

¡Gracias!

 
AtApi:
Hola chicos de nuevo... otra pequeña petición:

¿alguien puede decirme cómo eliminar los valores duplicados de un array de cadenas?

Por favor,

¡Gracias!

No se puede eliminar un elemento(s) del array a menos que sea / sean el último elemento(s) del array. Como eso no va a ser así en el 99,999% de los casos, tienes que crear un nuevo array vacío y añadir sólo los elementos únicos del array existente a ese array recién creado

 

Gracias mladen por tu respuesta... ¿debo hacer algo así?

int numDups = 0, prevIndex = 0;

string tempArray[];

for (int x = 0; x < ArraySize(myArray); x++)

{

bool foundDup = false;

for (int j = 0; j < x; j++)

{

if (myArray[x] == myArray[j])

{

foundDup = true;

numDups++; // Increment means Count for Duplicate found in array.

continue;

}

}

if (foundDup == false)

{

tempArray[prevIndex] = myArray[x]; prevIndex++;

}

}

 
AtApi:
Gracias mladen por tu respuesta.. ¿entonces debo hacer algo así?

int numDups = 0, prevIndex = 0;

string tempArray[];

for (int x = 0; x < ArraySize(myArray); x++)

{

bool foundDup = false;

for (int j = 0; j < x; j++)

{

if (myArray[x] == myArray[j])

{

foundDup = true;

numDups++; // Increment means Count for Duplicate found in array.

continue;

}

}

if (foundDup == false)

{

tempArray[prevIndex] = myArray[x]; prevIndex++;

}

}

[/CODE]

Pruebe algo como esto :

[CÓDIGO] cadena tempArray[];

for (int i = 0; i < ArraySize(myArray); i++)

for (int j = i+1; j < ArraySize(myArray); j++)

si (miMatriz == miMatriz[j]) miMatriz[j]="eliminar";

for (i = 0; i < ArraySize(myArray); i++)

if (myArray != "remove") { ArrayResize(tempArray, ArraySize(tempArray)+1); tempArray[ArraySize(tempArray)-1]=myArray; }

 
mladen:
Intenta algo como esto:
string tempArray[];

for (int i = 0; i < ArraySize(myArray); i++)

for (int j = i+1; j < ArraySize(myArray); j++)

if (myArray == myArray[j]) myArray[j]="remove";

for (i = 0; i < ArraySize(myArray); i++)

if (myArray != "remove") { ArrayResize(tempArray, ArraySize(tempArray)+1); tempArray[ArraySize(tempArray)-1]=myArray; }

¡Gracias mladen!

el problema de esta manera es que realmente no elimina la cadena de la matriz que acaba de cambiar el valor de la cadena de "eliminar" en el valor original y duplicado ... así que si quiero más tarde filtrarlos voy a eliminar el valor original, así ... espero que estoy claro ...

Razón de la queja: