Концепция работы на рынке:
1. Принимаем, что всё рыночное пространство состоит из 3-х состояний:
— направленное движение (тренд)
- ненаправленное движение (боковик)
- переход между этими состояниями.
2. Создаём торговую систему для тренда (стопы + высиживание прибыли).
3. Создаём торговую систему для боковика (без стопов + короткие тэйки)
4. Применяем наклон эквити или статистику преобладания прибыльных и убыточных дней как индикатор для включения 1-й или 2-й ТС.
Получаем следующий результат:
1. Трендовый рынок. Включается трендовая ТС и зарабатывает на «своём» рынке.
2. Переход от тренда к боковику. Показатели трендовой ТС постепенно ухудшаются, и она выключается.
3. Ненаправленный рынок. Включается ТС для боковика и зарабатывает на «своём» рынке.
4. Переход от боковика к тренду. Показатели нетрендовой ТС постепенно ухудшаются, и она выключается.
5. Закольцовываем эту последовательность действий.
Видит ли кто-то ошибки в такой архитектуре или в применяемой модели?
Тем, кто не читал предыдущий топик этой темы, рекомендую для начала ознакомиться с ним [1].
В комментариях к предыдущему топику меня критиковали за неоптимальность кода Python. Однако, текст читают люди с совершенно разной подготовкой — от почти не знающих Python или знающих другие языки программирования, до продвинутых пользователей. Последние легко могут обнаружить неоптимальность кода и заменить его своим. Тем не менее, код должен быть доступен и новичкам, возможно не обладающим знанием пакетов и продвинутых методов. Поэтому, в коде я буду, по возможности, использовать только базовые конструкции Python, не требующие глубоких знаний, и которые могут легко читаться людьми, программирующими на других языках. Вместе с тем, по мере изложения, без фанатизма, буду вводить и новые элементы Python.
Если вы хотите как-то улучшить или оптимизировать код, приводите его в комментариях — это только расширит и улучшит изложенный материал.
Ну, а сейчас мы займемся разработкой и тестированием индикаторов. Для начала нам нужна простейшая стратегия с использованием МА — его и построим. Самой лучшей по характеристикам МА является ЕМА. Формула ЕМА:
Для моделирование ТС на Python, прежде всего нужен сам Python. Pythonы бывают очень разные.
Самый большой и длинный Python — Anaconda (https://anaconda.org/). Скачать дистрибутив Anaconda можно здесь — Индивидуальное издание -https://www.anaconda.com/products/individual.
Я работаю именно с Anaconda. Установив Anaconda мы получаем сам Python, уже установленные значительную часть нужных и ненужных пакетов с библиотеками Python, и несколько сред разработки. И все это сразу готово к работе, и нам, по большей части, уже не придется дополнительно устанавливать пакеты и среды.
Самый маленький Python последней версии 3.8.2. скачивается с сайта самого Python — https://www.python.org/. Это, практически, только сам язык, компилятор и минимальный набор пакетов. Сделать с ним практически ничего невозможно, и для работы придется постоянно устанавливать нужные пакеты. Среду разработки придется также устанавливать самостоятельно.
Этот Python больше подходит для запуска и работы с уже отлаженными законченными программами.
Одни торговые системы легко отдают обратно то, что заработали на попутном ветре тренде, а другие, если захватили прибыль, то как бы связывают её внутри себя, вследствие чего она почти не утекает обратно (благодаря чему обеспечивают устойчивый поступательный рост эквити).
Как в науке называется этот их различающийся параметр?
Заметил по своей торговле, что как только пытаешься торговать 1 инструментом (а не портфелем разных инструментов), сразу же вся торговля разваливается: стремительный слив, убытки, забываешь, как выглядит прибыль, рваная эквити, высокая цена любой ошибки.
Кто сталкивался с таким?
В чём может быть причина?