Not able to replace accurate rates

 

Вот образ пользовательского символа, который я пытаюсь создать:

Поскольку вы можете видеть, что ближайшие значения не являются значениями в разделе DATA на MT5.

Для этого я пытаюсь использовать следующий код:

ticks_array [ 0 ] .time = StructToTime (running); 
      ticks_array [ 0 ] .bid = StringToDouble (s [ 7 ]); 
      ticks_array [ 0 ] .ask = StringToDouble (s [ 8 ]); 
      ticks_array [ 0 ] .last = StringToDouble (s [ 5 ]); 
      ticks_array [ 0 ] .flags = TICK_FLAG_LAST ; 
      
      ticks_array [Should_change] .time_msc = 0 ; 
      CustomTicksAdd (symbol_custom, ticks_array); 
      
      rates_add [ 0] .time = Time_For_Rates; 
      rates_add [ 0 ] .open = StringToDouble (s [ 2 ]); 
      rates_add [ 0 ] .high = StringToDouble (s [ 3 ]); 
      rates_add [ 0 ] .low = StringToDouble (s [ 4 ]); 
      rates_add [ 0 ] .close = StringToDouble (s [ 5 ]); 
      rates_add [ 0 ] .spread = ( int ) (( StringToDouble (s [ 8 ]) - StringToDouble (s [ 7 ])) * 10000); 
      rates_add [ 0 ] .tick_volume = StringToInteger (s [ 6 ]) - 1 ; 
      rates_add [ 0 ] .real_volume = 0 ;      
      Print ( CustomRatesReplace (symbol_custom, Time_For_Rates, Time_For_Rates, rates_add));

Пожалуйста, дайте понять, почему это происходит и как я могу его решить.

 
Вот конфигурация прикрепленного символа.
Файлы: