//+------------------------------------------------------------------+ //| StrategyParamsBase.mqh | //| Copyright 2016, Vasiliy Sokolov, St-Petersburg, Russia | //| https://www.mql5.com/ru/users/c-4 | //+------------------------------------------------------------------+ #property copyright "Copyright 2016, Vasiliy Sokolov." #property link "https://www.mql5.com/ru/users/c-4" #include "Logs.mqh" #include "XML\XMLBase.mqh" //+------------------------------------------------------------------+ //| Класс содержит базовые параметры любой стратегии CStrategy. | //| Параметры загружаются из переданного XML-аттрибута | //+------------------------------------------------------------------+ class CParamsBase { private: bool m_is_valid; // Флаг, указывающий, все ли обязательные параметры стратегии указаны верно. uint m_magic; // Магический номер стратегии string m_name; // Имя стратегии string m_symbol; // Символ стратегии ENUM_TIMEFRAMES m_timeframe; // Таймфрейм стратегии CLog* Log; // Логирование ENUM_TIMEFRAMES StringToTimeframe(string stf); public: CParamsBase(CXmlElement *xmlStrategy); bool IsValid(void); bool CheckParams(void); uint Magic(void); string Name(void); string Symbol(void); ENUM_TIMEFRAMES Timeframe(void); }; //+------------------------------------------------------------------+ //| Создает класс базовых параметров стратегии из специального | //| XML-элемента. | //+------------------------------------------------------------------+ CParamsBase::CParamsBase(CXmlElement *xmlStrategy) : m_is_valid(false), m_magic(0), m_name(""), m_symbol(""), m_timeframe(PERIOD_CURRENT) { Log=CLog::GetLog(); for(int i=0; i