articul, не нужно быть настолько категоричным. Мир не стоит на месте. Современные монстрообразные видеокарты, исходя из твоей логики, тоже следует признать следствием отсутствия идей в обработке изображений?
Я и сам иногда рад ускориться - просто чтобы не ждать при отладке кода окончания тяжелых расчетов, которые у меня все зашиты в init() (примерно 10 секунд). А все остальные расчеты, которые происходят "на лету", действительно выполняются очень быстро, так что тут многопоточность и не нужна.
Я считаю, что мощности подобного масштаба нужны в проверке тех или иных идей. Например, очень интересно было бы взглянуть на результат форвард-теста за последние 10 лет по 32 валютным парам. И чтобы реально загрузить машинку построим систему на мелком ТФ. Допустим, M15. Оптимизационный период 8 недель, а Out of Sample2 недели. Хотя на таблице это будет более наглядно:
Если на оптимизацию будет уходить 1 минута, то потратим мы приблизительно 138 часов. Кол-во шагов (оптимизаций) - 8320. Это одна торговая стратегия. А если портфель? А если системы пока нет и мы находимся в поиске? ))) Вот с этого момента становится ясно, что мощностей мало не бывает.
Я и сам иногда рад ускориться - просто чтобы не ждать при отладке кода окончания тяжелых расчетов, которые у меня все зашиты в init() (примерно 10 секунд). А все остальные расчеты, которые происходят "на лету", действительно выполняются очень быстро, так что тут многопоточность и не нужна.
Вероятно, можно их как-то один раз вычислить и закэшировать?
jartmailru: Вероятно, можно их как-то один раз вычислить и закэшировать?
Что такое "закэшировать" в применении к простому MQL4?
Я просто отлаживаю код индюкатора. При нажатии F5 он компилируется заново, но отображает информацию только после расчетов, подавляющая часть которых производится в init().
Можно, конечно, на время отладки кода сохраниться в файл и считывать оттуда. Но это как-то геморрно и не через то место.
Кеш обычно подразумевает оперативную память для быстрого последующего извлечения данных и их модификации.
То есть по сути, получается тривиальная БД. Понятно, что на это потребуются дополнительные мощности, но и выигрыш по производительности может быть ощутимый.
Единственная "оперативная память", которая переживет перекомпиляцию, с применением одних только средств MQL4, - это запись в глобальные переменные. Вы об этом?
Необязательно, например можно использовать маппинг, уже реализованный Жунко. Я сейчас даже говорю не именно о Вашей задаче, просто сам принцип мне кажется вполне рационален.
articul, не нужно быть настолько категоричным. Мир не стоит на месте. Современные монстрообразные видеокарты, исходя из твоей логики, тоже следует признать следствием отсутствия идей в обработке изображений?
Я и сам иногда рад ускориться - просто чтобы не ждать при отладке кода окончания тяжелых расчетов, которые у меня все зашиты в init() (примерно 10 секунд). А все остальные расчеты, которые происходят "на лету", действительно выполняются очень быстро, так что тут многопоточность и не нужна.
Я считаю, что мощности подобного масштаба нужны в проверке тех или иных идей. Например, очень интересно было бы взглянуть на результат форвард-теста за последние 10 лет по 32 валютным парам. И чтобы реально загрузить машинку построим систему на мелком ТФ. Допустим, M15. Оптимизационный период 8 недель, а Out of Sample 2 недели. Хотя на таблице это будет более наглядно:
Если на оптимизацию будет уходить 1 минута, то потратим мы приблизительно 138 часов. Кол-во шагов (оптимизаций) - 8320. Это одна торговая стратегия. А если портфель? А если системы пока нет и мы находимся в поиске? ))) Вот с этого момента становится ясно, что мощностей мало не бывает.
Я и сам иногда рад ускориться - просто чтобы не ждать при отладке кода окончания тяжелых расчетов, которые у меня все зашиты в init() (примерно 10 секунд). А все остальные расчеты, которые происходят "на лету", действительно выполняются очень быстро, так что тут многопоточность и не нужна.
Я считаю, что мощности подобного масштаба нужны в проверке тех или иных идей {...} Кол-во шагов (оптимизаций) - 8320.
Вероятно, можно их как-то один раз вычислить и закэшировать?
Что такое "закэшировать" в применении к простому MQL4?
Я просто отлаживаю код индюкатора. При нажатии F5 он компилируется заново, но отображает информацию только после расчетов, подавляющая часть которых производится в init().
Можно, конечно, на время отладки кода сохраниться в файл и считывать оттуда. Но это как-то геморрно и не через то место.
Вообще-то идея не такая уж абсурдная, Алексей, вопрос только в методе реализации.
Ведь даже у проца неслучайно есть свой кеш, и даже не один)
И как Вы предлагаете это сделать - не обращаясь к кодированию, внешнему по отношению к MQL4?
Я уже предложил - через файлы. Но долго и геморрно.
Кеш обычно подразумевает оперативную память для быстрого последующего извлечения данных и их модификации.
То есть по сути, получается тривиальная БД. Понятно, что на это потребуются дополнительные мощности, но и выигрыш по производительности может быть ощутимый.
Необязательно, например можно использовать маппинг, уже реализованный Жунко. Я сейчас даже говорю не именно о Вашей задаче, просто сам принцип мне кажется вполне рационален.