2026-03-05 02:12:38 +03:00
|
|
|
//+------------------------------------------------------------------+
|
|
|
|
|
//| Trader.mqh |
|
|
|
|
|
//| Copyright 2026, MasterOfPuppets |
|
|
|
|
|
//| https://forge.mql5.io/masterofpuppets/mql5 |
|
|
|
|
|
//+------------------------------------------------------------------+
|
|
|
|
|
#ifndef MASTER_OF_PUPPETS_LIB_TRADER_MQH
|
|
|
|
|
#define MASTER_OF_PUPPETS_LIB_TRADER_MQH
|
|
|
|
|
|
2026-03-12 12:12:59 +03:00
|
|
|
#include <MasterOfPuppetsLib\Modifiers\IModifier.mqh>
|
2026-03-06 01:00:44 +03:00
|
|
|
#include <MasterOfPuppetsLib\TradeAction.mqh>
|
|
|
|
|
#include <MasterOfPuppetsLib\TradeContext.mqh>
|
2026-03-06 03:27:39 +03:00
|
|
|
#include <MasterOfPuppetsLib\TraderContext.mqh>
|
2026-03-06 01:00:44 +03:00
|
|
|
#include <MasterOfPuppetsLib\Utils.mqh>
|
|
|
|
|
|
2026-03-05 02:12:38 +03:00
|
|
|
#property copyright "Copyright 2026, MasterOfPuppets"
|
|
|
|
|
#property link "https://forge.mql5.io/masterofpuppets/mql5"
|
|
|
|
|
|
|
|
|
|
//+------------------------------------------------------------------+
|
2026-03-05 02:33:36 +03:00
|
|
|
//| Trader class |
|
2026-03-05 02:12:38 +03:00
|
|
|
//+------------------------------------------------------------------+
|
|
|
|
|
class Trader
|
|
|
|
|
{
|
|
|
|
|
private:
|
2026-03-06 09:09:20 +03:00
|
|
|
const TradeContext *m_tradeContext;
|
|
|
|
|
const TraderContext *m_traderContext;
|
|
|
|
|
double m_buyPyramidPriceOpen;
|
|
|
|
|
double m_sellPyramidPriceOpen;
|
2026-03-06 12:04:18 +03:00
|
|
|
void Log(const string message) const;
|
2026-03-12 12:12:59 +03:00
|
|
|
void ModifyPositions(const IModifier* modifier) const;
|
2026-03-05 02:12:38 +03:00
|
|
|
public:
|
2026-03-06 07:29:22 +03:00
|
|
|
Trader() : m_tradeContext(NULL), m_traderContext(NULL) {}
|
|
|
|
|
void Init(const TradeContext *srcTradeContext, const TraderContext *srcTraderContext);
|
2026-03-06 12:04:18 +03:00
|
|
|
void DeleteOrders(const string message, const bool allOrders) const;
|
2026-03-12 12:12:59 +03:00
|
|
|
void Modify(const string message, const IModifier* modifier) const;
|
2026-03-06 12:04:18 +03:00
|
|
|
void OrderOpen(const string message, const TradeAction tradeAction) const;
|
2026-03-05 23:55:48 +03:00
|
|
|
void PositionOpen(const string message, const TradeAction tradeAction);
|
2026-03-06 03:09:30 +03:00
|
|
|
const double GetBuyPyramidPriceOpen() const;
|
|
|
|
|
const double GetSellPyramidPriceOpen() const;
|
2026-03-05 02:12:38 +03:00
|
|
|
};
|
|
|
|
|
|
2026-03-06 01:00:44 +03:00
|
|
|
#include <MasterOfPuppetsLib\Trader.mq5>
|
|
|
|
|
|
2026-03-05 02:12:38 +03:00
|
|
|
#endif
|
|
|
|
|
//+------------------------------------------------------------------+
|