Вот код, который я использую для обновления истории пользовательского символа.
void HistoryLoading()
{
EventKillTimer();
MqlRates rates_add[];
ClientSocket*history;
historyd=new ClientSocket(ip_address,port_no);
Print(history.IsSocketConnected());
if(!history.IsSocketConnected())
{
delete history;
history=NULL;
Print("Failed to connect");
Print("No: ",GetLastError());
EventSetMillisecondTimer(1);
return;
}
Comment("Loading History of 3 Days by Default!........");
if(history.Send("history"))
{
string output=history.Receive(),separate_lines[],separate_OHLCV[]; // Received the output of the socket.
//Print(output);
int lines_count=StringSplit(output,'\n',separate_lines);
Print(lines_count);
ArrayResize(rates_add,lines_count);
for(int loop=0; loop<lines_count; loop++)
{
//Print("Filling your history");
int element_separate=StringSplit(separate_lines[loop],',',separate_OHLCV);
//Print(separate_lines[loop]);
rates_add[loop].time=datetime(int(separate_OHLCV[0]));
rates_add[loop].open = double(separate_OHLCV[1]);
rates_add[loop].high = double(separate_OHLCV[2]);
rates_add[loop].low=double(separate_OHLCV[3]);
rates_add[loop].close=double(separate_OHLCV[4]);
rates_add[loop].spread=0;
rates_add[loop].real_volume = 0;
rates_add[loop].tick_volume = long(separate_OHLCV[5]);
Print(rates_add[loop].time," ",rates_add[loop].open," ",rates_add[loop].high," ",rates_add[loop].low," ",rates_add[loop].close," ",rates_add[loop].tick_volume);
}
//ArrayPrint(rates_add);
Print(CustomRatesUpdate(symbol_custom,rates_add));
//Print("History Out");
ArrayFree(rates_add);ArrayFree(separate_OHLCV);ArrayFree(separate_lines);
}
delete history;
SHOULD_I_LOAD_HISTORY=0;
EventSetMillisecondTimer(1);
return;
}
Ниже приведено изображение диаграммы:
Я использую текущую версию MT5:
Можно видеть значения, которые я получаю, но не обновляюсь на графике.
Пожалуйста, помогите мне и дайте мне знать, что мне не хватает.