Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 496

 
artmedia70:
Не за что.

Не скромничаете, есть за что, сэкономили мне кучу времени...
Желаю Вам всех благ и удачи.
 
artmedia70:
А задайте int b


почему int ? ObjectGet судя по справочнику должен иметь тип double, а в функции iBarShift b должно иметь тип datetime
 
rustein:

Спасибо, то есть поменял ErrNum на ErrNumber и все? Предупреждение исчезло, все будет работать правильно?


string ErrorDescription(int ErrNumber)
{
  switch (ErrNumber)
  {
видно, что "в танке"... :)))
 
как нарисовать горизонтальную линию между двумя точками и вертикальную?.....проще говорю нужно прямоугольник чтобы рисовало по заданым ценам и промежутке времени
 

Помогите найти ошибку.. Названия функций говорят, то она должна делать..

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

 

Почему из советника не могу вывести камент на экран? Вообще ничего не выводится.

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

 
Alexandr24:

Почему из советника не могу вывести камент на экран? Вообще ничего не выводится.

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


В тестере или на графике?
 
В тестере выводится, но на графике пусто, есть подозрение потому что выходной, но странно это.
 
именно, выходной, тиков нет, ничего странного.
 
Alexandr24:

Почему из советника не могу вывести камент на экран? Вообще ничего не выводится.

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


У меня всё выводится, но пользуюсь не функциями, а одним циклом в старте, в котором всё определяется и вычисляется.

В комменте, всё через DoubleToStr()! А функции тормозят излишне!