//+------------------------------------------------------------------+ //| Trailing.mqh | //| Copyright 2016, Vasiliy Sokolov. | //| http://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2016, Vasiliy Sokolov." #property link "http://www.mql5.com" #include #ifdef __HT__ #include "..\Position.mqh" #else #include "..\PositionMT5.mqh" #endif #include "..\Logs.mqh" class CPosition; //+------------------------------------------------------------------+ //| Базовый класс трейлинг-стопа | //+------------------------------------------------------------------+ class CTrailing : public CObject { protected: CPosition *m_position; // Позиция, стоп-лосс которой требуется модифицировать. CLog *Log; public: CTrailing(void); void SetPosition(CPosition *position); CPosition *GetPosition(void); virtual bool Modify(void); virtual CTrailing* Copy(void); }; //+------------------------------------------------------------------+ //| Конструктор. Получает модуль логирования | //+------------------------------------------------------------------+ CTrailing::CTrailing(void) { Log=CLog::GetLog(); } //+------------------------------------------------------------------+ //| Метод модификациии трейлинг-стопа, который необходимо | //| переопределить в производном классе трейлинга | //+------------------------------------------------------------------+ bool CTrailing::Modify(void) { return false; } //+------------------------------------------------------------------+ //| Возвращает копию экземпляра | //+------------------------------------------------------------------+ CTrailing* CTrailing::Copy(void) { return new CTrailing(); } //+------------------------------------------------------------------+ //| Устанавливает позицию, стоп-лосс которой требуется модифицировать| //+------------------------------------------------------------------+ void CTrailing::SetPosition(CPosition *position) { m_position=position; } //+------------------------------------------------------------------+ //| Возвращает позицию, стоп-лосс которой требуется модифицировать | //+------------------------------------------------------------------+ CPosition *CTrailing::GetPosition(void) { return m_position; } //+------------------------------------------------------------------+