Народ, нужна помощь. Функция должна закрывать половину ордеров обязательно начиная с самого старого. В первом случае ордера закрываются через один почему-то, а во втором начинают закрываться не в том порядке.
void CloseHalfOrders (int otype)// ф-ция закрытия половины ордеров сетки
{
int count = 0; double CTbuy = CountTrades(OP_BUY); double CTsell = CountTrades(OP_SELL);
for (int i = 0; i<=OrdersTotal;i++)
{
if (OrderSelect(i, SELECT_BY_POS,MODE_TRADES))
{
if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType() == otype)
{
if (otype == OP_BUY)
{
if (count<CTbuy/2 && CTbuy>3 )
OrderClose(OrderTicket(),OrderLots(),Bid,0,Black);
count++;
Sleep(1000);
}
elseif (otype == OP_SELL)
{
if (count<CTsell/2 && CTsell>3)
OrderClose(OrderTicket(),OrderLots(),Ask,0,Black);
count++;
Sleep(1000);
}
}
}
}
}
Народ, нужна помощь. Функция должна закрывать половину ордеров обязательно начиная с самого старого. В первом случае ордера закрываются через один почему-то, а во втором начинают закрываться не в том порядке.
Был такой вопрос, как закрыть ордера начиная с самого старого, через пару страниц там есть ответ и корректный код.
Здрасьте! Искал у Кима, но не нахожу что-то, из чего можно узнать: Из какого ордера (отложки) открылась позиция? Из лимитника или стопового?
Пытался сравнить цены последнего открытого ордера
с открытой по нему позицией, и что-то нарушается вся логика. Может есть что-нибудь более подходящее? Спасибо!
Борис. Попробуй в комментарии отложек писать - к лимитникам limit, к стоповым - stops. Тогда по этим комментариям открытых позиций узнаешь от чего там ноги выросли. Только частичное закрытие сотрёт эти комментарии. Может ещё чё может комментарии грохнуть. Только лишь удалённые отложки в истории сохраняются. Сработавших там нет. Приходится через ... придумай сам через что приходится извращаться...
Так мне нужно целое число...
Народ, нужна помощь. Функция должна закрывать половину ордеров обязательно начиная с самого старого. В первом случае ордера закрываются через один почему-то, а во втором начинают закрываться не в том порядке.
Так мне нужно целое число...
MathRound
так это округление, число ж не становится int, а остается дабл
так это округление, число ж не становится int, а остается дабл
И что? Есть принципиальная разница между 1 и 1.0 для расчётов? Формат конечно дабл, но значение целое.
Особо извращённый вариант тогда: DoubleToStr а потом StringToInteger
Подскажите как убрать предупреждение в новом компиляторе
possible loss of data due to type conversion
Спасибо, так нет предупр., оно мне уже глаз выело)
Здрасьте! Искал у Кима, но не нахожу что-то, из чего можно узнать: Из какого ордера (отложки) открылась позиция? Из лимитника или стопового?
Пытался сравнить цены последнего открытого ордера
с открытой по нему позицией, и что-то нарушается вся логика. Может есть что-нибудь более подходящее? Спасибо!
Народ, нужна помощь. Функция должна закрывать половину ордеров обязательно начиная с самого старого. В первом случае ордера закрываются через один почему-то, а во втором начинают закрываться не в том порядке.
Был такой вопрос, как закрыть ордера начиная с самого старого, через пару страниц там есть ответ и корректный код.
https://www.mql5.com/ru/forum/145455/page406
Здрасьте! Искал у Кима, но не нахожу что-то, из чего можно узнать: Из какого ордера (отложки) открылась позиция? Из лимитника или стопового?
Пытался сравнить цены последнего открытого ордера
с открытой по нему позицией, и что-то нарушается вся логика. Может есть что-нибудь более подходящее? Спасибо!