Experts/TM-V2/TradingManager.mqh
super.admin da793cc2e1 convert
2025-05-30 14:54:10 +02:00

188 lines
17 KiB
MQL5

//+------------------------------------------------------------------+
//| TradingManager.mqh |
//| Thorsten Fischer Copyright 2020 |
//| https://mql5.tfsystem.de |
//+------------------------------------------------------------------+
#property copyright "Thorsten Fischer Copyright 2020"
#property link "https://mql5.tfsystem.de"
#property version "1.00"
#property strict
//---
#include "..\..\TF-Dateien\TF-Class\TFFrame.mqh"
//#include "..\..\TF-Dateien\TF-Class\TFTerminalInfo.mqh"
//#include "..\..\TF-Dateien\TF-Class\TFAccountInfo.mqh"
//#include "..\..\TF-Dateien\TF-Class\TFMagicNumber.mqh"
//#include "..\..\TF-Dateien\TF-Class\TFArrayLong.mqh"
//#include "..\..\TF-Dateien\TF-Class\TFOrderInfo.mqh"
//#include "..\..\TF-Dateien\TF-Class\TFPositionInfo.mqh"
//#include "..\..\TF-Dateien\TF-Class\TFTrade.mqh"
//#include "..\..\TF-Dateien\TF-Class\TFModule.mqh"
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
class CTradingManager
{
private:
CTFFrame c_Frame_GUI;
//CTFOrderInfo c_Order_Info;
//CTFPositionInfo c_Position_Info;
//CTFModule c_Module;
//CTFArrayLong c_Position_Nummer;
//--- Für Tests
int i_order_prev;
int i_position_prev;
int i_Trade;
int i_TradeTransaction;
public:
CTradingManager();
~CTradingManager();
//---
virtual bool OnInitEvent(void);
virtual void OnDeInitEvent(const int aReason=0);
//---
virtual void ChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam);
virtual void OnTickEvent(void);
//---
virtual void OnTradeEvent(void);
virtual void OnTradeTransactionEvent(const MqlTradeTransaction& trans, const MqlTradeRequest& request, const MqlTradeResult& result);
virtual void TTInfo(const MqlTradeTransaction& trans, const MqlTradeRequest& request, const MqlTradeResult& result);
virtual void InfoComment(void);
};
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
CTradingManager::CTradingManager()
{
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
CTradingManager::~CTradingManager()
{
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
bool CTradingManager::OnInitEvent(void)
{
//i_Trade=0;
//i_TradeTransaction=0;
//i_order_prev=OrdersTotal();
//i_position_prev=PositionsTotal();
//InfoComment();
//---
if(!c_Frame_GUI.OnInitEvent())
return(false);
//---
//if(!g_tfterminalinfo.OnInitEvent())
// return(false);
//---
//if(!g_accountinfo.OnInitEvent())
// return(false);
//---
//if(!g_magicnumber.Init())
// return(false);
//---
//if(!g_tftrade.OnInitEvent())
// return(false);
//g_tftrade.LogLevel(LOG_LEVEL_ALL);
//---
//if(!c_Module.OnInitEvent())
// return(false);
//---
return(true);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void CTradingManager::OnDeInitEvent(const int aReason=0)
{
//---
c_Frame_GUI.OnDeInitEvent(aReason);
//---
//c_Module.OnDeInitEvent(aReason);
//---
//if(g_tftrade!=NULL)
// g_tftrade.OnDeInitEvent(aReason);
//---
//CTFObject::OnDeInitEvent(aReason);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void CTradingManager::ChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam)
{
//---
//c_Module.ChartEvent(id, lparam, dparam, sparam);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void CTradingManager::OnTickEvent(void)
{
//---
//c_Module.OnTickEvent();
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void CTradingManager::OnTradeEvent(void)
{
//---
//i_Trade++;
//i_order_prev=OrdersTotal();
//i_position_prev=PositionsTotal();
//m_deal_prev=Dea
//---
//InfoComment();
//Sleep(1000);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void CTradingManager::OnTradeTransactionEvent(const MqlTradeTransaction &trans, const MqlTradeRequest &request, const MqlTradeResult &result)
{
//---
//i_TradeTransaction++;
//if(m_order_prev<OrdersTotal())
//i_order_prev=OrdersTotal();
//i_position_prev=PositionsTotal();
//if(trans.symbol==Symbol())
// if(trans.type==TRADE_TRANSACTION_REQUEST)
//TTInfo(trans, request, result);
//---
InfoComment();
//Sleep(1000);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void CTradingManager::TTInfo(const MqlTradeTransaction &trans, const MqlTradeRequest &request, const MqlTradeResult &result)
{
//---
Print(__FUNCTION__+" m_TradeTransaction = "+(string)i_TradeTransaction+" +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
Print("trans.type = "+EnumToString(trans.type)+" | request.action = "+EnumToString(request.action)+" | request.deviation = "+(string)request.deviation);
Print("trans.order_type = "+EnumToString(trans.order_type)+" | request.type = "+EnumToString(request.type)+" Symbol = "+trans.symbol);
Print("trans.order_state = "+EnumToString(trans.order_state)+" | request.type_filling = "+EnumToString(request.type_filling));
Print("trans.deal_type = "+EnumToString(trans.deal_type)+" | request.type_time = "+EnumToString(request.type_time));
Print("trans.order = "+(string)trans.order+" | request.order = "+(string)request.order+" | result.order = "+(string)result.order);
Print("trans.deal = "+(string)trans.deal+" | request.magic = "+(string)request.magic+" | result.deal = "+(string)result.deal);
Print("trans.position = "+(string)trans.position+" | request.position = "+(string)request.position);
Print("trans.position_by = "+(string)trans.position_by+" | request.position_by = "+(string)request.position_by+" | result.order = "+(string)result.order);
Print("trans.price = "+(string)trans.price+" | request.price = "+(string)request.price+" | result.price = "+(string)result.price);
Print("trans.price_sl = "+(string)trans.price_sl+" | request.sl = "+(string)request.sl);
Print("trans.price_tp = "+(string)trans.price_tp+" | request.tp = "+(string)request.tp);
Print("trans.price_trigger = "+(string)trans.price_trigger+" | request.stoplimit = "+(string)request.stoplimit);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void CTradingManager::InfoComment(void)
{
Comment("O="+(string)i_order_prev+" |P="+(string)i_position_prev+" |T="+(string)i_Trade+" |TTa="+(string)i_TradeTransaction);
}
//+------------------------------------------------------------------+