Adept, failed modify buy 0.00 sl: 0, tp: 0 -> sl: 11964, tp: 0 [Position already closed] вот такая ошибка выходит, ну это понятно после закрытия позиции код заново просто проходит и видит что нечего закрывать. но по новому стоп лоссу позиция не кроется… и ошибок нет
Gens, код бы глянуть (именно часть с модификацией).
Ну вообще, если это при использовании второго варианта, то, конечно, логично добавить проверку
if(PositionSelect(_Symbol))
{
//модификация
}
А если вообще по хорошему, лучше вообще не использовать стандартные стоплоссы нигде кроме тестера.
Кароч, скиньте код эксперта с вырезанной торговой логикой, оставив только модули исполнения и модификации, ночью гляну — раз уж мы заморочились, надо доделать нормально :).
хотя, судя по задаче, вроде как PositionGetString — узнаете тикет открытой позиции.
CTrade trade;
if(PositionSelect(_Symbol))
{
long ticket = PositionGetInteger(POSITION_TICKET);
trade.PositionModify(ticket,stop_loss,take_pofit);
}
как вариант
Gens, Я там скобочку забыл (поправил).
Так как в CTrade функция PositionModify перегружена, можно и так:
#include <Trade\Trade.mqh>
CTrade trade;
trade.PositionModify(_Symbol,stop_loss,take_pofit);
Gens, код бы глянуть (именно часть с модификацией).
Ну вообще, если это при использовании второго варианта, то, конечно, логично добавить проверку
if(PositionSelect(_Symbol))
{
//модификация
}
А если вообще по хорошему, лучше вообще не использовать стандартные стоплоссы нигде кроме тестера.
Кароч, скиньте код эксперта с вырезанной торговой логикой, оставив только модули исполнения и модификации, ночью гляну — раз уж мы заморочились, надо доделать нормально :).