[Archive] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 2. - page 123

 
KabrGvin:

Veuillez me dire comment éviter l'influence des week-ends où il n'y a pas de bars. Supposons que les numéros de barre soient calculés à l'aide des formules :

nt i1=(Time[0]-t1)/60/Period() ;

int i2=(Time[0]-t2)/60/Period() ;

Et le nombre de barres entre i1 et i2 est égal à la différence entre eux. C'est-à-dire : Nombre de barres = i1-i2. Mais si i1 et i2 tombent entre deux week-ends, le nombre de barres sera calculé en tenant compte des barres qui n'existent pas le samedi et le dimanche. Comment puis-je me sortir de cette situation ?

Salutations, Dimitri.


Merci à tous. Je l'ai fait moi-même.



 

Comment arrondir 2,643789 à un nombre entier ? Ou donnez-moi un lien si vous le voulez bien,

Je ne le trouve pas dans le manuel ou la documentation, je ne trouve rien dans la recherche, ou je cherche au mauvais endroit.

 
eddy:

alsu, remplissez le tout comment ? :)

et pourquoi imprimer i ?) i est égal à Barres-comptées+2. comment peut-il être négatif ?

              for(i=Bars; i>=0; i--) Rel[i]=pr(Close[i])-pr(Close[i+1]);
     if(teni) for(i=Bars; i>=0; i--) {Rhi[i]=pr(High[i])-pr(Close[i+1]);
                                      Rlo[i]=pr(Low[i])-pr(Close[i+1]);
                                                Rlo[i]=MathMin(Rlo[i],0);
                                                Rhi[i]=MathMax(Rhi[i],0);}

Ce code est exécuté à chaque tick, c'est-à-dire à l'arrivée de chaque tick Tous les éléments des tableaux Rel,. de Bars à zéro se voient attribuer une certaine valeur. (Au fait, il n'y a pas d'élément avec le nombre Bars, le dernier index dans le tableau est Bars-1 - il faut s'en souvenir).

Maintenant, pour le non-dessin.

Nous devons trouver où se trouve l'erreur. Tout d'abord, je suggère que nous examinions les valeurs que prend l'indice i et ce que produit la fonction rsi(). Comme il n'y a pas de débogueur dans ME, nous devons utiliser echo, c'est-à-dire Print().

 
gheka:

Les gens ! Comment arrondir 2.643789 à un nombre entier ?

Je ne le trouve pas dans le manuel ou la documentation, je ne trouve rien dans la recherche, ou je cherche au mauvais endroit.

https://docs.mql4.com/ru/math/MathRound

double MathRound( double valeur)

La fonction renvoie la valeur arrondie au nombre entier le plus proche de la valeur numérique spécifiée.

Exemple :
double y=MathRound(2.8) ;
Print("Arrondi de 2,8 à ",y) ;
y=MathRound(2.4) ;
Print("Arrondi de -2,4 à ",y) ;
//Sortie : Arrondissement de 2,8 à 3
//arrondi de -2,4 à -2

 
alsu:

..sur chaque coche Tous les éléments de Rel,... de Bars à zéro se voient attribuer une certaine valeur.

Maintenant, à propos du non-dessin.

Nous devons trouver où se trouve l'erreur. Tout d'abord, je suggère que nous examinions les valeurs que prend l'indice i et les résultats de la fonction rsi() à cet égard. Comme il n'y a pas de débogueur dans ME, nous pouvons utiliser echo, c'est-à-dire Print().

"Barres à zéro" j'ai déjà corrigé) Je suis toujours en train de lire et de corriger des choses.

maintenant à propos du non-dessin)

Est-ce que Bars-counted+2 peut être négatif ?

 

Comment puis-je modifier tous les ordres ouverts ?

Je ne modifie qu'une seule commande pour une raison quelconque

Voici mon code

 tot=OrdersTotal();
if(tot>0)
{ if(OO_11(0)==false) <---- ОО_11() он проверяет есть ли стоп
{ int k=OrdersTotal();
for(int a=0;a<=k;a++)
{ if(OrderSelect(a,SELECT_BY_POS,MODE_TRADES))
{ if(OrderType()==OP_SELL)
{ if(OrderMagicNumber()==0)
{
int tik=OrderTicket();
OrderModify(tik,Ask,Ask+0.01000,0,0,0);
}
}
}
}
}
}
J'ai 10-50 ordres ouverts sans magicien mais il ne fixe un stop loss que sur un seul ordre, dites-moi ce qui ne va pas ?
 
eddy:

"Barres à zéro", j'ai déjà corrigé) Je suis toujours en train de lire et de corriger des choses.

maintenant à propos du non-dessin)

Bars-counted+2 peut-il être négatif ?

A la volée, non, ça ne peut pas. Mais il est toujours plus rapide de vérifier que de penser. L'idéal serait de mettre des empreintes partout et de voir comment le logiciel fonctionne.
 
gheka:

Comment puis-je modifier tous les ordres ouverts ?

Je ne modifie qu'une seule commande pour une raison quelconque

voici mon code

J'ai 10-50 ordres ouverts sans ouverture magique mais j'obtiens un stop loss seulement sur un ordre, dites-moi ce qui ne va pas ?

1) la variable k répète la variable tot

2) a<=k est faux, corrigez a<k

3) Que dit le journal à propos de la modification des ordres ?

 
alsu:

1) la variable k répète la variable tot

2) a<=k est incorrect, corrigez a<k

3) Qu'y a-t-il dans le journal concernant la modification de la commande ?

Il n'y a aucune information dans le journal de bord, seulement l'ouverture des commandes et rien d'autre, cela ne fonctionne toujours pas non plus.
 
alsu:

1) la variable k répète la variable tot

2) a<=k est incorrect, corrigez a<k

3) Qu'y a-t-il dans le journal concernant la modification de la commande ?

Cela fonctionne maintenant) merci.
Raison: