[ARQUIVO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 4. - página 305

 

Não, só pode haver um resultado. passar os valores por referência :

double _bid = 0, _ask = 0;

Print(_bid,":",_ask);

ResFunction(_bid,_ask);

Print(_bid,":",_ask);


void ResFunction(double &x, double &y){
   x = Bid;
   y = Ask;
   return;
}
 
abeiks:

Olá!

Vou começar com um exemplo simples, caso contrário será difícil de explicar.

Bem, devido ao fato de que em ambos os casos o mesmo valor é devolvido de suas subrotinas - preço Bid, então uma destas duas funções pode ser descartada do código. Se os valores retornados forem diferentes, você pode, por exemplo, montá-los em um fio - retornar da sub-rotina estes dois valores, separados por algum separador, como ponto-e-vírgula. E devolva-o como um fio. Em seguida, no código principal, extrair 2 valores da string e convertê-los para o dobro.
 

Envie algo para o subprograma para que ele possa entender o que é necessário.

 
abeiks:

Olá!

...

Olá! Como as pessoas já comentaram sua pergunta, eu gostaria de lhe perguntar: vocês são os campeões de 2008 ?

Se assim for, você poderia nos contar sobre seu GRAAL, sem revelar todos os "segredos do pátio de Madri" e sem nos contar "todos os contos florestais de Viena". Basta levantar um pouco o véu... Você pode - neste ramo, tenho certeza, as pessoas vão achá-lo útil!

Eu mesmo estou me preparando ativamente para o torneio...

Obrigado!

 
drknn:

Por favor, me diga, por que você zera uma variável quando uma função é declarada? Está bem aqui:


É assim que você define o valor padrão se você não o define explicitamente quando o chama, ou estou errado?
 
Skydiver:

Então é assim que é definido para o valor padrão, caso não seja explicitamente definido quando chamado, ou estou errado?


Eu não sei. Mas eu estou interessado. Vou verificar.

P.S.

Funciona!

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start(){
  Alert("func1(100) вернула значение = ",func1(100),"  func1() вернула значение = ",func1());
  return(0);
}
//+------------------------------------------------------------------+
int func1(int i=25){
        return(i);
}

 
Skydiver:
Tente pré-imprimir cada valor em cada iteração do laço. O tamanho de sua matriz é pequeno, portanto não haverá confusão de dados.
 

Como posso fazer a diferença entre abrir pedidos com o mesmo sinal ser 1 barra?

 
GarKain:

Como posso fazer a diferença entre abrir pedidos com o mesmo sinal ser 1 barra?


Precisamos comparar o tempo de abertura de uma posição com o tempo da abertura atual do bar[0]. Se o tempo de abertura de uma posição for maior ou igual ao tempo de abertura do bar, o Conselheiro Especialista não abrirá uma nova posição. Quando uma nova barra aparece, o Time[0] mudará seu valor para um tempo posterior e esta comparação mostrará que a posição ainda não foi aberta na barra atual (nova) e podemos negociar.

A propósito, sua pergunta também pode ser dividida em 2 sub-questões:
1. No bar atual, uma posição foi aberta e conseguiu fechar, mas ainda estamos esperando por um novo bar.
2. Uma posição foi aberta na barra atual e conseguiu fechar, assim podemos abrir uma posição novamente na mesma barra (ou seja, podemos abrir 1 posição na mesma barra simultaneamente).

 
FAQ:

Não, só pode haver um resultado:


Obrigado, vou tentar.