Интересная тема для многих: что будет нового в MetaTrader 4 и MQL4 - большие изменения на подходе - страница 66
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Если ты делаешь такой вывод из написанного... значит ты тоже ничего не понял )
Ну вот что ты будешь делать?! Придет, пару слов сказанёт - и всё, пару ночей бессонных обеспечено. )
Пост был не мне, но я тоже теперь спать не буду.
( Утверждать что таковые существуют, значит утверждать что существуют какие-либо торговые горизонты, на которых H-волатильность устойчиво больше 2.0 )
Мне для новой торговли понадобилось улучшить свой тестер. Разбираться в коде старого - больше времени потерять (несколько недель убил - подходы время от времени), чем написать новый.
Итак, с нуля написание нового тестера у меня заняло 5 часов (с отладкой). Его характеристики (меня удовлетворяют, как старт):
Если такую же ерунду запилить на MQL5, то можно использовать Cloud в режиме мат. оптимизации. Только пересылать историю каждый раз придется - тут необходимо штатное сжатие такой инфы.
Итого теоретически можно добиться скорости ~ 100 млрд баров в секунду (на тестовой ТС). Интересно, какова производительность MT5-тестера на всем облаке в тех же попугаях?
100 млрд баров в секунду - хорошая скорость для различного рода исследований. Если перевести в другие единицы, то это скорость говорит о том, что год минутной истории FOREX по одному символу за секунду прогоняется ~ 300 000 раз.
Большая часть времени ушла на изучение синтаксиса языка - гуглил просто. Не программист.
Сразу скажу, писать универсальный фреймворк под свои скромные нужды - огромная потеря времени. Лучше исследовать. Если что-то понадобится учитывать - просто дописать.
Это только ядро, теперь нужен хитрый инструментарий для оптимизатора. Здесь времени уйдет значительно больше - думать надо.
Вот читаю я все это и приходит мне на ум что либо человек совсем потерялся в потоках собственного сознания, либо по крайней мере половина из того, что он писал простая и обыкновенная ложь.
Программист самоучка без глубоких знаний языка за несколько часов написал однопоточный тестер с производительностью 100 000 000 баров в секунду? Для контраста: люди высочайшего уровня профессионализма тратят годы на создание грамотного, высокопроизводительного HFT тестера, создают целые команды для работы с ним и наполнением стратегиями, а здесь один человек решил на коленке собрать тестер и тут же получил производительность на порядок выше, производительности ведущих (закрытых) HFT платформ.
Давайте просто посчитаем, какой пропускной способностью должна обладать память, что бы можно было прогонять 100 000 000 баров в секунду. Каждый бар это 4 цены + AskLow HighBid, что дает в итоге 6 целочисленных типов с длинной 64 бита каждый ( Цены целочисленные (long int) ). Для 100 000 000 баров в секунду потребуется
Это означает, что такой производительность фундаментально и чисто теоретически можно добиться на модулях памяти уровня DDR2 533 и выше. По крайней мере заявленная производительность сопоставима с физическим пределом современного оборудования.
Но программные временные затраты накладывают еще более существенные ограничения. Их нельзя игнорировать. Поэтому я взял быстрый 64 разрядный компилятор Си Win-Lcc 64 и измерил производительность прямого перебора массива баров, без тяжелых математических рассчетов. Прошу заметить: речь идет о прямом, т.е. самом быстром переборе. Без работы с окружением и прочими накладными расходами. В отличии от хренфикса, я привожу полный исходный код моего "тестера стратегий", что бы любой желающий мог скомпилировать его и измерить производительность в своем любимом компиляторе:
Видно, что этот код, в зависимости от директивы Invoke либо перебирает массив и выполняет простое сравнение (очень быстрая операция), либо вызывает функцию, которая выполняет это же сравнение.
Теперь посмотрим, сколько времени понадобилось этому коду, что бы перебрать и сравнить 100 000 000 баров:
Видно что прямой перебор 100 000 000 баров занял 1,28 секунды, что почти на треть хуже заявленной производительности.
Видно что перебор 100 000 000 баров с вызовом расчетной функции на каждом баре занял 1,79 секунды, что более чем в 1.5 раза хуже заявленной производительности.
Все тесты выполнялись на железе i7 870, DDR3 3200 8 Gb.
Большую часть времени при этом заняла собственно подготовка данных (около 9 секунд). Что при малейшей неоптимальности в проектировки оптимизатора выльется в гигантские накладные расходы. Но я не стал учитывать это время, т.к. речь шла исключительно об прогоне стратегии.
Выводы делаете сами. Я надеюсь на цифрах показал, что заявленный результат, мягко говоря не соответствует реалиям. Даже теоретическая производительность кода описывающая оптимизатор не соответствует заявленной. Если же реализовать реальный тестер приближающейся к функционалу заявленного производительность упадет еще ниже, т.к. любой вызов функции, любые мало-мальски полезные математические рассчеты, сразу снизят время голого перебора.
ну это вообще грааль трендовый. Как и устойчиво меньше 2х. Таких инструментов нет, чтобы H-вола по всему ряду была устойчиво меньше или больше 2. На отдельных участках/ в отдельные моменты. Знать когда торговать тренд, когда возврат. Фильтровать базар))
Именно! Но таки в этом случае мы приходим к торговле лимитниками как к конечной фазе развития идеальной торговой системы.
А теперь подумай мозгом, если "идеальная" система обязана торговать лимитниками, то с какой стати реальная должна торговать маркетами или стопами? Из скромности? ;)
Именно! Но таки в этом случае мы приходим к торговле лимитниками как к конечной фазе развития идеальной торговой системы.
Как вы из 2 чисел получили 6 ?
hrenfx: ... Работает с побаровой моделью M1 HighBid + LowAsk (результаты точнее, чем в MT5-тестере).
К тому же зачем шесть, если 4 цены - это цены по биду ( уже включают HighBid )
Именно! Но таки в этом случае мы приходим к торговле лимитниками как к конечной фазе развития идеальной торговой системы.
А теперь подумай мозгом, если "идеальная" система обязана торговать лимитниками, то с какой стати реальная должна торговать маркетами или стопами? Из скромности? ;)
Еще раз:
вот именно, что разница большая. Если в кратце, то 2 типа стратегий - возвратные (mean reversion) и противпоположный поступательные (моментум). Смысл входа/выхода у моментум в сторону движения у mr против. Пробойные это только один из видов вторых (по уровню входа на пробой). И вторые системы не переделаешь на лимитники. Если можно, то это по сути совмещение в одном флаконе 2 этих типа систем на разных масштабах (tf грубо), что редко случается.
Платформа вроде как затачивается под разные рынки и инструменты, а нетолько FX в столовках))
понял и про то, что ничего менять кроме спреда для этого не нужно написал 2013.08.10 05:47, после чего он оформил это в свою гениальную мысль)) Элементарное следствие из его запросов
свет клином сошёлся на этом классе стратегий, чтобы для них менять формат хранимой истории? Это опять же для стратегий класса mr у которых вход/выход лимитами.
Поэтому херня это подгонять историю и платформу под один класс стратегий.
Нужен либо нормальный тиковый тестер, либо возможность юзерам самим собирать из тиков и подсовывать тестеру свою историю с tf<1мин. Тогда желающие могут подсунуть историю с LowAsk -- HighBid, или HighAsk --- LowBid для противоположного класса стратегий. Или более краткосрочные стратегии протестить, для которых минуток мало (не для FX в столовках конечно)
Т.е. Это Вы приходите к торговле лимитниками, но не надо всех чесать под одну гребенку. Лично я торгую моментум и использую входы по рынку. Думаете не пробовал лимитники прикрутить к своим пробойным ТС? Пробывал! Думаете тиковая история что-либо изменила? Есть у меня тиковая история и левел 2 есть, но ничего это не изменило в плане производетльности ТС, наоборот, с заменой на лимитники общая прибыль и мат. ожидание сильно упали, подчеркиваю еще раз: сильно упали.
И только не надо сейчас про идеальную ТС и какой она должна быть. У каждого свое понимание этого, каждый из нас собаку съел на этом и знает о чем он пишет и что такое ТС.
Главная ошибка тех, кто пропагандирует так лимитки в том, что они думают что подать заявку по лучшей цене является синонимом заключения сделки по лучшей цене. В реальности нет понятия лучшей цены. Если Ваш лимитник сработал, рынок отскочил от прежнего уровня. Но есть только текущая цена, вы же почему-то помните старую цену и думаете что текущая цена лучше старой, хотя это не так.
Вот читаю я все это и приходит мне на ум что либо человек совсем потерялся в потоках собственного сознания, либо по крайней мере половина из того, что он писал простая и обыкновенная ложь.
Программист самоучка без глубоких знаний языка за несколько часов написал однопоточный тестер с производительностью 100 000 000 баров в секунду? Для контраста: люди высочайшего уровня профессионализма тратят годы на создание грамотного, высокопроизводительного HFT тестера, создают целые команды для работы с ним и наполнением стратегиями, а здесь один человек решил на коленке собрать тестер и тут же получил производительность на порядок выше, производительности ведущих (закрытых) HFT платформ.
Давайте просто посчитаем, какой пропускной способностью должна обладать память, что бы можно было прогонять 100 000 000 баров в секунду. Каждый бар это 4 цены + AskLow HighBid, что дает в итоге 6 целочисленных типов с длинной 64 бита каждый ( Цены целочисленные (long int) ). Для 100 000 000 баров в секунду потребуется
Это означает, что такой производительность фундаментально и чисто теоретически можно добиться на модулях памяти уровня DDR2 533 и выше. По крайней мере заявленная производительность сопоставима с физическим пределом современного оборудования.
Но программные временные затраты накладывают еще более существенные ограничения. Их нельзя игнорировать. Поэтому я взял быстрый 64 разрядный компилятор Си Win-Lcc 64 и измерил производительность прямого перебора массива баров, без тяжелых математических рассчетов. Прошу заметить: речь идет о прямом, т.е. самом быстром переборе. Без работы с окружением и прочими накладными расходами. В отличии от хренфикса, я привожу полный исходный код моего "тестера стратегий", что бы любой желающий мог скомпилировать его и измерить производительность в своем любимом компиляторе:
Видно, что этот код, в зависимости от директивы Invoke либо перебирает массив и выполняет простое сравнение (очень быстрая операция), либо вызывает функцию, которая выполняет это же сравнение.
Теперь посмотрим, сколько времени понадобилось этому коду, что бы перебрать и сравнить 100 000 000 баров:
Видно что прямой перебор 100 000 000 баров занял 1,28 секунды, что почти на треть хуже заявленной производительности.
Видно что перебор 100 000 000 баров с вызовом расчетной функции на каждом баре занял 1,79 секунды, что более чем в 1.5 раза хуже заявленной производительности.
Все тесты выполнялись на железе i7 870, DDR3 3200 8 Gb.
Большую часть времени при этом заняла собственно подготовка данных (около 9 секунд). Что при малейшей неоптимальности в проектировки оптимизатора выльется в гигантские накладные расходы. Но я не стал учитывать это время, т.к. речь шла исключительно об прогоне стратегии.
Выводы делаете сами. Я надеюсь на цифрах показал, что заявленный результат, мягко говоря не соответствует реалиям. Даже теоретическая производительность кода описывающая оптимизатор не соответствует заявленной. Если же реализовать реальный тестер приближающейся к функционалу заявленного производительность упадет еще ниже, т.к. любой вызов функции, любые мало-мальски полезные математические рассчеты, сразу снизят время голого перебора.
Цифры конечно вещь упрямая, да и оратор всё правильно говорит, но давайте посмотрим на это с другой стороны, дебошир это не дебошир, а крупный научный работник, приехал к нам в гости, собирать так сказать поговорки пословицы, тосты ... ну и немного пере (в) брал
Так что мы имеем дело с несчастным случаем на производстве ... :)
Короче не по рыцарски это пинать сидящего в бане, он ведь не ответит.
Вот читаю я все это и приходит мне на ум что либо человек совсем потерялся в потоках собственного сознания, либо по крайней мере половина из того, что он писал простая и обыкновенная ложь.
Программист самоучка без глубоких знаний языка за несколько часов написал однопоточный тестер с производительностью 100 000 000 баров в секунду? Для контраста: люди высочайшего уровня профессионализма тратят годы на создание грамотного, высокопроизводительного HFT тестера, создают целые команды для работы с ним и наполнением стратегиями, а здесь один человек решил на коленке собрать тестер и тут же получил производительность на порядок выше, производительности ведущих (закрытых) HFT платформ.
Выводы делаете сами. Я надеюсь на цифрах показал, что заявленный результат, мягко говоря не соответствует реалиям. Даже теоретическая производительность кода описывающая оптимизатор не соответствует заявленной. Если же реализовать реальный тестер приближающейся к функционалу заявленного производительность упадет еще ниже, т.к. любой вызов функции, любые мало-мальски полезные математические рассчеты, сразу снизят время голого перебора.