UTE/Strategy/Trailings/Trailing.mqh
super.admin bd7e405a90 convert
2025-05-30 16:34:43 +02:00

67 lines
2.7 KiB
MQL5

//+------------------------------------------------------------------+
//| Trailing.mqh |
//| Copyright 2016, Vasiliy Sokolov. |
//| http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, Vasiliy Sokolov."
#property link "http://www.mql5.com"
#include <Object.mqh>
#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;
}
//+------------------------------------------------------------------+