| //+------------------------------------------------------------------+
|
| //| 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 <Canvas\Charts\LineChart.mqh>
|
| //+------------------------------------------------------------------+
|
| //| 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);
|
| }
|
| //+------------------------------------------------------------------+
|