149 lines
11 KiB
MQL5
149 lines
11 KiB
MQL5
//+------------------------------------------------------------------+
|
|
//| 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);
|
|
}
|
|
//+------------------------------------------------------------------+
|