Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 496

 
artmedia70:
Bitte sehr.

Seien Sie nicht bescheiden, gern geschehen, Sie haben mir viel Zeit erspart...
Ich wünsche Ihnen alles Gute und viel Glück.
 
artmedia70:
Und fragen Sie int b


warum int? Laut Handbuch sollte ObjectGet vom Typ double sein , und in der Funktion iBarShift sollte b vom Typ datetime sein
 
rustein:

Danke, also ErrNum in ErrNumber geändert und das war's? Die Warnung ist verschwunden, alles funktioniert richtig?


string ErrorDescription(int ErrNumber)
{
  switch (ErrNumber)
  {
Sie können sehen, dass Sie "im Tank" sind... :)))
 
Wie zeichne ich eine horizontale Linie zwischen zwei Punkten und eine vertikale Linie? ..... Ich sage Ihnen, dass ich ein Rechteck zu einem bestimmten Preis und in einem bestimmten Zeitintervall zeichnen muss.
 

Helfen Sie mir, einen Fehler zu finden... Die Namen der Funktionen besagen, dass sie Folgendes tun sollten...

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);
}

 

Warum kann ich einen Kommentar aus dem EA nicht anzeigen lassen? Ich kann überhaupt nichts sehen.

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

 
Alexandr24:

Warum kann ich einen Kommentar aus dem EA nicht anzeigen lassen? Ich kann überhaupt nichts sehen.

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


Im Prüfgerät oder auf dem Diagramm?
 
Im Tester wird es angezeigt, aber in der Tabelle ist es leer. Ich vermute, weil Wochenende ist, aber es ist schon seltsam.
 
Genau, ein freier Tag, keine Zecken, nichts Seltsames.
 
Alexandr24:

Warum kann ich den Kommentar im EA nicht anzeigen lassen? Es wird überhaupt nichts angezeigt.

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


Ich gebe alles aus, aber ich verwende keine Funktionen, sondern eine einzige Schleife am Anfang, in der alles definiert und berechnet wird.

ImKommentar, alles über DoubleToStr()! Und die Funktionen verlangsamen sich unnötig!