class CTral
Класс для расчёта уровня стоп-лосса с учётом трейлинга и безубытка позиции.
Сообщите нам, если считаете, что материал размещён без разрешения.
Обращение по товару «order.mqh» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
Файл order.mqh представляет собой библиотечный модуль языка MQL5, предназначенный для управления торговыми позициями. Он содержит два класса, реализующих логику трейлинга, безубытка и контроля состояния открытых сделок.
Класс CTral обеспечивает расчёт уровня стоп-лосса с учётом трейлинга и перевода в безубыток. Он принимает параметры трейлинга, триггеров и шагов, а также вычисляет итоговый уровень защиты на основе текущей цены и направления позиции.
Класс CThisTrade инкапсулирует данные и логику управления конкретной торговой позицией. Он отслеживает тикет, символ, тип, прибыль в пунктах, состояние открытия и завершения, а также поддерживает сеточный режим и блокировку.
Классов: 2 · методов: 23 · конструкторов: 3 · деструкторов: 0 · отдельных функций: 0
class CTral
Класс для расчёта уровня стоп-лосса с учётом трейлинга и безубытка позиции.
class CThisTrade
Класс для управления данными и состоянием торговой позиции.
CTral(uint mTral,uint tralTrigger, uint tralStep, uint breakEvenTrigger, int mBrekEven)
Конструктор класса CTral с параметрами трейлинга, триггеров и шагов.
double GetSL(double mPrice,double mSL,double mPriceOpen)
Возвращает рассчитанный уровень стоп-лосса с учётом трейлинга и безубытка.
CTral* Init(CTradeConst* mTradeConst,int mDirection)
Инициализирует параметры трейлинга и безубытка для класса CTral.
CThisTrade()
Конструктор по умолчанию класса CThisTrade.
CThisTrade(const CThisTrade& o)
Конструктор копирования класса CThisTrade.
_tTicket Ticket()
Возвращает тикет торговой позиции.
_tTicket CtrlTicket()
Возвращает контрольный тикет позиции.
string Symbol()
Возвращает символ торговой позиции.
int Type()
Возвращает тип торговой позиции.
string Ident()
Возвращает идентификатор позиции.
int ProfitPoint()
Возвращает прибыль позиции в пунктах.
bool IsLocked()
Проверяет, заблокирована ли позиция.
bool IsGrid()
Проверяет, находится ли позиция в сеточном режиме.
void Locked(bool val)
Устанавливает состояние блокировки позиции.
bool IsOpen()
Проверяет, открыта ли позиция.
bool IsFinish()
Проверяет, завершена ли позиция.
double Price()
Возвращает текущую цену позиции.
double Point()
Возвращает размер пункта символа.
int GridStep()
Возвращает текущий шаг сетки.
bool Control()
Выполняет контроль состояния позиции и обновляет данные.
bool Closing()
Проверяет, находится ли позиция в процессе закрытия.
bool InitLock(string m_symbol,int m_type,_tTicket m_ticket,string mComment)
Инициализирует защитную (лок) позицию с заданными параметрами.
bool InitMain(SSignal &sgnl,_tTicket mTicket,int mPrevGridStep)
Инициализирует основную торговую позицию с заданными параметрами.
void RememberPosition(bool m_is_main)
Запоминает данные позиции по её идентификатору.
void RememberOrder(bool m_is_main)
Запоминает данные позиции по ордеру.
void Remember(bool m_is_main)
Возвращает количество классов в библиотеке.
??# i n c l u d e " H e a d e r . m q h "
# i f n d e f _ T H I S _ O R D E R _
# d e f i n e _ T H I S _ O R D E R _
# i n c l u d e " L i b / S T D / M e m o r y / S h a r e d P t r . m q h "
# i n c l u d e " L i b / O b j e c t s / T r a d e / C P o s i t i o n . m q h "
# i n c l u d e " L i b / O b j e c t s / T r a d e / T r a l / C C l a s s i c T r a l . m q h "
c l a s s C T r a l : p u b l i c I T r a l
{
p r i v a t e :
u i n t _ t r a l ;
u i n t _ t r a l T r i g g e r ;
u i n t _ t r a l S t e p ;
u i n t _ b r e a k E v e n T r i g g e r ;
i n t _ b r e a k E v e n ;
d o u b l e c T r a l T r i g g e r ;
d o u b l e c T r a l ;
d o u b l e c T r a l S t e p ;
d o u b l e c B r e a k E v e n T r i g g e r ;
d o u b l e c B r e a k E v e n ;
b o o l i s I n i t ;
b o o l i s B E ;
p r o t e c t e d :
C T r a d e C o n s t * c T r a d e C o n s t ;
i n t c D i r e c t i o n ;
p u b l i c :
C T r a l ( u i n t m T r a l , u i n t t r a l T r i g g e r , u i n t t r a l S t e p , u i n t b r e a k E v e n T r i g g e r , i n t m B r e k E v e n ) ;
d o u b l e G e t S L ( d o u b l e m P r i c e , d o u b l e m S L , d o u b l e m P r i c e O p e n ) ;
C T r a l * I n i t ( C T r a d e C o n s t * m T r a d e C o n s t , i n t m D i r e c t i o n ) ;
p r i v a t e :
d o u b l e B r e a c k E v e n C o n t r o l ( d o u b l e m P r i c e , d o u b l e s l ) ;
d o u b l e T r a l C o n t r o l ( d o u b l e m P r i c e , d o u b l e s l ) ;
d o u b l e N o r m a l i z e P r i c e ( d o u b l e m P r i c e ) { r e t u r n N o r m a l i z e D o u b l e ( M a t h R o u n d ( m P r i c e / _ t i c k S i z e ) * _ t i c k S i z e , _ d i g i t s ) ; }
v o i d I n i t ( d o u b l e p r i c e ) ;
} ;
C T r a l : : C T r a l ( u i n t m T r a l , u i n t t r a l T r i g g e r , u i n t t r a l S t e p , u i n t b r e a k E v e n T r i g g e r , i n t m B r e k E v e n ) :
_ t r a l ( m T r a l ) , _ t r a l T r i g g e r ( t r a l T r i g g e r ) , _ t r a l S t e p ( t r a l S t e p ) , _ b r e a k E v e n T r i g g e r ( b r e a k E v e n T r i g g e r ) , _ b r e a k E v e n ( m B r e k E v e n ) , i s I n i t ( f a l s e ) , i s B E ( f a l s e ) { }
/ / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
C T r a l * C T r a l : : I n i t ( C T r a d e C o n s t * m T r a d e C o n s t , i n t m D i r e c t i o n ) {
c T r a d e C o n s t = m T r a d e C o n s t ;
c D i r e c t i o n = m D i r e c t i o n ;
c T r a l = : : N o r m a l i z e P r i c e ( _ t r a l * m T r a d e C o n s t . p o i n t , m T r a d e C o n s t . t i c k S i z e , m T r a d e C o n s t . d i g i t s ) ;
c T r a l S t e p = : : N o r m a l i z e P r i c e ( _ t r a l S t e p * m T r a d e C o n s t . p o i n t , m T r a d e C o n s t . t i c k S i z e , m T r a d e C o n s t . d i g i t s ) ;
r e t u r n G e t P o i n t e r ( t h i s ) ; }
/ / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
v o i d C T r a l : : I n i t ( d o u b l e p r i c e ) {
i s I n i t = t r u e ;
c T r a l T r i g g e r = ! _ t r a l T r i g g e r ? 0 . 0 : ( : : N o r m a l i z e P r i c e ( p r i c e + c D i r e c t i o n * c T r a d e C o n s t . p o i n t * _ t r a l T r i g g e r , c T r a d e C o n s t . t i c k S i z e , c T r a d e C o n s t . d i g i t s ) ) ;
c B r e a k E v e n T r i g g e r = ! _ b r e a k E v e n T r i g g e r ? 0 . 0 : ( : : N o r m a l i z e P r i c e ( p r i c e + c D i r e c t i o n * c T r a d e C o n s t . p o i n t * _ b r e a k E v e n T r i g g e r , c T r a d e C o n s t . t i c k S i z e , c T r a d e C o n s t . d i g i t s ) ) ;
c B r e a k E v e n = : : N o r m a l i z e P r i c e ( p r i c e + c D i r e c t i o n * c T r a d e C o n s t . p o i n t * _ b r e a k E v e n , c T r a d e C o n s t . t i c k S i z e , c T r a d e C o n s t . d i g i t s ) ;
i f ( ! _ b r e a k E v e n T r i g g e r ) i s B E = t r u e ;
}
/ / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
d o u b l e C T r a l : : G e t S L ( d o u b l e m P r i c e , d o u b l e m S L , d o u b l e m P r i c e O p e n ) {
i f ( ! i s I n i t )
I n i t ( m P r i c e O p e n ) ;
d o u b l e b S L = B r e a c k E v e n C o n t r o l ( m P r i c e , m S L ) ;
d o u b l e t S L = T r a l C o n t r o l ( m P r i c e , m S L ) ;
r e t u r n c D i r e c t i o n >