ICTLibraryEasy/Examples/Readme/Global.mqh

91 lines
7.8 KiB
MQL5
Raw Permalink Normal View History

2026-01-06 16:54:30 -05:00
<EFBFBD><EFBFBD>//+------------------------------------------------------------------+
//| Global.mqh |
//| Copyright 2025, Niquel Mendoza. |
//| https://www.mql5.com/es/users/nique_372 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2025, Niquel Mendoza."
#property link "https://www.mql5.com/es/users/nique_372"
#property strict
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
/*
Hola, este es el achivo Global.mqh, recordemos que aqui ubicaremos todo el codigo que deseamos que se ejecute PRIMERO
2026-02-11 15:37:09 -05:00
ante todo... (Incluso antes de OnInit)..
2026-01-06 16:54:30 -05:00
Para esta ocasion como trabajremos con la libreria ict necesitamos hacer 2 cosas
1. Definir una instancia de CNewBarManager como un define (esto para que las sesiones etc puedan funcionar).
2. Setear el BarMananger que usara la libreria.
*/
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
#ifndef GLOBAL_MQH
#define GLOBAL_MQH
2026-02-11 15:37:09 -05:00
2026-01-06 16:54:30 -05:00
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
2026-02-11 15:37:09 -05:00
//--- Empezaremos incluyendo el BarManager
2026-01-06 16:54:30 -05:00
#include <TSN\\MQLArticles\\Utils\\TFManager.mqh>
//--- Instanciamoos globalmente el bar manager como g_new_bar_manager
CNewBarManager g_new_bar_manager;
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
// Incluiremos todo lo necesario de la libreria ict.. en este ocasion solo los conceptos generales
#include "..\\..\\Src\\ICTConcepts.mqh"
2026-02-11 15:37:09 -05:00
//---
#include <TSN\\MQLArticles\\Utils\\FA\\AutoDelete.mqh>
#include <TSN\\MQLArticles\\RM\\AccountStatus.mqh>
2026-01-06 16:54:30 -05:00
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
// Definamos la clase global esta sera muy simple, como miembro tendra una variable booleana "init"
// Esta guardara true si la clase ya se inicio y false si no lo hizo
// Esta variable es importante para evitar que se pueda inicar dos veces o mas.. cosa que no queremos.
2026-02-11 15:37:09 -05:00
class CGlobalInit
2026-01-06 16:54:30 -05:00
{
private:
static bool init;
public:
//--- Incializacion global
2026-02-11 15:37:09 -05:00
CGlobalInit(void)
2026-01-06 16:54:30 -05:00
{
if(init) // Verificamos que sea FALSE
return;
//--- Seteasmos el bar manager
ICTGen_BarManagerSet(GetPointer(g_new_bar_manager)); // Le damos a la libreira ICT el manager
2026-02-11 15:37:09 -05:00
CBasicEvents::Init();
//---
CAutoCleaner::AddFunction(CAccountStatus_Deinit);
CAutoCleaner::AddFunction(CBasicEvents::Deinit);
CAutoCleaner::AddFunction(ICTGen_OnDeinitEvent);
2026-01-06 16:54:30 -05:00
//--- Marcamos en true
init = true;
}
//--- Deinicializacion global
2026-02-11 15:37:09 -05:00
~CGlobalInit(void) {}
2026-01-06 16:54:30 -05:00
};
//+------------------------------------------------------------------+
2026-02-11 15:37:09 -05:00
bool CGlobalInit::init = false; // Inicialmente FALSE
2026-01-06 16:54:30 -05:00
//+------------------------------------------------------------------+
2026-02-11 15:37:09 -05:00
CGlobalInit g_global_instance; // Instancia global
2026-01-06 16:54:30 -05:00
//+------------------------------------------------------------------+
#endif // GLOBAL_MQH
// Ahora, para evitar la incluision doble de este archivo defini un GUARD
// #ifndef - #define - #endif
2026-02-11 15:37:09 -05:00
//+------------------------------------------------------------------+
2026-01-06 16:54:30 -05:00