Ну а что тут сравнивать:
OrderSelect(морер позиции, SELECT_BY_POS , MODE_HISTORY)
Заселектировал, а теперь проверяешь цену закрытия ордера с тейком
или стопом. Удачи!
colci:
Здравствуйте. Такой вопрос. Как определить закрылась последня сделка по стоп лосу или или пот тейк профиту. Думаю кто-то уже решал такие проблемы, был бы очень признателен за помощь.
С уважением Александр.
Пока что в коментах пишется по разному ( [tp], [sl] ). Только можно
ли расчитывать, что это в будущем сохранится?
Здравствуйте. Такой вопрос. Как определить закрылась последня сделка по стоп лосу или или пот тейк профиту. Думаю кто-то уже решал такие проблемы, был бы очень признателен за помощь.
С уважением Александр.
BabyBear:
Пока что в коментах пишется по разному ( [tp], [sl] ). Только можно ли расчитывать, что это в будущем сохранится?
Зачем тебе это? Проверяй размер дохода по закрытой сделке. Если
сделка закрылась в плюс - значит профит, в минус - лосс. И это
будет всегда.
Пока что в коментах пишется по разному ( [tp], [sl] ). Только можно ли расчитывать, что это в будущем сохранится?
//+----------------------------------------------------------------------------+ //| Возвращает флаг закрытия последней позиции по стопу. | //| Параметры: | //| sym - наименование инструмента ("" - текущий символ) | //| op - операция (-1 - любая позиция) | //| mn - MagicNumber (-1 - любой магик) | //+----------------------------------------------------------------------------+ bool isCloseLastPosByStop(string sym="", int op=-1, int mn=-1) { datetime oct; double ocp, osl; int dg, i, j=-1, k=HistoryTotal(); if (sym=="") sym=Symbol(); for (i=0; i<k; i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) { if (OrderSymbol()==sym) { if (OrderType()==OP_BUY || OrderType()==OP_SELL) { if (op<0 || OrderType()==op) { if (mn<0 || OrderMagicNumber()==mn) { if (oct<OrderCloseTime()) { oct=OrderCloseTime(); j=i; } } } } } } } if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) { dg=MarketInfo(sym, MODE_DIGITS); if (dg==0) if (StringFind(sym, "JPY")<0) dg=4; else dg=2; ocp=NormalizeDouble(OrderClosePrice(), dg); osl=NormalizeDouble(OrderStopLoss(), dg); if (ocp==osl) return(True); } return(False); } //+----------------------------------------------------------------------------+ //| Возвращает флаг закрытия последней позиции по тейку. | //| Параметры: | //| sym - наименование инструмента ("" - текущий символ) | //| op - операция (-1 - любая позиция) | //| mn - MagicNumber (-1 - любой магик) | //+----------------------------------------------------------------------------+ bool isCloseLastPosByTake(string sym="", int op=-1, int mn=-1) { datetime oct; double ocp, otp; int dg, i, j=-1, k=HistoryTotal(); if (sym=="") sym=Symbol(); for (i=0; i<k; i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) { if (OrderSymbol()==sym) { if (OrderType()==OP_BUY || OrderType()==OP_SELL) { if (op<0 || OrderType()==op) { if (mn<0 || OrderMagicNumber()==mn) { if (oct<OrderCloseTime()) { oct=OrderCloseTime(); j=i; } } } } } } } if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) { dg=MarketInfo(sym, MODE_DIGITS); if (dg==0) if (StringFind(sym, "JPY")<0) dg=4; else dg=2; ocp=NormalizeDouble(OrderClosePrice(), dg); otp=NormalizeDouble(OrderTakeProfit(), dg); if (ocp==otp) return(True); } return(False); } //+----------------------------------------------------------------------------+ //| Возвращает флаг убыточности последней позиции. | //| Параметры: | //| sym - наименование инструмента ("" - текущий символ) | //| op - операция (-1 - любая позиция) | //| mn - MagicNumber (-1 - любой магик) | //+----------------------------------------------------------------------------+ bool isLossLastPos(string sym="", int op=-1, int mn=-1) { datetime oct; int i, j=-1, k=HistoryTotal(); if (sym=="") sym=Symbol(); for (i=0; i<k; i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) { if (OrderSymbol()==sym) { if (OrderType()==OP_BUY || OrderType()==OP_SELL) { if (op<0 || OrderType()==op) { if (mn<0 || OrderMagicNumber()==mn) { if (oct<OrderCloseTime()) { oct=OrderCloseTime(); j=i; } } } } } } } if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) { if (OrderProfit()<0) return(True); } return(False); }
Если сделка закрылась по СЛ, её OrderStopLoss() == OrderClosePrice() (или "MathAbs( OrderStopLoss() - OrderClosePrice() ) < Point", если быть точным).
С тейкпрофитом - аналогично.
Для отслеживания момента срабатывания СЛ и/или ТП можно использовать функцию из статьи События в МetaТrader 4.
С тейкпрофитом - аналогично.
Для отслеживания момента срабатывания СЛ и/или ТП можно использовать функцию из статьи События в МetaТrader 4.
timbo:
Вовсе нет.Пример: срабатывание стоп-лосса, передвигаемого трейлинг-стопом
- сделка в плюсах, или ограничение убытков с помощью тэйк-профита
- сделка закрывается в минусах.
BabyBear:
Пока что в коментах пишется по разному ( [tp], [sl] ). Только можно ли расчитывать, что это в будущем сохранится?
Зачем тебе это? Проверяй размер дохода по закрытой сделке. Если
сделка закрылась в плюс - значит профит, в минус - лосс. И это
будет всегда.Пока что в коментах пишется по разному ( [tp], [sl] ). Только можно ли расчитывать, что это в будущем сохранится?
timbo:
BabyBear:
Пока что в коментах пишется по разному ( [tp], [sl] ). Только можно ли расчитывать, что это в будущем сохранится?
Зачем тебе это? Проверяй размер дохода по закрытой сделке. Если
сделка закрылась в плюс - значит профит, в минус - лосс. И это
будет всегда.Пока что в коментах пишется по разному ( [tp], [sl] ). Только можно ли расчитывать, что это в будущем сохранится?
Это уже дополнительная информация, которой не было в изначальной
постановке вопроса.
Тогда проверять чуть глубже - так как сказал компостер.
Если хочется узнать и про трэйлинг-стоп, то придётся вводить доп.переменные и хранить информацию в них. А если..., то тогда ещё и ...
И даже комментарии уже не помогут.
Тогда проверять чуть глубже - так как сказал компостер.
Если хочется узнать и про трэйлинг-стоп, то придётся вводить доп.переменные и хранить информацию в них. А если..., то тогда ещё и ...
И даже комментарии уже не помогут.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
С уважением Александр.