Вот что можно сделать с OpenCL прямо в терминале MetaTrader 5 без всяких DLL - страница 6

 
Alexey Volchanskiy:

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

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

Это я написал для тех, кто думает, вот куплю сейчас 2 крутые видяхи и все у меня в тестере залетает.

только вчера обсуждал это в попытках понять-куда это прикрутить в трейдинге? волны-море - это все красиво,но к трейдингу отношения не имеет никакого,от слова совсем. а тут вроде как люди собрались именно за ним,за трейдингом. а сколько тут человек в итоге пользует НС? 2.5 человека? в ветке про МО прекрасно видно их колво, да и то, не все используют НС.

 
Alexey Volchanskiy:

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

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

Это я написал для тех, кто думает, вот куплю сейчас 2 крутые видяхи и все у меня в тестере залетает.

Когда не параллелится внутренняя логика советника -  можно параллелить советника целиком, один поток - один советник. Так работает облако и агенты вообще, один поток == один советник == один прогон по истории, я ж привел пример такого распараллеливания.

К примеру, такой подход позволяет не только без особых проблем добиться существенного ускорения в самодельных оптимизаторах, но и становится возможным осуществлять внутреннюю самомоптимизацию в рамках общей оптимизации в облаке (например, оптимизация с внутренним валк-форвардом). Ну и никто конечно не запрещает использовать дополнительное распараллеливание внутри каждого потока (в моём примере я этого не делал, хотя возможность есть). Таким образом когда речь идет об оптимизации можно сказать, что всегда есть то, что можно распараллелить, всегда.

 
Andrey Dik:

Когда не параллелится внутренняя логика советника -  можно параллелить советника целиком, один поток - один советник. Так работает облако и агенты вообще, один поток == один советник == один прогон по истории, я ж привел пример такого распараллеливания.

К примеру, такой подход позволяет не только без особых проблем добиться существенного ускорения в самодельных оптимизаторах, но и становится возможным осуществлять внутреннюю самомоптимизацию в рамках общей оптимизации в облаке (например, оптимизация с внутренним валк-форвардом). Ну и никто конечно не запрещает использовать дополнительное распараллеливание внутри каждого потока (в моём примере я этого не делал, хотя возможность есть). Таким образом когда речь идет об оптимизации можно сказать, что всегда есть то, что можно распараллелить, всегда.

Все верно, но какое отношение выделенное имеет в OCL? Это задача разработчиков оптимизатора - обеспечить оптимизацию на ГПУ, как на облаке, чего пока, я так понял, нет. Или вы о том, чтобы написать обертку вокруг советника, внутри которой они выполнялись, как OCL потоки? Сегодняшний оптимизатор такого хода не поймет. 

На сегодняшний день остается самому писать свой оптимизатор, тут все, что угодно, можно сделать.

Вообще смысл поста был отрезвить в основном непрограммистов или начинающих, лишить ненужных иллюзий. 

 
Alexey Volchanskiy:

Все верно, но какое отношение выделенное имеет в OCL? Это задача разработчиков оптимизатора - обеспечить оптимизацию на ГПУ, как на облаке, чего пока, я так понял, нет. Или вы о том, чтобы написать обертку вокруг советника, внутри которой они выполнялись, как OCL потоки? Сегодняшний оптимизатор такого хода не поймет. 

На сегодняшний день остается самому писать свой оптимизатор, тут все, что угодно, можно сделать.

Вообще смысл поста был отрезвить в основном непрограммистов или начинающих, лишить ненужных иллюзий. 

Я привел пример, в котором на устройство OCL отправляется логика советника целиком вместе с тестируемой историей (дин поток == один советник == один прогон по истории). Такое решение понимает и тестер и оптимизатор. Конечно это решение для программистов.

А для простых пользователей - да, обламинго, ускорения от нововведений на своих советниках они не получат. Может быть только тогда, когда разработчики умудряться отправлять в OCL устройство советник целиком в виде перекомпилированной специфичной программы наподобие шейдеров, но об этом пока речь не идет.

 
Andrey Dik:

Я привел пример, в котором на устройство OCL отправляется логика советника целиком вместе с тестируемой историей (дин поток == один советник == один прогон по истории). Такое решение понимает и тестер и оптимизатор. Конечно это решение для программистов.

А для простых пользователей - да, обламинго, ускорения от нововведений на своих советниках они не получат. Может быть только тогда, когда разработчики умудряться отправлять в OCL устройство советник целиком в виде перекомпилированной специфичной программы наподобие шейдеров, но об этом пока речь не идет.

Насчет примера пока не могу судить, надо OCL живьем щупать, но вроде жизненно.

А вот в выделенное слабо верится. Придется MQ писать какие-то мосты, чтобы можно было из OCL дергать MQL API, особенно торговые функции, доступ к тайм-сериям, индикаторам... Это мраки полные, у МТ5 еще дофига детских болячек, которые до сих пор исправляются, обычно через обращение в СД.

 
Alexey Volchanskiy:

Насчет примера пока не могу судить, надо OCL живьем щупать, но вроде жизненно.

А вот в выделенное слабо верится. Придется MQ писать какие-то мосты, чтобы можно было из OCL дергать MQL API, особенно торговые функции, доступ к тайм-сериям, индикаторам... Это мраки полные, у МТ5 еще дофига детских болячек, которые до сих пор исправляются, обычно через обращение в СД.

Да это ладно, но то, что метаэдитор остаётся на уровне "Блокнота" 1995 года, это совсем печально, и при том, что на носу уже 2017 год. Делают что-то, но чтоб для этого чего-то написать - нужно писать в древнем эдиторе.

Господа РАЗРАБОТЧИКИ, сделайте наконец-то хотя-бы подсветку совпадений, как в Notepad!

 
Alexey Volchanskiy:

Все здорово, но! С OCL и вообще со всеми средствами параллелизации есть большая проблема - очень малая часть алгоритмов может эффективно распараллеливаться. 



Тю, все просто. Параллелится алгоритм или нет, думать и не нужно.   Подход такой: смотришь на алгоритм - видишь цикл -> считай что его уже можно запараллелить (большая вероятность).  Нет циклов - нет причин для беспокойства. 

 
Vitaly Muzichenko:

Да это ладно, но то, что метаэдитор остаётся на уровне "Блокнота" 1995 года, это совсем печально, и при том, что на носу уже 2017 год. Делают что-то, но чтоб для этого чего-то написать - нужно писать в древнем эдиторе.

Господа РАЗРАБОТЧИКИ, сделайте наконец-то хотя-бы подсветку совпадений, как в Notepad!

Да я тут уже 2 поста написал про то, что тики сырые. Удалили. И Ваш пост удалят. Не нужны в этой ветке админам/модераторам упоминания о недоработках MQ. Пир во время чумы...
 
Alexey Kozitsyn:
Да я тут уже 2 поста написал про то, что тики сырые. Удалили. И Ваш пост удалят. Не нужны в этой ветке админам/модераторам упоминания о недоработках MQ. Пир во время чумы...

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

Вот и тут, куча всяких примочек для написания, но там где нужно всё это писать, находится на уровне 1995 года, в нём-же писать - целая каторга, если код состоит более чем 200 строк

и при этом уважаемый Ренат пишет:

Renat Fatkhullin:

К сожалению, на Windows XP об OpenCL надо забыть. Да и вообще об 32 битных операционках - на носу 2017 год.

 А где-же тогда метаэдитор 2016 года? 

Пожалуйста, сделайте хотя-бы подсветку кода, ну а со временем если возможно - фолдинг! 

 
Vitaly Muzichenko:

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

Вот и тут, куча всяких примочек для написания, но там где нужно всё это писать, находится на уровне 1995 года, в нём-же писать - целая каторга, если код состоит более чем 200 строк

и при этом уважаемый Ренат пишет:

 А где-же тогда метаэдитор 2016 года? 

Пожалуйста, сделайте хотя-бы подсветку кода, ну а со временем если возможно - фолдинг! 

Тоже иногда удивляюсь направлению развития MT. Но разработчикам виднее...
Причина обращения: