Стратегии
Freqtrade 'Low_BB' от berlinguyinca (Thorsten), точный перенос: только длинные позиции, покупка на свече 1m при close <= 0.98 x нижней полосы Боллинджера(20,2); выходы ONLY через таблицу ROI {0:90%,1:5%,10:4%,15:50%} и фиксированный стоп-лосс -1.5%. Правила запускаются для каждой пары в корзине из 6 альткоинов Binance Spot.
Итог: Бэктестинг
LowBbFreqtradeSpotBasket
Freqtrade 'Low_BB' от berlinguyinca (Thorsten), точный перенос: только длинные позиции, покупка на свече 1m при close <= 0.98 x нижней полосы Боллинджера(20,2); выходы ONLY через таблицу ROI {0:90%,1:5%,10:4%,15:50%} и…
Гипотеза
Точный перенос: параметры взяты из исходника — BB(20,2) по close, множитель 0.98, ROI {0:0.9,1:0.05,10:0.04,15:0.5}, стоп-лосс -0.015. Используется BINANCE_SPOT, поскольку стратегия допускает только длинные позиции без кредитного плеча. Объём спотовой торговли ниже квоты 15%, а комиссия спот-торговли (0.20% RT) соответствует этой схеме. OKX_SPOT и BYBIT_SPOT добавили бы разнообразие площадок, но в их каталогах 1m есть лишь примерно неделя истории (проверено), поэтому использовать их нельзя. BTC исключён (чрезмерно исследованный и почти не даёт сигналов). Корзина из 6 альткоинов отражает список пар Freqtrade с отдельным расчётом по каждой паре и повышает число сделок выше частоты около 10/год на пару. В плане нет настраиваемых параметров, поскольку точный перенос нужно проверять без изменений.
Реализация
Точная реализация стратегии Freqtrade Low_BB от berlinguyinca (Thorsten). Те же правила независимо применяются к каждому из 6 альткоинов Binance Spot (DOGE, SOL, AVAX, ADA, XRP, LINK). Вход: рыночная покупка после закрытия свечи 1 мин., когда цена закрытия <= 0.98 x нижней полосы Боллинджера (20, 2, выборочное стандартное отклонение) по цене закрытия. Выходы задаются только биржевым брекетом: фиксированный стоп -1.5% и лимитный тейк-профит, цена которого корректируется до уровня minimal_roi с учётом возраста сделки 0:90%, 1:5%, 10:4%, 15:50%. На каждую пару выделяется 1/6 капитала, плечо 1.0, только длинные позиции.
Итерация 3 устраняет ошибку уровня 1.5: «optimization_plan фиксирует кредитное плечо на уровне 1.0». В параметрах отсутствовал фиксированный параметр плана `leverage` (float 1.0). Теперь он добавлен и считывается в self.leverage, как и config.leverage. Он умножает номинал на пару, что ничего не меняет при 1.0. Все остальные фиксированные параметры плана присутствуют и имеют нужные типы (bb_window — int 20, остальные — float). Торговая логика, сигнал, размер позиции и изменения производительности итерации-2 не изменились, поэтому прогнозируемое число сделок осталось прежним.
Результаты верификации
Если полный бэктест завершится по тайм-ауту, прежде чем менять правила, измерь оставшиеся затраты на обработку каждой свечи. Начни с запросов cache.positions_open/orders_open на каждой свече дополнительной пары. Не исключай пары и не меняй таймфрейм: это нарушит точность переноса.
Вычислительный бюджет (L176). Запуск загружает 6 инструментов со свечами 1m примерно за 2,616 дней: около 3.77M свечей на инструмент и около 22.6M всего. Затраты на одну свечу — O(1): скользящая сумма для полосы Боллинджера пересчитывается каждые 500 свечей, переоценка ROI выполняется только при изменении уровня ROI, повторной подгонки или ранжирования на каждой свече нет. В песочнице обработка 30 дней всё равно заняла 290 секунд. Прогноз для базового варианта — около 25,000 секунд, близко к бюджету оптимизации в 36,000 секунд. Затраты растут пропорционально длине периода и не увеличиваются из-за длины истории. Полный бэктест и walk-forward-анализ всё ещё могут превысить лимит времени.
При желании привяжи стоп к avg_px_open на первой свече после исполнения, так же как переоценивается тейк-профит.
Стоп и первоначальный тейк-профит брекета привязаны к цене закрытия сигнальной свечи, а не к фактической цене исполнения. При последующей переоценке ROI используется avg_px_open. Стоп может отличаться на несколько базисных пунктов от цены входа Freqtrade * (1-0.015). При 1m эффект невелик.
Песочница охватила 30 дней и закрыла 16 позиций. Средняя доходность составила 0.177% от номинала, ниже минимального порога жизнеспособности спот-стратегии 0.25%; PF 1.14, доля прибыльных сделок — 31%. Моделируемое влияние издержек составило 43% от валового результата, поскольку каждый вход — рыночная покупка на резком падении за 1 минут. Когда возраст сделки достигает 15 минут, целевой уровень ROI составляет 50%, и ордер никогда не исполняется. Поэтому почти каждая сделка старше 15 минут закрывается по стопу -1.5%. Средняя длительность удержания — около 3 часов. Следовательно, результат зависит от доли отскоков, достигающих +4-5% в течение 15 минут. В полном бэктесте проверь доходность каждой сделки после влияния издержек относительно полного цикла 0.20%, а также сравни долю выходов по стопу с долей выходов по ROI.
История итераций
sandbox_timeout: проверка не пройдена (уровень 3 — бэктест в песочнице): пробный запуск превысил лимит времени 300s на окне примерно в 20000 свечей (30 дней данных DOGEUSDT.BINANCE_SPOT-1-MINUTE-LAST-EXTERNAL). Обычно это указывает на обработку каждой свечи с затратами, растущими вместе с историей, например повторное сканирование всего ряда финансирования/дополнительных данных либо создание списка и вызов min()/sorted() внутри calculate_signal()/on_bar() на каждой свече. Заранее отсортируй массивы временных меток ONCE в __init__ и используй bisect или кэшируй запросы по временной метке, чтобы обработка каждой свечи имела сложность O(log n), а не O(n).
Проверка не пройдена (уровень 1.5 — согласованность гипотезы и конфигурации) [класс=hypothesis_mismatch]: - optimization_plan фиксирует кредитное плечо на уровне 1.0
Анализ
Low_BB
Stratmill — это инструмент для исследований и бумажной торговли, а не финансовая консультация или брокер. Результаты бэктестов и бумажной торговли являются гипотетическими. Торговля сопряжена с риском убытков.