Помогите найти баг

 
В коде отсюда https://www.mql5.com/ru/code/8716 почему-то цена Bid не равна Close[0] и индикатор в тестере не работает при Ticks[0] = Bid;.
Почему??
Также не работает функция Alert() для пятизнака. Билд последний.

//============================================================
//      (c) 2009 DolSergon (dolsergon@yandex.ru/icq(qip)-366382375)
//============================================================
#property  copyright "(c) 2009 DolSergon"
#property  link      "http://tradecoder.narod.ru"

#property  indicator_chart_window
#property  indicator_buffers 1
#property  indicator_color1  Orange
//----------------------------------------------
int TicksCount = 50;
double BufTicks[],Ticks[];
//==============================================
int init(){
   SetIndexBuffer(0, BufTicks); 
   SetIndexStyle(0, DRAW_LINE,STYLE_SOLID,1);
   ArrayResize(Ticks, TicksCount); 
   ArrayInitialize(Ticks, EMPTY_VALUE);
   return(0);
}
//==============================================
void start(){
   for (int t = TicksCount; t >= 1; t--)
   {
     Ticks[t] = Ticks[t-1];
     BufTicks[t] = Ticks[t];
   }

   Ticks[0] = Bid; // doesn't work !!!
// Ticks[0] = Close[0];
   if(Bid != Close[0]) Alert("Error");
//   Alert(NormalizeDouble(Ticks[0],Digits));// Works only 4-digits(Digits = 5);
   BufTicks[0] = Ticks[0];
   return(0);
}
//==============================================
 
алерт не работает в тестере
юзайте принт
 
alsu >>:
алерт не работает в тестере
юзайте принт


Алерт прекрасно в тестере работает, только им и пользуюсь ;)
 
alsu >>:
алерт не работает в тестере
юзайте принт
Как раз таки принт и не работает, но это возможно так как идет речь о индикаторе.
Ну а с ценой выходит што это баг МТ4?
 

Вроде как понял в чём тут фишка.

При прицепке и инициализации индюка в тестере он не видит начальное время и цену в тестере и цепляет текущие значения.

Поэтому в тестере пользоваться значениями TimeCurrent() и Bid нельзя, а только Time[0] и Close[0].

Коряво конешно, но всё же выход. :)

 
Andrei01 писал(а) >>

Вроде как понял в чём тут фишка.

При прицепке и инициализации индюка в тестере он не видит начальное время и цену в тестере и цепляет текущие значения.

Поэтому в тестере пользоваться значениями TimeCurrent() и Bid нельзя, а только Time[0] и Close[0].

Коряво конешно, но всё же выход. :)



А TimeCurrent() где провинилась? Что-то не догоняю....

 
lasso >>:


А TimeCurrent() где провинилась? Что-то не догоняю....

Ну дык запустите этот код и посмотрите што она показывает.
 
И принты и алерт в тестере работают. Просто в случае использования алерта в тестере, окно сообщений не выскакивает, а всё, что несёт в себе алерт, пишется в журнал. И ещё, индикаторы пишут свои принты не втот журнал, в который их пишет советник. Даже если это работа в тестере. Чтоб увидеть принты индикатора нужно нажать в терминале кнопку "Терминал" (6-я слева) и посмотреть ЭТИ журналы.
 
Andrei01 писал(а) >>
Ну дык запустите этот код и посмотрите што она показывает.


Так и сделал. В новый индикатор, вставил код из топика.
И где она и что должна показывать?
(Она это кто? Кстати)
Индюк не отрисовывает. Фиг с ним. Это из сабжа понятно.
.......
А TimeCurrent() где провинилась? Что-то опять не догоняю....
 
lasso >>:


Так и сделал. В новый индикатор, вставил код из топика.
И где она и что должна показывать?
(Она это кто? Кстати)
Индюк не отрисовывает. Фиг с ним. Это из сабжа понятно.
.......
А TimeCurrent() где провинилась? Что-то опять не догоняю....

Если поменяете Bid на Close[0], то будет рисовать ибо Bid подцепляет цены на данный момент.

Если выведите алертом значение TimeCurrent() или любого другого времени, например день, месяц через Alert(Day()); Alert(Month()), то увидите что индюк цепляет текущее время, а не время в тестере.

 

Блин объясните а откуда у вас в тестере тики возьмутся
кто их даст, их генерит сам тестер хайлоу на обобум

Так же на истории тики никто не придумает
на реальном графике есть отрисовка!

или вы не о том ?

Причина обращения: