Ошибки, баги, вопросы - страница 738

 
MetaDriver:

Вопрос:

Нужно передать в функцию массив указателей на объекты. По ссылке, разумеется (массив же).

Какой синтаксис использовать?

Зря сомневаюсь?  Или таки нужно как-то иначе?

Объявление указателя (тип, переменная типа): MyObject* hobject

Объявление массива указателей (тип, массив переменных типа): MyObject* hobject[]

Получается, что при передаче по ссылке  (тип, передаваемый массив переменных типа):  MyObject* &hobject[]

Смущает только то, что не нашёл информации про возможность передачи указателей и массивов указателей в качестве параметров функций. Но это не вопрос даже, а оговорка.

 
Karlson:
Сталкивался с такой потребностью.Криво и жестоко ,но на правильный результат выходит.Флажки включены на всех трех входных данных.А далее блокируется при false.

фиговый из меня обьяснятель. Попробую еще раз. Стоит задача сформировать портфель валют, каждая валюта со своими параметрами. Во оптимизированном портфеле валюта может не участовать. Немного подсчетов  шесть валют по 21 шагов оптимизации по каждой валюте, в совокупности до фига счет на миллиарды. 

Теперь вопрос. Запрещаем флагом валюте торговать, то и оптимизировать ее параметры нет никакго смысла, все равно они на результат никак не повлияют, однако оптимизатор будет исправно пытаться подбирать параметры которые на результат не влияют, этот пустой прогон немного напрягает (уже третьи сутки пошли). Вроде как сам знаю что нельзя, но надежда еще теплится. 

 
ivandurak:

фиговый из меня обьяснятель. Попробую еще раз. Стоит задача сформировать портфель валют, каждая валюта со своими параметрами. Во оптимизированном портфеле валюта может не участовать. Немного подсчетов  шесть валют по 21 шагов оптимизации по каждой валюте, в совокупности до фига счет на миллиарды. 

Теперь вопрос. Запрещаем флагом валюте торговать, то и оптимизировать ее параметры нет никакго смысла, все равно они на результат никак не повлияют, однако оптимизатор будет исправно пытаться подбирать параметры которые на результат не влияют, этот пустой прогон немного напрягает (уже третьи сутки пошли). Вроде как сам знаю что нельзя, но надежда еще теплится. 

Значит я Вам всё таки правильно в первый раз написал.

Не выставлять флажки в тестере напротив этих параметров.

Чтобы параметры участвовали в оптимизации нужно выставить флажки напротив. Если флажки не выставлены, то эти параметры не будут оптимизироваться.

P.S. Или для каждого инструмента проводите оптимизацию отдельно. Теперь понял, что Вы имеете ввиду. :) А после всех оптимизаций включаете все инструменты и смотрите совокупный результат.

 
tol64:

Значит я Вам всё таки правильно в первый раз написал.

Нет, не правильно. Судя по дальнейшим объяснениям, автор запускает оптимизацию сразу по всем своим входным параметрам, и при этом интересуется, можно ли как-то пропустить часть проходов, если trpair2==false. Вручную тут "флажки в тестере" не повыставляешь.
 
Yedelkin:
Нет, не правильно. Судя по дальнейшим объяснениям, автор запускает оптимизацию сразу по всем своим входным параметрам, и при этом интересуется, можно ли как-то пропустить часть проходов, если trpair2==false. Вручную тут "флажки в тестере" не повыставляешь.
Ну, тогда мне и самому интересно узнать, есть ли такое решение. Помню в Сервисдеск отправлял пожелание на программируемые параметры. То есть, в зависимости от того какой параметр выбран (например, в выпадающем списке) формируется общий список всех внешних параметров. Отклика не было, значит всё на так просто. А этот вопрос из этой же темы. В зависимости, какой параметр выбран на оптимизацию устанавливается список (флажки) оптимизируемых параметров в общем списке.
 
tol64:
Ну, тогда мне и самому интересно узнать, есть ли такое решение.
Для рассматриваемой ситуации я решения тоже не нашёл. Можно, конечно, в int OnInit() забабахать некий блок, который бы при присвоении параметру trpair2 значения false запоминал значение оптимизируемых параметров по остальным символам, и в случае повторного прохода с trpair2==false и c 'запомненными значениями оптимизируемых параметров по остальным символам' генерировал бы ненулевой код возврата (т.е.  генерировал бы событие Deinit с кодом причины деинициализации REASON_INITFAILED). Но как-то это всё муторно выглядит.
 
Yedelkin:
Нет, не правильно. Судя по дальнейшим объяснениям, автор запускает оптимизацию сразу по всем своим входным параметрам, и при этом интересуется, можно ли как-то пропустить часть проходов, если trpair2==false. Вручную тут "флажки в тестере" не повыставляешь.
Именно так. Только вы вердикт забыли написать можно или нет. 
 
Yedelkin:
Для рассматриваемой ситуации я решения тоже не нашёл. Можно, конечно, в int OnInit() забабахать некий блок, который бы при присвоении параметру trpair2 значения false запоминал значение оптимизируемых параметров по остальным символам, и в случае повторного прохода с trpair2==false и c 'запомненными значениями оптимизируемых параметров по остальным символам' генерировал бы ненулевой код возврата (т.е.  генерировал бы событие Deinit с кодом причины деинициализации REASON_INITFAILED). Но как-то это всё муторно выглядит.
Всё проще. Можно при исполнении того или иного условия просто удалять эксперт - ExpertRemove(). У меня так реализовано в случае с просадкой. Если просадка, например при оптимизации, достигла установленное значение, то удаляемся и начинаем следующий проход.
 
ivandurak:
Именно так. Только вы вердикт забыли написать можно или нет. 
Можно. Как в предыдущем посте попробуйте сделать.
 
tol64:
Всё проще. Можно при исполнении того или иного условия просто удалять эксперт - ExpertRemove(). У меня так реализовано в случае с просадкой. Если просадка, например при оптимизации, достигла установленное значение, то удаляемся и начинаем следующий проход.

Да как же "проще"? :) Наличие условий хоть для удаления эксперта, хоть для REASON_INITFAILED - всё равно нужно отслеживать. Вот это-то и выглядит муторно.

Причина обращения: