[Архив!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 2. - страница 247

 
Bicus:

Какие условия?

В тестере историю отсортировать невозможно. Последний ордер падает на самое дно. Чтобы до него добраться, надо пролистать ВСЮ историю.

Я не прав?

в блоке/функции перебора ордеров добавить:

if(OrderCloseTime()>start) {

, где start = месяц/полугодие... https://docs.mql4.com/ru/dateandtime/Month
 
Sergey_Rogozin:

Современный компьютеры совершают сотни миллионов операций в секунду.

Сколько же должно быть сделок, чтобы компьютер начал тормозить?

В вашем "тяжелом" случае можно ввести условие, согласно которому перебор ордеров будет вестись только за последний месяц/полугодие.


Кроме того 2Bicus:

Джентльмены, такой вопрос.

Гоняю советник в тестере. В советнике есть обращения к истории, т.е. ищется какой-либо один из последних, допустим, 20 закрытых ордеров.

В реале - всё просто, можно указать период для истории, за который должны отображаться ордера. Таким образом, последние ордера всегда "сверху". А вот в тестере чем больше сделок - тем больше закрытых ордеров, тем больший их список приходится шерстить, и тем медленнее начинает работать советник.

В общем, кто как решал подобную проблему?

Есть возможность в цикле организовать обращение только к допустим, 30 крайним закрытым ордерам для анализа и принятия решения - см. мой пост выше.

 
tmt0086:

а не подскажешь, где можно затестить? в МТ5 поканает?
я бы написал в индикаторе, "виртуальные сделки" так сказать
 
eddy:
есть объективные правила и, следовательно, правильность. так же есть важность правил и иерархия правил. если правило менее важно чем другое или иерархически ниже то им следует пренебречь если этого требует правило важнее/вые. я правила и рпавильность всю жизнь изучал


объективные правила, возможны только в случае принятия, соглашения субъектов группы с ними. Но в случае не принятия другой группы субъектов этих правил они перестают быть объективнми для общей груупыы состоящий из суммы двух групп.

если мы с тобой не закроем спор, то тебя и меня забанят, давай останемся при своем мнении и займемся програмированием, ок?

 
tmt0086:

а не подскажешь, где можно затестить? в МТ5 поканает?

Да.
 
eddy:
я бы написал в индикаторе, "виртуальные сделки" так сказать

не мог бы поподробнее? ссылочку там или еще что, спасибо)
 
Roman.:

Да.

спасибо, буду советника в МТ5 пробовать переделать.
 
Roman.:


нет. Вот Вам пример выбора из истории ордеров свежайшего закрытого для последующей работы с ним...

for (orderIndex = (OrdersHistoryTotal() - 1); orderIndex >= 0; orderIndex--)

Это что? Перебор всех ордеров истории, не так ли? Понятно, что в теле цикла можно как-то ограничиться по датам и пр.

В своем вопросе я имел в виду, может есть какая-то хитрость, чтобы в истории тестера хранились лишь несколько последних закрытых ордеров, т.е. так, как это сделано в реальной истории? 

 
tmt0086:

не мог бы поподробнее? ссылочку там или еще что, спасибо)
может кто и делал уже так, но я не видел, я лишь свою идею высказал. просто можно пересчитать все бары и совершать при этом виртуальные сделки
 
Bicus:

Это что? Перебор всех ордеров истории, не так ли? Понятно, что в теле цикла можно как-то ограничиться по датам и пр.

В своем вопросе я имел в виду, может есть какая-то хитрость, чтобы в истории тестера хранились лишь несколько последних закрытых ордеров, т.е. так, как это сделано в реальной истории?


А-а-а-а-а... Понятно. :-))) Я с такой хитростью не знаком :-)))
Причина обращения: