Доброго времени суток прошу помочь решить проблему с неправильным закрытием ордеров
Советник при наборе положительного профита закрывает в сетке ордеров первый ордер последний ордер и предпоследний ордер
на демо счете все нормально на реале закрывается только минимальный и предпоследний . Я сталкивался с этой проблемой тогда нужно было закрыть всю сетку ордеров и вопрос был в реквотах тогда был установлен флаг и проблема решилась . Здесь я сделал тоже самое но проблема не прошла.
Флаг:
int flag_close3=0;
//-------------------------------------------------------------------+ Команда на закрытие мин макс и предпоследнего ордеров в сетке профит = 0if(CalculiteProfitMinMaxPenultimateOrders() >= 0 && Drawdown >= DrawdownClosingMinMaxOrdersZero && FindPenultimateProfit() > 0)
{
flag_close3=1;
}
//-------------------------------------------------------------------+ Флаг на закрытие ордеровif(flag_close3==1)
ClosseMinMaxPenultimateOrdersZero();
//+----------------------------------------------------------------------------+//| Закрытие минимального максимального и предпоследнего ордеров профит = 0 |//+----------------------------------------------------------------------------+void ClosseMinMaxPenultimateOrdersZero()
{
int slipp = (int) MarketInfo(_Symbol,MODE_SPREAD)*2;
for(int i = OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
{
if(OrderType() == OP_BUY)
{
if(CalculiteProfitMinMaxPenultimateOrders() >= 0 && Drawdown >= DrawdownClosingMinMaxOrdersZero && FindPenultimateProfit() > 0)
{
if(OrderClose(GetTicketPenultimateOrder(), FindPenultimateLots(), Bid, slipp) && OrderClose(GetTicketMinOrder(), GetMinLotOrder(), Bid, slipp) &&
OrderClose(GetTicketMaxOrder(), FindLastLots(), Bid, slipp))
{
SendNotification("Закрылся минимальный максимальный и предпоследний ордера на покупку: " + Symbol() + ", Баланс: " + DoubleToString(NormalizeDouble(AccountBalance(), 2))
+ ", Свободно денежных средств: " + DoubleToString(NormalizeDouble(AccountFreeMargin(), 2)));
Print("Максимальный и минимальный ордера на покупку успешно закрыты!");
}
else
{
Print("Не удалось закрыть максимальный и минимальный ордера на покупку!",GetLastError());
}
}
}
if(OrderType() == OP_SELL)
{
if(CalculiteProfitMinMaxPenultimateOrders() >= 0 && Drawdown >= DrawdownClosingMinMaxOrdersZero && FindPenultimateProfit() > 0)
{
if(OrderClose(GetTicketPenultimateOrder(), FindPenultimateLots(), Ask, slipp) && OrderClose(GetTicketMinOrder(), GetMinLotOrder(), Ask, slipp) &&
OrderClose(GetTicketMaxOrder(), FindLastLots(), Ask, slipp))
{
SendNotification("Закрылся минимальный максимальный и предпоследний ордера на продажу: " + Symbol() + ", Баланс: " + DoubleToString(NormalizeDouble(AccountBalance(), 2))
+ ", Свободно денежных средств: " + DoubleToString(NormalizeDouble(AccountFreeMargin(), 2)));
Print("Максимальный и минимальный ордера на продажу успешно закрыты!");
}
else
{
Print("Не удалось закрыть максимальный и минимальный ордера на продажу!",GetLastError());
}
}
}
}
}
}
}
Доброго времени суток прошу помочь решить проблему с неправильным закрытием ордеров
Советник при наборе положительного профита закрывает в сетке ордеров первый ордер последний ордер и предпоследний ордер
на демо счете все нормально на реале закрывается только минимальный и предпоследний . Я сталкивался с этой проблемой тогда нужно было закрыть всю сетку ордеров и вопрос был в реквотах тогда был установлен флаг и проблема решилась . Здесь я сделал тоже самое но проблема не прошла.
//-------------------------------------------------------------------+ Команда на удаление линий отображающую среднюю цену мин и макс ордеров и текстаif(CountTrade() == 0 || Drawdown < DrawdownClosingMinMaxOrdersZero)
{
flag_close2=0;flag_close3=0;
У тебя память на сутки?
нет. Я не узнал как реализовать то что мне нужно- возможно получится со второй итерации;-)
Тебе Максим Кузнецов ответил как. Читал?
Доброго времени суток прошу помочь решить проблему с неправильным закрытием ордеров
Советник при наборе положительного профита закрывает в сетке ордеров первый ордер последний ордер и предпоследний ордер
на демо счете все нормально на реале закрывается только минимальный и предпоследний . Я сталкивался с этой проблемой тогда нужно было закрыть всю сетку ордеров и вопрос был в реквотах тогда был установлен флаг и проблема решилась . Здесь я сделал тоже самое но проблема не прошла.
Флаг:
Спасибо!!!!
Доброго времени суток прошу помочь решить проблему с неправильным закрытием ордеров
Советник при наборе положительного профита закрывает в сетке ордеров первый ордер последний ордер и предпоследний ордер
на демо счете все нормально на реале закрывается только минимальный и предпоследний . Я сталкивался с этой проблемой тогда нужно было закрыть всю сетку ордеров и вопрос был в реквотах тогда был установлен флаг и проблема решилась . Здесь я сделал тоже самое но проблема не прошла.
Флаг:
Спасибо!!!!
А где твой флаг обнуляется?
Если я сюда вставлю будет правильно
Если я сюда вставлю будет правильно
Нет. Так он обнултся когда все ордера закрыты.
Учитывая что тебе надо не все ордера закрывать, то лучше переберать тикеты и закрывать
Нет. Так он обнултся когда все ордера закрыты.
Учитывая что тебе надо не все ордера закрывать, то лучше переберать тикеты и закрывать
Сейчас минуточку
Сейчас минуточку
а так
Нет. Так он обнултся когда все ордера закрыты.
Учитывая что тебе надо не все ордера закрывать, то лучше переберать тикеты и закрывать
А разве в функции закрытия ордеров я не перебираю тикеты
а так
Это значит если нет ордеров