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

 
peshihod:

Je l'ai comme ça.

Merci, c'est tellement simple et direct, je vais essayer.
 
delf:
Merci, c'est si simple et direct, je vais l'essayer.
Quelque chose ne va pas. Après Stor Loss, c'est à nouveau la même direction.
 
delf:
Quelque chose ne va pas. Après Stor Perte à nouveau dans la même direction.

C'est quoi StopLoss ?

 

Bonjour !

Pouvez-vous me dire quels fichiers doivent être téléchargés et où les installer dans mt4 pour obtenir cette fenêtre ?

Je ne comprends pas comment le faire dans lasimulation sur différentes échéances de l'instrument testé.

Je veux voir seulement trois graphiques quotidiens, quatre heures et horaires.

Je veux voir trois graphiques quotidiens, de quatre heures et horaires. S'il vous plaît aidez, je n'ai pas réussi à le faire toute la nuit !


 
ametist444:

Bonjour !

Pouvez-vous me dire quels fichiers doivent être téléchargés et où les installer dans mt4 pour obtenir cette fenêtre ?

Je ne comprends pas comment le faire dans lasimulation sur différentes échéances de l'instrument testé.

Je veux voir seulement trois graphiques quotidiens, quatre heures et horaires.

je veux voir seulement trois fenêtres dans une même fenêtre temporelle, je veux voir seulement trois graphiques, je veux voir seulement trois graphiques quotidiens, de quatre heures et horaires.

Avez-vous besoin d'ouvrir ces fenêtres de manière programmatique depuis MT4 ? Je ne suis pas sûr, je ne suis pas très doué pour ça... :-)

Ouvrir manuellement quelques fenêtres et y insérer l'indicateur, ce n'est pas une option ?

 

Bonsoir : Pourriez-vous me dire comment comprendre

Le montant de la marge requise pour le type d'ordre spécifié dans le compte courant et dans l'environnement de marché actuel sans prendre en compte les ordres en cours et les positions ouvertes.

Pouvez-vous approximer une fonction existante ?

 

J'ai aussi commencé à utiliser cette fonction au lieu de beaucoup de

double     Lott  ( double     Lot ){
     if ( risk!=0)  Lot=AccountFreeMargin()*risk/10000 ; return (Lot);}  

Erreur 131 de OrderSend - mauvais volume. Avec un dépôt initial de 10000, un lot initial de 1. Cependant, quelque chose ne fonctionne pas...

 

Depuis quelque temps, , j'essaie de refaire le bloc de fermeture des achats pour ne fermer que les deux dernières positions d'achat, mais cela échoue. Pouvez-vous dire à comment refaire le bloc ?

void Close_2buy()
{
   bool   result;
  double  close_price;
  int    cmd,error;
  bool close;

      for (int f=OrdersTotal()-1; f>=0; f--) // 
      {
         OrderSelect(f, SELECT_BY_POS);
         if (OrderSymbol()==Symbol() &&(OrderMagicNumber()==magic ) 
         && (OrderType() == OP_BUY )) 
         {
            close = False;
            {
               close_price = MarketInfo(OrderSymbol(), MODE_BID);
               close = True;
            }
               
            if (close) 
            {
               result=OrderClose(OrderTicket(), OrderLots(), close_price, 0, CLR_NONE);
               if(result!=TRUE)
               {error=GetLastError();Print("LastError = ", error);}
            }
            
         }
      }
}
 
Dimka-novitsek:

J'ai aussi commencé à utiliser cette fonction au lieu de beaucoup de

Erreur 131 de OrderSend - mauvais volume. Avec un dépôt initial de 10000, un lot initial de 1. Cependant, quelque chose ne fonctionne pas...


J'utilise ceci. modifiez-le pour vous et essayez (changez AccountBalance() en AccountFreeMargin(), mettez votre variable. LotsDigits)
//+------------------------------------------------------------------+
//|                                                         0000.mq4 |
//+------------------------------------------------------------------+
#property copyright ""
#property link      ""
////////////////////////////////////////////////////////////////////////|
extern int     Method         =1;      // Метод: 0-FixedLots, 1-часть //|
                                       //(Risk) от свободных средств  //|
                                       // нормированных по значению   //|
                                       // MeansStep(например Risk=    //|
                                       // 0.01,MeansStep=1000,если    //|
                                       // средств меньше 2000,лот     //|
                                       // равен 0.01,если средств     //|
                                       // стало 2000 или более - 0.02 //|
                                       // лота, 3000 или более - 0.03 //|
                                       // лота и т.д.).               //|
                                                                      //|
extern double  LOTS           =0.01;   // Количество лотов при        //|
                                       // Method=0.                   //|
                                                                      //|
extern double  Risk           =0.01;   // Риск. Часть от средств при  //|
                                       // FixedLot=false.             //|
                                                                      //|
extern double  MeansStep      =100.0;  // Шаг средств. Используется   //|
                                       // при Method=1.               //|     
////////////////////////////////////////////////////////////////////////|
//+------------------------------------------------------------------+//|
//|  Определяем "свой" минимальный размер или шаг лота на момент     |//|
//|  начала цикла в зависимости от размера баланса и установленного  |//|
//|  риска.                                                          |//|
//+------------------------------------------------------------------+//|
////////////////////////////////////////////////////////////////////////|
double fGetLotsSimple()                                               //|
   {                                                                  //|
   double LOTSTEP,lot;                                                //|
   double Means;                                                      //|
   switch (Method)                                                    //|
      {                                                               //|
      case 0:                                                         //|
         lot=LOTS;                                                    //|
      break;                                                          //|
      case 1:                                                         //|
         Means=AccountBalance();                                      //|
         if(Means<MeansStep)Means=MeansStep;                          //|
         lot=(MeansStep*MathFloor(Means/MeansStep))/MeansStep*Risk;   //|
      break;                                                          //|
      default:lot=LOTS;                                               //|
   }                                                                  //|
   if(lot<1.0/MathPow(10,LotsDigits))lot=1.0/MathPow(10,LotsDigits);  //|
   LOTSTEP=MarketInfo(Symbol(),MODE_LOTSTEP);                         //|
   lot=MathFloor(lot/LOTSTEP)*LOTSTEP;                                //|
   lot=NormalizeDouble(lot,LotsDigits);                               //|
   if(lot>AccountFreeMargin())lot=-1;                                 //|
   return(lot);                                                       //|
}                                                                     //|
////////////////////////////////////////////////////////////////////////|
)
 

Pouvez-vous me dire ce qui pourrait clocher dans ce code ? C'est un stop suiveur, mais lorsqu'il est testé, il génère l'erreur 1, lorsqu'il est modifié. Pourquoi l'ordre n'est-il pas modifié ?

Lorsque j'ai corrigé cette erreur (sans succès jusqu'à présent), lorsque j'ai compilé le code principal de l'Expert Advisor dans la fonction d'impression, il a commencé à renvoyer une erreur, en disant qu'il a besoin de guillemets, mais tout est correct, et pour corriger cette erreur, je dois enlever et mettre un nouveau guillemet...

bool trailingstop()
{
si ((OrderMagicNumber()==11111)==true)
{
Print("Maintenir la position d'achat") ;
while(OrderCloseTime()==0)
{
si ((Bid-OrderStopLoss())>(StopLevel*Point))
{
si (OrderModify(OrderTicket(),OrderOpenPrice(),ND(Bid-StopLevel*Point),0,0)))
Print("Stop Loss de l'ordre portant le numéro ",OrderTicket()," et le numéro magique ",OrderMagicNumber()," a été modifié avec succès en ",OrderStopLoss()) ;
else Print("Le niveau de Stop Loss de l'ordre avec le numéro ",OrderTicket()," et le numéro magique ",OrderMagicNumber(),". Erreur ",GetLastError()) ;
}
}
si (OrderCloseTime()>0)
{
Print("L'ordre portant le numéro ",OrderTicket()," et le numéro magique ",OrderMagicNumber()," a été clôturé au prix ",OrderClosePrice()," avec un profit/une perte ",OrderProfit()) ;
retour (vrai) ;
}
}
sinon
{
si ((OrderMagicNumber()==22222)==true)
{
Print((Position de vente) ;
while(OrderCloseTime()==0)
{
si ((OrderStopLoss()-Ask)>(StopLevel*Point))
{
si (OrderModify(OrderTicket(),OrderOpenPrice(),ND(Ask+StopLevel*Point),0,0)))
Print("Stop Loss de l'ordre portant le numéro ",OrderTicket()," et le numéro magique ",OrderMagicNumber()," a été modifié avec succès en ",OrderStopLoss()) ;
else Print("Le niveau de Stop Loss de l'ordre avec le numéro ",OrderTicket()," et le numéro magique ",OrderMagicNumber(),". Erreur ",GetLastError()) ;
}
}
si (OrderCloseTime()>0)
{
Print("L'ordre portant le numéro ",OrderTicket()," et le numéro magique ",OrderMagicNumber()," a été clôturé au prix ",OrderClosePrice()," avec un profit/une perte ",OrderProfit()) ;
retour (vrai) ;
}
}
sinon retour(false) ;
}
}
Raison: