67 lines
2.7 KiB
MQL5
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;
|
|
}
|
|
//+------------------------------------------------------------------+
|