Комментарии пользователя Beach Bunny

Мои комментарии:в блогах в форуме
Ответы мне:в блогах в форуме
Все комментарии: к моим постам

Сенкс чел! 
Я только что стырил твою стратегию, еще правда не проверил насколько хорошо это работает! 

 

from __future__ import annotations

from dataclasses import dataclass
from typing import Iterable, Sequence

import backtrader as bt


@dataclass(frozen=True)
class SignalChoice:
    period: int
    value: float
    score: float


class AdaptiveCompositeMomentum(bt.Indicator):
    lines = ("momentum",)
    params = dict(
        price_period=5,
        momentum_periods=(8, 13, 21, 34),
        endpoint_window=4,
        pattern_window=3,
        normalize=True,
        smooth_period=5,
    )

    plotinfo = dict(subplot=True)
    plotlines = dict(momentum=dict(color="tab:blue"))

    def __init__(self) -> None:
        periods = tuple(int(p) for p in self.p.momentum_periods)
        self._periods = periods
        self._smoothed_price = bt.ind.SMA(self.data, period=int(self.p.price_period))
        self.addminperiod(
            int(self.p.price_period)
            + max(periods)
            + int(self.p.endpoint_window)
            + int(self.p.pattern_window)
            + int(self.p.smooth_period)
            + 2
        )

        self._raw_values: list[float] = []

    def next(self) -> None:
        current_slope = self._slope(0, int(self.p.pattern_window))
        parts: list[float] = []

        for period in self._periods:
            endpoint_ago = self._best_endpoint(period, current_slope)
            old_price = float(self._smoothed_price[-endpoint_ago])
            cur_price = float(self._smoothed_price[0])

            if self.p.normalize:
                value = 0.0 if old_price == 0 else (cur_price - old_price) / old_price
            else:
                value = cur_price - old_price

            parts.append(value)

        raw = sum(parts) / len(parts)
        self._raw_values.append(raw)

        smooth_period = int(self.p.smooth_period)
        if smooth_period <= 1 or len(self._raw_values) < smooth_period:
            self.lines.momentum[0] = raw
        else:
            self.lines.momentum[0] = sum(self._raw_values[-smooth_period:]) / smooth_period

    def _best_endpoint(self, period: int, current_slope: float) -> int:
        pattern_window = int(self.p.pattern_window)
        endpoint_window = int(self.p.endpoint_window)

        best_ago = period
        best_error = float("inf")

        for ago in range(max(pattern_window + 1, period - endpoint_window), period + endpoint_window + 1):
            historical_slope = self._slope(-ago, pattern_window)
            error = abs(current_slope - historical_slope)
            if error < best_error:
                best_error = error
                best_ago = ago

        return best_ago

    def _slope(self, index: int, window: int) -> float:
        start = float(self._smoothed_price[index])
        end = float(self._smoothed_price[index - window])
        base = abs(end) if end else 1.0
        return (start - end) / base


avatar
  • 07 мая 2026, 21:56
  • Еще
И сколько вы уже написали торговых ботов?
avatar
  • 06 мая 2026, 22:35
  • Еще
Игорь Колотов, да не, они все ищут способы, как побыстрее вытрясти денежки из гойских карманцев, в которых скопилось 67трлн рубликов, чтобы они при этом не сильно возмущались и не кричали что их грабят.
avatar
  • 06 мая 2026, 16:21
  • Еще
Александр, а зачем же вы их тогда смотрите ?
Вы прости хоспади травокур или
(о ужас) ходок в кафе типа «Голубой шампур» ? 
---
Стругацких а так понимаю, вы тоже читали в кратком изложении, типа «Все произведения Страгацких за 15минут»
avatar
  • 06 мая 2026, 16:17
  • Еще
62rus, двоечник историю почитай, парады проводили каждый год
avatar
  • 05 мая 2026, 05:13
  • Еще
Коммунисты во время отечественной войны, каждый год проводили 7 Ноября парады и не боялись немцев!  -> Не смогли повторить ! 

avatar
  • 04 мая 2026, 21:56
  • Еще
Константин, нет они скоро свою биржУ откроют и там будем торговать вместо MOEX. Писали что узбеки собираются и коцмас осваивать. 
avatar
  • 04 мая 2026, 20:37
  • Еще
Russo turisto obliko morale, сперва расстрелять, потом оживить и утопить.
avatar
  • 04 мая 2026, 20:34
  • Еще
Почему подделка, даже Набиулина сказала 
СМИ: Набиуллина считает сбережения россиян единственным источником финансирования экономики
nsn.fm/economy/smi-nabiullina-schitaet-sberezheniya-rossiyan-edinstvennym-istochnikom-finansirovaniya-ekonomiki

Это не значит что обязательно заморозят вклады, это факт что деньги остались только у  гоев, а значит будут пытаться вытрясти денежки из их карманцев, других то денег больше нет. 
Можно много чего придумать, что уже и делается, придумать новые сборы на что-то, или увеличить штрафы на все.
avatar
  • 04 мая 2026, 19:57
  • Еще
Московский Лоссбой, ну так это против обычных целей где сидят обычные пилоты.
А здесь ведь БЕС-пилотники под управлением БЕС-пилота. 
avatar
  • 04 мая 2026, 19:31
  • Еще
Прикольно канечно
построены по принципу, что  даже если сверзвуковая волна бьет в высотку, вылетает остекление и стены в полтора кирпича, но железобетонный каркас держит,


спустится на ниже этаж и переждать опасность на леснечном проеме, обращая внимание, что б осколки стекол пролетели мимо,

Ежели там стены в полтора кирпича, то тяжелый бес-пилотник же пробьет здание насквозь !
И вылетит с другой стороны!
Кстати в процессе пробития, бес-пилот может вылететь из кресла управления, а вы сидящий к в кресле качалка, можете случайно попать на место бес-пилота в этом бес-пилотнике! 
И как вы будете рулить, если в одной руке скумбрия а в в другой пыво!
avatar
  • 04 мая 2026, 14:07
  • Еще
Так им и надо, ваще на месяц им отключить для безопасности
avatar
  • 04 мая 2026, 13:59
  • Еще
Надо срочно ввести утиль-сбор на системы фильтрации воды!
Ибо нефиг ! 
avatar
  • 04 мая 2026, 13:58
  • Еще
А зачем им российские сыры и йогурты с пальмой?
У них же есть свои каровы и козы?
avatar
  • 03 мая 2026, 16:20
  • Еще
А может и такая прийти
avatar
  • 03 мая 2026, 02:09
  • Еще
Al Bax, у постового Карацупы была огромная… па, семизарядная винтовка и два енотовых тулупа 
avatar
  • 02 мая 2026, 14:28
  • Еще
Граница имеет такую длину что местами можно спокойно слона вывезти.
А золото в слитках можно ваще перекинуть на другую сторону с помощью катапульты, и самое главое это будет бесшумо, только легкий свист пролетающего в небе золотого слитка.
avatar
  • 02 мая 2026, 00:03
  • Еще
master1, значит бакс будет не по 300, а по 500
avatar
  • 01 мая 2026, 22:20
  • Еще
Всё отберут, вместе с трусами! 
avatar
  • 01 мая 2026, 04:55
  • Еще
Выберите надежного брокера, чтобы начать зарабатывать на бирже:
....все тэги
UPDONW
Новый дизайн