117 lines
		
	
	
	
		
			9.2 KiB
		
	
	
	
		
			MQL5
		
	
	
	
	
	
			
		
		
	
	
			117 lines
		
	
	
	
		
			9.2 KiB
		
	
	
	
		
			MQL5
		
	
	
	
	
	
//+------------------------------------------------------------------+
 | 
						|
//|                                                         Test.mq5 |
 | 
						|
//|                                  Copyright 2025, Niquel Mendoza. |
 | 
						|
//|                     https://www.mql5.com/es/users/nique_372/news |
 | 
						|
//+------------------------------------------------------------------+
 | 
						|
#property copyright "Copyright 2025, Niquel Mendoza."
 | 
						|
#property link      "https://www.mql5.com/es/users/nique_372/news"
 | 
						|
#property version   "1.00"
 | 
						|
#property strict
 | 
						|
 | 
						|
#include "..\\Histogram\\Main.mqh"
 | 
						|
 | 
						|
//+------------------------------------------------------------------+
 | 
						|
//| Script program start function                                    |
 | 
						|
//+------------------------------------------------------------------+
 | 
						|
void OnStart()
 | 
						|
 {
 | 
						|
//---
 | 
						|
  CHistogramHorizontal his_horizontal;
 | 
						|
  his_horizontal.Initialize(600, 500, "HistogramaLabel", 0, 0, ColorToARGB(clrWhite));
 | 
						|
  his_horizontal.CreateBitmapLabel(100, 0, COLOR_FORMAT_ARGB_RAW);
 | 
						|
 | 
						|
//---
 | 
						|
  int width_parte_inf = 100;
 | 
						|
 | 
						|
//---
 | 
						|
  uint clr_p1 = 0xFF87ACCB;
 | 
						|
  uint clr_p2 = 0xFFC2A0AA;
 | 
						|
  uint clr_p3 = 0xFFD2A06A;
 | 
						|
  uint clr_black = ColorToARGB(clrBlack);
 | 
						|
 | 
						|
//--- Paso 1 titulo
 | 
						|
  int xgap = 20;
 | 
						|
  int ygap = 30;
 | 
						|
 | 
						|
  his_horizontal.TituloDefault("Test titulo");
 | 
						|
  CHistogramTitulo* titulo_ptr = his_horizontal.TituloGetPointer();
 | 
						|
// titulo_ptr.Text("Texto nuevo");
 | 
						|
 | 
						|
//--- Paso 1.5 Copyright (Opcional)
 | 
						|
  his_horizontal.CreateCopyrightDefault("Leo");
 | 
						|
 | 
						|
//--- Paso 2: Agregar conjunto de barras
 | 
						|
  his_horizontal.AddConjuntoBar("Grupo 1", 8, "Arial", HISTOGRAM_TEXT_MODE_CENTER, 3, 10, HIST_DRAW_RECT_FILL, 0.20);
 | 
						|
  his_horizontal.AddBarToConjuntoBarFast(10.0, clr_p1);
 | 
						|
  his_horizontal.AddBarToConjuntoBarFast(12.0, clr_p2);
 | 
						|
  his_horizontal.AddBarToConjuntoBarFast(15.0, clr_p3);
 | 
						|
 | 
						|
  his_horizontal.AddConjuntoBar("Grupo 2", 8, "Arial", HISTOGRAM_TEXT_MODE_CENTER, 3, 10, HIST_DRAW_RECT_FILL, 0.20);
 | 
						|
  his_horizontal.AddBarToConjuntoBarFast(12.0, clr_p1);
 | 
						|
  his_horizontal.AddBarToConjuntoBarFast(20.0, clr_p2);
 | 
						|
  his_horizontal.AddBarToConjuntoBarFast(25.0, clr_p3);
 | 
						|
 | 
						|
  his_horizontal.AddConjuntoBar("Grupo 3", 8, "Arial", HISTOGRAM_TEXT_MODE_CENTER, 3, 10, HIST_DRAW_RECT_FILL, 0.60);
 | 
						|
  his_horizontal.AddBarToConjuntoBarFast(7.0, clr_p1);
 | 
						|
  his_horizontal.AddBarToConjuntoBarFast(28.0, clr_p2);
 | 
						|
  his_horizontal.AddBarToConjuntoBarFast(22.0, clr_p3);
 | 
						|
 | 
						|
//--- Paso 3 Inicilizaicon
 | 
						|
  int x1 = xgap + 50;
 | 
						|
  int x2 = 600 - 200;
 | 
						|
  int y1 = ygap;
 | 
						|
  int y2 = 500 - ygap - 25;
 | 
						|
 | 
						|
  his_horizontal.InitLienzoBarras(x1, y1, x2, y2, 5, 5, 5, 12.0) ; // No corte
 | 
						|
  //his_horizontal.GetLineCortePtr().Color(ColorToARGB(clrLightSteelBlue));
 | 
						|
 | 
						|
//--- Paso 4 Parte informativa  (Opcional)
 | 
						|
  his_horizontal.CreatePartInformativa(HISTOGRAM_PARTE_INF_DERECHA, 10, 10);
 | 
						|
  CHistogramParteInfo* info = his_horizontal.GetPartInfPointer();
 | 
						|
 | 
						|
  if(CheckPointer(info) == POINTER_DYNAMIC)
 | 
						|
   {
 | 
						|
    info.AddText("LEYENDA", clr_black, 20, 0, "Arial", 10, false);
 | 
						|
    info.AddLegend("P1", clr_black, 0xFF87ACCB, clr_black,
 | 
						|
                   5, 15, 15, 20, 0, "Arial", 8, false);
 | 
						|
    info.AddLegend("P2", clr_black, 0xFFD2A06A, clr_black,
 | 
						|
                   5, 15, 15, 20, 0, "Arial", 8, false);
 | 
						|
    info.AddLegend("P3", clr_black, 0xFFB8956A, clr_black,
 | 
						|
                   5, 15, 15, 20, 0, "Arial", 8, false);
 | 
						|
    info.AddText("Prueba para la aprte informativa", clr_black, 10, 0);
 | 
						|
   }
 | 
						|
 | 
						|
//--- Paso 5 Ejes (Opcional)
 | 
						|
  his_horizontal.CreateEjeLine(HIST_LINE_MODE_IZQUIERDA, clr_black, clr_black, 4, 5, 5, 2, 10, "Arial"); // Creamos el eje line
 | 
						|
  his_horizontal.EjeLineGetPointer().HistogramLinePointerGet().CreateTitulo("Prueba de valores", clr_black, 25, 12, "Arial"); // Creamos el titulo de las secciones
 | 
						|
  his_horizontal.EjeLineGetPointer().CreateTituloEje2(25, "Grupos", clr_black, 13, "Arial");
 | 
						|
 | 
						|
//---
 | 
						|
  his_horizontal.Redraw();
 | 
						|
  Sleep(5000);
 | 
						|
 | 
						|
//--
 | 
						|
  int c = 0;
 | 
						|
  MathSrand(GetTickCount());
 | 
						|
  CColorGeneratorArgb* ptr_gen = his_horizontal.GetColorGeneratorPointer();
 | 
						|
 | 
						|
  while(c++ < 30)
 | 
						|
   {
 | 
						|
    int rand_index = rand() % 3;
 | 
						|
    his_horizontal.ReadIndex(rand_index);
 | 
						|
    int rnad_index_conjunto = rand() % his_horizontal.SizeBarsOfConjunto();
 | 
						|
    his_horizontal.BarColor(rnad_index_conjunto, ptr_gen.Next(), false);
 | 
						|
    double nuevo_valor = 5.0 + (MathRand() % 300) / 10.0;  // Rango: 5.0 - 35.0
 | 
						|
    his_horizontal.BarValue(rnad_index_conjunto, nuevo_valor, false);
 | 
						|
    his_horizontal.Redraw();
 | 
						|
    Sleep(500);
 | 
						|
   }
 | 
						|
 | 
						|
//---
 | 
						|
  his_horizontal.SavePicture("histogram_1.png", true);
 | 
						|
  while(!IsStopped())
 | 
						|
   {
 | 
						|
    Sleep(2000);
 | 
						|
   }
 | 
						|
 }
 | 
						|
//+------------------------------------------------------------------+
 |