Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 644

 
Alexey Kozitsyn:
А данных недостаточно... но у Вас, скорее всего, перейдет в месяцы:)
А если недостаточно данных, то на каком основании делаются такие заявления?
[Удален]  
Alexey Viktorov:
А если недостаточно данных, то на каком основании делаются такие заявления?
На тех же, на которых и Вы сделали предположение, что "гораздо больше" может занять дни или недели.
 
Alexey Kozitsyn:
На тех же, на которых и Вы сделали предположение, что "гораздо больше" может занять дни или недели.

Похоже что вы не понимаете ни юмор ни сарказм...

Тогда если "гораздо больше" измеряется гораздо меньшими величинами, то есть ли смысл в такой экономии рискуя надёжностью?

[Удален]  
Alexey Viktorov:

Похоже что вы не понимаете ни юмор ни сарказм...

Тогда если "гораздо больше" измеряется гораздо меньшими величинами, то есть ли смысл в такой экономии рискуя надёжностью?

Отнюдь, поэтому и ответил про месяц, даже смайлик в конце добавил:)

А если серьезно, то гораздо больше может быть "реально гораздо больше по времени", но, лишь относительно оптимального решения.

 
Alexey Kozitsyn:

Отнюдь, поэтому и ответил про месяц, даже смайлик в конце добавил:)

А если серьезно, то гораздо больше может быть "реально гораздо больше по времени", но, лишь относительно оптимального решения.

И последнее на эту тему. Существует 2 оптимальных решения

1. Оптимальное среди надёжных.

2. Оптимальное с большими рисками.

Каждый выбирает своё.

Пока, удачи.

 

Спасибо, за помощь и познавательную дискуссию.

 
mila.com:

Спасибо, за помощь и познавательную дискуссию.

Пользоваться моим примером без доработки нельзя. Написан он был "на коленке" без проверки и после некоторого обдумывания я понял что всё не так просто. Даже при модификации ордера возможны пропуски, оставление одного и может не одного тикета неправильно учтённого.

Доп. вариант: Перед циклом в переменную _1 записать тикет, например нулевого ордера, а потом в цикле перебирая от первого до тотал-1 в эту переменную записывать тикет который будет младше, а старший модифицировать.

Надеюсь понятно объяснил.

[Удален]  
Alexey Viktorov:

Я-бы сделал так.

К сожалению это не проверено и что-то не могу сообразить возможен-ли вариант когда после закрытия очередного ордера образуется "дыра" в списке ордеров.

Если кто сможет объяснить возможность появления такой "дыры" буду благодарен...

Для страховки вставлено else continue; если будет дыра, то будет просто пропущен один ордер. Так мне кажется.

Пользоваться моим примером без доработки нельзя. Написан он был "на коленке" без проверки и после некоторого обдумывания я понял что всё не так просто. Даже при модификации ордера возможны пропуски, оставление одного и может не одного тикета неправильно учтённого.

Доп. вариант: Перед циклом в переменную _1 записать тикет, например нулевого ордера, а потом в цикле перебирая от первого до тотал-1 в эту переменную записывать тикет который будет младше, а старший модифицировать.

Надеюсь понятно объяснил.

Если предположить, что последний ордер по времени - не последний в списке, то Ваш пример не корректен потому, что не учитывает самый первый ордер (№0).
 
Alexey Kozitsyn:
Если предположить, что последний ордер по времени - не последний в списке, то Ваш пример не корректен потому, что не учитывает самый первый ордер (№0).

Сначала находится тикет последнего ордера по времени, а затем делается цикл с модификациями. При встрече в цикле ранее найденного тикета последнего ордера, он пропускается.

Для поиска тикета последнего ордера не нужно гонять всю историю всех ордеров - можно задать размер искомой истории - день, два, три, неделя... "по месту" короче, и пропускать все ордера со временем, которое раньше диапазона поиска. Например: задан размер истории поиска 1 день - все ордера, которые были по времени раньше, чем текущее время-один день, пропускаются. Но цикл всё же нужен. Так как если брать только последний в списке, то он может быть Buy, а нам нужен Sell. А он предпоследний. Таким образом его данные мы уже не получим.

[Удален]  
Artyom Trishkin:

Сначала находится тикет последнего ордера по времени, а затем делается цикл с модификациями. При встрече в цикле ранее найденного тикета последнего ордера, он пропускается.

Для поиска тикета последнего ордера не нужно гонять всю историю всех ордеров - можно задать размер искомой истории - день, два, три, неделя... "по месту" короче, и пропускать все ордера со временем, которое раньше диапазона поиска. Например: задан размер истории поиска 1 день - все ордера, которые были по времени раньше, чем текущее время-один день, пропускаются. Но цикл всё же нужен. Так как если брать только последний в списке, то он может быть Buy, а нам нужен Sell. А он предпоследний. Таким образом его данные мы уже не получим.

Артем, спасибо за объяснения конечно, но я знаю как найти ордер в списке. И мой ответ был не Вам, а Алексею на его пример (в частности на то, что условие "> 0" не пойдет).

Вы бы лучше mila.com написали, как правильно (только с кодом). Мне - лень :)