[ARCHIVE !] Toute question de débutant, pour ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 4. - page 617

 
lottamer:

Ces chaînes sont-elles autorisées ?

si ( (A==1 && B==2) && (C==2 || D==3) && E==4)

c'est-à-dire à la fois AND et OR sur une même ligne ?


Oui, le compilateur traite tout ce qui est entre parenthèses comme une comparaison séparée.
 
drknn:

Écrivez-le vous-même - il n'y a qu'une seule boucle. Essaie juste de le faire. Et si vous échouez, montrez-nous le code de votre boucle - nous vous aiderons.


J'ai un problème avec les cycles.

J'ai vu le début de nombreuses fois...

ensuite il y a du brouillard....

for (i=0 ; i<k ; i++) {

si(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)

le plus que je puisse comprendre est que chaque i est assigné ...quelque chose...

Mais que faire de ce mélange de i... Je n'en ai aucune idée...

 

rigonich

Eh bien, ça commence enfin à avoir du sens. Ainsi, les courtes chaînes entre accolades sont des appels de fonction, et les fonctions elles-mêmes doivent être placées quelque part.

Maintenant dans l'ordre.

J'ajoute un appel de la première fonction à l'init, je le fais immédiatement après avoir lancé la fonction init, c'est-à-dire juste comme ça, ce sera correct, non ?

int init()
{
    fGet_MineGV();
}
//... и далее мой код, который был ранее

De même, j'ajoute l'appel de la deuxième fonction au bloc de départ. Si je le fais immédiatement après le calcul des variables, est-ce correct ? Par exemple, comme ceci :

     if ((A1>0)&&(A2>0)&&(A3>0)&&(A4>0)&&(A5>4.5)&&(VVV>V_NN)&&(SUA==0))
{
SUA=100;
SUA1+=1;
}
if((A1>0)&&(A2>0)&&(A3>0)&&(A4>0)&&(A5>4.5)&&(VVV<2)&&(VVV>0)) 
SUA=0;
if ((BUA==100)&&(A5<-4.5))
{
SUA=0;
SUA1=0;
}

     if ((A1<0)&&(A2<0)&&(A3<0)&&(A4<0)&&(A5<-4.5)&&(VVV>V_NN)&&(BUA==0))
{
BUA=100;
BUA1+=1;
}
if ((A1<0)&&(A2<0)&&(A3<0)&&(A4<0)&&(A5<-4.5)&&(VVV<2)&&(VVV>0)) 
BUA=0;
if ((SUA==100)&&(A5>4.5))
{
BUA=0;
BUA1=0;
}
//...сюда вставляю...
{
    fSave_MineGV();
}
//...и далее опять мой код...

Ces deux premières étapes sont-elles correctes ?

И нервный ваш согестник  дал вам не часть кода, а две готовые функции, которые он дя вас написал. 
En fait, je lui ai tout de suite dit merci pour ça.
 

Comment sortir d'une série if si la condition est if=vrai ?

si

si

if (TRUE) - mais il faut tout recommencer, et ne pas aller plus loin dans la ligne.

si

si

.......

 
lottamer:

n'a pas pu trouver la bonne fonction dans la bibliothèque

Taille du TakeProfit de la dernière position fermée.

Peut-être que quelqu'un en a un ?


La taille du take profit dans la devise de dépôt est renvoyée par OrderProfit(), en pips - prix de clôture moins prix d'ouverture, et comment trouver la dernière position fermée ou où obtenir une fonction prête à l'emploi pour cela, je crois, vous a été expliqué à plusieurs reprises.
 
lottamer:

Comment sortir d'une série if si la condition if=vrai ?

si

si

if (TRUE) - mais il faut tout recommencer, et ne pas aller plus loin dans la ligne.

si

si

.......


si

si

if (TRUE) - mais vous devez tout recommencer, et ne pas aller plus loin dans l'échelle.

else {

si

si

.......

}//if (TRUE) - mais il faut tout recommencer et ne pas aller plus loin dans l'échelle.

En fait, dans environ 99,9 % des cas, cela signifie que vous n'avez pas suffisamment réfléchi à la mise en œuvre de l'algorithme.

 
VladislavVG:

si

si

if (TRUE) - mais vous devez tout recommencer, et ne pas aller plus loin dans l'échelle.

else {

si

si

.......

}//if (TRUE) - mais il faut tout recommencer et ne pas aller plus loin dans l'échelle.

En fait, dans environ 99,9 % des cas, cela signifie que vous n'avez pas suffisamment réfléchi à la mise en œuvre de l'algorithme.


:))) semble déjà avoir trouvé une solution

return (0) - et merveilleusement sort tout si

 
VladislavVG:

si

si

if (TRUE) - mais vous devez tout recommencer, et ne pas aller plus loin dans l'échelle.

else {

si

si

.......

}//if (TRUE) - mais il faut tout recommencer et ne pas aller plus loin dans l'échelle.

En fait, dans environ 99,9 % des cas, cela signifie que vous n'avez pas suffisamment réfléchi à la mise en œuvre de l'algorithme.

Avec },else, return, ou break ou continue (pour les boucles).
 
rigonich:

La taille du take profit dans la devise de dépôt est renvoyée par la fonction OrderProfit(), en points - prix de clôture moins prix d'ouverture. Je pense qu'il vous a été expliqué plusieurs fois comment trouver la dernière position fermée ou où obtenir une fonction prête pour cela.


Exactement. Vous devez d'abord prendre le ticket de la dernière position fermée GetTicketLastPos , puis utiliser les fonctions standard pour extraire ce dont vous avez besoin de ce ticket.

Merci.

 
xant:

rigonich

Eh bien, ça commence enfin à avoir du sens. Ainsi, les courtes chaînes entre accolades sont des appels de fonction, et les fonctions elles-mêmes doivent être placées quelque part.

Maintenant dans l'ordre.

J'ajoute un appel de la première fonction à l'init, je le fais immédiatement après avoir lancé la fonction init, c'est-à-dire juste comme ça, ce sera correct, non ?

De même, j'ajoute l'appel de la deuxième fonction au bloc de départ. Si je le fais immédiatement après le calcul des variables, est-ce correct ? Par exemple, comme ceci :

Ces deux premières étapes sont-elles correctes ?

En fait, je lui ai tout de suite dit merci pour ça.


Presque. Dans le inite, supprimez le premier { que vous aviez avant d'insérer l'appel, dans le start -- les deux{} avant et après l'appel. Maintenant, il ne vous reste plus qu'à copier le code de la fonction, à le placer après tout votre code EA et à compiler l'EA.

Désolé, je me suis trompé, c'est difficile quand il n'y a pas de code devant mes yeux. Voilà.

int init()
{
fGet_MineGV();
//... и далее мой код, который был ранее (без первой { )
Raison: