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

 
valenok2003:

c'est en fait comme ça

print donne _dif = 0.01, mais_Lot = 0 ;

Probablement réglé sur

int _Lot ; //alors, tout ce qui est inférieur à un
sera coupé
.

et devrait être réglé sur :

double _Lot ;


 
forexnew:

Probablement réglé sur

int _Lot ; //alors il coupera tout ce qui est inférieur à zéro

et devrait être réglé sur :

double _Lot ;



double _Lot ;
double _Lot_BUY = 0 ;
double _Lot_SELL = 0 ;
double _Lot_BUYSTOP = 0 ;
double _Lot_SELLSTOP = 0 ;
 

voici une autre construction

   if(_Lot_BUY > _Lot_SELL+_Lot_SELLSTOP) {
       _dif = _Lot_BUY - (_Lot_SELL + _Lot_SELLSTOP);
      if(_Lot_BUY - (_Lot_SELL + _Lot_SELLSTOP) >= 0.01) _Lot = 0.01;
      if(_Lot_BUY - (_Lot_SELL + _Lot_SELLSTOP) >=  0.1) _Lot =  0.1; 
      if(_Lot_BUY - (_Lot_SELL + _Lot_SELLSTOP) >=    1) _Lot =    1;   
      if(_Lot_BUY - (_Lot_SELL + _Lot_SELLSTOP) >=   10) _Lot =   10; 

Print(_dif +" установка2 _Lot = "+_Lot+ "_Lot_BUY = "+_Lot_BUY+ "_Lot_BUYSTOP = "+_Lot_BUYSTOP+ "_Lot_SELL = "+_Lot_SELL+ "_Lot_SELLSTOP = "+_Lot_SELLSTOP);

      _Price = NormalizeDouble((Low [iLowest (Symbol(),TF_Cnt_Bar_for_Lock,MODE_LOW, _Bars_PP_OP_SELLSTOP,0)]- Dist_For_Boot*Point),Digits);
      if(Bid - _Price < Dist_For_Boot*Point) {
         _Bars_PP_OP_SELLSTOP *=2;
         _RESET_Bars_PP_OP_SELLSTOP = false;
      }
      if(set_order_sellstop(_Price, _Lot, _Txt_Lock+Comment_Order)!= -1) _RESET_Bars_PP_OP_SELLSTOP = true;
   }

ne fonctionne pas comme ça, mais dans l'exemple suivant, c'est le cas

   if(_Lot_BUY > _Lot_SELL+_Lot_SELLSTOP) {
       _dif = _Lot_BUY - (_Lot_SELL + _Lot_SELLSTOP);
      //if(_Lot_BUY - (_Lot_SELL + _Lot_SELLSTOP) >= 0.01) 
      _Lot = 0.01;
      if(_Lot_BUY - (_Lot_SELL + _Lot_SELLSTOP) >=  0.1) _Lot =  0.1; 
      if(_Lot_BUY - (_Lot_SELL + _Lot_SELLSTOP) >=    1) _Lot =    1;   
      if(_Lot_BUY - (_Lot_SELL + _Lot_SELLSTOP) >=   10) _Lot =   10; 

Print(_dif +" установка2 _Lot = "+_Lot+ "_Lot_BUY = "+_Lot_BUY+ "_Lot_BUYSTOP = "+_Lot_BUYSTOP+ "_Lot_SELL = "+_Lot_SELL+ "_Lot_SELLSTOP = "+_Lot_SELLSTOP);

      _Price = NormalizeDouble((Low [iLowest (Symbol(),TF_Cnt_Bar_for_Lock,MODE_LOW, _Bars_PP_OP_SELLSTOP,0)]- Dist_For_Boot*Point),Digits);
      if(Bid - _Price < Dist_For_Boot*Point) {
         _Bars_PP_OP_SELLSTOP *=2;
         _RESET_Bars_PP_OP_SELLSTOP = false;
      }
      if(set_order_sellstop(_Price, _Lot, _Txt_Lock+Comment_Order)!= -1) _RESET_Bars_PP_OP_SELLSTOP = true;
   }
 

Le message suivant apparaît dans le journal

0.01000000 setting2 _Lot = 0.00000000_Lot_BUY = 0.03000000_Lot_BUYSTOP = 0.00000000_Lot_SELL = 0.00000000_Lot_SELLSTOP = 0.02000000
17:07:12 Expert_V3 GBPUSD,M1 : montant des lots invalide pour la fonction OrderSend

Cependant, alors qu'il manquait 3 SELLSTOPs, il a réglé les deux premiers sans problème, mais a trébuché sur le troisième.

C'est-à-dire, pourquoi il ne fixe pas lot à 0.01, même s'il calcule correctement la variable _dif...

 
Roger:


C'est votre idée ?

Il n'ouvrira que les commandes du second. Pas même de la deuxième, mais de la troisième.

Merci.
 
Pouvez-vous me dire s'il est possible de déterminer l'heure du début de la session de trading (par exemple, pour Moscou, c'est 10-35, etc.) ou simplement de créer une variable et d'y inscrire une valeur ? Ceci est nécessaire afin de ne pas placer des ordres au début de la session, mais de déterminer la direction.
 
first_may:
Pouvez-vous me dire s'il est possible de déterminer l'heure du début de la session de trading (par exemple, pour Moscou, c'est 10-35, etc.) ou simplement de créer une variable et d'y inscrire une valeur ? Ceci est nécessaire afin de ne pas placer des ordres au début de la session, mais de déterminer la direction.
Calendrier des sessions de négociation sur le Forex
 

Il est donc suggéré d'utiliser simplement une variable qui stocke le début de la session. Merci.
 
C'est aussi le meilleur indicateur de session que j'ai rencontré.
P.S.
Je l'ai trouvé dans la base de données. https://www.mql5.com/ru/code/9313
Dossiers :
 
Existe-t-il un exemple de fonction permettant de travailler avec des dates, c'est-à-dire de déterminer la différence entre deux dates, si elle est supérieure à zéro ou non ?
Raison: