Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 1173

 

Comment puis-je savoir si un symbole est disponible pour un compte sans avoir à l'ouvrir sur le marché ?

 
leonerd:

Comment puis-je savoir si un symbole est disponible pour un compte sans avoir à l'ouvrir sur le marché ?

Habituellement, sur le site web du DC, où les types de comptes sont décrits, on trouve également les spécifications du contrat. Si la spécification est différente pour chaque type de compte, alors les listes d'instruments disponibles reflètent uniquement ceux qui sont disponibles pour ce type de compte. En fait, certaines sociétés de courtage affichent dans le Market Watch non seulement les symboles qui peuvent être négociés, mais aussi d'autres symboles. Ils sont disponibles pour le compte, les cotations vont, mais vous ne pouvez pas négocier. Si vous souhaitez savoir comment dresser par programme la liste de tous les symboles disponibles, utilisez les fonctions SymbolsTotal, SymbolName.

 

Il existe une fonction.

double XX=0;

double x()
{
  XX++;

return(XX);
}


Chaque appel de fonction modifiera la variable ХХ, et j'ai besoin que ХХ soit externe (selon ma logique), mais chaque appel de fonction a commencé avec ХХ étant 0 et en conséquence return(ХХ) retournera sa valeur. C'est-à-dire que je ne comprends pas comment faire pour que la variable XX soit externe et que la fonction puisse être appelée de manière "autonome", isolée. Exactement par le biais de MQ4. Merci !

 
Александр:

Il existe une fonction.


Chaque appel de fonction changera la variable XX, et j'ai besoin que XX soit externe (par la logique que je veux), mais chaque appel de fonction a commencé avec XX étant 0 et donc return(XX) a retourné sa valeur. C'est-à-dire que je ne comprends pas comment faire pour que la variable XX soit externe et que la fonction puisse être appelée de manière "autonome", isolée. Exactement par le biais de MQ4. Merci !

L'approche consistant à augmenter le compteur est totalement incompréhensible. Pourquoi ne pas l'augmenter directement, pourquoi avons-nous besoin d'une fonction ?

 
Александр:

Il existe une fonction.


Chaque appel de fonction changera la variable ХХ, et j'ai besoin que ХХ soit externe (par la logique que je veux), mais chaque appel de fonction a commencé avec ХХ étant 0 et en conséquence return(ХХ) retournera sa valeur. Je ne comprends pas comment faire pour que la variable XX soit externe et que la fonction puisse être appelée de manière "autonome", isolée. Exactement par le biais de MQ4. Merci !

Donc, à l'intérieur de la fonction, il est mis à zéro et c'est tout.

double XX=0;

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

Donc, à l'intérieur de la fonction, mettez-le à zéro et c'est tout.

Il retournera toujours 1)

 
Vitaly Muzichenko:

De cette façon, le chiffre 1 sera toujours renvoyé)

De la manière dont le code est présenté, oui, il retournera toujours 1. Mais je crois comprendre que ce n'est pas une version très bien simplifiée de la fonction, c'est pourquoi j'ai proposé cette solution.

Disons que la fonction comporte une boucle while et qu'il faut savoir combien d'itérations de la boucle il y a eu.

Sinon, nous attendrons que la question soit clarifiée.

 

La difficulté est que (pour me souvenir de la valeur actuelle) je crée une variable externe. Mais si j'appelle la fonction plusieurs fois et à des moments DIFFÉRENTS, j'obtiendrai la même valeur de cette variable. Et j'ai besoin de plusieurs "ensembles" autonomes de la même fonction. Je ne veux pas utiliser de boucles, pour des raisons évidentes. Une boucle est un exemple parfait de ce dont j'ai besoin. C'est comme une fonction autonome qui ne vit que pendant la boucle.

 

La difficulté est que (pour me souvenir de la valeur actuelle) je crée une variable externe. Mais si j'appelle la fonction plusieurs fois et à des moments DIFFÉRENTS, j'obtiendrai la même valeur de cette variable. Et j'ai besoin de plusieurs "ensembles" autonomes de la même fonction. Je ne veux pas utiliser de boucles, pour des raisons évidentes. Une boucle est un exemple parfait de ce dont j'ai besoin. C'est comme une fonction autonome qui ne vit que pendant une boucle.


C'est ce dont j'ai besoin.

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);
}
 
La solution la plus simple consiste à avoir plusieurs fonctions identiques avec des noms différents (sans compter les boucles). Mais je ne sais pas combien de fois je dois l'appeler, donc je veux une solution élégante.