![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
2014.10.15 12:36:23.875Tester: Não é possível carregar o Auto EA v1 m11 do Fisher Experts\Fisher
2014.10.15 12:36:23.875Não é possível abrir o arquivo 'C:\Program Files\Forex Broker Inc MT4 Client Terminal\MQL4Experts\Fisher Auto EA v1 m11.ex4' [2]
2014.10.15 12:36:23.875 Não é possível abrir o arquivo 'C:\Program Files\Forex Broker Inc MT4 Client Terminal\MQL4Experts\Fisher Auto EA v1 m11.ex4' [2]
Se sua EA for cumprida e, como eu vi, ela pode ser carregada em um gráfico vivo, a única coisa que pode causar isso é um novo metatrader 4 e seus bugs de teste de costas. Mas verifique se a EA está corretamente compilada
declaração de 'LeftNum1' esconde declaração global na linha 20fisher m111.mq41198
talvez um problema entre especialista e indicador!?
2014.10.15 12:36:23.875 Não é possível abrir o arquivo 'C:\Program Files\Forex Broker Inc MT4 Client Terminal\MQL4Experts\Fisher Auto EA v1 m11.ex4' [2]
Rápido teste visual de retorno dessa EA
Está funcionando e está abrindo (e fechando) ordens. Parâmetros padrão utilizados
Oi pessoal novamente... outro pequeno pedido:
alguém pode me dizer como remover valores duplicados de uma matriz de cordas?
Por favor
Obrigado!
Oi pessoal novamente... outro pequeno pedido:
alguém pode me dizer como remover valores duplicados de uma matriz de cordas?
Por favor
Obrigado!Você não pode remover um elemento(s) da matriz a menos que seja(m) o(s) último(s) elemento(s) da matriz. Como este não será o caso em 99,999% dos casos, você tem que criar um novo array vazio e adicionar apenas elementos únicos do array existente a esse array recém-criado.
Obrigado mladen por sua resposta... então eu deveria fazer algo assim?
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++;
}
}
Obrigado mladen por sua resposta... então eu deveria fazer algo assim?
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]Tente algo como isto :
[CÓDIGO] cordel tempArray[];
para (int i = 0; i < ArraySize(myArray); i++)
para (int j = i+1; j < ArraySize(myArray); j++)
if (myArray == myArray[j]) myArray[j]="remover";
for (i = 0; i < ArraySize(myArray); i++)
if (myArray != "remover") { ArrayResize(tempArray, ArraySize(tempArray)+1); tempArray[ArraySize(tempArray)-1]=myArray; }
Tente algo como isto :
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; }
Obrigado mladen!
o problema desta maneira é que não remove realmente a string da matriz, apenas muda o valor da string para "remover" tanto no valor original quanto no valor duplicado...então se eu quiser filtrá-los mais tarde eu removerei o valor original também...espero que eu esteja claro...