EALeague_Free/EALeague_Free_Core.mqh
super.admin a031ec6c24 convert
2025-05-30 14:50:52 +02:00

66 lines
3.7 KiB
MQL5

//+------------------------------------------------------------------+
//| EALeague Free Core |
//| Copyright 2019, George March |
//+------------------------------------------------------------------+
/*
Советник на основе одной фабрики Лиги ТС - ядро.
*/
// Входные параметры
input ulong Magic = 0;
input double RiskPercent = 0.0;
// Объявляем интерфейс библиотеки
#include "EALeagueI\\EALeagueTradeSystemI.mqh"
// Подключаем библиотеку
#ifdef __MQL5__
#import "MyLib\\EALeagueLib.ex5"
CEALeagueTradeSysemI* GetTradeSystem(ulong ulMagic,double dRiskPercent,ulong ulTSCode = NULL);
#import
#else // __MQL5__
#import "MyLib\\EALeagueLib.ex4"
CEALeagueTradeSysemI* GetTradeSystem(ulong ulMagic,double dRiskPercent,ulong ulTSCode = NULL);
#import
#endif // __MQL5__
// Объявляем интерфейс ТС
CEALeagueTradeSysemI* ltsTradeSystem = NULL;
int OnInit()
{
// Получаем интерфейс ТС
ltsTradeSystem = GetTradeSystem(Magic,RiskPercent,NULL);
// Если интерфейс получить не удалось - возвращаем признак неудачи.
if(ltsTradeSystem == NULL)
return(INIT_FAILED);
// Если интерфейс получен успешно - вызываем обработчик события OnInit() у этого интерфейса
int iRes = ltsTradeSystem.TradeSystemOnInit();
return(iRes);
};
void OnDeinit(const int iReason)
{
// Если интерфейс торговой системы был успешно получен,
// Вызовем обработчик события OnDeinit() этого интерфейса,
// удалим его и приравняем нулю.
if(ltsTradeSystem != NULL)
{
ltsTradeSystem.TradeSystemOnDeinit(iReason);
delete(ltsTradeSystem);
ltsTradeSystem = NULL;
};
};
void OnTick()
{
// В функции OnTick() вызовем обработчик этого события у интерфейса
ltsTradeSystem.TradeSystemOnTick();
};