//+------------------------------------------------------------------+ //| TradeManager.mqh | //| Thorsten Fischer Copyright 2019-2020 | //| https://mql5.tfsystem.de | //+------------------------------------------------------------------+ #property copyright "Thorsten Fischer Copyright 2019-2020" #property link "https://mql5.tfsystem.de" #property version "1.00" #property strict //--- #include "..\..\TF-Dateien\TF-Class\TFMagicNumber.mqh" #include "..\..\TF-Dateien\TF-Class\TFTrade.mqh" #include "TMGUI.mqh" //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ class CTradeManager : public CTFObject { private: CTFTrade *m_trade; CTFMagicNumber m_magicnumber; CTMGUI m_tmgui; public: CTradeManager(); ~CTradeManager(); //--- virtual int OnInitEvent(void); virtual void DeInitEvent(const int aReason=0); virtual void OnTickEvent(void); virtual void ChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam); //virtual bool InitAccountInfo(CTFAccountInfo *aAccount=NULL); //virtual bool InitMagicNumber(CTFMagicNumber *aMagicNumber=NULL); //virtual bool InitTerminalInfo(CTFTerminalInfo *aTerminal=NULL); //--- virtual bool InitTMGUI(void); //CTMGUI *aTMGUI=NULL); virtual void DeInitTMGUI(const int aReason=0); virtual bool InitTrade(void); //CTFTrade *aTrade=NULL); virtual void DeInitTrade(const int aReason=0); //virtual bool InitMagicNumber(void); //CTFMagicNumber *aMagicNumber=NULL); //virtual void DeInitMagicNumber(const int aReason=0); //--- virtual bool CheckTradeSignal(void); protected: //bool }; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ CTradeManager::CTradeManager() //: m_tmgui(NULL),m_trade(NULL),m_magicnumber(NULL) { } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ CTradeManager::~CTradeManager() { } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int CTradeManager::OnInitEvent(void) { //--- if(!InitTrade()) return(INIT_FAILED); if(!m_tmgui.Init(m_trade)) return(INIT_FAILED); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void CTradeManager::DeInitEvent(const int aReason=0) { //--- m_magicnumber.DeInitEvent(aReason); m_tmgui.DeInitEvent(aReason); DeInitTrade(aReason); //--- CTFObject::DeInitEvent(aReason); // Abschluß und Reason als Text ausgeben } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void CTradeManager::OnTickEvent(void) { //--- //m_tmgui.OnTickEvent(); m_trade.OnTickEvent(); //--- //CTFObject::OnTickEvent(); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void CTradeManager::ChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam) { //--- m_tmgui.ChartEvent(id,lparam,dparam,sparam); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ bool CTradeManager::InitTrade(void) { //--- if(m_trade!=NULL) { delete m_trade; m_trade=NULL; } //--- if((m_trade=new CTFTrade)==NULL) return(false); //--- m_trade.Init(m_magicnumber.MagicNumber()); //--- return(true); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void CTradeManager::DeInitTrade(const int aReason=0) { //--- if(m_trade!=NULL) { m_trade.DeInitEvent(aReason); delete m_trade; m_trade=NULL; } } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ bool CTradeManager::CheckTradeSignal(void) { //--- //i_ //m_tmgui.m_gui_dialog. //--- return(true); } //+------------------------------------------------------------------+