66 lines
3.7 KiB
MQL5
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();
|
|
};
|
|
|
|
|