[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 360

 
Vitya >> :

Si vous voulez parler de verrouillage, vous ne comprenez pas ----. Je n'insiste pas sur ce point, je ne sais pas comment l'utiliser.

Fermer une partie des positions non rentables ? ------ Je pense que oui, mais je ne l'ai pas encore essayé.

La réponse se trouve dans le testeur de stratégie (ou en mode démo).

https://www.mql5.com/ru/code/9185

 
costy_ >> :

Testeur manuel la réponse ne peut être trouvée que là (ou dans la démo) voici le lien vers le simulateur

https://www.mql5.com/ru/code/9185

Je pense que la réponse ne peut être trouvée que dans les mathématiques ou dans l'expérience réelle du trading. C'est dommage que je n'aie ni l'un ni l'autre. Merci pour le lien.

 
Vitya >> :

Je pense que la réponse ne peut être trouvée que dans les mathématiques ou dans l'expérience réelle du trading. Je pense que c'est dommage que je n'en aie aucun. Merci pour le lien.

Si vous ne connaissez rien aux mathématiques mais que vous ne pouvez pas faire du commerce, vous devez apprendre et vous finirez par réussir !

Je conseille de commencer le trading manuel avec CCI(55) et MA(55) à M5 GBPJPY avec le nombre de Fibonacci et dans ce nombre trouvez votre période (aujourd'hui la mienne est 67), bonne chance !

Oui, j'allais oublier, l'heure de trading est aussi très importante, à savoir l'ouverture de la session de trading de la région dont la monnaie est majeure (et l'Amérique...).

 
Quelqu'un peut-il vérifier si tout est correct dans ce module :
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// MOVE SL TO BE

if( Mode_Close_Part_Set_BE_1==true   &&   OrdersTotal()>0) {

      for(int cnt_BE=0; cnt_BE<OrdersTotal(); cnt_BE++) {
         OrderSelect( cnt_BE, SELECT_BY_POS);         // the next line will check for ONLY market trades, not entry orders
         Ticket = OrderTicket();

// BUY -----------------------------------------------------------------------------------------
         if(OrderType()==OP_BUY   &&   OrderSymbol()==Symbol()   &&   OrderStopLoss()<OrderOpenPrice()   &&   Ask>=(OrderOpenPrice()+ MathAbs(OrderOpenPrice()-OrderStopLoss())) ) {
                  double SL_Original_Buy   = OrderStopLoss();

                  bool AnsHalfModifySL_Buy = OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,Green);
                  Sleep( Slippage*3000);

                  if( AnsHalfModifySL_Buy==true) {
                     BreakEvenStatus_Buy   = true;
                     Alert ("SL Buy which was ", SL_Original_Buy, " set to BreakEven at ", OrderStopLoss(), " for ", Symbol());
                  }

                  if( Fun_Error(GetLastError())==1) {       // Обработка ошибок
                     continue;                             // Повторная попытка
                  }

                  return;                                // Выход из start()
         } // if(OrderType() == OP_BUY  &&  OrderSymbol()==Symbol() )
// EO BUY -----------------------------------------------------------------------------------------


// SELL -----------------------------------------------------------------------------------------
         if(OrderType()==OP_SELL  &&  OrderSymbol()==Symbol()   &&   OrderStopLoss()>OrderOpenPrice()   &&   Bid<=(OrderOpenPrice()-MathAbs(OrderStopLoss()-OrderOpenPrice())) ) {
                  double SL_Original_Sell   = OrderStopLoss();

                  bool AnsHalfModifySL_Sell = OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,Blue);
                  Sleep( Slippage*3000);

                  if( AnsHalfModifySL_Sell==true) {
                     BreakEvenStatus_Sell   = true;
                     Alert ("SL Sell which was ", SL_Original_Sell, " set to BreakEven at ", OrderStopLoss(), " for ", Symbol());
                  }

                  if( Fun_Error(GetLastError())==1) {       // Обработка ошибок
                     continue;                             // Повторная попытка
                  }

                  return;                                // Выход из start()
         } // if(OrderType() == OP_SELL  &&  OrderSymbol()==Symbol() )
// EO SELL -----------------------------------------------------------------------------------------

      } // for(cnt_BE=0; cnt_BE<OrdersTotal(); cnt_BE++)
}
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


Je pose la question parce qu'après chaque appel, le message "Error 0 has occurred" apparaît, bien que tout semble fonctionner correctement (on va atteindre le seuil de rentabilité).





 
chief2000 писал(а) >>
Quelqu'un peut-il vérifier si tout est correct dans ce module :

Je demande cela parce qu'après chaque appel, le message suivant apparaît : "Error 0 has occurred", bien que tout semble fonctionner correctement (atteindre le seuil de rentabilité).

Il s'agit probablement d'une tentative de modification d'une commande aux anciens prix. Nous devrions comparer les paramètres du nouvel et de l'ancien ordre. Et il ne doit être modifié que si nécessaire.

 

L'erreur 0 se produit lorsque OrderModify ne modifie pas réellement quoi que ce soit - il change le prix à l'ancien.

 

Voici un exemple :




Un ordre a été ouvert avec SL=1.1596. Puis la SL est passée à 1,1570, et enfin cette erreur.

Il ne peut pas passer au second tour car il y a une condition :

... OrderStopLoss()>OrderOpenPrice() ...


- Qu'est-ce que ça peut être ?





 
chief2000 писал(а) >>

Voici un exemple :

Un ordre a été ouvert avec SL=1.1596. Puis la SL est passée à 1,1570, et enfin cette erreur.

Il ne peut pas passer au second tour car il y a une condition :

- Qu'est-ce que ça peut être ?

Ça pourrait. Vérifiez à nouveau les conditions logiques, mais seulement le matin.

Ce qui est dans la logique est ce qui lui permet de le faire.

 
Vinin >> :

Peut-être. Vérifiez à nouveau les conditions logiques, mais seulement le matin.

Ce qui est intégré dans la logique vous permet de le faire.

Je vais vérifier. >> Merci !

 

Aide

int start()  {
//----
Alert(Minute(),Hour());
int Minute( )
Renvoie la minute actuelle (0,1,2,...59) de la dernière heure du serveur connue au début du programme (cette valeur ne change pas pendant l'exécution du programme).

Remarque : lors des tests, la dernière heure connue du serveur est simulée.

Mais dans l'indicateur, lors des tests, la dernière heure connue du serveur n'est pas simulée. devrait-elle l'être ?