//+------------------------------------------------------------------+ //| LineChartSample.mq5 | //| Copyright 2000-2025, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2000-2025, MetaQuotes Ltd." #property link "https://www.mql5.com" #property description "Example of using line chart" //--- #include //+------------------------------------------------------------------+ //| inputs | //+------------------------------------------------------------------+ input bool Accumulative=false; //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ int OnStart(void) { int k=100; double arr[10]; //--- create chart CLineChart chart; //--- create chart if(!chart.CreateBitmapLabel("SampleHistogrammChart",10,10,600,450)) { Print("Error creating line chart: ",GetLastError()); return(-1); } if(Accumulative) { chart.Accumulative(); chart.VScaleParams(20*k*10,-10*k*10,20); } else chart.VScaleParams(20*k,-10*k,15); chart.ShowScaleTop(false); chart.ShowScaleRight(false); chart.ShowLegend(); chart.Filled(); for(int j=0;j<5;j++) { for(int i=0;i<10;i++) { k=-k; if(k>0) arr[i]=k*(i+10-j); else arr[i]=k*(i+10-j)/2; } chart.SeriesAdd(arr,"Item"+IntegerToString(j)); } //--- play with values while(!IsStopped()) { int i=rand()%5; int j=rand()%10; k=rand()%3000-1000; chart.ValueUpdate(i,j,k); Sleep(200); } //--- finish chart.Destroy(); return(0); } //+------------------------------------------------------------------+