Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 1173

 

Como posso saber se um símbolo está disponível para uma conta sem ter que abri-la no mercado?

 
leonerd:

Como posso saber se um símbolo está disponível para uma conta sem ter que abri-la no mercado?

Normalmente no site da DC, onde os tipos de conta são descritos, há também especificações contratuais. Se a especificação for diferente para cada tipo de conta, então as listas de instrumentos disponíveis refletem apenas aquelas que estão disponíveis para esse tipo de conta. Na verdade, algumas empresas de corretagem mostram no Market Watch não apenas os símbolos que podem ser negociados, mas também outros símbolos. Elas estão disponíveis para a conta, as cotações vão, mas você não pode negociar. Se você estiver interessado em programar todos os símbolos disponíveis, então use SymbolsTotal, SymbolName functions.

 

Há uma função.

double XX=0;

double x()
{
  XX++;

return(XX);
}


Cada chamada de função mudará a variável ХХ, e eu preciso que ХХ seja externa (de acordo com minha lógica), mas cada chamada de função iniciada com ХХ sendo 0 e de acordo com isso retornará seu valor (ХХ). Isto é, não entendo como tornar a variável XX externa e a função poderia ser chamada "autonomamente", de forma isolada. Exatamente por meio do MQ4. Obrigado!

 
Александр:

Há uma função.


Cada chamada de função mudará a variável XX, e eu preciso que XX seja externa (pela lógica que eu quero), mas cada chamada de função iniciada com XX sendo 0 e conseqüentemente retornada(XX) retornou seu valor. Isto é, não entendo como tornar a variável XX externa e a função poderia ser chamada "autonomamente", de forma isolada. Exatamente por meio do MQ4. Obrigado!

A abordagem de aumentar o contador é completamente incompreensível. Por que não aumentá-la diretamente, por que precisamos de uma função?

 
Александр:

Há uma função.


Cada chamada de função mudará a variável ХХ, e eu preciso que ХХ seja externa (pela lógica que eu quero), mas cada chamada de função iniciada com ХХ sendo 0 e de acordo com isso retornará seu valor (ХХ). Isto é, não entendo como tornar a variável XX externa e a função poderia ser chamada "autonomamente", de forma isolada. Exatamente por meio do MQ4. Obrigado!

Portanto, dentro da função, ela é zerada e pronto.

double XX=0;

double x()
{
  XX=0;
  XX++;
return(XX);
}
 
Alexey Viktorov:

Portanto, dentro da função, zerá-lo para fora e pronto.

Sempre retornará 1)

 
Vitaly Muzichenko:

Desta forma 1 será sempre devolvido)

A forma como o código é apresentado, sim, ele sempre retornará 1. Mas meu entendimento é que esta não é uma versão muito bem simplificada da função, por isso eu sugeri esta solução.

Bem, digamos que a função tem um loop while e precisamos rastrear quantas iterações do loop existiam.

Caso contrário, esperaremos pelo esclarecimento da questão.

 

A dificuldade é que (para lembrar o valor atual) eu crio uma variável externa. Mas se eu chamar a função várias vezes e em tempos DIFERENTES, eu obterei o mesmo valor dessa variável. E eu preciso de vários "conjuntos" autônomos da mesma função. Eu não quero usar loops, por razões óbvias. Um laço é um exemplo perfeito do que eu preciso. É como uma função autocontida que vive apenas durante o loop.

 

A dificuldade é que (para lembrar o valor atual) eu crio uma variável externa. Mas se eu chamar a função várias vezes e em tempos DIFERENTES, eu obterei o mesmo valor dessa variável. E eu preciso de vários "conjuntos" autônomos da mesma função. Eu não quero usar loops, por razões óbvias. Um laço é um exemplo perfeito do que eu preciso. É como uma função autocontida que vive apenas durante um loop.


Isso é o que eu preciso.

double XX=0;

double x()
{
  XX=0;
  XX++;
return(XX);
}
///////////////
int start()

{

 Print(" x() = ',x()); // Проверка в 10:00, вызывал функцию в 08:00.
 x() = 40;// условно конечно

///////////

 Print(" x() = ',x()); // Проверка в 10:00, здесь вызвал вызывал функцию раньше в 01:00.
 x() =70;// условно конечно

return(0);
}
 
A saída mais fácil é ter várias funções idênticas com nomes diferentes (sem contar os loops). Mas não sei quantas vezes tenho que chamá-lo, por isso quero uma solução elegante.
Razão: