MetaTrader 5 herunterladen

CHistogramChart

Klasse für das Zeichnen von Histogrammen.

Beschreibung

In dieser Klasse sind alle Methoden für das Zeichnen von Balkenhistogrammen implementiert. Sie setzen die Breite der Balken und stellen das Arbeiten mit Datenreihen ein. Es sind die Methoden für das Arbeiten mit der graduellen Füllung von Balken des Histogramms einbezogen.

ccanvas_histogramchart

Der Code des oben angeführten Bildes ist unten dargestellt.

Deklaration

   class CHistogramChart : public CChartCanvas

Überschrift

   #include <Canvas\Charts\HistogramChart.mqh>

Vererbungshierarchie

  CCanvas

      CChartCanvas

          CHistogramChart

Methoden der Klasse

Methode

Aktion

Gradient

Setzt das Flag, das angibt, ob die graduelle Füllung für die Balken des Histogramms angewandt wird.

BarGap

Setzt den Wert des Abstands des Histogramms bis zum Koordinatenursprung.

BarMinSize

Setzt die minimale Breite der Balken des Histogramms.

BarBorder

Setzt das Flag, das auf die Notwendigkeit hinweist, Grenzen für jeden Balken zu zeichnen.

Create

Virtuelle Methode, die eine grafische Ressource erstellt.                                      

SeriesAdd

Fügt eine neue Datenreihe hinzu.

SeriesInsert

Fügt eine Datenreihe auf den Chart ein.

SeriesUpdate

Aktualisiert die Datenreihe auf dem Chart.

SeriesDelete

Löscht eine Datenreihe vom Chart.

ValueUpdate

Aktualisiert den Wert des Elements in der angegebenen Reihe.

DrawData

Virtuelle Methode, die ein Histogramm für die angegebene Reihe zeichnet.

DrawBar

Zeichnet den Balken des Histogramms als ein mit Farbe gefülltes Rechteck.

GradientBrush

Erstellt einen Pinsel für graduelle Füllung.                                    

Methoden geerbt von der Klasse CCanvas

CreateBitmap, CreateBitmap, CreateBitmapLabel, CreateBitmapLabel, Attach, Attach, Destroy, ChartObjectName, ResourceName, Width, Height, Update, Resize, Erase, PixelGet, PixelSet, LineVertical, LineHorizontal, Line, Polyline, Polygon, Rectangle, Triangle, Circle, Ellipse, Arc, Arc, Arc, Pie, Pie, FillRectangle, FillTriangle, FillPolygon, FillCircle, FillEllipse, Fill, Fill, PixelSetAA, LineAA, PolylineAA, PolygonAA, TriangleAA, CircleAA, EllipseAA, LineWu, PolylineWu, PolygonWu, TriangleWu, CircleWu, EllipseWu, LineThickVertical, LineThickHorizontal, LineThick, PolylineThick, PolygonThick, PolylineSmooth, PolygonSmooth, FontSet, FontNameSet, FontSizeSet, FontFlagsSet, FontAngleSet, FontGet, FontNameGet, FontSizeGet, FontFlagsGet, FontAngleGet, TextOut, TextWidth, TextHeight, TextSize, GetDefaultColor, TransparentLevelSet, LoadFromFile, LineStyleGet, LineStyleSet

Methoden geerbt von der Klasse CChartCanvas

ColorBackground, ColorBackground, ColorBorder, ColorBorder, ColorText, ColorText, ColorGrid, ColorGrid, MaxData, MaxData, MaxDescrLen, MaxDescrLen, AllowedShowFlags, ShowFlags, ShowFlags, IsShowLegend, IsShowScaleLeft, IsShowScaleRight, IsShowScaleTop, IsShowScaleBottom, IsShowGrid, IsShowDescriptors, IsShowPercent, ShowLegend, ShowScaleLeft, ShowScaleRight, ShowScaleTop, ShowScaleBottom, ShowGrid, ShowDescriptors, ShowValue, ShowPercent, LegendAlignment, Accumulative, VScaleMin, VScaleMin, VScaleMax, VScaleMax, NumGrid, NumGrid, VScaleParams, DataOffset, DataOffset, DataTotal, DescriptorUpdate, ColorUpdate

Beispiel

//+------------------------------------------------------------------+
//|                                         HistogramChartSample.mq5 |
//|                   Copyright 2009-2017, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright   "2009-2017, MetaQuotes Software Corp."
#property link        "http://www.mql5.com"
#property description "Example of using histogram"
//---
#include <Canvas\Charts\HistogramChart.mqh>
//+------------------------------------------------------------------+
//| inputs                                                           |
//+------------------------------------------------------------------+
input bool Accumulative=true;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
int OnStart(void)
  {
   int k=100;
   double arr[10];
//--- create chart
   CHistogramChart chart;
   if(!chart.CreateBitmapLabel("SampleHistogramChart",10,10,600,450))
     {
      Print("Error creating histogram chart: ",GetLastError());
      return(-1);
     }
   if(Accumulative)
     {
      chart.Accumulative();
      chart.VScaleParams(20*k*10,-10*k*10,20);
     }
   else
      chart.VScaleParams(20*k,-10*k,20);
   chart.ShowValue(true);
   chart.ShowScaleTop(false);
   chart.ShowScaleBottom(false);
   chart.ShowScaleRight(false);
   chart.ShowLegend();
   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);
  }