forked from nique_372/GrapichsByLeo
66 lines
4.4 KiB
MQL5
66 lines
4.4 KiB
MQL5
//+------------------------------------------------------------------+
|
|
//| NormalDistribution.mq5 |
|
|
//| Copyright 2025, Test Example |
|
|
//+------------------------------------------------------------------+
|
|
#property copyright "Copyright 2025, Test Example"
|
|
#property strict
|
|
|
|
#include "..\\Histogram\\Main.mqh"
|
|
|
|
// https://forge.mql5.io/amrali/Xoshiro256
|
|
#include "..\\..\\Xoshiro256\\Xoshiro256.mqh"
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| Script program start function |
|
|
//+------------------------------------------------------------------+
|
|
void OnStart()
|
|
{
|
|
//---
|
|
#define DATA_SIZE 5000
|
|
#define BINS 30
|
|
|
|
//--- Crear histograma
|
|
CHistogramVertical histograma;
|
|
histograma.Initialize(800, 600, "HistogramaNormal", 0, 0, ColorToARGB(clrWhite));
|
|
histograma.CreateBitmapLabel(50, 50, COLOR_FORMAT_ARGB_RAW);
|
|
|
|
//--- Título y copyright
|
|
histograma.TituloDefault(StringFormat("Distribucion Normal - %d Barras", BINS));
|
|
histograma.CreateCopyrightDefault("Test");
|
|
|
|
//--- Generar datos
|
|
Xoshiro256 random;
|
|
double datos_normales[DATA_SIZE];
|
|
for(int i = 0; i < DATA_SIZE; i++)
|
|
{
|
|
datos_normales[i] = random.RandomNormal();
|
|
}
|
|
|
|
//--- Crear UN SOLO conjunto con bins automáticos
|
|
uint clr_barras = ColorToARGB(clrSteelBlue);
|
|
histograma.AddConjuntoBarWithBinsDeft("Normal", datos_normales, BINS, clr_barras);
|
|
|
|
//--- Inicializar lienzo (sin corte)
|
|
int x1 = 70;
|
|
int y1 = 50;
|
|
int x2 = 700;
|
|
int y2 = 500;
|
|
histograma.InitLienzoBarras(x1, y1, x2, y2, 10, 10, 3);
|
|
|
|
//--- Ejes (cambian para vertical)
|
|
histograma.CreateEjeLine(HIST_LINE_MODE_ABAJO, ColorToARGB(clrBlack), ColorToARGB(clrBlack), 5, 10, 5, 0, 10, "Arial");
|
|
histograma.EjeLineGetPointer().HistogramLinePointerGet().CreateTitulo("Frecuencia", ColorToARGB(clrBlack), 25, 12, "Arial");
|
|
|
|
//--- Redibujar
|
|
histograma.Redraw();
|
|
|
|
//--- Guardar imagen
|
|
histograma.SavePicture("distribucion_normal_vertical.png", true);
|
|
|
|
//--- Esperar
|
|
while(!IsStopped())
|
|
{
|
|
Sleep(1000);
|
|
}
|
|
}
|
|
//+------------------------------------------------------------------+
|