Тикет ордера, который был причиной закрытия позиции, запихнуть сюда
#define ORDER_TYPE_TAKEPROFIT (-1)
#define ORDER_TYPE_STOPLOSS (-2)
int GetOrderType(const ulong OrderTicket)
{
int OrderType=(int)::HistoryOrderGetInteger(OrderTicket,ORDER_TYPE);
if((OrderType==ORDER_TYPE_BUY) || (OrderType==ORDER_TYPE_SELL))
{
const string OrderComment=HistoryOrderGetString(OrderTicket,ORDER_COMMENT);
const string OrderPrice=::DoubleToString(::HistoryOrderGetDouble(OrderTicket,ORDER_PRICE_OPEN),
(int)::SymbolInfoInteger(HistoryOrderGetString(OrderTicket,ORDER_SYMBOL),SYMBOL_DIGITS));
if(OrderComment=="tp "+OrderPrice)
OrderType=ORDER_TYPE_TAKEPROFIT;
else if(OrderComment=="sl "+OrderPrice)
OrderType=ORDER_TYPE_STOPLOSS;
}
return(OrderType);
}
#define ORDER_TYPE_STOPLOSS (-2)
int GetOrderType(const ulong OrderTicket)
{
int OrderType=(int)::HistoryOrderGetInteger(OrderTicket,ORDER_TYPE);
if((OrderType==ORDER_TYPE_BUY) || (OrderType==ORDER_TYPE_SELL))
{
const string OrderComment=HistoryOrderGetString(OrderTicket,ORDER_COMMENT);
const string OrderPrice=::DoubleToString(::HistoryOrderGetDouble(OrderTicket,ORDER_PRICE_OPEN),
(int)::SymbolInfoInteger(HistoryOrderGetString(OrderTicket,ORDER_SYMBOL),SYMBOL_DIGITS));
if(OrderComment=="tp "+OrderPrice)
OrderType=ORDER_TYPE_TAKEPROFIT;
else if(OrderComment=="sl "+OrderPrice)
OrderType=ORDER_TYPE_STOPLOSS;
}
return(OrderType);
}
fxsaber:
Тикет ордера, который был причиной закрытия позиции, запихнуть сюда
Тикет ордера, который был причиной закрытия позиции, запихнуть сюда
int OrderType=(int)::HistoryOrderGetInteger(OrderTicket,ORDER_TYPE);
Благодарю Вас, поразбираюсь.
Скажите, а что означают два двоеточия в коде?
kofesutra:
Скажите, а что означают два двоеточия в коде?
Грубо говоря, перед двоеточием указывается имя класса, откуда вызывается соответствующий метод.
Если ничего перед двоеточием не стоит - класс глобальный.
В данном случае все двоеточия можно затереть. А удобно их использовать по той причине, что могут быть одни и те же методы (включая виртуальный) у разных классов. И чтобы не ошибиться, через двоеточие можно четко указать, какой конкретно метод нужно вызвать.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здравствуйте все!
Первый вопрос: подскажите, пожалуйста, по каким признакам можно понять, что позиция была закрыта именно по стоп-лоссу?
Это нужно для принятия решения по следующей сделке.
Можно не писать для меня код, главное дайте способ :) А то сам не соображу.
И второй вопрос: можно ли при закрытии сделки с рынка trade.PositionClose(ticket,slippage) добавить свой comment?