Так ничего страшного - ошибку схватим при OrderSelect.
1. Что понимается под индексацией\переиндексацией? На мой взгляд и флаг ей в ... руки, ведь начнём новый цикл. Или вы представляете ситуацию ещё сложней? Представляете что возможен вариант когда одновременно будет открыт один ордер и закрыт другой???
2. Согласен. Что-то я с утра ... не совсем наверное проснулся...
1. Что понимается под индексацией\переиндексацией? На мой взгляд и флаг ей в ... руки, ведь начнём новый цикл. Или вы представляете ситуацию ещё сложней? Представляете что возможен вариант когда одновременно будет открыт один ордер и закрыт другой???
Да, один из вариантов может быть таким. Есть еще и такой
Да, один из вариантов может быть таким. Есть еще и такой
какой-то отложенник исполнился во время цикла
1. Такой вариант на грани фантастики. Ну, в конце-концов ничего не произойдёт если всё встанет на свои места на следующем тике.
2. Как я понимаю, отложники по алгоритму должны быть передвинуты, а рыночным ордерам передвинут стоп... Следовательно тип ордера проверяется и выполняется независимо от времени исполнения.
1. Такой вариант на грани фантастики. Ну, в конце-концов ничего не произойдёт если всё встанет на свои места на следующем тике.
Следующий тик стал гэпом. Зачем откладывать на завтра то, что можно сделать сегодня?
2. Как я понимаю, отложники по алгоритму должны быть передвинуты, а рыночным ордерам передвинут стоп... Следовательно тип ордера проверяется и выполняется независимо от времени исполнения.
Тогда, может быть, попытаться максимально быстро отобрать ордера (только отобрать!) с записью в массив, а уже потом, в отдельной функции делать проверку наличия этих ордеров + необходимое действие (закрытие/удаление/модификация)?
Хотя, не думаю, что эта ветка лучшее место для обсуждения. Эта ветка для особенностей.
поставить проверку на изменение списка ордеров
Так переиндексация не будет учтена.
Понятно, что если были добавлены, то они или другие будут пропущены. А если просто были удалены??? Не получится выход за границы списка ордеров?
Так ничего страшного - ошибку схватим при OrderSelect.
Так переиндексация не будет учтена.
Так ничего страшного - ошибку схватим при OrderSelect.
1. Что понимается под индексацией\переиндексацией? На мой взгляд и флаг ей в ... руки, ведь начнём новый цикл. Или вы представляете ситуацию ещё сложней? Представляете что возможен вариант когда одновременно будет открыт один ордер и закрыт другой???
2. Согласен. Что-то я с утра ... не совсем наверное проснулся...
1. Что понимается под индексацией\переиндексацией? На мой взгляд и флаг ей в ... руки, ведь начнём новый цикл. Или вы представляете ситуацию ещё сложней? Представляете что возможен вариант когда одновременно будет открыт один ордер и закрыт другой???
Да, один из вариантов может быть таким. Есть еще и такой
какой-то отложенник исполнился во время цикла
А если во время какого-либо цикла работы с ордерами на каждом витке проверять, было ли изменение OrdersTotal() и OrdersHistoryTotal()?
И анализировать полученные значения в зависимости от ситуации?
Да, один из вариантов может быть таким. Есть еще и такой
1. Такой вариант на грани фантастики. Ну, в конце-концов ничего не произойдёт если всё встанет на свои места на следующем тике.
2. Как я понимаю, отложники по алгоритму должны быть передвинуты, а рыночным ордерам передвинут стоп... Следовательно тип ордера проверяется и выполняется независимо от времени исполнения.
А если во время какого-либо цикла работы с ордерами на каждом витке проверять, было ли изменение OrdersTotal() и OrdersHistoryTotal()?
И анализировать полученные значения в зависимости от ситуации?
Вот было аналогичное предложение
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Особенности языка mql4, тонкости и приёмы работы
Alexey Viktorov, 2017.09.15 07:24
Во-первых, ситуация представлена нестандартная и мало кто эту ситуацию уже разруливал, если вообще есть такие.
Чисто теоретически:
Для OrderModify организовывать обратный цикл не обязательно, поэтому пусть будет прямой
И дальше поставить проверку на изменение списка ордеров
Если произошло изменение количества, начнём цикл заново с новым количеством ордеров.
И ещё вопрос:
Понятно, что если были добавлены, то они или другие будут пропущены. А если просто были удалены??? Не получится выход за границы списка ордеров?
Вот было аналогичное предложение
А если во время какого-либо цикла работы с ордерами на каждом витке проверять, было ли изменение OrdersTotal() и OrdersHistoryTotal()?
И анализировать полученные значения в зависимости от ситуации?
1. Такой вариант на грани фантастики. Ну, в конце-концов ничего не произойдёт если всё встанет на свои места на следующем тике.
Следующий тик стал гэпом. Зачем откладывать на завтра то, что можно сделать сегодня?
2. Как я понимаю, отложники по алгоритму должны быть передвинуты, а рыночным ордерам передвинут стоп... Следовательно тип ордера проверяется и выполняется независимо от времени исполнения.
Ну тип ордера никак помочь здесь не может.
Его может не быть при переиндексации.
Тогда, может быть, попытаться максимально быстро отобрать ордера (только отобрать!) с записью в массив, а уже потом, в отдельной функции делать проверку наличия этих ордеров + необходимое действие (закрытие/удаление/модификация)?
Хотя, не думаю, что эта ветка лучшее место для обсуждения. Эта ветка для особенностей.