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

 
artmedia70:
Vous êtes les bienvenus.

Ne soyez pas modeste, de rien, vous m'avez fait gagner beaucoup de temps...
Je vous souhaite le meilleur et bonne chance.
 
artmedia70:
Et demander int b


pourquoi int ? Selon le manuel, ObjectGet doit être de type double, et dans la fonction iBarShift b doit être de type datetime.
 
rustein:

Merci, donc j'ai changé ErrNum en ErrNumber et c'est tout ? L'avertissement a disparu, tout va fonctionner correctement ?


string ErrorDescription(int ErrNumber)
{
  switch (ErrNumber)
  {
Vous pouvez voir que vous êtes "dans le réservoir"... :)))
 
comment dessiner une ligne horizontale entre deux points et une ligne verticale ? ..... Je vous dis que j'ai besoin d'un rectangle à dessiner à un prix et un intervalle de temps donnés
 

Aidez-moi à trouver une erreur... Les noms des fonctions disent qu'il devrait faire...

extern double LOT         = 0.1;
extern int Magic          = 77;
extern double MartinStep  = 1.5;


double GetLastOrderProfit()
{
  int time = 0; double profit = 0; 
  for(int i = OrdersHistoryTotal()-1; i>=0; i--)
  {
    if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
    {
      if(OrderSymbol() == Symbol()&& OrderMagicNumber() == Magic)
      {
        if(time<OrderCloseTime())
        {
          time=OrderCloseTime();
          profit=OrderProfit();
        }
      }
    }
  }
  return(profit);
}

//+------------------------------------------------------------------+
double GetLastLot()
{
  int time = 0; double Lot = 0; 
  for(int i = OrdersHistoryTotal()-1;i>=0;i--)
  {
    if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
    {
      if(OrderSymbol() == Symbol()&& OrderMagicNumber() == Magic)
      {
        if(time<OrderCloseTime())
        time=OrderCloseTime();
        Lot = OrderLots(); 
      }
    }
  }

  if(Lot <= 0) Lot = LOT;

  return(Lot);
}

//+------------------------------------------------------------------+
double GetLastTenOrdersProfit()
{
  double profit = 0; int count = 0; 
  for(int i = OrdersHistoryTotal()-1;i>=0;i--)
  {
    if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
    {
      if(OrderSymbol() == Symbol()&& OrderMagicNumber() == Magic)
      {
        if (count<10)
        {
          profit=profit+OrderProfit();
          count++;
        } 
      }
    }
  }

  return(profit);
}
//+------------------------------------------------------------------+
double GetLot()
{
  double Lot = 0; double n = GetLastLot();
  
  if (GetLastTenOrdersProfit() < 0 || GetLastOrderProfit() < 0)
  Lot = NormalizeDouble (n * MartinStep,2);
  
  if (GetLastTenOrdersProfit() >= 0 && GetLastOrderProfit() >= 0 )
  Lot = LOT;
  
  return (Lot);
}

 

Pourquoi ne puis-je pas afficher un commentaire de l'EA ? Je ne vois rien du tout.

void OnTick()
{
//---
Comment
("\n ",TimeToStr(Time[1])) ;
}

 
Alexandr24:

Pourquoi ne puis-je pas afficher un commentaire de l'EA ? Je ne vois rien du tout.

void OnTick()
{
//---
Commentaire
("\n ",TimeToStr(Time[1]) ;
}


Dans le testeur ou sur le graphique ?
 
Il apparaît dans le testeur, mais est vide sur le graphique, je suppose que c'est parce que c'est le week-end, mais c'est bizarre.
 
Exactement, un jour de repos, pas de tics, rien d'étrange.
 
Alexandr24:

Pourquoi ne puis-je pas afficher le commentaire dans l'EA ? Rien n'est affiché du tout.

void OnTick()
{
//---
Commentaire
("\n ",TimeToStr(Time[1]) ;
}


Je fais tout sortir, mais je n'utilise pas de fonctions, j'utilise une seule boucle au départ, dans laquelle tout est défini et calculé.

Dans lecommentaire, tout passe par DoubleToStr() ! Et les fonctions ralentissent inutilement !

Raison: