MQLArticles/Utils/Objects/Native/Base.mqh
2026-10-21 22:39:41 -05:00

252 lines
20 KiB
MQL5

//+------------------------------------------------------------------+
//| Base.mqh |
//| Copyright 2026, Niquel Mendoza. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2026, Niquel Mendoza."
#property link "https://www.mql5.com"
#property strict
#ifndef MQLARTICLES_UTILS_OBJECTS_NATIVE_BASE_MQH
#define MQLARTICLES_UTILS_OBJECTS_NATIVE_BASE_MQH
//+------------------------------------------------------------------+
//| Include |
//+------------------------------------------------------------------+
#include "..\\Base\\Commons.mqh"
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
namespace TSN
{
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
class CNativeoGObjs
{
public:
CNativeoGObjs(void) {}
~CNativeoGObjs(void) {}
//--- Wrappers: ObjectCreate + ObjectSet* (implementacion en Imp.mqh)
static bool VLineCreate(const long chart_ID, // ID del gráfico
const string& name, // nombre de la línea
const int sub_window, // índice de subventana
datetime time, // hora de la línea
const color clr, // color de la línea
const ENUM_LINE_STYLE style, // estilo de la línea
const int width, // grosor de la línea
const bool back, // al fondo
const bool selection, // seleccionar para mover
const bool ray,
const string& tooltip, // continuación de la línea abajo
const long z_order = 0); // prioridad para el clic del ratón
static bool TrendCreate(long chart_ID, // ID del gráfico
const string& name, // Nombre de la línea
int sub_window, // índice de subventana
datetime time1, // hora del primer punto
double price1, // precio del primer punto
datetime time2, // hora del segundo punto
double price2, // precio del segundo punto
color clr, // color de la línea
ENUM_LINE_STYLE style, // estilo de la línea
int width, // grosor de la línea
bool back, // al fondo
bool selection, // seleccionar para mover
const string& tooltip
);
static bool TrendaAngleCreate(long chart_ID, // ID del gráfico
const string& name, // Nombre de la línea
int sub_window, // índice de subventana
datetime time1, // hora del primer punto
double price1, // precio del primer punto
datetime time2, // hora del segundo punto
double price2, // precio del segundo punto
color clr, // color de la línea
ENUM_LINE_STYLE style, // estilo de la línea
int width, // grosor de la línea
bool back, // al fondo
bool selection, // seleccionar para mover
const string& tooltip
);
static bool TextCreate(long chart_ID, // ID del gráfico
const string& name, // nombre del objeto
int sub_window, // número de subventana
datetime time, // hora del punto de anclaje
double price, // precio del punto de anclaje
const string& text, // el texto
const string& font, // fuente
int font_size, // tamaño de la fuente
color clr, // color
double angle, // inclinación del texto
ENUM_ANCHOR_POINT anchor, // modo de anclaje
bool back = false, // al fondo
bool selection = false); // seleccionar para mover
static bool ArrowCreate(const long chart_ID, // ID del gráfico
const string& name, // nombre de la flecha
const int sub_window, // número de subventana
datetime time, // hora del punto de anclaje
double price, // precio del punto de anclaje
const uchar arrow_code, // código de la flecha
const ENUM_ARROW_ANCHOR anchor, // posición del punto de anclaje
const color clr, // color de la flecha
const ENUM_LINE_STYLE style, // estilo de la línea del contorno
const int width, // tamaño de la flecha
const bool back = true, // al fondo
const bool selection = false, // seleccionar para mover
const long z_order = 0); // prioridad para el clic del ratón
static bool EditCreate(const long chart_ID, // ID del gráfico
const string& name, // nombre del objeto
const int sub_window, // número de subventana
const int x, // coordenada por el eje X
const int y, // coordenada por el eje Y
const int width, // ancho
const int height, // alto
const string& text, // texto
const string& font, // fuente
const int font_size, // tamaño de la fuente
const ENUM_ALIGN_MODE align, // modo de alineación
const bool read_only, // posibilidad de edición
const ENUM_BASE_CORNER corner, // esquina del gráfico para el enlace
const color clr, // color del texto
const color back_clr, // color del fondo
const color border_clr, // color del borde
const bool back = false, // al fondo
const bool selection = false, // seleccionar para mover
const bool hidden = true, // ocultar en la lista de objetos
const long z_order = 0); // prioridad para el clic del ratón
static bool ButtonCreate(const long chart_ID, // ID del gráfico
const string& name, // nombre del botón
const int sub_window, // número de subventana
const int x, // coordenada por el eje X
const int y, // coordenada por el eje Y
const int width, // ancho del botón
const int height, // alto del botón
const ENUM_BASE_CORNER corner, // esquina del gráfico para el enlace
const string& text, // texto
const string& font, // fuente
const int font_size, // tamaño de la fuente
const color clr, // color del texto
const color back_clr, // color del fondo
const color border_clr, // color del borde
const bool state = false, // pulsado/no pulsado
const bool back = false, // al fondo
const bool selection = false, // seleccionar para mover
const bool hidden = false, // ocultar en la lista de objetos
const long z_order = 0); //prioridad para el clic del ratón
static bool RectLabelCreate(const long chart_ID, // ID del gráfico
const string& name, // nombre de la etiqueta
const int sub_window, // número de subventana
const int x, // coordenada por el eje X
const int y, // coordenada por el eje Y
const int width, // ancho
const int height, // alto
const color back_clr, // color del fondo
const ENUM_BORDER_TYPE border, // tipo del borde
const ENUM_BASE_CORNER corner, // esquina del gráfico para el enlace
const color clr, // color del contorno plano (Flat)
const ENUM_LINE_STYLE style, // estilo del contorno plano
const int line_width, // grosor del contorno plano
const bool back = false, // al fondo
const bool selection = false, // seleccionar para mover
const bool hidden = true, // ocultar en la lista de objetos
const long z_order = 0); // prioridad para el clic del ratón
static bool ArrowRightPriceCreate(const long chart_ID, // ID del gráfico
const string& name, // nombre de la etiqueta de precio
const int sub_window, // número de subventana
datetime time, // hora del punto de anclaje
double price, // precio del punto de anclaje
const color clr, // color de la etiqueta de precio
const ENUM_LINE_STYLE style, // estilo de la línea del contorno
const int width, // tamaño de la etiqueta de precio
const bool back, // al fondo
const bool selection, // seleccionar para mover
const bool hidden, // ocultar en la lista de objetos
const long z_order); // prioridad para el clic del ratón
static bool EventCreate(const long chart_ID, // ID del gráfico
const string& name, // nombre del evento
const int sub_window, // número de subventana
const string& text, // texto del evento
datetime time, // hora
const color clr, // color
const int width, // grosor del punto durante la selección
const bool back, // al fondo
const string& tooltip,
const bool selection = false, // seleccionar para mover
const long z_order = 0); // prioridad para el clic del ratón
static bool RectangleCreate(long chart_ID,
const string& name,
const int sub_window,
datetime time1,
double price1,
datetime time2,
double price2,
color clr,
int width,
bool fill,
bool back,
bool select,
ENUM_LINE_STYLE style,
const string& tooltip
);
static bool FiboLevelsCreate(const long chart_ID, // ID del gráfico
const string& name, // nombre del objeto
const int sub_window = 0, // número de subventana
datetime time1 = 0, // hora del primer punto
double price1 = 0, // precio del primer punto
datetime time2 = 0, // hora del segundo punto
double price2 = 0, // precio del segundo punto
const color clr = clrRed, // color del objeto
const ENUM_LINE_STYLE style = STYLE_SOLID, // estilo de las líneas del objeto
const int width = 1, // grosor de las líneas del objeto
const bool back = false, // al fondo
const bool selection = true, // seleccionar para mover
const bool ray_left = false, // continuación del objeto a la izquierda
const bool ray_right = false, // continuación del objeto a la derecha
const long z_order = 0);
static bool FiboLevelsSet(int levels, // número de las líneas del nivel
double &values[], // valores de las líneas del nivel
color &colors[], // color de las líneas del nivel
ENUM_LINE_STYLE &styles[], // estilo de las líneas del nivel
int &widths[], // grosor de las líneas del nivel
const long chart_ID, // ID del gráfico
const string& name); // nombre del objeto
static bool ChannelCreate(const long chart_ID, // ID del gráfico
const string& name, // nombre del canal
const int sub_window, // número de subventana
datetime time1, // hora del primer punto
double price1, // precio del primer punto
datetime time2, // hora del segundo punto
double price2, // precio del segundo punto
datetime time3, // hora del tercer punto
double price3, // precio del tercer punto
const color clr, // color del canal
const ENUM_LINE_STYLE style, // estilo de las líneas del canal
const int width, // grosor de las líneas del canal
const bool fill, // relleno del canal con el color
const bool back, // al fondo
const bool selection, // seleccionar para mover
const string& tooltip
);
};
//---
}
#include "Imp.mqh"
#endif // MQLARTICLES_UTILS_OBJECTS_NATIVE_BASE_MQH
//+------------------------------------------------------------------+