вообщето я сказал что мне пофик:D что буду правильно вести ся даже если эт когото обижает, т.к. это их проблемы. но это им же на благо, это чтоб они, захотев решить проблему, начали искать причины и, в конечном итоге, искоренили, иначе проблема будут всегда
"Существует возможность передавать параметры по ссылке. В этом случае модификация таких параметров отразится на соответствующих переменных в вызываемой функции, переданных по ссылке. Нельзя передавать по ссылке элементы массивов. Параметры по ссылке можно передавать только в пределах одного модуля, для библиотечных функций такая возможность не предусмотрена."
Да, возможно в этом и есть трабл...
У меня много функций, в которых, одним из параметров является массив переданный по ссылке...
Т.е. нужно отказываться от многофайловой структуры программы во избежании проблем, решить по другому нельзя?
Гоняю советник в тестере. В советнике есть обращения к истории, т.е. ищется какой-либо один из последних, допустим, 20 закрытых ордеров.
В реале - всё просто, можно указать период для истории, за который должны отображаться ордера. Таким образом, последние ордера всегда "сверху". А вот в тестере чем больше сделок - тем больше закрытых ордеров, тем больший их список приходится шерстить, и тем медленнее начинает работать советник.
В общем, кто как решал подобную проблему?
Современный компьютеры совершают сотни миллионов операций в секунду.
Сколько же должно быть сделок, чтобы компьютер начал тормозить?
В вашем "тяжелом" случае можно ввести условие, согласно которому перебор ордеров будет вестись только за последний месяц/полугодие.
eddy: вообщето я сказал что мне пофик:D что буду правильно вести ся даже если эт когото обижает, т.к. это их проблемы. но это им же на благо, это чтоб они, захотев решить проблему, начали искать причины и, в конечном итоге, искоренили, иначе проблема будут всегда
eddy, понятие правильно - это очень субъективно))
Если группа людей считает, что то общепринятым и правильным это и есть норма правил, для этой группы людей. Такая группа есть на этом форуме.
Это очень хорошо, что у Вас свой взгляд на мир, но тратить время на обсуждение этого и тем более переубеждение или перевоспитание людей это - очень большая роскошь))
Споря о правильности идей, мы в пустую тратим ресурсы и наши вопросы не разрешаются.
Предлагаю, при всем уважении к Вам и понимании Ваших идей, все же вернуться к программированию))
tmt0086: Здраствуйте =) я вот только что написал советника.. там никаких условий, просто открытие на GBPUSD и EURUSD. Так вот при тестировании не отркывает ордеры GBPUSD, когда стоит на EURUSD. И наоборот. Может можно как нить настроить это? чтоб открывал ордеры.. На демо все норм, а протестировать не могу.
есть объективные правила и, следовательно, правильность. так же есть важность правил и иерархия правил. если правило менее важно чем другое или иерархически ниже то им следует пренебречь если этого требует правило важнее/вые. я правила и рпавильность всю жизнь изучал
В тестере историю отсортировать невозможно. Последний ордер падает на самое дно. Чтобы до него добраться, надо пролистать ВСЮ историю.
Я не прав?
нет. Вот Вам пример выбора из истории ордеров свежайшего закрытого для последующей работы с ним...
//---Поиск последнего отработавшего ордера для открытия очередной позиции ---for (orderIndex = (OrdersHistoryTotal() - 1); orderIndex >= 0; orderIndex--)
{
if (!OrderSelect(orderIndex, SELECT_BY_POS, MODE_HISTORY))
{
Print("Ошибка при доступе к исторической базе (",GetLastError(),")");
continue;
}
if ((OrderSymbol() != Symbol()) || (OrderMagicNumber() != MagicNumber))
{
continue;
}
//-------------------------Принимаем в расчет только ордер, закрытый недавно-----------------------if(time<OrderCloseTime()) //(сравниваем его с хранящимся в пероеменной time)
{
time=OrderCloseTime(); //если время закрытия ордера больше - ложим его в переменнуюint lastType = OrderType();
double lastLots = OrderLots();
double lastProfit = OrderProfit() + OrderSwap();
.....
.....
.....
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
eddy же сказал, что обидеть не хотел не кого
Одна из причин все делать в одном файле -> https://docs.mql4.com/ru/basis/variables/formal :
"Существует возможность передавать параметры по ссылке. В этом случае модификация таких параметров отразится на соответствующих переменных в вызываемой функции, переданных по ссылке. Нельзя передавать по ссылке элементы массивов. Параметры по ссылке можно передавать только в пределах одного модуля, для библиотечных функций такая возможность не предусмотрена."
Да, возможно в этом и есть трабл...
У меня много функций, в которых, одним из параметров является массив переданный по ссылке...
Т.е. нужно отказываться от многофайловой структуры программы во избежании проблем, решить по другому нельзя?
Джентльмены, такой вопрос.
Гоняю советник в тестере. В советнике есть обращения к истории, т.е. ищется какой-либо один из последних, допустим, 20 закрытых ордеров.
В реале - всё просто, можно указать период для истории, за который должны отображаться ордера. Таким образом, последние ордера всегда "сверху". А вот в тестере чем больше сделок - тем больше закрытых ордеров, тем больший их список приходится шерстить, и тем медленнее начинает работать советник.
В общем, кто как решал подобную проблему?
Современный компьютеры совершают сотни миллионов операций в секунду.
Сколько же должно быть сделок, чтобы компьютер начал тормозить?
В вашем "тяжелом" случае можно ввести условие, согласно которому перебор ордеров будет вестись только за последний месяц/полугодие.
вообщето я сказал что мне пофик:D что буду правильно вести ся даже если эт когото обижает, т.к. это их проблемы. но это им же на благо, это чтоб они, захотев решить проблему, начали искать причины и, в конечном итоге, искоренили, иначе проблема будут всегда
eddy, понятие правильно - это очень субъективно))
Если группа людей считает, что то общепринятым и правильным это и есть норма правил, для этой группы людей. Такая группа есть на этом форуме.
Это очень хорошо, что у Вас свой взгляд на мир, но тратить время на обсуждение этого и тем более переубеждение или перевоспитание людей это - очень большая роскошь))
Споря о правильности идей, мы в пустую тратим ресурсы и наши вопросы не разрешаются.
Предлагаю, при всем уважении к Вам и понимании Ваших идей, все же вернуться к программированию))
Здраствуйте =) я вот только что написал советника.. там никаких условий, просто открытие на GBPUSD и EURUSD. Так вот при тестировании не отркывает ордеры GBPUSD, когда стоит на EURUSD. И наоборот. Может можно как нить настроить это? чтоб открывал ордеры.. На демо все норм, а протестировать не могу.
ответьте кто нибудь..
В вашем "тяжелом" случае можно ввести условие, согласно которому, перебор ордеров будет вестись только за последний месяц/полугодие.
Какие условия?
В тестере историю отсортировать невозможно. Последний ордер падает на самое дно. Чтобы до него добраться, надо пролистать ВСЮ историю.
Я не прав?
ответьте кто нибудь..
В МТ4 нет мультивалютного тестера стратегий.
eddy, понятие правильно - это очень субъективно))
В МТ4 нет мультивалютного тестера стратегий.
а не подскажешь, где можно затестить? в МТ5 поканает?
Какие условия?
В тестере историю отсортировать невозможно. Последний ордер падает на самое дно. Чтобы до него добраться, надо пролистать ВСЮ историю.
Я не прав?
нет. Вот Вам пример выбора из истории ордеров свежайшего закрытого для последующей работы с ним...