//+------------------------------------------------------------------+ //| ExpertMoney.mqh | //| Copyright 2023 - Dev.Solve LTDA | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| Macro definitions. | //+------------------------------------------------------------------+ #include "ExpertError.mqh" //+------------------------------------------------------------------+ //| Class CExpertMoney. | //| Purpose: Base class money managment. | //| Derives from class CExpertBase. | //+------------------------------------------------------------------+ class CExpertMoney { protected: //--- input parameters string m_symbol; ulong m_magic; double m_tick_size; double m_tick_value; double m_lots_min; double m_lots_max; double m_lots_step; public: CExpertMoney(void); ~CExpertMoney(void); //--- init bool Init(string symbol,ulong magic); //--- method of verification of settings virtual bool ValidationSettings(); //--- virtual double Lot(double price,double sl); }; //+------------------------------------------------------------------+ //| Constructor | //+------------------------------------------------------------------+ void CExpertMoney::CExpertMoney(void) { } //+------------------------------------------------------------------+ //| Destructor | //+------------------------------------------------------------------+ void CExpertMoney::~CExpertMoney(void) { } //+------------------------------------------------------------------+ //| Init | //+------------------------------------------------------------------+ bool CExpertMoney::Init(string symbol,ulong magic) { //--- set symbol property m_symbol=symbol; if(!SymbolInfoDouble(m_symbol,SYMBOL_TRADE_TICK_SIZE,m_tick_size)) return(false); if(!SymbolInfoDouble(m_symbol,SYMBOL_TRADE_TICK_VALUE,m_tick_value)) return(false); if(!SymbolInfoDouble(m_symbol,SYMBOL_VOLUME_MIN,m_lots_min)) return(false); if(!SymbolInfoDouble(m_symbol,SYMBOL_VOLUME_MAX,m_lots_max)) return(false); if(!SymbolInfoDouble(m_symbol,SYMBOL_VOLUME_STEP,m_lots_step)) return(false); //--- magic m_magic=magic; //--- ok return(true); } //+------------------------------------------------------------------+ //| Validation settings protected data. | //+------------------------------------------------------------------+ bool CExpertMoney::ValidationSettings() { //--- return(true); } //+------------------------------------------------------------------+ //| Getting lot size for open position. | //+------------------------------------------------------------------+ double CExpertMoney::Lot(double price,double sl) { //--- return(m_lots_min); } //+------------------------------------------------------------------+