Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
ИМХО, вопрос совершенно корректный. Прежде чем рисовать стратегию, неплохо бы для начала знать, а будет ли она работать.
Для этого есть 2 пути.
1.Ексель - пишем там стратегию и проверяем. любые графики + неплохая математика к вашим услугам. Да, и + VBA.
2.MatLab - закачиваем котировки в БД, поключаем ее к МатЛаб и там моделируем стратегию. Проще чем в Ексель.
А не проще непосредственно в МТ4/5 все делать? Зачем сторонние программы, если под поиском понимается оптимизация портфеля стратегий? Хотя я не уверен, что вопрос был об этом?
Каждый раз, когда загружаю варианты в автотестер об этом думаю. Надумал
1. Генератор стратегий должен работать по принципу эволюционного дерева от простого к сложному.
2. Варианты должны тут же проверяться на волкинг-форварде и отсеиваться
3.Функции должны готовиться вручную, а генератор должен отрабатывать только варианты их взаимодействия, т.е создавать взаимозависимости.
Кстати, в английской ветке встречал упоминание какой-то болгарской проги с элементами чего-то такого. Но поскольку она была на МТ4 не заинтересовался.
И вот еще какой-то немец, тоже на МТ4 http://darwins-fx-tools.com/
В таком варианте и идёт разработка... Строится граф взаимодействия функций, пространство поиска бесконечно...
Связи между функциями будут более "осмысленными", например, выражение Open>Low имеет смысл, а Open>Volume не имеет, и другие нюансы...
Вот ещё пример бессмысленного выражения: =High>(Open-Close), тоже не проскочит.
Вы так утонете в мелочах. Под функциями я понимаю некий заранее приготовленный внутренне непротиворечивый кусок кода, который с помощью индикаторов или самостоятельно отвечает за некое свойство советника. Т.е. за какую-то определенную идею.
Скажем, кусок, определяющий фракталы на истории. Или кусок, считающий все, что ему не подсунешь. Или определяющий скорость изменения. Или определяющий уровни.
Задача генератора - всячески соединять эти разные куски в единое инженерное решение. К примеру - считаем количество фракталов на уровне и в зависимости от результата ставим приоритет покупке или продаже. Или определяем сумму ускорений на уровне, сравниваем с этим же на истории и вносим поправочный коэффициент в другую функцию. Итд и тп.
Т.е. если проводить аналогию с эволюцией живой материи - есть два типа мутаций, которые дают материал для отбора. Первый это точечные мутации, которые, собственно, и составляют подавляющее число изменений в геноме. Проблема в том, что они , как правило, ни к чему не приводят. Но поскольку этот процесс идет миллиарды лет и на огромной статистике, непрерывно случаются удачи. Лично у меня нет ни миллиона лет, ни сотни, ни даже десятка, чтобы заниматься тупым перебором.
Второй тип мутаций более редкий, но более интересный,- это когда происходит рекомбинация тоже спонтанная , но уже целых готовых решений. К примеру, при образовании нового полового организма происходит перетусовка разных генов отца и матери. Или происходит встраивание вируса в геном. Или происходит захват целого генома самостоятельного чужого организма. Или происходит слияние целых хромосом с образованием нового вида (гоминиды, кстати).
Поэтому задача подобного генератора - по определенному алгоритму рекомбинировать такие функции. Только тогда есть шанс, что возникнет что-то новое
Освободив трейдера от рутины подобный генератор оставил бы ему, собственно, творческую часть - возможность сосредоточиться на новых идеях. Кроме того, механизация всегда снижает риск субъективности, помогает освобождаться от штампов.
Вы так утонете в мелочах. Под функциями я понимаю некий заранее приготовленный внутренне непротиворечивый кусок кода, который с помощью индикаторов или самостоятельно отвечает за некое свойство советника. Т.е. за какую-то определенную идею.
Скажем, кусок, определяющий фракталы на истории. Или кусок, считающий все, что ему не подсунешь. Или определяющий скорость изменения. Или определяющий уровни.
Задача генератора - всячески соединять эти разные куски в единое инженерное решение. К примеру - считаем количество фракталов на уровне и в зависимости от результата ставим приоритет покупке или продаже. Или определяем сумму ускорений на уровне, сравниваем с этим же на истории и вносим поправочный коэффициент в другую функцию. Итд и тп.
Поэтому задача подобного генератора - по определенному алгоритму рекомбинировать такие функции. Только тогда есть шанс, что возникнет что-то новое
А что если один кусок кода (функция) предлагает купить, а другой продать. Как соединить генератору эти куски в консолидированное решение?
Ставить эмпирически приоритеты? Или, допустим, одна функия А считает что цена пойдет вниз с вероятностью Р(А), а другая функция В считает что цена пойдет вверх с вероятностью Р(В), тогда что? Применять формулы теории вероятности?
Если искать стратегию, то не проще. Про остальное не знаю, не думал на эту тему. Хотя, любое моделирование проще в спец средах, а не в МТ. МТ - это конечный продукт, для исследований не создан и не оч. подходит
А что если один кусок кода (функция) предлагает купить, а другой продать. Как соединить генератору эти куски в консолидированное решение?
Ставить эмпирически приоритеты? Или, допустим, одна функия А считает что цена пойдет вниз с вероятностью Р(А), а другая функция В считает что цена пойдет вверх с вероятностью Р(В), тогда что? Применять формулы теории вероятности?
Вы так утонете в мелочах. Под функциями я понимаю некий заранее приготовленный внутренне непротиворечивый кусок кода, который с помощью индикаторов или самостоятельно отвечает за некое свойство советника. Т.е. за какую-то определенную идею.
Скажем, кусок, определяющий фракталы на истории. Или кусок, считающий все, что ему не подсунешь. Или определяющий скорость изменения. Или определяющий уровни.
Задача генератора - всячески соединять эти разные куски в единое инженерное решение. К примеру - считаем количество фракталов на уровне и в зависимости от результата ставим приоритет покупке или продаже. Или определяем сумму ускорений на уровне, сравниваем с этим же на истории и вносим поправочный коэффициент в другую функцию. Итд и тп.
Т.е. если проводить аналогию с эволюцией живой материи - есть два типа мутаций, которые дают материал для отбора. Первый это точечные мутации, которые, собственно, и составляют подавляющее число изменений в геноме. Проблема в том, что они , как правило, ни к чему не приводят. Но поскольку этот процесс идет миллиарды лет и на огромной статистике, непрерывно случаются удачи. Лично у меня нет ни миллиона лет, ни сотни, ни даже десятка, чтобы заниматься тупым перебором.
Второй тип мутаций более редкий, но более интересный,- это когда происходит рекомбинация тоже спонтанная , но уже целых готовых решений. К примеру, при образовании нового полового организма происходит перетусовка разных генов отца и матери. Или происходит встраивание вируса в геном. Или происходит захват целого генома самостоятельного чужого организма. Или происходит слияние целых хромосом с образованием нового вида (гоминиды, кстати).
Поэтому задача подобного генератора - по определенному алгоритму рекомбинировать такие функции. Только тогда есть шанс, что возникнет что-то новое
Освободив трейдера от рутины подобный генератор оставил бы ему, собственно, творческую часть - возможность сосредоточиться на новых идеях. Кроме того, механизация всегда снижает риск субъективности, помогает освобождаться от штампов.
Мелочей действительно много.
Стараюсь делать универсальную систему, чтобы с минимальными усилиями можно было добавлять разные возможности анализа индикаторов, свечей и др. Каждая функция имеет информацию, с какими данными может работать,и какие данные будут на выходе. Индикаторы тоже будут описываться, какого рода данные они предоставляют. Данные разделяются на типы как простые так и сложные, например {double} и {int,double}. Разделяются на категории, для того же примера "цена" и "позиции на графике", ещё пример:"прямая"(можно использовать для определения каналов) и т.п. Разделяются по "типу шкалы", например "константа"(параметр стратегии), "индекс"(есть минимум и максимум), "отношение"(есть только одна точка отсчёта, например цена, объём) и т.д. Необходимо непротиворечиво модифицировать стратегию, тут такой нюанс возникает, модификация в одном месте может влиять на условия модификации в другом месте.
Верно вы всё говорите... Для уменьшения количества комбинаций перебора и используются выше изложенные ограничения(тип, шкала, категория), пока достаточно будет и точечных изменений(добавление/удаления одной/несколько функций).
"рекомбинация тоже спонтанная , но уже целых готовых решений" - приходила данная мысль), сложно представить, как это всё можно реализовать. У группы объединённых функций связей с "внешним миром" скорее всего будет больше чем в одной функции, поэтому возможностей вклинить это всё будет меньше. Алгоритм сильно усложняется, оставим до лучших времён)).