Função que retorna 2 resultados?

 

Preciso devolver 2 resultados de uma função. Posso separá-los e criar uma função para cada resultado de que preciso, mas é muito mais código e torna outras coisas mais complicadas. Isto é possível com o MT4?

 

verificar parâmetros de passagem ny referência:

int res1 func(int& res2, outros parâmetros...)

 

Você quer dizer, basicamente, executar a função duas vezes, passando um parâmetro espceial para obter um resultado diferente a cada vez? Suponho que isso poderia funcionar...

Mas gostaria de poder fazer isso:

return(a,b);
 

não,

int x;

int y=func(x, outros parâmetros);

após a chamada x=5 e y=2;

int res1 func(int& res2, outros parâmetros...)

{

res2=5

retorno(3);

}

 

Quero dizer y=3

 

Uau, obrigado por tentar ajudar, mas não entendo o que você está fazendo aqui. Você tem uma função totalmente codificada que faz isso que você poderia simplesmente copiar e colar aqui?

 

Ainda parece que seu único resultado de retorno é "3"...

retorno(3);

?

 

basta encontrar parametros de passagem por referência em mql4 ajuda:

Geralmente passar por rederença significa que você passa uma variável real para a função de fora (usando &) e você pode mudar seu valor dentro da função e que a vaule ainda estará lá quando você me copia de volta da chamada.

Assim, o valor int x definido para 0.

dentro da função que você define x=5

quando você retorna da função x=5 como definido por função para que você dê seu segundo resultado da função sem retornar 2 resultados.

As funções nunca retornam 2 resultados apenas um.

 

OK, obrigado, irusoh1

 

O que está faltando na explicação do irusoh1 é a variável necessidade de ser Array(s). E o retorno não desempenha um papel no preenchimento/modificação das matrizes, mas, ao invés disso, modifica-a diretamente conforme necessário.

int Xarray[]; int Yarray[];

void Fun2result(int& Array[], int& Brray[], int pos)
{    Array[pos] = 2 + pos;
     Brray[pos] = 5 + pos;
} 
int start()
{  
    for(i=Bars-1; i>=0; i--)
       Fun2result(Xarray, Yarray, i); 
}

Boa sorte.

 

não precisa ser uma matriz