ICTLibraryEasy/Examples/Readme/Global.mqh

82 行
7 KiB
MQL5
Raw パーマリンク 通常表示 履歴

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
ante todo... (Incluso antes de OnInit)..
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
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
//--- Empezaremos incluyendo el BarManager
#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"
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
// 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.
class CGlobal
{
private:
static bool init;
public:
//--- Incializacion global
CGlobal(void)
{
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
//--- Marcamos en true
init = true;
}
//--- Deinicializacion global
~CGlobal(void)
{
}
};
//+------------------------------------------------------------------+
bool CGlobal::init = false; // Inicialmente FALSE
//+------------------------------------------------------------------+
CGlobal g_global_instance; // Instancia global
//+------------------------------------------------------------------+
#endif // GLOBAL_MQH
// Ahora, para evitar la incluision doble de este archivo defini un GUARD
// #ifndef - #define - #endif