Subj
По результатам обсуждений последних дней увидел непонимание, цель этого текста — прояснить, расставить точки над й.
Непонимание касается того, каким образом я обновляю торговые алгоритмы и почему попытки повторить не увенчиваются успехом.
Напишу последовательность шагов ниже в виде скрипта.
- Создаём много разных стратегий, они же торговые алгоритмы. Если у вас меняются параметры, это один и тот же алгоритм. Я же имею ввиду, что они должны быть принципиально разные. Например: открываемся по пересечению МА, закрываемся по стохастику. Открываемся по RSI, закрываемся скользящим стопом. Открываемся по MACD, закрываемся по пересечению Close AMA и т.д.
- Тестируем их на разных инструментах и разных периодах. Дискретность можно выбрать месяц.
- Успешные запоминаем, даже если они были успешными только на одном инструменте и в одном месяце.
- Далее тестируем скользящим окном. Определяем дату начала, пусть 01.01.2023
- Определяем шаг (7 дн) и размеры окна (14 дн)
- Тестируем всё, что получилось в (3), на периоде в 14 дн до даты из (4), отбираем топ нужного количества по, например, прибыли (у меня сейчас так, и на графике ниже так). Например, вы выделили на инструмент депозит 1000 и хотите, чтобы у вас было 10 алгоритмов в лонг и 10 в шорт. Соответственно, отбираете 10 лучших лонг-алгоритмов по прибыли и 10 лучших шорт-алгоритмов. Понятно, что по части алгоритмов там будут гигантские просадки и вообще в выборку попадёт часть алгоритмов, которые нужно исключить, поскольку мы тут смотрим только на прибыль. Пока что на это забьём, ниже будет понятно, почему.
- После того, как отобрали нужное количество для лонг и шорт, с даты (4) торгуем ими на длину шага (5).
- В конце периода в 23:59 принудительно всё закрываем.
- Добавляем к дате (4) шаг (5) и повторяем с шага (6) до тех пор, пока дата не станет той, до которой хотели тестировать.
При таком подходе имеем на криптовалютных фьючерсах (плечо 10, стартовый депозит 1000, комисс 0,04%) следующий рост чистой эквити (+156% за менее чем полгода):
То есть, даже несмотря на тот ужас, что внутри под капотом (только по прибыли отобранные алгоритмы с большими просадками), видим уже неплохую картину роста. Если подбирать алгоритмы не только по максимальной достигнутой прибыли, но и по гладкости эквити и минимуму просадок, то этот посредственный результат увеличивается почти на порядок, примерно до 1200-1300% за полгода, а кривая становится практически прямой. Это упражнение я как раз и проделывал руками в начале июня на реальном счёте.
Если убрать плечи, то получится соответственно 15% и 120-130% за полгода.
Результаты получаются разными в зависимости от того, что мы зададим в (5). Общее правило — при увеличении длины отрезков доходность падает.
Сомневаюсь, что это будет работать или что вы достигнете сопоставимых результатов, если у вас всего несколько торговых алгоритмов, но это покажет только эксперимент.
Дополнительно отмечу, что это всё работает на минутках. Там очень, очень много шума, но и доходность несопоставима с 15 или, тем более 60 и выше таймфреймами. И в этой концепции шум, как получилось в реальной торговле, не мешает. Нужно просто его правильно отфильтровать.
Для примера приведу описание одного алгоритма:
для покупки (все три сигнала должны стать истинны)
B:AMA/Close_AboveIndicator; — Close должна быть выше AMA
B:DeepExtremumHigh_AbsSpeedFall; — Абсолютное значение скорости индикатора DeepExtremumHigh падает
B:MACDCD_DirectionDown; — значение CD индикатора MACD уменьшается — кривая движется вниз
для продажи (все три сигнала должны стать истинны)
S:DEMA_AbsSpeedGrows; — абсолютная скорость изменения DEMA растёт
S:HMA/DEMA_CrossDown; — HMA пересекла DEMA вниз
S:Stochastic%K/Stochastic%D_CrossUpContinues; — последнее пересечение медленного стохастика быстрым (не важно, сколько свечей назад) было вверх
и это указывает, что этому алгоритму разрешён только лонг
M:LongAllowed;
Прелесть такого описания стратегии в том, что не имеет значения, какой тут инструмент, какая у него цена или волатильность и какой таймфрейм. В нём не зашиты никакие абсолютные или относительные значения. По сути, просто идёт оперирование сигналами. А это значит, что можно запускать одну и ту же стратегию и сравнивать её результаты на разных рынках, разных инструментах и таймфреймах, но я работаю только на минутках, с криптовалютными фьючерсами, фьючерсами МосБиржи и акциями МосБиржи, во всяком случае, пока.
И если после прочтения стало яснее, как я это делаю, то цель поста достигнута.
В 2005 г я познакомился с прогой Нирвана.Там из 400 разных систем и алгоритмов выходил 1 сигнал лонг или шорт. Боюсь тебя обидеть, но ты изобретаешь колесо… перебирая алгоритмы, индикаторы и системы.Проги ВА уже давно есть и они размечают график в любых таймах, но дают сотни вариантов с разной вероятностью и вверх и вниз.Я отказался от любых прог и инд-в в 2010г и советую это сделать всем в пользу VSA и ВА Эллиота.
А главное — я стал очень ленивым, но в хорошем смысле, то есть, если я могу написать код, который будет делать рутинную работу за меня, то лучше я его напишу. Тем более, я знаю VB, C#, SQL, Java, Python, Lua и бог его знает сколько ещё языков, что я, зря это всё учил? Сначала ты работаешь на знания, а потом пусть они работают на тебя.
Вопреки устоявшемуся мнению, хаос гораздо проще для прогноза, чем случайный процесс. И вообще, вложенная размерность приращений биржевых цен обычно сильно больше характерной для хаотического движения. где-то 10-15 против 3-5 для хаоса.
Цикл времени = фрактал Эллиота 3-2 имеет закон своего рисования.Хаос тем сильнее чем меньше ликвидность те в малых таймах или в неликвидах.
да или нет?
если НЕТ, то тогда НЕТ доказательства работоспособности алгоритмов на незнакомых данных… а если его нет, то о чем спич?
внимательно перечитал п.1 и если все так, как описано в нём, плюс к тому, если нет проверки на устойчивость решения, то можно сделать вывод, что все получаемые решения могут являться случайными
и если это так, то однажды звезды могут встать так, что будет очень неприятно
есть довольно точная наука, именуемая математикой, и если её игнорировать, то можно очень сильно раскаяться в будущем
переобученность ещё никто не отменял
не обязательно, что это произойдет, тем более, если человек из 1 рубля умеет делать 441 рубль за 90 дней, но опасность такая всегда будет иметь место
с третьей стороны, если человек умеет делать из 1 рубля целых 441 рубль за 90 дней, то зачем он всем рассказывает об этом?
лучше пусть пришлет через полгода фото с яхты на багамах и это будет самой лучшей рекламой
при этом никого не будет интересовать, как именно он это сделал ))) не так ли?
лично я порадуюсь за него ))) и буду с особенным усердием перечитывать его посты, пытаясь понять то, что он не сказал ))
bascomo,
лично я всегда радуюсь, когда кто-то достигает чего-то необычного!!!
это значит, что на одного счастливого человека стало больше, а это — хорошо!!!
у нас обычно так:
1. Собираем пул робастных систем (очевидно их количество не тысяча).
2. Оптимизируем параметры и таймфреймы за окно.
3. Выбираем по ROA.
4. Запускаем в следующем окне.
Но мысль понял: кидаем случайные параметры, но только один раз.
У MACD, AMA, HMA, DEMA, Stochastic нет параметров????
На форексе не проверяли?
Отдельно «радуют» комментарии. Человек по сути раскрывает полную рабочую методику. Комментарии ясно показывают, почему 95% людей так никогда ничего и не заработают.