Благодарю Вас за участие. Постановка задачи мне понятна. С реализацией забуксовал...
Пробовал с комментами. До второй группы нумерует правильно. На третьей возвращает единицу для коммента, хотя первая группа еще в рынке. Смысл такой, чтобы не плодить номера, а занимать освободившиеся. Надеюсь, понятно объяснил).
Не совсем понятно, но всё равно воспользуйтесь кнопкой для вставки кода
Да, так более информативно. Т.е. этот незамысловатый модуль должен давать коммент для
последующего присвоения ордеру. Когда открыта группа с комментом 1, он дает коммент 2 (это правильно).
Когда открыта 2-я группа, опять дает 1. Не могу понять.
Написал функцию, определяющую наличие уже установленного отложенного ордера, но функция почему-то не работает. Подскажите, пожалуйста, где ошибка? С уважением, Владимир.
//+------------------------------------------------------------------+//| Функция IsMainPendingOrder (установлен отложенный ордер): |//| возвращает истину, если в советнике уже установлен отложенный |//| ордер, в противном случае возвращает ложь. |//| Применим для функции с типом данных bool, чтобы хранить |//| логические значения true (истина) или false (ложь). |//+------------------------------------------------------------------+bool IsMainPendingOrder()
{
int orders_total=OrdersTotal(); // количество установленных отложенных ордеров//--- перебираем все установленные отложенные ордераfor(int i=orders_total-1; i>=0; i--)
{
ulong order_ticket=OrderGetTicket(i); // тикет ордера/* если отложенного ордера нет, значит и у нашего советника отложенного ордера нет */if(OrderSelect(i)==false)
returnfalse; // поэтому возвращаем ложь
}
/* если отложенный ордер уже есть и его мэджик совпадает с мэджиком нашего советника */if(OrderGetInteger(ORDER_MAGIC)==Magic_Number)
returntrue; // то возвращаем истину/* в противном случае, если отложенный ордер уже есть, но его мэджик не совпадает с мэджиком нашего советника */elsereturnfalse; // значит это чья-то чужая позиция, поэтому возвращаем ложь
}
Написал функцию, определяющую наличие уже установленного отложенного ордера, но функция почему-то не работает. Подскажите, пожалуйста, где ошибка? С уважением, Владимир.
ОШИБКА НАЙДЕНА САМОСТОЯТЕЛЬНО!!!
Вот нормально работающий код. Может кому-нибудь пригодится. С уважением, Владимир.
//+------------------------------------------------------------------+//| Функция IsMainPendingOrder (установлен отложенный ордер): |//| возвращает истину, если в советнике не установлен отложенный |//| ордер, в противном случае возвращает ложь. |//| Применим для функции тип данных bool, чтобы хранить |//| логические значения true (истина) или false (ложь). |//+------------------------------------------------------------------+bool IsMainPendingOrder()
{
int orders_total=OrdersTotal(); // количество установленных отложенных ордеров//--- перебираем все установленные отложенные ордераfor(int i=orders_total-1; i>=0; i--)
{
ulong order_ticket=OrderGetTicket(i); // тикет ордера/* если отложенного ордера нет, значит и у нашего советника отложенного ордера нет */if(OrderSelect(i)==false)
returntrue; // поэтому возвращаем значение истинаelse// в противном случаеreturnfalse; // возвращаем значение ложь
}
/* если отложенный ордер уже есть и его мэджик совпадает с мэджиком нашего советника */if(OrderGetInteger(ORDER_MAGIC)==Magic_Number)
returntrue; // то возвращаем истину/* в противном случае, если отложенный ордер уже есть, но его мэджик не совпадает с мэджиком нашего советника */elsereturnfalse; // значит это чужой ордер, поэтому возвращаем значение ложь
Подскажите, пожалуйста, как организовать или в какую сторону смотреть:
Вот, чтобы не проводить расчёт баров, придумали буферы. При каждом новом тике проверяется только последний бар (как я понял). При появлении нового бара, расчёт начинается только с ним.
Благодаря буферу, линии не отрисовываются заново на всей истории, а к её последнему краю добавляется дополнительный отрезок. Всего буферов 8.
А если мне нужно сделать расчёт сотню раз (допустим, 100 раз отрисовать линию, изменяя одну только переменную), а затем лучший результат отрисовать. А при новом тике или таймере сделать всё тоже самое, но уже с имеющейся "историей" результатов (отрисовок). Где и как мне хранить эту информацию, чтобы потом не проводить эти расчёты по новой по всей истории?
Или, если проще выразиться, как увеличить количество буферов в индикаторе? Может записывать отдельно в файл? Как лучше
Подскажите, пожалуйста, как организовать или в какую сторону смотреть:
Вот, чтобы не проводить расчёт баров, придумали буферы. При каждом новом тике проверяется только последний бар (как я понял). При появлении нового бара, расчёт начинается только с ним.
Благодаря буферу, линии не отрисовываются заново на всей истории, а к её последнему краю добавляется дополнительный отрезок. Всего буферов 8.
А если мне нужно сделать расчёт сотню раз (допустим, 100 раз отрисовать линию, изменяя одну только переменную), а затем лучший результат отрисовать. А при новом тике или таймере сделать всё тоже самое, но уже с имеющейся "историей" результатов (отрисовок). Где и как мне хранить эту информацию, чтобы потом не проводить эти расчёты по новой по всей истории?
Или, если проще выразиться, как увеличить количество буферов в индикаторе? Может записывать отдельно в файл? Как лучше
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Благодарю Вас за участие. Постановка задачи мне понятна. С реализацией забуксовал...
Пробовал с комментами. До второй группы нумерует правильно. На третьей возвращает единицу для коммента, хотя первая группа еще в рынке. Смысл такой, чтобы не плодить номера, а занимать освободившиеся. Надеюсь, понятно объяснил).
Не совсем понятно, но всё равно воспользуйтесь кнопкой для вставки кода
или сочетанием клавиш ALT+s
Всем доброго вечера!
Написал функцию, определяющую наличие уже установленного отложенного ордера, но функция почему-то не работает. Подскажите, пожалуйста, где ошибка? С уважением, Владимир.
Всем доброго вечера!
Написал функцию, определяющую наличие уже установленного отложенного ордера, но функция почему-то не работает. Подскажите, пожалуйста, где ошибка? С уважением, Владимир.
ОШИБКА НАЙДЕНА САМОСТОЯТЕЛЬНО!!!
Вот нормально работающий код. Может кому-нибудь пригодится. С уважением, Владимир.
Подскажите, пожалуйста, как организовать или в какую сторону смотреть:
Вот, чтобы не проводить расчёт баров, придумали буферы. При каждом новом тике проверяется только последний бар (как я понял). При появлении нового бара, расчёт начинается только с ним.
Благодаря буферу, линии не отрисовываются заново на всей истории, а к её последнему краю добавляется дополнительный отрезок. Всего буферов 8.
А если мне нужно сделать расчёт сотню раз (допустим, 100 раз отрисовать линию, изменяя одну только переменную), а затем лучший результат отрисовать. А при новом тике или таймере сделать всё тоже самое, но уже с имеющейся "историей" результатов (отрисовок). Где и как мне хранить эту информацию, чтобы потом не проводить эти расчёты по новой по всей истории?
Или, если проще выразиться, как увеличить количество буферов в индикаторе? Может записывать отдельно в файл? Как лучшеПодскажите, пожалуйста, как организовать или в какую сторону смотреть:
Вот, чтобы не проводить расчёт баров, придумали буферы. При каждом новом тике проверяется только последний бар (как я понял). При появлении нового бара, расчёт начинается только с ним.
Благодаря буферу, линии не отрисовываются заново на всей истории, а к её последнему краю добавляется дополнительный отрезок. Всего буферов 8.
А если мне нужно сделать расчёт сотню раз (допустим, 100 раз отрисовать линию, изменяя одну только переменную), а затем лучший результат отрисовать. А при новом тике или таймере сделать всё тоже самое, но уже с имеющейся "историей" результатов (отрисовок). Где и как мне хранить эту информацию, чтобы потом не проводить эти расчёты по новой по всей истории?
Или, если проще выразиться, как увеличить количество буферов в индикаторе? Может записывать отдельно в файл? Как лучшеВ индикаторах 512 буферов.
В индикаторах 512 буферов.
Ого.. Благодарю Вас. Я, наверное, не туда смотрел. Буду пробовать
ОШИБКА НАЙДЕНА САМОСТОЯТЕЛЬНО!!!
Вот нормально работающий код. Может кому-нибудь пригодится. С уважением, Владимир.
Ни кому не пригодится. В Вашем коде грубейшие ошибки. И исправлять их бессмысленно.
Вы не удосужились выучить даже основы языка, а пытаетесь что-то писать.
Вы уж или займитесь серьёзно или бросьте это дело.
Ни кому не пригодится. В Вашем коде грубейшие ошибки. И исправлять их бессмысленно.
Вы не удосужились выучить даже основы языка, а пытаетесь что-то писать.
Вы уж или займитесь серьёзно или бросьте это дело.
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
и ждать здесь помощи.
С уважением, Владимир.
Доброе утро! Да, Вы абсолютно правы. Нужно бросить это бессмысленное дело, а именно - обращаться в раздел
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
и ждать здесь помощи.
С уважением, Владимир.
Правильно, бросайте.
Вы даже не поняли что я Вам написал на русском языке.
Зачем Вам лезть в программирование?