Experts/TM/TradeManager.mqh

150 lines
11 KiB
MQL5
Raw Permalink Normal View History

2025-05-30 14:54:10 +02:00
<EFBFBD><EFBFBD>//+------------------------------------------------------------------+
//| 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<EFBFBD> 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);
}
//+------------------------------------------------------------------+