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

 
Link_x:

Même si cela ne ferme pas les commandes, je n'aime pas cela.
Il semble que ce soit toutes mes fautes, que je ne parviens pas à trouver, en raison de mon inexpérience.

De plus, nous utilisons GetLastError(), nous étudions quel est le problème.
 
Link_x:
Je n'arrive pas à le saisir.
OK, j'ai déjà trouvé une alternative. :)

Laissez MTS effectuer des transactions sans SL ni TP, mais fermez-les toutes si le bénéfice potentiel est supérieur à X.
Est-il possible de clôturer des ordres de cette manière ?
Devons-nous suivre les commandes de cette manière ?
Le premier paramètre de la fonction OrderClose(.......) doit être le ticket de la position (il doit être trouvé au préalable en utilisant OrderSelect( ) )
 
Trouvez la variable sl, vous avez un entier, puis vous avez une fraction.
 
vadynik:

La fonction est-elle fractionnée ou ne devrait-elle pas l'être ?

Bonne année ! Prenez un verre et ne vous inquiétez pas. ! !!!!!!!!!!!!!!!!! :-)
 
Link_x:

Même si cela ne ferme pas les commandes, je n'aime pas cela.
Il semble que ce soit mes défauts, que je ne parviens pas à trouver en raison de mon inexpérience.


Gourou, où vas-tu... ?... :-))) tu as perdu la tête ...

il y a des foules qui prient, ils ne savent pas où aller, et il ne peut pas avoir les pieds droits... :-)))

 
vadynik:

La fonction est-elle fractionnée ou ne devrait-elle pas l'être ?
void VirtualTral(int Dist_Tral,int Start_Tral,int Magic,int SL)

\\здесь у тебя SL - целая, не знаю, какое значение ты сюда посылаешь
{

double dist=Dist_Tral;
double start=Start_Tral;
double sl=SL;

//здесь уже дробная, но так как до этого была целая, значит....
 
if(OrdersTotal()<=0)
ObjectDelete("Stop"); 

int i, k=OrdersTotal();

  for (i=k-1; i>=0; i--) 
   {
          if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
     {  

             if (Bid-NormalizeDouble(OrderOpenPrice(),Digits)>NormalizeDouble(start*Point,Digits))
      
          {                                                                                                                        
                    if((NormalizeDouble(Bid-sl*Point,Digits))>(NormalizeDouble(dist*Point,Digits)))//здесь sl подразумевается как отступ от цены, тогда dist должна быть ценой
                {         
                                                 
                          sl=NormalizeDouble(Bid-dist*Point,Digits); //а здесь sl - это уже цена, вполне определенная
                          //Print(+dist); 
                          //Print(+sl); 
                          ObjectCreate("Stop",OBJ_HLINE,0,D'2013.02.20 12:30',sl); // и здесь, это определенное значение цены
                                                                        
                          ObjectSet("Stop",OBJPROP_STYLE,1);                         
                          ObjectMove("Stop",0,D'2013.02.20 12:30',sl);            
   
 
vadynik:

Parce que je compte la différence entre l'offre et la demande et je compare ce delta avec la distance et si c'est plus il faut remonter le stop, je ne comprends pas où est la faute exactement ?



Faisons-le en chiffres

si((NormalizeDouble(Bid-sl*Point,Digits))>(NormalizeDouble(dist*Point,Digits))

Supposons que l'enchère soit de 1,3333, que sl soit de 100, que dist soit de 20, alors

1.3333-100 * 0.0001=1.3233 ce qui est plus que 20 * 0.0001 = 0.02 toujours

 
gyfto:

J'ai une question plus importante sur la convivialité. Le graphique peut être défilé à gauche et à droite, ainsi que serré et étiré. Mais comment faire défiler vers le haut et vers le bas ?

J'ai compris, avec le graphique peut être déplacé vers le haut et le bas avec la souris.

 
Integer:
r772ra

Merci pour votre aide, chers traders - programmeurs. :)
 

Comment calculer les pourcentages dans MQL4 ?

par exemple x=10+3% comment l'écrire de manière programmatique ?

Je ne le trouve pas dans le livre de référence.