А можно ли как-то модифицировать стоп-лосс, но при этом не трогать тейк-профитв одной строке(не упоминать о нем, т.е. нужно чтобы он оставался таким как его установили раньше другие функции)
При этом этот ордер нужно ещё и непременно передварительно выбрать OrderSelect . А то я уже наступал на эти грабли- иначе зачастую тикет может стать какой угодно.
Dimka-novitsek: При этом этот ордер нужно ещё и непременно передварительно выбрать OrderSelect . А то я уже наступал на эти грабли- иначе зачастую тикет может стать какой угодно.
Да да, точнее тикет то встанет тот, который вы укажете, но значения OrderLots( ) и OrderTakeProfit( ) он может вернуть для какого угодно ордера.
Я категорически немогу разобраться- не работают условия для трейлингстопа.
Так вот ордер отбирается сразу, когда он ещё вовсе не на истории, чего я вовсе не понимаю!!
А вот так вот ситуация уже лучше!! С таким наворотом ордер хоть отбирается тогда, когда он уже на истории.
Но раз из пяти- десяти nahodka не принимает значение true, и дальнейшей модификации не происходит!!
При выборе ордера по тикету пулл не учитывается. Посему совершенно бесполезно писать MODE_HISTORY. После выбора ордера по тикету нужно ещё обязательно проверить его время закрытия OrderCloseTime() - если больше ноля - то ордер закрыт и выбран из истории, если НОЛЬ - то ордер ещё находится в рынке и выбран из списка рыночных позиций.
В ваших строках этой проверки нет:
if (OrderSelect(tacket, SELECT_BY_TICKET , MODE_HISTORY))
if (OrderTakeProfit( )-3*Point<profit&&OrderTakeProfit( )+3*Point>profit) nahodka=true; // Находим ордер, сработавший именно по тейкпрофиту
Начните с малого:
if (OrderSelect(tacket, SELECT_BY_TICKET)) {
if (OrderCloseTime()>0) { // Убедились, что ордер выбран из истории// Тут ищете далее то, что вам необходимо ... а закрылся ли он по тейку ...
}
}
Я категорически немогу разобраться- не работают условия для трейлингстопа.
Так вот ордер отбирается сразу, когда он ещё вовсе не на истории, чего я вовсе не понимаю!!
А вот так вот ситуация уже лучше!! С таким наворотом ордер хоть отбирается тогда, когда он уже на истории.
Но раз из пяти- десяти nahodka не принимает значение true, и дальнейшей модификации не происходит!!
! - Вашей находчивости именовать Ticket: tecket, tocket, tucket и т.д. и т.п. А Вы сами в этих именованиях не запутались?! Мой Вам совет - во избежание путаницы, так не делать. На этом принципе строится ЛохБрендинг, например: ADIDAS и ADITAS...
Ещё, ни к чему такое количество флагов, например:
if (OrderSelect (ticket, SELECT_BY_TICKET))
{
//---- Проверяем закрыт этот ордер или нетif (OrderCloseTime > 0)
{
//---- Находим ордер, сработавший именно по тейкпрофиту if (NormalizeDouble (OrderTakeProfit()- OrderClosePrice()), Digits) == 0.0)
{
if (OrderSelect (tucket, SELECT_BY_TICKET))
{
double ld_SL = NormalizeDouble (Bid - treylingstop * Point, Digits);
if (NormalizeDouble (ld_SL - OrderStopLoss(), Digits) > 0.0)
{
Print ("втораямодифи " );
OrderModify (tucket, OrderOpenPrice(), ld_SL, OrderTakeProfit(), 0, CLR_NONE);
}
}
}
}
}
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
А можно ли как-то модифицировать стоп-лосс, но при этом не трогать тейк-профитв одной строке(не упоминать о нем, т.е. нужно чтобы он оставался таким как его установили раньше другие функции)
OrderModify(OrderTicket(),0,stop_loss, ???, 0,CLR_NONE);
OrderModify(OrderTicket(),OrderLots( ),stop_loss,OrderTakeProfit( ), 0,CLR_NONE);
Стоп, так у вас лот -- 0.
При этом этот ордер нужно ещё и непременно передварительно выбрать OrderSelect . А то я уже наступал на эти грабли- иначе зачастую тикет может стать какой угодно.
Да да, точнее тикет то встанет тот, который вы укажете, но значения OrderLots( ) и OrderTakeProfit( ) он может вернуть для какого угодно ордера.
Доброго утра!
Я категорически немогу разобраться- не работают условия для трейлингстопа.
Так вот ордер отбирается сразу, когда он ещё вовсе не на истории, чего я вовсе не понимаю!!
А вот так вот ситуация уже лучше!! С таким наворотом ордер хоть отбирается тогда, когда он уже на истории.
Но раз из пяти- десяти nahodka не принимает значение true, и дальнейшей модификации не происходит!!
Вот , например, как оно не модифицирует бай- а это зиркальное условие, и так же не работает всегда.
Вот этим местом.
Доброго утра!
Я категорически немогу разобраться- не работают условия для трейлингстопа.
Так вот ордер отбирается сразу, когда он ещё вовсе не на истории, чего я вовсе не понимаю!!
А вот так вот ситуация уже лучше!! С таким наворотом ордер хоть отбирается тогда, когда он уже на истории.
Но раз из пяти- десяти nahodka не принимает значение true, и дальнейшей модификации не происходит!!
Не пробовали if(OrderClosePrice()==OrderTakeProfit())nahodka=true;?
Доброго утра!
Я категорически немогу разобраться- не работают условия для трейлингстопа.
Так вот ордер отбирается сразу, когда он ещё вовсе не на истории, чего я вовсе не понимаю!!
А вот так вот ситуация уже лучше!! С таким наворотом ордер хоть отбирается тогда, когда он уже на истории.
Но раз из пяти- десяти nahodka не принимает значение true, и дальнейшей модификации не происходит!!
При выборе ордера по тикету пулл не учитывается. Посему совершенно бесполезно писать MODE_HISTORY. После выбора ордера по тикету нужно ещё обязательно проверить его время закрытия OrderCloseTime() - если больше ноля - то ордер закрыт и выбран из истории, если НОЛЬ - то ордер ещё находится в рынке и выбран из списка рыночных позиций.
В ваших строках этой проверки нет:
Начните с малого:
и будет вам счастие...
Доброго утра!
Я категорически немогу разобраться- не работают условия для трейлингстопа.
Так вот ордер отбирается сразу, когда он ещё вовсе не на истории, чего я вовсе не понимаю!!
А вот так вот ситуация уже лучше!! С таким наворотом ордер хоть отбирается тогда, когда он уже на истории.
Но раз из пяти- десяти nahodka не принимает значение true, и дальнейшей модификации не происходит!!
! - Вашей находчивости именовать Ticket: tecket, tocket, tucket и т.д. и т.п. А Вы сами в этих именованиях не запутались?! Мой Вам совет - во избежание путаницы, так не делать. На этом принципе строится ЛохБрендинг, например: ADIDAS и ADITAS...
Ещё, ни к чему такое количество флагов, например:
Это лёгкая импровизация на основе Вашего кода.