Можно проверять глобальную переменную терминала, и получать ошибку INIT_AGENT_NOT_SUITABLE, при тесте отмечать в роботе что это форвард
Можно проверять глобальную переменную терминала, и получать ошибку INIT_AGENT_NOT_SUITABLE, при тесте отмечать в роботе что это форвард
То есть, действительно, первый проход - всегда бэк, и можно устанавливать в глобальных переменных флаг, что бэк-проход был. При этом, если агент "слабый" - вернуть INIT_AGENT_NOT_SUITABLE. А если перменная найдена - следовательно, это форвард-проход, и можно на мощность агента не смотреть.
А как различить параллельные бэк-проходы первого поколения (второе поколение будет уже только на "мощных" агентах) ? Когда переменная уже будет выставлена на одном агенте, а второй как раз будет ее запрашивать ?
Ну, в принципе, как вариант - да, можно будет попробовать.
Печальные новости.
Моя идея не прокатывает. Я хотел проводить бек-тестирование - только на самых быстрых агентах, а форвард-тестирование - на всех. По моим прикидам, для меня это бы ускорило работу процентов на 30. И собирался для этого в бэк-проходе обозначать слабых агентов, как AGENT_NOT_SUITABLE, а в форвард - все как INIT_SUCCESS.
Увы, если в бэк-тестировании агент помечается как AGENT_NOT_SUITABLE, то к Init() форвард-теста он уже не допускается.
Очень жаль.
Печальные новости.
Моя идея не прокатывает. Я хотел проводить бек-тестирование - только на самых быстрых агентах, а форвард-тестирование - на всех. По моим прикидам, для меня это бы ускорило работу процентов на 30. И собирался для этого в бэк-проходе обозначать слабых агентов, как AGENT_NOT_SUITABLE, а в форвард - все как INIT_SUCCESS.
Увы, если в бэк-тестировании агент помечается как AGENT_NOT_SUITABLE, то к Init() форвард-теста он уже не допускается.
Очень жаль.
А если в параметрах робота заносить вручную дату, с которой начинается форвард? И в коде прописывать, что если после этой даты, то меняем настройки?
А если в параметрах робота заносить вручную дату, с которой начинается форвард? И в коде прописывать, что если после этой даты, то меняем настройки?
Вот, я так и сделал.
Но, проблема в том, что нам необходимо на бек-тесте убрать медленные агенты (они замедляют просчеты поколений, быстрые агенты вынуждены долго ждать), а на форвард-тесте - нам надо включить всех агентов, здесь уже скорость агентов значения не имеет.
Я предполагал использовать код возврата AGENT_NOT_SUITABLE, и он нормально работает, агент, вернувший его - выключается. Проблема только в том, что нам надо выключать агенты вначале, во время бэк-теста, а если мы их выключаем - то включить их уже не получается, и форвард-тестирование проходит только на быстрых агентах.
А если прервать тестирование после окончания бэк-тестирования? При прерывании процесса тестирования, его результаты сохраняются (чтобы повторно не пересчитывать). Может, при перезапуске медленные агенты включатся?
Задача - все сделать в автоматическом режиме. Если сидеть рядом с терминалом - то и смысла огород городить нету. В бэк-тестировании - отключаем мелденные агенты, в форварде - подключаем. По идее, можно попробовать на медленных агентах в бэк-тесте - выдавать INIT_FAILED. Но, неизвестно, как поведет себя оптимизатор, если будет много таких ответов. Не исключено и качество оптимизации может снизиться.
Придется остановиться просто на работе только на быстрых агентах.
Задача - все сделать в автоматическом режиме. Если сидеть рядом с терминалом - то и смысла огород городить нету. В бэк-тестировании - отключаем мелденные агенты, в форварде - подключаем. По идее, можно попробовать на медленных агентах в бэк-тесте - выдавать INIT_FAILED. Но, неизвестно, как поведет себя оптимизатор, если будет много таких ответов. Не исключено и качество оптимизации может снизиться.
Придется остановиться просто на работе только на быстрых агентах.
Говорил я тебе Жорж, потрать деньги на баб. Так нет, купил новый комп, заимел себе проблем )))
Говорил я тебе Жорж, потрать деньги на баб. Так нет, купил новый комп, заимел себе проблем )))
Эх, Лёх... да я и рад бы... Но только не нужен я двести лет бабам... А комп - он всегда будет делать то, что от него требуется...
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Всех приветствую.
Вопрос вынесен в заголовок.
Надо внутри функции Init() узнать, запущен ли режим оптимизации, и если запущен - какой это проход - бэк-тестирование или форвард-тестирование.
Никто с подобной задачей не сталкивался ?
Поясню причину. Вычислительная мощь нового компьютера - вдвое превышает вычислительную мощь всей моей домашней локальной сети. В результате - во время бек-оптимизации оказывается наиболее разумно использовать только его, чтобы минимизировать ожидания пересчета каждого поколения. А вот во время форвард-тестирования - было бы разумно подключить и локальную сеть, чтобы ускорить форвард-просчет на 30%.
Но для осуществления задумки - необходимо различать, на каких компьютерах запущены агенты, и различать бэк- и форвард- проходы. (чтобы вернуть признак неподходящего агента)
С различением компьютеров я еще как-то могу справиться (скажем, через объем памяти). А вот как отличить бэк и форвард - что-то не пойму.
Какие мысли, коллеги ?