Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 496

 
artmedia70:
Non c'è di che.

Non essere modesto, sei il benvenuto, mi hai fatto risparmiare un sacco di tempo...
Vi auguro tutto il meglio e buona fortuna.
 
artmedia70:
E chiedere int b


perché int? Secondo il manuale, ObjectGet dovrebbe essere di tipo double, e nella funzione iBarShift b dovrebbe essere di tipo datetime
 
rustein:

Grazie, quindi ha cambiato ErrNum in ErrNumber ed è tutto? L'avvertimento è sparito, tutto funzionerà correttamente?


string ErrorDescription(int ErrNumber)
{
  switch (ErrNumber)
  {
Si vede che sei "nel serbatoio"... :)))
 
come faccio a disegnare una linea orizzontale tra due punti e una linea verticale? ..... ti sto dicendo che ho bisogno di un rettangolo da disegnare a un dato prezzo e intervallo di tempo
 

Aiutami a trovare un errore... I nomi delle funzioni dicono che dovrebbe fare...

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

 

Perché non posso visualizzare un commento dell'EA? Non riesco a vedere niente di niente.

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

 
Alexandr24:

Perché non posso visualizzare un commento dell'EA? Non riesco a vedere niente di niente.

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


Nel tester o sul grafico?
 
Nel tester appare ma il grafico è vuoto, sospetto che sia perché è spento, ma è strano.
 
Esattamente, un giorno di riposo, nessuna zecca, niente di strano.
 
Alexandr24:

Perché non posso visualizzare il commento nell'EA? Non viene visualizzato nulla.

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


Emetto tutto, ma non uso funzioni, uso un unico ciclo all'inizio, in cui tutto è definito e calcolato.

Nelcommento, tutto tramite DoubleToStr()! E le funzioni rallentano inutilmente!