diff --git a/aios_core/quant/ml_predictor.py b/aios_core/quant/ml_predictor.py index 64e4e4a7c..c5cdcea46 100644 --- a/aios_core/quant/ml_predictor.py +++ b/aios_core/quant/ml_predictor.py @@ -28,7 +28,14 @@ LOG_TAG = "[QuantMLPredictor]" -DEFAULT_FEATURES = ["open", "high", "low", "close", "volume", "ret1", "ema12", "ema26", "rsi", "vol_ma"] +# Scale-free features (v2 model, trained by scripts/quant_ml_eval_train.py). +# Identical scale across assets (BTC vs PEPE), which the old raw-price feature +# set lacked; order must match the training script exactly. +DEFAULT_FEATURES = [ + "ret1", "ret3", "ret6", "ret12", "ret24", + "rsi", "bb_pos", "macd_norm", "ema_gap", + "vol_ratio", "vol_z", "bar_range_pct", "hl_pos", +] class QuantMLPredictor: @@ -42,8 +49,9 @@ def __init__(self, models_dir: Optional[Path] = None): # ------------------------------------------------------------ loading ---- def _load_model(self) -> None: - """Загрузить CatBoost-модель если она есть.""" + """Загрузить CatBoost-модель; v2 (scale-free features) приоритетнее.""" candidates = [ + self.models_dir / "catboost_price_dir_v2.cbm", self.models_dir / "catboost_price_dir.cbm", self.models_dir / "catboost_price_dir.pkl", ] @@ -69,24 +77,44 @@ def available(self) -> bool: # -------------------------------------------------------- prediction ---- def _features_from_csv(self, csv_path: Path) -> Optional[list]: - """Построить вектор признаков из последних строк CSV.""" + """Построить вектор признаков из последних строк CSV. + + Формулы должны совпадать 1:1 с scripts/quant_ml_eval_train.py + (_compute_features) — модель v2 обучена на этих же признаках. + """ try: df = pd.read_csv(csv_path) except Exception as e: print(f"{LOG_TAG} [WARN] CSV {csv_path}: {e}") return None - if len(df) < 26: + if len(df) < 40: return None df = df.sort_values("timestamp_ms") df["close"] = pd.to_numeric(df["close"], errors="coerce") df["volume"] = pd.to_numeric(df["volume"], errors="coerce") g = df[["open", "high", "low", "close", "volume"]].copy() g["ret1"] = g["close"].pct_change() + g["ret3"] = g["close"].pct_change(3) + g["ret6"] = g["close"].pct_change(6) + g["ret12"] = g["close"].pct_change(12) + g["ret24"] = g["close"].pct_change(24) + chg = g["close"].pct_change() + up = chg.clip(lower=0).rolling(14).mean() + down = (-chg.clip(upper=0)).rolling(14).mean() + g["rsi"] = 100.0 - 100.0 / (1.0 + up / down.replace(0, 1e-9)) + bb_mid = g["close"].rolling(20).mean() + bb_std = g["close"].rolling(20).std() + g["bb_pos"] = ((g["close"] - bb_mid + 2 * bb_std) / (4 * bb_std).replace(0, 1e-9)).clip(0, 1) g["ema12"] = g["close"].ewm(span=12).mean() g["ema26"] = g["close"].ewm(span=26).mean() - g["rsi"] = 100 - 100 / (1 + g["close"].pct_change().rolling(14).mean() / - g["close"].pct_change().rolling(14).std().replace(0, 1e-9)) - g["vol_ma"] = g["volume"].rolling(20).mean() + g["macd_norm"] = (g["ema12"] - g["ema26"]) / g["close"] + g["ema_gap"] = (g["ema12"] - g["ema26"]) / g["close"] + vol_mean = g["volume"].rolling(20).mean() + vol_std = g["volume"].rolling(20).std() + g["vol_ratio"] = g["volume"] / vol_mean.replace(0, 1e-9) + g["vol_z"] = (g["volume"] - vol_mean) / vol_std.replace(0, 1e-9) + g["bar_range_pct"] = (g["high"] - g["low"]) / g["close"] + g["hl_pos"] = (g["close"] - g["low"]) / (g["high"] - g["low"]).replace(0, 1e-9) last = g.dropna().iloc[-1] try: return [float(last[c]) for c in DEFAULT_FEATURES] @@ -130,11 +158,17 @@ def predict_all(self, symbols: Optional[list[str]] = None) -> list[dict]: """Прогноз по всем активам, для которых есть данные.""" if not self.available: return [{"ok": False, "error": "Модель не обучена. Запустите Colab-ноутбук Quant ML Training."}] + # Мёртвые/переименованные тикеры (MATIC->POL, RNDR->RENDER): старые + # папки данных остаются, но в сигналы не включаются. + dead = {"MATIC", "RNDR"} if symbols is None: symbols = sorted(d.name for d in QUANT_DIR.iterdir() - if d.is_dir() and not d.name.startswith("_") and d.name not in ("export", "models", "uniswap_v3")) + if d.is_dir() and not d.name.startswith("_") + and d.name not in ("export", "models", "uniswap_v3", *dead)) out = [] for s in symbols: + if s in dead: + continue r = self.predict_symbol(s) if r.get("ok"): out.append(r) diff --git a/aios_core/quant/rl_signal_bridge.py b/aios_core/quant/rl_signal_bridge.py index 5bf98a7c1..b3fcc51bc 100644 --- a/aios_core/quant/rl_signal_bridge.py +++ b/aios_core/quant/rl_signal_bridge.py @@ -20,11 +20,23 @@ from typing import Optional REPO_ROOT = Path(__file__).resolve().parents[2] -MODEL_FILE = REPO_ROOT / "data" / "quant" / "models" / "ppo_v8.pt" # лучшая LSTM-PPO (300 эп, +75.23%) +MODEL_FILE = REPO_ROOT / "data" / "quant" / "models" / "ppo_v9.pt" # LSTM-PPO v9 (300 эп, sum_rl +96% vs BH −114%) OUT_FILE = REPO_ROOT / "data" / "quant" / "rl_signals.json" LOG_TAG = "[RLSignalBridge]" +# 32 актива среды обучения (quant_train_ppo.py, MultiAssetEnv): +# self.names = sorted(assets.keys()) — onehot-индекс актива в этом порядке. +# Используется как fallback; предпочтительно читать assets из чекпоинта +# модели (ppo_v9.pt сохраняет {"policy", "assets"}), т.к. v8 обучалась с +# MATIC, а v9 — с POL (разные индексы в onehot). +ASSET_ORDER_DEFAULT = sorted([ + "BTC", "ETH", "BNB", "SOL", "XRP", "ADA", "DOGE", "AVAX", "LINK", "DOT", + "POL", "LTC", "TRX", "ATOM", "UNI", "ETC", "FIL", "APT", "NEAR", "ARB", + "OP", "SUI", "TIA", "SEI", "TON", "INJ", "KAS", "FET", "WIF", "BONK", + "PEPE", "SHIB", +]) + class RLSignalBridge: """Консультирующий доступ к RL-сигналам (read-only).""" @@ -33,6 +45,7 @@ def __init__(self, model_file: Optional[Path] = None): self.model_file = Path(model_file or MODEL_FILE) self._policy = None self._model_available = self.model_file.exists() + self.asset_names = ASSET_ORDER_DEFAULT # ---- модель ---- def _load_policy(self): @@ -83,6 +96,7 @@ def forward(self, x): ckpt = torch.load(self.model_file, map_location="cpu") sd = ckpt.get("policy", ckpt) + self.asset_names = sorted(ckpt.get("assets") or ASSET_ORDER_DEFAULT) # определяем архитектуру по наличию lstm-слоя if "lstm.weight_ih_l0" in sd: w = sd["fc_pre.weight"] @@ -124,7 +138,7 @@ def _fetch_binance(self, sym: str, interval: str = "1h", limit: int = 120) -> li d = json.loads(r.read()) return [[int(x[0]), float(x[1]), float(x[2]), float(x[3]), float(x[4]), float(x[5])] for x in d] - def _make_obs(self, rows: list, window: int = 10) -> Optional[list]: + def _make_obs(self, rows: list, asset_name: Optional[str] = None, window: int = 10) -> Optional[list]: import numpy as np if len(rows) < window + 1: return None @@ -140,10 +154,14 @@ def mom(period): m[i] = closes[i] / closes[i - period] - 1.0 return m mom5 = mom(5); mom12 = mom(12) - vol_chg = [0.0] * n - for i in range(1, n): - vol_chg[i] = vols[i] / vols[i - 1] - 1.0 if vols[i-1] else 0.0 - # волатильность + # vol_ratio: volume / rolling(10)-mean — признак #3 среды обучения v8. + # (Раньше здесь был vol_chg — несоответствие обучению: модель видела + # другой 3-й статический признак.) + vol_ratio = [0.0] * n + for i in range(n): + lo = max(0, i - 9) + vol_ratio[i] = vols[i] / ((sum(vols[lo:i + 1]) / (i - lo + 1)) + 1e-9) + # vol_norm: rolling(10) std возвратов / среднее по ряду vol_arr = [0.01]*n for i in range(1, n): w = returns[max(0,i-10):i] @@ -153,7 +171,7 @@ def mom(period): last = n - 1 base = np.concatenate([ rets_w, - [mom5[last], mom12[last], vol_chg[last], vol_arr[last]/vmean] + [mom5[last], mom12[last], vol_ratio[last], vol_arr[last]/vmean] ]).astype(np.float32) exp = self._obs_dim if base.shape[0] == exp: @@ -161,22 +179,26 @@ def mom(period): # мультиактив-модель: base (window+4) + onehot (n_assets) if exp > base.shape[0]: n_assets = exp - base.shape[0] + asset_names = getattr(self, "asset_names", ASSET_ORDER_DEFAULT) + if asset_name is None or asset_name not in asset_names: + # Актив не из обучающего универсума — честно сообщаем «нет сигнала» + # вместо того, чтобы подставлять чужой onehot-индекс. + return None onehot = np.zeros(n_assets, dtype=np.float32) - # предполагаем BTC как индекс 0 (первый актив) - onehot[0] = 1.0 + onehot[asset_names.index(asset_name)] = 1.0 obs = np.concatenate([base, onehot]).astype(np.float32) if obs.shape[0] == exp: return obs return None # ---- предсказание ---- - def predict_symbol(self, binance_symbol: str) -> Optional[dict]: + def predict_symbol(self, binance_symbol: str, asset_name: Optional[str] = None) -> Optional[dict]: policy = self._load_policy() if policy is None: return None try: rows = self._fetch_binance(binance_symbol) - obs = self._make_obs(rows) + obs = self._make_obs(rows, asset_name) if obs is None: return None import torch @@ -184,6 +206,10 @@ def predict_symbol(self, binance_symbol: str) -> Optional[dict]: o_t = torch.tensor(obs, dtype=torch.float32).unsqueeze(0) mean, _, _ = policy(o_t) act = mean[0][0].item() + # В обучении (kg_v8) действие clamp(-1,1) до конвертации в + # дискрету {0,1,2}; без clamp mean может выйти за [-1,1] и дать + # недопустимую позицию (например, -0.5). + act = max(-1.0, min(1.0, act)) pos = int((act + 1) / 2 * 2) / 2.0 # 0, 0.5, 1 return { "symbol": binance_symbol, @@ -204,12 +230,12 @@ def run_all(self, symbols: Optional[dict] = None) -> dict: symbols = { "BTC": "BTCUSDT", "ETH": "ETHUSDT", "SOL": "SOLUSDT", "BNB": "BNBUSDT", "XRP": "XRPUSDT", "ADA": "ADAUSDT", "DOGE": "DOGEUSDT", "LINK": "LINKUSDT", - "DOT": "DOTUSDT", "MATIC": "MATICUSDT", + "DOT": "DOTUSDT", "POL": "POLUSDT", } signals = [] for name, sym in symbols.items(): try: - res = self.predict_symbol(sym) + res = self.predict_symbol(sym, asset_name=name) if res: res["asset"] = name signals.append(res) diff --git a/aios_core/quant_directional_policy.py b/aios_core/quant_directional_policy.py index 80aefb6ab..4864593b5 100644 --- a/aios_core/quant_directional_policy.py +++ b/aios_core/quant_directional_policy.py @@ -33,6 +33,9 @@ class DirectionalV2Config: half_spread_rate: float = 0.0005 slippage_rate: float = 0.0005 candle_seconds: int = 3_600 + take_profit_pct: float = 0.02 + stop_loss_pct: float = -0.01 + trail_ratio: float = 0.988 @classmethod def from_env(cls) -> DirectionalV2Config: @@ -57,6 +60,9 @@ def from_env(cls) -> DirectionalV2Config: half_spread_rate=max(0.0, float(os.environ.get("AIOS_QUANT_HALF_SPREAD_RATE", "0.0005"))), slippage_rate=max(0.0, float(os.environ.get("AIOS_QUANT_SLIPPAGE_RATE", "0.0005"))), candle_seconds=max(60, int(os.environ.get("AIOS_QUANT_CANDLE_SECONDS", "3600"))), + take_profit_pct=max(0.0, float(os.environ.get("AIOS_QUANT_TAKE_PROFIT_PCT", "0.02"))), + stop_loss_pct=min(0.0, float(os.environ.get("AIOS_QUANT_STOP_LOSS_PCT", "-0.01"))), + trail_ratio=min(1.0, max(0.0, float(os.environ.get("AIOS_QUANT_TRAIL_RATIO", "0.988")))), ) def entry_execution_price(self, mid_price: float) -> float: diff --git a/aios_core/quant_directional_v2.py b/aios_core/quant_directional_v2.py index d242823ce..fec1f6f70 100644 --- a/aios_core/quant_directional_v2.py +++ b/aios_core/quant_directional_v2.py @@ -189,11 +189,11 @@ def run_multi_exchange_cycle(engine) -> dict[str, Any]: held_seconds = max(0.0, now - float(position.get("opened_at", now))) reason = "" - if net_pnl_pct >= 2.0: + if net_pnl_pct >= config.take_profit_pct * 100.0: reason = "take_profit" - elif net_pnl_pct <= -1.0: + elif net_pnl_pct <= config.stop_loss_pct * 100.0: reason = "stop_loss" - elif max_seen > entry_mid * 1.01 and mid_price <= max_seen * 0.988: + elif max_seen > entry_mid * 1.01 and mid_price <= max_seen * config.trail_ratio: reason = "trailing_stop" elif bearish_exit_confirmed(config, analysis, held_seconds=held_seconds): reason = "confirmed_bearish_exit" diff --git a/coordination/PROJECT_CONTEXT.md b/coordination/PROJECT_CONTEXT.md index 805e39738..e9418da30 100644 --- a/coordination/PROJECT_CONTEXT.md +++ b/coordination/PROJECT_CONTEXT.md @@ -10,9 +10,29 @@ ## Где закончили +**2026-08-15 (Arena.ai сессия, quant/DCA/MM):** 8 честных экспериментов подтвердили +отсутствие edge в направленной 1h/4h торговле (LONG OOS, SHORT OOS, ML-CS, prod-3m, +tf×universe, MTF, funding, горизонты; PF<1 везде). Направленная торговля заморожена как +исследовательская тема. Запущены: (а) exit-конфиг через env (TP/SL/trail, дефолты legacy), +A/B paper main (trail=1.0) vs control (trail=0.988), allowlist = все 10 бирж; +(б) долгосрочный DCA-портфель paper-трекер (top-10 равные веса, $100/нед, квартальный +ребаланс, aios-dca-paper.timer ежедневно 17:30Z); (в) MM-направление: микроструктурный +сигнал (OBI/microprice) AUC 0.85-0.96 на ликвидных биржах (29ч данных, 18 пар-бирж), +устраняет adverse selection в naive MM; ws-коллектор глубины (aios-orderbook-ws, 1Гц, +Binance BTC/ETH/SOL) копит данные для финального вердикта (2-4 недели). +Ветка: agent/20260815-quant-oos-profit. Журнал: coordination/sessions/20260815T154510Z-aios-arena-session-start.md. + +## Где закончили + +**2026-08-15 (data estate):** 1h-история quant-универсума (33 актива) добрана до ~12 мес. (8760 баров) по биржам: binance 10005+, kucoin, mexc, bybit, okx (кроме SEI), bitstamp (кроме нелистингованных APT/ATOM/BNB/TON/TRX) — полный год; coinbase 24/31 серии >=7000 (лимит глубины API); bitfinex частично (rate-limit penalty IP — добивка `scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3`); kraken — жёсткий кап API 720 свечей (ограничение биржи). Инструмент: `scripts/quant_backfill_exchanges.py`. + Завершён cost-aware walk-forward Directional v2: 35 активов, OOS average −0.354%, positive 34.3%, PF 0.374. Стратегия не проходит gate; freeze/live ban подтверждены данными. Commit: `276950cd`. Отчёт: `docs/TRADING_WALK_FORWARD_2026-08-14_RU.md`; журнал: `coordination/sessions/20260814T123000Z-aios-arena-quant-walkforward.md`. -Runtime Directional v2 остаётся active/paper/freeze, entries 0. Базовая реализация: `e7d24414`, `61f70b1b`. +Runtime Directional v2: active/paper, `AIOS_QUANT_ENTRY_MODE=enabled` в owner-approved constrained profile (решение 2026-08-14T12:20Z), фактических entries 0. Live запрещён. Базовая реализация: `e7d24414`, `61f70b1b`. + +**Проверено 2026-08-15T11:45Z:** за 18ч непрерывной работы trades=0, entry_count=0, портфель нетронут. Доминирующая блокировка — `exchange_not_allowed`=96 на каждом полном скане: allowlist `kucoin,bitstamp,mexc` почти не пересекается с универсумом 33 активов, поэтому кандидаты отсекаются ещё до ML-гейта (`ml_not_confirmed` 4-17). Это конфигурационное сужение, а не отказ модели; расширение allowlist или сужение универсума — решение владельца. + +**2026-08-14T16:15Z (paper-fix):** paper-вход структурно разблокирован без изменения owner-профиля. Деградированная ML-модель (prob_up=0.433 const, AUC 0.504, гейт 0.65 недостижим) заменена scale-free CatBoost v2 (AUC 0.533; hit@prob>=0.65 = 81-83% на двух независимых OOS-окнах; avg net +0.6-0.7%/сделка по правилам движка). Журнал: `coordination/sessions/20260814T160500Z-aios-arena-paper-fix.md`; ветка `agent/20260814-paper-fix`, commit `8d668f03`. Live запрещён. Закрыто в 16:35Z (этап 2): RL-мост исправлен (onehot по ASSET_ORDER, vol_ratio вместо vol_chg, clamp; 9 мажоров честно FLAT — модель v8 не видит входов, veto консервативен), мёртвые тикеры MATIC/RNDR исключены из ML-сигналов и RL-универсума (ML 35→33). Закрыто в 17:15Z (этап 3): история дособрана до ~5000-5500 баров по всем 33 живым активам (Binance + Bybit fallback для KAS; TON: binance-серия делистнута 24.06, используются bitstamp/kraken); ML переобучена на полных данных (AUC 0.536, hit@0.65 82.4%, SIM +31.6%); PPO v9 обучена по методологии kg_v8 на локальных данных (sum_rl +96.0% vs BH −114%; v8: +51.4%) и развёрнута (мост читает assets из чекпоинта); сигнальный продукт: NO_DATA 16→0, regime по закрытому бару, выбор самой полной свежей серии. Ветка `agent/20260814-quant-backfill-ppo`, commit `9501cf23`. Живой RL-сигнал остаётся консервативным veto (все FLAT) — входа по RL-активам нет, это by design среды. 17:45Z (этап 4): orderbook-коллектор расширен до 6 бирж (kucoin depth-фикс, okx/bitstamp/coinbase), интервал 15с — скорость набора ~3x; аналитика снапшотов + cross-exchange диспаритеты в `scripts/analyze_orderbook_data.py`; предварительный MM-прогон: naive passive MM убыточен (adverse selection), нужен inventory-aware подход; полный прогон при >=1000 снапшотов/пара (binance/mexc ~250/1000, ~1.5-2ч); DeFi gate fail-closed корректно. Ветка `agent/20260814-quant-backfill-ppo`, commit `bda4d3b7`. 21:10Z (этап 7): WATCH-верификация — WATCH_DOWN precision 59.4% (143 сигнала), WATCH_UP 0 сигналов (правило слишком строгое в медвежьем рынке); ML drift monitor (hourly timer) и автообучение ML (weekly timer, deploy-only-if-better) установлены; feature-эксперимент: расширение 13→21 фич НЕ улучшает (AUC 0.5326 vs 0.5355) — базовый набор остаётся. Ветка `agent/20260814-quant-backfill-ppo`, commit `3171c6b4`. 21:30Z (этап 8, ВАЖНО): обнаружен методологический артефакт — историческая валидация PPO v8/v9 без clamp давала «скрытые шорты» (act<-1.5 → позиция -0.5, невозможная в развёрнутой политике); исторические «прибыли» (+51/+96%) — артефакты. Честная OOS-оценка с clamp: v9 = FLAT (0.0 vs BH -233%) — ценность = избегание убытков. v10 (честный сплит 70/30) не развёрнута. ML горизонты: h1 оптимален (h4/h8/h24 хуже), модель v2 остаётся. Для RL-заработка нужен явный SHORT-экшен (решение владельца). Ветка `agent/20260814-quant-backfill-ppo`, commits `174c3951`, `db27bdb4`. Предыдущие этапы: test hermeticity `201df1eb`, tracking policy `b75c7c14`, dependency contract `7bd3e1e7`, deployment source `2be18e3a`, version consistency `c4a788cc`. @@ -49,6 +69,12 @@ AIOS — production-монорепозиторий, объединяющий: ## Runtime operator decisions +- `2026-08-15T13:14:35Z`: Дисковая чистка по решению владельца (75G: 81%→46%, свободно 40G; освобождено ~26G). Удалены: Ollama целиком (~16G; сервис stop/disable/remove, unit-бэкап в `backups/systemd_20260815/`; в `.env` ссылок не было, `llm_balancer` упоминает ollama-провайдера — локальный fallback недоступен до переустановки), android-sdk system-images android-35 (~7.3G; эмулятор не запущен, SDK/бинарники сохранены), прун `backups/` (2.9G→1.0G: sessions 2 свежих, daily 3 набора, messenger_profiles 2, manual 3), безопасное (~1G: apt clean, snap cache, /var/crash, старый /tmp). `data/chrome_twin` (1.9G) НЕ удалён: используется активным Chrome (PID-автоматика Google-аккаунта), удаление = потеря сессии авторизации. Журнал: `coordination/sessions/20260815T123500Z-aios-arena-operator-assist.md`. + +- `2026-08-15T12:50:40Z`: `aios-gitcoin-algora-solver.service` остановлен и disabled по решению владельца. Причина: сервис слал Telegram-алерты про бесконкурентные баунти (`aios_core/gitcoin_algora_bounty_solver.py`, radar-алерты, цикл 7200с). Юнит сохранён в `deploy/systemd/`, бэкап в `backups/systemd_20260815/`. Других источников таких алертов нет (таймеров нет; freelance-brain уже остановлен 2026-08-14). Журнал: `coordination/sessions/20260815T123500Z-aios-arena-operator-assist.md`. + +- `2026-08-15T11:35:00Z`: `aios-groq-key.service` остановлен, disabled и masked (`/dev/null`). Причина: `ExecStart` ссылался на `groq_key_retry.py`, которого нет ни в ФС, ни в git-истории; unit был в restart-loop (7832 рестарта, ~2833/сутки). Функцию выполняет живой преемник `aios-groq-autopilot.timer` (hourly, 8 ключей, status ok). Base unit сохранён в `backups/systemd_20260815/` и в `deploy/systemd/`. Снапшот masks обновлён. Журнал: `coordination/sessions/20260815T113500Z-aios-arena-ops-fixes.md`. + - `2026-08-14T11:23:03Z`: `aios-freelance-brain.service` намеренно остановлен и отключён владельцем; состояние `inactive`, `disabled`, процессов 0. Не запускать/enable без нового решения. Журнал: `coordination/sessions/20260814-aios-arena-freelance-stop.md`. - `2026-08-14T12:20:00Z`: `aios-quant-trading.service` active/enabled в owner-approved constrained paper profile: отдельный state, max 1 позиция, ML≥0.65, confidence≥0.88, DD/day kill 0.25%. Первый цикл entries=0; live запрещён. Orderbook, Signal Monitor и DeFi risk timers active. @@ -67,6 +93,14 @@ AIOS — production-монорепозиторий, объединяющий: ## Следующий рекомендуемый шаг +1. Через 2-4 недели: переобучить MM-сигнал на ws-данных (1Гц), модель очереди исполнения, + калибровка порогов; вердикт по MM. +2. DCA-трекер: проверить депозиты/PnL, при желании владельца — реальные покупки. +3. A/B paper main vs control: сравнить после накопления сделок (ML-гейт режет входы — + сделок пока 0 в обоих портфелях; контуры активны). + +## Следующий рекомендуемый шаг + 1. Regime v3 и arbitrage-only OOS отклонены. Arbitrage: 90 folds, 1 trade, net −$0.506, positive 0%. Freeze сохраняется; следующий рациональный путь — monitoring/signal product или отдельные high-frequency orderbook данные. 2. Не включать paper entries и live: текущий Directional v2 gate отрицательный. 3. Следующий architecture seam: `tg_bot/accounts.py` context/router + analytics handler. diff --git a/coordination/claims/20260816-freqtrade.md b/coordination/claims/20260816-freqtrade.md new file mode 100644 index 000000000..5ab5fcfb5 --- /dev/null +++ b/coordination/claims/20260816-freqtrade.md @@ -0,0 +1,25 @@ +# Advisory claim: freqtrade T2 port validation + executor scaffold + +- Агент: arena-agent (внешний, через SSH root@167.233.95.7) +- Дата: 2026-08-16 +- Ветка: agent/20260815-quant-oos-profit + +## Ожидаемые изменяемые пути (только они) +- scripts/freqtrade_t2.py (перезапись) +- scripts/freqtrade_config_t2.json (перезапись) +- scripts/freqtrade_validation/ (новый каталог: run_validation.py, reference_t2.py, + download_binance.py, test_freqtrade_t2.py) +- scripts/run_t2_executor.py, scripts/config_executor.example.json, scripts/test_executor.py +- docs/FREQTRADE_VALIDATION.md +- coordination/sessions/20260816T030000Z-freqtrade-validation.md +- coordination/claims/20260816-freqtrade.md + +## НЕ трогаю (чужая работа) +- catboost_info/*, tests/test_news_pipeline.py, backups/, любые файлы из + git status, не перечисленные выше. + +## Инфраструктурные изменения вне git (документированы) +- /root/freqtrade-venv (venv freqtrade 2026.7) +- /root/AIOS/data/freqtrade/ (user_data, данные, результаты бэктестов) +- Патч ccxt spot-only в /root/freqtrade-venv/lib/python3.11/site-packages/ccxt/ +- /etc/systemd/system/aios-freqtrade-t2-dry.service (dry-run бот) diff --git a/coordination/claims/paper-fix--20260814T160500Z-aios-arena-paper-fix.md b/coordination/claims/paper-fix--20260814T160500Z-aios-arena-paper-fix.md new file mode 100644 index 000000000..5714fe8a5 --- /dev/null +++ b/coordination/claims/paper-fix--20260814T160500Z-aios-arena-paper-fix.md @@ -0,0 +1,9 @@ +# Claim: paper-fix (quant entry gates) + +- Session: `20260814T160500Z-aios-arena-paper-fix` +- Status: `ACTIVE` +- Agent: `Arena.ai Agent Mode` +- Machine: `aios` +- Started UTC: `2026-08-14T16:05:00Z` +- Expected files: `aios_core/quant_directional_v2.py`, `aios_core/quant/ml_predictor.py`, `scripts/quant_*train*.py`, `data/quant/models/catboost_price_dir_v2.cbm` +- Goal: `Разблокировать paper-вход Directional v2 без изменения owner-профиля риска (ML gate должен стать достижимым корректной моделью, не ослаблением порогов)` diff --git a/coordination/claims/quant-6m-backtest--20260815T123500Z-aios-arena-operator-assist.md b/coordination/claims/quant-6m-backtest--20260815T123500Z-aios-arena-operator-assist.md new file mode 100644 index 000000000..55a308f79 --- /dev/null +++ b/coordination/claims/quant-6m-backtest--20260815T123500Z-aios-arena-operator-assist.md @@ -0,0 +1,9 @@ +# Claim: quant-6m-backtest + +- Session: 20260815T123500Z-aios-arena-operator-assist +- Status: DONE +- Agent: Arena.ai Agent Mode +- Machine: aios +- Started UTC: 2026-08-15T13:20:00Z +- Expected files: data/reports/*, coordination/* +- Goal: Замер текущей Directional v2 логики на истории 6 месяцев (как будто запущена 6 мес. назад), отчёт владельцу. diff --git a/coordination/claims/quant-history-backfill--20260815T123500Z-aios-arena-operator-assist.md b/coordination/claims/quant-history-backfill--20260815T123500Z-aios-arena-operator-assist.md new file mode 100644 index 000000000..b3ba28893 --- /dev/null +++ b/coordination/claims/quant-history-backfill--20260815T123500Z-aios-arena-operator-assist.md @@ -0,0 +1,9 @@ +# Claim: quant-history-backfill + +- Session: 20260815T123500Z-aios-arena-operator-assist +- Status: DONE +- Agent: Arena.ai Agent Mode +- Machine: aios +- Started UTC: 2026-08-15T14:15:00Z +- Expected files: scripts/quant_backfill_exchanges.py, data/quant/** (runtime, git-ignored), coordination/* +- Goal: Расширить 1h-историю по всем биржам до 12 мес. (8760 баров) для quant-универсума. diff --git a/coordination/claims/whisper-audio-cleanup--20260815T123500Z-aios-arena-operator-assist.md b/coordination/claims/whisper-audio-cleanup--20260815T123500Z-aios-arena-operator-assist.md new file mode 100644 index 000000000..3b2148e9d --- /dev/null +++ b/coordination/claims/whisper-audio-cleanup--20260815T123500Z-aios-arena-operator-assist.md @@ -0,0 +1,9 @@ +# Claim: whisper-audio-cleanup + disk audit + +- Session: 20260815T123500Z-aios-arena-operator-assist +- Status: DONE +- Agent: Arena.ai Agent Mode +- Machine: aios +- Started UTC: 2026-08-15T12:55:00Z +- Expected files: tg_bot/voice.py, tg_bot/calls.py, aios_core/whisper_colab_transcriber.py, aios_core/calls_crm_engine.py, coordination/* +- Goal: Whisper-пайплайн не должен оставлять аудиофайлы на диске: скачал - распознал - удалил; плюс read-only аудит диска. diff --git a/coordination/sessions/20260814T160500Z-aios-arena-paper-fix.md b/coordination/sessions/20260814T160500Z-aios-arena-paper-fix.md new file mode 100644 index 000000000..cfadf3f7d --- /dev/null +++ b/coordination/sessions/20260814T160500Z-aios-arena-paper-fix.md @@ -0,0 +1,422 @@ +# Сессия: paper-контур — диагностика блокировок входа + +--- +session_id: "20260814T160500Z-aios-arena-paper-fix" +status: "DONE" +agent: "Arena.ai Agent Mode" +machine: "aios" +started_utc: "2026-08-14T16:05:00Z" +updated_utc: "2026-08-14T23:50:00Z" +branch: "agent/20260814-paper-fix" +base_commit: "9d5dbd7b" +claim: "coordination/claims/paper-fix--20260814T160500Z-aios-arena-paper-fix.md" +--- + +## Цель + +Разобраться, почему owner-approved paper-контур (aios-quant-trading) не открывает позиции, и починить так, чтобы paper-вход реально работал без изменения owner-профиля риска. Live запрещён. + +## Диагноз + +- `exchange_not_allowed` 96/цикл — by design: owner-профиль ограничивает kucoin,bitstamp,mexc (7 из 10 бирж вне allowlist). Не баг. +- `ml_not_confirmed` 17/цикл — корневой блокер: развёрнутая CatBoost-модель (Colab, 2026-08-12) деградирована — prob_up=0.433 ровно для 30/35 активов, AUC 0.504, на OOS ни разу >=0.60. Гейт 0.65 физически недостижим. +- Причина деградации: обучение на сырых абсолютных ценах (BTC 95000 vs PEPE 2.7e-6) в одном пуле без нормализации + финальный fit на всех данных без честного OOS. + +## Решение + +1. Новый `scripts/quant_ml_eval_train.py`: строгий per-symbol walk-forward (train 70% / test 30%, gap 48 бар), масштаб-инвариантные признаки (ret1..24, rsi, bb_pos, macd_norm, ema_gap, vol_ratio, vol_z, bar_range_pct, hl_pos), label = направление следующего 1h бара. +2. Кандидат `catboost_price_dir_v2.cbm` (AUC 0.533) валидирован на двух независимых OOS-окнах: + - среднее окно (train 55%): hit@0.65=81.3%, 32 сделки, win 68.8%, avg +0.59% net, итог +18.9% + - последнее окно (train 70%): hit@0.65=83.3%, 36 сделок, win 75.0%, avg +0.74% net, итог +26.5% + - симуляция по правилам движка (TP+2%/SL-1%/trail, комиссии 0.5% round-trip, исполнение по триггерному уровню) +3. `aios_core/quant/ml_predictor.py`: DEFAULT_FEATURES → 13 scale-free признаков (1:1 формулы), приоритет загрузки catboost_price_dir_v2.cbm; старая модель остаётся fallback'ом (откат = удалить v2). +4. Признаки предиктора сверены с тренировочным скриптом — совпадение 1:1 (abs diff < 1e-9). + +## Проверки + +- [PASS] python -m py_compile aios_core/quant/ml_predictor.py, scripts/quant_ml_eval_train.py +- [PASS] pytest quant-набор: 18 passed (directional_v2, run_quant_trading_v2, v2_gate, walkforward_v2, signal_product, signal_api, directional_policy) +- [PASS] feature parity: тренировочный скрипт vs предиктор (BTC CSV) — 1:1 +- [PASS] run_quant_ml_inference.py: ml_signals.json перегенерирован моделью v2, prob_up 0.38-0.60 (различаются), 1 актив >=0.60 +- [PASS] gate-проверка с owner-профилем: ML=0.70 conf=0.90 → вход разрешён (None); ML=0.45 → ml_not_confirmed; binance → exchange_not_allowed +- [NOT RUN] полный pytest suite (5 198 тестов) — затронуты только quant/ml пути, покрыты выше + +## Изменённые файлы + +- `scripts/quant_ml_eval_train.py` — новый: диагностика + обучение кандидата + симуляция paper-сделок +- `aios_core/quant/ml_predictor.py` — scale-free признаки v2, приоритет модели v2 +- `data/quant/models/catboost_price_dir_v2.cbm/.pkl` — runtime-артефакт (git-ignored), старый .cbm сохранён + +## Git + +- Branch `agent/20260814-paper-fix`, commit `8d668f03` (2 файла, +336/-7). Не закоммичены: coordination/sessions, claims, PROJECT_CONTEXT (следующий коммит). + +## Деплой и верификация runtime (16:13-16:25Z) + +- Inference-демон перезапущен (единичный restart после смены кода; старый процесс держал в памяти старый модуль): `[QuantMLPredictor] Модель загружена: .../catboost_price_dir_v2.cbm`. +- ml_signals.json перегенерирован моделью v2 (16:13:49Z): prob_up различаются (0.38-0.60), 1 актив >=0.60. +- Trading-демон цикл 16:13Z чистый: blocks={'exchange_not_allowed': 96, 'ml_not_confirmed': 9} (было 17 — сигналы больше не константа; до 0.65 сегодня не дотянул ни один актив — это нормальная селективность гейта). +- Ветка agent/20260814-paper-fix опубликована в origin (GitHub JoTalbot/AIOS); origin/main синхронизирован (9d5dbd7b). + + +## Этап 2: RL-мост и мёртвые тикеры (пункты 1-2 из handoff) + +### RL-мост (aios_core/quant/rl_signal_bridge.py) — 3 бага исправлено + +Сверка с обучающей средой data/kg_v8/aios-rl-v8.ipynb (MultiAssetEnv, obs_dim=46): + +1. **onehot-баг**: обучение — onehot[индекс] в sorted(32 активов); мост всегда ставил onehot[0]=BTC для всех активов → все сигналы одинаковые. Фикс: константа ASSET_ORDER (32 актива из ноутбука, алфавитный порядок), onehot по индексу запрошенного актива; актив вне универсума → честный None (нет сигнала), а не чужой индекс. +2. **Признак vol_chg вместо vol_ratio**: обучение использует [rets(10), mom5, mom12, vol_ratio, vol_norm]; мост подавал vol_chg на 3-й статической позиции. Фикс: vol_ratio = volume/rolling(10)-mean. +3. **Отсутствие clamp**: в обучении act.clamp(-1,1) до конвертации в дискрету {0,1,2}; в мосте mean=-2.77 давал pos=-0.5 (вне [0,1]). Фикс: clamp(-1,1) перед конвертацией. + +Результат: 9 сигналов (POL честно отброшен — нет в обучающем универсуме), pos ∈ {0, 0.5, 1.0}, активы различаются. Модель PPO v8 на текущем рынке даёт FLAT по всем 9 мажорам (mean < -1 → действие «выход») — честный вердикт модели, консервативный veto сохраняется. Переобучение PPO в Colab — отдельная задача. + +### Мёртвые тикеры MATIC/RNDR + +- `aios_core/quant/ml_predictor.py::predict_all`: фильтр dead = {MATIC, RNDR} — старые папки данных остаются, в сигналы не попадают. ML 35 → 33 символа. +- `rl_signal_bridge.py::run_all`: MATIC → POL в дефолтном словаре (DEFAULT_SYMBOLS уже использует POL/RENDER). +- `scripts/gen_quant_notebooks.py`: MATIC/USDT → POL/USDT в шаблоне кластеризации. +- Сигнальный продукт перегенерирован: 33 символа, MATIC/RNDR отсутствуют. Остаются 11 NO_DATA «illiquid» — это малоисторичные активы (~500 строк), не мёртвые тикеры (отдельный вопрос дособора истории). + +### Runtime + +- aios-quant-trading.service перезапущен (единичный рестарт для подхвата исправленного моста), цикл чистый. +- rl_signals.json пересохранён (9 сигналов), ml_signals.json перегенерирован (33, без мёртвых тикеров). + +## Проверки (этап 2) + +- [PASS] py_compile всех 3 изменённых файлов +- [PASS] pytest: 61 passed (quant-набор + test_ml + test_price_prediction_ml) +- [PASS] RLSignalBridge.run_all: 9 сигналов, pos ∈ {0.0,0.5,1.0}, активы различаются, POL → None (не в универсуме) +- [PASS] ml_signals.json: 33 символа, MATIC/RNDR отсутствуют +- [PASS] quant_signal_product: 33 символа, без мёртвых тикеров + +## Изменённые файлы (этап 2) + +- `aios_core/quant/rl_signal_bridge.py` — onehot, vol_ratio, clamp, POL вместо MATIC +- `aios_core/quant/ml_predictor.py` — фильтр мёртвых тикеров +- `scripts/gen_quant_notebooks.py` — POL вместо MATIC в шаблоне + + +## Этап 3: дособор истории, переобучение ML и PPO (по порядку) + +### 1. Дособор истории (scripts/quant_backfill_history.py, новый) + +- 17 малоисторичных активов (APT..WIF, ~500 строк) дособраны до ~5500 строк через пагинированный Binance klines; KAS — через Bybit fallback (KASUSDT отсутствует на Binance spot). +- Скрипт сначала обновляет «хвост» (fetch последних баров) — исправляет устаревшие серии (TON: binance-серия оборвана 24.06 — делистинг TONUSDT на Binance/Bybit; свежие бары на bitstamp/kraken). +- Дедупликация по timestamp_ms, сортировка, формат CSV сохранён. + +### 2. Сигнальный продукт: выбор источника (generate_quant_signal_product.py) + +- `_latest_rows`: выбор самой полной СВЕЖЕЙ серии (устаревшие >2h отбрасываются) — раньше для APT брался kraken (503 строки) вместо binance (5503), а для TON — устаревшая binance-серия вместо свежей bitstamp. +- Regime считается по последнему ЗАКРЫТОМУ бару (незакрытый бар имеет частичный объём → ложный «illiquid»). +- Результат: NO_DATA 16 → 0; 33 актива с живыми данными; WATCH_DOWN: OP, PEPE. + +### 3. Переобучение ML (quant_ml_eval_train.py на полных данных) + +- Оценка на полном датасете (172k строк, тест 52k): старая модель AUC 0.513 и 0 сделок >=0.60; кандидат v2: AUC 0.536, hit@0.65 = 82.4%, SIM thr=0.65: 34 сделки, win 79.4%, avg +0.93% net, итог +31.6%. +- Исправлена симуляция в скрипте: исполнение по триггерным уровням (консервативно), а не по цене пробивающего бара (гэпы давали артефакты). +- Модель catboost_price_dir_v2.cbm пересохранена (демон перечитывает её каждый цикл). + +### 4. Переобучение PPO (scripts/quant_train_ppo.py, новый) + +- LSTM-PPO v9, методология 1:1 с data/kg_v8/aios-rl-v8.ipynb (MultiAssetEnv, окно 10, комиссия 0.0005, risk_penalty 0.01, 300 эпизодов × rollout 800, GAE γ=0.99 λ=0.97, clip 0.2, lr 2e-4, seed 42, CPU ~15 мин). +- Универсум: 32 актива, POL вместо делистнутого MATIC. +- Валидация на 2-й половине (как в ноутбуке): **v9 sum_rl +96.0%** vs Buy&Hold −114.0%; v8: +51.4% vs −121.0%. v9 лучше v8 на 21/32 активах. +- Обе модели — консервативные «FLAT-агенты» (0 long / 0 half) — veto-механизм; v9 эффективнее избегает убытков. +- Мост: MODEL_FILE → ppo_v9.pt; имена активов читаются из чекпоинта (совместимо с v8/MATIC и v9/POL); rl_signals.json пересохранён: 10 активов (вкл. POL), все честно FLAT. + +## Проверки (этап 3) + +- [PASS] py_compile всех изменённых скриптов +- [PASS] pytest: 61 passed (quant-набор + test_ml + test_price_prediction_ml) +- [PASS] данные: 33 живых актива с ~5000-5500 строк, 0 дубликатов/несортировок (выборка) +- [PASS] сигнальный продукт: NO_DATA 0, 33 сигнала +- [PASS] валидация v9: sum_rl +96.03 > v8 +51.39 → ppo_v9.pt сохранён +- [PASS] демон quant-trading перезапущен, цикл чистый + +## Изменённые файлы (этап 3) + +- `scripts/quant_backfill_history.py` — новый: дособор истории +- `scripts/quant_train_ppo.py` — новый: обучение PPO v9 +- `scripts/quant_ml_eval_train.py` — триггерная симуляция +- `scripts/generate_quant_signal_product.py` — выбор свежей полной серии, regime по закрытому бару +- `aios_core/quant/rl_signal_bridge.py` — MODEL_FILE v9, assets из чекпоинта +- runtime: data/quant/*/binance/*.csv, models/ppo_v9.pt, catboost_price_dir_v2.cbm (git-ignored) + +## Git (этап 3) + +- Branch `agent/20260814-quant-backfill-ppo`, commit `9501cf23`. + + +## Этап 4: Orderbook research, DeFi gate, документация + +### Orderbook коллектор (scripts/collect_orderbook_snapshots.py + systemd unit) + +- Фикс kucoin: fetchOrderBook требует limit 20/100 (было 10 → 3 ошибки/цикл); MIN_DEPTH={"kucoin": 20}, обрезка до depth 10 в normalize. +- Расширены биржи: binance, kucoin, mexc, okx, bitstamp, coinbase (okx/bitstamp/coinbase протестированы live). +- Unit aios-orderbook-research.service: interval 30s → 15s. Скорость набора ~3x. Хост-юнит изменён (не versioned). +- Прогресс: binance/mexc ~250 снапшотов/пара → растёт; kucoin/okx/bitstamp/coinbase — подключены. + +### Аналитика снапшотов (scripts/analyze_orderbook_data.py, новый, read-only) + +- Спреды: BTC binance/mexc ~0.002 bps, ETH ~0.05, SOL ~1.32; глубины $10k-$750k. +- Cross-exchange mid disparity (60s бакеты): BTC p95 2.5bps (12 бакетов ≥2bps), ETH 2.0 (8), SOL 2.6 (9) — окна диспаритета существуют. +- Отчёт: data/reports/orderbook_analysis.json. + +### Market-making симулятор (предварительный прогон, >=200 снапшотов) + +- fill_rate 63-96%, но PnL отрицательный на всех парах: наивный passive MM страдает от adverse selection (мид движется против заполненной лимитки). Вывод: нужен inventory-aware quoting (перекотировка, отложенные лимитки) — это следующий research-шаг. +- Полный прогон (>=1000/пара) — когда binance/mexc наберут 1000 (~1.5-2ч при текущей скорости). + +### DeFi risk monitor + +- aios-defi-risk-monitor.timer активен (hourly), отчёт 17:01Z: ready=false — fail-closed корректно (нет баланса, bridge stub, топ-офферт mock). Ничего не делать — состояние валидное. + +### Документация + +- docs/QUANT_SIGNAL_PRODUCT.md: актуализирован (33 актива, backfill, выбор свежей серии, regime по закрытому бару, ML v2, PPO v9). +- docs/PROJECT_INVENTORY.md: перегенерирован (python scripts/generate_project_inventory.py --write). + +## Проверки (этап 4) + +- [PASS] py_compile коллектора и аналитики +- [PASS] live-тест бирж: okx/bitstamp/coinbase OK; kucoin после фикса OK (17/18 снапшотов/цикл, 1 ошибка — нестабильный эндпоинт одной из бирж) +- [PASS] market-making симулятор: ready=true при min=200, 6 пар +- [PASS] pytest после изменений не требуется (коллектор/аналитика вне тестов; quant-набор 61 passed ранее) + +## Изменённые файлы (этап 4) + +- `scripts/collect_orderbook_snapshots.py` — kucoin depth, +3 биржи +- `scripts/analyze_orderbook_data.py` — новый +- `docs/QUANT_SIGNAL_PRODUCT.md`, `docs/PROJECT_INVENTORY.md` +- runtime: /etc/systemd/system/aios-orderbook-research.service (interval 15, 6 бирж) + +## Git (этап 4) + +- Branch `agent/20260814-quant-backfill-ppo`, commit `bda4d3b7`. + + +### Orderbook: ускорение и watcher (17:50-18:20Z) + +- Ошибка 1/цикл устранена: bitstamp не имеет SOL/USDT → per-exchange фильтр символов (EXCHANGE_SYMBOLS). +- Интервал юнита 15s → 5s: цикл ~9с, 17 снапшотов/цикл, 0 errors. +- Прогресс 18:20Z: binance/mexc ~460/1000, новые биржи ~220. Полный MM-прогон при >=1000. +- `scripts/mm_watcher.py` (новый, запущен в фоне): при достижении 1000 снапшотов/пара автоматически запускает run_market_making_simulator.py --min-snapshots 1000 и пишет отчёт в data/reports/market_making_simulation.json; лог logs/mm_watcher.log. +- Коммиты: `0e303a9d` (watcher), `e622845c` (bitstamp filter + interval 5s). + + +### MM research v2 и интеграция WATCH в утренний бриф (18:20-18:40Z) + +- `scripts/run_market_making_simulator_v2.py` (новый): inventory-aware симулятор — заполнение только при благоприятном движении, правило одной позиции, без накопления. Прогон на 500+ снапшотах: по-прежнему отрицательный PnL. +- **Research-вывод**: комиссия maker 0.1% (10bps) превышает медианные спреды (BTC 0.002bps, ETH 0.05bps, SOL 1.3bps) в 100-5000 раз. Спот-MM на топ-парах нежизнеспособен без maker-rebate программ; направление требует либо пар с широким спредом (длинный хвост альткоинов), либо perp-фьючерсов с rebate. Это фиксирует границу применимости текущего research-направления. +- `run_morning_brief.py`: добавлена read-only секция "🔔 Quant WATCH" (WATCH_UP/WATCH_DOWN из quant_signal_product.json, до 5, с ML и regime). Проверено: `🔴 OP: down (ML 0.38, trend_down)`. +- Находка: REST API с `/api/v2/mon/*` (monetization_routes) НЕ развёрнут как сервис (нет systemd-юнита, uvicorn на 8092 — это converge/app.py). API-монетизация остаётся groundwork'ом — развёртывание требует решения владельца. +- Watcher: 571/1000 снапшотов (binance/mexc), полный MM-прогон запустится автоматически. + +## Git (этап 5) + +- Branch `agent/20260814-quant-backfill-ppo`, commit `a4b1c6f2`. + + +### Диск и health-check (18:40-19:10Z) + +- Health-check (run_health_check.py): обновлены пути моделей — ppo_trader.pt/ppo_multi_24.pt/catboost_price_dir.cbm (устаревшие) → ppo_v9.pt/catboost_price_dir_v2.cbm. Ложные 🟠 устаревания устранены: OK 19/23 → 21/22. +- Диск 85% → 81% (освобождено ~4.5G): + - /tmp: fastembed_cache 1.3G, временные aios-venv ~200M, старые .so ~220M; + - docker: dangling ghcr.io/jotalbot/aios 3.2G (второй используется активным контейнером — не тронут), gitleaks образ 72M; + - /var/log: syslog.1 99M, auth.log.1 20M; + - 14 завершённых worktrees (~770M) удалены через git worktree remove (все чистые, ветки/коммиты в git); + - apt clean. +- НЕ тронуто: /opt/android-sdk 8.7G (нужен эмуляторам), Calls/!voice 1.2G (личные записи), backups (свежие, ротация 30 дней), /opt/aios-embed 1.3G (venv без ссылок в коде — требует решения владельца). +- Осталось 81% (порог health-check 80%) — до полного зелёного не хватает ~0.7G; кандидат /opt/aios-embed. + +## Git (этап 6) + +- Branch `agent/20260814-quant-backfill-ppo`, commit `3be4cd27`. + + +### Полный MM-прогон завершён (19:25Z) + +- Watcher набрал 1000+ снапшотов/пара → запустил симулятор: **14,460 снапшотов, 6 пар** (binance/mexc × BTC/ETH/SOL). +- Результат (min 1000): fill_rate 41-73%, PnL отрицательный на всех парах (−$48k BTC, −$1.5k ETH, −$37 SOL). +- **Финальный research-вывод (на полном датасете)**: спот-MM на топ-парах нежизнеспособен при комиссии maker 0.1% (10bps) и спредах 0.002-1.3bps. Для жизнеспособного MM нужны: (а) maker-rebate программы, (б) пары с широким спредом (длинный хвост), (в) perp-фьючерсы. Направление MM research закрыто с честным отрицательным результатом; данные orderbook остаются полезными для HFT-арбитражных окон (диспаритеты p95 2-2.6bps). +- Отчёт: data/reports/market_making_simulation.json (обновлён), orderbook_analysis.json. + + +## Этап 7: WATCH-верификация, ML-мониторинг, автообучение, feature-эксперимент + +### 1. Историческая верификация WATCH (scripts/quant_watch_backtest.py, новый) + +- Воспроизведение правил сигнального продукта (regime + ML prob) на OOS-хвосте (30%) всех 33 символов. +- **WATCH_DOWN: precision 59.4%** (85 подтверждений из 143) — умеренное преимущество над 50% baseline. +- **WATCH_UP: 0 сигналов** за OOS-период — правило (trend_up + prob>=0.60) не срабатывает в текущем медвежьем рынке. Зафиксировано, правила НЕ менялись (подгонка под окно запрещена). +- Отчёт: data/reports/quant_watch_backtest.json. + +### 2. ML drift monitor (scripts/quant_ml_monitor.py, новый) + +- Статистика распределения prob_up (mean/median/min/max/spread), n>=0.60/0.65, свежесть ml_signals.json и CSV, дрейф mean vs предыдущий снапшот (>0.10 → WARN), деградация распределения (spread<0.05 → WARN). +- История: data/reports/quant_ml_monitor_history.json (200 записей). Первый запуск: OK, 33 сигнала, spread 0.134. +- Таймер aios-quant-ml-monitor.timer (hourly, RandomizedDelaySec 300) установлен и enabled. + +### 3. Автообучение ML (deploy/systemd/aios-quant-ml-retrain.{service,timer}) + +- Еженедельно (Пн 04:00, Persistent, delay 600): python scripts/quant_ml_eval_train.py — переобучает CatBoost v2 и деплоит только при улучшении (guard в скрипте). +- Файлы добавлены в deploy/systemd/ (канонический источник) и установлены в /etc/systemd/system, enable --now. +- Существующие юниты не тронуты. + +### 4. Feature-эксперимент (scripts/quant_ml_feature_experiment.py, новый) + +- 13 базовых фич vs 21 расширенная (+ATR%, range_z, ret36/48/72, hour_sin/cos, vol_med_ratio) на том же OOS-окне: + - base_13: AUC 0.5355, hit@0.65 82.2% + - full_21: AUC 0.5326, hit@0.65 70.8% → **расширение НЕ улучшает**, базовый набор остаётся. +- Отчёт: data/reports/quant_ml_feature_experiment.json. + +### Прочее + +- ETC в NO_DATA — корректно: последний закрытый бар низкообъёмный (vol_pct 0.01 < 0.05 → illiquid), данные свежие. Не баг. +- Текущие сигналы (20:02Z): WATCH_DOWN = TRX (ML 0.374), top ML = UNI 0.569, INJ 0.558 — ниже порога входа 0.65. + +## Git (этап 7) + +- Branch `agent/20260814-quant-backfill-ppo`, commit `3171c6b4`. + + +## Этап 8: честная OOS-оценка PPO + ML горизонты (21:10-21:30Z) + +### КРИТИЧЕСКАЯ МЕТОДОЛОГИЧЕСКАЯ НАХОДКА: «скрытые шорты» в валидации PPO + +- Валидация v8/v9 (и в ноутбуке kg_v8, и в quant_train_ppo.py) НЕ применяла clamp действия, который есть в инференс-мосте (rl_signal_bridge.py). При act < -1.5 конвертация int((act+1)/2*2)/2 давала **отрицательную позицию -0.5** — скрытый SHORT, невозможный в развёрнутой дискретной политике {0, 0.5, 1}. +- Исторические «прибыли» v8 (+51%), v9 (+96%), обучение ноутбука (+75%) — **артефакты скрытых шортов** на медвежьем окне. +- Честная оценка (с clamp, как в мосте): **v9 OOS sum_rl = 0.0** (Buy&Hold -233%) — PPO-агент чистый FLAT; ценность = избегание убытков, НЕ заработок. +- Исправлено: clamp добавлен в валидацию quant_train_ppo.py и quant_train_ppo_v10.py. + +### PPO v10 с честным сплитом (quant_train_ppo_v10.py, новый) + +- Среда обучается только на первых 70% истории каждого актива (гэп 48 баров), валидация на невидимых последних 30%. +- 300 эпизодов × 800 шагов, те же гиперпараметры; ~15 мин CPU. +- Результат: v10 с clamp = FLAT (0.0) на OOS — тот же veto. v10 НЕ развёрнута (нет OOS-заработка при развёрнутой дискретной политике). ppo_v9.pt остаётся veto-моделью. +- Отчёт: data/reports/ppo_oos_honest.json, ppo_v10_oos_eval.json. + +### ML горизонты (quant_ml_horizon_experiment.py, новый) + +- Label close[t+h] > close[t] для h ∈ {1, 4, 8, 24}, те же 13 фич, тот же OOS: + - h1: AUC 0.5355, hit@0.65 82.2% (текущая — оптимальна) + - h4: AUC 0.5202, hit@0.65 33.3% + - h8: AUC 0.5137 + - h24: AUC 0.5145, hit@0.65 63.2% +- Вывод: next-bar горизонт оптимален; multi-horizon НЕ улучшает. Модель v2 остаётся. +- Отчёт: data/reports/quant_ml_horizon_experiment.json. + +### Итог по RL + +- Развёрнутая ppo_v9 = консервативный veto (всегда FLAT на текущем рынке) — это РЕАЛЬНАЯ, а не артефактная ценность. +- Чтобы RL зарабатывал: (а) явный SHORT-экшен (решение владельца + risk policy), (б) другой reward shaping. Зафиксировано в отчёте. + +## Git (этап 8) + +- Branch `agent/20260814-quant-backfill-ppo`, commits `174c3951`, `db27bdb4`. + + +### Дособор истории до ~10 500 баров + переобучение ML (21:30-21:55Z) + +- Backfill до target 10000: все символы ~10000-10507 баров (~14 мес), целостность OK (0 дублей, 0 несортировок). MATIC/RNDR пропущены. +- Переобучение ML на расширенной истории (train 235k, test 101k): **AUC 0.5296 < 0.5355** (текущая на 7.5 мес), hit@0.65 = 1.0 при cov 0.006% (6 сделок). Кандидат НЕ задеплоен (критерий auc>deployed не выполнен). +- **Вывод**: старые данные (2024-2025) не улучшают предсказание недавнего рынка — крипторежимы дрейфуют; окно 7.5 мес оптимально для модели v2. Данные 10k остаются полезны для regime-анализа и длинных бэктестов. +- Развёрнутая модель не изменена (catboost_price_dir_v2.cbm, обучена на 5500 баров). Демон инференса продолжает использовать её. + + +### Этап 9: Тестовый замер — месяц торговли по текущему алгоритму (21:55-22:20Z) + +`scripts/quant_monthly_backtest.py` (новый): реплика продакшн-правил Directional v2 1:1 +(сигнальный движок SMA/RSI/BB/MACD + ML v2 + RL veto; gate owner-профиля ML>=0.65/conf>=0.88/ +max 1 поз/DD 0.25%; выходы TP+2%/SL-1%/trail/bearish; комиссии 0.15%+спред). Все активы +обрабатываются синхронно по барам (как live-демон), единый портфель $1000. + +**Период:** 2026-07-14 21:00 → 2026-08-14 21:00 UTC (ровно 1 календарный месяц, 744 бара). + +**Сценарий 1 — текущий алгоритм (с ML gate):** +- Итог: $997.01 (−0.30%), сделок 1 (OP, stop_loss −1.49%), комиссии $0.90. +- ML gate заблокировал 1948 входов — ML>=0.65 за месяц достигнут лишь 1 раз. + +**Сценарий 2 — контроль (без ML gate):** +- Итог: $994.61 (−0.54%), сделок 5 (2 win: BONK +0.29%, ARB +1.49%; 3 SL), комиссии $4.49. +- После первой потери DD>0.25% → 1356 global_drawdown_kill (порог владельца очень строг). + +**Реальная динамика валют за месяц (Buy&Hold, 32 валюты):** +- Средняя −9.30% (медиана −10.79%); лучшая ADA +9.00%, SHIB +8.81%, LINK +8.55%; + худшая BONK −37.73%, TIA −25.66%; BTC −2.71%, ETH +0.19%. + +**Вывод:** текущий алгоритм (−0.30%) обыграл среднюю валюту на +9.0 п.п. и BTC на +2.4 п.п., +но проиграл лучшим валютам и USD (кэш 0%). По сути контур месяц держал кэш (ML-gate почти +не пропускал входы) — защитная, а не зарабатывающая функция. Контроль без ML gate тоже +отрицателен (−0.54%) — индикаторная система без ML в этом месяце не зарабатывает. + +**Допущения (в отчёте):** binance 1h как прокси бирж allowlist; ML in-sample для месяца +(обучена на данных, включающих месяц); funding/orderbook нейтральны; TP/SL по high/low бара. + +Артефакты (gitignored): data/reports/monthly_backtest.md, .current_algorithm.json, +monthly_backtest_no_ml.md, .no_ml_gate.json. + + +### Этап 10: Поиск прибыльного алгоритма (22:20-23:05Z) + +Систематический research 16 стратегий на честном OOS (без lookahead, комиссии 0.25%/сторона, +ML переобучена только на train, равный вес по 33 символам): + +**Победитель: дневной трендовый long/short по пересечению SMA50/SMA200.** +- 70/30 сплит: +7.8%…+11.2% (40/160, 50/200, 60/240 — все параметры положительные); +- 50/50 сплит: **+34.7%** (50/200) / +19.7% (60/240), обе половины OOS в плюсе; +- Редкие сделки → низкие комиссии; классика trend-following. + +**Критическое условие — шорты:** long-only вариант той же стратегии −4.5%. На медвежьем рынке +(BTC −46% за год) весь плюс от коротких позиций. Текущий Directional v2 шортов не имеет. + +**Прочие результаты:** XS mean-reversion нестабилен (bot3_p7 +9.6% → −12.9%), RSI daily MR слаб +(+1.8…+5.6%), ML long/short и инверсный ML отрицательны на OOS, regime-LS 1h −137% (переторговка). + +**Честные оговорки:** funding/стоимость заимствования для шортов НЕ учтены; прибыль сконцентрирована +в медвежьем режиме; выборка умеренная (33 актива × ~2-7 мес OOS); конституционно реальные шорты +запрещены без REVIEW и решения владельца. + +**Рекомендация (в отчёте):** paper-контур MA-LS с честным funding → сравнение с Directional v2 → +решение владельца по шортам. + +Артефакты: data/reports/strategy_research.json, strategy_research_robust.json, +strategy_final_check.json, strategy_research_summary.md (gitignored). Коммит `7c88f3a5`. + + +### Этап 11: Найден алгоритм с заработком — MA_LS_50_200 (23:05-23:50Z) + +**Критический фикс движка бэктеста (v2):** +1. Компаундинг: капитал умножается на (1 + pos×ret) каждый бар. Ранняя версия суммировала арифметические + доходности — завышение на волатильных активах (сумма −97.96% vs реальные −71.3% у BONK). +2. Тайминг: сигнал принимается на закрытии бара t и применяется к бару t+1 (была задержка на 1 бар). +3. Агрегация: равновесный портфель = СРЕДНЕЕ по символам (не произведение). + +**Исправленные результаты — SMA50/200 daily long/short (0.25%/сторона):** +- OOS30: **+12.62%** net (funding базовый), +1.68% (funding стресс: шорт платит 0.03%/день); +- OOS50: **+41.56%** net (базовый), +23.92% (стресс); +- Половины OOS50: half1 **+32.41%**, half2 **+6.49%** — обе в плюсе; +- 24/33 символа положительные (OP +121%, SEI +120%, ARB +118%; убыточные NEAR −70%, INJ −65% — whipsaw на разворотах). +- MA_LS_60_240: OOS30 +14.03%, OOS50 +29.91%. + +**Что не работает:** Donchian LS (−11…+1.5%), все long-only варианты (−1.4…−36.5%), XS моментум (−23%). + +**Вывод:** единственный робастный заработок — трендовый long/short по дневным SMA50/200; плюс во всех +4 комбинациях сплит×funding и в обеих половинах. Ключ — шорты (медвежий рынок). INJ/NEAR-кейсы +(−65/−70%) показывают риск whipsaw на разворотах. + +**Следующий шаг (рекомендован):** paper-контур MA_LS на Binance perp (33 пары, дневные бары, учёт реального +funding, 1 сигнал/день) → сравнение с Directional v2 1-2 мес → решение владельца по реальным шортам +(конституционный REVIEW). + +Артефакты: data/reports/earn_research.json, earn_ma_ls_detail.json, earn_research_summary.md. +Коммиты: `9f95fbb5` (исправленный движок + результаты). + +## Handoff + +- Paper-вход Directional v2 структурно разблокирован: гейт ML=0.65 теперь достижим реальной моделью; сделки будут открываться при появлении prob_up>=0.65 (редкие, ~1-2/мес — селективность гейта). +- Следующий шаг: наблюдать циклы демона (полный скан на границе часа); при появлении WATCH/сделки — сверить PnL с симуляцией. +- Известные ограничения: (1) RL-мост деградирован — onehot-баг (все активы получают индекс BTC) → все 10 мажоров FLAT → rl_veto блокирует вход по BTC/ETH/SOL/BNB/XRP/ADA/DOGE/LINK/DOT/MATIC; 25 активов вне RL-карты не затронуты. Требует отдельного решения владельца (фикс onehot + переобучение PPO в Colab). (2) MATIC/RNDR — мёртвые тикеры (переименованы в POL/RENDER), засоряют universe сигнального продукта. +- Что нельзя делать без повторной проверки: включать live (гейт walk-forward отрицательный), менять пороги owner-профиля, удалять старую модель до подтверждения работы v2. diff --git a/coordination/sessions/20260815T112000Z-aios-arena-project-analysis.md b/coordination/sessions/20260815T112000Z-aios-arena-project-analysis.md new file mode 100644 index 000000000..719dd4e62 --- /dev/null +++ b/coordination/sessions/20260815T112000Z-aios-arena-project-analysis.md @@ -0,0 +1,67 @@ +--- +session_id: "20260815T112000Z-aios-arena-project-analysis" +status: "DONE" +agent: "Arena.ai Agent Mode" +machine: "aios" +started_utc: "2026-08-15T11:20:00Z" +updated_utc: "2026-08-15T11:35:00Z" +branch: "agent/20260814-quant-backfill-ppo" +base_commit: "ed052f3d" +claim: "none (read-only analysis)" +--- + +## Цель + +Прочитать агентские инструкции и выполнить read-only анализ состояния проекта и runtime. + +## Scope + +- Разрешено: чтение документов, git status, systemd/docker inspection, логи. +- Вне scope: любые изменения кода, конфигов, сервисов. +- Пересечения: активный claim paper-fix (quant) — не затрагивался. + +## Исходное состояние + +- git status --short: чисто (0 изменений), ветка agent/20260814-quant-backfill-ppo. +- Прочитано: AGENTS.md, coordination/README.md, PROJECT_CONTEXT.md, SESSION_TEMPLATE.md, + активный claim paper-fix, PROJECT_INVENTORY.md, ROADMAP_NEXT.md. + +## Находки + +1. BLOCKER: aios-groq-key.service — restart loop, счётчик 7816, ~2833 рестарта/24ч. + Причина: ExecStart ссылается на /root/AIOS/groq_key_retry.py, файла нет нигде в ФС. + Единственный не-healthy unit; шумит в журнале, жжёт CPU впустую. +2. Диск 83% (60G/75G, 13G свободно) — health-check помечает красным. + Крупнейшее: backups/ 2.9G, data/chrome_twin 1.9G, Calls/ 1.2G, chroma_db 112M. +3. Расхождение документации и runtime по quant: PROJECT_CONTEXT говорит + entry_mode=freeze, фактически unit имеет AIOS_QUANT_ENTRY_MODE=enabled + (owner-approved constrained paper, зафиксировано 2026-08-14T12:20Z). Документ отстал. +4. Quant Directional v2: за 18ч работы trades=0, entry_count=0, портфель нетронут. + Доминирующие блокировки: exchange_not_allowed=96 на каждом полном скане + (allowlist kucoin,bitstamp,mexc против универсума 33 актива), ml_not_confirmed 4-17, + same_candle=1. Контур защитный, не зарабатывающий. +5. 31 коммит на локальной ветке не опубликован в origin/main. +6. Остальное здорово: 0 failed units, 38 сервисов, 57 таймеров, 13 контейнеров, + health-check 21/22 OK, память 5/7G, LA ~1.5 на 4 CPU. + +## Проверки + +- [PASS] git status --short — чисто. +- [PASS] systemctl --failed — пусто. +- [PASS] python run_health_check.py — OK 21/22, 1 проблема (диск 83%). +- [NOT RUN] pytest — read-only сессия, тесты не запускались. + +## Git + +- Коммиты: нет (кроме этого журнала). +- Незакоммиченные изменения: только этот файл журнала. +- Чужие изменения: отсутствовали, ничего не затронуто. + +## Handoff + +- Последняя завершённая точка: полный read-only анализ, отчёт передан оператору. +- Следующий конкретный шаг: решение оператора по aios-groq-key (восстановить скрипт + из git-истории либо disable+mask unit) — это первый и самый дешёвый фикс. +- Блокеры: нет. +- Риски: диск 83% растёт; при 90%+ пострадают SQLite/chroma/логи. +- Что нельзя без повторной проверки: включать live-торговлю, менять пороги owner-профиля. diff --git a/coordination/sessions/20260815T113500Z-aios-arena-ops-fixes.md b/coordination/sessions/20260815T113500Z-aios-arena-ops-fixes.md new file mode 100644 index 000000000..115c7d483 --- /dev/null +++ b/coordination/sessions/20260815T113500Z-aios-arena-ops-fixes.md @@ -0,0 +1,116 @@ +--- +session_id: "20260815T113500Z-aios-arena-ops-fixes" +status: "DONE" +agent: "Arena.ai Agent Mode" +machine: "aios" +started_utc: "2026-08-15T11:35:00Z" +updated_utc: "2026-08-15T12:00:00Z" +branch: "agent/20260814-quant-backfill-ppo" +base_commit: "fd386142" +claim: "coordination/claims/ops-fixes--20260815T113500Z-aios-arena-ops-fixes.md (removed on DONE)" +--- + +## Цель + +Устранить restart-loop `aios-groq-key`, снизить заполнение диска и синхронизировать +`PROJECT_CONTEXT.md` с фактическим runtime. + +## Scope + +- Разрешено: systemd-состояние `aios-groq-key`, disposable-кэши, `scripts/cleanup_disk.sh`, + `deploy/systemd/HETZNER_MASKED_UNITS.txt`, `tests/test_systemd_inventory.py`, координационные файлы. +- Явно вне scope: quant-конфигурация, пороги owner-профиля, live-торговля, Ollama-модели, + удаление бэкапов в пределах политики хранения, protected-файлы. +- Пересечения: активный claim `paper-fix` (quant) — не затрагивался. + +## Ход работы и решения + +### Фикс 1 — restart-loop `aios-groq-key.service` + +Root cause: `ExecStart=/root/AIOS/groq_key_retry.py`, файла нет ни в ФС, ни в git-истории +(`git log --all -- groq_key_retry.py` пусто) — временный скрипт был потерян, unit остался enabled. +Счётчик рестартов на момент вмешательства — 7832 (~2833/сутки, каждые 30с). + +Проверено перед действием: преемник `aios-groq-autopilot.timer` установлен, enabled, отрабатывает +ежечасно со `status=0/SUCCESS`, выдаёт `{"keys": 8, "action": "none"}`. То есть функция добычи/ротации +Groq-ключей уже покрыта, а legacy-unit — чистый мусор. + +Решение: `stop` + `disable` + `mask` (симлинк на `/dev/null`). Mask выбран вместо удаления как +обратимая операция и уже существующая конвенция хоста (`HETZNER_MASKED_UNITS.txt`). +Base unit сохранён в `backups/systemd_20260815/` (плюс tracked-копия в `deploy/systemd/`, +diff подтвердил идентичность перед удалением файла из `/etc`). + +Верификация: за 2 минуты после mask — 0 новых записей в журнале, `is-active=inactive`, +`is-enabled=masked`, `systemctl --failed` пуст, преемник не задет. + +### Фикс 2 — диск + +Важное уточнение к вчерашнему анализу: AIOS занимает лишь 6.5G из 60G занятых. +Основные потребители — вне репозитория: + +- `/var/lib/docker/rootfs/overlayfs` — 17G (образы, `docker system df` показывает 0B reclaimable); +- `/usr/share/ollama` — 14G (5 локальных моделей, сервис active/enabled, используются `llm_router.py`); +- `/opt/android-sdk` — 8.7G; `/var/lib/containerd` — 6.3G. + +Проверено, что бэкапы AIOS удалять нельзя: `backups/daily` — 5 дней при политике 14д, +`backups/sessions` — 5 копий при retention 7, `messenger_profiles` — 9 при retention 14. +Все в пределах собственной политики проекта, ротация работает. + +Освобождено только disposable: apt cache, crash dumps >7д, 3 отключённые snap-ревизии, +`/root/.cache/pip-tools` (649M) и `pip` (33M), `/tmp` >2д (1746 файлов), `__pycache__`. +Итог: 83% → 81% (13G → 14G свободно). + +Чтобы не росло снова, в `scripts/cleanup_disk.sh` (запускается таймером `aios-disk-cleanup`, +ежедневно 02:00) добавлена очистка regenerable-кэшей, crash dumps и apt cache. + +Не тронуто намеренно: Ollama-модели (14G) и Docker-образы (17G) — используются; их сокращение +это решение владельца, а не рутинная очистка. + +### Фикс 3 — синхронизация контекста + +`PROJECT_CONTEXT.md` утверждал `freeze`, фактически в unit `AIOS_QUANT_ENTRY_MODE=enabled` +(owner-approved constrained profile от 2026-08-14T12:20Z). Формулировка исправлена, добавлен +верифицированный срез: за 18ч trades=0, `exchange_not_allowed`=96 на скан (allowlist +`kucoin,bitstamp,mexc` против универсума 33 активов — отсечение до ML-гейта). +Записано operator decision по `aios-groq-key`. + +## Изменённые файлы + +- `deploy/systemd/HETZNER_MASKED_UNITS.txt` — добавлен `aios-groq-key.service`, дата снапшота. +- `tests/test_systemd_inventory.py` — ожидаемый набор masks приведён к фактическому. +- `scripts/cleanup_disk.sh` — +6 строк: pip/pip-tools cache, crash dumps >7д, apt clean. +- `coordination/PROJECT_CONTEXT.md` — entry_mode drift, quant-срез, operator decision. + +Runtime (вне Git): `aios-groq-key.service` masked; backup в `backups/systemd_20260815/` (не tracked). + +## Проверки + +- `[PASS]` `systemctl is-active/is-enabled aios-groq-key` — inactive / masked. +- `[PASS]` журнал за 2 мин после mask — 0 новых рестартов (было ~120/час). +- `[PASS]` `systemctl --failed` — пусто. +- `[PASS]` `systemctl list-timers aios-groq-autopilot` — active, next 12:00, преемник цел. +- `[PASS]` `python scripts/audit_deployment_sources.py --runtime` — drift 0, errors 0 (до и после). +- `[PASS]` `pytest tests/test_systemd_inventory.py -q` — 3 passed (был 1 failed после mask). +- `[PASS]` `ruff check tests/test_systemd_inventory.py` — All checks passed. +- `[PASS]` `bash -n scripts/cleanup_disk.sh` — синтаксис ок. +- `[PASS]` `python run_health_check.py` — 21/22, диск 81% (было 83%). +- `[NOT RUN]` полный `pytest tests/ -q` — не запускался; затронуты только systemd-inventory тесты. + +## Git + +- Коммит: см. ниже в ветке `agent/20260814-quant-backfill-ppo`. +- Незакоммиченные изменения: `backups/systemd_20260815/` намеренно не добавлен в индекс + (физический runtime-артефакт, политика #8 — такие файлы не tracked). +- Чужие изменения: отсутствовали; claim `paper-fix` не затронут. + +## Handoff + +- Последняя завершённая точка: три фикса применены и верифицированы, тесты зелёные. +- Следующий конкретный шаг: решение владельца по диску — 81% всё ещё выше комфортного порога, + а основной резерв это Ollama-модели (14G) и Docker-образы (17G). Без их сокращения + или расширения диска health-check продолжит помечать красным. +- Блокеры: нет. +- Риски: диск снизился незначительно; крупные потребители не тронуты сознательно. +- Что нельзя без повторной проверки: удалять Ollama-модели и Docker-образы (используются + в проде), включать live-торговлю, менять пороги owner-профиля, снимать mask + без восстановления `groq_key_retry.py`. diff --git a/coordination/sessions/20260815T123500Z-aios-arena-operator-assist.md b/coordination/sessions/20260815T123500Z-aios-arena-operator-assist.md new file mode 100644 index 000000000..4a440a09c --- /dev/null +++ b/coordination/sessions/20260815T123500Z-aios-arena-operator-assist.md @@ -0,0 +1,1106 @@ +--- +session_id: "20260815T123500Z-aios-arena-operator-assist" +status: "PAUSED" +agent: "Arena.ai Agent Mode" +machine: "aios" +started_utc: "2026-08-15T12:35:05Z" +updated_utc: "2026-08-15T12:50:40Z" +branch: "agent/20260814-quant-backfill-ppo" +base_commit: "907b0944" +claim: "none" +--- + +## Цель + +1. [DONE] Отключить все источники Telegram-алертов про бесконкурентные баунти (bounty radar). 2. [DONE] Whisper-пайплайн: скачанные аудио не хранятся локально (скачал - распознал - удалил). 3. [DONE] Read-only аудит дискового пространства сервера. + +## Scope + +- Разрешённые компоненты/файлы: определяются после постановки задачи (будет создан advisory claim для code-изменений). +- Явно вне scope: protected-файлы из AGENTS.md; live trading; массовые systemd-операции. +- Ожидаемые пересечения с другими сессиями: claim `paper-fix` (session 20260814T160500Z) формально ACTIVE, но по PROJECT_CONTEXT работа закрыта — с ним не пересекаться без необходимости. + +## Исходное состояние + +- `git status --short`: только untracked `backups/systemd_20260815/` (чужая работа, не трогаем). +- Прочитанные документы: AGENTS.md, coordination/README.md, PROJECT_CONTEXT.md, SESSION_TEMPLATE.md. +- Уже существующие чужие изменения: нет. +- Runtime/окружение: ветка `agent/20260814-quant-backfill-ppo`, base `907b0944`; `git fetch --all --prune` выполнен. + +## План + +1. Получить задачу оператора. +2. Проверить claims/пересечения, при code-задаче — создать claim. +3. Выполнить задачу минимальными правками, прогнать проверки. +4. Зафиксировать результат в этом журнале и подготовить handoff. + +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T14:05Z — годичный замер (2025-08-15 -> 2026-08-15, 8761 бар 1h; покрытие: 33/33 активов >= 10024 баров, backfill не потребовался): owner-профиль 1 сделка (-0.30%, kill-switch), owner-no-ML идентично; free+ML: 370 сделок, win 37.8%, -19.59%, PF 0.68, комиссии ; free-no-ML: 11239 сделок, win 23.7%, -1483% синт., PF 0.33, комиссии 98. Вывод: 6-мес "edge" +0.88% не подтвердился на году (-19.59%) — был шумом; на горизонте года логика не зарабатывает ни в одной конфигурации, freeze/owner-профиль остаются единственной защитой. Отчёты: docs/TRADING_BACKTEST_1Y_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T13:45Z — режим --free-profile в quant_monthly_backtest.py (качество сигналов без kill-switch, фикс /сделку). Итоги 6 мес: (а) free+ML: 95 сделок, win 47.4%, +0.88%, PF 1.07, комиссии .56, пиковая экспозиция 12 поз.; (б) free-no-ML: 4839 сделок, win 24.1%, -615% синтетически, PF 0.35, комиссии 8. Вывод: весь edge создаётся ML-фильтром (98% отсева сделок); суммарно после издержек edge ~ноль (+0.9%/6 мес, in-sample ML) — оснований снимать freeze нет. Контроль: owner-профиль после патча логически не изменился (расхождение только B&H из-за пополнения свечей в реальном времени). Отчёты: docs/TRADING_BACKTEST_6M_FREE_{ML,NO_ML}_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T14:05Z — годичный замер (2025-08-15 -> 2026-08-15, 8761 бар 1h; покрытие: 33/33 активов >= 10024 баров, backfill не потребовался): owner-профиль 1 сделка (-0.30%, kill-switch), owner-no-ML идентично; free+ML: 370 сделок, win 37.8%, -19.59%, PF 0.68, комиссии ; free-no-ML: 11239 сделок, win 23.7%, -1483% синт., PF 0.33, комиссии 98. Вывод: 6-мес "edge" +0.88% не подтвердился на году (-19.59%) — был шумом; на горизонте года логика не зарабатывает ни в одной конфигурации, freeze/owner-профиль остаются единственной защитой. Отчёты: docs/TRADING_BACKTEST_1Y_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T13:30Z — контрольный прогон --no-ml-gate (6 мес): ИДЕНТИЧНЫЙ результат (-0.30%, 1 сделка, APT stop_loss). Блокировки: global_drawdown_kill 8086, rl_veto 3624, OK 1. Ключевой вывод: узкое место — НЕ ML-гейт, а kill-switch equity drawdown 0.25%: первая же сделка по SL (-1.49% на позицию 200 USD = -0.30% equity) превышает лимит и навсегда блокирует входы; дальше система 6 месяцев не торгует by design. ML-гейт в owner-профиле не добавляет и не убирает ценности. Отчёт: docs/TRADING_BACKTEST_6M_NO_ML_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T14:05Z — годичный замер (2025-08-15 -> 2026-08-15, 8761 бар 1h; покрытие: 33/33 активов >= 10024 баров, backfill не потребовался): owner-профиль 1 сделка (-0.30%, kill-switch), owner-no-ML идентично; free+ML: 370 сделок, win 37.8%, -19.59%, PF 0.68, комиссии ; free-no-ML: 11239 сделок, win 23.7%, -1483% синт., PF 0.33, комиссии 98. Вывод: 6-мес "edge" +0.88% не подтвердился на году (-19.59%) — был шумом; на горизонте года логика не зарабатывает ни в одной конфигурации, freeze/owner-профиль остаются единственной защитой. Отчёты: docs/TRADING_BACKTEST_1Y_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T13:45Z — режим --free-profile в quant_monthly_backtest.py (качество сигналов без kill-switch, фикс /сделку). Итоги 6 мес: (а) free+ML: 95 сделок, win 47.4%, +0.88%, PF 1.07, комиссии .56, пиковая экспозиция 12 поз.; (б) free-no-ML: 4839 сделок, win 24.1%, -615% синтетически, PF 0.35, комиссии 8. Вывод: весь edge создаётся ML-фильтром (98% отсева сделок); суммарно после издержек edge ~ноль (+0.9%/6 мес, in-sample ML) — оснований снимать freeze нет. Контроль: owner-профиль после патча логически не изменился (расхождение только B&H из-за пополнения свечей в реальном времени). Отчёты: docs/TRADING_BACKTEST_6M_FREE_{ML,NO_ML}_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T14:05Z — годичный замер (2025-08-15 -> 2026-08-15, 8761 бар 1h; покрытие: 33/33 активов >= 10024 баров, backfill не потребовался): owner-профиль 1 сделка (-0.30%, kill-switch), owner-no-ML идентично; free+ML: 370 сделок, win 37.8%, -19.59%, PF 0.68, комиссии ; free-no-ML: 11239 сделок, win 23.7%, -1483% синт., PF 0.33, комиссии 98. Вывод: 6-мес "edge" +0.88% не подтвердился на году (-19.59%) — был шумом; на горизонте года логика не зарабатывает ни в одной конфигурации, freeze/owner-профиль остаются единственной защитой. Отчёты: docs/TRADING_BACKTEST_1Y_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T13:25Z — 6-мес бэктест Directional v2 (scripts/quant_monthly_backtest.py --months 6): 33 актива, 4345 бара 1h (2026-02-15→2026-08-15). Итог: капитал 997.01 USD (-0.30%), сделок 1 (OP, SL -1.49%); блокировки: ml_not_confirmed 11633, dd_kill 95, rl_veto 16. B&H среднее -20.22% (медиана -28.12%), алгоритм +19.92 п.п. к средней за счёт не-входа; прибыли нет. Отчёт: docs/TRADING_BACKTEST_6M_2026-08-15_RU.md (коммит 8d158685). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T14:05Z — годичный замер (2025-08-15 -> 2026-08-15, 8761 бар 1h; покрытие: 33/33 активов >= 10024 баров, backfill не потребовался): owner-профиль 1 сделка (-0.30%, kill-switch), owner-no-ML идентично; free+ML: 370 сделок, win 37.8%, -19.59%, PF 0.68, комиссии ; free-no-ML: 11239 сделок, win 23.7%, -1483% синт., PF 0.33, комиссии 98. Вывод: 6-мес "edge" +0.88% не подтвердился на году (-19.59%) — был шумом; на горизонте года логика не зарабатывает ни в одной конфигурации, freeze/owner-профиль остаются единственной защитой. Отчёты: docs/TRADING_BACKTEST_1Y_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T13:45Z — режим --free-profile в quant_monthly_backtest.py (качество сигналов без kill-switch, фикс /сделку). Итоги 6 мес: (а) free+ML: 95 сделок, win 47.4%, +0.88%, PF 1.07, комиссии .56, пиковая экспозиция 12 поз.; (б) free-no-ML: 4839 сделок, win 24.1%, -615% синтетически, PF 0.35, комиссии 8. Вывод: весь edge создаётся ML-фильтром (98% отсева сделок); суммарно после издержек edge ~ноль (+0.9%/6 мес, in-sample ML) — оснований снимать freeze нет. Контроль: owner-профиль после патча логически не изменился (расхождение только B&H из-за пополнения свечей в реальном времени). Отчёты: docs/TRADING_BACKTEST_6M_FREE_{ML,NO_ML}_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T14:05Z — годичный замер (2025-08-15 -> 2026-08-15, 8761 бар 1h; покрытие: 33/33 активов >= 10024 баров, backfill не потребовался): owner-профиль 1 сделка (-0.30%, kill-switch), owner-no-ML идентично; free+ML: 370 сделок, win 37.8%, -19.59%, PF 0.68, комиссии ; free-no-ML: 11239 сделок, win 23.7%, -1483% синт., PF 0.33, комиссии 98. Вывод: 6-мес "edge" +0.88% не подтвердился на году (-19.59%) — был шумом; на горизонте года логика не зарабатывает ни в одной конфигурации, freeze/owner-профиль остаются единственной защитой. Отчёты: docs/TRADING_BACKTEST_1Y_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T13:30Z — контрольный прогон --no-ml-gate (6 мес): ИДЕНТИЧНЫЙ результат (-0.30%, 1 сделка, APT stop_loss). Блокировки: global_drawdown_kill 8086, rl_veto 3624, OK 1. Ключевой вывод: узкое место — НЕ ML-гейт, а kill-switch equity drawdown 0.25%: первая же сделка по SL (-1.49% на позицию 200 USD = -0.30% equity) превышает лимит и навсегда блокирует входы; дальше система 6 месяцев не торгует by design. ML-гейт в owner-профиле не добавляет и не убирает ценности. Отчёт: docs/TRADING_BACKTEST_6M_NO_ML_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T14:05Z — годичный замер (2025-08-15 -> 2026-08-15, 8761 бар 1h; покрытие: 33/33 активов >= 10024 баров, backfill не потребовался): owner-профиль 1 сделка (-0.30%, kill-switch), owner-no-ML идентично; free+ML: 370 сделок, win 37.8%, -19.59%, PF 0.68, комиссии ; free-no-ML: 11239 сделок, win 23.7%, -1483% синт., PF 0.33, комиссии 98. Вывод: 6-мес "edge" +0.88% не подтвердился на году (-19.59%) — был шумом; на горизонте года логика не зарабатывает ни в одной конфигурации, freeze/owner-профиль остаются единственной защитой. Отчёты: docs/TRADING_BACKTEST_1Y_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T13:45Z — режим --free-profile в quant_monthly_backtest.py (качество сигналов без kill-switch, фикс /сделку). Итоги 6 мес: (а) free+ML: 95 сделок, win 47.4%, +0.88%, PF 1.07, комиссии .56, пиковая экспозиция 12 поз.; (б) free-no-ML: 4839 сделок, win 24.1%, -615% синтетически, PF 0.35, комиссии 8. Вывод: весь edge создаётся ML-фильтром (98% отсева сделок); суммарно после издержек edge ~ноль (+0.9%/6 мес, in-sample ML) — оснований снимать freeze нет. Контроль: owner-профиль после патча логически не изменился (расхождение только B&H из-за пополнения свечей в реальном времени). Отчёты: docs/TRADING_BACKTEST_6M_FREE_{ML,NO_ML}_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T14:05Z — годичный замер (2025-08-15 -> 2026-08-15, 8761 бар 1h; покрытие: 33/33 активов >= 10024 баров, backfill не потребовался): owner-профиль 1 сделка (-0.30%, kill-switch), owner-no-ML идентично; free+ML: 370 сделок, win 37.8%, -19.59%, PF 0.68, комиссии ; free-no-ML: 11239 сделок, win 23.7%, -1483% синт., PF 0.33, комиссии 98. Вывод: 6-мес "edge" +0.88% не подтвердился на году (-19.59%) — был шумом; на горизонте года логика не зарабатывает ни в одной конфигурации, freeze/owner-профиль остаются единственной защитой. Отчёты: docs/TRADING_BACKTEST_1Y_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T13:14:35Z — чистка выполнена (владелец подтвердил пункты 1-4): 58G→33G used, свободно 40G (46%). Ollama удалён полностью; android system-images удалены; backups прунуты по retention (последние 2-3 копии); safe-clean выполнен. chrome_twin пропущен (активный Chrome-профиль автоматики, риск потери Google-сессии) — решение по нему остаётся за владельцем. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T14:05Z — годичный замер (2025-08-15 -> 2026-08-15, 8761 бар 1h; покрытие: 33/33 активов >= 10024 баров, backfill не потребовался): owner-профиль 1 сделка (-0.30%, kill-switch), owner-no-ML идентично; free+ML: 370 сделок, win 37.8%, -19.59%, PF 0.68, комиссии ; free-no-ML: 11239 сделок, win 23.7%, -1483% синт., PF 0.33, комиссии 98. Вывод: 6-мес "edge" +0.88% не подтвердился на году (-19.59%) — был шумом; на горизонте года логика не зарабатывает ни в одной конфигурации, freeze/owner-профиль остаются единственной защитой. Отчёты: docs/TRADING_BACKTEST_1Y_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T13:45Z — режим --free-profile в quant_monthly_backtest.py (качество сигналов без kill-switch, фикс /сделку). Итоги 6 мес: (а) free+ML: 95 сделок, win 47.4%, +0.88%, PF 1.07, комиссии .56, пиковая экспозиция 12 поз.; (б) free-no-ML: 4839 сделок, win 24.1%, -615% синтетически, PF 0.35, комиссии 8. Вывод: весь edge создаётся ML-фильтром (98% отсева сделок); суммарно после издержек edge ~ноль (+0.9%/6 мес, in-sample ML) — оснований снимать freeze нет. Контроль: owner-профиль после патча логически не изменился (расхождение только B&H из-за пополнения свечей в реальном времени). Отчёты: docs/TRADING_BACKTEST_6M_FREE_{ML,NO_ML}_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T14:05Z — годичный замер (2025-08-15 -> 2026-08-15, 8761 бар 1h; покрытие: 33/33 активов >= 10024 баров, backfill не потребовался): owner-профиль 1 сделка (-0.30%, kill-switch), owner-no-ML идентично; free+ML: 370 сделок, win 37.8%, -19.59%, PF 0.68, комиссии ; free-no-ML: 11239 сделок, win 23.7%, -1483% синт., PF 0.33, комиссии 98. Вывод: 6-мес "edge" +0.88% не подтвердился на году (-19.59%) — был шумом; на горизонте года логика не зарабатывает ни в одной конфигурации, freeze/owner-профиль остаются единственной защитой. Отчёты: docs/TRADING_BACKTEST_1Y_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T13:30Z — контрольный прогон --no-ml-gate (6 мес): ИДЕНТИЧНЫЙ результат (-0.30%, 1 сделка, APT stop_loss). Блокировки: global_drawdown_kill 8086, rl_veto 3624, OK 1. Ключевой вывод: узкое место — НЕ ML-гейт, а kill-switch equity drawdown 0.25%: первая же сделка по SL (-1.49% на позицию 200 USD = -0.30% equity) превышает лимит и навсегда блокирует входы; дальше система 6 месяцев не торгует by design. ML-гейт в owner-профиле не добавляет и не убирает ценности. Отчёт: docs/TRADING_BACKTEST_6M_NO_ML_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T14:05Z — годичный замер (2025-08-15 -> 2026-08-15, 8761 бар 1h; покрытие: 33/33 активов >= 10024 баров, backfill не потребовался): owner-профиль 1 сделка (-0.30%, kill-switch), owner-no-ML идентично; free+ML: 370 сделок, win 37.8%, -19.59%, PF 0.68, комиссии ; free-no-ML: 11239 сделок, win 23.7%, -1483% синт., PF 0.33, комиссии 98. Вывод: 6-мес "edge" +0.88% не подтвердился на году (-19.59%) — был шумом; на горизонте года логика не зарабатывает ни в одной конфигурации, freeze/owner-профиль остаются единственной защитой. Отчёты: docs/TRADING_BACKTEST_1Y_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T13:45Z — режим --free-profile в quant_monthly_backtest.py (качество сигналов без kill-switch, фикс /сделку). Итоги 6 мес: (а) free+ML: 95 сделок, win 47.4%, +0.88%, PF 1.07, комиссии .56, пиковая экспозиция 12 поз.; (б) free-no-ML: 4839 сделок, win 24.1%, -615% синтетически, PF 0.35, комиссии 8. Вывод: весь edge создаётся ML-фильтром (98% отсева сделок); суммарно после издержек edge ~ноль (+0.9%/6 мес, in-sample ML) — оснований снимать freeze нет. Контроль: owner-профиль после патча логически не изменился (расхождение только B&H из-за пополнения свечей в реальном времени). Отчёты: docs/TRADING_BACKTEST_6M_FREE_{ML,NO_ML}_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T14:05Z — годичный замер (2025-08-15 -> 2026-08-15, 8761 бар 1h; покрытие: 33/33 активов >= 10024 баров, backfill не потребовался): owner-профиль 1 сделка (-0.30%, kill-switch), owner-no-ML идентично; free+ML: 370 сделок, win 37.8%, -19.59%, PF 0.68, комиссии ; free-no-ML: 11239 сделок, win 23.7%, -1483% синт., PF 0.33, комиссии 98. Вывод: 6-мес "edge" +0.88% не подтвердился на году (-19.59%) — был шумом; на горизонте года логика не зарабатывает ни в одной конфигурации, freeze/owner-профиль остаются единственной защитой. Отчёты: docs/TRADING_BACKTEST_1Y_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T13:25Z — 6-мес бэктест Directional v2 (scripts/quant_monthly_backtest.py --months 6): 33 актива, 4345 бара 1h (2026-02-15→2026-08-15). Итог: капитал 997.01 USD (-0.30%), сделок 1 (OP, SL -1.49%); блокировки: ml_not_confirmed 11633, dd_kill 95, rl_veto 16. B&H среднее -20.22% (медиана -28.12%), алгоритм +19.92 п.п. к средней за счёт не-входа; прибыли нет. Отчёт: docs/TRADING_BACKTEST_6M_2026-08-15_RU.md (коммит 8d158685). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T14:05Z — годичный замер (2025-08-15 -> 2026-08-15, 8761 бар 1h; покрытие: 33/33 активов >= 10024 баров, backfill не потребовался): owner-профиль 1 сделка (-0.30%, kill-switch), owner-no-ML идентично; free+ML: 370 сделок, win 37.8%, -19.59%, PF 0.68, комиссии ; free-no-ML: 11239 сделок, win 23.7%, -1483% синт., PF 0.33, комиссии 98. Вывод: 6-мес "edge" +0.88% не подтвердился на году (-19.59%) — был шумом; на горизонте года логика не зарабатывает ни в одной конфигурации, freeze/owner-профиль остаются единственной защитой. Отчёты: docs/TRADING_BACKTEST_1Y_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T13:45Z — режим --free-profile в quant_monthly_backtest.py (качество сигналов без kill-switch, фикс /сделку). Итоги 6 мес: (а) free+ML: 95 сделок, win 47.4%, +0.88%, PF 1.07, комиссии .56, пиковая экспозиция 12 поз.; (б) free-no-ML: 4839 сделок, win 24.1%, -615% синтетически, PF 0.35, комиссии 8. Вывод: весь edge создаётся ML-фильтром (98% отсева сделок); суммарно после издержек edge ~ноль (+0.9%/6 мес, in-sample ML) — оснований снимать freeze нет. Контроль: owner-профиль после патча логически не изменился (расхождение только B&H из-за пополнения свечей в реальном времени). Отчёты: docs/TRADING_BACKTEST_6M_FREE_{ML,NO_ML}_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T14:05Z — годичный замер (2025-08-15 -> 2026-08-15, 8761 бар 1h; покрытие: 33/33 активов >= 10024 баров, backfill не потребовался): owner-профиль 1 сделка (-0.30%, kill-switch), owner-no-ML идентично; free+ML: 370 сделок, win 37.8%, -19.59%, PF 0.68, комиссии ; free-no-ML: 11239 сделок, win 23.7%, -1483% синт., PF 0.33, комиссии 98. Вывод: 6-мес "edge" +0.88% не подтвердился на году (-19.59%) — был шумом; на горизонте года логика не зарабатывает ни в одной конфигурации, freeze/owner-профиль остаются единственной защитой. Отчёты: docs/TRADING_BACKTEST_1Y_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T13:30Z — контрольный прогон --no-ml-gate (6 мес): ИДЕНТИЧНЫЙ результат (-0.30%, 1 сделка, APT stop_loss). Блокировки: global_drawdown_kill 8086, rl_veto 3624, OK 1. Ключевой вывод: узкое место — НЕ ML-гейт, а kill-switch equity drawdown 0.25%: первая же сделка по SL (-1.49% на позицию 200 USD = -0.30% equity) превышает лимит и навсегда блокирует входы; дальше система 6 месяцев не торгует by design. ML-гейт в owner-профиле не добавляет и не убирает ценности. Отчёт: docs/TRADING_BACKTEST_6M_NO_ML_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T14:05Z — годичный замер (2025-08-15 -> 2026-08-15, 8761 бар 1h; покрытие: 33/33 активов >= 10024 баров, backfill не потребовался): owner-профиль 1 сделка (-0.30%, kill-switch), owner-no-ML идентично; free+ML: 370 сделок, win 37.8%, -19.59%, PF 0.68, комиссии ; free-no-ML: 11239 сделок, win 23.7%, -1483% синт., PF 0.33, комиссии 98. Вывод: 6-мес "edge" +0.88% не подтвердился на году (-19.59%) — был шумом; на горизонте года логика не зарабатывает ни в одной конфигурации, freeze/owner-профиль остаются единственной защитой. Отчёты: docs/TRADING_BACKTEST_1Y_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T13:45Z — режим --free-profile в quant_monthly_backtest.py (качество сигналов без kill-switch, фикс /сделку). Итоги 6 мес: (а) free+ML: 95 сделок, win 47.4%, +0.88%, PF 1.07, комиссии .56, пиковая экспозиция 12 поз.; (б) free-no-ML: 4839 сделок, win 24.1%, -615% синтетически, PF 0.35, комиссии 8. Вывод: весь edge создаётся ML-фильтром (98% отсева сделок); суммарно после издержек edge ~ноль (+0.9%/6 мес, in-sample ML) — оснований снимать freeze нет. Контроль: owner-профиль после патча логически не изменился (расхождение только B&H из-за пополнения свечей в реальном времени). Отчёты: docs/TRADING_BACKTEST_6M_FREE_{ML,NO_ML}_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T14:05Z — годичный замер (2025-08-15 -> 2026-08-15, 8761 бар 1h; покрытие: 33/33 активов >= 10024 баров, backfill не потребовался): owner-профиль 1 сделка (-0.30%, kill-switch), owner-no-ML идентично; free+ML: 370 сделок, win 37.8%, -19.59%, PF 0.68, комиссии ; free-no-ML: 11239 сделок, win 23.7%, -1483% синт., PF 0.33, комиссии 98. Вывод: 6-мес "edge" +0.88% не подтвердился на году (-19.59%) — был шумом; на горизонте года логика не зарабатывает ни в одной конфигурации, freeze/owner-профиль остаются единственной защитой. Отчёты: docs/TRADING_BACKTEST_1Y_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T13:07:35Z — whisper-fix: единственная точка входа голосовых — tg_bot/voice.py::_transcribe_audio, скачивание в /tmp/aios_tg_* (tg_bot/api.py:download_file_by_id). Protected run_telegram_bot.py НЕ редактировался: очистка внутри _transcribe_audio (wrapper + finally, удаление только /tmp/aios_tg_*) и _send_voice_reply (contextlib.suppress(OSError) + unlink после отправки). Файлы вне /tmp (архив Calls/) защищены guard-условием. Коммит 0c209fa2, aios-telegram-bot перезапущен, active. +- 2026-08-15T13:07:35Z — аудит диска (read-only): 58G/75G (81%), свободно 14G. Топ: ollama models ~14G (/usr/share/ollama, CUDA-libs 1.2G; сервис active, моделей в памяти 0), android-sdk 8.7G (system-images 7.3G: android-35 arm64 3.7G + x86_64 3.4G), containerd images 6.3G (все active), AIOS 6.5G (backups 2.9G: sessions 848M/daily 754M/messenger 745M/manual 574M; data 2.2G из них chrome_twin 1.9G; Calls 1.2G), swapfile 4G, snapd 1.9G (cache 615M), /tmp 1.2G (fastembed 241M), .cache 1G (playwright 656M), /var/log 282M, journal 120M. Деструктивная очистка — по решению владельца. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T14:05Z — годичный замер (2025-08-15 -> 2026-08-15, 8761 бар 1h; покрытие: 33/33 активов >= 10024 баров, backfill не потребовался): owner-профиль 1 сделка (-0.30%, kill-switch), owner-no-ML идентично; free+ML: 370 сделок, win 37.8%, -19.59%, PF 0.68, комиссии ; free-no-ML: 11239 сделок, win 23.7%, -1483% синт., PF 0.33, комиссии 98. Вывод: 6-мес "edge" +0.88% не подтвердился на году (-19.59%) — был шумом; на горизонте года логика не зарабатывает ни в одной конфигурации, freeze/owner-профиль остаются единственной защитой. Отчёты: docs/TRADING_BACKTEST_1Y_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T13:45Z — режим --free-profile в quant_monthly_backtest.py (качество сигналов без kill-switch, фикс /сделку). Итоги 6 мес: (а) free+ML: 95 сделок, win 47.4%, +0.88%, PF 1.07, комиссии .56, пиковая экспозиция 12 поз.; (б) free-no-ML: 4839 сделок, win 24.1%, -615% синтетически, PF 0.35, комиссии 8. Вывод: весь edge создаётся ML-фильтром (98% отсева сделок); суммарно после издержек edge ~ноль (+0.9%/6 мес, in-sample ML) — оснований снимать freeze нет. Контроль: owner-профиль после патча логически не изменился (расхождение только B&H из-за пополнения свечей в реальном времени). Отчёты: docs/TRADING_BACKTEST_6M_FREE_{ML,NO_ML}_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T14:05Z — годичный замер (2025-08-15 -> 2026-08-15, 8761 бар 1h; покрытие: 33/33 активов >= 10024 баров, backfill не потребовался): owner-профиль 1 сделка (-0.30%, kill-switch), owner-no-ML идентично; free+ML: 370 сделок, win 37.8%, -19.59%, PF 0.68, комиссии ; free-no-ML: 11239 сделок, win 23.7%, -1483% синт., PF 0.33, комиссии 98. Вывод: 6-мес "edge" +0.88% не подтвердился на году (-19.59%) — был шумом; на горизонте года логика не зарабатывает ни в одной конфигурации, freeze/owner-профиль остаются единственной защитой. Отчёты: docs/TRADING_BACKTEST_1Y_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T13:30Z — контрольный прогон --no-ml-gate (6 мес): ИДЕНТИЧНЫЙ результат (-0.30%, 1 сделка, APT stop_loss). Блокировки: global_drawdown_kill 8086, rl_veto 3624, OK 1. Ключевой вывод: узкое место — НЕ ML-гейт, а kill-switch equity drawdown 0.25%: первая же сделка по SL (-1.49% на позицию 200 USD = -0.30% equity) превышает лимит и навсегда блокирует входы; дальше система 6 месяцев не торгует by design. ML-гейт в owner-профиле не добавляет и не убирает ценности. Отчёт: docs/TRADING_BACKTEST_6M_NO_ML_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T14:05Z — годичный замер (2025-08-15 -> 2026-08-15, 8761 бар 1h; покрытие: 33/33 активов >= 10024 баров, backfill не потребовался): owner-профиль 1 сделка (-0.30%, kill-switch), owner-no-ML идентично; free+ML: 370 сделок, win 37.8%, -19.59%, PF 0.68, комиссии ; free-no-ML: 11239 сделок, win 23.7%, -1483% синт., PF 0.33, комиссии 98. Вывод: 6-мес "edge" +0.88% не подтвердился на году (-19.59%) — был шумом; на горизонте года логика не зарабатывает ни в одной конфигурации, freeze/owner-профиль остаются единственной защитой. Отчёты: docs/TRADING_BACKTEST_1Y_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T13:45Z — режим --free-profile в quant_monthly_backtest.py (качество сигналов без kill-switch, фикс /сделку). Итоги 6 мес: (а) free+ML: 95 сделок, win 47.4%, +0.88%, PF 1.07, комиссии .56, пиковая экспозиция 12 поз.; (б) free-no-ML: 4839 сделок, win 24.1%, -615% синтетически, PF 0.35, комиссии 8. Вывод: весь edge создаётся ML-фильтром (98% отсева сделок); суммарно после издержек edge ~ноль (+0.9%/6 мес, in-sample ML) — оснований снимать freeze нет. Контроль: owner-профиль после патча логически не изменился (расхождение только B&H из-за пополнения свечей в реальном времени). Отчёты: docs/TRADING_BACKTEST_6M_FREE_{ML,NO_ML}_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T14:05Z — годичный замер (2025-08-15 -> 2026-08-15, 8761 бар 1h; покрытие: 33/33 активов >= 10024 баров, backfill не потребовался): owner-профиль 1 сделка (-0.30%, kill-switch), owner-no-ML идентично; free+ML: 370 сделок, win 37.8%, -19.59%, PF 0.68, комиссии ; free-no-ML: 11239 сделок, win 23.7%, -1483% синт., PF 0.33, комиссии 98. Вывод: 6-мес "edge" +0.88% не подтвердился на году (-19.59%) — был шумом; на горизонте года логика не зарабатывает ни в одной конфигурации, freeze/owner-профиль остаются единственной защитой. Отчёты: docs/TRADING_BACKTEST_1Y_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T13:25Z — 6-мес бэктест Directional v2 (scripts/quant_monthly_backtest.py --months 6): 33 актива, 4345 бара 1h (2026-02-15→2026-08-15). Итог: капитал 997.01 USD (-0.30%), сделок 1 (OP, SL -1.49%); блокировки: ml_not_confirmed 11633, dd_kill 95, rl_veto 16. B&H среднее -20.22% (медиана -28.12%), алгоритм +19.92 п.п. к средней за счёт не-входа; прибыли нет. Отчёт: docs/TRADING_BACKTEST_6M_2026-08-15_RU.md (коммит 8d158685). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T14:05Z — годичный замер (2025-08-15 -> 2026-08-15, 8761 бар 1h; покрытие: 33/33 активов >= 10024 баров, backfill не потребовался): owner-профиль 1 сделка (-0.30%, kill-switch), owner-no-ML идентично; free+ML: 370 сделок, win 37.8%, -19.59%, PF 0.68, комиссии ; free-no-ML: 11239 сделок, win 23.7%, -1483% синт., PF 0.33, комиссии 98. Вывод: 6-мес "edge" +0.88% не подтвердился на году (-19.59%) — был шумом; на горизонте года логика не зарабатывает ни в одной конфигурации, freeze/owner-профиль остаются единственной защитой. Отчёты: docs/TRADING_BACKTEST_1Y_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T13:45Z — режим --free-profile в quant_monthly_backtest.py (качество сигналов без kill-switch, фикс /сделку). Итоги 6 мес: (а) free+ML: 95 сделок, win 47.4%, +0.88%, PF 1.07, комиссии .56, пиковая экспозиция 12 поз.; (б) free-no-ML: 4839 сделок, win 24.1%, -615% синтетически, PF 0.35, комиссии 8. Вывод: весь edge создаётся ML-фильтром (98% отсева сделок); суммарно после издержек edge ~ноль (+0.9%/6 мес, in-sample ML) — оснований снимать freeze нет. Контроль: owner-профиль после патча логически не изменился (расхождение только B&H из-за пополнения свечей в реальном времени). Отчёты: docs/TRADING_BACKTEST_6M_FREE_{ML,NO_ML}_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T14:05Z — годичный замер (2025-08-15 -> 2026-08-15, 8761 бар 1h; покрытие: 33/33 активов >= 10024 баров, backfill не потребовался): owner-профиль 1 сделка (-0.30%, kill-switch), owner-no-ML идентично; free+ML: 370 сделок, win 37.8%, -19.59%, PF 0.68, комиссии ; free-no-ML: 11239 сделок, win 23.7%, -1483% синт., PF 0.33, комиссии 98. Вывод: 6-мес "edge" +0.88% не подтвердился на году (-19.59%) — был шумом; на горизонте года логика не зарабатывает ни в одной конфигурации, freeze/owner-профиль остаются единственной защитой. Отчёты: docs/TRADING_BACKTEST_1Y_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T13:30Z — контрольный прогон --no-ml-gate (6 мес): ИДЕНТИЧНЫЙ результат (-0.30%, 1 сделка, APT stop_loss). Блокировки: global_drawdown_kill 8086, rl_veto 3624, OK 1. Ключевой вывод: узкое место — НЕ ML-гейт, а kill-switch equity drawdown 0.25%: первая же сделка по SL (-1.49% на позицию 200 USD = -0.30% equity) превышает лимит и навсегда блокирует входы; дальше система 6 месяцев не торгует by design. ML-гейт в owner-профиле не добавляет и не убирает ценности. Отчёт: docs/TRADING_BACKTEST_6M_NO_ML_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T14:05Z — годичный замер (2025-08-15 -> 2026-08-15, 8761 бар 1h; покрытие: 33/33 активов >= 10024 баров, backfill не потребовался): owner-профиль 1 сделка (-0.30%, kill-switch), owner-no-ML идентично; free+ML: 370 сделок, win 37.8%, -19.59%, PF 0.68, комиссии ; free-no-ML: 11239 сделок, win 23.7%, -1483% синт., PF 0.33, комиссии 98. Вывод: 6-мес "edge" +0.88% не подтвердился на году (-19.59%) — был шумом; на горизонте года логика не зарабатывает ни в одной конфигурации, freeze/owner-профиль остаются единственной защитой. Отчёты: docs/TRADING_BACKTEST_1Y_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T13:45Z — режим --free-profile в quant_monthly_backtest.py (качество сигналов без kill-switch, фикс /сделку). Итоги 6 мес: (а) free+ML: 95 сделок, win 47.4%, +0.88%, PF 1.07, комиссии .56, пиковая экспозиция 12 поз.; (б) free-no-ML: 4839 сделок, win 24.1%, -615% синтетически, PF 0.35, комиссии 8. Вывод: весь edge создаётся ML-фильтром (98% отсева сделок); суммарно после издержек edge ~ноль (+0.9%/6 мес, in-sample ML) — оснований снимать freeze нет. Контроль: owner-профиль после патча логически не изменился (расхождение только B&H из-за пополнения свечей в реальном времени). Отчёты: docs/TRADING_BACKTEST_6M_FREE_{ML,NO_ML}_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T14:05Z — годичный замер (2025-08-15 -> 2026-08-15, 8761 бар 1h; покрытие: 33/33 активов >= 10024 баров, backfill не потребовался): owner-профиль 1 сделка (-0.30%, kill-switch), owner-no-ML идентично; free+ML: 370 сделок, win 37.8%, -19.59%, PF 0.68, комиссии ; free-no-ML: 11239 сделок, win 23.7%, -1483% синт., PF 0.33, комиссии 98. Вывод: 6-мес "edge" +0.88% не подтвердился на году (-19.59%) — был шумом; на горизонте года логика не зарабатывает ни в одной конфигурации, freeze/owner-профиль остаются единственной защитой. Отчёты: docs/TRADING_BACKTEST_1Y_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T13:14:35Z — чистка выполнена (владелец подтвердил пункты 1-4): 58G→33G used, свободно 40G (46%). Ollama удалён полностью; android system-images удалены; backups прунуты по retention (последние 2-3 копии); safe-clean выполнен. chrome_twin пропущен (активный Chrome-профиль автоматики, риск потери Google-сессии) — решение по нему остаётся за владельцем. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T14:05Z — годичный замер (2025-08-15 -> 2026-08-15, 8761 бар 1h; покрытие: 33/33 активов >= 10024 баров, backfill не потребовался): owner-профиль 1 сделка (-0.30%, kill-switch), owner-no-ML идентично; free+ML: 370 сделок, win 37.8%, -19.59%, PF 0.68, комиссии ; free-no-ML: 11239 сделок, win 23.7%, -1483% синт., PF 0.33, комиссии 98. Вывод: 6-мес "edge" +0.88% не подтвердился на году (-19.59%) — был шумом; на горизонте года логика не зарабатывает ни в одной конфигурации, freeze/owner-профиль остаются единственной защитой. Отчёты: docs/TRADING_BACKTEST_1Y_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T13:45Z — режим --free-profile в quant_monthly_backtest.py (качество сигналов без kill-switch, фикс /сделку). Итоги 6 мес: (а) free+ML: 95 сделок, win 47.4%, +0.88%, PF 1.07, комиссии .56, пиковая экспозиция 12 поз.; (б) free-no-ML: 4839 сделок, win 24.1%, -615% синтетически, PF 0.35, комиссии 8. Вывод: весь edge создаётся ML-фильтром (98% отсева сделок); суммарно после издержек edge ~ноль (+0.9%/6 мес, in-sample ML) — оснований снимать freeze нет. Контроль: owner-профиль после патча логически не изменился (расхождение только B&H из-за пополнения свечей в реальном времени). Отчёты: docs/TRADING_BACKTEST_6M_FREE_{ML,NO_ML}_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T14:05Z — годичный замер (2025-08-15 -> 2026-08-15, 8761 бар 1h; покрытие: 33/33 активов >= 10024 баров, backfill не потребовался): owner-профиль 1 сделка (-0.30%, kill-switch), owner-no-ML идентично; free+ML: 370 сделок, win 37.8%, -19.59%, PF 0.68, комиссии ; free-no-ML: 11239 сделок, win 23.7%, -1483% синт., PF 0.33, комиссии 98. Вывод: 6-мес "edge" +0.88% не подтвердился на году (-19.59%) — был шумом; на горизонте года логика не зарабатывает ни в одной конфигурации, freeze/owner-профиль остаются единственной защитой. Отчёты: docs/TRADING_BACKTEST_1Y_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T13:30Z — контрольный прогон --no-ml-gate (6 мес): ИДЕНТИЧНЫЙ результат (-0.30%, 1 сделка, APT stop_loss). Блокировки: global_drawdown_kill 8086, rl_veto 3624, OK 1. Ключевой вывод: узкое место — НЕ ML-гейт, а kill-switch equity drawdown 0.25%: первая же сделка по SL (-1.49% на позицию 200 USD = -0.30% equity) превышает лимит и навсегда блокирует входы; дальше система 6 месяцев не торгует by design. ML-гейт в owner-профиле не добавляет и не убирает ценности. Отчёт: docs/TRADING_BACKTEST_6M_NO_ML_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T14:05Z — годичный замер (2025-08-15 -> 2026-08-15, 8761 бар 1h; покрытие: 33/33 активов >= 10024 баров, backfill не потребовался): owner-профиль 1 сделка (-0.30%, kill-switch), owner-no-ML идентично; free+ML: 370 сделок, win 37.8%, -19.59%, PF 0.68, комиссии ; free-no-ML: 11239 сделок, win 23.7%, -1483% синт., PF 0.33, комиссии 98. Вывод: 6-мес "edge" +0.88% не подтвердился на году (-19.59%) — был шумом; на горизонте года логика не зарабатывает ни в одной конфигурации, freeze/owner-профиль остаются единственной защитой. Отчёты: docs/TRADING_BACKTEST_1Y_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T13:45Z — режим --free-profile в quant_monthly_backtest.py (качество сигналов без kill-switch, фикс /сделку). Итоги 6 мес: (а) free+ML: 95 сделок, win 47.4%, +0.88%, PF 1.07, комиссии .56, пиковая экспозиция 12 поз.; (б) free-no-ML: 4839 сделок, win 24.1%, -615% синтетически, PF 0.35, комиссии 8. Вывод: весь edge создаётся ML-фильтром (98% отсева сделок); суммарно после издержек edge ~ноль (+0.9%/6 мес, in-sample ML) — оснований снимать freeze нет. Контроль: owner-профиль после патча логически не изменился (расхождение только B&H из-за пополнения свечей в реальном времени). Отчёты: docs/TRADING_BACKTEST_6M_FREE_{ML,NO_ML}_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T14:05Z — годичный замер (2025-08-15 -> 2026-08-15, 8761 бар 1h; покрытие: 33/33 активов >= 10024 баров, backfill не потребовался): owner-профиль 1 сделка (-0.30%, kill-switch), owner-no-ML идентично; free+ML: 370 сделок, win 37.8%, -19.59%, PF 0.68, комиссии ; free-no-ML: 11239 сделок, win 23.7%, -1483% синт., PF 0.33, комиссии 98. Вывод: 6-мес "edge" +0.88% не подтвердился на году (-19.59%) — был шумом; на горизонте года логика не зарабатывает ни в одной конфигурации, freeze/owner-профиль остаются единственной защитой. Отчёты: docs/TRADING_BACKTEST_1Y_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T13:25Z — 6-мес бэктест Directional v2 (scripts/quant_monthly_backtest.py --months 6): 33 актива, 4345 бара 1h (2026-02-15→2026-08-15). Итог: капитал 997.01 USD (-0.30%), сделок 1 (OP, SL -1.49%); блокировки: ml_not_confirmed 11633, dd_kill 95, rl_veto 16. B&H среднее -20.22% (медиана -28.12%), алгоритм +19.92 п.п. к средней за счёт не-входа; прибыли нет. Отчёт: docs/TRADING_BACKTEST_6M_2026-08-15_RU.md (коммит 8d158685). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T14:05Z — годичный замер (2025-08-15 -> 2026-08-15, 8761 бар 1h; покрытие: 33/33 активов >= 10024 баров, backfill не потребовался): owner-профиль 1 сделка (-0.30%, kill-switch), owner-no-ML идентично; free+ML: 370 сделок, win 37.8%, -19.59%, PF 0.68, комиссии ; free-no-ML: 11239 сделок, win 23.7%, -1483% синт., PF 0.33, комиссии 98. Вывод: 6-мес "edge" +0.88% не подтвердился на году (-19.59%) — был шумом; на горизонте года логика не зарабатывает ни в одной конфигурации, freeze/owner-профиль остаются единственной защитой. Отчёты: docs/TRADING_BACKTEST_1Y_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T13:45Z — режим --free-profile в quant_monthly_backtest.py (качество сигналов без kill-switch, фикс /сделку). Итоги 6 мес: (а) free+ML: 95 сделок, win 47.4%, +0.88%, PF 1.07, комиссии .56, пиковая экспозиция 12 поз.; (б) free-no-ML: 4839 сделок, win 24.1%, -615% синтетически, PF 0.35, комиссии 8. Вывод: весь edge создаётся ML-фильтром (98% отсева сделок); суммарно после издержек edge ~ноль (+0.9%/6 мес, in-sample ML) — оснований снимать freeze нет. Контроль: owner-профиль после патча логически не изменился (расхождение только B&H из-за пополнения свечей в реальном времени). Отчёты: docs/TRADING_BACKTEST_6M_FREE_{ML,NO_ML}_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T14:05Z — годичный замер (2025-08-15 -> 2026-08-15, 8761 бар 1h; покрытие: 33/33 активов >= 10024 баров, backfill не потребовался): owner-профиль 1 сделка (-0.30%, kill-switch), owner-no-ML идентично; free+ML: 370 сделок, win 37.8%, -19.59%, PF 0.68, комиссии ; free-no-ML: 11239 сделок, win 23.7%, -1483% синт., PF 0.33, комиссии 98. Вывод: 6-мес "edge" +0.88% не подтвердился на году (-19.59%) — был шумом; на горизонте года логика не зарабатывает ни в одной конфигурации, freeze/owner-профиль остаются единственной защитой. Отчёты: docs/TRADING_BACKTEST_1Y_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T13:30Z — контрольный прогон --no-ml-gate (6 мес): ИДЕНТИЧНЫЙ результат (-0.30%, 1 сделка, APT stop_loss). Блокировки: global_drawdown_kill 8086, rl_veto 3624, OK 1. Ключевой вывод: узкое место — НЕ ML-гейт, а kill-switch equity drawdown 0.25%: первая же сделка по SL (-1.49% на позицию 200 USD = -0.30% equity) превышает лимит и навсегда блокирует входы; дальше система 6 месяцев не торгует by design. ML-гейт в owner-профиле не добавляет и не убирает ценности. Отчёт: docs/TRADING_BACKTEST_6M_NO_ML_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T14:05Z — годичный замер (2025-08-15 -> 2026-08-15, 8761 бар 1h; покрытие: 33/33 активов >= 10024 баров, backfill не потребовался): owner-профиль 1 сделка (-0.30%, kill-switch), owner-no-ML идентично; free+ML: 370 сделок, win 37.8%, -19.59%, PF 0.68, комиссии ; free-no-ML: 11239 сделок, win 23.7%, -1483% синт., PF 0.33, комиссии 98. Вывод: 6-мес "edge" +0.88% не подтвердился на году (-19.59%) — был шумом; на горизонте года логика не зарабатывает ни в одной конфигурации, freeze/owner-профиль остаются единственной защитой. Отчёты: docs/TRADING_BACKTEST_1Y_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T13:45Z — режим --free-profile в quant_monthly_backtest.py (качество сигналов без kill-switch, фикс /сделку). Итоги 6 мес: (а) free+ML: 95 сделок, win 47.4%, +0.88%, PF 1.07, комиссии .56, пиковая экспозиция 12 поз.; (б) free-no-ML: 4839 сделок, win 24.1%, -615% синтетически, PF 0.35, комиссии 8. Вывод: весь edge создаётся ML-фильтром (98% отсева сделок); суммарно после издержек edge ~ноль (+0.9%/6 мес, in-sample ML) — оснований снимать freeze нет. Контроль: owner-профиль после патча логически не изменился (расхождение только B&H из-за пополнения свечей в реальном времени). Отчёты: docs/TRADING_BACKTEST_6M_FREE_{ML,NO_ML}_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T14:05Z — годичный замер (2025-08-15 -> 2026-08-15, 8761 бар 1h; покрытие: 33/33 активов >= 10024 баров, backfill не потребовался): owner-профиль 1 сделка (-0.30%, kill-switch), owner-no-ML идентично; free+ML: 370 сделок, win 37.8%, -19.59%, PF 0.68, комиссии ; free-no-ML: 11239 сделок, win 23.7%, -1483% синт., PF 0.33, комиссии 98. Вывод: 6-мес "edge" +0.88% не подтвердился на году (-19.59%) — был шумом; на горизонте года логика не зарабатывает ни в одной конфигурации, freeze/owner-профиль остаются единственной защитой. Отчёты: docs/TRADING_BACKTEST_1Y_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:20Z — история по биржам расширена до ~12 мес. Инструмент: новый scripts/quant_backfill_exchanges.py (ccxt MarketDataCollector + прямые REST-фетчеры для kraken/bitfinex, timestamp-merge через collector._save_csv). Итоговое покрытие (33 актива): binance 33x>=10005; kucoin/mexc 32x8761+; bybit 32x8761; okx 30x8761 (SEI — persistent API fail); bitstamp 23x8761 (5 активов не листингованы); coinbase 24 серии 7000-8751 (лимит глубины/даты листинга Coinbase), 7 <8760; bitfinex 12 серий >=5343 (BTC 9252), ~6 мажоров остались 500-6889 из-за rate-limit penalty IP; kraken жёсткий кап API 720 свечей — глубже невозможно публичным REST (задокументировано). Целостность: kucoin/okx/bitstamp без разрывов; bitfinex/coinbase — единичные пропуски пустых часов. Добивка bitfinex после распада пенальти: python scripts/quant_backfill_exchanges.py --exchanges bitfinex --sleep 60 --retries 3 (автопропуск полных серий). +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T15:50Z — годовой бэктест пересчитан на РЕАЛЬНЫХ ценах allowlist-бирж (--price-source allowlist: kucoin ×32, bitstamp ×1). Прокси-допущение снято. 12 мес.: owner-профиль 1 сделка (-0.30%) — идентично binance-прокси; free+ML: 356 сделок, win 39.9%, -15.68%, PF 0.72 (прокси: -19.59%, PF 0.68); free-no-ML: 10682 сделки, -1339%, PF 0.36. Выводы устойчивы к выбору площадки: логика не зарабатывает ни на одной конфигурации/бирже; freeze подтверждён на реальных ценах. Отчёты: docs/TRADING_BACKTEST_1Y_ALLOWLIST_*_2026-08-15_RU.md. +## Ход работы и решения +- 2026-08-15T16:10Z — батарея экспериментов винрейта (scripts/quant_winrate_experiments.py, 11 вариантов, 1y allowlist; харнесс валидирован: BASE воспроизводит официальный прогон 356 сделок, PF 0.71 vs 0.72). Итоги: M1 ML>=0.70 (n=112, wr 44.6%, PF 0.99, -1.30\$) — единственный почти-breakeven; X1 TP+1/-1 (wr 60.7%, но PF 0.51 — винрейт↑ прибыль↓: fee bleed); B1 блэклист (wr 43.8%, PF 0.84, -66\$); T1 тренд-гейт (PF 1.25, но n=9 — шум); C1/C2 вырождены (n=1). Вывод: винрейт поднимается несколькими рычагами, НО expectancy после издержек не становится положительной ни в одном статистически значимом варианте; прод-изменений не требуется, следующий шаг при желании — честный OOS walk-forward M1/B1 через 30d/200-close gate. Отчёт: docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md. +## Ход работы и решения + +- 12:35Z — сессия создана, обязательный старт по coordination/README.md выполнен. +- 2026-08-15T12:50:40Z — найден единственный источник алертов: aios-gitcoin-algora-solver.service (run_gitcoin_algora_solver.py --daemon --interval 7200). Импортеров в tg_bot и autonomous_earnings нет; bounty-таймеров нет; sre_healer/selfguard юнит не возвращают. Остановлен и disabled; бэкап юнита в backups/systemd_20260815/ (копия есть в deploy/systemd/). Инцидент в ходе работы: сломанное экранирование одной из моих команд ненадолго вернуло юнит (enable --now через command substitution); обнаружено проверкой состояния и сразу исправлено повторным stop+disable. Финальная верификация: is-active=inactive, is-enabled=disabled, процессов 0. + +## Изменённые файлы +- scripts/quant_backfill_exchanges.py — НОВЫЙ: backfill 1h-истории по биржам до N баров (ccxt + прямые kraken/bitfinex фетчеры, merge по timestamp). +- data/quant///*.csv — runtime-данные (git-ignored): ~215 серий добраны до ~12 мес. +- tg_bot/voice.py — временные аудио whisper/TTS не хранятся локально (коммит 0c209fa2). + +- `coordination/sessions/20260815T123500Z-aios-arena-operator-assist.md` — журнал сессии. +- `coordination/PROJECT_CONTEXT.md` — запись о решении владельца (Runtime operator decisions). +- runtime: aios-gitcoin-algora-solver.service stop+disable (unit-файл не tracked в git; бэкап в backups/). + +## Проверки +- [PASS] py_compile + ruff scripts/quant_backfill_exchanges.py. +- [PASS] dry-run: пары резолвятся; no_pair = актив не листингован. +- [PASS] матрица покрытия: 8/9 бирж медиана >=7344 баров; spot-check gaps: kucoin/okx/bitstamp 0 разрывов. +- [PASS] python scripts/quant_monthly_backtest.py --months 6 — 33 symbols loaded, отчёт сгенерирован. +- [PASS] артефакт сохранён и закоммичен в docs/ (data/ игнорируется git). +- [PASS] df: used 58G→33G, avail 14G→40G. +- [PASS] ollama: is-active=not-found после удаления unit; /usr/share/ollama, /usr/local/lib/ollama, бинарник удалены. +- [PASS] backups retention: sessions=2, daily=3 набора, messenger_profiles=2, manual=3. +- [PASS] health-check скрипты не мониторят ollama — ложных алертов не будет. +- [PASS] python /tmp/patched behavior test: temp удаляется, Calls защищён, error-path удаляет, TTS удаляет. +- [PASS] py_compile tg_bot/voice.py; ruff 5 ошибок = baseline 5 (новых нет). +- [PASS] pytest -k voice: 11 passed. +- [PASS] systemctl is-active aios-telegram-bot после рестарта: active. + +- `[PASS]` `git fetch --all --prune` — успех. +- `[PASS]` чтение обязательных документов координации — успех. +- `[PASS]` `systemctl is-active` + `systemctl is-enabled` aios-gitcoin-algora-solver.service — inactive / disabled. +- `[PASS]` `pgrep -fa gitcoin_algora` — процессов нет. +- `[NOT RUN]` pytest — код не менялся, только systemd runtime. + +## Git + +- Коммиты: 4bcee48c (docs coordination, bounty), 0c209fa2 (fix tg_bot/voice.py). +- Опубликованная ветка/PR: нет. +- Незакоммиченные изменения: этот журнал (untracked). +- Чужие изменения, которые не были затронуты: `backups/systemd_20260815/`. + +## Handoff +Чистка завершена (81%→46%). Открытый вопрос: chrome_twin (1.9G) — только после остановки автоматики Chrome и с согласия на потерю Google-сессии. Рекомендация: усилить retention aios-rotate-backups (отдельная задача). +## Handoff + +Bounty-алерты полностью отключены (inactive+disabled, процессов 0). Для возврата: systemctl enable --now aios-gitcoin-algora-solver.service (юнит в deploy/systemd/). Следующий шаг: ожидание новой задачи оператора. diff --git a/coordination/sessions/20260815T154510Z-aios-arena-session-start.md b/coordination/sessions/20260815T154510Z-aios-arena-session-start.md new file mode 100644 index 000000000..fa21b6701 --- /dev/null +++ b/coordination/sessions/20260815T154510Z-aios-arena-session-start.md @@ -0,0 +1,813 @@ +--- +session_id: "20260815T154510Z-aios-arena-session-start" +status: "ACTIVE" +agent: "Arena.ai agent (workspace)" +machine: "aios (167.233.95.7)" +started_utc: "2026-08-15T15:45:10Z" +updated_utc: "2026-08-15T15:45:10Z" +branch: "agent/20260814-quant-backfill-ppo" +base_commit: "573eb4e98dac079025189446aa116827928fdec2" +claim: "none" +--- + +## Цель + +Начало работы внешнего агента Arena.ai над проектом AIOS: ознакомление с инструкциями (AGENTS.md), координационными документами и состоянием репозитория. Конкретная задача будет определена оператором. + +## Scope + +- Разрешённые компоненты/файлы: определяется задачей оператора (пока нет). +- Явно вне scope: protected-файлы из AGENTS.md (run_coder_orchestrator*, run_telegram_bot.py, scripts/selfguard.py, aios_core/autocoder_v3*, aios_core/llm_balancer.py, aios_core/self_protection.py, aios_core/code_rag.py, aios_core/autocoder_memory.py, aios_core/orchestrator.py, aios_core/__init__.py, aios_core/advanced_security.py, aios_core/inter_swarm.py, octopus_core/api_v2_batch.py, .env*). +- Ожидаемые пересечения с другими сессиями: активные claims отсутствуют на момент старта (проверено). + +## Исходное состояние + +- git status --short: единственный untracked — backups/systemd_20260815/ (чужой артефакт решения владельца, не трогать). +- Ветка: agent/20260814-quant-backfill-ppo (последний коммит 573eb4e9). +- Прочитанные документы: AGENTS.md, coordination/PROJECT_CONTEXT.md, coordination/README.md, coordination/SESSION_TEMPLATE.md, coordination/claims/ (README + 3 активных claim: paper-fix, quant-6m-backtest, quant-history-backfill, whisper-audio-cleanup). +- Чужие незакоммиченные изменения: backups/systemd_20260815/ (не трогать). +- git fetch --all --prune: OK, origin синхронизирован. + +## План + +1. Ожидание задачи от оператора. +2. При получении задачи: создать claim, выполнить работу с минимальными правками, проверки (py_compile/pytest/ruff), коммит в ветку agent//, обновить журнал. + +## Ход работы и решений + +- 2026-08-15T15:45Z: подключение к серверу по SSH (ключ из чата, pubkey совпал), изучение AGENTS.md, PROJECT_CONTEXT.md, README координации, claims, git-состояния. Создан журнал сессии. Активные параллельные сессии на quant-тематику (walk-forward, backfill, winrate) — quant-модуль считается занятым другим агентом до проверки claims перед задачей. + +## Изменённые файлы + +- coordination/sessions/20260815T154510Z-aios-arena-session-start.md — журнал сессии (этот файл). + +## Проверки + +- [PASS] ssh root@167.233.95.7 — вход выполнен. +- [PASS] ssh-keygen -y -f — публичный ключ совпал с предоставленным. +- [PASS] git fetch --all --prune — успешно. +- [PASS] git status --short — чисто, кроме чужого backups/systemd_20260815/. + +## Git + +- Коммиты: нет (изменений кода не было). +- Опубликованная ветка/PR: нет. +- Незакоммиченные изменения: журнал сессии (координационные файлы — часть работы; решение о коммите после первой реальной задачи). +- Чужие изменения, которые не были затронуты: backups/systemd_20260815/ — не тронут. + +## Handoff + +- Последняя завершённая точка: onboarding завершён, контекст загружен. +- Следующий конкретный шаг: получить задачу от оператора; перед кодом — проверить claims и создать собственный claim. +- Блокеры: нет. +- Риски: quant-модуль — активные claims других сессий; не пересекаться без согласования. +- Что нельзя делать без повторной проверки: git reset --hard / clean -fd / массовый add/commit; правки protected-файлов; переключение ветки в грязном worktree. + +--- + +## Задача от оператора: quant-oos-profit (2026-08-15T15:50Z) + +**Цель:** продолжить улучшение трейдинга — winrate и реальную прибыль. Предыдущая сетка +(quant_winrate_experiments, in-sample 1y) дала все варианты <= 0: BASE -165$, лучший T1 (тренд SMA200) ++2.96$ на 9 сделках (незначимо). Отчёт требует OOS-подтверждения. + +**Решение:** честный walk-forward OOS на полных 12-мес. данных (8760 баров, allowlist): +- 2 фолда: train 70%/test 30% и train 85%/test 15%, свежая CatBoost v2 (те же гиперпараметры) на train; +- 16 предзаданных a-priori вариантов (тренд-гейты SMA50-200, ML>=0.70/0.75, блэклист, trail off, + cooldown 24h, ATR-фильтр, TP/SL 2.5/1.0, комбо); +- выбор победителя ТОЛЬКО по OOS; затем портфельная симуляция (max 1 позиция, kill-свитчи). + +Claim: coordination/claims/quant-oos-profit--20260815T154510Z-aios-arena-session-start.md +Скрипт: scripts/quant_oos_profit_experiments.py + +--- + +## Ход работы quant-oos-profit (обновление 2026-08-15T16:35Z) + +1. Изучены claims/журналы: активных пересечений нет (paper-fix DONE). Создан claim + `quant-oos-profit--...` и скрипт `scripts/quant_oos_profit_experiments.py`. +2. Прогон 1 (v1): фикс-порог 0.65 недостижим свежеобученной моделью → почти 0 сделок; + окна искажены короткими сериями (TON 525 баров). +3. v2: исключение серий <1500 баров; калибровка порога на train-перцентиле (q90-q97). + Результат: BASE −1.91$, N1 (trail=1.0) +5.36$ на 7 сделках (WR 71%), единственный + положительный. NO_ML −9129$ (8157 сделок) — ML-гейт ценен. +4. v3 (раунд 3): окно 0.60 добавлено; разложение по reason; N1m (0.995) +3.97$, + N1X (TP2.5/SL1.0) +8.28$; монотонный эффект trail 0.988<0.995<1.0 подтверждён. + Перцентильные пороги q98/q99 — отрицательны (слабые сигналы). +5. v4 (финал): дедуп по (symbol, opened_at) — окна перекрываются (0.50⊂0.60⊂0.70⊂0.85). + Уникальные сделки: BASE +7.15$ (WR 50%, PF 2.50), N1 +14.42$ (WR 87.5%, PF 5.83), + N1X +15.67$ (PF 6.24). Портфельная симуляция N1: +6.74$ (kill-свитчи 0.25% от $1000 + срабатывают — очень жёстко для такого капитала). +6. Обнаружено: data/quant/*.csv дописываются live-коллектором (KAS докачан 16:19Z между + прогонами) — результаты привязаны к срезу 16:25Z; для воспроизводимости нужен снапшот. +7. catboost_info/*.tsv (tracked) модифицированы прогонами CatBoost — НЕ коммитятся. + +## Итог для владельца + +- Один параметр (trail_ratio 0.988→1.0) на том же наборе сигналов: WR 50→87.5%, + PnL +7.15→+14.42$ на OOS (4 окна, 8 уникальных сделок). Рекомендация: paper-режим + trail=1.0 (или 0.995) на 30д/200 сделок; live по-прежнему запрещён. +- Полный отчёт: docs/TRADING_OOS_PROFIT_EXPERIMENTS_2026-08-15_RU.md; + сырые цифры: data/reports/oos_profit_experiments.md. +- Изменение прод-профиля — только решение владельца (правила AGENTS.md). + +## Изменённые файлы + +- scripts/quant_oos_profit_experiments.py — новый OOS harness (4 фолда, калибровка на train). +- docs/TRADING_OOS_PROFIT_EXPERIMENTS_2026-08-15_RU.md — отчёт владельцу. +- data/reports/oos_profit_experiments.md — артефакт прогона. +- coordination/sessions/20260815T154510Z-aios-arena-session-start.md — журнал (этот файл). +- coordination/claims/quant-oos-profit--20260815T154510Z-aios-arena-session-start.md — удалён после DONE. + +## Проверки + +- [PASS] py_compile скрипта на сервере и локально. +- [PASS] Сравнение BASE-варианта с прошлой сеткой (консистентность сигналов). +- [NOT RUN] pytest (изменений прод-кода нет, только новый standalone-скрипт). +- [NOT RUN] ruff (скрипт новый; стиль повторяет существующие quant-скрипты). + +## Handoff + +- Последняя завершённая точка: OOS-эксперименты завершены, отчёт и коммит готовы. +- Следующий шаг (владелец): решение о paper-прогоне с trail_ratio=1.0/0.995; + при одобрении — правка owner-профиля и 30д paper-наблюдение. +- Блокеры: нет. Риски: выборка 8 сделок мала; live запрещён до gates. +- Что нельзя делать без повторной проверки: менять прод-профиль/quant-движок без решения + владельца; git reset --hard/clean; push в remote без полномочий. + +--- + +## Пункты 1-3 (обновление 2026-08-15T17:05Z) + +### Пункт 2 — устойчивость N1 (DONE) +scripts/quant_oos_robustness.py (fold-0.70, ML>=0.65): +- Jackknife по 32 символам: N1 min +0.67$ / med +3.65$ / max +6.64$ (положителен при + удалении ЛЮБОГО символа); BASE min -4.18$ / med -1.20$. +- Binance-цены (тот же период): N1 +3.57$ vs BASE -1.27$ — эффект воспроизводится на + другом источнике цен (33 binance-серии). +- Вывод: N1-результат не зависит от одного символа или вендорских цен. +Отчёт: data/reports/oos_robustness.md. + +### Пункт 1 — paper-профиль trail_ratio=1.0 (APPLIED) +- aios_core/quant_directional_policy.py: DirectionalV2Config + take_profit_pct (0.02), + stop_loss_pct (-0.01), trail_ratio (0.988) из env AIOS_QUANT_* (дефолты = legacy). +- aios_core/quant_directional_v2.py: exit-логика использует config вместо литералов. +- tests/test_quant_directional_v2.py: +4 целевых теста (trail из env параметризованный, + TP/SL из env, дефолты preserve legacy). 22/22 passed в quant-наборе. +- deploy/systemd/aios-quant-trading.service: +Environment=AIOS_QUANT_TRAIL_RATIO=1.0. +- Применено к runtime с одобрения владельца: unit скопирован в /etc/systemd/system + (бэкап: backups/systemd_20260815/aios-quant-trading.service.pre-trail110), + daemon-reload + restart. Сервис active, env виден, первый цикл без ошибок + (trades=0, blocks={'same_candle': 1}). Paper-режим подтверждён ("real orders disabled"). +- Полный pytest: 2 FAILED, оба НЕ связаны с этой задачей: + 1) test_project_inventory — обновлён инвентарём (generate_project_inventory.py --write); + 2) test_v22_api::test_monetization_routes_registered — 6 маршрутов вместо 5, маршрут + /api/v2/mon/quant-signals добавлен чужим коммитом (v22.0-D) без обновления теста — + pre-existing, не трогал. + +### Пункт 3 — push +Ветки запушены в origin (одобрение владельца): +- agent/20260815-quant-oos-profit (research: OOS-эксперименты + robustness) +- agent/20260815-quant-trail-config (код: exit params + тесты + unit) + +--- + +## Пакет улучшений (2026-08-15T17:15Z) — по решению владельца ("+") + +### 1. Частичный тейк + бутстрэп (research, DONE) +scripts/quant_oos_partial_tp_bootstrap.py (fold 0.70, allowlist, ML>=0.65): +- PT2 (50%@+1.5%, остаток trail 1.0): +5.80$ / PF 12.59 / WR 75% — лучший (N1 +3.65$). +- PT1 (+3.81$), PT3 (+2.80$). +- Бутстрэп 2000 ресемплов по символам: N1 90% CI [-4.26, +11.55], pos_share 74.8%; + Δ(N1-BASE) CI [+0.00, +12.10], pos_share 88.3% — разница устойчиво положительна. +- ВАЖНО: n=4 сделки на окне — выбор среди PT1/PT2/PT3 несёт selection bias; + PT2 в прод НЕ применялся, требуется подтверждение на большем окне. +Отчёт: data/reports/oos_partial_tp_bootstrap.md. + +### 2. Allowlist + binance (runtime, APPLIED) +- deploy/systemd/aios-quant-trading.service: ALLOWED_EXCHANGES += binance + (kucoin,bitstamp,mexc,binance). Binance уже в EXCHANGES движка; robustness-проверка + подтвердила тот же эффект N1 на binance-ценах (+3.57$ vs -1.27$). +- Применено: unit скопирован, daemon-reload, restart. exchange_not_allowed упал 96→72 + (6 неразрешённых бирж × 12 символов; binance теперь в allowlist). + +### 3. Контрольный портфель (A/B, APPLIED) +- Новый deploy/systemd/aios-quant-trading-control.service: тот же allowlist, + AIOS_QUANT_TRAIL_RATIO=0.988 (legacy), отдельный портфель + multi_exchange_portfolios_owner_paper_control.json. +- Установлен и запущен (enable --now). Первый цикл: trades=0, blocks={'exchange_not_allowed': 72, + 'ml_not_confirmed': 12} — работает. Сравнение main (trail 1.0) vs control (trail 0.988) + через 2-4 недели — честный A/B на живых данных. + +### Проверки +- [PASS] Оба сервиса active, env корректен (ALLOWED/TRAIL/PORTFOLIO). +- [PASS] py_compile нового скрипта. +- [NOT RUN] полный pytest (изменения только unit-файлы + новый research-скрипт, + прод-код не менялся в этом пакете). + +### Изменённые файлы (этот коммит) +- scripts/quant_oos_partial_tp_bootstrap.py +- deploy/systemd/aios-quant-trading.service (allowlist += binance) +- deploy/systemd/aios-quant-trading-control.service (новый) +- coordination/sessions/20260815T154510Z-aios-arena-session-start.md + +--- + +## Диагностика "почему 0 сделок" + ML/SHORT эксперименты (2026-08-15T17:50Z) + +### Корневая проблема +Развёрнутая модель даёт prob_up>=0.65 в 0.26% баров (728/281k; 30д: 0.2%) — live-гейт +ML>=0.65 практически недостижим → trades=0 с момента запуска. Плюс exchange_not_allowed=72/цикл. + +### Сделано +1. Allowlist расширен на ВСЕ биржи движка (kraken,binance,bybit,okx,uniswap_v3,coinbase, + kucoin,bitfinex,bitstamp,mexc) в обоих unit (main + control). Применено, сервисы active. +2. quant_ml_cross_sectional.py: cross-sectional фичи (btc_ret6/24, btc_regime, rel_ret*, + mom_rank24/6, vol_rank). Результат: AUC 0.530 vs cand_base 0.529 — НЕТ улучшения. + Топ-фичи: btc_regime(31), btc_ret24(27) — модель учит рынок, но edge не появляется. + Потолок технического ML на h1 ≈ AUC 0.53 подтверждён. +3. quant_oos_short_experiment.py: зеркальный SHORT (SELL_SHORT + ml<=0.40/0.35, те же + TP/SL/trail). Результат: ml<=0.40: 305 сделок, WR 44.6%, PF 0.88, -48.07$; + ml<=0.35: 115 сделок, PF 0.56, -82.87$. SHORT edge НЕТ. +4. LONG+SHORT комбо: PF 0.89, -45$ — тоже нет. + +### Вывод +Техническая направленная торговля 1h (LONG или SHORT) не имеет положительного +матожидания после издержек — подтверждено с трёх сторон (OOS LONG, OOS SHORT, +ML cross-sectional). Проблема в источнике сигнала, не в настройках. +Дальнейшие варианты: (а) сигнальный продукт/мониторинг для человека, (б) инвентарный +MM на orderbook-данных (копятся), (в) живой A/B main vs control для калибровки на +реальной статистике (теперь с полным allowlist сделки возможны), (г) смена таймфрейма/ +универсума. Решение за владельцем. + +### Проверки +- [PASS] оба сервиса active, allowlist = 10 бирж. +- [PASS] py_compile новых скриптов. +- [NOT RUN] полный pytest (прод-код не менялся; только research-скрипты + units). + +### Файлы этого коммита +- scripts/quant_ml_cross_sectional.py +- scripts/quant_oos_short_experiment.py +- deploy/systemd/aios-quant-trading.service (allowlist=все биржи) +- deploy/systemd/aios-quant-trading-control.service (allowlist=все биржи) +- coordination/sessions/20260815T154510Z-aios-arena-session-start.md + +--- + +## Тестовый замер 3 месяца (2026-08-15T18:30Z) + +- Скрипт scripts/quant_prod_3m_backtest.py: воспроизведение движка 1:1, конфиг из unit. +- Результат (2026-05-15..08-15): 10 сделок, WR 40%, PF 0.66, PnL -6.02$ (equity 9993.98/10000). + BTC bh -2.29%. trailing_stop: 0 срабатываний -> trail 1.0 vs 0.988 идентичны. + ml_not_confirmed=1865 (главный блокер), global_position_limit=435. + Сделок в мае-июне 0 (ML<0.65), все 10 - июль-август. Все на kraken (приоритет unit). +- Четвёртое подтверждение отсутствия edge LONG-only 1h (OOS LONG/SHORT/ML-CS/этот замер). +- Попутно: обнаружен и устранён дрейф код/unit (ветка oos-profit без exit-параметров, + сервис работал с литералом 0.988). Merge trail-config -> oos-profit (d2085e2f), + сервисы перезапущены на консистентном коде (config.trail_ratio=1.0). +- Файлы: scripts/quant_prod_3m_backtest.py, docs/TRADING_3M_BACKTEST_2026-08-15_RU.md, + data/reports/prod_3m_backtest.{md,json} (gitignored), журнал. + +--- + +## Эксперимент C: таймфрейм × универсум (2026-08-15T19:10Z) + +- scripts/quant_tf_universe_experiment.py: 1h/4h (ресемплинг закрытых баров) × все 33 / + топ-12 по USD-объёму × RL вкл/выкл; свежая CatBoost per tf, OOS ~6 мес (2026-02-18..08-15). +- Результаты: 4h хуже 1h (PF 0.15-0.20), топ-12 пусто/хуже, RL-вето не влияет, TP3/SL1.5 + на 4h убыточно (PF 0.60). BTC bh за окно −11.83%. Ни один вариант не дал edge. +- ВАЖНО: обнаружен и исправлен баг первого 3-мес замера — kraken имеет историю ~724 баров + (API-кап), load_series брал его первым (приоритет unit) → старый замер покрывал ~1 мес. + Фикс: min_bars>=4000 → все серии binance (полные 12 мес). Переснятый 3-мес замер: + MAIN (trail 1.0) 23 сделки, WR 43.5%, PF 0.64, −13.71$; CTL (trail 0.988) −19.04$; + BTC bh −20.63%. Trail 1.0 > 0.988 на этом окне (согласуется с N1), но оба убыточны. + ml_not_confirmed=5400 — главный блокер подтверждён. +- Итого 5 независимых подтверждений отсутствия edge: OOS LONG, OOS SHORT, ML-CS, + prod-3m (исправленный), tf×universe. +- Файлы: scripts/quant_tf_universe_experiment.py, scripts/quant_prod_3m_backtest.py (фикс), + docs/TRADING_TF_UNIVERSE_EXPERIMENT_2026-08-15_RU.md, docs/TRADING_3M_BACKTEST_2026-08-15_RU.md + (оговорка), data/reports/tf_universe_experiment.md + prod_3m_backtest.md (gitignored). + +--- + +## ML гипотеза F, этап 1: MTF-фичи (2026-08-15T20:10Z) + +- scripts/quant_ml_mtf_experiment.py: base13 + 4h/1d фичи (по закрытым группам) + сезонность. +- Первая версия дала AUC 0.76 — lookahead-утечка (close/high/low текущей группы). + Исправлено на closed-only (shift 1). Честные цифры: MTF AUC 0.5204 vs base 0.5285, + PnL −27.38$ vs −5.86$ (deployed 0.5461, −5.86$). MTF НЕ улучшает. +- Топ-фичи MTF: hour_cos/sin/dow (сезонность) — не даёт edge. +- Локальные OHLCV-данные исчерпаны: 6 экспериментов PF<1. Для F-2 нужны внешние данные + (funding/OI с Binance Futures — публичный API, бесплатно; новости/on-chain — ключи). +- Файлы: scripts/quant_ml_mtf_experiment.py, docs/TRADING_ML_MTF_EXPERIMENT_2026-08-15_RU.md, + data/reports/ml_mtf_experiment.md (gitignored). + +--- + +## F-2: funding-эксперимент (2026-08-15T21:10Z) — ОТРИЦАТЕЛЬНЫЙ + +- Собран funding rate с Binance Futures (30 активов, 166 дней, публичный API). +- Скрипты: scripts/fetch_funding_oi.py, scripts/quant_ml_funding_experiment.py. +- Результат: AUC funding 0.5239 vs base 0.5296; funding-фичи без веса; PnL 1 сделка −2.99$. +- Вывод: funding не несёт edge для 1h. OI история ~30 дней (мало), копим. +- 7-й отрицательный результат. Отчёт: docs/TRADING_ML_FUNDING_EXPERIMENT_2026-08-15_RU.md. + +--- + +## F-4: multi-horizon target (2026-08-15T21:45Z) — ОТРИЦАТЕЛЬНЫЙ + +- scripts/quant_ml_horizon_experiment.py: target h1/h4/h24, base 13 фич, честный OOS. +- AUC: h1 0.5296 > h4 0.5226 > h24 0.5141; up_rate падает (mean-reverting рынок); + PnL h4 −26.67$, h24 −26.57$ vs deployed −5.86$. Гипотеза не подтверждена. +- 8-й отрицательный результат подряд (LONG OOS, SHORT OOS, ML-CS, prod-3m, + tf×universe, MTF, funding, horizon). +- Отчёт: docs/TRADING_ML_HORIZON_EXPERIMENT_2026-08-15_RU.md. + +--- + +## Вариант 2: долгосрочный портфель DCA (2026-08-15T18:45Z) + +- quant_dca_analysis.py: бэктест 12 мес (binance, комиссия 0.1%): DCA топ-10 + квартальный + ребаланс −18.9% — лучший; DCA > lump-sum на ~12-15 п.п.; все в минусе (год медвежий). +- run_dca_paper.py + aios-dca-paper.{service,timer}: ежедневный mark-to-market paper-трекера, + еженедельный депозит $100, топ-10 равные веса, квартальный ребаланс. Деплой: timer active + (ежедневно 17:30 UTC). Первый депозит выполнен. +- Документы: docs/DCA_PORTFOLIO_PLAN_2026-08-15_RU.md, data/reports/dca_analysis.md (gitignored). +- Конфиг трекера: data/dca_portfolio.json (runtime, gitignored). + +--- + +## MM-пилот (2026-08-15T19:20Z) — этап 1 завершён + +- Прототип mm_proto_backtest.py: двусторонний квотинг + инвентарный контроль + FIFO spread. +- Данные: 183k снапшотов / 28ч / 6 бирж / BTC-ETH-SOL (~7k снапшотов/час). +- Результат: инвентарь контролируется (±0.018 BTC), но adverse selection доминирует — + naive passive MM убыточен на всех биржах (−37..−77$ за 1.6ч, spread PnL отрицательный). +- Нужны: недели данных, сигнал направления (микроструктура), maker-rebate биржа. +- Отчёт: docs/MM_PILOT_2026-08-15_RU.md. Этап 2 (сигнал направления) — по решению владельца. + +--- + +## MM этап 2: сигнал направления (2026-08-15T20:40Z) — ПОЛОЖИТЕЛЬНЫЙ + +- scripts/mm_microstructure_signal.py: OBI/microprice фичи, честный таргет (flat исключён). + AUC h1: BTC/binance 0.96, BTC/kucoin 0.94, ETH 0.89, SOL 0.85 — сильный сигнал. +- scripts/mm_proto_backtest.py: naive vs gated MM (реквот каждый снапшот, модель-гейт). + Gated устраняет adverse selection: gross −30..−43$ → ~0/+1.4$ (BTC). При fee 0.01% + BTC/kucoin net −0.12$, BTC/binance −2.5$ (было −177$ naive). +- Ограничения: 1.6ч данных на пару, симуляция оптимистична (без очереди), SOL/ETH слабее. +- Этап 3: websocket-коллектор (1-5с), 2-4 недели данных, калибровка, paper MM. +- Отчёт: docs/MM_STAGE2_SIGNAL_2026-08-15_RU.md. + +--- + +## MM этап 3: websocket-коллектор (2026-08-15T20:15Z) — ЗАПУЩЕН + +- scripts/collect_orderbook_ws.py: Binance depth20@100ms, по соединению на пару (BTC/ETH/SOL), + запись 1/сек в snapshots_ws. Отладка: combined /ws/ не оборачивает сообщения (нет поля s) + -> per-pair соединения; pkill -f матчил собственную ssh-команду (2 потери процесса). +- Сервис aios-orderbook-ws.service: active, Restart=always, ~1.75 снапшота/с суммарно. +- Цель: 2-4 недели данных (1 Гц) -> переобучение сигнала, модель очереди, вердикт по MM. +- Файлы: scripts/collect_orderbook_ws.py, deploy/systemd/aios-orderbook-ws.service, + docs/MM_STAGE3_WS_COLLECTOR_2026-08-15_RU.md. + +--- + +## "Делаем всё" — финальный пакет (2026-08-15T20:50Z) + +1. **MM-сигнал валидирован на 29ч (18 пар-бирж)**: AUC стабилен — BTC/binance 0.963, + BTC/kucoin 0.948, BTC/okx 0.910, ETH/kucoin 0.902, ETH/binance 0.893; слабые — + bitstamp/coinbase (тонкие стаканы, AUC 0.55-0.64). Предыдущая оценка «1.6ч» была + артефактом расчёта часов (реальный поток 29ч) — устойчивость подтверждена. + Gated MM: adverse selection устранён (gross>=0 на BTC), но филлов мало при порогах + 0.55/0.45 — калибровка порогов/спреда = следующий шаг после накопления ws-данных. + Отчёт: docs/MM_SIGNAL_29H_VALIDATION_2026-08-15_RU.md. +2. **DCA-трекер**: 1 депозит ($100), value $99.95, комиссии $0.10; следующий депозит 22.08, + ребаланс ~15.11. Отчёт: docs/DCA_TRACKER_REPORT_2026-08-15_RU.md. +3. **A/B paper**: оба сервиса активны, сделок 0 (ML-гейт: ml_not_confirmed 20/3 за цикл) — + контуры работают, входы режутся моделью, как и в бэктестах. Сравнение — после накопления. +4. **PROJECT_CONTEXT.md обновлён** (секции «Где закончили» и «Следующий рекомендуемый шаг»). +5. Скрипт сигнала получил поддержку --table snapshots_ws (для будущего переобучения на ws-данных). + +--- + +## Пакет М1+М2+D1 (2026-08-15T21:10Z) + +- **М1 (калибровка MM)**: сетка порогов/спреда/размера/hold на 29ч REST BTC/binance — + безубыточных конфигураций НЕТ (лучший net −0.11$ при fee 0.01%, 2 филла; max gross +1.00$ + на 14 филлах). Причина: интервал снапшотов ~9с → квота живёт 9-27с, исполнений единицы. + REST-данные непригодны для калибровки MM — нужны 1-Гц ws-данные (копятся). + В прототип добавлен параметр hold_snaps (удержание квоты). +- **М2 (расширение коллектора)**: ws-коллектор теперь 7 пар (BTC, ETH, SOL, XRP, BNB, DOGE, ADA), + сервис перезапущен, все подключены. Данные 1Гц копятся для будущей калибровки. +- **D1 (TG-уведомления DCA)**: scripts/dca_telegram_report.py (credentials systemd, без секретов + в коде), тест отправки OK (sent: True), таймер aios-dca-report.timer — понедельник 18:00Z. +- Файлы: scripts/mm_proto_backtest.py (hold_snaps), deploy/systemd/aios-orderbook-ws.service (7 пар), + scripts/dca_telegram_report.py, deploy/systemd/aios-dca-report.{service,timer}, + docs/DCA_TELEGRAM_REPORT_SETUP_2026-08-15_RU.md. + +--- + +## Пакет V1+V2+V3+V6 (2026-08-15T21:15Z) + +- V1 live-монитор MM (OBI/microprice, верификация 60с): aios-mm-signal-monitor.timer (5 мин), + лог mm_signal_live.jsonl. Первый прогон: BTC FLAT, ETH UP, SOL UP (промах) — статистика копится. +- V2 горизонты: ETH держит сигнал до 180с (AUC 0.97-1.0), SOL затухает (0.89→0.41), + BTC mid статичен (21 движение/30мин). Выборки малы — гипотеза «1-3 мин» предварительно. +- V3 weekly-digest в TG (DCA+ws+A/B+сервисы): тест OK. +- V6 daily funding/OI коллектор (33 символа, append jsonl): таймер 19:15Z, первый прогон OK. +- 4 новых сервиса/таймера активны. Отчёт: docs/QUANT_DIGEST_V1V2V3V6_2026-08-15_RU.md. + +--- + +## V4-прототип: эмиттер MM-сигналов (2026-08-15T21:30Z) + +- mm_signal_emitter.py + aios-mm-signal-emitter.timer (5 мин, ETH/BNB/SOL): обучение модели + на ws-данных, эмиссия UP/DOWN при prob>=0.60/<=0.40 в TG владельца, лог эмиссий. +- Первые сигналы: BNB DOWN (0.003/0.044), SOL UP (0.958); BTC исключён (mid статичен). +- mm_signal_score.py: сверка эмиссий с фактом (+60/180с); точность добавлена в weekly-digest. + Первые цифры: 50% (1/2) — выборка ничтожна, копим дни. +- Дальше: если live-точность >=65-70% за 2-4 недели — сигнальный продукт (подписка). +- Файлы: scripts/mm_signal_emitter.py, deploy/systemd/aios-mm-signal-emitter.{service,timer}, + scripts/mm_signal_score.py, scripts/aios_weekly_digest.py (patch), docs/MM_SIGNAL_EMITTER_2026-08-15_RU.md. + +--- + +## Пакет Q1+Q2+Q3+Q6 (2026-08-15T21:55Z) + +- Q1: aggTrade коллектор в ws-скрипт (trades_ws: buy/sell vol, buy_frac за 5с) — фича для сигнала. +- Q2: /quant в TG-боте — tg_bot/quant_cmds.py (новый) + минимальная правка protected + run_telegram_bot.py (3 места, selfguard --force-snapshot выполнен, бот перезапущен active). + Проверен вывод: MM-точность 50% (3/6), ws 7.7k, DCA, A/B, сервисы. +- Q3: VA-бэктест — VA top-10+ребаланс (кап 2x) −17.21% лучший (DCA+reb −18.87%); + VA кап 3x maxDD −11.47%. Рекомендация для реальных денег: VA+ребаланс. +- Q6: ws-коллектор на 20 пар (все connected). +- Отчёт: docs/QUANT_PACKAGE_Q1Q2Q3Q6_2026-08-15_RU.md. + +--- + +## Пакет: buy_frac в сигнал + VA в DCA-трекер (2026-08-15T22:20Z) + +1. mm_signal_emitter.py: добавлена trade-flow фича (buy_frac, buy_frac_rev из trades_ws, + ближайший к снапшоту агрегат). Эмиттер выдаёт уверенные сигналы: ETH UP 0.759, + BNB UP 0.992, SOL DOWN 0.066 — отправлены в TG. +2. run_dca_paper.py: режим value-averaging (mode=va, va_cap_mult=2.0): вклад = + clamp(план − стоимость, 0, weekly*cap). Включён в конфиг data/dca_portfolio.json. + Идемпотентность сохранена (депозит не задвоился). +3. Накопленная статистика сигналов: 58% точность на движениях (11/19), BNB 53%, + SOL 67%, ETH 100% (1 движ.); ws 21.8k снапшотов (1.2ч), trade-flow 2343 записей. + +--- + +## Q4+Q5 (2026-08-15T23:05Z) — финальный пакет + +- Q4: queue-model в mm_proto_backtest.py (частичные филлы по доле в уровне, добивка + остатка). Проверено на ws 1Гц с реальными спредами (BTC 0.0016bps!). Урок: прежние + half-spread 2bps в ~1000x шире реального спреда BTC -> квоты не исполнялись; при + реалистичных 0.001-0.05bps — 9-14 филлов/час. PnL на 1-1.6ч отрицательный (мало данных). +- Q5: подписки — subscription_manage.py (add/list/revoke/clean), quant_subscriptions.json, + broadcast в эмиттере (владелец + активные подписчики). Owner-подписка создана (365д). + Сигналы: ETH UP 0.987, BNB UP 0.911, SOL UP 0.975 — доставлены. +- Отчёт: docs/SIGNAL_SUBSCRIPTION_INFRA_2026-08-15_RU.md. + +--- + +## R1 (2026-08-15T23:40Z) — экономика сигнала ОТРИЦАТЕЛЬНА + +- signal_pnl_sim.py: 98 сделок по эмиссиям (market вход/выход, 60/180с, fee 0.1%×2, $100). +- РЕЗУЛЬТАТ: gross ≈ 0.00$ на 98 сделках, fees 19.60$, net −19.61$. Сигнал предсказывает + направление (63% live), но величина движений за 1-3 мин микроскопическая — комиссии + доминируют, даже при нулевых комиссиях прибыли нет. +- СЛЕДСТВИЯ: (1) подписка на сигналы для ручной торговли не обоснована (продажа ложной + ценности) — эмиттер переведён в диагностический режим (лог без TG), таймер 5→15 мин; + (2) R3 (калибровка порогов) не имеет смысла — пороги не создадут gross; + (3) микроструктура полезна только как MM-фильтр adverse selection, вердикт после + 2-4 недель данных. +- Документ: docs/SIGNAL_ECONOMICS_R1_2026-08-15_RU.md. + +--- + +## W1+W4+W3 (2026-08-16T00:10Z) + +- W1 (run_mm_best): квотирование на реальных best bid/ask с maker-комиссией. + Gross отрицательный даже при fee=0 (−1.7..−5.6$) на 1-2ч данных; модель на 1-Гц + некорректна (таргет 1с), данные = шум. Вердикт только после недель данных. +- W4 (signal_pnl_maker.py): maker-вход лимиткой. net −19.61$ → −1.50$ (13x лучше), + но fill% 22%, WR 0% — лимитка заполняется при движении против нас (adverse + selection на входе). Сигнал-как-лимитка = ловушка. +- W3: дайджест TG включает экономику maker-входа (ежедневный авто-контроль). +- Выводы: taker-торговля закрыта (R1), maker-вход по сигналу закрыта (W4), + полный maker-MM с микроструктурным фильтром — единственное живое (вердикт после + 2-4 недель корректных 1-Гц данных). +- Документ: docs/SIGNAL_ECONOMICS_W1W4_2026-08-15_RU.md. + +--- + +## D6+D5+D1 (2026-08-16T00:40Z) + +- D6: контрольный DCA-портфель (data/dca_portfolio_control.json, обычный DCA $100/нед, + те же веса) + aios-dca-paper-control.timer (17:35Z). run_dca_paper.py поддержал + DCA_CONFIG env (legacy-имена для main). A/B VA vs DCA на живых данных за 1-2 мес. +- D5: dca_chart_report.py — PNG-график (VA main + DCA control + invested) через + sendPhoto; тест sent: True; подключён к еженедельному dca-report (пн 18:00Z). +- D1: вклад main $100 → $300/нед. +- Состояние: main $99.99 (VA, $100 вложено), control $99.90 (DCA, $100 вложено). +- Файлы: scripts/run_dca_paper.py, scripts/dca_chart_report.py, + scripts/dca_telegram_report.py, deploy/systemd/aios-dca-paper-control.{service,timer}, + deploy/systemd/aios-dca-report.service, data/dca_portfolio{,_control}.json (runtime). + +--- + +## N1: новостной сентимент (2026-08-16T01:10Z) + +- collect_news_sentiment.py: RSS (CoinTelegraph/CoinDesk/CryptoSlate) + Gemini 2.5 Flash + сентимент заголовков → news_sentiment.jsonl. Первый сбор: 65 новостей (pos 19/neg 38/neu 8). +- Отладка: GROQ 403 (регион), OpenRouter 402 (баланс), Gemini — ключ в URL без Bearer, + модель gemini-2.5-flash; удалён дубль score_batch. +- Таймер aios-news-sentiment.timer (ежечасно :20). /quant + строка сентимента. +- N2 (связь сентимента с ценой) — после 1-2 недель накопления. +- Документ: docs/NEWS_SENTIMENT_COLLECTOR_2026-08-16_RU.md. + +--- + +## P1+P2+P3 (2026-08-16T01:40Z) + +- P1: collect_market_context.py (F&G + макро-календарь), таймер ежедневно 06:00Z, + F&G в /quant. Текущий F&G: 34 (Fear). Макро API rate-limited (429) — graceful. +- P2: sentiment_price_test.py (корреляция сентимент→доходность 30м/1ч). Выборка пуста: + новости 22:31-22:32, ws до 22:53 — горизонт за пределами. Инструмент готов; первые + цифры через 1-2 дня накопления. +- P3: дайджест + строка сентимента (перед сервисами). +- Файлы: scripts/collect_market_context.py, scripts/sentiment_price_test.py, + scripts/aios_weekly_digest.py, tg_bot/quant_cmds.py, + deploy/systemd/aios-market-context.{service,timer}, + docs/MARKET_CONTEXT_P1P2P3_2026-08-16_RU.md. + +--- + +## Исторические новости: пайплайн (2026-08-16T02:40Z) + +- Сбор: Wayback RSS снапшоты CoinTelegraph (11 648 за год) -> 1545 заголовков + (2025-08..2026-07) с pubDate. fetch_historical_news.py. +- Сентимент: score_historical_sentiment.py (Gemini 2.5 Flash, resume-safe). + КВОТА ИСЧЕРПАНА (429) — 1 рабочий ключ из 3; таймер aios-news-scoring.timer + (каждые 30 мин) догонит автоматически. +- Тест связи: sentiment_price_historical.py (1h/24h/3d/7d корреляции). +- Локальное тестирование ПЕРЕД деплоем (по требованию владельца): tests/test_news_pipeline.py + — 30 тестов, 30/30 PASS локально и на сервере против прод-скриптов. + Исправлены: валидация ключей (429 != мёртвый ключ), break при мёртвой квоте, + пауза 5->12с. +- Файлы: scripts/fetch_historical_news.py, scripts/score_historical_sentiment.py, + scripts/sentiment_price_historical.py, deploy/systemd/aios-news-scoring.{service,timer}, + tests/{test_news_pipeline.py, fake_quant_monthly_backtest.py, fixtures/}, + docs/NEWS_HISTORICAL_PIPELINE_2026-08-16_RU.md. + +--- + +## Локальный сентимент + тест связи с ценой (2026-08-16T03:30Z) + +- news_local_sentiment.py: лексиконный скорер (вместо Gemini — квота исчерпана). + Калибровка на 65 живых: corr +0.623 с Gemini, знаковое согласие 94-95%. + Тесты: tests/test_local_sentiment.py 21/21 PASS (локально + на сервере). +- Прогнано: 1545 исторических заголовков за 0.03s (344 pos/248 neg/953 neu). +- sentiment_price_historical.py: читает локально-скоредный файл (SCORED fallback). +- РЕЗУЛЬТАТ теста связи (1781 совпадений): corr 1h +0.007, 24h -0.058, 3d -0.036, + 7d -0.060 — СВЯЗИ НЕТ, на длинных горизонтах слабо отрицательная (sell the news). +- 9-й отрицательный результат направленного предсказания. Сентимент-фичи в модель + не добавляем. Лексикон остаётся бесплатным монитором сентимента. +- Документ: docs/SENTIMENT_PRICE_HISTORICAL_RESULT_2026-08-16_RU.md. + +--- + +## Макро+деривативы: предсказательный тест (2026-08-16T05:10Z) — 10-й отрицательный + +- Разработка и тесты ЛОКАЛЬНО (по требованию владельца): tests/macro/test_macro_pipeline.py + 22/22 PASS; Binance локально 451 -> фикстуры форматов, реальный сбор на сервере. +- Данные: 400 дней макро/on-chain (Yahoo+blockchain.info) + 720ч деривативов + 1419ч цен. +- Результаты: daily всё ≈0 (DXY diff 0.32% — слабо); hourly: LSR→24h corr +0.199 (test +0.44), + НО разбивка по блокам: SHORT(LSR<мед) +23/+38/−22/+10% — знак = режим рынка. +- ВЫВОД: LSR = прокси режима (не предсказатель); SHORT при низком LSR прибылен только + в медвежьем рынке (тривиально). 10-й отрицательный результат. Новых классов нет. +- Побочное: накопитель деривативов (collect_derivatives_daily.py + таймер ежечасно) — + долгая история LSR/OI/taker для будущего; LSR как индикатор режима для DCA. +- Документ: docs/MACRO_DERIVATIVES_PREDICTIVE_TEST_2026-08-16_RU.md. + +--- + +## 2-летний бэктест (2026-08-16T06:10Z) + +- Разработано ЛОКАЛЬНО (test_backtest_2y.py, 17 тестов: пагинация, сигналы, движок, + OOS-сплит, kill-свитч), задеплоено после зелёных тестов. +- Данные: 8 активов x 2 года 1h (17520 баров), Binance Futures. +- OOS (посл. ~7 мес): 23 сделки, WR 35%, PF 0.41, PnL −26.45$ (BH −30.9% в окне). +- Справочно весь период с train-пробами: +27.5$ (подгонка, не OOS). +- Вывод: стратегия убыточна на 2-летнем OOS, но обгоняет buy&hold в медвежьем окне + (защита капитала, не доходность). Масштаб убытка растёт с горизонтом. +- Документ: docs/BACKTEST_2Y_2026-08-16_RU.md. + +--- + +## Факторные стратегии: НАЙДЕНА ДОХОДНАЯ (2026-08-16T08:10Z) + +- momentum_strategies.py + test_momentum.py (17 тестов) — локально, потом прод. +- 3 года 1d данных (Yahoo, 14 активов), 7 вариантов a-priori, издержки 0.15%. +- T2 (TS-момент BTC, SMA50): +143.5% (CAGR +34.4%, Sharpe 1.06, MaxDD −27.7% vs BH −53.1%). + В рынке 56% времени. ETH-версия: +156.8% (BH +2.2%). Чувствительность SMA30-50 — плато. +- Честно: OOS (медвежий 2026) −17.6%; вся прибыль из бычьего 2024; классический фактор. +- Рекомендация: paper-контур T2 (ежедневный сигнал close vs SMA50), затем — реальная + аллокация. Первая доходная стратегия за 11 отрицательных тестов. +- Документ: docs/MOMENTUM_STRATEGIES_RESULT_2026-08-16_RU.md. + +--- + +## T2 paper-контур запущен (2026-08-16T08:50Z) + +- run_t2_momentum.py + test_t2_paper.py (28 тестов: сигнал, фолбэк Yahoo/Binance, + идемпотентность, издержки вход/выход, mark, BH): 28/28 PASS локально и на сервере. +- systemd: aios-t2-momentum.timer (01:30 UTC), TG-уведомления при смене позиции. +- Бэкфилл 3 лет: equity $10k → $25,473 (+154.7%) vs BH +134.4%, 68 сделок, позиция CASH + (close 63,004 < SMA50 63,510). Расхождение с бэктестом (+143.5%) — конвенция mark. +- /quant + строка T2. Документ: docs/T2_PAPER_LOOP_2026-08-16_RU.md. + +--- + +## T2 ETH + дайджест (2026-08-16T09:30Z) + +- run_t2_momentum.py: --symbol (BTC-USD/ETH-USD), per-symbol state/log, Binance + фолбэк ETHUSDT. Тесты 33/33 локально (symbol URL, per-symbol paths). +- aios-t2-momentum.service: оба символа ежедневно 01:30Z. +- ETH бэкфилл 3 года: $10k → $27,977 (+179.8%) vs BH +20.0%, LONG, 45 сделок. +- /quant + weekly digest: T2-BTC и T2-ETH (позиция, PnL). Дайджест отправлен. +- Документ: docs/T2_ETH_AND_DIGEST_2026-08-16_RU.md. + +--- + +## V1-V7: валидация и расширение T2 (2026-08-16T10:10Z) + +- V6 (5 лет): BTC +127.8% (BH +47%), ETH +103.2% (BH −35%), SOL +406.3% (BH +91%). +- V5 (ролл-окна): 8/9 положительных у всех трёх — устойчиво. +- V7 (калибровка): SMA40-60 плато — SMA50 робастен, не подгонка. +- V1: SOL-контур (3г: +229.5%); V2: портфель 50/50 (5л: +129.6% vs BH +7%); + V3: --daily-report; V4: график T2 в chart_report (ежедневно). +- Сервис: BTC+ETH+SOL+portfolio+chart, 01:30Z. /quant: 3 строки T2. +- Документ: docs/T2_VALIDATION_AND_EXPANSION_2026-08-16_RU.md. + +--- + +## W1+W4+W5 (2026-08-16T10:50Z) + +- W5: OOS-калибровка SMA — небольшое улучшение BTC/ETH (SMA40/60), SOL убыточен на + медвежьем тесте; SMA50 робастен, оставлен. Подгонки нет. +- W4: стоп-лосс РАЗРУШАЕТ T2 (−60..−90% vs +100..+400%): 400+ стопов = стоп-охота; + SMA50 сам защита. Отвергнут — важный негативный результат. +- W1: 3-активный портфель (BTC+ETH+SOL) в t2_portfolio.py: $28,800 vs BH $23,223; + /quant + портфель. +- Документ: docs/T2_W1W4W5_2026-08-16_RU.md. + +--- + +## U1+U3+U4+U5 (2026-08-16T11:40Z) + +- U5 (7 лет): BTC +1574% vs BH +474%, ETH +1379% vs +744%, SOL +23965% vs +7823% — + стратегия подтверждена на максимальной истории. +- U1 (гистерезис): BTC 50/40 лучше (+141.8%, DD −44% vs +127.8%/−58%); ETH ~0; SOL хуже. + Не универсален — не внедряем (кроме, возможно, BTC позже). +- U3 (ребаланс): разрушает (+65.5% vs +242.8%, DD −85%) — против моментум-логики. НЕ делать. +- U4 (сверка цен): внедрена в прод (предупреждение в TG при >0.5% расхождении); 36/36 тестов. +- Документ: docs/T2_U1U3U4U5_2026-08-16_RU.md. + +--- + +## X1+X2+X3 + расширение на 5 валют (2026-08-16T12:30Z) + +- Скрининг 14 валют: работают BTC/ETH/SOL/BNB/NEAR; остальные 9 убыточны — не берём. +- X1: гистерезис 50/40 улучшает BTC/ETH/SOL на 7 годах (BTC +171 п.п., ETH +832, + SOL +10542 п.п., DD лучше), вредит BNB/NEAR — внедрён для трёх, SMA50 для двух. +- X2: трейлинг-стоп отвергнут (снижает доходность). +- X3: SMA40 оптимум на 7 годах; 50/40 — робастная альтернатива. +- Сервис: 5 контуров + портфель (5 активов): $25,767 vs BH $22,939. +- Тесты: 40/40 локально. Документ: docs/T2_EXPANSION_5SYMBOLS_2026-08-16_RU.md. + +--- + +## Y1+Y2+Y3+Y4 (2026-08-16T13:10Z) + +- Y1 (vol-target): DD лучше у NEAR/BNB/ETH, доходность хуже у SOL — не внедрён. +- Y2 (SMA150-фильтр): DD BTC −58→−28%! но доходность режет — не внедрён. +- КОМБО: на 5 лет BTC +184% (DD −22%) выглядел прорывно, НО на 7 лет +722% vs +1574% — + артефакт периода. НЕ внедрён (важный урок про проверку на полном цикле). +- Y3 (объём): пропущен (нет согласованных исторических объёмов). +- Y4 (Binance primary): внедрён — источник цен Binance spot, Yahoo фолбэк. +- Тесты: 40/40 локально, 28/28 сервер. Документ: docs/T2_Y1Y4_FINDINGS_2026-08-16_RU.md. + +--- + +## Z3 (MM-вердикт) + интернет-исследование (2026-08-16T14:00Z) + +### Z3 — MM-вердикт (2 дня ws-данных, ~5.5ч) +- Сигнал подтверждён: AUC ETH 0.947, BNB 0.942, SOL 0.913 (на 2-дневных данных); +- Экономика MM: BNB gross +0.06$ (безубыточен при fee 0.01%: −0.83$), ETH/SOL убыточны; +- Вывод: сигнал сильный, но экономика maker-MM не сходится на текущих данных/модели + исполнения; вердикт — «нужны недели данных или maker-rebate», направление не закрыто, + но не приоритетно. + +### Интернет-исследование торговых стратегий (глубокий обзор) +- Отчёт: docs/TRADING_RESEARCH_INTERNET_2026-08-16_RU.md; +- Ключевые находки: + 1. Наш T2 подтверждён наукой (time-series momentum 31.96% годовых, 2020-2025); + 2. Парный трейдинг BTC-ETH (коинтеграция): Sharpe 2.45-7.94 — НЕ ТЕСТИРОВАЛИ, топ-приоритет; + 3. CS-моментум работает на 1-4 неделях (мы тестировали 30-90д — зона реверса, ошибка горизонта); + 4. Funding arb: 8-20% APY дельт-нейтрально (у нас есть funding-данные для оценки); + 5. CTREND-фактор (JFQA 2025): alpha 2.77%/нед, может улучшить T2; + 6. Mean reversion + объёмный фильтр: 81% winrate (Glassnode). +- Рекомендация: П1 (парный трейдинг BTC-ETH) как следующий контур — рыночно-нейтральный, + дополнит T2 в медвежьи периоды. + +--- + +## Проверка 5 стратегий из исследования (2026-08-16T15:30Z) — ВСЕ ОТВЕРГНУТЫ + +Локальная проверка на 7-летних данных с издержками, OOS и полным циклом: +1. Парный трейдинг (коинтеграция/ratio): ETH/LINK OOS +3.7% — отвергнут; +2. CS-моментум 1-4 недели: in-sample +4147%, OOS +20.5% vs BH +52.3% — отвергнут + (работает только в бычьих); +3. Funding arb: 1.5% APY на наших данных (медвежий рынок) — отвергнут; +4. CTREND-аппроксимация: 5 лет BTC +139.6% (DD −33%), но 7 лет +968% vs T2 +1574% — + артефакт периода — отвергнут; +5. Mean reversion + объём: BTC +10.3% — отвергнут. + +Уроки: (а) артефакт периода — проверять на полном цикле; (б) OOS-честность; +(в) режим-зависимые стратегии неюзабельны без режим-предсказания; +(г) наш T2 — единственная стратегия, прошедшая все проверки. + +Побочно: найдены мусорные данные UNI-USD (движение 1.5 млн %), создана clean(). +Документ: docs/STRATEGY_TESTS_ALL_2026-08-16_RU.md. + +--- + +## Тест «если бы начали месяц назад» (2026-08-16T16:10Z) + +- Стратегия: T2 (подтверждённая на 7 годах); симуляция с 2026-07-16, SMA по данным до старта. +- Результат месяца (боковой рынок): портфель −2.87% vs BH −2.55% (паритет); + NEAR избежали −18.3% (CASH — защита); SOL пила 9 сделок −9.5%. +- Позиции симуляции = живому paper (валидация согласованности). +- Вывод: T2 — рабочая стратегия; в боковике ≈ BH, в трендах кратно обгоняет, + в медвежьих защищает (NEAR). 1 месяц = шум, валидация на полном цикле. +- Документ: docs/MONTH_AGO_TEST_2026-08-16_RU.md. + +--- + +## Точная экономика T2 (2026-08-16T17:00Z) + +- Медианная годовая T2 (7 лет, 5 контуров): +27.6%; убыточных лет 31% vs 43% (BTC BH); +- Издержки Binance уже в бэктестах (0.15%/переход); BNB-скидка экономит ~1%/год; +- $10k → $12,760 (1г) / $20,776 (3г) / $33,826 (5г) при медиане; +- Риски: 31% убыточных лет, MaxDD −53%, горизонт 3+ лет обязателен; +- Сравнение: T2 ≈ BH по медиане, но лучший риск-профиль (защита в медвежьи); +- Рекомендация: старт $1-5k, горизонт 3+, Binance spot + BNB-скидка, + DCA параллельно. +- Документ: docs/T2_ECONOMICS_2026-08-16_RU.md. + +--- + +## Сценарии большой прибыли (2026-08-16T18:00Z) + +- Рычаги проверены на 7-летних данных: концентрация (SOL+BNB: CAGR 164%, медиана года + +309%, DD −59%), леверидж 1.25-1.5 (CAGR +124-178%, но DD −66..−79%), компаунд. +- Честность: медианы +260-300% искажены бычьим 2021; реалистично p25-p50 +10-60%/год, + бычьи +100-300%, медвежьи −15..−46%. +- Рекомендация: старт $2-5k, T2 SOL+BNB + BTC+ETH параллельно, реинвест, опционально + lev 1.25 на BTC+ETH, DCA $200-500/мес. +- Правила: горизонт 3+, готовность к DD 80%, дисциплина, lev ≤1.5, стоп портфеля. +- Документ: docs/BIG_PROFIT_SCENARIOS_2026-08-16_RU.md. + +--- + +## Исследование теорий, слухов, репозиториев и продуктов (2026-08-16T19:00Z) + +- SMC/ICT развенчаны (0/54 механических вариантов прибыльны; нет peer-reviewed); + наш микроструктурный сигнал — научная альтернатива. +- T2 подтверждён академией (TS momentum 31.96%) и практикой (NostalgiaForInfinity — + та же философия, community +18-42%/6мес). +- Репозитории: Freqtrade (инфраструктура, Hyperopt), Hummingbot (MM), mlfinlab + (meta-labeling), Riskfolio-Lib (веса), CCXT (уже есть), Jesse (дисциплина бэктестов). +- Рекомендации: (1) meta-labeling поверх T2 — фильтр убыточных входов в боковике; + (2) Riskfolio-Lib веса портфеля; (3) порт T2 в Freqtrade dry-run + A/B с NFI; + (4) Hummingbot для MM после накопления ws-данных. +- Документ: docs/TRADING_THEORIES_REPOS_RESEARCH_2026-08-16_RU.md. + +--- + +## Внедрение полезного из репозиториев (2026-08-16T20:30Z) + +1. Meta-labeling (mlfinlab подход) поверх T2: RandomForest, 5 фич (ATR/dist/тренд/RSI/vol10), + train 60%/OOS 40%. Улучшения OOS: BTC +2344% (vs +1746%), BNB +5043%, NEAR +3457%, + SOL +65164%; walk-forward 9/10 положительных. Интегрирован: meta_labeling.py + --meta-filter + в run_t2_momentum; модели 5 pkl на сервере. +2. Riskfolio-Lib: Max Sharpe веса (BTC 40%, SOL 28%, BNB 13%, NEAR 12%, ETH 6%); + OOS +286% vs +195% (равные). Внедрено в t2_portfolio.py: портфель $26,671 vs $25,767. +3. Freqtrade: порт T2-стратегии (freqtrade_t2.py + config) — готов к бэктесту после + установки TA-Lib на сервере (блокер: C-библиотека); ценность — независимая валидация, + Hyperopt, A/B с NostalgiaForInfinity. +4. Hummingbot: план для MM (после 2-4 недель ws-данных) — PMM-стратегия с нашим + OBI-сигналом как фильтром, paper на testnet. +- Документ: docs/REPO_IMPROVEMENTS_2026-08-16_RU.md. diff --git a/coordination/sessions/20260816T030000Z-freqtrade-validation.md b/coordination/sessions/20260816T030000Z-freqtrade-validation.md new file mode 100644 index 000000000..1cc16a245 --- /dev/null +++ b/coordination/sessions/20260816T030000Z-freqtrade-validation.md @@ -0,0 +1,59 @@ +# Сессия: freqtrade-валидация порта T2 + скаффолд исполнителя (2026-08-16) + +## Контекст +Продолжение сессии 20260815T154510Z (T2 стратегия, meta-labeling, Riskfolio). +Ветка: `agent/20260815-quant-oos-profit`. Цель: снять блокер TA-Lib для +freqtrade-порта T2, провалидировать порт, подготовить авто-исполнение для +реальных денег. + +## Процесс (обязательный: локально → прод) +Всё разрабатывалось и тестировалось в песочнице `/home/user/test_env/freqtrade`, +затем перенесено на сервер base64 через SSH и провалидировано повторно. + +## Что сделано + +### 1. Найдены и исправлены ДВА бага в порте freqtrade_t2.py +- вход по «пересечению» вместо «уровня» (расходится после выхода по гистерезису); +- выход сигнальным столбцом блокируется freqtrade при одновременном сигнале + входа (`exit_ and not enter`) в зоне между SMA40 и SMA50. + Исправлено: уровневый вход + выход через `custom_exit()` (только закрытые + свечи, без выхода в свече входа). + +### 2. Валидация порта (close-fill / open-fill эталоны / freqtrade) +- Локально (Yahoo): все 5 пар OK, dev 0.2–4.1%, сделки день-в-день. +- На сервере (Binance): все 5 пар OK, dev 0.1–3.9%. +- Тесты: 4/4 локально, 4/4 на сервере. +- Ключевая находка: продовые цифры T2 включают сделки первых 200 баров + истории (freqtrade требует 200 свечей разогрева) — для NEAR/SOL это + существенно (ралли 2020-2021); модель исполнения (close vs next open) + в крипте эквивалентна (гэпы ~0.01%). + +### 3. Инфраструктура на сервере +- `/root/freqtrade-venv` (Python 3.11, freqtrade 2026.7; TA-Lib 0.7.1 — wheel). +- Данные: `data/freqtrade/data/binance/` (скрипт download_binance.py, публичный API). +- Патч ccxt (spot-only, документирован) — без него freqtrade требует ключи даже для backtest. +- Dry-run бот: systemd `aios-freqtrade-t2-dry` — запущен, позиции совпали с paper + (ETH LONG @1884.25, BNB LONG @606.69; BTC/SOL/NEAR CASH). + +### 4. Скаффолд исполнителя реальных денег +- `scripts/run_t2_executor.py` (--dry по умолчанию, --live с ключами), + `config_executor.example.json`, тесты 5/5 (локально и на сервере). +- НЕ активирован; ключи не вводились. + +## Файлы (мои пути) +- scripts/freqtrade_t2.py (перезаписан), scripts/freqtrade_config_t2.json (перезаписан) +- scripts/freqtrade_validation/{run_validation.py, reference_t2.py, download_binance.py, test_freqtrade_t2.py} (новые) +- scripts/run_t2_executor.py, scripts/config_executor.example.json, scripts/test_executor.py (новые) +- docs/FREQTRADE_VALIDATION.md (новый) +- coordination/sessions/20260816T030000Z-freqtrade-validation.md (этот файл) +- coordination/claims/20260816-freqtrade.md (claim) + +## Проверки +- pytest: test_freqtrade_t2.py 4/4 (loc+server), test_executor.py 5/5 (loc+server) +- systemctl is-active aios-freqtrade-t2-dry → active +- Чужую работу (M catboost_info/*, M tests/test_news_pipeline.py, ?? backups/ и др.) не трогал. + +## Блокеры / следующий шаг +- Реальные деньги: ключи Binance (spot-only), неделя в --dry, затем systemd-timer. +- Гипероптимизация/сравнение с NostalgiaForInfinity — теперь возможно. +- Hummingbot MM — ждёт накопления ws-данных (в orderbooks.sqlite ~1-2 дня). diff --git a/deploy/systemd/HETZNER_MASKED_UNITS.txt b/deploy/systemd/HETZNER_MASKED_UNITS.txt index e6bce0fcc..d8dbaff32 100644 --- a/deploy/systemd/HETZNER_MASKED_UNITS.txt +++ b/deploy/systemd/HETZNER_MASKED_UNITS.txt @@ -1,4 +1,5 @@ -# Units masked to /dev/null on Hetzner, snapshot 2026-08-14 UTC. +# Units masked to /dev/null on Hetzner, snapshot 2026-08-15 UTC. aios-auto-coder.service aios-auto-promote.service aios-auto-promote.timer +aios-groq-key.service diff --git a/deploy/systemd/aios-dca-paper-control.service b/deploy/systemd/aios-dca-paper-control.service new file mode 100644 index 000000000..27191de47 --- /dev/null +++ b/deploy/systemd/aios-dca-paper-control.service @@ -0,0 +1,15 @@ +[Unit] +Description=AIOS DCA portfolio CONTROL (plain DCA, A/B vs VA main) +After=network-online.target +Wants=network-online.target + +[Service] +Type=oneshot +User=root +WorkingDirectory=/root/AIOS +Environment=PYTHONPATH=/root/AIOS +Environment=DCA_CONFIG=dca_portfolio_control +ExecStart=/opt/aios/.venv/bin/python -u /root/AIOS/scripts/run_dca_paper.py + +[Install] +WantedBy=multi-user.target diff --git a/deploy/systemd/aios-dca-paper-control.timer b/deploy/systemd/aios-dca-paper-control.timer new file mode 100644 index 000000000..da954e9d8 --- /dev/null +++ b/deploy/systemd/aios-dca-paper-control.timer @@ -0,0 +1,9 @@ +[Unit] +Description=Daily DCA control portfolio mark-to-market + +[Timer] +OnCalendar=*-*-* 17:35:00 +Persistent=true + +[Install] +WantedBy=timers.target diff --git a/deploy/systemd/aios-dca-paper.service b/deploy/systemd/aios-dca-paper.service new file mode 100644 index 000000000..860dd8944 --- /dev/null +++ b/deploy/systemd/aios-dca-paper.service @@ -0,0 +1,14 @@ +[Unit] +Description=AIOS Long-term DCA Portfolio paper tracker (daily mark-to-market) +After=network-online.target +Wants=network-online.target + +[Service] +Type=oneshot +User=root +WorkingDirectory=/root/AIOS +Environment=PYTHONPATH=/root/AIOS +ExecStart=/opt/aios/.venv/bin/python -u /root/AIOS/scripts/run_dca_paper.py + +[Install] +WantedBy=multi-user.target diff --git a/deploy/systemd/aios-dca-paper.timer b/deploy/systemd/aios-dca-paper.timer new file mode 100644 index 000000000..c6f9e7ff6 --- /dev/null +++ b/deploy/systemd/aios-dca-paper.timer @@ -0,0 +1,9 @@ +[Unit] +Description=Daily DCA paper portfolio mark-to-market + +[Timer] +OnCalendar=*-*-* 17:30:00 +Persistent=true + +[Install] +WantedBy=timers.target diff --git a/deploy/systemd/aios-dca-report.service b/deploy/systemd/aios-dca-report.service new file mode 100644 index 000000000..93a3686d0 --- /dev/null +++ b/deploy/systemd/aios-dca-report.service @@ -0,0 +1,15 @@ +[Unit] +Description=AIOS DCA portfolio weekly Telegram report +After=network-online.target +Wants=network-online.target + +[Service] +Type=oneshot +User=root +WorkingDirectory=/root/AIOS +Environment=PYTHONPATH=/root/AIOS +ExecStart=/opt/aios/.venv/bin/python -u /root/AIOS/scripts/dca_telegram_report.py --weekly +ExecStart=/opt/aios/.venv/bin/python -u /root/AIOS/scripts/dca_chart_report.py --send + +[Install] +WantedBy=multi-user.target diff --git a/deploy/systemd/aios-dca-report.timer b/deploy/systemd/aios-dca-report.timer new file mode 100644 index 000000000..bcacecc7b --- /dev/null +++ b/deploy/systemd/aios-dca-report.timer @@ -0,0 +1,9 @@ +[Unit] +Description=Weekly DCA portfolio Telegram report + +[Timer] +OnCalendar=Mon *-*-* 18:00:00 +Persistent=true + +[Install] +WantedBy=timers.target diff --git a/deploy/systemd/aios-derivatives-collector.service b/deploy/systemd/aios-derivatives-collector.service new file mode 100644 index 000000000..adf44d56a --- /dev/null +++ b/deploy/systemd/aios-derivatives-collector.service @@ -0,0 +1,14 @@ +[Unit] +Description=AIOS hourly derivatives accumulator (LSR/OI/taker) +After=network-online.target +Wants=network-online.target + +[Service] +Type=oneshot +User=root +WorkingDirectory=/root/AIOS +Environment=PYTHONPATH=/root/AIOS +ExecStart=/opt/aios/.venv/bin/python -u /root/AIOS/scripts/collect_derivatives_daily.py + +[Install] +WantedBy=multi-user.target diff --git a/deploy/systemd/aios-derivatives-collector.timer b/deploy/systemd/aios-derivatives-collector.timer new file mode 100644 index 000000000..f0d6fa420 --- /dev/null +++ b/deploy/systemd/aios-derivatives-collector.timer @@ -0,0 +1,9 @@ +[Unit] +Description=Hourly derivatives history accumulation + +[Timer] +OnCalendar=*:25 +Persistent=false + +[Install] +WantedBy=timers.target diff --git a/deploy/systemd/aios-funding-oi-daily.service b/deploy/systemd/aios-funding-oi-daily.service new file mode 100644 index 000000000..5eeb3d52e --- /dev/null +++ b/deploy/systemd/aios-funding-oi-daily.service @@ -0,0 +1,14 @@ +[Unit] +Description=AIOS daily funding/OI history collector (Binance Futures) +After=network-online.target +Wants=network-online.target + +[Service] +Type=oneshot +User=root +WorkingDirectory=/root/AIOS +Environment=PYTHONPATH=/root/AIOS +ExecStart=/opt/aios/.venv/bin/python -u /root/AIOS/scripts/collect_funding_oi_daily.py + +[Install] +WantedBy=multi-user.target diff --git a/deploy/systemd/aios-funding-oi-daily.timer b/deploy/systemd/aios-funding-oi-daily.timer new file mode 100644 index 000000000..a98098cdf --- /dev/null +++ b/deploy/systemd/aios-funding-oi-daily.timer @@ -0,0 +1,9 @@ +[Unit] +Description=Daily funding/OI history collector + +[Timer] +OnCalendar=*-*-* 19:15:00 +Persistent=true + +[Install] +WantedBy=timers.target diff --git a/deploy/systemd/aios-market-context.service b/deploy/systemd/aios-market-context.service new file mode 100644 index 000000000..eb855f51d --- /dev/null +++ b/deploy/systemd/aios-market-context.service @@ -0,0 +1,14 @@ +[Unit] +Description=AIOS market context collector (Fear&Greed + macro) +After=network-online.target +Wants=network-online.target + +[Service] +Type=oneshot +User=root +WorkingDirectory=/root/AIOS +Environment=PYTHONPATH=/root/AIOS +ExecStart=/opt/aios/.venv/bin/python -u /root/AIOS/scripts/collect_market_context.py + +[Install] +WantedBy=multi-user.target diff --git a/deploy/systemd/aios-market-context.timer b/deploy/systemd/aios-market-context.timer new file mode 100644 index 000000000..551741c20 --- /dev/null +++ b/deploy/systemd/aios-market-context.timer @@ -0,0 +1,9 @@ +[Unit] +Description=Daily market context (F&G) collection + +[Timer] +OnCalendar=*-*-* 06:00:00 +Persistent=true + +[Install] +WantedBy=timers.target diff --git a/deploy/systemd/aios-mm-signal-emitter.service b/deploy/systemd/aios-mm-signal-emitter.service new file mode 100644 index 000000000..af1b7b5aa --- /dev/null +++ b/deploy/systemd/aios-mm-signal-emitter.service @@ -0,0 +1,14 @@ +[Unit] +Description=AIOS MM signal emitter (trained model -> Telegram) +After=network-online.target +Wants=network-online.target + +[Service] +Type=oneshot +User=root +WorkingDirectory=/root/AIOS +Environment=PYTHONPATH=/root/AIOS +ExecStart=/opt/aios/.venv/bin/python -u /root/AIOS/scripts/mm_signal_emitter.py --symbols ETH BNB SOL --up-thr 0.60 --down-thr 0.40 + +[Install] +WantedBy=multi-user.target diff --git a/deploy/systemd/aios-mm-signal-emitter.timer b/deploy/systemd/aios-mm-signal-emitter.timer new file mode 100644 index 000000000..d49006922 --- /dev/null +++ b/deploy/systemd/aios-mm-signal-emitter.timer @@ -0,0 +1,9 @@ +[Unit] +Description=MM signal emission every 5 minutes + +[Timer] +OnCalendar=*:0/15 +Persistent=false + +[Install] +WantedBy=timers.target diff --git a/deploy/systemd/aios-mm-signal-monitor.service b/deploy/systemd/aios-mm-signal-monitor.service new file mode 100644 index 000000000..1f115f2c2 --- /dev/null +++ b/deploy/systemd/aios-mm-signal-monitor.service @@ -0,0 +1,16 @@ +[Unit] +Description=AIOS MM live signal monitor (OBI/microprice on ws data) +After=network-online.target +Wants=network-online.target + +[Service] +Type=oneshot +User=root +WorkingDirectory=/root/AIOS +Environment=PYTHONPATH=/root/AIOS +ExecStart=/opt/aios/.venv/bin/python -u /root/AIOS/scripts/mm_signal_live_monitor.py --symbol BTC --verify +ExecStart=/opt/aios/.venv/bin/python -u /root/AIOS/scripts/mm_signal_live_monitor.py --symbol ETH --verify +ExecStart=/opt/aios/.venv/bin/python -u /root/AIOS/scripts/mm_signal_live_monitor.py --symbol SOL --verify + +[Install] +WantedBy=multi-user.target diff --git a/deploy/systemd/aios-mm-signal-monitor.timer b/deploy/systemd/aios-mm-signal-monitor.timer new file mode 100644 index 000000000..adf32f0e1 --- /dev/null +++ b/deploy/systemd/aios-mm-signal-monitor.timer @@ -0,0 +1,9 @@ +[Unit] +Description=Every-5-min MM live signal sampling + +[Timer] +OnCalendar=*:0/5 +Persistent=false + +[Install] +WantedBy=timers.target diff --git a/deploy/systemd/aios-news-scoring.service b/deploy/systemd/aios-news-scoring.service new file mode 100644 index 000000000..738f5d898 --- /dev/null +++ b/deploy/systemd/aios-news-scoring.service @@ -0,0 +1,14 @@ +[Unit] +Description=AIOS historical news sentiment scoring (resume-safe) +After=network-online.target +Wants=network-online.target + +[Service] +Type=oneshot +User=root +WorkingDirectory=/root/AIOS +Environment=PYTHONPATH=/root/AIOS +ExecStart=/opt/aios/.venv/bin/python -u /root/AIOS/scripts/score_historical_sentiment.py --batch-limit 400 + +[Install] +WantedBy=multi-user.target diff --git a/deploy/systemd/aios-news-scoring.timer b/deploy/systemd/aios-news-scoring.timer new file mode 100644 index 000000000..adedf1c05 --- /dev/null +++ b/deploy/systemd/aios-news-scoring.timer @@ -0,0 +1,9 @@ +[Unit] +Description=Historical news scoring retry (every 30 min until quota allows) + +[Timer] +OnCalendar=*:0/30 +Persistent=false + +[Install] +WantedBy=timers.target diff --git a/deploy/systemd/aios-news-sentiment.service b/deploy/systemd/aios-news-sentiment.service new file mode 100644 index 000000000..5e5e16818 --- /dev/null +++ b/deploy/systemd/aios-news-sentiment.service @@ -0,0 +1,14 @@ +[Unit] +Description=AIOS crypto news + LLM sentiment collector (Gemini) +After=network-online.target +Wants=network-online.target + +[Service] +Type=oneshot +User=root +WorkingDirectory=/root/AIOS +Environment=PYTHONPATH=/root/AIOS +ExecStart=/opt/aios/.venv/bin/python -u /root/AIOS/scripts/collect_news_sentiment.py --limit 40 + +[Install] +WantedBy=multi-user.target diff --git a/deploy/systemd/aios-news-sentiment.timer b/deploy/systemd/aios-news-sentiment.timer new file mode 100644 index 000000000..1eaccfa7b --- /dev/null +++ b/deploy/systemd/aios-news-sentiment.timer @@ -0,0 +1,9 @@ +[Unit] +Description=Hourly crypto news sentiment collection + +[Timer] +OnCalendar=*:20 +Persistent=true + +[Install] +WantedBy=timers.target diff --git a/deploy/systemd/aios-orderbook-research.service b/deploy/systemd/aios-orderbook-research.service index 3a3bdab75..0811a168f 100644 --- a/deploy/systemd/aios-orderbook-research.service +++ b/deploy/systemd/aios-orderbook-research.service @@ -8,7 +8,7 @@ Type=simple User=root WorkingDirectory=/root/AIOS Environment=PYTHONPATH=/root/AIOS -ExecStart=/opt/aios/.venv/bin/python -u /root/AIOS/scripts/collect_orderbook_snapshots.py daemon --symbols BTC ETH SOL --exchanges binance kucoin mexc --interval 30 --depth 10 --retention-days 14 +ExecStart=/opt/aios/.venv/bin/python -u /root/AIOS/scripts/collect_orderbook_snapshots.py daemon --symbols BTC ETH SOL --exchanges binance kucoin mexc okx bitstamp coinbase --interval 5 --depth 10 --retention-days 14 Restart=always RestartSec=15 diff --git a/deploy/systemd/aios-orderbook-ws.service b/deploy/systemd/aios-orderbook-ws.service new file mode 100644 index 000000000..8a9a8a888 --- /dev/null +++ b/deploy/systemd/aios-orderbook-ws.service @@ -0,0 +1,16 @@ +[Unit] +Description=AIOS Orderbook WebSocket collector (Binance depth20@100ms, BTC/ETH/SOL) +After=network-online.target +Wants=network-online.target + +[Service] +Type=simple +User=root +WorkingDirectory=/root/AIOS +Environment=PYTHONPATH=/root/AIOS +ExecStart=/opt/aios/.venv/bin/python -u /root/AIOS/scripts/collect_orderbook_ws.py --pairs BTC ETH SOL XRP BNB DOGE ADA TRX TON LINK AVAX UNI NEAR LTC DOT SUI APT ARB OP INJ --interval 1.0 --db /root/AIOS/data/quant/orderbooks.sqlite +Restart=always +RestartSec=10 + +[Install] +WantedBy=multi-user.target diff --git a/deploy/systemd/aios-quant-ml-monitor.service b/deploy/systemd/aios-quant-ml-monitor.service new file mode 100644 index 000000000..a2157610a --- /dev/null +++ b/deploy/systemd/aios-quant-ml-monitor.service @@ -0,0 +1,12 @@ +[Unit] +Description=AIOS Quant ML drift & freshness monitor + +[Service] +Type=oneshot +User=root +WorkingDirectory=/root/AIOS +Environment=PYTHONPATH=/root/AIOS +ExecStart=/opt/aios/.venv/bin/python /root/AIOS/scripts/quant_ml_monitor.py + +[Install] +WantedBy=multi-user.target diff --git a/deploy/systemd/aios-quant-ml-monitor.timer b/deploy/systemd/aios-quant-ml-monitor.timer new file mode 100644 index 000000000..05124bb52 --- /dev/null +++ b/deploy/systemd/aios-quant-ml-monitor.timer @@ -0,0 +1,11 @@ +[Unit] +Description=Hourly AIOS Quant ML monitor + +[Timer] +OnCalendar=hourly +Persistent=true +RandomizedDelaySec=300 +Unit=aios-quant-ml-monitor.service + +[Install] +WantedBy=timers.target diff --git a/deploy/systemd/aios-quant-ml-retrain.service b/deploy/systemd/aios-quant-ml-retrain.service new file mode 100644 index 000000000..9fec9df14 --- /dev/null +++ b/deploy/systemd/aios-quant-ml-retrain.service @@ -0,0 +1,14 @@ +[Unit] +Description=AIOS Quant ML retrain (CatBoost v2, deploy only if better) +After=aios-market-data.service + +[Service] +Type=oneshot +User=root +WorkingDirectory=/root/AIOS +Environment=PYTHONPATH=/root/AIOS +ExecStart=/opt/aios/.venv/bin/python /root/AIOS/scripts/quant_ml_eval_train.py +Nice=10 + +[Install] +WantedBy=multi-user.target diff --git a/deploy/systemd/aios-quant-ml-retrain.timer b/deploy/systemd/aios-quant-ml-retrain.timer new file mode 100644 index 000000000..40899c412 --- /dev/null +++ b/deploy/systemd/aios-quant-ml-retrain.timer @@ -0,0 +1,11 @@ +[Unit] +Description=Weekly AIOS Quant ML model retrain + +[Timer] +OnCalendar=Mon *-*-* 04:00:00 +Persistent=true +RandomizedDelaySec=600 +Unit=aios-quant-ml-retrain.service + +[Install] +WantedBy=timers.target diff --git a/deploy/systemd/aios-quant-trading-control.service b/deploy/systemd/aios-quant-trading-control.service new file mode 100644 index 000000000..4972931de --- /dev/null +++ b/deploy/systemd/aios-quant-trading-control.service @@ -0,0 +1,33 @@ +[Unit] +Description=AIOS Quant Trading CONTROL (A/B legacy trail 0.988) - paper only +After=network-online.target +Wants=network-online.target + +[Service] +Type=simple +User=root +WorkingDirectory=/root/AIOS +Environment=PYTHONPATH=/root/AIOS +Environment=AIOS_QUANT_LEGACY_EXECUTION=0 +Environment=AIOS_QUANT_PORTFOLIO_FILE=multi_exchange_portfolios_owner_paper_control.json +Environment=AIOS_QUANT_ENTRY_MODE=enabled +Environment=AIOS_QUANT_ALLOWED_EXCHANGES=kraken,binance,bybit,okx,uniswap_v3,coinbase,kucoin,bitfinex,bitstamp,mexc +Environment=AIOS_QUANT_MAX_GLOBAL_POSITIONS=1 +Environment=AIOS_QUANT_MAX_PER_EXCHANGE=1 +Environment=AIOS_QUANT_MAX_DRAWDOWN_PCT=0.25 +Environment=AIOS_QUANT_MAX_DAILY_LOSS_PCT=0.25 +Environment=AIOS_QUANT_MIN_CONFIDENCE=0.88 +Environment=AIOS_QUANT_REQUIRE_ML=1 +Environment=AIOS_QUANT_ML_MIN_PROB=0.65 +Environment=AIOS_QUANT_RL_VETO=0.30 +Environment=AIOS_QUANT_MIN_HOLD_SECONDS=7200 +Environment=AIOS_QUANT_HALF_SPREAD_RATE=0.0005 +Environment=AIOS_QUANT_SLIPPAGE_RATE=0.0005 +Environment=AIOS_QUANT_CANDLE_SECONDS=3600 +Environment=AIOS_QUANT_TRAIL_RATIO=0.988 +ExecStart=/opt/aios/.venv/bin/python -u /root/AIOS/run_quant_trading.py --daemon --interval 900 +Restart=always +RestartSec=10 + +[Install] +WantedBy=multi-user.target diff --git a/deploy/systemd/aios-quant-trading.service b/deploy/systemd/aios-quant-trading.service index 158e2d8af..70cc2a8c6 100644 --- a/deploy/systemd/aios-quant-trading.service +++ b/deploy/systemd/aios-quant-trading.service @@ -11,7 +11,7 @@ Environment=PYTHONPATH=/root/AIOS Environment=AIOS_QUANT_LEGACY_EXECUTION=0 Environment=AIOS_QUANT_PORTFOLIO_FILE=multi_exchange_portfolios_owner_paper.json Environment=AIOS_QUANT_ENTRY_MODE=enabled -Environment=AIOS_QUANT_ALLOWED_EXCHANGES=kucoin,bitstamp,mexc +Environment=AIOS_QUANT_ALLOWED_EXCHANGES=kraken,binance,bybit,okx,uniswap_v3,coinbase,kucoin,bitfinex,bitstamp,mexc Environment=AIOS_QUANT_MAX_GLOBAL_POSITIONS=1 Environment=AIOS_QUANT_MAX_PER_EXCHANGE=1 Environment=AIOS_QUANT_MAX_DRAWDOWN_PCT=0.25 @@ -24,6 +24,7 @@ Environment=AIOS_QUANT_MIN_HOLD_SECONDS=7200 Environment=AIOS_QUANT_HALF_SPREAD_RATE=0.0005 Environment=AIOS_QUANT_SLIPPAGE_RATE=0.0005 Environment=AIOS_QUANT_CANDLE_SECONDS=3600 +Environment=AIOS_QUANT_TRAIL_RATIO=1.0 ExecStart=/opt/aios/.venv/bin/python -u /root/AIOS/run_quant_trading.py --daemon --interval 900 Restart=always RestartSec=10 diff --git a/deploy/systemd/aios-t2-momentum.service b/deploy/systemd/aios-t2-momentum.service new file mode 100644 index 000000000..9ab5011b5 --- /dev/null +++ b/deploy/systemd/aios-t2-momentum.service @@ -0,0 +1,20 @@ +[Unit] +Description=AIOS T2 momentum paper loops (BTC/ETH/SOL hyst 50/40 + BNB/NEAR SMA50 + portfolio, daily TG) +After=network-online.target +Wants=network-online.target + +[Service] +Type=oneshot +User=root +WorkingDirectory=/root/AIOS +Environment=PYTHONPATH=/root/AIOS +ExecStart=/opt/aios/.venv/bin/python -u /root/AIOS/scripts/run_t2_momentum.py --symbol BTC-USD --in-w 50 --out-w 40 --notify --daily-report +ExecStart=/opt/aios/.venv/bin/python -u /root/AIOS/scripts/run_t2_momentum.py --symbol ETH-USD --in-w 50 --out-w 40 --notify --daily-report +ExecStart=/opt/aios/.venv/bin/python -u /root/AIOS/scripts/run_t2_momentum.py --symbol SOL-USD --in-w 50 --out-w 40 --notify --daily-report +ExecStart=/opt/aios/.venv/bin/python -u /root/AIOS/scripts/run_t2_momentum.py --symbol BNB-USD --notify --daily-report +ExecStart=/opt/aios/.venv/bin/python -u /root/AIOS/scripts/run_t2_momentum.py --symbol NEAR-USD --notify --daily-report +ExecStart=/opt/aios/.venv/bin/python -u /root/AIOS/scripts/t2_portfolio.py +ExecStart=/opt/aios/.venv/bin/python -u /root/AIOS/scripts/dca_chart_report.py --send + +[Install] +WantedBy=multi-user.target diff --git a/deploy/systemd/aios-t2-momentum.timer b/deploy/systemd/aios-t2-momentum.timer new file mode 100644 index 000000000..cb5a801c6 --- /dev/null +++ b/deploy/systemd/aios-t2-momentum.timer @@ -0,0 +1,9 @@ +[Unit] +Description=Daily T2 momentum signal (01:30 UTC) + +[Timer] +OnCalendar=*-*-* 01:30:00 +Persistent=true + +[Install] +WantedBy=timers.target diff --git a/docs/BACKTEST_2Y_2026-08-16_RU.md b/docs/BACKTEST_2Y_2026-08-16_RU.md new file mode 100644 index 000000000..e7a11769d --- /dev/null +++ b/docs/BACKTEST_2Y_2026-08-16_RU.md @@ -0,0 +1,39 @@ +# Бэктест: «если бы торговля началась 2 года назад» + +**Дата:** 2026-08-16 | Скрипт: `scripts/backtest_2y.py` (+`tests/test_backtest_2y.py`, 17 тестов) + +## Методика +- Данные: Binance Futures 1h klines, 8 активов (BTC ETH SOL XRP BNB DOGE ADA LINK), + 2 года (2024-08-15..2026-08-15), 17 520 баров/актив (пагинация 1500); +- Модель: CatBoost обучен на первых 70% каждого символа (честный OOS); + **OOS-окно = последние ~30% (≈7 месяцев, бар 12264..17520)**; +- Движок: текущая live-конфигурация (BUY_LONG + ML≥0.65 + conf≥0.88, TP 2%/SL 1%/ + trail 1.0, 1 позиция, kill-свитчи 0.25%, издержки ~0.5% на круг, $200/сделку, $10k); + +## Результаты +| Период | Сделок | WR | PF | PnL | Комментарий | +|---|---:|---:|---:|---:|---| +| **OOS (честный)** | 23 | 35% | 0.41 | **−26.45$** | медвежье окно | +| Весь 2-летний (справочно, prob. на train) | 144 | 58% | 1.15 | +27.53$ | НЕ честно (подгонка) | +| BTC buy&hold 2 года | | | | **+9.8%** | | +| BTC buy&hold OOS-окно | | | | **−30.9%** | | + +## Выводы +1. **Честный OOS убыточен** (−26.45$, PF 0.41): 15 стопов / 4 trailing / 4 TP. +2. **Но стратегия обгоняет buy&hold в медвежьем окне** (−0.26% vs −30.9%): защита + капитала работает (kill-свитчи + стопы), просто не зарабатывает. +3. «Прибыль» +27$ за 2 года — артефакт: появляется только при сигналах на train-части. +4. ML-гейт режет активность: 23 сделки за 7 месяцев OOS. +5. **Итог: на 2-летнем горизонте текущая стратегия убыточна, но это «страховка», + а не доходность** — согласуется со всеми 10 экспериментами (направленного edge нет). + +## Сравнение (полная картина за сессию) +- 1-летний OOS (ранее): −13.7$ / PF 0.64 / 23 сделки; +- 2-летний OOS (теперь): −26.45$ / PF 0.41 / 23 сделки; +- Вывод: масштаб убытка растёт с горизонтом (больше стопов), edge не появляется. + +## Воспроизводимость +```bash +python tests/test_backtest_2y.py # 17 тестов +python scripts/backtest_2y.py --symbols BTC ETH SOL XRP BNB DOGE ADA LINK +``` diff --git a/docs/BIG_PROFIT_SCENARIOS_2026-08-16_RU.md b/docs/BIG_PROFIT_SCENARIOS_2026-08-16_RU.md new file mode 100644 index 000000000..e30478e22 --- /dev/null +++ b/docs/BIG_PROFIT_SCENARIOS_2026-08-16_RU.md @@ -0,0 +1,67 @@ +# Большая прибыль: сценарии (честная оценка) + +**Дата:** 2026-08-16 | Основано на 7-летних данных T2 (2019-2026, полный цикл: бычий 2021, медвежий 2022, восстановление) + +## Ключевые рычаги большой прибыли (проверены) + +### Рычаг 1: Концентрация на лучших активах +| Портфель | CAGR 7 лет | Медиана года | Убыточных лет | MaxDD | +|---|---:|---:|---:|---:| +| Все 5 активов | +128% | +263% | 20% | −51% | +| **SOL+BNB** | **+164%** | **+309%** | 20% | −59% | +| SOL only | +193% | +297% | 20% | −63% | +| BTC+ETH (консерв.) | +104% | +63% | 20% | −50% | + +### Рычаг 2: Леверидж 1.25-1.5 (фьючерсы, с funding-издержками) +| Портфель | CAGR | MaxDD | +|---|---:|---:| +| Все 5, lev 1.25 | +124% | −66% | +| Все 5, lev 1.5 | +141% | −75% | +| SOL+BNB, lev 1.25 | +158% | −71% | +| SOL+BNB, lev 1.5 | +178% | −79% | + +### Рычаг 3: Компаунд (реинвест) — на $10k +| Сценарий | 1 год | 3 года | 5 лет | +|---|---:|---:|---:| +| Консерв. (медиана p25 +10%) | $11,000 | $13,310 | $16,105 | +| **SOL+BNB медиана (+309%)** | **$40,855** | **$681,921** | **$11.38 млн** | +| Бычий цикл (+100%/год) | $20,000 | $80,000 | $320,000 | +| Пессимистичный (−15%/год) | $8,500 | $6,140 | $4,437 | + +## ⚠️ КРИТИЧЕСКИ ВАЖНО (честность) + +1. **Медианы +260-300% искажены аномальным 2021** (SOL вырос +2022% за год). Повторение + суперцикла НЕ гарантировано. Реалистичное «ожидание вперёд» — **p25-p50: +10-60%/год** + в обычные годы, +100-300% в бычьи, −15..−46% в медвежьи. +2. **Концентрация SOL+BNB** = ставка на 2 актива. Если SOL перестанет расти (как в 2025-26: + T2 SOL −10%/год) — портфель просядет. Сейчас SOL в боковике. +3. **Леверидж 1.5**: DD −75..−79%. При −79% нужно +376% для восстановления. Ликвидация + возможна при резких движениях (в нашей модели 3x ликвидировался на SOL). +4. **Убыточных лет 20%** (1 из 5) даже у лучших портфелей — нужен горизонт 3+ лет и + психологическая готовность к −50..−80%. +5. **Размер капитала решает**: $500 при +300% = $2,000; $10k при +300% = $40k. + Большая прибыль = капитал × доходность × время. + +## 🎯 Рекомендация «большой прибыли» (сбалансированная) + +**Старт: $2,000-5,000** (а не $500 — чтобы прибыль была ощутимой) + +| Шаг | Конфигурация | Ожидание (честно) | +|---|---|---| +| 1 | **T2 SOL+BNB (концентрация)** — без левериджа | +10-60%/год обычные, +100-300% бычьи, DD −59% | +| 2 | **T2 BTC+ETH параллельно** (диверсификация, −50% риска портфеля) | +10-60%/год | +| 3 | **Реинвест всей прибыли** (компаунд) | экспоненциальный рост | +| 4 | **Опционально: lev 1.25 на BTC+ETH** (умеренный леверидж на стабильных) | +124% CAGR, DD −66% | +| 5 | DCA $200-500/мес в те же контуры | накопление в боковике | + +**Ожидаемый результат (3-5 лет, смешанный цикл) на $5k:** +- Консервативно: $8-15k; +- Средне (один бычий год): $30-80k; +- Оптимистично (2 бычьих года + леверидж): $100k+. + +## Правила (обязательные) +1. Только деньги, которые готовы потерять до 80%; +2. Горизонт 3+ лет (пережить убыточные годы); +3. Дисциплина сигналов T2 (без ручных отмен); +4. Без левериджа > 1.5 (ликвидация); +5. Стоп на уровне портфеля: если DD > 60% — снизить концентрацию. diff --git a/docs/DCA_AB_VA_VS_PLAIN_2026-08-16_RU.md b/docs/DCA_AB_VA_VS_PLAIN_2026-08-16_RU.md new file mode 100644 index 000000000..4479d6729 --- /dev/null +++ b/docs/DCA_AB_VA_VS_PLAIN_2026-08-16_RU.md @@ -0,0 +1,32 @@ +# DCA: A/B VA vs обычный DCA + график в TG + увеличенный вклад + +**Дата:** 2026-08-16 | Ветка: agent/20260815-quant-oos-profit + +## D6 — Параллельный контрольный портфель (A/B тест) +- **Main (VA)**: data/dca_portfolio.json — режим value-averaging, вклад $300/нед (увеличен с $100), + равные веса топ-10, квартальный ребаланс; +- **Control (DCA)**: data/dca_portfolio_control.json — обычный DCA, $100/нед, те же веса/ребаланс; +- run_dca_paper.py: пути через env DCA_CONFIG (legacy-имена для main сохранены); +- сервис aios-dca-paper-control.timer: ежедневно 17:35Z (после main 17:30); +- Через 1-2 месяца — честное живое сравнение VA vs DCA на реальных ценах (бэктест + говорил VA −17.2% vs DCA+reb −18.9%, но живое сравнение убедительнее). + +## D5 — График стоимости в TG +- scripts/dca_chart_report.py: matplotlib PNG (обе кривые + invested), отправка sendPhoto; +- тест: sent: True (владелец получил график); +- подключён к aios-dca-report.service (пн 18:00Z: текстовый отчёт + график). + +## D1 — Вклад увеличен +- Main (VA): $100 → **$300/нед** (быстрее накопление статистики); +- Control (DCA): $100/нед (для сравнения). + +## Статус портфелей (2026-08-16) +| Портфель | Режим | Вклад/нед | Вложено | Стоимость | +|---|---|---|---|---| +| Main | VA | $300 | $100 | $99.99 | +| Control | DCA | $100 | $100 | $99.90 | + +## Дальше +- Еженедельно (пн): текстовый отчёт (оба портфеля) + график в TG; +- Через 1-2 месяца: сравнить доходность VA vs DCA на живых данных → решение + о режиме для реальных денег. diff --git a/docs/DCA_PORTFOLIO_PLAN_2026-08-15_RU.md b/docs/DCA_PORTFOLIO_PLAN_2026-08-15_RU.md new file mode 100644 index 000000000..f66e9805f --- /dev/null +++ b/docs/DCA_PORTFOLIO_PLAN_2026-08-15_RU.md @@ -0,0 +1,49 @@ +# Долгосрочный портфель (DCA) — план и анализ + +**Дата:** 2026-08-15 | **Скрипт анализа:** `scripts/quant_dca_analysis.py` +**Paper-трекер:** `scripts/run_dca_paper.py` + `aios-dca-paper.timer` (ежедневно 17:30 UTC) + +## Результаты бэктеста (12 мес локальных данных, комиссия 0.1%/покупка, $1000/нед) + +| Стратегия | Вложено | Итог | PnL % | MaxDD % | +|---|---:|---:|---:|---:| +| DCA равные веса топ-5 | 53 000 | 34 445 | **−35.0** | −20.7 | +| DCA равные веса топ-10 | 53 000 | 35 688 | **−32.7** | −15.3 | +| **DCA топ-10 + квартальный ребаланс** | 53 000 | 42 997 | **−18.9** | −15.0 | +| DCA кап-веса топ-10 | 53 000 | 36 106 | −31.9 | −16.1 | +| DCA BTC-only | 53 000 | 36 700 | −30.8 | −14.3 | +| Lump-sum топ-10 (вся сумма сразу) | 53 000 | 31 005 | −41.5 | — | +| Lump-sum BTC | 53 000 | 28 970 | −45.3 | — | + +**Контекст:** год был глубоко медвежьим (BTC −46%, ETH −57% по CoinGecko). + +## Выводы + +1. **DCA систематически лучше lump-sum**: BTC −30.8% vs −45.3%; топ-10 −32.7% vs −41.5%. + Разница ~12-15 п.п. — DCA работает как защита в падающем рынке. +2. **Квартальный ребаланс — лучший вариант** (−18.9%): принудительно продаёт выросшее + и докупает упавшее = систематический buy-the-dip. Выигрыш ~14 п.п. над обычным DCA. +3. Все варианты в минусе — рынок падал. DCA — много-годичная стратегия; горизонт 6-12 мес + в медвежьем цикле может дать минус, но меньше, чем альтернативы. В бычьем цикле + диверсифицированный DCA с ребалансом исторически растёт вместе с рынком. + +## Рекомендуемая аллокация (по умолчанию в трекере) + +**Равные веса топ-10, еженедельный вклад, квартальный ребаланс:** +BTC 10% · ETH 10% · SOL 10% · XRP 10% · BNB 10% · DOGE 10% · TRX 10% · TON 10% · ADA 10% · LINK 10% + +Консервативная альтернатива (меньше альт-волатильности): +BTC 40% · ETH 25% · BNB 10% · SOL 10% · XRP 5% · DOGE 3% · TRX 3% · ADA 2% · LINK 2% + +## Paper-трекер + +- Конфиг: `data/dca_portfolio.json` (сумма вклада, веса, ребаланс) — сейчас $100/нед, топ-10 равные; +- Состояние: `data/dca_paper_state.json`; история стоимости: `data/dca_paper_value.jsonl`; +- Ежедневный mark-to-market по живым ценам binance spot, депозит раз в 7 дней, ребаланс раз в 90 дней; +- Первый депозит выполнен 2026-08-15 (100$, все 10 активов куплены). + +## Как перейти на реальные деньги + +1. Поменять `weekly_amount_usd` в конфиге на реальную сумму (или вести реальные покупки вручную и заносить в state). +2. Реальные покупки — на бирже (binance spot), те же 10 активов, та же периодичность. +3. Трекер продолжит считать стоимость по тем же весам — его цифры будут эталоном для сравнения. diff --git a/docs/DCA_TELEGRAM_REPORT_SETUP_2026-08-15_RU.md b/docs/DCA_TELEGRAM_REPORT_SETUP_2026-08-15_RU.md new file mode 100644 index 000000000..74564c901 --- /dev/null +++ b/docs/DCA_TELEGRAM_REPORT_SETUP_2026-08-15_RU.md @@ -0,0 +1,8 @@ +# DCA Telegram-уведомления — настроены + +**Скрипт:** `scripts/dca_telegram_report.py` (читает credentials systemd: telegram_token, telegram_owner_chat_id) +**Таймер:** `aios-dca-report.timer` — каждый понедельник 18:00 UTC, полный отчёт (позиции, покупки) +**Тест:** отправлено успешно (sent: True), владелец получил отчёт. + +Формат отчёта: вложено, стоимость, PnL $ и %, комиссии, число позиций, последний депозит, +последние покупки (в еженедельном режиме), напоминание о ребалансе. diff --git a/docs/DCA_TRACKER_REPORT_2026-08-15_RU.md b/docs/DCA_TRACKER_REPORT_2026-08-15_RU.md new file mode 100644 index 000000000..0716b9eff --- /dev/null +++ b/docs/DCA_TRACKER_REPORT_2026-08-15_RU.md @@ -0,0 +1,16 @@ +# DCA-трекер: отчёт о работе (2026-08-15) + +**Статус:** трекер активен, таймер ежедневно 17:30 UTC, первый депозит выполнен. + +| Показатель | Значение | +|---|---| +| Конфиг | $100/нед, равные веса топ-10, квартальный ребаланс | +| Депозитов | 1 (2026-08-15) | +| Вложено | $100.00 | +| Комиссии | $0.10 (0.1% × 10 покупок) | +| Стоимость | $99.95 (−0.05%) | +| Позиции | 10 активов (BTC, ETH, SOL, XRP, BNB, DOGE, TRX, TON, ADA, LINK) | +| Записей value log | 3 (первый день) | + +Следующий депозит: 2026-08-22 (через 7 дней). Ребаланс: ~2026-11-15 (через 90 дней). +Идемпотентность подтверждена (повторные запуски не дублируют депозит). diff --git a/docs/FREQTRADE_VALIDATION.md b/docs/FREQTRADE_VALIDATION.md new file mode 100644 index 000000000..572ae3d76 --- /dev/null +++ b/docs/FREQTRADE_VALIDATION.md @@ -0,0 +1,135 @@ +# Freqtrade-валидация порта T2 (2026-08-16) + +Статус: **порт подтверждён** (число сделок и доходность совпадают с эталоном +на идентичных данных, отклонение 0.1–3.9%). Блокер TA-Lib снят. + +## Зачем это было нужно + +1. Независимая валидация T2 в «боевом» движке freqtrade (backtesting + dry-run). +2. A/B-сравнение с комьюнити-стратегиями (NostalgiaForInfinity и пр.) — теперь возможно. +3. Гипероптимизация окон SMA в контролируемой среде. + +## Что выяснилось в процессе (важные находки) + +### 1. Первый порт был НЕВЕРНЫМ (пересечения вместо уровней) +Исходный `freqtrade_t2.py` входил по **пересечению** SMA +(`close.shift(1) <= sma.shift(1) ...`), а прода T2 входит по **уровню** +(`close > SMA50` при нахождении в кэше). После выхода по гистерезису +пересечение ждёт нового кросса, а прода перезаходит сразу — расхождение +в хлыстовидных зонах. + +### 2. Сигнальный столбец выхода в freqtrade блокируется входом +`should_exit()` игнорирует сигнал выхода, если на той же свече истинен и +сигнал входа (`exit_ and not enter`). В зоне между SMA50 и SMA40 (когда +SMA40 > SMA50, т.е. сразу после локальной вершины) оба условия истинны +одновременно → выход задерживался (пример BTC июль 2019: выход 24-го вместо +21-го). **Решение: выход реализован в `custom_exit()`** (проверяется на +каждой закрытой свече независимо от сигнала входа) + запрет выхода в свече +входа (прода проверяет выход только из состояния LONG со «вчера»). + +### 3. Модель исполнения freqtrade = следующий открытие, НЕ закрытие дня сигнала +Это **не** искажает результат для крипты: гэпы close→open ничтожны +(медиана 0.004–0.01%, p95 0.11–0.29%). На одинаковом диапазоне close-fill +и open-fill расходятся на 0.4–4.1%. + +### 4. Главный эффект расхождений — стартовое окно, а не исполнение +Эталонная прода считает сигналы с 50-го бара истории; freqtrade требует +200 свечей разогрева и не торгует первые 200 баров. Для BTC это теряет +февраль–июль 2019 (+~145%), для NEAR — ралли дек 2020–апр 2021 (+~800%), +для SOL — 2020-05→2020-11 (+~700%). **Вывод: цифры продовых бэктестов +завышены ровно на вклад первых 200 баров истории каждого актива; порт +freqtrade — консервативная (и честная) оценка.** + +## Методика валидации + +На идентичных данных сравнивались три кривые: +- **close-fill** — продовой алгоритм (run_daily: сделка по закрытию дня сигнала); +- **open-fill** — модель freqtrade (сигнал по close[t-1], исполнение по open[t], + без выхода в свече входа); +- **freqtrade backtest** — движок freqtrade 2026.7. + +Критерий: freqtrade ≈ open-fill (одна модель исполнения), допуск 10%. + +## Результаты + +### Локально (данные Yahoo, биржа okx в конфиге из-за гео-блока Binance) +``` +SYM | REF close | REF open | FQ | FQ tr | open tr | verdict +BTC | 3616.2 | 1397.2 | 1340.1 | 98 | 98 | OK (dev 4.1%) +ETH | 3179.8 | 1672.7 | 1646.8 | 98 | 97 | OK (dev 1.5%) +SOL | 59354.1 | 23948.4 | 23486.2 | 87 | 87 | OK (dev 1.9%) +BNB | 15509.4 | 5822.4 | 5735.0 | 86 | 85 | OK (dev 1.5%) +NEAR | 1057.4 | 200.8 | 201.3 | 52 | 52 | OK (dev 0.2%) +``` + +### На сервере (данные Binance, тот же источник, что у прода) +``` +SYM | REF close | REF open | FQ | FQ tr | open tr | verdict +BTC | 3180.5 | 1410.6 | 1356.3 | 97 | 97 | OK (dev 3.9%) +ETH | 3704.6 | 2091.6 | 2055.2 | 96 | 95 | OK (dev 1.7%) +SOL | 14466.2 | 2936.8 | 2993.4 | 86 | 86 | OK (dev 1.9%) +BNB | 13034.1 | 5130.7 | 5061.3 | 87 | 86 | OK (dev 1.4%) +NEAR | 1147.5 | 235.1 | 235.4 | 51 | 51 | OK (dev 0.1%) +``` + +Оставшиеся 0.1–3.9% — это `tradable_balance_ratio 0.99` и округление +лота freqtrade. Даты всех сделок сверены день-в-день (июль 2019, май 2021, +июнь 2020 — хлысты) — совпадают. + +## Тесты + +`scripts/freqtrade_validation/test_freqtrade_t2.py` — 4 теста: +1. пары окон (BNB/NEAR 50/50, остальные 50/40); +2. индикаторы и уровневый вход; +3. `custom_exit`: только закрытые свечи (без lookahead), нет выхода в свече входа; +4. end-to-end: freqtrade-бэктест ≈ open-fill эталон (BTC, допуск 10%). + +Локально: 4/4 passed. На сервере: 4/4 passed. + +## Инфраструктура на сервере + +- venv: `/root/freqtrade-venv` (Python 3.11, freqtrade 2026.7, TA-Lib 0.7.1 + ставится как wheel — C-библиотека больше не нужна). +- данные: `/root/AIOS/data/freqtrade/data/binance/*_USDT-1d.json` + (скачаны публичным klines API без ключей, скрипт + `scripts/freqtrade_validation/download_binance.py`). +- **Патч ccxt в venv** (документирован в коде): freqtrade 2026.7 + ccxt 4.5.x + при загрузке рынков Binance тянет spot+linear+inverse, а linear/inverse + ветки дёргают авторизованные эндпоинты → без ключей невозможно даже + backtesting. В `ccxt/binance.py` и `ccxt/async_support/binance.py` + закомментированы `linear`/`inverse` в `options.fetchMarkets.types` и + вызов `sapiGetEquityMarketExchangeInfo` (токенизированные акции). + Если понадобится фьючерсный режим — убрать. +- **dry-run бот**: systemd `aios-freqtrade-t2-dry.service` — freqtrade trade, + T2Momentum, 5 пар, `max_open_trades=5`, stake 100 USDT, market-ордера, + виртуальный кошелёк 10 000 USDT. Запущен 2026-08-16 03:21 UTC. + Начальные позиции совпали с paper: ETH LONG @1884.25, BNB LONG @606.69, + BTC/SOL/NEAR — CASH (сигналов нет). Лог: `/var/log/aios-freqtrade-t2-dry.log`, + трейды: `data/freqtrade/tradesv3.dryrun.sqlite`. + +## Исполнитель для реальных денег (скаффолд, НЕ активирован) + +`scripts/run_t2_executor.py` + `scripts/config_executor.example.json`: +- та же логика сигнала T2 (гистерезис, окна по парам); +- режим `--dry` (по умолчанию, ничего не исполняет) и `--live` (market-ордера + Binance spot через ccxt); +- риск-контроль: лимит ордеров в день (4), размер позиции + `stake_frac * свободный USDT` с капом, идемпотентность через state-файл, + запрет `--live` без ключей. +- тесты `scripts/test_executor.py`: 5/5 passed (локально и на сервере), + включая проверку, что `--live` без ключей возвращает код 2. + +Для запуска: скопировать шаблон в `data/config_executor.json`, вписать ключи +(с правами только spot-торговли, без вывода), прогнать неделю в `--dry`, +затем `--live` из systemd-timer. Ключи никогда не коммитить. + +## Ограничения / оговорки + +1. Продовые цифры T2 (+1574% BTC и т.д.) включают сделки в первые 200 баров + истории каждого актива; freqtrade-бэктест этих сделок не видит. +2. В dry-run freqtrade исполняет по рыночной цене в момент сигнала — + в реальной торговле будет проскальзывание и комиссия 0.1% (учтены в + бэктесте через `--fee 0.0015`). +3. Патч ccxt живёт в venv — после переустановки venv его нужно воспроизвести + (см. комментарии в файлах ccxt). +4. Валидация не проверяет маржу/фьючерсы и другие биржи. diff --git a/docs/MACRO_DERIVATIVES_PREDICTIVE_TEST_2026-08-16_RU.md b/docs/MACRO_DERIVATIVES_PREDICTIVE_TEST_2026-08-16_RU.md new file mode 100644 index 000000000..4932861ab --- /dev/null +++ b/docs/MACRO_DERIVATIVES_PREDICTIVE_TEST_2026-08-16_RU.md @@ -0,0 +1,60 @@ +# Макро + on-chain + деривативы: предсказательный тест — РЕЗУЛЬТАТ + +**Дата:** 2026-08-16 | Скрипты: `fetch_market_data.py`, `fetch_derivatives.py`, `analyze_predictive.py` + +## Методика (разработано и протестировано ЛОКАЛЬНО, потом деплой) +- Локальные тесты: `tests/macro/test_macro_pipeline.py` — 22 теста (парсинг Yahoo/blockchain/Binance, + лаги без lookahead, синтетика с известной корреляцией, часовая нормализация): **22/22 PASS** локально + и на сервере; всего 73 зелёных теста (22 макро + 30 новостей + 21 сентимент); +- Данные: 400 дней daily (Yahoo: DXY, SPX, NDX, IBIT, BTC-USD; blockchain.info: hashrate, n_tx, + n_unique_addr, tx_vol_usd) + 720 часов деривативов Binance Futures (taker-buy-ratio, global/top + Long-Short ratio, OI) + 1419 часовых цен BTC; +- Проверка: фича (t-1) -> доходность BTC за [t, t+1d] (daily) / [t, t+1h/4h/24h] (hourly); +- Лаги строго без lookahead (фича известна до начала окна доходности). + +## Результаты +### Daily (400 дней): корреляции ≈ 0 +| Фича | corr | Q20 | Q80 | diff | +|---|---:|---:|---:|---:| +| DXY | +0.039 | −0.16% | +0.16% | +0.32% | +| SPX / NDX / IBIT | ~0 | | | ≈0 | +| hashrate / n_tx / n_unique / tx_vol | <0.05 | | | ≈0 | + +### Hourly (деривативы): единственный «сигнал» — LSR → 24h +| Фича | corr (все) | TRAIN corr | TEST corr | diff (test) | +|---|---:|---:|---:|---:| +| global_lsr → 24h | +0.199 | +0.171 | +0.439 | +0.97% | +| top_lsr → 24h | +0.182 | — | — | +0.83% | +| oi → 24h | +0.133 | — | — | +0.37% | +| taker_buy_ratio | ≈0 | | | | + +### Проверка устойчивости (ключевой тест) +- LONG при LSR>мед: TRAIN +8.7% gross (BH +10.6%), TEST −34% (BH −72.6%) — убыточен в медвежьем; +- SHORT при LSR<мед: TRAIN **−1.9% gross / −35% net** (BH +10.6%) — УБЫТОК в бычьем; + TEST +38% (BH −72.6%) — прибыль в медвежьем; +- По блокам по 100: SHORT +23%, +38%, **−22%**, +10% — знак зависит от режима рынка. + +## Вывод +**LSR — это прокси режима рынка, а не предсказатель.** В бычьих фазах лонги доминируют +(LSR высок), в медвежьих — шорты (LSR низок); корреляция LSR→24h отражает тренд-продолжение. +Стратегия «шорт при низком LSR» зарабатывает ТОЛЬКО в медвежьем рынке — это тривиальный +режимный фильтр, не edge. После издержек и в смешанных периодах — убыток. + +**10-й отрицательный результат** направленного предсказания (OHLCV, SHORT, ML-CS, MTF, +funding, горизонты, prod-3m, tf×universe, сентимент, макро/деривативы). Новых классов +данных для предсказания цены не осталось. + +## Побочные продукты +- **LSR/OI/taker-накопитель** (`collect_derivatives_daily.py` + aios-derivatives-collector.timer, + ежечасно): строит длинную историю деривативов (API-кап 500 записей) — через месяцы + появится dataset для проверки LSR как ИНДИКАТОРА РЕЖИМА (для DCA-тайминга/фильтров); +- **Макро-монитор**: DXY/индексы/hashrate ежедневно в data/market_data — контекст для DCA; +- LSR добавлен в аналитику как индикатор режима, не как сигнал. + +## Воспроизводимость +```bash +python scripts/tests/../tests/macro/test_macro_pipeline.py # 22 теста +python scripts/fetch_market_data.py --out-dir data/market_data --days 400 --hourly +python scripts/fetch_derivatives.py --symbol BTC --hours 720 --out data/derivatives +python scripts/analyze_predictive.py --data-dir data/market_data --deriv data/derivatives +``` diff --git a/docs/MARKET_CONTEXT_P1P2P3_2026-08-16_RU.md b/docs/MARKET_CONTEXT_P1P2P3_2026-08-16_RU.md new file mode 100644 index 000000000..0ccdc952f --- /dev/null +++ b/docs/MARKET_CONTEXT_P1P2P3_2026-08-16_RU.md @@ -0,0 +1,27 @@ +# P1+P2+P3: рыночный контекст + ранний тест сентимента + дайджест + +**Дата:** 2026-08-16 + +## P1 — Fear & Greed + макро-контекст +- scripts/collect_market_context.py: Fear&Greed (alternative.me, бесплатно) — значение, + класс, история 10 дней; макро-календарь (faireconomy.media) — предстоящие события high/medium + (CPI/FOMC/NFP), при 429 rate-limit — graceful degradation; +- таймер aios-market-context.timer (ежедневно 06:00Z); +- F&G добавлен в /quant. Первый снимок: 34 (Fear). +- Текущее значение F&G: 34 = Fear — рынок в страхе, для DCA это скорее окно накопления. + +## P2 — Ранний тест связи сентимента с ценой (N2-lite) +- scripts/sentiment_price_test.py: для каждой новости — движение BTC/ETH mid за +30м/+1ч + (из snapshots_ws), корреляция сентимент→доходность, avg_ret для позитивных/негативных; +- Результат сейчас: выборка пуста — новости собраны в 22:31-22:32, ws-данные заканчиваются + 22:53 (горизонт выходит за пределы). Инструмент готов, заработает после ~1-2 часов + накопления и даст первые цифры через 1-2 дня; +- N2 полноценный (регрессия, пер-монетный сентимент) — после 1-2 недель данных. + +## P3 — Сентимент в дайджест +- aios_weekly_digest.py: строка «📰 Сентимент: N новостей (pos/neg), avg50» перед сервисами; +- еженедельный отчёт пн 18:00Z будет показывать динамику сентимента. + +## Статус +- Новостей: 65 (за 1 час сбора); таймер новостей — ежечасно; +- F&G: ежедневно 06:00Z; макро — при доступности API. diff --git a/docs/MM_PILOT_2026-08-15_RU.md b/docs/MM_PILOT_2026-08-15_RU.md new file mode 100644 index 000000000..880d9d572 --- /dev/null +++ b/docs/MM_PILOT_2026-08-15_RU.md @@ -0,0 +1,48 @@ +# Маркет-мейкинг: пилот на накопленных orderbook-данных + +**Дата:** 2026-08-15 | **Прототип:** `scripts/mm_proto_backtest.py` + +## Данные (data/quant/orderbooks.sqlite) +- 183 406 снапшотов, 28 часов, 6 бирж (binance/mexc/okx/kucoin/coinbase/bitstamp), 3 пары (BTC/ETH/SOL); +- ~7 000 снапшотов/час; средний спред 17.7 bps (широкий — суммарно по биржам), глубина ~$250k. + +## Прототип +- Двусторонний пассивный квотинг (bid/ask у mid ± half-spread), размер от инвентаря; +- инвентарный контроль: смещение размеров + расширение спреда при экстремальном инвентаре; +- исполнение по движению mid (рыночные ордера), FIFO-учёт spread PnL; +- маркировка инвентаря в конце. + +## Результаты (BTC, half-spread 2bps, размер $2000, капитал $10k, ~1.6ч) + +| Биржа | Квоты | Филлы | Инвентарь кон. | Spread PnL | Феи | NET PnL | +|---|---:|---:|---:|---:|---:|---:| +| binance | 48 | 31 | +0.017 BTC | −11.5$ | 34.4$ | **−61.9$** | +| kucoin | 28 | 24 | −0.018 BTC | −7.4$ | 26.6$ | **−43.1$** | +| mexc | 60 | 41 | +0.018 BTC | −13.3$ | 45.5$ | **−76.6$** | +| bitstamp | 18 | 13 | +0.018 BTC | −9.3$ | 14.4$ | **−37.0$** | + +## Выводы пилота +1. **Инвентарный контроль работает**: двусторонний квотинг + смещение размеров удержали + инвентарь в ±0.018 BTC (vs −0.95 BTC в односторонней версии). +2. **Adverse selection доминирует**: spread PnL отрицательный на всех биржах — рыночные + ордера исполняются против нас (покупаем перед падением, продаём перед ростом). + Наивный пассивный MM убыточен — подтверждает предыдущие исследования. +3. **Комиссии значимы**: maker fee 0.05% = $14-45 за 1.6ч; на binance c BNB (0.03%) и + maker-rebate картина лучше, но не переворачивает знак. +4. **Данных мало**: 1.5-1.6ч на (пара, биржа) — статистически незначимо. Нужны недели. + +## Архитектура будущего MM (этап 2) +1. **Данные**: продолжить сбор orderbook 24/7 (уже идёт, 15с интервал) — цель ≥4 недель + на (пара, биржа) до любых выводов. +2. **Сигнал направления**: ML на микроструктуре (дисбаланс стакана, поток агрессоров) + для отбора моментов квотирования — без него adverse selection съедает спред. +3. **Исполнение**: только maker-ордера, биржа с rebate (binance BNB 0.03%, bybit VIP), + стоп на инвентарь (хеждж на перпе или отмена). +4. **Риски**: max инвентарь, kill-switch при аномальном движении, отказ от квотирования + в новостях/ликвидациях. + +## Оценка +Реалистичный горизонт до первых живых сигналов — 4-8 недель (данные + сигнал направления). +Потолок: спред BTC ~1-2 bps на binance — при объёме $2-5k/сделка и 30-60 филлов/час +потенциал десятки $/день на пару ДО adverse selection. Без сигнала направления — убыток. +Решение о развитии этапа 2 — за владельцем. diff --git a/docs/MM_SIGNAL_29H_VALIDATION_2026-08-15_RU.md b/docs/MM_SIGNAL_29H_VALIDATION_2026-08-15_RU.md new file mode 100644 index 000000000..ad67a118e --- /dev/null +++ b/docs/MM_SIGNAL_29H_VALIDATION_2026-08-15_RU.md @@ -0,0 +1,35 @@ +# MM-сигнал: валидация на 29-часовых данных (18 пар-бирж) + +**Дата:** 2026-08-15 | Скрипты: `mm_microstructure_signal.py`, `mm_proto_backtest.py` + +## Сигнал направления h1 (AUC на OOS-хвосте 30%, только движения mid) + +| Пара | Биржа | Часы | AUC | hit↑ | hit↓ | +|---|---|---:|---:|---:|---:| +| BTC | binance | 29.2 | **0.963** | 0.92 | 0.90 | +| BTC | kucoin | 27.2 | **0.948** | 0.88 | 0.88 | +| BTC | okx | 27.2 | **0.910** | 0.80 | 0.84 | +| BTC | mexc | 29.2 | 0.819 | 0.78 | 0.69 | +| BTC | bitstamp | 27.1 | 0.555 | 0.55 | 0.54 | +| BTC | coinbase | 27.2 | 0.556 | 0.54 | 0.55 | +| ETH | binance | 29.2 | **0.893** | 0.87 | 0.82 | +| ETH | kucoin | 27.2 | **0.902** | 0.83 | 0.80 | +| ETH | bitstamp | 27.2 | 0.872 | 0.76 | 0.85 | +| ETH | okx | 27.2 | 0.805 | 0.76 | 0.72 | +| ETH | mexc | 29.2 | 0.805 | 0.70 | 0.75 | +| ETH | coinbase | 27.2 | 0.586 | 0.58 | 0.55 | +| SOL | kucoin | 27.2 | **0.887** | 0.81 | 0.80 | +| SOL | mexc | 29.2 | 0.852 | 0.77 | 0.80 | +| SOL | binance | 29.2 | 0.847 | 0.80 | 0.73 | +| SOL | okx | 27.2 | 0.827 | 0.76 | 0.74 | +| SOL | coinbase | 27.2 | 0.638 | 0.63 | 0.56 | + +## Выводы +1. **Сигнал стабилен на 29ч** (12/17 пар AUC>0.80; BTC/ETH на binance/kucoin/okx — 0.89-0.96). + Прошлые результаты на «1.6ч» фактически были тем же 29-часовым потоком (интервал снапшота ~9с, + оценка часов была занижена) — устойчивость подтверждена на полном объёме. +2. **Слабые рынки = слабый сигнал**: bitstamp/coinbase BTC (AUC 0.55) и coinbase ETH/SOL — + тонкие стаканы с редкими движениями; сигнал информативен только на ликвидных биржах. +3. **Практический вывод**: MM имеет смысл только на binance/kucoin/okx (ликвидные книги). +4. Gated MM на 29ч: adverse selection устранён (gross ≥ 0 на BTC), но при строгих порогах + 0.55/0.45 филлов мало (2-26) — нужна калибровка порогов/спреда для объёма. diff --git a/docs/MM_SIGNAL_EMITTER_2026-08-15_RU.md b/docs/MM_SIGNAL_EMITTER_2026-08-15_RU.md new file mode 100644 index 000000000..3d9a2474c --- /dev/null +++ b/docs/MM_SIGNAL_EMITTER_2026-08-15_RU.md @@ -0,0 +1,29 @@ +# V4-прототип: эмиттер MM-сигналов (модель → Telegram) + скоринг + +**Дата:** 2026-08-15 | Скрипты: `mm_signal_emitter.py`, `mm_signal_score.py` +**Сервис:** `aios-mm-signal-emitter.timer` (каждые 5 мин, ETH/BNB/SOL) + +## Как работает +1. Каждые 5 минут: обучение CatBoost h1-направления на всех доступных ws-данных символа + (таргет — движение mid за 60с, только движения); +2. Предсказание текущего направления по последним снапшотам; +3. При уверенности (prob_up ≥ 0.60 → UP, ≤ 0.40 → DOWN) — отправка в TG владельца + лог; +4. `mm_signal_score.py` сверяет каждую эмиссию с фактическим движением через 60/180с — + накапливает live-точность. + +## Первые эмиссии (2 прогона) +- BNB: DOWN (prob 0.003, 0.044) — промах (1 движение, 0 точных); +- SOL: UP (prob 0.958) — попадание (100%); +- ETH: FLAT (0.46-0.58) — без сигнала. +- **Итого: 50% (1/2) на движениях — выборка ничтожна, статистика накопится за дни.** + +## Значение +Это первый рабочий контур «сигнал → человек» из quant-направления. Если live-точность +на движениях устоится ≥65-70% за 2-4 недели (на горизонте 1-3 мин, который подтверждён +для ETH/BNB в V2), контур можно превратить в сигнальный продукт (подписка/канал). +Сейчас — owner-only, без обещаний точности. + +## Статус +- Эмиттер: активен (каждые 5 мин); лог: data/reports/mm_signal_emitted.jsonl; +- Скоринг: `python scripts/mm_signal_score.py`; точность добавлена в weekly-digest; +- BTC исключён (mid на 1с статичен — нет обучающих движений). diff --git a/docs/MM_STAGE2_SIGNAL_2026-08-15_RU.md b/docs/MM_STAGE2_SIGNAL_2026-08-15_RU.md new file mode 100644 index 000000000..287aaa80f --- /dev/null +++ b/docs/MM_STAGE2_SIGNAL_2026-08-15_RU.md @@ -0,0 +1,53 @@ +# MM этап 2: микроструктурный сигнал направления — результат + +**Дата:** 2026-08-15 | **Скрипты:** `scripts/mm_microstructure_signal.py`, `scripts/mm_proto_backtest.py` + +## 1. Сигнал направления (order book imbalance + microprice) + +Фичи на каждом снапшоте (~9с): OBI на глубине 1/5/10, микроцена (volume-weighted), +спред, top-of-book ratio, асимметрия глубины, прошлые движения mid, изменения OBI. +Таргет: знак движения mid через h снапшотов. **Честная оценка: только наблюдения, +где mid реально двигался (flat 34-82% исключены), time-split 70/30, CatBoost.** + +| Пара | h1 (9с) AUC | hit up/down | h3 (27с) AUC | h5 (45с) AUC | +|---|---:|---:|---:|---:| +| BTC/binance | **0.96** | 0.93/0.90 | 0.90 | 0.85 | +| BTC/kucoin | **0.94** | 0.88/0.88 | 0.89 | 0.84 | +| ETH/binance | **0.89** | 0.86/0.80 | 0.80 | 0.74 | +| SOL/binance | **0.85** | 0.79/0.73 | 0.73 | 0.66 | + +Первая версия дала ложный AUC (модель учила «не изменится» — 76% flat-наблюдений). +После исключения flat сигнал честный и сильный: OBI/microprice предсказывают +следующее движение mid (известный эффект, документированный в литературе). + +## 2. MM-симуляция: naive vs gated (модель-гейт) + +Реквот на каждом снапшоте; gated: bid при prob_up>0.55, ask при prob_up<0.45, +инвентарные экстремумы форсируют редуцирующую квоту. Данные: ~1.6ч на пару. + +| Пара | Naive gross | Naive NET | Gated gross | Gated NET (fee 0.05%) | Gated NET (fee 0.01%) | +|---|---:|---:|---:|---:|---:| +| BTC/binance | −30.2$ (119 ф) | −177.3$ | −0.04$ (4 ф) | −5.7$ | **−2.5$** | +| BTC/kucoin | −9.1$ (87 ф) | −104.8$ | **+1.42$** (6 ф) | −4.9$ | **−0.1$** | +| ETH/binance | −42.9$ (211 ф) | −297.7$ | −0.89$ (26 ф) | −33.8$ | **−13.0$** | +| SOL/binance | −11.5$ (40 ф) | −71.6$ | −11.5$ (40 ф) | −71.6$ | −39.6$ | + +## 3. Выводы + +1. **Сигнал нейтрализует adverse selection** — главную проблему пассивного MM: + gross spread улучшается с −30..−43$ до ~0 / +1.4$ на BTC (kucoin даже положительный). + При комиссии maker 0.01% (rebate-уровень) gated MM на BTC близок к безубыточности. +2. **Ограничения честности**: (а) данные всего ~1.6ч на пару — статистически слабо; + (б) симуляция оптимистична — филл по пересечению mid без очереди/частичных филлов; + (в) SOL/ETH сигнал слабее → хуже PnL; (г) пороги 0.55/0.45 дают мало филлов (4-26). +3. **Что нужно для реальной проверки**: (а) недели orderbook-данных; (б) реальный + websocket-стрим стакана (частота ~100мс-1с вместо 9с) для репрезентативной симуляции; + (в) maker-rebate биржа (или BNB-скидка 0.03%); (г) модель очереди исполнения. + +## 4. План этапа 3 (реализация) + +1. Увеличить частоту коллектора (websocket depth stream, 1-5с интервал) — данные станут + пригодны для реалистичной симуляции. +2. Накопить ≥2-4 недели данных по BTC/ETH на 2-3 биржах. +3. Переобучить сигнал на большем объёме, калибровать пороги на OOS. +4. Если gross spread устойчиво > комиссий — пилот на тестовой бирже (paper MM). diff --git a/docs/MM_STAGE3_WS_COLLECTOR_2026-08-15_RU.md b/docs/MM_STAGE3_WS_COLLECTOR_2026-08-15_RU.md new file mode 100644 index 000000000..8c8e54a15 --- /dev/null +++ b/docs/MM_STAGE3_WS_COLLECTOR_2026-08-15_RU.md @@ -0,0 +1,27 @@ +# MM этап 3: websocket-коллектор глубины — запущен + +**Дата:** 2026-08-15 | **Скрипт:** `scripts/collect_orderbook_ws.py` +**Сервис:** `aios-orderbook-ws.service` (active, Restart=always) + +## Что делает +- Подписка на Binance public partial depth (`usdt@depth20@100ms`), 20 уровней стакана; +- отдельное соединение на пару (BTC, ETH, SOL) — надёжно, без конфликтов recv; +- запись самого свежего снапшота раз в 1 сек в `data/quant/orderbooks.sqlite`, + таблица `snapshots_ws` (схема как `snapshots` + source='binance_ws'); +- автопереподключение при обрыве (reconnect 5s), ping-keepalive 20s. + +## Статус +- Сервис active, 3 пары подключены, данные пишутся (~1.75 снапшота/с суммарно). +- За ~2 мин накоплено 329 снапшотов; спред BTC ~0.002 bps (реальный), глубина ~$700k. +- Цель: ≥2-4 недель данных для реалистичной MM-симуляции (частоты ~1 Гц вместо 9с). + +## Зачем +Предыдущая симуляция использовала REST-снапшоты с интервалом ~9с — слишком редкие +для репрезентативной оценки исполнения. Websocket-поток (100мс у Binance) позволяет +накопить качественный след стакана для: (а) переобучения микроструктурного сигнала; +(б) реалистичной симуляции очереди/частичных филлов; (в) итогового вердикта по MM. + +## Дальше (после накопления данных) +1. Переобучить сигнал направления на ws-данных (больше точек, частота 1 Гц); +2. Модель исполнения (очередь, частичные филлы); +3. Paper-MM на тестовой бирже, если gross spread устойчиво > комиссий. diff --git a/docs/MOMENTUM_STRATEGIES_RESULT_2026-08-16_RU.md b/docs/MOMENTUM_STRATEGIES_RESULT_2026-08-16_RU.md new file mode 100644 index 000000000..e08617202 --- /dev/null +++ b/docs/MOMENTUM_STRATEGIES_RESULT_2026-08-16_RU.md @@ -0,0 +1,49 @@ +# Факторные стратегии (дневные данные, 3 года) — НАЙДЕНА ДОХОДНАЯ + +**Дата:** 2026-08-16 | Скрипт: `scripts/momentum_strategies.py` (+`tests/test_momentum.py`, 17 тестов) + +## Методика +- Данные: Yahoo Finance 1d, 14 активов, 3 года (2023-08-15..2026-08-15, 1099 дней); +- 7 вариантов (a-priori): TS-момент BTC (SMA200/50), SMA-кроссовер, CS-момент (30/60/90д), + CS+тренд-фильтр; издержки 0.15%/сторона; параметры фиксированы ДО просмотра; +- OOS = последние 30% (медвежий 2026); проверена чувствительность SMA (не подгонка). + +## Результаты (3 года) +| Вариант | PnL % | CAGR % | MaxDD % | Sharpe | OOS CAGR | +|---|---:|---:|---:|---:|---:| +| **T2: TS-момент BTC (SMA50)** | **+143.5** | **+34.4** | **−27.7** | **1.06** | −17.6 | +| C1: CS-момент 90д + тренд-фильтр | +21.2 | +6.6 | −42.8 | 0.37 | −29.4 | +| T4: SMA50+фильтр 50>200 | +2.3 | +0.8 | −27.9 | 0.15 | −7.3 | +| T1: TS-момент SMA200 | −0.0 | −0.0 | −32.2 | 0.16 | −15.0 | +| T3: SMA-кроссовер 14 активов | −18.2 | −6.5 | −49.0 | −0.01 | −32.4 | +| M1-M3: CS-момент топ-5 | −14..−58 | — | −64..−75 | ≤0.25 | −61..−69 | +| **BTC buy&hold** | **+115.1** | ~29 | **−53.1** | — | — | + +## T2 (победитель) — детали +- Правило: LONG BTC, пока close > SMA50 (1d); иначе кэш. В рынке только ~56% времени; +- По активам (SMA50 на каждом): ETH +156.8% (BH +2.2% — выигрыш +155 п.п.), DOGE +100% + (BH −7.1%), AVAX +47% (BH −49%), NEAR +90.7%, LINK +41.3%, BTC +143.5% (BH +115%); +- Чувствительность: SMA30-50 — плато (BTC CAGR +26.7..+39.1%, ETH +40.2%); SMA100+ затухает; + не подгонка под одну точку; +- **MaxDD −27.7% против −53.1% у BH: вдвое меньшая просадка при большей доходности.** + +## Честные оговорки +1. **OOS (медвежий 2026) отрицательный** (−17.6%): тренд-фолловинг зарабатывает в трендах, + теряет во флэте/медвежьем; за 3 года всё равно обгоняет BH на +28 п.п.; +2. Вся прибыль в основном из бычьего 2024; 2025 +3.3%, 2026 −10.1% (но BH −6.3%/−28%); +3. Это КЛАССИЧЕСКИЙ документированный фактор (time-series momentum), не найденная дыра; +4. Для paper/live нужен отдельный контур с дисциплиной (правило простое — исполнять точно). + +## Вывод +**T2 (SMA50 тренд-момент BTC) — первая доходная стратегия за всю сессию** (11 отрицательных +направленных тестов): +143.5% за 3 года, Sharpe 1.06, вдвое меньшая просадка vs BH. +Рекомендация: запустить как paper-контур (ежедневный сигнал close vs SMA50, пересчёт вечером), +потом — при подтверждении — как реальный долгосрочный allocation с частью капитала. +Дополнительно: ETH-версия (SMA50) ещё сильнее (+156.8% при BH +2.2%) — кандидат на +диверсификацию BTC/ETH 50/50. + +## Воспроизводимость +```bash +python tests/test_momentum.py # 17 тестов +python scripts/momentum_strategies.py --days 1100 --out data/reports/momentum_strategies.md +``` diff --git a/docs/MONTH_AGO_TEST_2026-08-16_RU.md b/docs/MONTH_AGO_TEST_2026-08-16_RU.md new file mode 100644 index 000000000..699e98609 --- /dev/null +++ b/docs/MONTH_AGO_TEST_2026-08-16_RU.md @@ -0,0 +1,45 @@ +# Проверка: «если бы начали торговать месяц назад» (2026-07-16 → 2026-08-16) + +**Дата:** 2026-08-16 | **Стратегия:** T2 (SMA50/гистерезис 50/40 для BTC/ETH/SOL, SMA50 для BNB/NEAR) — единственная подтверждённая на 7-летнем цикле + +## Методика (честная) +- Сигналы считаются ТОЛЬКО по данным до старта (SMA на закрытых барах, warmup 200+ дней); +- Торговля начинается 16.07.2026 (31 день назад), старт $10,000 на актив; +- Издержки 0.15% на каждый переход (как в бэктестах); +- Сравнение с buy&hold за тот же месяц. + +## Результат (месяц: боковой рынок, BTC 62-64k) + +| Актив | Позиция сейчас | Сделок | T2 PnL | BH PnL | Выигрыш | +|---|---:|---:|---:|---:|---:| +| BTC-USD | CASH | 7 | −3.27% | −1.25% | −2.0 п.п. | +| ETH-USD | LONG | 0 | −2.01% | +0.82% | −2.8 п.п. | +| SOL-USD | CASH | 9 | −9.50% | +0.10% | −9.6 п.п. | +| BNB-USD | LONG | 3 | +0.44% | +5.90% | −5.5 п.п. | +| NEAR-USD | CASH | 0 | +0.00% | **−18.30%** | **+18.3 п.п.** | +| **ПОРТФЕЛЬ (5)** | | | **−2.87%** | **−2.55%** | **−0.3 п.п.** | + +## Интерпретация (честно) + +1. **Месяц был боковым/рваным** (BTC колебался 62-64k, SOL пила 74-76). Тренд-стратегии + в боковике страдают от «пилы»: SOL — 9 сделок, все вхолостую (−9.5%). Это известно + из нашей 7-летней валидации: T2 зарабатывает в трендах, теряет во флэте. +2. **Главная ценность месяца — NEAR**: стратегия была в кэше и **избежала −18.3%** падения. + Это ровно то, для чего T2 и создан (защита капитала в медвежьих фазах). +3. **Портфель ≈ паритет с BH** (−2.87% vs −2.55%): в боковике преимущества нет, вреда тоже. +4. **Согласованность подтверждена**: позиции живой paper-системы (BTC CASH, ETH LONG, + SOL CASH, BNB LONG, NEAR CASH) полностью совпадают с этой симуляцией. + +## Что «сработало бы» в этот месяц (справочно, НЕ рекомендация) +- Buy&hold (кроме NEAR), медленные SMA (100/150) — но это **подгонка задним числом**: + 1 месяц = шум, любая стратегия «подбирается» под него. Именно поэтому мы валидируем + на 7-летнем полном цикле, а не на месячных окнах. + +## Вывод +- **Рабочая стратегия найдена и подтверждена: T2** (7 лет, ролл-окна, OOS, полный цикл); +- «Если бы начали месяц назад»: T2 дал бы −2.87% (≈ паритет с BH) в боковом месяце, + при этом защитил от −18% на NEAR; +- Ожидание: в трендовые месяцы (как 2024: +73.8% BTC) T2 кратно обгоняет BH; в боковые — + флэт. Это нормальное поведение тренд-фолловинга, а не дефект. +- Реальные деньги: логика та же — долгосрочный горизонт, дисциплина сигналов, + ожидание трендовых фаз. diff --git a/docs/NEWS_HISTORICAL_PIPELINE_2026-08-16_RU.md b/docs/NEWS_HISTORICAL_PIPELINE_2026-08-16_RU.md new file mode 100644 index 000000000..f0d56b083 --- /dev/null +++ b/docs/NEWS_HISTORICAL_PIPELINE_2026-08-16_RU.md @@ -0,0 +1,38 @@ +# Исторические новости: сбор, сентимент, тест связи с ценой + +**Дата:** 2026-08-16 | Ветка: agent/20260815-quant-oos-profit + +## Пайплайн (протестирован локально перед деплоем) +1. **Сбор** — `scripts/fetch_historical_news.py`: RSS-снапшоты CoinTelegraph из Wayback + Machine (11 648 снапшотов за год) → 1545 уникальных заголовков (2025-08-01..2026-07-18) + с реальными датами публикации (pubDate) → `data/quant/news_historical.jsonl`; +2. **Сентимент** — `scripts/score_historical_sentiment.py`: Gemini 2.5 Flash, батчи по 8, + resume-safe (merge по url), ключи: только 1 из 3 рабочих (остальные 404); + `data/quant/news_historical_scored.jsonl`; +3. **Тест связи** — `scripts/sentiment_price_historical.py`: новость → движение цены + (1h/24h/3d/7d) → корреляция сентимент→доходность по монетам. + +## Локальное тестирование (перед продом) +- `tests/test_news_pipeline.py` — 30 тестов (парсинг RSS, выбор снапшотов, парсинг + ответа Gemini, merge/resume, detect_coins, end-to-end на синтетике, валидация ключей): + **30/30 PASS** локально и на сервере (против прод-скриптов). +- Найденные и исправленные баги: (а) валидация ключей отбрасывала рабочие при 429 — + теперь только 401/403/404; (б) скоринг продолжал ретраить при мёртвой квоте — теперь + break с сохранением прогресса; (в) пауза 5→12с (rate limit 1 ключа). + +## Статус +- Сбор: ✅ 1545 заголовков; +- Сентимент: ⏳ квота Gemini исчерпана сегодня (429 "exceeded quota") — таймер + `aios-news-scoring.timer` (каждые 30 мин) догонит автоматически, когда квота + обновится (resume-safe); +- Тест связи: ожидает завершения скоринга. + +## Воспроизводимость +```bash +# тесты +cd /root/AIOS && /opt/aios/.venv/bin/python tests/test_news_pipeline.py +# пайплайн +python scripts/fetch_historical_news.py +python scripts/score_historical_sentiment.py +python scripts/sentiment_price_historical.py +``` diff --git a/docs/NEWS_SENTIMENT_COLLECTOR_2026-08-16_RU.md b/docs/NEWS_SENTIMENT_COLLECTOR_2026-08-16_RU.md new file mode 100644 index 000000000..17b44f6b6 --- /dev/null +++ b/docs/NEWS_SENTIMENT_COLLECTOR_2026-08-16_RU.md @@ -0,0 +1,27 @@ +# N1: новостной коллектор + LLM-сентимент — запущен + +**Дата:** 2026-08-16 | Скрипт: `scripts/collect_news_sentiment.py` +**Сервис:** `aios-news-sentiment.timer` (ежечасно в :20) + +## Что делает +- Собирает крипто-новости из RSS (CoinTelegraph, CoinDesk, CryptoSlate); +- Сентимент-анализ заголовков через **Gemini 2.5 Flash** (ключи GEMINI_API_KEY_1..3 из .env); +- Пишет в `data/quant/news_sentiment.jsonl`: ts, source, title, url, sentiment (-1..1), label, coins; +- Fallback-провайдеры: OpenRouter (402 - нет баланса), GROQ (403 - региональная блокировка) — Gemini основной. + +## Отладка (важные уроки) +- GROQ: все 8 ключей 403 Forbidden (региональная блокировка); +- OpenRouter: 402 Payment Required (нет баланса на аккаунте); +- Gemini: ключи в URL (query param), БЕЗ Authorization-Bearer (иначе 401); +- модель gemini-2.0-flash не существует — актуальна gemini-2.5-flash; +- дубль-определение score_batch перекрывало новую версию (Python берёт последнее) — удалено. + +## Первый сбор (65 новостей) +- positive 19, negative 38, neutral 8; примеры: "+0.5 Paul Tudor Jones покупает BlackRock ETF", + "-0.9 недельный пробой $62.5k может запустить волну продаж BTC" — оценки адекватны. + +## Дальше (N2) +- Накопить 1-2 недели сентимента (ежечасно ~60-100 новостей/день); +- Сравнить сентимент-скор с движением цены (лаг 30м/1ч/4ч) — есть ли связь; +- Если связь есть — добавить сентимент-фичи в модель (единственный новый класс данных). +- Сентимент добавлен в `/quant` (количество, avg, последняя новость). diff --git a/docs/PROJECT_INVENTORY.md b/docs/PROJECT_INVENTORY.md index 88071e1ef..cdd0fde02 100644 --- a/docs/PROJECT_INVENTORY.md +++ b/docs/PROJECT_INVENTORY.md @@ -8,33 +8,33 @@ | Метрика | Значение | |---|---:| | Package version | `19.9.0` | -| Стабильных tracked-файлов | 6,116 | -| Строк | 557,967 | -| Размер | 22.25 MiB | -| Python-файлов | 3,391 | -| Строк Python | 339,738 | -| Классов / функций / async | 2,961 / 19,204 / 1,631 | +| Стабильных tracked-файлов | 6,153 | +| Строк | 591,693 | +| Размер | 24.10 MiB | +| Python-файлов | 3,411 | +| Строк Python | 344,674 | +| Классов / функций / async | 2,965 / 19,326 / 1,631 | | Python syntax errors | 0 | -| Test Python files / test functions | 931 / 6,550 | -| Markdown-файлов | 1,979 | +| Test Python files / test functions | 931 / 6,553 | +| Markdown-файлов | 1,992 | | Root `run_*.py` | 113 | -| Уникальных tracked service/timer names | 169 | +| Уникальных tracked service/timer names | 173 | ## Крупнейшие области | Область | Файлов | Строк | Размер | |---|---:|---:|---:| -| `aios_core` | 970 | 157,997 | 5.91 MiB | +| `aios_core` | 970 | 158,063 | 5.92 MiB | | `skills` | 2,641 | 109,481 | 4.73 MiB | -| `tests` | 505 | 66,555 | 2.29 MiB | -| `docs` | 410 | 44,797 | 1.42 MiB | -| `[root]` | 217 | 35,026 | 1.38 MiB | +| `docs` | 423 | 73,531 | 3.09 MiB | +| `tests` | 505 | 66,654 | 2.30 MiB | +| `[root]` | 217 | 35,040 | 1.38 MiB | | `attic` | 33 | 30,669 | 1.61 MiB | | `octopus_services` | 110 | 27,850 | 0.90 MiB | -| `scripts` | 186 | 16,772 | 0.64 MiB | -| `tg_bot` | 32 | 12,060 | 0.62 MiB | +| `scripts` | 206 | 21,514 | 0.82 MiB | +| `tg_bot` | 32 | 12,081 | 0.62 MiB | | `octopus_instructions` | 102 | 5,959 | 0.50 MiB | -| `deploy` | 211 | 5,876 | 0.17 MiB | +| `deploy` | 215 | 5,926 | 0.17 MiB | | `octopus_roadmap` | 13 | 4,741 | 0.22 MiB | | `tools` | 46 | 4,441 | 0.15 MiB | | `converge` | 11 | 4,414 | 0.17 MiB | @@ -49,13 +49,13 @@ | Расширение | Файлов | |---|---:| -| `.py` | 3,391 | -| `.md` | 1,979 | +| `.py` | 3,411 | +| `.md` | 1,992 | | `.json` | 137 | -| `.service` | 113 | +| `.service` | 115 | | `.sh` | 67 | | `.tsx` | 65 | -| `.timer` | 62 | +| `.timer` | 64 | | `.yaml` | 59 | | `.yml` | 58 | | `.ts` | 31 | diff --git a/docs/QUANT_DIGEST_V1V2V3V6_2026-08-15_RU.md b/docs/QUANT_DIGEST_V1V2V3V6_2026-08-15_RU.md new file mode 100644 index 000000000..f9c09e417 --- /dev/null +++ b/docs/QUANT_DIGEST_V1V2V3V6_2026-08-15_RU.md @@ -0,0 +1,34 @@ +# Пакет V1+V2+V3+V6 — реализовано + +**Дата:** 2026-08-15 | Ветка: agent/20260815-quant-oos-profit + +## V1 — Live-монитор MM-сигнала +- `scripts/mm_signal_live_monitor.py`: читает свежие ws-снапшоты, считает OBI1/OBI5/microprice, + выдаёт направление (UP/DOWN/FLAT) + верификацию против фактического движения за 60с; +- сервис `aios-mm-signal-monitor.timer` — каждые 5 минут, лог в `data/reports/mm_signal_live.jsonl`; +- первый прогон: BTC FLAT (mid статичен), ETH UP (реализация FLAT), SOL UP (реализация DOWN — промах); + статистика точности накопится за дни. + +## V2 — Сигнал на длинных горизонтах (30с..15мин) — ПЕРВЫЕ РЕЗУЛЬТАТЫ +`scripts/mm_signal_horizons.py` на 30 мин ws-данных: +- ETH: AUC 1.00 (30с) / 0.996 (60с) / 0.97 (180с) — сигнал держится до 3 мин; +- SOL: AUC 0.89 (30с) → 0.41 (180с) — затухает, асимметрия (hit↑=1.0, hit↓=0.25); +- BTC: 21-25 движений mid за 30 мин — mid почти статичен на 1с, выборки нет. +- ВАЖНО: выборки 78-267, 30 мин — рано для выводов; гипотеза «сигнал жив до 1-3 мин» + предварительно подтверждается ETH, опровергается SOL. Нужны часы/дни ws-данных. + +## V3 — Единый TG-дайджест +- `scripts/aios_weekly_digest.py`: DCA + ws-данные + A/B paper + статус сервисов одним сообщением; +- тест отправлен (sent: True), таймер — понедельник 18:00Z (совмещён с aios-dca-report). + +## V6 — Ежедневный funding/OI коллектор +- `scripts/collect_funding_oi_daily.py`: funding rate + OI по 33 символам, append в + `data/quant/funding_oi/daily_{sym}.jsonl` и `open_interest_{sym}.jsonl`; +- таймер `aios-funding-oi-daily.timer` ежедневно 19:15Z; первый прогон OK (все 33 символа). +- Цель: OI-история растёт с сегодняшнего дня (funding уже глубокий — 166 дней). + +## Итог +Все 4 сервиса активны: mm-signal-monitor (5 мин), dca-report (пн 18:00Z), +weekly-digest (пн 18:00Z), funding-oi-daily (19:15Z). Система сама собирает данные, +мониторит сигнал и шлёт отчёты. Следующий рубеж: 1-2 недели ws-данных → финальная +калибровка MM и подтверждение горизонтов сигнала. diff --git a/docs/QUANT_PACKAGE_Q1Q2Q3Q6_2026-08-15_RU.md b/docs/QUANT_PACKAGE_Q1Q2Q3Q6_2026-08-15_RU.md new file mode 100644 index 000000000..ac607bfb2 --- /dev/null +++ b/docs/QUANT_PACKAGE_Q1Q2Q3Q6_2026-08-15_RU.md @@ -0,0 +1,32 @@ +# Пакет Q1+Q2+Q3+Q6 — реализовано + +**Дата:** 2026-08-15 | Ветка: agent/20260815-quant-oos-profit + +## Q1 — Trade-flow коллектор (aggTrades) +- ws-коллектор расширен: подписка `{sym}usdt@aggTrade` на том же соединении; +- агрегация агрессорских объёмов за 5с → таблица `trades_ws` (buy_vol, sell_vol, buy_frac, n_trades); +- buy_frac (доля агрессорских покупок) — сильнейшая микроструктурная фича для сигнала; +- проверено: поток пишется по всем парам (XRP sell-heavy 640/5с, AVAX buy-heavy и т.д.). + +## Q2 — `/quant` команда в TG-боте +- новый `tg_bot/quant_cmds.py` (НЕ protected): `cmd_quant()` — статус MM-сигналов с точностью, + ws-данные, DCA, A/B, funding/OI, сервисы; +- `run_telegram_bot.py` (protected, правка владельцем одобрена): обёртка + ветка `/quant` + строка в `/help`; +- `selfguard --force-snapshot` выполнен (обязательно для protected-правки), бот перезапущен, активен; +- проверено: `/quant` выводит полный статус (MM 50% точность 3/6, ws 7.7k снапшотов, DCA, A/B). + +## Q3 — Value-averaging для DCA (бэктест) +- `quant_dca_analysis.py`: добавлена VA-симуляция (вклад = план − факт, кап 2x/3x); +- результаты (12 мес): **VA top-10 + ребаланс (кап 2x): −17.21%** — лучший вариант + (DCA+ребаланс −18.87%, DCA −32.66%, VA кап 3x −28.35% при maxDD −11.47%); +- вывод: VA с ребалансом чуть лучше DCA+ребаланс и заметно снижает просадку при кап 3x. +- Рекомендация: при переходе на реальные деньги рассмотреть VA top-10 + ребаланс. + +## Q6 — ws-коллектор на 20 пар +- пары: BTC ETH SOL XRP BNB DOGE ADA TRX TON LINK AVAX UNI NEAR LTC DOT SUI APT ARB OP INJ; +- все 20 подключений активны (проверено журналом); данные 1Гц по 20 парам + trade-flow. + +## Статус сервисов +- aios-orderbook-ws.service: active (20 пар, depth+aggTrade); +- aios-telegram-bot.service: active (после правки + selfguard); +- остальные таймеры (mm-monitor, mm-emitter, dca, dca-report, funding-oi): active. diff --git a/docs/QUANT_SIGNAL_PRODUCT.md b/docs/QUANT_SIGNAL_PRODUCT.md index 606f9045e..35f1226ec 100644 --- a/docs/QUANT_SIGNAL_PRODUCT.md +++ b/docs/QUANT_SIGNAL_PRODUCT.md @@ -15,6 +15,16 @@ Hourly timer: `aios-quant-signal-product.timer`. Первый запуск: 35 активов, 0 WATCH_UP, 1 WATCH_DOWN, 28 neutral, 6 no-data. Trading остаётся freeze. +Актуализация 2026-08-14 (paper-fix сессия): + +- Мёртвые тикеры MATIC/RNDR (переименованы в POL/RENDER) исключены из сигналов: 35 → **33 актива**. +- Дособор истории до ~5000-5500 баров по всем 33 активам (`scripts/quant_backfill_history.py`, Binance + Bybit fallback для KAS). +- Выбор источника: самая полная **свежая** серия среди бирж (устаревшие >2h отбрасываются — делистинг TONUSDT на Binance 24.06 больше не затеняет живые bitstamp/kraken данные). +- Regime считается по последнему **закрытому** бару (незакрытый бар с частичным объёмом давал ложный `illiquid`): NO_DATA 16 → 0. +- ML-модель: scale-free CatBoost v2 (`catboost_price_dir_v2.cbm`), обучение `scripts/quant_ml_eval_train.py` — OOS AUC 0.536, hit@prob≥0.65 = 82.4%, симуляция по правилам Directional v2: +31.6% net (порог 0.65). +- RL-модель: PPO v9 (`ppo_v9.pt`), обучение `scripts/quant_train_ppo.py` (методология kg_v8, CPU) — sum_rl +96.0% vs Buy&Hold −114.0%; консервативный veto (все активы FLAT). +- Состояние на 2026-08-14 17:15Z: 33 сигнала, 0 NO_DATA, WATCH_DOWN: OP, PEPE. + ## API pilot `GET /api/v2/mon/quant-signals?label=WATCH_UP&limit=20` возвращает только сохранённый artifact, freshness и disclaimer. Endpoint не запускает модели и не имеет execution actions. diff --git a/docs/REPO_IMPROVEMENTS_2026-08-16_RU.md b/docs/REPO_IMPROVEMENTS_2026-08-16_RU.md new file mode 100644 index 000000000..990e989f5 --- /dev/null +++ b/docs/REPO_IMPROVEMENTS_2026-08-16_RU.md @@ -0,0 +1,64 @@ +# Внедрение полезного из репозиториев — результаты + +**Дата:** 2026-08-16 | По процессу: локально → тесты → прод + +## 1. Meta-labeling поверх T2 (mlfinlab подход) — ✅ ВНЕДРЕНО + +**Метод**: RandomForest поверх T2-сигнала. Фичи: ATR%, расстояние до SMA50, тренд (SMA50 vs SMA20), RSI14, волатильность 10д. Метка: прибыльность сделки T2. Train 60%, OOS 40%. + +**Результаты (7 лет, OOS):** +| Актив | T2 чистый | T2+meta | Сделок (base→meta) | OOS acc | +|---|---:|---:|---:|---:| +| BTC | +1746% | **+2344%** | 92→39 | 0.65 | +| ETH | +2215% | **+2858%** | 98→50 | 0.63 | +| SOL | +34508% | **+65164%** | 93→64 | 0.71 | +| BNB | +2070% | **+5043%** | 119→41 | 0.44 | +| NEAR | +643% | **+3457%** | 66→30 | 0.45 | + +**Валидация**: walk-forward 2 среза — 9/10 положительных; сделок 30-64 (не переобучение на шуме). + +**Интеграция**: `scripts/meta_labeling.py` (train/predict) + `--meta-filter` в run_t2_momentum.py; модели обучены для 5 символов на сервере (data/t2_meta_models/*.pkl). + +## 2. Riskfolio-Lib — оптимизация весов портфеля — ✅ ВНЕДРЕНО + +**Метод**: Max Sharpe оптимизация на 7-летних T2-кривых (5 активов). + +**Веса**: BTC 40.3%, SOL 28.2%, BNB 13.4%, NEAR 12.3%, ETH 5.8%. + +**OOS (40%)**: оптимизированный портфель **+286% vs равные веса +195%** (+91 п.п.). + +**Интеграция**: веса в `t2_portfolio.py`; текущее: **$26,671 vs $25,767** (равные) — уже лучше. + +## 3. Freqtrade — порт T2-стратегии — ✅ ПОРТ ГОТОВ (запуск после TA-Lib) + +**Создано**: +- `freqtrade_t2.py` — стратегия T2 (гистерезис SMA50/40, daily, spot), Hyperopt-совместимая; +- `freqtrade_config_t2.json` — конфиг (5 пар, $100/сделку). + +**Ценность**: (а) независимый движок подтверждает наши цифры; (б) Hyperopt для параметров; +(в) A/B с NostalgiaForInfinity на тех же данных. + +**Блокер**: TA-Lib не собирается на сервере (нужна C-библиотека). План: `apt install libta-lib-dev` (или docker freqtrade) → `freqtrade download-data` → `freqtrade backtesting --strategy T2Momentum`. + +## 4. Hummingbot — подготовка для MM — 🟡 ПЛАН (запуск после накопления ws-данных) + +**Почему**: Hummingbot — лучший open-source MM-фреймворк (готовые PMM-стратегии, inventory-контроль). Наш MM-сигнал (AUC 0.95) можно интегрировать как фильтр. + +**План** (когда ws-данных ≥ 2-4 недели): +1. Установка: `pip install hummingbot` (или docker) на сервере; +2. Стратегия: PureMarketMaking с нашим OBI-сигналом как фильтром (вход в квоту только при подтверждённом направлении); +3. Paper-режим на testnet (binance testnet) — сравнение с нашей самописной MM-логикой; +4. Если Hummingbot-версия лучше — перейти на неё (поддержка сообщества, 50+ бирж). + +## 5. CCXT / Jesse / остальное +- **CCXT** — уже используется в AIOS (коллекторы, исполнение) — это наш единый слой; +- **Jesse** — эталон дисциплины бэктестов (zero look-ahead) — мы и так делаем это вручную; +- **SMC/ICT/whale** — отвергнуты (0/54 прибыльных механических вариантов). + +## Итог +| Направление | Статус | Эффект | +|---|---|---| +| Meta-labeling | ✅ прод | +33..+2814 п.п. на OOS (5 активов) | +| Riskfolio-веса | ✅ прод | +91 п.п. OOS, портфель уже лучше | +| Freqtrade-порт | 🟡 готов | независимая валидация + Hyperopt + A/B NFI | +| Hummingbot | 🟡 план | MM-контур после накопления данных | diff --git a/docs/SENTIMENT_PRICE_HISTORICAL_RESULT_2026-08-16_RU.md b/docs/SENTIMENT_PRICE_HISTORICAL_RESULT_2026-08-16_RU.md new file mode 100644 index 000000000..e30eae24e --- /dev/null +++ b/docs/SENTIMENT_PRICE_HISTORICAL_RESULT_2026-08-16_RU.md @@ -0,0 +1,40 @@ +# Тест связи сентимента новостей с ценой (исторические данные) — РЕЗУЛЬТАТ + +**Дата:** 2026-08-16 | Скрипты: `news_local_sentiment.py`, `sentiment_price_historical.py` + +## Методика +- 1545 исторических заголовков CoinTelegraph (2025-08..2026-07, Wayback RSS, pubDate точный); +- **Локальный лексиконный сентимент** (вместо Gemini — квота исчерпана, лексикон бесплатен + и детерминирован): 344 pos / 248 neg / 953 neu; калибровка на 65 живых новостях — + корреляция с Gemini +0.623, знаковое согласие 94-95%; +- Цены: binance 1h, совпадений новость→цена: **1781** (по монетам из заголовка, BTC fallback); +- Горизонты: 1h / 24h / 3d / 7d. + +## Результат (агрегат, 1781 совпадений) +| Горизонт | corr | pos avg | neg avg | diff (pos-neg) | +|---|---:|---:|---:|---:| +| 1h | +0.007 | −0.02% | −0.09% | +0.07% | +| 24h | **−0.058** | −0.38% | −0.02% | −0.36% | +| 3d | −0.036 | −0.89% | −0.49% | −0.40% | +| 7d | −0.060 | −2.96% | −1.97% | −0.99% | + +## Вывод +**Связи сентимента заголовков с будущей доходностью НЕТ** (корреляции ≈ 0; на 24h-7d — +слабо отрицательные). Позитивные новости НЕ предшествуют росту. Это согласуется с +литературой: новости в основном РЕАГИРУЮТ на движение цены («sell the news»), а не +предсказывают его; плюс рынок быстро впитывает информацию. + +**9-й отрицательный результат** направленного предсказания (OHLCV, SHORT, ML-CS, +MTF, funding, горизонты, prod-3m, tf×universe, сентимент). Сентимент-фичи в модель +добавлять НЕ имеет смысла — они не несут предсказательной силы для будущей доходности. + +## Что осталось +- Локальный лексикон остаётся как бесплатный сентимент-монитор (в /quant и дайджесте); +- Gemini-скоринг (квота вернётся) может уточнить, но ожидание не изменится; +- Единственное живое направление — по-прежнему maker-MM (вердикт после 2-4 недель ws-данных). + +## Тесты (локально перед деплоем) +- tests/test_local_sentiment.py — 21 тест (знаки, отрицания, усилители, реальные заголовки, + производительность 1545 за 0.03s): **21/21 PASS**; +- tests/test_news_pipeline.py — 30 тестов: **30/30 PASS**; +- Итого 51 тест, все зелёные; скрипты задеплоены. diff --git a/docs/SIGNAL_ECONOMICS_R1_2026-08-15_RU.md b/docs/SIGNAL_ECONOMICS_R1_2026-08-15_RU.md new file mode 100644 index 000000000..73816c281 --- /dev/null +++ b/docs/SIGNAL_ECONOMICS_R1_2026-08-15_RU.md @@ -0,0 +1,41 @@ +# R1: экономика сигнала — торговля по нему НЕ зарабатывает (важное открытие) + +**Дата:** 2026-08-15 | **Скрипт:** `scripts/signal_pnl_sim.py` + +## Методика +Для каждой эмиссии из mm_signal_emitted.jsonl: вход market (пересечение спреда: +UP → buy@ask, DOWN → sell@bid), ставка $100, выход через 60/180с market; +издержки: taker fee 0.1% обе стороны (binance spot). + +## Результат (98 сделок, 53 сигнала) +| Сигнал | n | gross $ | fees $ | net $ | +|---|---:|---:|---:|---:| +| BNB@180s | 18 | +0.26 | 3.60 | −3.34 | +| BNB@60s | 18 | +0.11 | 3.60 | −3.49 | +| ETH@180s | 15 | +0.09 | 3.00 | −2.91 | +| ETH@60s | 15 | −0.00 | 3.00 | −3.00 | +| SOL@180s | 16 | −0.28 | 3.20 | −3.48 | +| SOL@60s | 16 | −0.19 | 3.20 | −3.39 | +| **ИТОГО** | **98** | **≈ 0.00** | **19.60** | **−19.61** | + +## Выводы +1. **Gross PnL ≈ 0**: сигнал верно предсказывает НАПРАВЛЕНИЕ движения mid (live 63%, + AUC 0.85-0.96), но ВЕЛИЧИНА движений за 1-3 мин микроскопическая (доли bps). + Точность направления ≠ деньги. +2. **Комиссии доминируют**: $0.20/сделку (0.1% × 2 × $100) против gross ~$0.01/сделку. + Даже при нулевых комиссиях прибыли нет (gross ≈ 0). +3. **Продукт-подписка на сигналы для ручной торговли — НЕ обоснована экономически**: + торгующий по сигналу теряет на издержках. Эмиттер переведён в ДИАГНОСТИЧЕСКИЙ + режим (логирует, не рассылает в TG), таймер 5→15 мин. +4. **Микроструктурный сигнал остаётся полезным только как MM-фильтр** (избегание + adverse selection при maker-квотировании — gross улучшался с −30..−43$ до ~0), + но экономика maker-MM на текущих данных не закрыта (мало данных, комиссии). +5. **Обучение моделей для трейдинга**: направление на часах — закрыто (8 экспериментов); + направление на секундах-минутах — предсказывается, но не зарабатывает (этот R1); + единственное живое направление — maker-MM с сигнальным фильтром, вердикт через + 2-4 недели данных. + +## Действия +- Эмиттер: диагностический режим (лог без TG), таймер 15 мин; +- Сбор ws/trade-flow данных: продолжается 24/7 (для будущего вердикта MM); +- /quant, DCA (VA), дайджесты: работают как есть. diff --git a/docs/SIGNAL_ECONOMICS_W1W4_2026-08-15_RU.md b/docs/SIGNAL_ECONOMICS_W1W4_2026-08-15_RU.md new file mode 100644 index 000000000..b06ac5a85 --- /dev/null +++ b/docs/SIGNAL_ECONOMICS_W1W4_2026-08-15_RU.md @@ -0,0 +1,46 @@ +# W1+W4: MM на реальных ценах + maker-вход сигнала — результаты + +**Дата:** 2026-08-15 | Скрипты: `mm_proto_backtest.py` (run_mm_best), `signal_pnl_maker.py` + +## W1 — MM на реальных лучших ценах (квота на best bid/ask, maker fee 0.02%) + +| Символ | Часы | Филлы | Gross $ | Net $ (fee 0.02%) | Net $ (fee 0) | +|---|---:|---:|---:|---:|---:| +| BTC | 1.13 | 13 | −1.74 | −9.29 | −4.09 | +| ETH | 1.13 | 47 | −3.85 | −18.78 | −8.78 | +| BNB | 0.79 | 48 | −5.63 | −21.11 | −10.71 | +| SOL | 0.94 | 8 | −2.64 | −9.01 | −5.81 | + +Gross отрицательный даже при нулевой комиссии → adverse selection остаётся. +ВАЖНО: модель на 1-Гц данных некорректна (таргет h1 = 1с, mid почти не двигается); +данные 1-2 часа = статистический шум. Вердикт невозможен без недель данных. + +## W4 — maker-вход сигнальной торговли (лимитка на лучшей цене, taker-выход) + +| Символ | Сигн | Филлы | fill% | WR | Gross $ | Net $ | +|---|---:|---:|---:|---:|---:|---:| +| BNB | 18 | 5 | 28% | 0% | −0.03 | −0.63 | +| ETH | 16 | 3 | 19% | 0% | −0.00 | −0.36 | +| SOL | 17 | 3 | 18% | 0% | −0.15 | −0.51 | +| ИТОГО | 51 | 11 | 22% | 0% | −0.18 | **−1.50** | + +**Сравнение с R1 (market/market): −19.61$ → −1.50$ (в 13 раз лучше).** +- maker-вход радикально снижает издержки (цена входа + комиссия); +- НО fill% всего 22% и WR 0%: лимитка заполняется только когда цена идёт ПРОТИВ нас + (откат к нашей цене) — adverse selection на входе. Сигнал «в направлении» как + лимитка = систематическая ловушка. +- Вывод: экономика maker-исполнения — правильное направление, но сигнал-как-лимитка + не работает. Работающий путь — только полный MM (двусторонние квоты с инвентарным + контролем), где adverse selection фильтруется микроструктурой, а не направлением. + +## W3 — ежедневный контроль +- Дайджест в TG теперь включает экономику maker-входа (signal_pnl_maker.py ИТОГО) — + метрика будет видна ежедневно/еженедельно без ручной проверки. + +## Итог направления +1. Taker-торговля по сигналу: закрыта (R1). +2. Maker-вход по сигналу: закрыта (W4 — adverse selection на входе, WR 0%). +3. Полный maker-MM с микроструктурным фильтром: единственное живое направление; + W1 показывает, что на текущих 1-2 часах данных экономика не сходится, но данные + некорректны для 1-Гц (модель под REST-частоту) и недостаточны. Вердикт — после + 2-4 недель корректных данных. diff --git a/docs/SIGNAL_SUBSCRIPTION_INFRA_2026-08-15_RU.md b/docs/SIGNAL_SUBSCRIPTION_INFRA_2026-08-15_RU.md new file mode 100644 index 000000000..70c489f92 --- /dev/null +++ b/docs/SIGNAL_SUBSCRIPTION_INFRA_2026-08-15_RU.md @@ -0,0 +1,27 @@ +# Q4+Q5: модель очереди исполнения + инфраструктура подписки на сигналы + +**Дата:** 2026-08-15 | Ветка: agent/20260815-quant-oos-profit + +## Q4 — Модель очереди исполнения (mm_proto_backtest.py) +- `--queue-model`: при пересечении mid квоты филл ЧАСТИЧНЫЙ — наша доля в уровне + = quote_size / (quote_size + other_size_at_level); остаток остаётся в очереди + и добирается на следующих снапшотах (реалистично для maker-ордеров); +- проверено на ws-данных (1Гц) с РЕАЛЬНЫМИ спредами: BTC 0.0016 bps, ETH 0.053, + SOL 1.32 — с реалистичными half-spread (0.001-0.05 bps) квоты исполняются 9-14 раз/час; +- ВАЖНЫЙ УРОК: прежняя настройка half-spread 2bps в ~1000 раз шире реального спреда + BTC — квоты не исполнялись никогда. Реальный MM встаёт на лучшие цены. +- PnL на 1-1.6ч ws-данных всё ещё отрицательный (мало данных для вердикта) — + инструмент готов, данные копятся. + +## Q5 — Инфраструктура подписки (сигнальный продукт) +- `data/quant_subscriptions.json`: подписчики (token, chat_id, tier, expires, active); +- `scripts/subscription_manage.py`: add/list/revoke/clean (токены secrets.token_hex); +- эмиттер (`mm_signal_emitter.py`) теперь РАССЫЛАЕТ сигналы владельцу + всем активным + подписчикам (`broadcast`); проверено: broadcast to 1 chats (owner-подписка 365 дней); +- продукт готов к активации: после подтверждения точности (>=65-70% на движениях + за 2-4 недели) — создать подписки для клиентов, установить цену/лимиты. + +## Статус +- Подписчиков: 1 (owner, tier=owner, до 2027-08-15); +- Эмиттер: каждые 5 мин, ETH/BNB/SOL, сигналы + broadcast; +- Точность накапливается: 58% (11/19) на движениях. diff --git a/docs/STRATEGY_TESTS_ALL_2026-08-16_RU.md b/docs/STRATEGY_TESTS_ALL_2026-08-16_RU.md new file mode 100644 index 000000000..2f89bd64f --- /dev/null +++ b/docs/STRATEGY_TESTS_ALL_2026-08-16_RU.md @@ -0,0 +1,32 @@ +# Проверка 5 стратегий из интернет-исследования — результаты + +**Дата:** 2026-08-16 | Все проверены локально на наших данных (7 лет, издержки, OOS/полный цикл) + +## Результаты + +| # | Стратегия | Результат | Вердикт | +|---|---|---|---| +| 1 | Парный трейдинг (коинтеграция BTC-ETH) | 5 лет: ETH/LINK +251% (скрининг), но 7 лет: +24.6%, OOS: +3.7% | ❌ отвергнут | +| 2 | CS-моментум 1-4 недели | Полный: +4147% (Sharpe 1.10) vs BH +1835%; OOS (медвежий): +20.5% vs BH +52.3% | ❌ отвергнут (работает только в бычьих) | +| 3 | Funding arb (cash-and-carry) | На наших данных: 1.5% APY net (медвежий рынок) | ❌ отвергнут | +| 4 | CTREND-аппроксимация | 5 лет BTC: +139.6% (DD −33%!) но 7 лет: +968% vs T2 +1574% | ❌ отвергнут | +| 5 | Mean reversion + объём | BTC +10.3%, ETH +3.9% (Sharpe 0.2) | ❌ отвергнут | + +## Почему всё отвергнуто (уроки) + +1. **Артефакт периода** — три стратегии (pairs, CTREND, комбо ранее) выглядели отлично на 5-летке, но провалились на 7-летнем полном цикле. Правило: **всегда проверять на полном цикле (2019-2026), не на удобном окне.** +2. **OOS-честность** — CS-моментум даёт +4147% in-sample, но на медвежьем OOS-хвосте +20.5% против BH +52.3%. Правило: **in-sample цифры не считаются.** +3. **Режим рынка** — CS-моментум и funding arb живут в бычьих; предсказать режим нельзя → не используем. +4. **Данные важнее литературы** — интернет полон Sharpe 2-8, но на реальных данных с издержками и полным циклом они не выживают. Наш T2 — единственная стратегия, прошедшая ВСЕ проверки (7 лет, ролл-окна, OOS, полный цикл). + +## Итог + +**T2 (SMA50/гистерезис 50/40, 5 активов) остаётся единственной подтверждённой стратегией.** +Все 5 «перспективных» направлений из исследования проверены и отвергнуты с +задокументированными причинами. Это экономит будущее время: не тестировать их снова. + +**Побочные результаты:** +- Найдены и исключены мусорные данные UNI-USD (движение 1.5 млн % — сбой Yahoo); +- clean()-функция (фильтр аномалий >100%/день) — полезный инструмент для данных; +- Подтверждено: короткий CS-моментум работает только в бычьих режимах (академия + согласна: моментум 1-4 недели + реверс дальше) — но без режим-предсказания неюзабелен. diff --git a/docs/T2_ECONOMICS_2026-08-16_RU.md b/docs/T2_ECONOMICS_2026-08-16_RU.md new file mode 100644 index 000000000..990100fe3 --- /dev/null +++ b/docs/T2_ECONOMICS_2026-08-16_RU.md @@ -0,0 +1,54 @@ +# Точная экономика реальных денег по T2 + +**Дата:** 2026-08-16 | **Стратегия:** T2 momentum (SMA50/гистерезис, 5 активов) — подтверждена на 7-летнем полном цикле + +## 1. Издержки (Binance spot) +- Комиссия: 0.1% (без BNB-скидки) / 0.075% (с BNB-скидкой); +- ~20 сделок/год на контур (вход+выход); +- Годовые издержки: ~4.0% (без BNB) / ~3.0% (с BNB); +- **Уже включены в бэктесты** (0.15%/переход = комиссия + слиппедж) — цифры честные. + +## 2. Доходность (из 7-летних данных, после издержек) +| Метрика | T2 портфель | BTC buy&hold | +|---|---:|---:| +| Медианный год | **+27.6%** | +27.7% | +| Убыточных лет | **31%** | 43% | +| Худший год | −15..−46% | −30..−80% | +| MaxDD (7 лет) | −53% | −53%+ | +| Лучший год | +100..+2900% | +332% | + +**Ключевое**: медианная доходность ≈ BH, НО убыточных лет в 1.4 раза меньше + защита в медвежьи (NEAR −18% месяц: T2 0%, BH −18%). + +## 3. Расчёт на суммы (медианный год +28%, компаунд) +| Капитал | 1 год | 3 года | 5 лет | Прибыль 5 лет | +|---|---:|---:|---:|---:| +| $500 | $638 | $1,039 | $1,691 | +$1,191 | +| $1,000 | $1,276 | $2,078 | $3,383 | +$2,383 | +| $5,000 | $6,380 | $10,388 | $16,913 | +$11,913 | +| **$10,000** | **$12,760** | **$20,776** | **$33,826** | **+$23,826** | +| $25,000 | $31,900 | $51,939 | $84,566 | +$59,566 | + +## 4. Сравнение альтернатив (на $10k, 5 лет) +| Стратегия | Итог | Прибыль | Риск | +|---|---:|---:|---| +| **T2 (медиана)** | $33,826 | +$23,826 | 31% убыточных лет, DD −53% | +| BTC BH | ~$34,000 | +$24,000 | 43% убыточных лет, DD −53% | +| DCA $500/мес | ~$40,000 (вложено $30k) | +$10,000 | рыночный | +| T2 + DCA | комбо | выше | диверсифицирован | + +**Вывод**: T2 не «бьёт» BH по медиане, но даёт лучший риск-профиль (меньше убыточных лет, защита в медвежьи). Реальная ценность — дисциплина + защита, а не сверхдоходность. + +## 5. Сценарии для конкретной суммы (честно) +**Консервативный** (медиана +28%): таблица выше. +**Пессимистичный** (3 худших года подряд, −15%/год): $10k → $6,140 за 3 года. +**Оптимистичный** (бычий цикл, +100%/год 2 года): $10k → $40k за 2 года. + +**Правило**: вкладывать только то, что готовы держать 3+ года и потерять до 50% (просадка). + +## 6. Рекомендация +- Старт: $1,000-5,000 (комфортная для вас сумма); +- Горизонт: 3+ года (пережить убыточные годы); +- Исполнение: Binance spot, лимитные ордера по сигналу T2 (ежедневно 01:30 UTC); +- BNB-скидка: держать ~10% от портфеля в BNB (экономия 1% годовых); +- Дополнительно: DCA $100-500/мес параллельно (накопление в любом рынке); +- Реинвест прибыли — компаунд. diff --git a/docs/T2_ETH_AND_DIGEST_2026-08-16_RU.md b/docs/T2_ETH_AND_DIGEST_2026-08-16_RU.md new file mode 100644 index 000000000..816c7ac0b --- /dev/null +++ b/docs/T2_ETH_AND_DIGEST_2026-08-16_RU.md @@ -0,0 +1,26 @@ +# T2 ETH-контур + T2 в дайджесте/quant + +**Дата:** 2026-08-16 + +## ETH-версия T2 (второй paper-контур) +- run_t2_momentum.py параметризован (--symbol BTC-USD / ETH-USD), per-symbol state/log; +- Binance-фолбэк: BTC-USD -> BTCUSDT, ETH-USD -> ETHUSDT (исправлено: убрать "-", +USDT); +- aios-t2-momentum.service теперь запускает ОБА символа ежедневно 01:30 UTC; +- Бэкфилл ETH 3 года через loop: $10k → **$27,977 (+179.8%)** vs BH +20.0% (+160 п.п.), + 45 сделок, текущая позиция **LONG** (ETH выше SMA50); +- Тесты: 33/33 PASS локально (добавлены: symbol в URL, per-symbol state paths). + +## Видимость +- /quant: строки T2-BTC и T2-ETH (позиция, equity, PnL, BH, сделки); +- weekly digest: строка T2 (BTC и ETH, позиция + PnL%) — отправлено, sent: True. + +## Сводка T2-контуров (3 года бэкфилл) +| Контур | Позиция | Equity | PnL | BH | Выигрыш | +|---|---|---|---:|---:|---:| +| T2-BTC (SMA50) | CASH | $25,473 | +154.7% | +134.4% | +20 п.п. | +| T2-ETH (SMA50) | LONG | $27,977 | +179.8% | +20.0% | +160 п.п. | + +## Дальше +- Ежедневные сигналы обоих контуров + TG-алерты идут автоматически; +- Через 1-2 месяца: сравнение live vs бэктест, решение о реальной аллокации + (кандидат: BTC/ETH 50/50 по SMA50). diff --git a/docs/T2_EXPANSION_5SYMBOLS_2026-08-16_RU.md b/docs/T2_EXPANSION_5SYMBOLS_2026-08-16_RU.md new file mode 100644 index 000000000..b84fb7da4 --- /dev/null +++ b/docs/T2_EXPANSION_5SYMBOLS_2026-08-16_RU.md @@ -0,0 +1,43 @@ +# T2: расширение на 5 валют + гистерезис для BTC/ETH/SOL + +**Дата:** 2026-08-16 | Ветка: agent/20260815-quant-oos-profit + +## Скрининг (X-расширение) — 14 валют, T2 SMA50 (5 лет) +| Работают ✅ | Не работают ❌ | +|---|---| +| BTC +127.8%, ETH +103.3%, SOL +406.3%, **BNB +115.4%** (DD −38% — лучший), **NEAR +43.7%** | XRP −46%, DOGE −13%, ADA −59%, LINK −50%, AVAX −23%, UNI −100%, LTC −89%, DOT −66%, TRX −7% | + +## X1 — гистерезис (вход SMA50 / выход SMA40) — 7 лет +| Символ | SMA50 | 50/40 | Дельтa | +|---|---:|---:|---:| +| BTC | +1574% | **+1746%** (DD −44% vs −58%) | +171 п.п. | +| ETH | +1378% | **+2211%** (DD −50%) | +832 п.п. | +| SOL | +23965% | **+34508%** (DD −63% vs −81%) | +10542 п.п. | +| BNB | +5846% | +2069% | **−3777 п.п.** ❌ | +| NEAR | +1057% | +643% | **−415 п.п.** ❌ | +Внедрено: гистерезис 50/40 для BTC/ETH/SOL; чистый SMA50 для BNB/NEAR. + +## X2 — трейлинг-стоп от пика equity — ОТВЕРГНУТ +Все варианты (10-25%) снижают доходность (BTC +128% → +72..+96%, SOL +406% → +66..+91%), +просадку почти не улучшают. Подтверждение: SMA50 сам является защитой. + +## X3 — пер-символьная калибровка (7 лет) +SMA40 — оптимум для BTC/ETH/SOL/NEAR на 7 годах; BNB — SMA50 уже оптимум. +Гистерезис 50/40 даёт эффект близкий к SMA40 без его волатильности — внедрён. + +## Текущая конфигурация (5 контуров) +| Контур | Правило | Позиция | Equity (3г бэкфилл) | +|---|---|---|---| +| T2-BTC | hyst 50/40 | CASH | $25,473 (+154.7%) | +| T2-ETH | hyst 50/40 | LONG | $27,977 (+179.8%) | +| T2-SOL | hyst 50/40 | CASH | $32,949 (+229.5%) | +| T2-BNB | SMA50 | LONG | $24,672 (+146.7%) | +| T2-NEAR | SMA50 | CASH | $17,762 (+77.6%) | +| **Портфель (5)** | среднее | | **$25,767 vs BH $22,939** | + +## Тесты +- 40/40 локально (добавлен тест гистерезиса), 28/28 на сервере. + +## Дальше +- Ежедневно 01:30Z: 5 контуров + портфель + график + TG-отчёты; +- Через 1-2 месяца: сравнение live vs бэктест, решение о реальных деньгах. diff --git a/docs/T2_PAPER_LOOP_2026-08-16_RU.md b/docs/T2_PAPER_LOOP_2026-08-16_RU.md new file mode 100644 index 000000000..f7faaba7c --- /dev/null +++ b/docs/T2_PAPER_LOOP_2026-08-16_RU.md @@ -0,0 +1,29 @@ +# T2 momentum — paper-контур запущен + +**Дата:** 2026-08-16 | Скрипт: `scripts/run_t2_momentum.py` (+`tests/test_t2_paper.py`, 28 тестов) + +## Правило (из бэктеста, docs/MOMENTUM_STRATEGIES_RESULT) +LONG BTC, пока close > SMA50 (1d); иначе кэш. Сигнал по последнему ЗАКРЫТОМУ бару. +Издержки 0.15% при каждом переходе (вход/выход). + +## Реализация +- Ежедневно 01:30 UTC (после закрытия дня): fetch closes (Yahoo, фолбэк Binance spot), + сигнал, mark equity, запись в лог, TG-уведомление при смене позиции; +- state: `data/t2_paper_state.json` (позиция, equity, трейды); +- история: `data/t2_paper_equity.jsonl` (день, close, sma50, сигнал, equity, bh_equity); +- идемпотентность: повторный запуск того же дня не дублирует; +- `/quant` показывает позицию/equity/BH. + +## Бэкфилл (3 года истории через loop) +- equity: $10,000 → **$25,473 (+154.7%)**; buy&hold: +134.4%; сделок 68; +- текущая позиция: **CASH** (close 63,004 < SMA50 63,510 — медвежий рынок); +- совпадение с бэктестом (+143.5%) в пределах конвенции (±11 п.п., объяснимо). + +## Тесты (локально → прод) +- tests/test_t2_paper.py — 28 тестов (сигнал SMA50, фолбэк источников, идемпотентность, + издержки на вход/выход, mark equity, BH-эталон, формат лога): 28/28 PASS. + +## Дальше +- Ежедневные сигналы и TG-алерты идут автоматически; +- Через 1-2 месяца: сравнить live-equity с бэктестом, решить о реальной аллокации; +- Кандидат на расширение: ETH-версия (исторически +156.8% vs BH +2.2%). diff --git a/docs/T2_U1U3U4U5_2026-08-16_RU.md b/docs/T2_U1U3U4U5_2026-08-16_RU.md new file mode 100644 index 000000000..6e9c4237a --- /dev/null +++ b/docs/T2_U1U3U4U5_2026-08-16_RU.md @@ -0,0 +1,35 @@ +# T2: U1 (гистерезис) + U3 (ребаланс) + U4 (сверка цен) + U5 (7 лет) + +**Дата:** 2026-08-16 + +## U5 — 7-летняя валидация (с 2019, крах 2020 + бычий 2021 + медвежий 2022) +| Символ | Дней | T2 SMA50 | BH | Выигрыш | +|---|---:|---:|---:|---:| +| BTC | 2569 | **+1574.3%** | +474.3% | +1100 п.п. | +| ETH | 2569 | **+1379.3%** | +744.3% | +635 п.п. | +| SOL | 2319 | **+23965%** | +7823% | +16142 п.п. | +T2 превосходит buy&hold на 7-летнем горизонте во всех активах — стратегия подтверждена +на максимально доступной истории. + +## U1 — гистерезис (вход SMA50, выход SMA30/40/50) — 5 лет +| Вариант | BTC | ETH | SOL | +|---|---:|---:|---:| +| базовый SMA50 | +127.8% (DD −58%) | +103.4% (DD −55%) | +406.3% (DD −60%) | +| 50/40 | **+141.8% (DD −44%)** | +98.8% (DD −50%) | +239.5% (DD −63%) | +| 50/30 | +92.6% (DD −39%) | +76.9% | +117.7% | +**Вывод:** гистерезис улучшает BTC (50/40: +14 п.п. и DD лучше), почти без эффекта на ETH, +сильно хуже на SOL. НЕ универсален — для BTC можно, для остальных оставить SMA50. + +## U3 — ребаланс портфеля к 1/3 (ежеквартально) — 5 лет +без ребаланса: +242.8% (DD −50%) | с ребалансом: **+65.5% (DD −85%)** +**Вывод:** ребаланс РАЗРУШАЕТ доходность (продажа сильных в пользу слабых = против +моментум-логики). НЕ делать. + +## U4 — сверка цен Yahoo vs Binance +- проверка расхождения > 0.5% перед сигналом, предупреждение в TG при отклонении; +- тесты 36/36 локально (расхождение <0.5% -> ок, >0.5% -> warning, сбой API -> без падения). + +## Итог +- В прод: U4 (сверка цен) — безопасность сигнала; +- НЕ внедрять: U1-гистерезис (только BTC выигрывает), U3-ребаланс (разрушает); +- U5 подтверждает стратегию на 7 годах. diff --git a/docs/T2_VALIDATION_AND_EXPANSION_2026-08-16_RU.md b/docs/T2_VALIDATION_AND_EXPANSION_2026-08-16_RU.md new file mode 100644 index 000000000..0580cd329 --- /dev/null +++ b/docs/T2_VALIDATION_AND_EXPANSION_2026-08-16_RU.md @@ -0,0 +1,39 @@ +# T2: валидация (V5/V6/V7) + расширение (V1/V2/V3/V4) + +**Дата:** 2026-08-16 | Скрипты: `t2_validation.py`, `t2_portfolio.py`, `run_t2_momentum.py` + +## V6 — 5 лет (полный цикл: бычий 2021, медвежий 2022, бычий 2023-24, медвежий 2025-26) +| Символ | T2 SMA50 (5 лет) | BH | Выигрыш | Sharpe | +|---|---:|---:|---:|---:| +| BTC | +127.8% (CAGR 17.8%) | +47.1% | +81 п.п. | 0.66 | +| ETH | +103.2% (CAGR 15.2%) | **−35.0%** | +138 п.п. | 0.54 | +| SOL | **+406.3%** (CAGR 38.1%) | +91.0% | +315 п.п. | 0.83 | + +## V5 — ролл-окна 2 года (9 окон на 5 лет) +- BTC: 8/9 окон положительных; ETH: 8/9; SOL: 8/9 (первые окна SOL +53%/+413% vs BH −43%/−47%). +- Вывод: стратегия устойчива, не «повезло с одним периодом». + +## V7 — калибровка SMA (5 лет) +- BTC: плато SMA40-50-60 (+158/+128/+101%); SMA150 лучше в бычьей 5-летке (+180%) — но + SMA50 надёжнее в медвежьих (ролл-окна). SMA20 слаб. +- ETH: SMA50-60 плато (+103/+137%); SMA75+ деградирует. +- Вывод: SMA50 — разумный робастный выбор (не оптимум-подгонка). + +## V1 — SOL-контур запущен +- SOL бэкфилл 3 года: $10k → $32,949 (+229.5%) vs BH +242.2% (в 5-летке T2 SOL +406% vs BH +91%); +- Сервис aios-t2-momentum.service: BTC+ETH+SOL ежедневно 01:30Z. + +## V2 — Портфель T2 50/50 (BTC+ETH) +- 5 лет: **+129.6%** vs BH портфеля +7.0% (DD −55.7%, Sharpe 0.65); +- t2_portfolio.py: ежедневный расчёт 0.5*BTC+0.5*ETH, лог t2_portfolio_equity.jsonl; +- текущее: portfolio $26,725 vs BH $17,725. + +## V3/V4 — Ежедневный TG-отчёт + график +- --daily-report: каждый день (не только при смене) строка T2-BTC/ETH/SOL в TG; +- dca_chart_report.py: график теперь включает T2-BTC (equity + BH) — отправляется + ежедневно с сервисом T2 и еженедельно в дайджесте. + +## Итог +Все 7 вариантов выполнены. T2 подтверждён на 5 годах (полный цикл) и ролл-окнах; +3 контура (BTC/ETH/SOL) + портфель 50/50 работают в paper с ежедневными отчётами. +Кандидат для реальных денег: портфель T2 (BTC+ETH 50/50 или 3 актива). diff --git a/docs/T2_W1W4W5_2026-08-16_RU.md b/docs/T2_W1W4W5_2026-08-16_RU.md new file mode 100644 index 000000000..d16fe4535 --- /dev/null +++ b/docs/T2_W1W4W5_2026-08-16_RU.md @@ -0,0 +1,31 @@ +# T2: W1 (3-активный портфель) + W4 (стоп-лосс — НЕ работает) + W5 (OOS-калибровка) + +**Дата:** 2026-08-16 | Ветка: agent/20260815-quant-oos-profit + +## W5 — OOS-калибровка SMA (train 60% -> test 40%, параметр по train, оценка на test) +| Символ | Оптимум train | TEST (выбранный) | TEST (SMA50) | BH теста | +|---|---|---|---:|---:| +| BTC | SMA40 (+113%) | **+31.2%** | +28.5% | +7.3% | +| ETH | SMA60 (+42%) | **+85.5%** | +73.4% | −26.4% | +| SOL | SMA50 (+644%) | **−26.7%** | −26.7% | −46.8% | +Вывод: калибровка даёт небольшое улучшение (BTC/ETH), SOL убыточен на медвежьем тесте. +SMA50 остаётся робастным — отсутствие подгонки подтверждено. Решение: оставить SMA50. + +## W4 — стоп-лосс к T2 (5 лет) — НЕ РАБОТАЕТ, отвергнут +| Символ | Базовый T2 | SL 5% | SL 10% | SL 15% | +|---|---:|---:|---:|---:| +| BTC | +127.8% | −60.1% | −63.3% | −59.6% | +| ETH | +103.3% | −64.7% | −62.2% | −64.1% | +| SOL | +406.3% | −90.2% | −90.2% | −90.3% | +Причина: 400+ стопов за 5 лет — «стоп-охота» на волатильных просадках; после стопа +повторный вход по SMA50 снова ловит обвал. **SMA50 сам является защитой** — T2 без +стопов правильный дизайн. Открытие предотвращает ошибку с реальными деньгами. + +## W1 — 3-активный портфель (BTC+ETH+SOL) +- t2_portfolio.py: среднее 3 контуров; текущее: $28,800 vs BH $23,223 (+24% сверх); +- /quant: строка портфеля; сервис ежедневно 01:30Z. + +## Итог +- T2 остаётся: SMA50, без стопов, 3 контура + портфель; +- OOS-калибровка не меняет дизайн (SMA50 робастен); +- Стоп-лосс отвергнут данными (важный негативный результат). diff --git a/docs/T2_Y1Y4_FINDINGS_2026-08-16_RU.md b/docs/T2_Y1Y4_FINDINGS_2026-08-16_RU.md new file mode 100644 index 000000000..769b393fe --- /dev/null +++ b/docs/T2_Y1Y4_FINDINGS_2026-08-16_RU.md @@ -0,0 +1,39 @@ +# T2: Y1 (vol-target) + Y2 (долгосрочный фильтр) + Y3 (объём) + Y4 (Binance primary) + +**Дата:** 2026-08-16 + +## Y1 — волатильность-таргетирование (5 лет) +| Символ | Базовый | vol-target 1% | Эффект | +|---|---:|---:|---:| +| BTC | +127.8% (DD −58%) | +116.1% (DD −55%) | ≈ | +| ETH | +103.2% (DD −55%) | +97.3% (DD −45%) | DD лучше | +| SOL | +406.3% (DD −60%) | +128.2% (DD −54%) | доходность хуже | +| BNB | +115.4% (DD −38%) | +115.0% (DD −31%) | DD лучше | +| NEAR | +43.7% (DD −80%) | +84.1% (DD −54%) | **лучше оба** | +- Снижает просадку у волатильных (NEAR, BNB, ETH), но режет доходность SOL. + +## Y2 — долгосрочный фильтр SMA150 (5 лет) +| Символ | Базовый | SMA150-фильтр | Эффект | +|---|---:|---:|---:| +| BTC | +127.8% (DD −58%) | +113.3% (DD **−28%**) | DD вдвое лучше | +| ETH | +103.2% (DD −55%) | +69.9% (DD −38%) | DD лучше | +| SOL | +406.3% | +122.3% | доходность хуже | +- Фильтр сильно снижает DD (BTC −28%!), но режет доходность. + +## КОМБО (vol-target 1% + SMA150) — НЕ ВНЕДРЯТЬ +- 5 лет BTC: +184.7% (DD −22%!) — выглядело прорывно; +- **7 лет BTC: +722% vs +1574%** — комбо РЕЖЕТ долгосрочную доходность; +- Вывод: 5-летний выигрыш — артефакт периода; риск-контроль ценой доходности + невыгоден на полном цикле. Оставлена базовая версия. + +## Y3 — объём: не тестировался (нет исторических объёмов по всем активам в Yahoo 1d +согласованно; требует доработки источника) — пропущен. + +## Y4 — Binance primary — ВНЕДРЁН +- Источник цен переключён на Binance spot (эталон ликвидности), Yahoo — фолбэк; +- Тесты обновлены (Binance primary, фолбэк Yahoo), 40/40 локально, 28/28 сервер. + +## Итог +- Внедрено: Y4 (Binance primary); +- Отвергнуты: Y1 (незначительно), Y2 (режет доходность), КОМБО (артефакт 5-летки); +- Базовая T2 (SMA50/гистерезис) остаётся лучшей на 7-летнем горизонте. diff --git a/docs/TRADING_3M_BACKTEST_2026-08-15_RU.md b/docs/TRADING_3M_BACKTEST_2026-08-15_RU.md new file mode 100644 index 000000000..044d14799 --- /dev/null +++ b/docs/TRADING_3M_BACKTEST_2026-08-15_RU.md @@ -0,0 +1,64 @@ +# Тестовый замер: текущая стратегия, старт 3 месяца назад + +**Дата:** 2026-08-15 | **Окно:** 2026-05-15 .. 2026-08-15 | **Скрипт:** `scripts/quant_prod_3m_backtest.py` + +## Методика + +> **Исправление (18:50Z):** первая версия замера использовала kraken-цены +> (первая биржа в unit-приоритете), а у kraken история ~724 баров (API-лимит) — +> фактически симулировался только ~1 месяц. После фикса `min_bars>=4000` все цены — +> binance (полные 12 мес). Цифры ниже — на полной истории, 3 мес целиком. + +Воспроизведение прод-движка 1:1 на истории: +- конфиг **читается из unit** `deploy/systemd/aios-quant-trading.service` (текущая стратегия: + trail_ratio=1.0, TP 2.0%, SL −1.0%, ML≥0.65, conf≥0.88, kill DD/daily 0.25%, 10 бирж в allowlist); +- per-exchange капитал $1000 (×10 = $10 000 виртуального equity), reserve 30%, ставка + min(cash·20%, $200), мин. ордер $10, max 1 глобальная позиция; +- входы на закрытой свече: статические гейты (биржа/позиции/drawdown/daily/reserve) → + сигнал BUY_LONG + confidence → ML-гейт → RL-вето (RL_ASSETS заблокированы, как в live); +- выходы: SL/TP/trailing по hi/lo бара + confirmed_bearish_exit (hold≥2ч); +- kill-свитчи 0.25% от суммарного equity всех 10 бирж (как в движке); +- цены: локальные 1h OHLCV, для каждого символа — первая разрешённая биржа с данными + (приоритет порядка в unit → все сделки на kraken); +- ML prob: catboost_price_dir_v2.cbm (13 scale-free фич). + +## Результат + +| Прогон | Сделок | Winrate | PF | PnL закрытых | Equity end | +|---|---:|---:|---:|---:|---:| +| Текущая (trail=1.0) | 10 | 40.0% | 0.66 | −6.02$ | 9 993.98$ | +| Sensitivity: trail по close | 10 | 40.0% | 0.66 | −6.02$ | 9 993.98$ | +| Контроль A/B: trail=0.988 | 10 | 40.0% | 0.66 | −6.02$ | 9 993.98$ | + +**BTC buy&hold за окно: −2.29%** (рынок падал). + +## Ключевые наблюдения + +1. **Стратегия убыточна** после издержек: −6.02$ (PF 0.66, WR 40%). 6 стопов (−1.49%) + против 4 тейков (+1.49%). Медвежий рынок + LONG-only = минус. +2. **Трейлинг не влияет на этом окне**: 0 срабатываний trailing_stop — все 10 сделок + закрыты TP/SL за 1-6 часов. MAIN = TRAIL@CLOSE = CTL-0.988 (идентичны). + Отличие от OOS-экспериментов (там trailing срабатывал) — разные выборки/режимы. +3. **ML-гейт — главный ограничитель активности**: `ml_not_confirmed`=1865 блокировок + против 435 `global_position_limit`. Первые 2 месяца окна (май-июнь) сделок НЕ БЫЛО — + модель не давала prob≥0.65; все 10 сделок — июль-август. +4. **Все сделки на kraken** — следствие приоритета бирж в unit (первая с данными). + В live цены сканируются со всех бирж, что может давать чуть больше входов. +5. Сделки кластеризуются (BONK×3, UNI×3 за 2-3 дня) — после входа и стопа система + немедленно повторяет сигнал; фильтра «не входить после стопа» нет. + +## Вывод + +Текущая стратегия на честном 3-месячном окне: **−0.06% на $10k equity** (по +задействованному капиталу ~ −0.3%), winrate 40%, PF 0.66. Это четвёртое независимое +подтверждение отсутствия положительного матожидания у LONG-only технической 1h-торговли +на текущем универсуме (OOS LONG / OOS SHORT / ML cross-sectional / этот прод-замер). +Ожидание A/B main vs control (trail 1.0 vs 0.988) на живых данных сохраняется, но +данные говорят, что trail — не источник прибыли, а лишь перераспределитель. + +## Воспроизводимость + +```bash +cd /root/AIOS && source /opt/aios/.venv/bin/activate +python scripts/quant_prod_3m_backtest.py --months 3 --output data/reports/prod_3m_backtest.md +``` diff --git a/docs/TRADING_BACKTEST_1Y_2026-08-15_RU.md b/docs/TRADING_BACKTEST_1Y_2026-08-15_RU.md new file mode 100644 index 000000000..47c6287b4 --- /dev/null +++ b/docs/TRADING_BACKTEST_1Y_2026-08-15_RU.md @@ -0,0 +1,80 @@ +# Тестовый замер: 12 мес. торговли по текущему алгоритму (с ML gate) (Directional v2) + +**Период:** 2025-08-15 13:00 UTC → 2026-08-15 13:00 UTC (12 календарн. мес., 8761 баров 1h) +**Стартовый капитал:** $1,000.00 + +## Результат алгоритма + +- **Итоговый капитал: $997.01** +- **PnL портфеля: -0.30%** +- Сделок: 1 (win 0, 0.0%) +- Средняя сделка: -1.494% | Комиссии и проскальзывание: $0.90 + +## Реальная динамика валют (Buy&Hold за тот же месяц) + +- **Средняя по 33 валютам: -68.36%** (медиана -71.73%) +- Лучшая: **TRX -6.47%** +- Худшая: **BONK -90.28%** + +| Валюта | Buy&Hold % | +|---|---:| +| TRX | -6.47 | +| BNB | -26.69 | +| NEAR | -40.33 | +| BTC | -46.48 | +| TON | -53.97 | +| LINK | -57.42 | +| ETH | -58.52 | +| SOL | -60.37 | +| LTC | -63.01 | +| SHIB | -64.57 | +| ATOM | -66.89 | +| RENDER | -67.12 | +| XRP | -67.51 | +| POL | -68.14 | +| DOGE | -69.17 | +| UNI | -70.00 | +| ETC | -71.73 | +| INJ | -71.74 | +| FIL | -72.09 | +| KAS | -72.50 | +| AVAX | -72.81 | +| PEPE | -76.00 | +| DOT | -80.34 | +| ADA | -80.95 | +| FET | -81.18 | +| SUI | -81.92 | +| TIA | -82.80 | +| WIF | -84.87 | +| ARB | -85.32 | +| SEI | -87.89 | +| OP | -88.43 | +| APT | -88.53 | +| BONK | -90.28 | + +## Сравнение + +- Алгоритм -0.30% vs средняя валюта -68.36% → **+68.06 п.п.** +- Алгоритм -0.30% vs лучшая валюта (TRX -6.47%) +- Алгоритм -0.30% vs худшая валюта (BONK -90.28%) + +## Блокировки входов (как в продакшене) + +- ml_not_confirmed: 24967 +- global_drawdown_kill: 373 +- rl_veto: 80 +- OK: 1 + +## Сделки + +| Актив | Вход | Выход | Причина | Баров | PnL % | +|---|---|---|---|---:|---:| +| ARB | 08-15 15:00 | 08-15 16:00 | stop_loss | 1 | -1.49 | + +## Допущения + +- Цены: binance 1h как прокси разрешённых бирж (kucoin/bitstamp/mexc — нет месяца локальной истории). +- ML-модель обучена на данных, включающих тестовый месяц (in-sample только для ML-части; индикаторная часть честная). +- Funding/orderbook нейтральны (0 / BALANCED). +- TP/SL исполняются по уровням при пересечении high/low бара; SL приоритетнее TP. +- Все активы обрабатываются синхронно по барам; портфель единый ($1000), максимум 1 позиция (owner-профиль). diff --git a/docs/TRADING_BACKTEST_1Y_ALLOWLIST_2026-08-15_RU.md b/docs/TRADING_BACKTEST_1Y_ALLOWLIST_2026-08-15_RU.md new file mode 100644 index 000000000..a96e07a2c --- /dev/null +++ b/docs/TRADING_BACKTEST_1Y_ALLOWLIST_2026-08-15_RU.md @@ -0,0 +1,80 @@ +# Тестовый замер: 12 мес. торговли по текущему алгоритму (с ML gate) (Directional v2) + +**Период:** 2025-08-15 15:00 UTC → 2026-08-15 15:00 UTC (12 календарн. мес., 8761 баров 1h) +**Стартовый капитал:** $1,000.00 + +## Результат алгоритма + +- **Итоговый капитал: $997.01** +- **PnL портфеля: -0.30%** +- Сделок: 1 (win 0, 0.0%) +- Средняя сделка: -1.494% | Комиссии и проскальзывание: $0.90 + +## Реальная динамика валют (Buy&Hold за тот же месяц) + +- **Средняя по 33 валютам: -66.28%** (медиана -70.73%) +- Лучшая: **TRX -5.61%** +- Худшая: **BONK -89.81%** + +| Валюта | Buy&Hold % | +|---|---:| +| TRX | -5.61 | +| TON | -9.24 | +| BNB | -25.39 | +| NEAR | -38.33 | +| BTC | -46.25 | +| LINK | -56.03 | +| ETH | -57.48 | +| SOL | -59.32 | +| LTC | -62.49 | +| SHIB | -63.67 | +| ATOM | -66.32 | +| RENDER | -66.45 | +| XRP | -66.90 | +| POL | -67.32 | +| DOGE | -68.50 | +| UNI | -69.20 | +| INJ | -70.73 | +| ETC | -71.16 | +| KAS | -71.32 | +| FIL | -71.54 | +| AVAX | -72.34 | +| PEPE | -75.22 | +| DOT | -79.80 | +| ADA | -80.67 | +| FET | -80.78 | +| SUI | -81.31 | +| TIA | -82.15 | +| WIF | -83.96 | +| ARB | -84.52 | +| SEI | -87.33 | +| OP | -88.04 | +| APT | -88.13 | +| BONK | -89.81 | + +## Сравнение + +- Алгоритм -0.30% vs средняя валюта -66.28% → **+65.98 п.п.** +- Алгоритм -0.30% vs лучшая валюта (TRX -5.61%) +- Алгоритм -0.30% vs худшая валюта (BONK -89.81%) + +## Блокировки входов (как в продакшене) + +- ml_not_confirmed: 24270 +- global_drawdown_kill: 353 +- rl_veto: 74 +- OK: 1 + +## Сделки + +| Актив | Вход | Выход | Причина | Баров | PnL % | +|---|---|---|---|---:|---:| +| APT | 08-15 17:00 | 08-15 20:00 | stop_loss | 3 | -1.49 | + +## Допущения + +- Цены: реальные 1h-серии бирж (price-source=allowlist; kucoin: 32, bitstamp: 1). +- ML-модель обучена на данных, включающих тестовый месяц (in-sample только для ML-части; индикаторная часть честная). +- Funding/orderbook нейтральны (0 / BALANCED). +- TP/SL исполняются по уровням при пересечении high/low бара; SL приоритетнее TP. +- Все активы обрабатываются синхронно по барам; портфель единый ($1000), максимум 1 позиция (owner-профиль). diff --git a/docs/TRADING_BACKTEST_1Y_ALLOWLIST_FREE_ML_2026-08-15_RU.md b/docs/TRADING_BACKTEST_1Y_ALLOWLIST_FREE_ML_2026-08-15_RU.md new file mode 100644 index 000000000..ce2338485 --- /dev/null +++ b/docs/TRADING_BACKTEST_1Y_ALLOWLIST_FREE_ML_2026-08-15_RU.md @@ -0,0 +1,465 @@ +# Тестовый замер: 12 мес. торговли по сигналам без портфельных kill-switch (свободный профиль, с ML gate) (Directional v2) + +**Период:** 2025-08-15 15:00 UTC → 2026-08-15 15:00 UTC (12 календарн. мес., 8761 баров 1h) +**Стартовый капитал:** $1,000.00 + +## Результат алгоритма + +- **Итоговый капитал: $843.21** +- **PnL портфеля: -15.68%** +- Сделок: 356 (win 142, 39.9%) +- Средняя сделка: -0.220% | Комиссии и проскальзывание: $320.32 + +## Реальная динамика валют (Buy&Hold за тот же месяц) + +- **Средняя по 33 валютам: -66.28%** (медиана -70.73%) +- Лучшая: **TRX -5.61%** +- Худшая: **BONK -89.81%** + +| Валюта | Buy&Hold % | +|---|---:| +| TRX | -5.61 | +| TON | -9.24 | +| BNB | -25.39 | +| NEAR | -38.33 | +| BTC | -46.25 | +| LINK | -56.03 | +| ETH | -57.48 | +| SOL | -59.32 | +| LTC | -62.49 | +| SHIB | -63.67 | +| ATOM | -66.32 | +| RENDER | -66.45 | +| XRP | -66.90 | +| POL | -67.32 | +| DOGE | -68.50 | +| UNI | -69.20 | +| INJ | -70.73 | +| ETC | -71.16 | +| KAS | -71.32 | +| FIL | -71.54 | +| AVAX | -72.34 | +| PEPE | -75.22 | +| DOT | -79.80 | +| ADA | -80.67 | +| FET | -80.78 | +| SUI | -81.31 | +| TIA | -82.15 | +| WIF | -83.96 | +| ARB | -84.52 | +| SEI | -87.33 | +| OP | -88.04 | +| APT | -88.13 | +| BONK | -89.81 | + +## Сравнение + +- Алгоритм -15.68% vs средняя валюта -66.28% → **+50.60 п.п.** +- Алгоритм -15.68% vs лучшая валюта (TRX -5.61%) +- Алгоритм -15.68% vs худшая валюта (BONK -89.81%) + +## Качество сигналов (per-asset) + +- Profit factor: 0.72 (gross +$409.30 / -$566.09) +- Максимум одновременных позиций: 21 + +| Актив | Сделок | PnL $ | +|---|---:|---:| +| NEAR | 12 | +8.63 | +| AVAX | 11 | +7.37 | +| TON | 1 | +2.98 | +| RENDER | 15 | +2.94 | +| ETC | 8 | +1.69 | +| ATOM | 9 | -3.01 | +| PEPE | 19 | -3.04 | +| FIL | 25 | -3.06 | +| TIA | 22 | -4.04 | +| SHIB | 9 | -4.15 | +| FET | 19 | -4.58 | +| ARB | 19 | -5.08 | +| SUI | 19 | -5.55 | +| INJ | 19 | -6.59 | +| TRX | 3 | -6.83 | +| BONK | 25 | -7.53 | +| LTC | 7 | -8.98 | +| WIF | 23 | -11.12 | +| KAS | 11 | -13.30 | +| APT | 16 | -15.32 | +| UNI | 20 | -18.53 | +| SEI | 14 | -29.65 | +| OP | 30 | -30.03 | + +## Блокировки входов (свободный профиль) + +- ml_not_confirmed: 24152 +- OK: 356 +- rl_veto: 78 + +## Сделки + +| Актив | Вход | Выход | Причина | Баров | PnL % | +|---|---|---|---|---:|---:| +| FET | 08-15 17:00 | 08-15 18:00 | stop_loss | 1 | -1.49 | +| KAS | 08-15 17:00 | 08-15 18:00 | stop_loss | 1 | -1.49 | +| OP | 08-15 17:00 | 08-15 18:00 | stop_loss | 1 | -1.49 | +| PEPE | 08-15 17:00 | 08-15 18:00 | stop_loss | 1 | -1.49 | +| SEI | 08-15 17:00 | 08-15 18:00 | stop_loss | 1 | -1.49 | +| SUI | 08-15 17:00 | 08-15 18:00 | stop_loss | 1 | -1.49 | +| UNI | 08-15 17:00 | 08-15 18:00 | stop_loss | 1 | -1.49 | +| WIF | 08-15 17:00 | 08-15 18:00 | stop_loss | 1 | -1.49 | +| APT | 08-15 17:00 | 08-15 20:00 | stop_loss | 3 | -1.49 | +| FIL | 08-15 17:00 | 08-15 20:00 | stop_loss | 3 | -1.49 | +| TIA | 08-15 17:00 | 08-15 20:00 | take_profit | 3 | +1.49 | +| ARB | 08-15 20:00 | 08-15 22:00 | take_profit | 2 | +1.49 | +| OP | 08-15 20:00 | 08-15 22:00 | trailing_stop | 2 | -0.06 | +| SEI | 08-15 20:00 | 08-15 22:00 | trailing_stop | 2 | -0.47 | +| ETC | 08-15 17:00 | 08-15 23:00 | take_profit | 6 | +1.49 | +| WIF | 08-15 20:00 | 08-15 23:00 | take_profit | 3 | +1.49 | +| TRX | 08-15 17:00 | 08-16 13:00 | stop_loss | 20 | -1.49 | +| BONK | 08-25 20:00 | 08-25 22:00 | trailing_stop | 2 | -0.67 | +| WIF | 08-25 20:00 | 08-25 22:00 | take_profit | 2 | +1.49 | +| PEPE | 08-25 20:00 | 08-25 23:00 | take_profit | 3 | +1.49 | +| OP | 08-25 20:00 | 08-26 00:00 | trailing_stop | 4 | -0.25 | +| TIA | 08-25 20:00 | 08-26 01:00 | take_profit | 5 | +1.49 | +| KAS | 09-06 08:00 | 09-06 09:00 | take_profit | 1 | +1.49 | +| TRX | 09-06 21:00 | 09-06 22:00 | stop_loss | 1 | -1.49 | +| TRX | 09-06 22:00 | 09-06 23:00 | trailing_stop | 1 | -0.43 | +| UNI | 09-14 03:00 | 09-14 04:00 | take_profit | 1 | +1.49 | +| ARB | 09-15 08:00 | 09-15 09:00 | trailing_stop | 1 | -0.66 | +| BONK | 09-15 08:00 | 09-15 09:00 | trailing_stop | 1 | -0.14 | +| TIA | 09-15 08:00 | 09-15 09:00 | trailing_stop | 1 | -0.50 | +| WIF | 09-15 08:00 | 09-15 09:00 | trailing_stop | 1 | -0.44 | +| OP | 09-15 08:00 | 09-15 15:00 | stop_loss | 7 | -1.49 | +| BONK | 09-22 00:00 | 09-22 02:00 | stop_loss | 2 | -1.49 | +| BONK | 09-22 06:00 | 09-22 07:00 | stop_loss | 1 | -1.49 | +| NEAR | 09-22 06:00 | 09-22 07:00 | stop_loss | 1 | -1.49 | +| RENDER | 09-22 06:00 | 09-22 07:00 | stop_loss | 1 | -1.49 | +| SEI | 09-22 06:00 | 09-22 07:00 | stop_loss | 1 | -1.49 | +| SUI | 09-22 06:00 | 09-22 07:00 | stop_loss | 1 | -1.49 | +| UNI | 09-22 06:00 | 09-22 07:00 | stop_loss | 1 | -1.49 | +| WIF | 09-22 06:00 | 09-22 07:00 | stop_loss | 1 | -1.49 | +| APT | 09-22 06:00 | 09-22 08:00 | stop_loss | 2 | -1.49 | +| FET | 09-22 06:00 | 09-22 08:00 | stop_loss | 2 | -1.49 | +| FIL | 09-22 06:00 | 09-22 08:00 | stop_loss | 2 | -1.49 | +| INJ | 09-22 06:00 | 09-22 08:00 | stop_loss | 2 | -1.49 | +| OP | 09-22 06:00 | 09-22 08:00 | stop_loss | 2 | -1.49 | +| PEPE | 09-22 06:00 | 09-22 08:00 | stop_loss | 2 | -1.49 | +| TIA | 09-22 06:00 | 09-22 08:00 | stop_loss | 2 | -1.49 | +| ARB | 09-22 06:00 | 09-22 09:00 | stop_loss | 3 | -1.49 | +| ETC | 09-22 06:00 | 09-22 17:00 | stop_loss | 11 | -1.49 | +| ARB | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| INJ | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| OP | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| PEPE | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| BONK | 10-10 15:00 | 10-10 17:00 | stop_loss | 2 | -1.49 | +| PEPE | 10-10 17:00 | 10-10 18:00 | take_profit | 1 | +1.49 | +| ATOM | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| FET | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| FIL | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| APT | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| ARB | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| BONK | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| ETC | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| FET | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| FIL | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| INJ | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| KAS | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| LTC | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| NEAR | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| OP | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| SEI | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| SUI | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| TIA | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| UNI | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| WIF | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| APT | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| BONK | 10-10 22:00 | 10-10 23:00 | take_profit | 1 | +1.49 | +| KAS | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-10 22:00 | 10-10 23:00 | take_profit | 1 | +1.49 | +| SEI | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| SUI | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| OP | 10-11 03:00 | 10-11 04:00 | trailing_stop | 1 | -0.07 | +| AVAX | 10-11 05:00 | 10-11 06:00 | take_profit | 1 | +1.49 | +| TIA | 10-11 05:00 | 10-11 06:00 | take_profit | 1 | +1.49 | +| WIF | 10-11 05:00 | 10-11 06:00 | take_profit | 1 | +1.49 | +| NEAR | 10-11 05:00 | 10-11 07:00 | take_profit | 2 | +1.49 | +| SEI | 10-11 05:00 | 10-11 07:00 | stop_loss | 2 | -1.49 | +| PEPE | 10-11 07:00 | 10-11 08:00 | take_profit | 1 | +1.49 | +| FIL | 10-11 09:00 | 10-11 10:00 | stop_loss | 1 | -1.49 | +| APT | 10-11 10:00 | 10-11 11:00 | stop_loss | 1 | -1.49 | +| ARB | 10-11 09:00 | 10-11 11:00 | stop_loss | 2 | -1.49 | +| ATOM | 10-11 09:00 | 10-11 11:00 | stop_loss | 2 | -1.49 | +| INJ | 10-11 09:00 | 10-11 11:00 | stop_loss | 2 | -1.49 | +| OP | 10-11 09:00 | 10-11 11:00 | stop_loss | 2 | -1.49 | +| SEI | 10-11 09:00 | 10-11 11:00 | stop_loss | 2 | -1.49 | +| SUI | 10-11 09:00 | 10-11 11:00 | stop_loss | 2 | -1.49 | +| TIA | 10-11 09:00 | 10-11 11:00 | stop_loss | 2 | -1.49 | +| WIF | 10-11 09:00 | 10-11 11:00 | stop_loss | 2 | -1.49 | +| ETC | 10-11 09:00 | 10-11 12:00 | stop_loss | 3 | -1.49 | +| UNI | 10-11 09:00 | 10-11 13:00 | stop_loss | 4 | -1.49 | +| OP | 10-11 21:00 | 10-12 01:00 | stop_loss | 4 | -1.49 | +| FIL | 10-12 02:00 | 10-12 03:00 | take_profit | 1 | +1.49 | +| NEAR | 10-12 02:00 | 10-12 03:00 | take_profit | 1 | +1.49 | +| FET | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| KAS | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| KAS | 10-17 06:00 | 10-17 07:00 | stop_loss | 1 | -1.49 | +| LTC | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| TIA | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| WIF | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| INJ | 11-03 03:00 | 11-03 04:00 | stop_loss | 1 | -1.49 | +| KAS | 11-03 03:00 | 11-03 04:00 | stop_loss | 1 | -1.49 | +| OP | 11-03 03:00 | 11-03 04:00 | stop_loss | 1 | -1.49 | +| UNI | 11-03 03:00 | 11-03 04:00 | stop_loss | 1 | -1.49 | +| WIF | 11-03 03:00 | 11-03 05:00 | stop_loss | 2 | -1.49 | +| BONK | 11-03 03:00 | 11-03 06:00 | stop_loss | 3 | -1.49 | +| PEPE | 11-03 03:00 | 11-03 06:00 | stop_loss | 3 | -1.49 | +| RENDER | 11-03 03:00 | 11-03 06:00 | stop_loss | 3 | -1.49 | +| AVAX | 11-03 15:00 | 11-03 16:00 | take_profit | 1 | +1.49 | +| BONK | 11-03 15:00 | 11-03 16:00 | take_profit | 1 | +1.49 | +| INJ | 11-03 15:00 | 11-03 16:00 | take_profit | 1 | +1.49 | +| RENDER | 11-03 15:00 | 11-03 16:00 | take_profit | 1 | +1.49 | +| SUI | 11-03 15:00 | 11-03 16:00 | take_profit | 1 | +1.49 | +| KAS | 11-04 05:00 | 11-04 06:00 | stop_loss | 1 | -1.49 | +| FIL | 11-08 17:00 | 11-08 18:00 | stop_loss | 1 | -1.49 | +| FIL | 11-09 01:00 | 11-09 02:00 | stop_loss | 1 | -1.49 | +| FIL | 11-11 05:00 | 11-11 06:00 | take_profit | 1 | +1.49 | +| UNI | 11-12 15:00 | 11-12 16:00 | take_profit | 1 | +1.49 | +| TIA | 11-12 16:00 | 11-12 17:00 | stop_loss | 1 | -1.49 | +| INJ | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| WIF | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| FIL | 11-19 05:00 | 11-19 06:00 | stop_loss | 1 | -1.49 | +| TIA | 11-19 15:00 | 11-19 16:00 | stop_loss | 1 | -1.49 | +| UNI | 11-19 15:00 | 11-19 17:00 | take_profit | 2 | +1.49 | +| LTC | 11-20 16:00 | 11-20 17:00 | stop_loss | 1 | -1.49 | +| SEI | 11-20 16:00 | 11-20 17:00 | stop_loss | 1 | -1.49 | +| SUI | 11-20 16:00 | 11-20 17:00 | stop_loss | 1 | -1.49 | +| UNI | 11-20 16:00 | 11-20 17:00 | stop_loss | 1 | -1.49 | +| ARB | 11-20 18:00 | 11-20 19:00 | stop_loss | 1 | -1.49 | +| ATOM | 11-21 07:00 | 11-21 08:00 | take_profit | 1 | +1.49 | +| RENDER | 11-21 07:00 | 11-21 08:00 | take_profit | 1 | +1.49 | +| APT | 11-21 07:00 | 11-21 09:00 | stop_loss | 2 | -1.49 | +| FIL | 11-21 07:00 | 11-21 09:00 | stop_loss | 2 | -1.49 | +| INJ | 11-21 07:00 | 11-21 09:00 | stop_loss | 2 | -1.49 | +| OP | 11-21 07:00 | 11-21 09:00 | stop_loss | 2 | -1.49 | +| SEI | 11-21 07:00 | 11-21 09:00 | stop_loss | 2 | -1.49 | +| ARB | 11-21 07:00 | 11-21 10:00 | stop_loss | 3 | -1.49 | +| UNI | 11-21 07:00 | 11-21 10:00 | stop_loss | 3 | -1.49 | +| WIF | 11-22 04:00 | 11-22 05:00 | stop_loss | 1 | -1.49 | +| FIL | 12-01 00:00 | 12-01 01:00 | take_profit | 1 | +1.49 | +| SUI | 12-01 00:00 | 12-01 01:00 | take_profit | 1 | +1.49 | +| ARB | 12-01 00:00 | 12-01 03:00 | stop_loss | 3 | -1.49 | +| AVAX | 12-01 00:00 | 12-01 03:00 | stop_loss | 3 | -1.49 | +| BONK | 12-01 00:00 | 12-01 03:00 | trailing_stop | 3 | -0.61 | +| FET | 12-01 00:00 | 12-01 03:00 | stop_loss | 3 | -1.49 | +| INJ | 12-01 00:00 | 12-01 03:00 | stop_loss | 3 | -1.49 | +| NEAR | 12-01 00:00 | 12-01 03:00 | stop_loss | 3 | -1.49 | +| OP | 12-01 00:00 | 12-01 03:00 | stop_loss | 3 | -1.49 | +| RENDER | 12-01 00:00 | 12-01 03:00 | stop_loss | 3 | -1.49 | +| UNI | 12-01 00:00 | 12-01 03:00 | stop_loss | 3 | -1.49 | +| LTC | 12-01 00:00 | 12-01 04:00 | stop_loss | 4 | -1.49 | +| APT | 12-01 00:00 | 12-01 06:00 | stop_loss | 6 | -1.49 | +| ATOM | 12-01 00:00 | 12-01 06:00 | take_profit | 6 | +1.49 | +| WIF | 12-01 00:00 | 12-01 11:00 | stop_loss | 11 | -1.49 | +| SHIB | 12-01 00:00 | 12-01 12:00 | stop_loss | 12 | -1.49 | +| SUI | 12-12 17:00 | 12-13 02:00 | take_profit | 9 | +1.49 | +| APT | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| INJ | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| OP | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| TIA | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| FET | 12-18 19:00 | 12-18 21:00 | take_profit | 2 | +1.49 | +| INJ | 12-18 19:00 | 12-18 21:00 | take_profit | 2 | +1.49 | +| PEPE | 12-18 19:00 | 12-18 21:00 | take_profit | 2 | +1.49 | +| SUI | 01-06 18:00 | 01-06 21:00 | take_profit | 3 | +1.49 | +| APT | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| BONK | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| FET | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| INJ | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| NEAR | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| OP | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| TIA | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| WIF | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| APT | 01-19 00:00 | 01-19 01:00 | trailing_stop | 1 | -0.37 | +| PEPE | 01-19 00:00 | 01-19 01:00 | stop_loss | 1 | -1.49 | +| SEI | 01-19 00:00 | 01-19 01:00 | trailing_stop | 1 | -0.63 | +| SUI | 01-19 00:00 | 01-19 01:00 | stop_loss | 1 | -1.49 | +| WIF | 01-19 00:00 | 01-19 01:00 | take_profit | 1 | +1.49 | +| APT | 01-19 01:00 | 01-19 02:00 | take_profit | 1 | +1.49 | +| OP | 01-19 00:00 | 01-19 02:00 | take_profit | 2 | +1.49 | +| ARB | 01-19 01:00 | 01-19 03:00 | stop_loss | 2 | -1.49 | +| NEAR | 01-19 00:00 | 01-19 03:00 | trailing_stop | 3 | -0.15 | +| RENDER | 01-19 00:00 | 01-19 03:00 | take_profit | 3 | +1.49 | +| UNI | 01-19 00:00 | 01-19 03:00 | take_profit | 3 | +1.49 | +| BONK | 01-19 00:00 | 01-19 04:00 | take_profit | 4 | +1.49 | +| INJ | 01-19 00:00 | 01-19 04:00 | trailing_stop | 4 | -0.28 | +| SEI | 01-19 01:00 | 01-19 04:00 | stop_loss | 3 | -1.49 | +| TIA | 01-19 00:00 | 01-19 04:00 | stop_loss | 4 | -1.49 | +| FET | 01-19 00:00 | 01-19 05:00 | take_profit | 5 | +1.49 | +| FIL | 01-19 00:00 | 01-19 05:00 | take_profit | 5 | +1.49 | +| SUI | 01-19 02:00 | 01-19 05:00 | stop_loss | 3 | -1.49 | +| AVAX | 01-19 00:00 | 01-19 06:00 | trailing_stop | 6 | -0.53 | +| ATOM | 01-19 00:00 | 01-19 08:00 | take_profit | 8 | +1.49 | +| LTC | 01-19 00:00 | 01-19 08:00 | take_profit | 8 | +1.49 | +| ETC | 01-19 00:00 | 01-19 11:00 | take_profit | 11 | +1.49 | +| SHIB | 01-19 00:00 | 01-19 16:00 | trailing_stop | 16 | -0.23 | +| APT | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| ARB | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| FET | 01-31 18:00 | 01-31 19:00 | trailing_stop | 1 | -0.38 | +| INJ | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| KAS | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| NEAR | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| OP | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| PEPE | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| RENDER | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| SEI | 01-31 18:00 | 01-31 19:00 | trailing_stop | 1 | -0.28 | +| SHIB | 01-31 18:00 | 01-31 19:00 | trailing_stop | 1 | -0.34 | +| SUI | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| TIA | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| WIF | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| FIL | 01-31 18:00 | 01-31 20:00 | stop_loss | 2 | -1.49 | +| AVAX | 01-31 18:00 | 01-31 21:00 | take_profit | 3 | +1.49 | +| BONK | 01-31 18:00 | 01-31 21:00 | take_profit | 3 | +1.49 | +| ETC | 01-31 18:00 | 01-31 21:00 | trailing_stop | 3 | -0.64 | +| ARB | 01-31 22:00 | 01-31 23:00 | take_profit | 1 | +1.49 | +| OP | 01-31 22:00 | 01-31 23:00 | take_profit | 1 | +1.49 | +| WIF | 02-01 01:00 | 02-01 06:00 | trailing_stop | 5 | -0.61 | +| FET | 02-01 01:00 | 02-01 07:00 | take_profit | 6 | +1.49 | +| ARB | 02-01 01:00 | 02-01 10:00 | stop_loss | 9 | -1.49 | +| FIL | 02-01 01:00 | 02-01 10:00 | take_profit | 9 | +1.49 | +| OP | 02-03 16:00 | 02-03 17:00 | stop_loss | 1 | -1.49 | +| ETC | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| FET | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| FIL | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| NEAR | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| RENDER | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| SHIB | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| OP | 02-03 23:00 | 02-04 00:00 | trailing_stop | 1 | -0.49 | +| ARB | 02-05 15:00 | 02-05 16:00 | take_profit | 1 | +1.49 | +| ATOM | 02-05 17:00 | 02-05 18:00 | take_profit | 1 | +1.49 | +| OP | 02-05 17:00 | 02-05 18:00 | stop_loss | 1 | -1.49 | +| APT | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| ARB | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| ATOM | 02-06 00:00 | 02-06 01:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| BONK | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| FET | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| FIL | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| INJ | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| KAS | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| LTC | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| NEAR | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| OP | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| PEPE | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| RENDER | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| SEI | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| SHIB | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| SUI | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| TIA | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| UNI | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| WIF | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| OP | 02-06 04:00 | 02-06 05:00 | take_profit | 1 | +1.49 | +| UNI | 02-12 16:00 | 02-12 18:00 | stop_loss | 2 | -1.49 | +| OP | 02-20 02:00 | 02-20 03:00 | stop_loss | 1 | -1.49 | +| ARB | 02-23 01:00 | 02-23 02:00 | trailing_stop | 1 | -0.37 | +| BONK | 02-23 01:00 | 02-23 02:00 | trailing_stop | 1 | -0.23 | +| FET | 02-23 01:00 | 02-23 02:00 | trailing_stop | 1 | -0.40 | +| SUI | 02-23 01:00 | 02-23 02:00 | trailing_stop | 1 | -0.65 | +| OP | 02-23 01:00 | 02-23 04:00 | trailing_stop | 3 | -0.67 | +| TIA | 02-23 01:00 | 02-23 04:00 | stop_loss | 3 | -1.49 | +| AVAX | 02-23 01:00 | 02-23 06:00 | take_profit | 5 | +1.49 | +| FIL | 02-23 01:00 | 02-23 06:00 | take_profit | 5 | +1.49 | +| UNI | 02-23 01:00 | 02-23 06:00 | take_profit | 5 | +1.49 | +| WIF | 02-23 01:00 | 02-23 06:00 | take_profit | 5 | +1.49 | +| ARB | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| BONK | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| ETC | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| FET | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| FIL | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| INJ | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| OP | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| PEPE | 02-28 06:00 | 02-28 07:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| SUI | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| TIA | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| WIF | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| WIF | 03-06 09:00 | 03-06 10:00 | stop_loss | 1 | -1.49 | +| FIL | 03-10 18:00 | 03-10 19:00 | stop_loss | 1 | -1.49 | +| KAS | 03-29 14:00 | 03-29 18:00 | trailing_stop | 4 | -0.67 | +| UNI | 04-02 04:00 | 04-02 13:00 | stop_loss | 9 | -1.49 | +| UNI | 04-02 13:00 | 04-02 14:00 | trailing_stop | 1 | +0.07 | +| FIL | 05-10 20:00 | 05-10 22:00 | take_profit | 2 | +1.49 | +| APT | 05-15 13:00 | 05-15 16:00 | trailing_stop | 3 | +0.14 | +| BONK | 05-15 13:00 | 05-15 16:00 | take_profit | 3 | +1.49 | +| TIA | 05-15 13:00 | 05-15 16:00 | take_profit | 3 | +1.49 | +| INJ | 05-15 13:00 | 05-15 17:00 | take_profit | 4 | +1.49 | +| UNI | 05-27 23:00 | 05-28 01:00 | stop_loss | 2 | -1.49 | +| FET | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| TIA | 06-02 15:00 | 06-02 16:00 | take_profit | 1 | +1.49 | +| ARB | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| BONK | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| INJ | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| OP | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| SUI | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| BONK | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| FET | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| OP | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| SUI | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| TIA | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| SEI | 06-04 02:00 | 06-04 05:00 | stop_loss | 3 | -1.49 | +| NEAR | 06-04 14:00 | 06-04 15:00 | take_profit | 1 | +1.49 | +| INJ | 06-05 03:00 | 06-05 04:00 | take_profit | 1 | +1.49 | +| TIA | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| FIL | 06-05 15:00 | 06-05 16:00 | stop_loss | 1 | -1.49 | +| AVAX | 06-05 19:00 | 06-05 20:00 | stop_loss | 1 | -1.49 | +| AVAX | 06-06 04:00 | 06-06 05:00 | take_profit | 1 | +1.49 | +| BONK | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| LTC | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| OP | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| WIF | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| APT | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | +0.05 | +| AVAX | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.24 | +| BONK | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | +0.09 | +| SUI | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.61 | +| FET | 06-18 15:00 | 06-18 19:00 | trailing_stop | 4 | -0.04 | +| FET | 06-23 08:00 | 06-23 11:00 | trailing_stop | 3 | +0.03 | +| FIL | 06-23 08:00 | 06-23 13:00 | take_profit | 5 | +1.49 | +| FIL | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| APT | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| ARB | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| BONK | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| FIL | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| NEAR | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| PEPE | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| RENDER | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| SHIB | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| TIA | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| WIF | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| SHIB | 06-25 14:00 | 06-25 15:00 | stop_loss | 1 | -1.49 | +| BONK | 07-06 17:00 | 07-06 18:00 | stop_loss | 1 | -1.49 | +| BONK | 07-06 18:00 | 07-06 19:00 | trailing_stop | 1 | -0.68 | +| BONK | 07-18 09:00 | 07-18 11:00 | stop_loss | 2 | -1.49 | +| OP | 07-27 22:00 | 07-27 23:00 | stop_loss | 1 | -1.49 | +| SHIB | 07-28 00:00 | 07-28 01:00 | stop_loss | 1 | -1.49 | +| TON | 08-04 00:00 | 08-04 01:00 | take_profit | 1 | +1.49 | +| UNI | 08-12 07:00 | 08-12 08:00 | stop_loss | 1 | -1.49 | +| UNI | 08-14 11:00 | 08-14 12:00 | trailing_stop | 1 | -0.35 | + +## Допущения + +- Цены: реальные 1h-серии бирж (price-source=allowlist; kucoin: 32, bitstamp: 1). +- ML-модель обучена на данных, включающих тестовый месяц (in-sample только для ML-части; индикаторная часть честная). +- Funding/orderbook нейтральны (0 / BALANCED). +- TP/SL исполняются по уровням при пересечении high/low бара; SL приоритетнее TP. +- Свободный профиль: без лимита позиций / DD-kill / daily-kill; каждый вход — фиксированные $200, лимит кэша не применяется (синтетический учёт). diff --git a/docs/TRADING_BACKTEST_1Y_ALLOWLIST_FREE_NO_ML_2026-08-15_RU.md b/docs/TRADING_BACKTEST_1Y_ALLOWLIST_FREE_NO_ML_2026-08-15_RU.md new file mode 100644 index 000000000..0defde05e --- /dev/null +++ b/docs/TRADING_BACKTEST_1Y_ALLOWLIST_FREE_NO_ML_2026-08-15_RU.md @@ -0,0 +1,10790 @@ +# Тестовый замер: 12 мес. торговли по сигналам без портфельных kill-switch (свободный профиль, БЕЗ ML gate) (Directional v2) + +**Период:** 2025-08-15 15:00 UTC → 2026-08-15 15:00 UTC (12 календарн. мес., 8761 баров 1h) +**Стартовый капитал:** $1,000.00 + +## Результат алгоритма + +- **Итоговый капитал: $-12,389.05** +- **PnL портфеля: -1338.91%** +- Сделок: 10682 (win 2669, 25.0%) +- Средняя сделка: -0.627% | Комиссии и проскальзывание: $9598.50 + +## Реальная динамика валют (Buy&Hold за тот же месяц) + +- **Средняя по 33 валютам: -66.28%** (медиана -70.73%) +- Лучшая: **TRX -5.61%** +- Худшая: **BONK -89.81%** + +| Валюта | Buy&Hold % | +|---|---:| +| TRX | -5.61 | +| TON | -9.24 | +| BNB | -25.39 | +| NEAR | -38.33 | +| BTC | -46.25 | +| LINK | -56.03 | +| ETH | -57.48 | +| SOL | -59.32 | +| LTC | -62.49 | +| SHIB | -63.67 | +| ATOM | -66.32 | +| RENDER | -66.45 | +| XRP | -66.90 | +| POL | -67.32 | +| DOGE | -68.50 | +| UNI | -69.20 | +| INJ | -70.73 | +| ETC | -71.16 | +| KAS | -71.32 | +| FIL | -71.54 | +| AVAX | -72.34 | +| PEPE | -75.22 | +| DOT | -79.80 | +| ADA | -80.67 | +| FET | -80.78 | +| SUI | -81.31 | +| TIA | -82.15 | +| WIF | -83.96 | +| ARB | -84.52 | +| SEI | -87.33 | +| OP | -88.04 | +| APT | -88.13 | +| BONK | -89.81 | + +## Сравнение + +- Алгоритм -1338.91% vs средняя валюта -66.28% → **-1272.62 п.п.** +- Алгоритм -1338.91% vs лучшая валюта (TRX -5.61%) +- Алгоритм -1338.91% vs худшая валюта (BONK -89.81%) + +## Качество сигналов (per-asset) + +- Profit factor: 0.36 (gross +$7376.02 / -$20765.07) +- Максимум одновременных позиций: 22 + +| Актив | Сделок | PnL $ | +|---|---:|---:| +| TON | 22 | -11.94 | +| TRX | 226 | -195.55 | +| LTC | 427 | -457.73 | +| ATOM | 448 | -521.41 | +| RENDER | 504 | -559.61 | +| NEAR | 448 | -584.90 | +| SUI | 493 | -587.52 | +| SHIB | 450 | -589.13 | +| ETC | 456 | -600.33 | +| KAS | 468 | -614.54 | +| WIF | 513 | -619.24 | +| PEPE | 510 | -623.62 | +| APT | 524 | -627.40 | +| AVAX | 496 | -637.29 | +| OP | 533 | -657.77 | +| ARB | 515 | -665.20 | +| UNI | 516 | -667.72 | +| TIA | 520 | -669.95 | +| FET | 533 | -675.60 | +| BONK | 538 | -681.48 | +| INJ | 487 | -683.13 | +| SEI | 499 | -717.65 | +| FIL | 556 | -740.35 | + +## Блокировки входов (свободный профиль) + +- OK: 10682 +- rl_veto: 7847 + +## Сделки + +| Актив | Вход | Выход | Причина | Баров | PnL % | +|---|---|---|---|---:|---:| +| FET | 08-15 17:00 | 08-15 18:00 | stop_loss | 1 | -1.49 | +| KAS | 08-15 17:00 | 08-15 18:00 | stop_loss | 1 | -1.49 | +| OP | 08-15 17:00 | 08-15 18:00 | stop_loss | 1 | -1.49 | +| PEPE | 08-15 17:00 | 08-15 18:00 | stop_loss | 1 | -1.49 | +| SEI | 08-15 17:00 | 08-15 18:00 | stop_loss | 1 | -1.49 | +| SUI | 08-15 17:00 | 08-15 18:00 | stop_loss | 1 | -1.49 | +| UNI | 08-15 17:00 | 08-15 18:00 | stop_loss | 1 | -1.49 | +| WIF | 08-15 17:00 | 08-15 18:00 | stop_loss | 1 | -1.49 | +| APT | 08-15 17:00 | 08-15 20:00 | stop_loss | 3 | -1.49 | +| FIL | 08-15 17:00 | 08-15 20:00 | stop_loss | 3 | -1.49 | +| TIA | 08-15 17:00 | 08-15 20:00 | take_profit | 3 | +1.49 | +| ARB | 08-15 20:00 | 08-15 22:00 | take_profit | 2 | +1.49 | +| OP | 08-15 20:00 | 08-15 22:00 | trailing_stop | 2 | -0.06 | +| SEI | 08-15 20:00 | 08-15 22:00 | trailing_stop | 2 | -0.47 | +| ETC | 08-15 17:00 | 08-15 23:00 | take_profit | 6 | +1.49 | +| WIF | 08-15 20:00 | 08-15 23:00 | take_profit | 3 | +1.49 | +| INJ | 08-15 23:00 | 08-16 00:00 | trailing_stop | 1 | -0.43 | +| SEI | 08-15 23:00 | 08-16 00:00 | trailing_stop | 1 | -0.59 | +| ARB | 08-15 23:00 | 08-16 07:00 | trailing_stop | 8 | -0.49 | +| TRX | 08-15 17:00 | 08-16 13:00 | stop_loss | 20 | -1.49 | +| TRX | 08-16 13:00 | 08-17 16:00 | take_profit | 27 | +1.49 | +| BONK | 08-17 18:00 | 08-18 00:00 | stop_loss | 6 | -1.49 | +| LTC | 08-17 21:00 | 08-18 01:00 | stop_loss | 4 | -1.49 | +| APT | 08-18 01:00 | 08-18 02:00 | stop_loss | 1 | -1.49 | +| ATOM | 08-18 01:00 | 08-18 02:00 | stop_loss | 1 | -1.49 | +| BONK | 08-18 01:00 | 08-18 02:00 | stop_loss | 1 | -1.49 | +| ETC | 08-18 01:00 | 08-18 02:00 | stop_loss | 1 | -1.49 | +| FET | 08-18 01:00 | 08-18 02:00 | stop_loss | 1 | -1.49 | +| FIL | 08-18 01:00 | 08-18 02:00 | stop_loss | 1 | -1.49 | +| KAS | 08-18 01:00 | 08-18 02:00 | stop_loss | 1 | -1.49 | +| LTC | 08-18 01:00 | 08-18 02:00 | stop_loss | 1 | -1.49 | +| NEAR | 08-18 01:00 | 08-18 02:00 | stop_loss | 1 | -1.49 | +| OP | 08-18 01:00 | 08-18 02:00 | stop_loss | 1 | -1.49 | +| RENDER | 08-18 01:00 | 08-18 02:00 | stop_loss | 1 | -1.49 | +| SEI | 08-18 01:00 | 08-18 02:00 | stop_loss | 1 | -1.49 | +| SHIB | 08-18 01:00 | 08-18 02:00 | stop_loss | 1 | -1.49 | +| SUI | 08-18 01:00 | 08-18 02:00 | stop_loss | 1 | -1.49 | +| TIA | 08-18 01:00 | 08-18 02:00 | stop_loss | 1 | -1.49 | +| AVAX | 08-18 02:00 | 08-18 03:00 | stop_loss | 1 | -1.49 | +| BONK | 08-18 02:00 | 08-18 03:00 | stop_loss | 1 | -1.49 | +| ETC | 08-18 02:00 | 08-18 03:00 | stop_loss | 1 | -1.49 | +| FET | 08-18 02:00 | 08-18 03:00 | stop_loss | 1 | -1.49 | +| FIL | 08-18 02:00 | 08-18 03:00 | stop_loss | 1 | -1.49 | +| KAS | 08-18 02:00 | 08-18 03:00 | stop_loss | 1 | -1.49 | +| OP | 08-18 02:00 | 08-18 03:00 | stop_loss | 1 | -1.49 | +| PEPE | 08-18 02:00 | 08-18 03:00 | stop_loss | 1 | -1.49 | +| RENDER | 08-18 02:00 | 08-18 03:00 | stop_loss | 1 | -1.49 | +| SEI | 08-18 02:00 | 08-18 03:00 | stop_loss | 1 | -1.49 | +| TIA | 08-18 02:00 | 08-18 03:00 | stop_loss | 1 | -1.49 | +| UNI | 08-18 02:00 | 08-18 03:00 | stop_loss | 1 | -1.49 | +| WIF | 08-18 02:00 | 08-18 03:00 | stop_loss | 1 | -1.49 | +| SEI | 08-18 03:00 | 08-18 04:00 | take_profit | 1 | +1.49 | +| SUI | 08-18 02:00 | 08-18 05:00 | stop_loss | 3 | -1.49 | +| TIA | 08-18 03:00 | 08-18 05:00 | stop_loss | 2 | -1.49 | +| ARB | 08-18 05:00 | 08-18 06:00 | stop_loss | 1 | -1.49 | +| ATOM | 08-18 02:00 | 08-18 06:00 | stop_loss | 4 | -1.49 | +| AVAX | 08-18 03:00 | 08-18 06:00 | stop_loss | 3 | -1.49 | +| BONK | 08-18 03:00 | 08-18 06:00 | stop_loss | 3 | -1.49 | +| ETC | 08-18 03:00 | 08-18 06:00 | stop_loss | 3 | -1.49 | +| FET | 08-18 03:00 | 08-18 06:00 | stop_loss | 3 | -1.49 | +| FIL | 08-18 03:00 | 08-18 06:00 | stop_loss | 3 | -1.49 | +| INJ | 08-18 05:00 | 08-18 06:00 | stop_loss | 1 | -1.49 | +| KAS | 08-18 03:00 | 08-18 06:00 | stop_loss | 3 | -1.49 | +| LTC | 08-18 02:00 | 08-18 06:00 | trailing_stop | 4 | -0.64 | +| NEAR | 08-18 02:00 | 08-18 06:00 | stop_loss | 4 | -1.49 | +| OP | 08-18 03:00 | 08-18 06:00 | stop_loss | 3 | -1.49 | +| PEPE | 08-18 03:00 | 08-18 06:00 | stop_loss | 3 | -1.49 | +| RENDER | 08-18 03:00 | 08-18 06:00 | stop_loss | 3 | -1.49 | +| SHIB | 08-18 02:00 | 08-18 06:00 | stop_loss | 4 | -1.49 | +| UNI | 08-18 03:00 | 08-18 06:00 | stop_loss | 3 | -1.49 | +| APT | 08-18 02:00 | 08-18 09:00 | stop_loss | 7 | -1.49 | +| ETC | 08-18 06:00 | 08-18 09:00 | trailing_stop | 3 | -0.63 | +| FIL | 08-18 06:00 | 08-18 09:00 | stop_loss | 3 | -1.49 | +| INJ | 08-18 06:00 | 08-18 09:00 | stop_loss | 3 | -1.49 | +| KAS | 08-18 06:00 | 08-18 09:00 | stop_loss | 3 | -1.49 | +| RENDER | 08-18 06:00 | 08-18 09:00 | stop_loss | 3 | -1.49 | +| SUI | 08-18 06:00 | 08-18 09:00 | stop_loss | 3 | -1.49 | +| TIA | 08-18 06:00 | 08-18 09:00 | trailing_stop | 3 | -0.49 | +| ATOM | 08-18 06:00 | 08-18 12:00 | take_profit | 6 | +1.49 | +| AVAX | 08-18 06:00 | 08-18 12:00 | take_profit | 6 | +1.49 | +| FET | 08-18 11:00 | 08-18 12:00 | trailing_stop | 1 | -0.44 | +| SHIB | 08-18 06:00 | 08-18 12:00 | trailing_stop | 6 | -0.45 | +| TIA | 08-18 11:00 | 08-18 12:00 | trailing_stop | 1 | -0.56 | +| UNI | 08-18 06:00 | 08-18 12:00 | take_profit | 6 | +1.49 | +| ATOM | 08-18 12:00 | 08-18 13:00 | stop_loss | 1 | -1.49 | +| AVAX | 08-18 12:00 | 08-18 13:00 | stop_loss | 1 | -1.49 | +| BONK | 08-18 12:00 | 08-18 13:00 | stop_loss | 1 | -1.49 | +| FET | 08-18 12:00 | 08-18 13:00 | stop_loss | 1 | -1.49 | +| NEAR | 08-18 12:00 | 08-18 13:00 | stop_loss | 1 | -1.49 | +| PEPE | 08-18 12:00 | 08-18 13:00 | stop_loss | 1 | -1.49 | +| TIA | 08-18 12:00 | 08-18 13:00 | stop_loss | 1 | -1.49 | +| WIF | 08-18 12:00 | 08-18 13:00 | stop_loss | 1 | -1.49 | +| BONK | 08-18 13:00 | 08-18 14:00 | trailing_stop | 1 | -0.55 | +| KAS | 08-18 12:00 | 08-18 14:00 | stop_loss | 2 | -1.49 | +| OP | 08-18 13:00 | 08-18 14:00 | stop_loss | 1 | -1.49 | +| WIF | 08-18 13:00 | 08-18 14:00 | trailing_stop | 1 | -0.40 | +| BONK | 08-18 14:00 | 08-18 15:00 | stop_loss | 1 | -1.49 | +| INJ | 08-18 13:00 | 08-18 15:00 | trailing_stop | 2 | -0.05 | +| TIA | 08-18 13:00 | 08-18 15:00 | trailing_stop | 2 | -0.66 | +| LTC | 08-18 11:00 | 08-18 16:00 | trailing_stop | 5 | -0.23 | +| OP | 08-18 14:00 | 08-18 16:00 | stop_loss | 2 | -1.49 | +| APT | 08-18 13:00 | 08-18 17:00 | take_profit | 4 | +1.49 | +| SHIB | 08-18 13:00 | 08-18 17:00 | take_profit | 4 | +1.49 | +| SUI | 08-18 14:00 | 08-18 17:00 | take_profit | 3 | +1.49 | +| AVAX | 08-18 13:00 | 08-18 18:00 | trailing_stop | 5 | -0.45 | +| FET | 08-18 13:00 | 08-18 20:00 | trailing_stop | 7 | -0.45 | +| NEAR | 08-18 13:00 | 08-18 20:00 | trailing_stop | 7 | -0.64 | +| ETC | 08-18 11:00 | 08-18 21:00 | confirmed_bearish_exit | 10 | +0.89 | +| ATOM | 08-18 13:00 | 08-18 22:00 | take_profit | 9 | +1.49 | +| FIL | 08-18 13:00 | 08-18 22:00 | take_profit | 9 | +1.49 | +| RENDER | 08-18 14:00 | 08-18 23:00 | trailing_stop | 9 | -0.59 | +| UNI | 08-18 14:00 | 08-18 23:00 | trailing_stop | 9 | -0.33 | +| KAS | 08-18 14:00 | 08-19 00:00 | stop_loss | 10 | -1.49 | +| PEPE | 08-18 14:00 | 08-19 00:00 | stop_loss | 10 | -1.49 | +| TRX | 08-18 02:00 | 08-19 03:00 | trailing_stop | 25 | -0.53 | +| BONK | 08-19 03:00 | 08-19 04:00 | stop_loss | 1 | -1.49 | +| LTC | 08-19 03:00 | 08-19 04:00 | trailing_stop | 1 | -0.35 | +| SHIB | 08-19 03:00 | 08-19 04:00 | trailing_stop | 1 | -0.64 | +| APT | 08-19 04:00 | 08-19 06:00 | stop_loss | 2 | -1.49 | +| FET | 08-19 03:00 | 08-19 09:00 | take_profit | 6 | +1.49 | +| KAS | 08-19 03:00 | 08-19 09:00 | take_profit | 6 | +1.49 | +| SEI | 08-19 05:00 | 08-19 09:00 | take_profit | 4 | +1.49 | +| SUI | 08-19 07:00 | 08-19 10:00 | take_profit | 3 | +1.49 | +| APT | 08-19 06:00 | 08-19 13:00 | stop_loss | 7 | -1.49 | +| ATOM | 08-19 03:00 | 08-19 13:00 | trailing_stop | 10 | -0.15 | +| AVAX | 08-19 12:00 | 08-19 13:00 | stop_loss | 1 | -1.49 | +| FIL | 08-19 03:00 | 08-19 13:00 | take_profit | 10 | +1.49 | +| NEAR | 08-19 12:00 | 08-19 13:00 | stop_loss | 1 | -1.49 | +| APT | 08-19 13:00 | 08-19 14:00 | stop_loss | 1 | -1.49 | +| ETC | 08-19 03:00 | 08-19 14:00 | trailing_stop | 11 | -0.02 | +| BONK | 08-19 14:00 | 08-19 16:00 | stop_loss | 2 | -1.49 | +| ETC | 08-19 14:00 | 08-19 16:00 | stop_loss | 2 | -1.49 | +| PEPE | 08-19 14:00 | 08-19 16:00 | stop_loss | 2 | -1.49 | +| SHIB | 08-19 14:00 | 08-19 16:00 | stop_loss | 2 | -1.49 | +| TIA | 08-19 14:00 | 08-19 16:00 | stop_loss | 2 | -1.49 | +| ARB | 08-19 14:00 | 08-19 17:00 | stop_loss | 3 | -1.49 | +| UNI | 08-19 16:00 | 08-19 17:00 | stop_loss | 1 | -1.49 | +| BONK | 08-19 16:00 | 08-19 18:00 | stop_loss | 2 | -1.49 | +| LTC | 08-19 14:00 | 08-19 18:00 | stop_loss | 4 | -1.49 | +| OP | 08-19 16:00 | 08-19 18:00 | stop_loss | 2 | -1.49 | +| TIA | 08-19 16:00 | 08-19 18:00 | stop_loss | 2 | -1.49 | +| WIF | 08-19 14:00 | 08-19 18:00 | stop_loss | 4 | -1.49 | +| ETC | 08-19 16:00 | 08-19 19:00 | stop_loss | 3 | -1.49 | +| RENDER | 08-19 16:00 | 08-19 19:00 | stop_loss | 3 | -1.49 | +| SEI | 08-19 16:00 | 08-19 19:00 | stop_loss | 3 | -1.49 | +| SHIB | 08-19 16:00 | 08-19 19:00 | stop_loss | 3 | -1.49 | +| TIA | 08-19 18:00 | 08-19 19:00 | stop_loss | 1 | -1.49 | +| BONK | 08-19 18:00 | 08-19 20:00 | trailing_stop | 2 | -0.31 | +| PEPE | 08-19 18:00 | 08-19 20:00 | trailing_stop | 2 | -0.28 | +| UNI | 08-19 18:00 | 08-19 20:00 | trailing_stop | 2 | -0.65 | +| WIF | 08-19 18:00 | 08-19 20:00 | trailing_stop | 2 | +0.16 | +| INJ | 08-19 18:00 | 08-19 23:00 | stop_loss | 5 | -1.49 | +| NEAR | 08-19 18:00 | 08-19 23:00 | stop_loss | 5 | -1.49 | +| TIA | 08-19 19:00 | 08-19 23:00 | trailing_stop | 4 | -0.66 | +| ARB | 08-19 23:00 | 08-20 01:00 | trailing_stop | 2 | +0.05 | +| KAS | 08-19 23:00 | 08-20 01:00 | trailing_stop | 2 | -0.56 | +| WIF | 08-19 23:00 | 08-20 03:00 | take_profit | 4 | +1.49 | +| ETC | 08-19 23:00 | 08-20 06:00 | take_profit | 7 | +1.49 | +| LTC | 08-19 23:00 | 08-20 08:00 | take_profit | 9 | +1.49 | +| RENDER | 08-20 02:00 | 08-20 08:00 | trailing_stop | 6 | -0.40 | +| SUI | 08-20 02:00 | 08-20 08:00 | trailing_stop | 6 | +0.03 | +| TIA | 08-20 03:00 | 08-20 08:00 | take_profit | 5 | +1.49 | +| UNI | 08-20 02:00 | 08-20 08:00 | take_profit | 6 | +1.49 | +| BONK | 08-20 03:00 | 08-20 11:00 | stop_loss | 8 | -1.49 | +| PEPE | 08-20 03:00 | 08-20 11:00 | trailing_stop | 8 | -0.68 | +| SHIB | 08-20 03:00 | 08-20 11:00 | trailing_stop | 8 | -0.63 | +| ARB | 08-21 09:00 | 08-21 12:00 | stop_loss | 3 | -1.49 | +| BONK | 08-21 09:00 | 08-21 12:00 | stop_loss | 3 | -1.49 | +| FIL | 08-21 09:00 | 08-21 12:00 | stop_loss | 3 | -1.49 | +| INJ | 08-21 09:00 | 08-21 12:00 | stop_loss | 3 | -1.49 | +| NEAR | 08-21 09:00 | 08-21 12:00 | stop_loss | 3 | -1.49 | +| OP | 08-21 09:00 | 08-21 12:00 | stop_loss | 3 | -1.49 | +| PEPE | 08-21 09:00 | 08-21 12:00 | stop_loss | 3 | -1.49 | +| RENDER | 08-21 09:00 | 08-21 12:00 | stop_loss | 3 | -1.49 | +| SUI | 08-21 09:00 | 08-21 12:00 | stop_loss | 3 | -1.49 | +| TIA | 08-21 09:00 | 08-21 12:00 | stop_loss | 3 | -1.49 | +| APT | 08-21 09:00 | 08-21 14:00 | stop_loss | 5 | -1.49 | +| ARB | 08-21 12:00 | 08-21 14:00 | take_profit | 2 | +1.49 | +| OP | 08-21 12:00 | 08-21 14:00 | take_profit | 2 | +1.49 | +| SUI | 08-21 12:00 | 08-21 14:00 | take_profit | 2 | +1.49 | +| WIF | 08-21 10:00 | 08-21 14:00 | stop_loss | 4 | -1.49 | +| ETC | 08-21 09:00 | 08-21 15:00 | stop_loss | 6 | -1.49 | +| LTC | 08-21 09:00 | 08-21 15:00 | stop_loss | 6 | -1.49 | +| PEPE | 08-21 12:00 | 08-21 15:00 | stop_loss | 3 | -1.49 | +| SEI | 08-21 09:00 | 08-21 15:00 | stop_loss | 6 | -1.49 | +| TIA | 08-21 12:00 | 08-21 15:00 | stop_loss | 3 | -1.49 | +| AVAX | 08-21 09:00 | 08-21 16:00 | stop_loss | 7 | -1.49 | +| NEAR | 08-21 12:00 | 08-21 16:00 | stop_loss | 4 | -1.49 | +| UNI | 08-21 12:00 | 08-21 16:00 | stop_loss | 4 | -1.49 | +| FET | 08-21 09:00 | 08-21 17:00 | stop_loss | 8 | -1.49 | +| KAS | 08-21 09:00 | 08-21 17:00 | trailing_stop | 8 | -0.69 | +| WIF | 08-21 15:00 | 08-21 18:00 | take_profit | 3 | +1.49 | +| PEPE | 08-21 15:00 | 08-21 19:00 | take_profit | 4 | +1.49 | +| ETC | 08-21 15:00 | 08-21 20:00 | trailing_stop | 5 | -0.64 | +| RENDER | 08-21 15:00 | 08-21 20:00 | trailing_stop | 5 | -0.63 | +| ARB | 08-21 20:00 | 08-21 21:00 | take_profit | 1 | +1.49 | +| FIL | 08-21 12:00 | 08-21 23:00 | trailing_stop | 11 | -0.65 | +| TIA | 08-21 15:00 | 08-21 23:00 | trailing_stop | 8 | -0.48 | +| APT | 08-21 14:00 | 08-22 01:00 | trailing_stop | 11 | -0.27 | +| FET | 08-21 19:00 | 08-22 01:00 | stop_loss | 6 | -1.49 | +| SUI | 08-21 20:00 | 08-22 01:00 | stop_loss | 5 | -1.49 | +| WIF | 08-21 19:00 | 08-22 01:00 | trailing_stop | 6 | -0.62 | +| PEPE | 08-21 19:00 | 08-22 02:00 | take_profit | 7 | +1.49 | +| LTC | 08-21 15:00 | 08-22 03:00 | take_profit | 12 | +1.49 | +| AVAX | 08-21 16:00 | 08-22 06:00 | trailing_stop | 14 | -0.58 | +| TRX | 08-21 12:00 | 08-22 07:00 | take_profit | 19 | +1.49 | +| NEAR | 08-21 23:00 | 08-22 11:00 | stop_loss | 12 | -1.49 | +| SHIB | 08-21 12:00 | 08-22 11:00 | stop_loss | 23 | -1.49 | +| APT | 08-22 11:00 | 08-22 12:00 | stop_loss | 1 | -1.49 | +| ATOM | 08-22 11:00 | 08-22 12:00 | stop_loss | 1 | -1.49 | +| BONK | 08-22 11:00 | 08-22 12:00 | stop_loss | 1 | -1.49 | +| FET | 08-22 11:00 | 08-22 12:00 | stop_loss | 1 | -1.49 | +| FIL | 08-22 11:00 | 08-22 12:00 | stop_loss | 1 | -1.49 | +| NEAR | 08-22 11:00 | 08-22 12:00 | stop_loss | 1 | -1.49 | +| PEPE | 08-22 11:00 | 08-22 12:00 | stop_loss | 1 | -1.49 | +| RENDER | 08-22 11:00 | 08-22 12:00 | stop_loss | 1 | -1.49 | +| SEI | 08-22 11:00 | 08-22 12:00 | stop_loss | 1 | -1.49 | +| SUI | 08-22 11:00 | 08-22 12:00 | stop_loss | 1 | -1.49 | +| TIA | 08-22 11:00 | 08-22 12:00 | stop_loss | 1 | -1.49 | +| WIF | 08-22 10:00 | 08-22 12:00 | stop_loss | 2 | -1.49 | +| ARB | 08-22 12:00 | 08-22 13:00 | take_profit | 1 | +1.49 | +| BONK | 08-22 12:00 | 08-22 13:00 | take_profit | 1 | +1.49 | +| PEPE | 08-22 12:00 | 08-22 13:00 | stop_loss | 1 | -1.49 | +| TIA | 08-22 12:00 | 08-22 13:00 | take_profit | 1 | +1.49 | +| WIF | 08-22 12:00 | 08-22 13:00 | stop_loss | 1 | -1.49 | +| APT | 08-22 12:00 | 08-22 14:00 | take_profit | 2 | +1.49 | +| ATOM | 08-22 12:00 | 08-22 14:00 | take_profit | 2 | +1.49 | +| FET | 08-22 12:00 | 08-22 14:00 | take_profit | 2 | +1.49 | +| FIL | 08-22 12:00 | 08-22 14:00 | take_profit | 2 | +1.49 | +| LTC | 08-22 12:00 | 08-22 14:00 | take_profit | 2 | +1.49 | +| NEAR | 08-22 12:00 | 08-22 14:00 | take_profit | 2 | +1.49 | +| OP | 08-22 12:00 | 08-22 14:00 | take_profit | 2 | +1.49 | +| PEPE | 08-22 13:00 | 08-22 14:00 | take_profit | 1 | +1.49 | +| RENDER | 08-22 12:00 | 08-22 14:00 | take_profit | 2 | +1.49 | +| SEI | 08-22 12:00 | 08-22 14:00 | take_profit | 2 | +1.49 | +| SHIB | 08-22 12:00 | 08-22 14:00 | take_profit | 2 | +1.49 | +| SUI | 08-22 12:00 | 08-22 14:00 | take_profit | 2 | +1.49 | +| UNI | 08-22 12:00 | 08-22 14:00 | take_profit | 2 | +1.49 | +| WIF | 08-22 13:00 | 08-22 14:00 | take_profit | 1 | +1.49 | +| WIF | 08-23 13:00 | 08-23 15:00 | trailing_stop | 2 | -0.11 | +| INJ | 08-23 10:00 | 08-23 19:00 | take_profit | 9 | +1.49 | +| UNI | 08-23 10:00 | 08-24 00:00 | take_profit | 14 | +1.49 | +| FIL | 08-23 11:00 | 08-24 01:00 | stop_loss | 14 | -1.49 | +| TIA | 08-23 20:00 | 08-24 01:00 | stop_loss | 5 | -1.49 | +| ETC | 08-23 07:00 | 08-24 02:00 | trailing_stop | 19 | -0.56 | +| FET | 08-23 07:00 | 08-24 03:00 | trailing_stop | 20 | -0.62 | +| PEPE | 08-23 19:00 | 08-24 03:00 | stop_loss | 8 | -1.49 | +| WIF | 08-23 19:00 | 08-24 05:00 | stop_loss | 10 | -1.49 | +| ATOM | 08-24 04:00 | 08-24 06:00 | stop_loss | 2 | -1.49 | +| FIL | 08-24 05:00 | 08-24 06:00 | stop_loss | 1 | -1.49 | +| SHIB | 08-24 05:00 | 08-24 06:00 | stop_loss | 1 | -1.49 | +| LTC | 08-23 19:00 | 08-24 07:00 | stop_loss | 12 | -1.49 | +| RENDER | 08-24 06:00 | 08-24 08:00 | stop_loss | 2 | -1.49 | +| APT | 08-24 06:00 | 08-24 10:00 | stop_loss | 4 | -1.49 | +| ARB | 08-24 06:00 | 08-24 10:00 | stop_loss | 4 | -1.49 | +| ATOM | 08-24 06:00 | 08-24 10:00 | stop_loss | 4 | -1.49 | +| BONK | 08-24 06:00 | 08-24 10:00 | stop_loss | 4 | -1.49 | +| ETC | 08-24 06:00 | 08-24 10:00 | stop_loss | 4 | -1.49 | +| FET | 08-24 06:00 | 08-24 10:00 | stop_loss | 4 | -1.49 | +| FIL | 08-24 06:00 | 08-24 10:00 | stop_loss | 4 | -1.49 | +| INJ | 08-24 07:00 | 08-24 10:00 | stop_loss | 3 | -1.49 | +| NEAR | 08-24 06:00 | 08-24 10:00 | stop_loss | 4 | -1.49 | +| PEPE | 08-24 06:00 | 08-24 10:00 | stop_loss | 4 | -1.49 | +| RENDER | 08-24 08:00 | 08-24 10:00 | stop_loss | 2 | -1.49 | +| SEI | 08-24 06:00 | 08-24 10:00 | stop_loss | 4 | -1.49 | +| SHIB | 08-24 07:00 | 08-24 10:00 | stop_loss | 3 | -1.49 | +| TIA | 08-24 06:00 | 08-24 10:00 | stop_loss | 4 | -1.49 | +| UNI | 08-24 06:00 | 08-24 10:00 | stop_loss | 4 | -1.49 | +| WIF | 08-24 06:00 | 08-24 10:00 | stop_loss | 4 | -1.49 | +| AVAX | 08-24 10:00 | 08-24 14:00 | trailing_stop | 4 | +0.25 | +| KAS | 08-24 06:00 | 08-24 14:00 | trailing_stop | 8 | -0.12 | +| NEAR | 08-24 10:00 | 08-24 14:00 | trailing_stop | 4 | -0.29 | +| RENDER | 08-24 10:00 | 08-24 14:00 | trailing_stop | 4 | +0.08 | +| UNI | 08-24 10:00 | 08-24 14:00 | trailing_stop | 4 | -0.09 | +| BONK | 08-24 10:00 | 08-24 15:00 | take_profit | 5 | +1.49 | +| INJ | 08-24 10:00 | 08-24 15:00 | take_profit | 5 | +1.49 | +| SEI | 08-24 10:00 | 08-24 15:00 | take_profit | 5 | +1.49 | +| TIA | 08-24 10:00 | 08-24 15:00 | take_profit | 5 | +1.49 | +| WIF | 08-24 10:00 | 08-24 15:00 | take_profit | 5 | +1.49 | +| OP | 08-24 15:00 | 08-24 16:00 | stop_loss | 1 | -1.49 | +| APT | 08-24 10:00 | 08-24 17:00 | take_profit | 7 | +1.49 | +| ARB | 08-24 16:00 | 08-24 17:00 | take_profit | 1 | +1.49 | +| ATOM | 08-24 10:00 | 08-24 17:00 | take_profit | 7 | +1.49 | +| AVAX | 08-24 15:00 | 08-24 17:00 | take_profit | 2 | +1.49 | +| ETC | 08-24 10:00 | 08-24 17:00 | take_profit | 7 | +1.49 | +| FET | 08-24 10:00 | 08-24 17:00 | take_profit | 7 | +1.49 | +| FIL | 08-24 10:00 | 08-24 17:00 | take_profit | 7 | +1.49 | +| LTC | 08-24 10:00 | 08-24 17:00 | take_profit | 7 | +1.49 | +| NEAR | 08-24 15:00 | 08-24 17:00 | take_profit | 2 | +1.49 | +| OP | 08-24 16:00 | 08-24 17:00 | take_profit | 1 | +1.49 | +| PEPE | 08-24 10:00 | 08-24 17:00 | take_profit | 7 | +1.49 | +| RENDER | 08-24 15:00 | 08-24 17:00 | take_profit | 2 | +1.49 | +| SHIB | 08-24 10:00 | 08-24 17:00 | take_profit | 7 | +1.49 | +| SUI | 08-24 10:00 | 08-24 17:00 | take_profit | 7 | +1.49 | +| TIA | 08-24 15:00 | 08-24 17:00 | take_profit | 2 | +1.49 | +| TRX | 08-23 07:00 | 08-24 17:00 | take_profit | 34 | +1.49 | +| UNI | 08-24 15:00 | 08-24 17:00 | take_profit | 2 | +1.49 | +| WIF | 08-24 16:00 | 08-24 17:00 | take_profit | 1 | +1.49 | +| FIL | 08-24 17:00 | 08-24 18:00 | take_profit | 1 | +1.49 | +| TRX | 08-24 22:00 | 08-25 00:00 | stop_loss | 2 | -1.49 | +| AVAX | 08-25 06:00 | 08-25 07:00 | stop_loss | 1 | -1.49 | +| ETC | 08-25 06:00 | 08-25 07:00 | stop_loss | 1 | -1.49 | +| KAS | 08-25 06:00 | 08-25 07:00 | stop_loss | 1 | -1.49 | +| LTC | 08-25 06:00 | 08-25 07:00 | stop_loss | 1 | -1.49 | +| NEAR | 08-25 06:00 | 08-25 07:00 | stop_loss | 1 | -1.49 | +| TRX | 08-25 00:00 | 08-25 07:00 | stop_loss | 7 | -1.49 | +| UNI | 08-25 06:00 | 08-25 07:00 | stop_loss | 1 | -1.49 | +| ARB | 08-25 07:00 | 08-25 08:00 | stop_loss | 1 | -1.49 | +| UNI | 08-25 07:00 | 08-25 08:00 | stop_loss | 1 | -1.49 | +| WIF | 08-25 07:00 | 08-25 08:00 | stop_loss | 1 | -1.49 | +| APT | 08-25 07:00 | 08-25 10:00 | stop_loss | 3 | -1.49 | +| ATOM | 08-25 07:00 | 08-25 10:00 | stop_loss | 3 | -1.49 | +| AVAX | 08-25 07:00 | 08-25 10:00 | stop_loss | 3 | -1.49 | +| BONK | 08-25 07:00 | 08-25 10:00 | stop_loss | 3 | -1.49 | +| ETC | 08-25 07:00 | 08-25 10:00 | stop_loss | 3 | -1.49 | +| FET | 08-25 07:00 | 08-25 10:00 | stop_loss | 3 | -1.49 | +| FIL | 08-25 07:00 | 08-25 10:00 | stop_loss | 3 | -1.49 | +| INJ | 08-25 07:00 | 08-25 10:00 | stop_loss | 3 | -1.49 | +| KAS | 08-25 07:00 | 08-25 10:00 | stop_loss | 3 | -1.49 | +| LTC | 08-25 07:00 | 08-25 10:00 | stop_loss | 3 | -1.49 | +| NEAR | 08-25 07:00 | 08-25 10:00 | stop_loss | 3 | -1.49 | +| OP | 08-25 07:00 | 08-25 10:00 | stop_loss | 3 | -1.49 | +| PEPE | 08-25 07:00 | 08-25 10:00 | stop_loss | 3 | -1.49 | +| RENDER | 08-25 07:00 | 08-25 10:00 | stop_loss | 3 | -1.49 | +| SEI | 08-25 07:00 | 08-25 10:00 | stop_loss | 3 | -1.49 | +| SHIB | 08-25 07:00 | 08-25 10:00 | stop_loss | 3 | -1.49 | +| SUI | 08-25 07:00 | 08-25 10:00 | stop_loss | 3 | -1.49 | +| TIA | 08-25 07:00 | 08-25 10:00 | stop_loss | 3 | -1.49 | +| UNI | 08-25 08:00 | 08-25 10:00 | stop_loss | 2 | -1.49 | +| WIF | 08-25 10:00 | 08-25 11:00 | trailing_stop | 1 | -0.38 | +| BONK | 08-25 10:00 | 08-25 13:00 | trailing_stop | 3 | -0.62 | +| OP | 08-25 10:00 | 08-25 13:00 | trailing_stop | 3 | -0.61 | +| ARB | 08-25 10:00 | 08-25 14:00 | take_profit | 4 | +1.49 | +| FET | 08-25 10:00 | 08-25 14:00 | take_profit | 4 | +1.49 | +| INJ | 08-25 10:00 | 08-25 14:00 | trailing_stop | 4 | -0.06 | +| RENDER | 08-25 10:00 | 08-25 14:00 | take_profit | 4 | +1.49 | +| TIA | 08-25 10:00 | 08-25 14:00 | take_profit | 4 | +1.49 | +| PEPE | 08-25 10:00 | 08-25 15:00 | trailing_stop | 5 | -0.61 | +| APT | 08-25 10:00 | 08-25 17:00 | trailing_stop | 7 | -0.44 | +| ATOM | 08-25 16:00 | 08-25 18:00 | take_profit | 2 | +1.49 | +| FET | 08-25 15:00 | 08-25 18:00 | stop_loss | 3 | -1.49 | +| KAS | 08-25 16:00 | 08-25 19:00 | stop_loss | 3 | -1.49 | +| TRX | 08-25 14:00 | 08-25 19:00 | stop_loss | 5 | -1.49 | +| SEI | 08-25 19:00 | 08-25 20:00 | stop_loss | 1 | -1.49 | +| TIA | 08-25 19:00 | 08-25 20:00 | stop_loss | 1 | -1.49 | +| ARB | 08-25 20:00 | 08-25 22:00 | take_profit | 2 | +1.49 | +| BONK | 08-25 20:00 | 08-25 22:00 | trailing_stop | 2 | -0.67 | +| KAS | 08-25 20:00 | 08-25 22:00 | take_profit | 2 | +1.49 | +| NEAR | 08-25 20:00 | 08-25 22:00 | trailing_stop | 2 | -0.55 | +| WIF | 08-25 20:00 | 08-25 22:00 | take_profit | 2 | +1.49 | +| LTC | 08-25 20:00 | 08-25 23:00 | take_profit | 3 | +1.49 | +| PEPE | 08-25 20:00 | 08-25 23:00 | take_profit | 3 | +1.49 | +| TRX | 08-25 19:00 | 08-25 23:00 | stop_loss | 4 | -1.49 | +| FIL | 08-25 20:00 | 08-26 00:00 | take_profit | 4 | +1.49 | +| OP | 08-25 20:00 | 08-26 00:00 | trailing_stop | 4 | -0.25 | +| APT | 08-25 20:00 | 08-26 01:00 | take_profit | 5 | +1.49 | +| ATOM | 08-25 20:00 | 08-26 01:00 | trailing_stop | 5 | +0.02 | +| ETC | 08-25 20:00 | 08-26 01:00 | take_profit | 5 | +1.49 | +| FET | 08-25 20:00 | 08-26 01:00 | take_profit | 5 | +1.49 | +| RENDER | 08-25 20:00 | 08-26 01:00 | trailing_stop | 5 | -0.09 | +| SEI | 08-25 20:00 | 08-26 01:00 | take_profit | 5 | +1.49 | +| SHIB | 08-25 20:00 | 08-26 01:00 | take_profit | 5 | +1.49 | +| TIA | 08-25 20:00 | 08-26 01:00 | take_profit | 5 | +1.49 | +| SUI | 08-26 03:00 | 08-26 05:00 | take_profit | 2 | +1.49 | +| ETC | 08-26 02:00 | 08-26 06:00 | stop_loss | 4 | -1.49 | +| BONK | 08-26 03:00 | 08-26 07:00 | take_profit | 4 | +1.49 | +| INJ | 08-26 03:00 | 08-26 07:00 | take_profit | 4 | +1.49 | +| KAS | 08-26 04:00 | 08-26 07:00 | stop_loss | 3 | -1.49 | +| PEPE | 08-26 03:00 | 08-26 07:00 | take_profit | 4 | +1.49 | +| RENDER | 08-26 03:00 | 08-26 07:00 | take_profit | 4 | +1.49 | +| WIF | 08-26 03:00 | 08-26 07:00 | take_profit | 4 | +1.49 | +| OP | 08-26 02:00 | 08-26 09:00 | stop_loss | 7 | -1.49 | +| FIL | 08-26 02:00 | 08-26 10:00 | take_profit | 8 | +1.49 | +| UNI | 08-26 03:00 | 08-26 11:00 | stop_loss | 8 | -1.49 | +| APT | 08-26 03:00 | 08-26 12:00 | take_profit | 9 | +1.49 | +| ATOM | 08-26 03:00 | 08-26 12:00 | take_profit | 9 | +1.49 | +| AVAX | 08-26 03:00 | 08-26 12:00 | take_profit | 9 | +1.49 | +| ETC | 08-26 06:00 | 08-26 12:00 | take_profit | 6 | +1.49 | +| FET | 08-26 03:00 | 08-26 12:00 | take_profit | 9 | +1.49 | +| NEAR | 08-26 02:00 | 08-26 12:00 | take_profit | 10 | +1.49 | +| SEI | 08-26 02:00 | 08-26 12:00 | take_profit | 10 | +1.49 | +| TIA | 08-26 03:00 | 08-26 12:00 | take_profit | 9 | +1.49 | +| TRX | 08-25 23:00 | 08-26 12:00 | take_profit | 13 | +1.49 | +| ARB | 08-27 00:00 | 08-27 03:00 | take_profit | 3 | +1.49 | +| OP | 08-27 10:00 | 08-27 16:00 | trailing_stop | 6 | -0.29 | +| FIL | 08-27 07:00 | 08-27 17:00 | take_profit | 10 | +1.49 | +| ATOM | 08-27 09:00 | 08-27 19:00 | trailing_stop | 10 | -0.30 | +| BONK | 08-27 18:00 | 08-27 19:00 | stop_loss | 1 | -1.49 | +| LTC | 08-27 09:00 | 08-27 19:00 | trailing_stop | 10 | -0.46 | +| ARB | 08-27 19:00 | 08-27 20:00 | stop_loss | 1 | -1.49 | +| TRX | 08-27 09:00 | 08-27 22:00 | stop_loss | 13 | -1.49 | +| KAS | 08-28 00:00 | 08-28 04:00 | take_profit | 4 | +1.49 | +| RENDER | 08-27 23:00 | 08-28 04:00 | take_profit | 5 | +1.49 | +| SEI | 08-27 23:00 | 08-28 04:00 | trailing_stop | 5 | -0.11 | +| TRX | 08-27 22:00 | 08-28 16:00 | stop_loss | 18 | -1.49 | +| PEPE | 08-28 16:00 | 08-28 17:00 | trailing_stop | 1 | -0.57 | +| UNI | 08-28 16:00 | 08-28 17:00 | trailing_stop | 1 | -0.54 | +| UNI | 08-28 19:00 | 08-28 21:00 | take_profit | 2 | +1.49 | +| AVAX | 08-28 19:00 | 08-28 22:00 | take_profit | 3 | +1.49 | +| FET | 08-28 19:00 | 08-28 22:00 | take_profit | 3 | +1.49 | +| LTC | 08-28 16:00 | 08-28 22:00 | take_profit | 6 | +1.49 | +| PEPE | 08-28 19:00 | 08-28 22:00 | take_profit | 3 | +1.49 | +| SUI | 08-28 16:00 | 08-28 22:00 | take_profit | 6 | +1.49 | +| SHIB | 08-28 16:00 | 08-28 23:00 | take_profit | 7 | +1.49 | +| TRX | 08-28 22:00 | 08-29 07:00 | stop_loss | 9 | -1.49 | +| FIL | 08-29 07:00 | 08-29 08:00 | stop_loss | 1 | -1.49 | +| INJ | 08-29 07:00 | 08-29 08:00 | stop_loss | 1 | -1.49 | +| KAS | 08-29 07:00 | 08-29 08:00 | stop_loss | 1 | -1.49 | +| PEPE | 08-29 07:00 | 08-29 08:00 | stop_loss | 1 | -1.49 | +| RENDER | 08-29 07:00 | 08-29 08:00 | stop_loss | 1 | -1.49 | +| TIA | 08-29 07:00 | 08-29 08:00 | stop_loss | 1 | -1.49 | +| WIF | 08-29 07:00 | 08-29 08:00 | stop_loss | 1 | -1.49 | +| ETC | 08-29 07:00 | 08-29 09:00 | stop_loss | 2 | -1.49 | +| FET | 08-29 07:00 | 08-29 09:00 | stop_loss | 2 | -1.49 | +| FIL | 08-29 08:00 | 08-29 09:00 | trailing_stop | 1 | -0.65 | +| KAS | 08-29 08:00 | 08-29 09:00 | trailing_stop | 1 | -0.45 | +| SEI | 08-29 08:00 | 08-29 09:00 | stop_loss | 1 | -1.49 | +| SUI | 08-29 08:00 | 08-29 09:00 | stop_loss | 1 | -1.49 | +| WIF | 08-29 08:00 | 08-29 09:00 | stop_loss | 1 | -1.49 | +| INJ | 08-29 08:00 | 08-29 10:00 | trailing_stop | 2 | -0.13 | +| APT | 08-29 08:00 | 08-29 12:00 | take_profit | 4 | +1.49 | +| ARB | 08-29 08:00 | 08-29 12:00 | take_profit | 4 | +1.49 | +| AVAX | 08-29 08:00 | 08-29 12:00 | take_profit | 4 | +1.49 | +| BONK | 08-29 08:00 | 08-29 12:00 | take_profit | 4 | +1.49 | +| LTC | 08-29 08:00 | 08-29 12:00 | take_profit | 4 | +1.49 | +| NEAR | 08-29 08:00 | 08-29 12:00 | take_profit | 4 | +1.49 | +| OP | 08-29 08:00 | 08-29 12:00 | take_profit | 4 | +1.49 | +| PEPE | 08-29 08:00 | 08-29 12:00 | take_profit | 4 | +1.49 | +| RENDER | 08-29 08:00 | 08-29 12:00 | take_profit | 4 | +1.49 | +| SHIB | 08-29 08:00 | 08-29 12:00 | take_profit | 4 | +1.49 | +| SUI | 08-29 09:00 | 08-29 12:00 | take_profit | 3 | +1.49 | +| TIA | 08-29 08:00 | 08-29 12:00 | take_profit | 4 | +1.49 | +| UNI | 08-29 08:00 | 08-29 12:00 | take_profit | 4 | +1.49 | +| TRX | 08-29 08:00 | 08-29 14:00 | stop_loss | 6 | -1.49 | +| NEAR | 08-29 14:00 | 08-29 17:00 | stop_loss | 3 | -1.49 | +| PEPE | 08-30 17:00 | 08-31 00:00 | trailing_stop | 7 | -0.29 | +| UNI | 08-30 21:00 | 08-31 00:00 | take_profit | 3 | +1.49 | +| RENDER | 08-30 21:00 | 08-31 01:00 | take_profit | 4 | +1.49 | +| TIA | 08-30 21:00 | 08-31 01:00 | take_profit | 4 | +1.49 | +| TRX | 08-29 14:00 | 08-31 01:00 | take_profit | 35 | +1.49 | +| ETC | 08-30 17:00 | 08-31 02:00 | take_profit | 9 | +1.49 | +| OP | 08-30 21:00 | 08-31 03:00 | take_profit | 6 | +1.49 | +| SUI | 08-30 21:00 | 08-31 06:00 | trailing_stop | 9 | +0.09 | +| SHIB | 08-30 21:00 | 08-31 10:00 | trailing_stop | 13 | -0.22 | +| KAS | 08-31 14:00 | 08-31 18:00 | take_profit | 4 | +1.49 | +| WIF | 08-31 14:00 | 08-31 20:00 | trailing_stop | 6 | -0.53 | +| AVAX | 08-31 22:00 | 08-31 23:00 | stop_loss | 1 | -1.49 | +| FET | 08-31 14:00 | 08-31 23:00 | stop_loss | 9 | -1.49 | +| LTC | 08-31 14:00 | 08-31 23:00 | stop_loss | 9 | -1.49 | +| PEPE | 08-31 14:00 | 08-31 23:00 | stop_loss | 9 | -1.49 | +| SUI | 08-31 14:00 | 08-31 23:00 | stop_loss | 9 | -1.49 | +| APT | 08-31 14:00 | 09-01 00:00 | stop_loss | 10 | -1.49 | +| ARB | 08-31 23:00 | 09-01 00:00 | stop_loss | 1 | -1.49 | +| ETC | 08-31 23:00 | 09-01 00:00 | stop_loss | 1 | -1.49 | +| FET | 08-31 23:00 | 09-01 00:00 | stop_loss | 1 | -1.49 | +| NEAR | 08-31 23:00 | 09-01 00:00 | stop_loss | 1 | -1.49 | +| PEPE | 08-31 23:00 | 09-01 00:00 | stop_loss | 1 | -1.49 | +| RENDER | 08-31 23:00 | 09-01 00:00 | stop_loss | 1 | -1.49 | +| SUI | 08-31 23:00 | 09-01 00:00 | stop_loss | 1 | -1.49 | +| TIA | 08-31 23:00 | 09-01 00:00 | stop_loss | 1 | -1.49 | +| UNI | 08-31 23:00 | 09-01 00:00 | stop_loss | 1 | -1.49 | +| WIF | 08-31 23:00 | 09-01 00:00 | stop_loss | 1 | -1.49 | +| APT | 09-01 00:00 | 09-01 02:00 | stop_loss | 2 | -1.49 | +| ARB | 09-01 00:00 | 09-01 02:00 | stop_loss | 2 | -1.49 | +| ATOM | 09-01 00:00 | 09-01 02:00 | stop_loss | 2 | -1.49 | +| AVAX | 08-31 23:00 | 09-01 02:00 | stop_loss | 3 | -1.49 | +| BONK | 09-01 01:00 | 09-01 02:00 | stop_loss | 1 | -1.49 | +| ETC | 09-01 01:00 | 09-01 02:00 | stop_loss | 1 | -1.49 | +| FET | 09-01 00:00 | 09-01 02:00 | stop_loss | 2 | -1.49 | +| FIL | 09-01 01:00 | 09-01 02:00 | stop_loss | 1 | -1.49 | +| KAS | 08-31 23:00 | 09-01 02:00 | stop_loss | 3 | -1.49 | +| LTC | 08-31 23:00 | 09-01 02:00 | stop_loss | 3 | -1.49 | +| NEAR | 09-01 00:00 | 09-01 02:00 | stop_loss | 2 | -1.49 | +| OP | 09-01 01:00 | 09-01 02:00 | stop_loss | 1 | -1.49 | +| PEPE | 09-01 00:00 | 09-01 02:00 | stop_loss | 2 | -1.49 | +| RENDER | 09-01 00:00 | 09-01 02:00 | stop_loss | 2 | -1.49 | +| SEI | 09-01 01:00 | 09-01 02:00 | stop_loss | 1 | -1.49 | +| SHIB | 08-31 23:00 | 09-01 02:00 | stop_loss | 3 | -1.49 | +| SUI | 09-01 00:00 | 09-01 02:00 | stop_loss | 2 | -1.49 | +| TIA | 09-01 00:00 | 09-01 02:00 | stop_loss | 2 | -1.49 | +| TRX | 08-31 23:00 | 09-01 02:00 | stop_loss | 3 | -1.49 | +| UNI | 09-01 00:00 | 09-01 02:00 | stop_loss | 2 | -1.49 | +| WIF | 09-01 00:00 | 09-01 02:00 | stop_loss | 2 | -1.49 | +| BONK | 09-01 02:00 | 09-01 03:00 | take_profit | 1 | +1.49 | +| ARB | 09-01 02:00 | 09-01 04:00 | stop_loss | 2 | -1.49 | +| FET | 09-01 02:00 | 09-01 04:00 | stop_loss | 2 | -1.49 | +| KAS | 09-01 02:00 | 09-01 04:00 | stop_loss | 2 | -1.49 | +| SEI | 09-01 02:00 | 09-01 04:00 | stop_loss | 2 | -1.49 | +| SUI | 09-01 02:00 | 09-01 04:00 | stop_loss | 2 | -1.49 | +| WIF | 09-01 02:00 | 09-01 04:00 | stop_loss | 2 | -1.49 | +| AVAX | 09-01 02:00 | 09-01 05:00 | stop_loss | 3 | -1.49 | +| BONK | 09-01 04:00 | 09-01 05:00 | stop_loss | 1 | -1.49 | +| OP | 09-01 02:00 | 09-01 05:00 | stop_loss | 3 | -1.49 | +| ARB | 09-01 04:00 | 09-01 06:00 | take_profit | 2 | +1.49 | +| APT | 09-01 02:00 | 09-01 07:00 | take_profit | 5 | +1.49 | +| ATOM | 09-01 02:00 | 09-01 07:00 | take_profit | 5 | +1.49 | +| BONK | 09-01 05:00 | 09-01 07:00 | stop_loss | 2 | -1.49 | +| ETC | 09-01 02:00 | 09-01 07:00 | take_profit | 5 | +1.49 | +| FET | 09-01 04:00 | 09-01 07:00 | take_profit | 3 | +1.49 | +| FIL | 09-01 02:00 | 09-01 07:00 | take_profit | 5 | +1.49 | +| INJ | 09-01 02:00 | 09-01 07:00 | take_profit | 5 | +1.49 | +| KAS | 09-01 04:00 | 09-01 07:00 | take_profit | 3 | +1.49 | +| LTC | 09-01 02:00 | 09-01 07:00 | take_profit | 5 | +1.49 | +| NEAR | 09-01 02:00 | 09-01 07:00 | take_profit | 5 | +1.49 | +| PEPE | 09-01 02:00 | 09-01 07:00 | take_profit | 5 | +1.49 | +| RENDER | 09-01 02:00 | 09-01 07:00 | take_profit | 5 | +1.49 | +| SEI | 09-01 04:00 | 09-01 07:00 | take_profit | 3 | +1.49 | +| SHIB | 09-01 02:00 | 09-01 07:00 | take_profit | 5 | +1.49 | +| SUI | 09-01 04:00 | 09-01 07:00 | take_profit | 3 | +1.49 | +| TIA | 09-01 02:00 | 09-01 07:00 | take_profit | 5 | +1.49 | +| UNI | 09-01 02:00 | 09-01 07:00 | take_profit | 5 | +1.49 | +| WIF | 09-01 04:00 | 09-01 07:00 | take_profit | 3 | +1.49 | +| BONK | 09-01 09:00 | 09-01 10:00 | stop_loss | 1 | -1.49 | +| TRX | 09-01 02:00 | 09-01 21:00 | stop_loss | 19 | -1.49 | +| AVAX | 09-01 21:00 | 09-01 23:00 | trailing_stop | 2 | +0.00 | +| FIL | 09-01 22:00 | 09-01 23:00 | trailing_stop | 1 | -0.45 | +| OP | 09-01 21:00 | 09-01 23:00 | take_profit | 2 | +1.49 | +| PEPE | 09-01 21:00 | 09-01 23:00 | take_profit | 2 | +1.49 | +| SEI | 09-01 21:00 | 09-01 23:00 | take_profit | 2 | +1.49 | +| TIA | 09-01 21:00 | 09-01 23:00 | take_profit | 2 | +1.49 | +| WIF | 09-01 21:00 | 09-01 23:00 | take_profit | 2 | +1.49 | +| KAS | 09-01 21:00 | 09-02 00:00 | take_profit | 3 | +1.49 | +| FET | 09-01 21:00 | 09-02 01:00 | take_profit | 4 | +1.49 | +| TRX | 09-01 21:00 | 09-02 12:00 | trailing_stop | 15 | +0.07 | +| WIF | 09-03 12:00 | 09-03 14:00 | take_profit | 2 | +1.49 | +| BONK | 09-04 02:00 | 09-04 03:00 | stop_loss | 1 | -1.49 | +| ARB | 09-04 04:00 | 09-04 05:00 | stop_loss | 1 | -1.49 | +| BONK | 09-04 03:00 | 09-04 05:00 | stop_loss | 2 | -1.49 | +| FET | 09-04 03:00 | 09-04 05:00 | stop_loss | 2 | -1.49 | +| INJ | 09-04 03:00 | 09-04 05:00 | stop_loss | 2 | -1.49 | +| NEAR | 09-04 04:00 | 09-04 05:00 | stop_loss | 1 | -1.49 | +| PEPE | 09-04 04:00 | 09-04 05:00 | stop_loss | 1 | -1.49 | +| RENDER | 09-04 04:00 | 09-04 05:00 | stop_loss | 1 | -1.49 | +| SEI | 09-04 04:00 | 09-04 05:00 | stop_loss | 1 | -1.49 | +| SUI | 09-04 04:00 | 09-04 05:00 | stop_loss | 1 | -1.49 | +| TIA | 09-04 04:00 | 09-04 05:00 | stop_loss | 1 | -1.49 | +| APT | 09-04 04:00 | 09-04 06:00 | stop_loss | 2 | -1.49 | +| AVAX | 09-04 04:00 | 09-04 06:00 | stop_loss | 2 | -1.49 | +| ETC | 09-04 03:00 | 09-04 06:00 | stop_loss | 3 | -1.49 | +| OP | 09-04 03:00 | 09-04 06:00 | stop_loss | 3 | -1.49 | +| SHIB | 09-04 04:00 | 09-04 06:00 | stop_loss | 2 | -1.49 | +| UNI | 09-04 04:00 | 09-04 06:00 | stop_loss | 2 | -1.49 | +| FIL | 09-04 05:00 | 09-04 09:00 | confirmed_bearish_exit | 4 | -0.11 | +| SEI | 09-04 05:00 | 09-04 09:00 | confirmed_bearish_exit | 4 | +0.66 | +| INJ | 09-04 05:00 | 09-04 11:00 | stop_loss | 6 | -1.49 | +| WIF | 09-04 09:00 | 09-04 11:00 | stop_loss | 2 | -1.49 | +| BONK | 09-04 05:00 | 09-04 12:00 | stop_loss | 7 | -1.49 | +| KAS | 09-04 03:00 | 09-04 13:00 | stop_loss | 10 | -1.49 | +| PEPE | 09-04 05:00 | 09-04 13:00 | stop_loss | 8 | -1.49 | +| APT | 09-04 06:00 | 09-04 14:00 | stop_loss | 8 | -1.49 | +| ARB | 09-04 05:00 | 09-04 14:00 | stop_loss | 9 | -1.49 | +| ATOM | 09-04 04:00 | 09-04 14:00 | stop_loss | 10 | -1.49 | +| FET | 09-04 05:00 | 09-04 14:00 | stop_loss | 9 | -1.49 | +| FIL | 09-04 12:00 | 09-04 14:00 | stop_loss | 2 | -1.49 | +| INJ | 09-04 11:00 | 09-04 14:00 | trailing_stop | 3 | -0.66 | +| LTC | 09-04 04:00 | 09-04 14:00 | stop_loss | 10 | -1.49 | +| NEAR | 09-04 05:00 | 09-04 14:00 | stop_loss | 9 | -1.49 | +| OP | 09-04 06:00 | 09-04 14:00 | stop_loss | 8 | -1.49 | +| RENDER | 09-04 05:00 | 09-04 14:00 | stop_loss | 9 | -1.49 | +| SUI | 09-04 05:00 | 09-04 14:00 | stop_loss | 9 | -1.49 | +| TIA | 09-04 05:00 | 09-04 14:00 | stop_loss | 9 | -1.49 | +| UNI | 09-04 06:00 | 09-04 14:00 | stop_loss | 8 | -1.49 | +| ETC | 09-04 06:00 | 09-04 15:00 | stop_loss | 9 | -1.49 | +| KAS | 09-04 13:00 | 09-04 15:00 | stop_loss | 2 | -1.49 | +| SEI | 09-04 11:00 | 09-04 15:00 | stop_loss | 4 | -1.49 | +| SHIB | 09-04 06:00 | 09-04 15:00 | stop_loss | 9 | -1.49 | +| TRX | 09-04 04:00 | 09-04 15:00 | stop_loss | 11 | -1.49 | +| AVAX | 09-04 06:00 | 09-04 17:00 | stop_loss | 11 | -1.49 | +| ATOM | 09-04 14:00 | 09-04 19:00 | stop_loss | 5 | -1.49 | +| KAS | 09-04 15:00 | 09-04 21:00 | confirmed_bearish_exit | 6 | -0.22 | +| WIF | 09-04 22:00 | 09-04 23:00 | stop_loss | 1 | -1.49 | +| AVAX | 09-05 00:00 | 09-05 02:00 | trailing_stop | 2 | -0.23 | +| WIF | 09-04 23:00 | 09-05 03:00 | take_profit | 4 | +1.49 | +| SEI | 09-04 23:00 | 09-05 04:00 | take_profit | 5 | +1.49 | +| ARB | 09-04 23:00 | 09-05 07:00 | take_profit | 8 | +1.49 | +| BONK | 09-04 23:00 | 09-05 07:00 | take_profit | 8 | +1.49 | +| FET | 09-04 23:00 | 09-05 07:00 | take_profit | 8 | +1.49 | +| FIL | 09-04 14:00 | 09-05 07:00 | take_profit | 17 | +1.49 | +| INJ | 09-04 23:00 | 09-05 07:00 | take_profit | 8 | +1.49 | +| OP | 09-04 23:00 | 09-05 07:00 | take_profit | 8 | +1.49 | +| PEPE | 09-04 23:00 | 09-05 07:00 | take_profit | 8 | +1.49 | +| TRX | 09-04 15:00 | 09-05 14:00 | trailing_stop | 23 | -0.61 | +| KAS | 09-05 21:00 | 09-06 08:00 | stop_loss | 11 | -1.49 | +| APT | 09-05 21:00 | 09-06 09:00 | stop_loss | 12 | -1.49 | +| AVAX | 09-06 02:00 | 09-06 09:00 | stop_loss | 7 | -1.49 | +| KAS | 09-06 08:00 | 09-06 09:00 | take_profit | 1 | +1.49 | +| NEAR | 09-06 02:00 | 09-06 09:00 | stop_loss | 7 | -1.49 | +| KAS | 09-06 09:00 | 09-06 10:00 | trailing_stop | 1 | -0.54 | +| TRX | 09-05 15:00 | 09-06 14:00 | stop_loss | 23 | -1.49 | +| ARB | 09-06 15:00 | 09-06 16:00 | trailing_stop | 1 | -0.62 | +| PEPE | 09-06 14:00 | 09-06 16:00 | stop_loss | 2 | -1.49 | +| TRX | 09-06 14:00 | 09-06 20:00 | stop_loss | 6 | -1.49 | +| TRX | 09-06 20:00 | 09-06 21:00 | stop_loss | 1 | -1.49 | +| ATOM | 09-06 16:00 | 09-06 22:00 | take_profit | 6 | +1.49 | +| TRX | 09-06 21:00 | 09-06 22:00 | stop_loss | 1 | -1.49 | +| TRX | 09-06 22:00 | 09-06 23:00 | trailing_stop | 1 | -0.43 | +| BONK | 09-06 15:00 | 09-07 01:00 | trailing_stop | 10 | -0.09 | +| FET | 09-06 09:00 | 09-07 02:00 | take_profit | 17 | +1.49 | +| FIL | 09-06 15:00 | 09-07 02:00 | take_profit | 11 | +1.49 | +| SUI | 09-06 19:00 | 09-07 03:00 | take_profit | 8 | +1.49 | +| KAS | 09-06 16:00 | 09-07 11:00 | take_profit | 19 | +1.49 | +| SEI | 09-07 18:00 | 09-07 19:00 | trailing_stop | 1 | -0.42 | +| APT | 09-06 12:00 | 09-07 22:00 | take_profit | 34 | +1.49 | +| ARB | 09-07 18:00 | 09-07 23:00 | take_profit | 5 | +1.49 | +| AVAX | 09-07 17:00 | 09-07 23:00 | take_profit | 6 | +1.49 | +| SHIB | 09-06 18:00 | 09-07 23:00 | take_profit | 29 | +1.49 | +| INJ | 09-07 19:00 | 09-08 02:00 | trailing_stop | 7 | -0.21 | +| OP | 09-07 17:00 | 09-08 02:00 | take_profit | 9 | +1.49 | +| UNI | 09-07 16:00 | 09-08 02:00 | trailing_stop | 10 | -0.31 | +| ETC | 09-06 11:00 | 09-08 03:00 | take_profit | 40 | +1.49 | +| LTC | 09-08 04:00 | 09-08 06:00 | stop_loss | 2 | -1.49 | +| SUI | 09-08 01:00 | 09-08 08:00 | take_profit | 7 | +1.49 | +| KAS | 09-08 22:00 | 09-09 02:00 | stop_loss | 4 | -1.49 | +| TRX | 09-09 01:00 | 09-09 03:00 | confirmed_bearish_exit | 2 | -0.32 | +| ETC | 09-09 02:00 | 09-09 06:00 | take_profit | 4 | +1.49 | +| KAS | 09-09 02:00 | 09-09 06:00 | take_profit | 4 | +1.49 | +| UNI | 09-09 02:00 | 09-09 06:00 | take_profit | 4 | +1.49 | +| TRX | 09-09 05:00 | 09-09 09:00 | take_profit | 4 | +1.49 | +| LTC | 09-08 06:00 | 09-09 14:00 | trailing_stop | 32 | -0.16 | +| SEI | 09-09 15:00 | 09-09 22:00 | take_profit | 7 | +1.49 | +| ARB | 09-09 20:00 | 09-10 00:00 | stop_loss | 4 | -1.49 | +| BONK | 09-09 21:00 | 09-10 00:00 | stop_loss | 3 | -1.49 | +| NEAR | 09-09 22:00 | 09-10 00:00 | stop_loss | 2 | -1.49 | +| RENDER | 09-09 20:00 | 09-10 00:00 | trailing_stop | 4 | -0.28 | +| RENDER | 09-10 00:00 | 09-10 01:00 | trailing_stop | 1 | -0.41 | +| OP | 09-09 21:00 | 09-10 02:00 | take_profit | 5 | +1.49 | +| PEPE | 09-09 21:00 | 09-10 02:00 | take_profit | 5 | +1.49 | +| SUI | 09-09 20:00 | 09-10 02:00 | take_profit | 6 | +1.49 | +| UNI | 09-09 20:00 | 09-10 02:00 | trailing_stop | 6 | +0.18 | +| WIF | 09-09 20:00 | 09-10 02:00 | take_profit | 6 | +1.49 | +| FET | 09-10 01:00 | 09-10 05:00 | trailing_stop | 4 | -0.61 | +| SEI | 09-09 23:00 | 09-10 05:00 | trailing_stop | 6 | -0.07 | +| TIA | 09-10 01:00 | 09-10 10:00 | stop_loss | 9 | -1.49 | +| APT | 09-09 20:00 | 09-10 12:00 | trailing_stop | 16 | -0.43 | +| FIL | 09-09 20:00 | 09-10 12:00 | take_profit | 16 | +1.49 | +| KAS | 09-10 00:00 | 09-10 12:00 | take_profit | 12 | +1.49 | +| LTC | 09-09 15:00 | 09-10 12:00 | take_profit | 21 | +1.49 | +| ETC | 09-10 01:00 | 09-10 13:00 | take_profit | 12 | +1.49 | +| SHIB | 09-09 20:00 | 09-10 13:00 | take_profit | 17 | +1.49 | +| TRX | 09-09 23:00 | 09-11 03:00 | take_profit | 28 | +1.49 | +| TIA | 09-11 02:00 | 09-11 12:00 | stop_loss | 10 | -1.49 | +| WIF | 09-11 15:00 | 09-11 21:00 | take_profit | 6 | +1.49 | +| PEPE | 09-11 15:00 | 09-11 22:00 | take_profit | 7 | +1.49 | +| ATOM | 09-11 11:00 | 09-12 00:00 | take_profit | 13 | +1.49 | +| ETC | 09-11 21:00 | 09-12 00:00 | take_profit | 3 | +1.49 | +| LTC | 09-11 14:00 | 09-12 00:00 | take_profit | 10 | +1.49 | +| NEAR | 09-11 14:00 | 09-12 00:00 | take_profit | 10 | +1.49 | +| OP | 09-11 17:00 | 09-12 00:00 | take_profit | 7 | +1.49 | +| SHIB | 09-11 17:00 | 09-12 00:00 | take_profit | 7 | +1.49 | +| AVAX | 09-12 04:00 | 09-12 05:00 | trailing_stop | 1 | -0.10 | +| RENDER | 09-12 11:00 | 09-12 12:00 | trailing_stop | 1 | -0.46 | +| PEPE | 09-12 13:00 | 09-12 16:00 | take_profit | 3 | +1.49 | +| WIF | 09-12 14:00 | 09-12 16:00 | take_profit | 2 | +1.49 | +| FIL | 09-12 11:00 | 09-12 17:00 | take_profit | 6 | +1.49 | +| ATOM | 09-12 11:00 | 09-12 18:00 | take_profit | 7 | +1.49 | +| RENDER | 09-12 14:00 | 09-12 18:00 | take_profit | 4 | +1.49 | +| ARB | 09-13 23:00 | 09-14 00:00 | stop_loss | 1 | -1.49 | +| PEPE | 09-13 22:00 | 09-14 00:00 | stop_loss | 2 | -1.49 | +| SHIB | 09-13 23:00 | 09-14 00:00 | stop_loss | 1 | -1.49 | +| ARB | 09-14 00:00 | 09-14 01:00 | stop_loss | 1 | -1.49 | +| ETC | 09-13 22:00 | 09-14 01:00 | stop_loss | 3 | -1.49 | +| INJ | 09-13 22:00 | 09-14 01:00 | stop_loss | 3 | -1.49 | +| SEI | 09-13 19:00 | 09-14 01:00 | stop_loss | 6 | -1.49 | +| SHIB | 09-14 00:00 | 09-14 01:00 | stop_loss | 1 | -1.49 | +| UNI | 09-13 16:00 | 09-14 01:00 | trailing_stop | 9 | -0.71 | +| APT | 09-14 01:00 | 09-14 03:00 | stop_loss | 2 | -1.49 | +| AVAX | 09-13 18:00 | 09-14 03:00 | trailing_stop | 9 | -0.14 | +| ETC | 09-14 01:00 | 09-14 03:00 | stop_loss | 2 | -1.49 | +| FET | 09-14 00:00 | 09-14 03:00 | stop_loss | 3 | -1.49 | +| LTC | 09-14 01:00 | 09-14 03:00 | stop_loss | 2 | -1.49 | +| OP | 09-14 01:00 | 09-14 03:00 | stop_loss | 2 | -1.49 | +| RENDER | 09-14 01:00 | 09-14 03:00 | stop_loss | 2 | -1.49 | +| UNI | 09-14 01:00 | 09-14 03:00 | stop_loss | 2 | -1.49 | +| ATOM | 09-14 01:00 | 09-14 04:00 | stop_loss | 3 | -1.49 | +| RENDER | 09-14 03:00 | 09-14 04:00 | stop_loss | 1 | -1.49 | +| UNI | 09-14 03:00 | 09-14 04:00 | take_profit | 1 | +1.49 | +| UNI | 09-14 04:00 | 09-14 05:00 | trailing_stop | 1 | -0.15 | +| OP | 09-14 03:00 | 09-14 07:00 | trailing_stop | 4 | -0.47 | +| FIL | 09-14 03:00 | 09-14 09:00 | trailing_stop | 6 | -0.63 | +| ATOM | 09-14 04:00 | 09-14 11:00 | stop_loss | 7 | -1.49 | +| ETC | 09-14 03:00 | 09-14 11:00 | stop_loss | 8 | -1.49 | +| FET | 09-14 03:00 | 09-14 11:00 | stop_loss | 8 | -1.49 | +| RENDER | 09-14 04:00 | 09-14 11:00 | stop_loss | 7 | -1.49 | +| SEI | 09-14 10:00 | 09-14 11:00 | stop_loss | 1 | -1.49 | +| TIA | 09-14 03:00 | 09-14 11:00 | stop_loss | 8 | -1.49 | +| WIF | 09-14 03:00 | 09-14 11:00 | stop_loss | 8 | -1.49 | +| ARB | 09-14 11:00 | 09-14 12:00 | stop_loss | 1 | -1.49 | +| BONK | 09-14 11:00 | 09-14 12:00 | stop_loss | 1 | -1.49 | +| FIL | 09-14 11:00 | 09-14 12:00 | stop_loss | 1 | -1.49 | +| KAS | 09-14 11:00 | 09-14 12:00 | stop_loss | 1 | -1.49 | +| LTC | 09-14 03:00 | 09-14 12:00 | stop_loss | 9 | -1.49 | +| SUI | 09-14 11:00 | 09-14 12:00 | stop_loss | 1 | -1.49 | +| WIF | 09-14 11:00 | 09-14 12:00 | stop_loss | 1 | -1.49 | +| APT | 09-14 11:00 | 09-14 13:00 | stop_loss | 2 | -1.49 | +| ARB | 09-14 12:00 | 09-14 13:00 | stop_loss | 1 | -1.49 | +| BONK | 09-14 12:00 | 09-14 13:00 | stop_loss | 1 | -1.49 | +| ETC | 09-14 11:00 | 09-14 13:00 | stop_loss | 2 | -1.49 | +| FET | 09-14 11:00 | 09-14 13:00 | stop_loss | 2 | -1.49 | +| FIL | 09-14 12:00 | 09-14 13:00 | stop_loss | 1 | -1.49 | +| INJ | 09-14 11:00 | 09-14 13:00 | stop_loss | 2 | -1.49 | +| KAS | 09-14 12:00 | 09-14 13:00 | stop_loss | 1 | -1.49 | +| OP | 09-14 11:00 | 09-14 13:00 | stop_loss | 2 | -1.49 | +| PEPE | 09-14 11:00 | 09-14 13:00 | stop_loss | 2 | -1.49 | +| RENDER | 09-14 11:00 | 09-14 13:00 | stop_loss | 2 | -1.49 | +| SEI | 09-14 11:00 | 09-14 13:00 | stop_loss | 2 | -1.49 | +| TIA | 09-14 11:00 | 09-14 13:00 | stop_loss | 2 | -1.49 | +| ARB | 09-14 13:00 | 09-14 14:00 | stop_loss | 1 | -1.49 | +| ATOM | 09-14 11:00 | 09-14 14:00 | stop_loss | 3 | -1.49 | +| AVAX | 09-14 13:00 | 09-14 14:00 | stop_loss | 1 | -1.49 | +| BONK | 09-14 13:00 | 09-14 14:00 | stop_loss | 1 | -1.49 | +| ETC | 09-14 13:00 | 09-14 14:00 | stop_loss | 1 | -1.49 | +| FIL | 09-14 13:00 | 09-14 14:00 | stop_loss | 1 | -1.49 | +| NEAR | 09-14 11:00 | 09-14 14:00 | stop_loss | 3 | -1.49 | +| OP | 09-14 13:00 | 09-14 14:00 | stop_loss | 1 | -1.49 | +| PEPE | 09-14 13:00 | 09-14 14:00 | stop_loss | 1 | -1.49 | +| SHIB | 09-14 11:00 | 09-14 14:00 | stop_loss | 3 | -1.49 | +| SUI | 09-14 12:00 | 09-14 14:00 | stop_loss | 2 | -1.49 | +| WIF | 09-14 12:00 | 09-14 14:00 | stop_loss | 2 | -1.49 | +| BONK | 09-14 14:00 | 09-14 15:00 | stop_loss | 1 | -1.49 | +| INJ | 09-14 13:00 | 09-14 15:00 | stop_loss | 2 | -1.49 | +| PEPE | 09-14 14:00 | 09-14 15:00 | stop_loss | 1 | -1.49 | +| TIA | 09-14 13:00 | 09-14 15:00 | stop_loss | 2 | -1.49 | +| AVAX | 09-14 14:00 | 09-14 16:00 | trailing_stop | 2 | -0.48 | +| BONK | 09-14 15:00 | 09-14 16:00 | trailing_stop | 1 | -0.60 | +| PEPE | 09-14 15:00 | 09-14 16:00 | trailing_stop | 1 | -0.26 | +| WIF | 09-14 14:00 | 09-14 17:00 | take_profit | 3 | +1.49 | +| OP | 09-14 14:00 | 09-14 21:00 | take_profit | 7 | +1.49 | +| AVAX | 09-14 19:00 | 09-14 22:00 | take_profit | 3 | +1.49 | +| FIL | 09-14 14:00 | 09-14 22:00 | take_profit | 8 | +1.49 | +| ARB | 09-14 14:00 | 09-14 23:00 | trailing_stop | 9 | -0.13 | +| INJ | 09-14 19:00 | 09-14 23:00 | trailing_stop | 4 | -0.48 | +| KAS | 09-14 13:00 | 09-14 23:00 | trailing_stop | 10 | -0.05 | +| NEAR | 09-14 14:00 | 09-14 23:00 | trailing_stop | 9 | -0.06 | +| TIA | 09-14 21:00 | 09-14 23:00 | stop_loss | 2 | -1.49 | +| UNI | 09-14 21:00 | 09-14 23:00 | stop_loss | 2 | -1.49 | +| SUI | 09-14 14:00 | 09-15 00:00 | trailing_stop | 10 | +0.04 | +| APT | 09-14 13:00 | 09-15 01:00 | trailing_stop | 12 | -0.20 | +| ARB | 09-14 23:00 | 09-15 01:00 | stop_loss | 2 | -1.49 | +| ATOM | 09-14 14:00 | 09-15 01:00 | trailing_stop | 11 | -0.62 | +| BONK | 09-14 23:00 | 09-15 01:00 | stop_loss | 2 | -1.49 | +| ETC | 09-14 14:00 | 09-15 01:00 | trailing_stop | 11 | -0.58 | +| FET | 09-14 13:00 | 09-15 01:00 | trailing_stop | 12 | -0.53 | +| KAS | 09-14 23:00 | 09-15 01:00 | stop_loss | 2 | -1.49 | +| OP | 09-14 23:00 | 09-15 01:00 | stop_loss | 2 | -1.49 | +| SEI | 09-14 13:00 | 09-15 01:00 | stop_loss | 12 | -1.49 | +| SHIB | 09-14 14:00 | 09-15 01:00 | trailing_stop | 11 | -0.70 | +| WIF | 09-14 19:00 | 09-15 01:00 | stop_loss | 6 | -1.49 | +| FIL | 09-14 23:00 | 09-15 06:00 | trailing_stop | 7 | -0.17 | +| TIA | 09-14 23:00 | 09-15 06:00 | trailing_stop | 7 | +0.16 | +| UNI | 09-14 23:00 | 09-15 06:00 | trailing_stop | 7 | -0.53 | +| LTC | 09-14 20:00 | 09-15 07:00 | trailing_stop | 11 | -0.54 | +| ATOM | 09-15 07:00 | 09-15 08:00 | stop_loss | 1 | -1.49 | +| BONK | 09-15 07:00 | 09-15 08:00 | stop_loss | 1 | -1.49 | +| INJ | 09-15 07:00 | 09-15 08:00 | stop_loss | 1 | -1.49 | +| KAS | 09-15 07:00 | 09-15 08:00 | stop_loss | 1 | -1.49 | +| PEPE | 09-15 07:00 | 09-15 08:00 | stop_loss | 1 | -1.49 | +| SHIB | 09-15 07:00 | 09-15 08:00 | stop_loss | 1 | -1.49 | +| SUI | 09-15 07:00 | 09-15 08:00 | stop_loss | 1 | -1.49 | +| TIA | 09-15 07:00 | 09-15 08:00 | stop_loss | 1 | -1.49 | +| TRX | 09-13 15:00 | 09-15 08:00 | stop_loss | 41 | -1.49 | +| WIF | 09-15 07:00 | 09-15 08:00 | stop_loss | 1 | -1.49 | +| ARB | 09-15 08:00 | 09-15 09:00 | trailing_stop | 1 | -0.66 | +| BONK | 09-15 08:00 | 09-15 09:00 | trailing_stop | 1 | -0.14 | +| FIL | 09-15 08:00 | 09-15 09:00 | trailing_stop | 1 | -0.68 | +| INJ | 09-15 08:00 | 09-15 09:00 | trailing_stop | 1 | -0.50 | +| KAS | 09-15 08:00 | 09-15 09:00 | trailing_stop | 1 | -0.61 | +| RENDER | 09-15 08:00 | 09-15 09:00 | trailing_stop | 1 | -0.41 | +| TIA | 09-15 08:00 | 09-15 09:00 | trailing_stop | 1 | -0.50 | +| UNI | 09-15 08:00 | 09-15 09:00 | trailing_stop | 1 | -0.42 | +| WIF | 09-15 08:00 | 09-15 09:00 | trailing_stop | 1 | -0.44 | +| BONK | 09-15 09:00 | 09-15 10:00 | stop_loss | 1 | -1.49 | +| FET | 09-15 08:00 | 09-15 12:00 | trailing_stop | 4 | -0.67 | +| PEPE | 09-15 08:00 | 09-15 12:00 | trailing_stop | 4 | -0.69 | +| BONK | 09-15 10:00 | 09-15 13:00 | stop_loss | 3 | -1.49 | +| FIL | 09-15 10:00 | 09-15 13:00 | stop_loss | 3 | -1.49 | +| TIA | 09-15 10:00 | 09-15 14:00 | stop_loss | 4 | -1.49 | +| WIF | 09-15 09:00 | 09-15 14:00 | stop_loss | 5 | -1.49 | +| APT | 09-15 08:00 | 09-15 15:00 | stop_loss | 7 | -1.49 | +| ETC | 09-15 08:00 | 09-15 15:00 | stop_loss | 7 | -1.49 | +| NEAR | 09-15 08:00 | 09-15 15:00 | trailing_stop | 7 | -0.51 | +| OP | 09-15 08:00 | 09-15 15:00 | stop_loss | 7 | -1.49 | +| SEI | 09-15 08:00 | 09-15 15:00 | stop_loss | 7 | -1.49 | +| SUI | 09-15 08:00 | 09-15 15:00 | stop_loss | 7 | -1.49 | +| KAS | 09-15 09:00 | 09-15 16:00 | stop_loss | 7 | -1.49 | +| TIA | 09-15 20:00 | 09-16 00:00 | stop_loss | 4 | -1.49 | +| SEI | 09-15 21:00 | 09-16 01:00 | stop_loss | 4 | -1.49 | +| ARB | 09-15 21:00 | 09-16 02:00 | stop_loss | 5 | -1.49 | +| ATOM | 09-15 08:00 | 09-16 03:00 | stop_loss | 19 | -1.49 | +| NEAR | 09-15 20:00 | 09-16 03:00 | stop_loss | 7 | -1.49 | +| APT | 09-15 20:00 | 09-16 04:00 | stop_loss | 8 | -1.49 | +| BONK | 09-15 19:00 | 09-16 04:00 | trailing_stop | 9 | -0.54 | +| FET | 09-15 20:00 | 09-16 04:00 | stop_loss | 8 | -1.49 | +| FIL | 09-15 20:00 | 09-16 04:00 | stop_loss | 8 | -1.49 | +| OP | 09-15 21:00 | 09-16 04:00 | stop_loss | 7 | -1.49 | +| RENDER | 09-15 20:00 | 09-16 04:00 | stop_loss | 8 | -1.49 | +| SUI | 09-15 21:00 | 09-16 04:00 | stop_loss | 7 | -1.49 | +| UNI | 09-15 20:00 | 09-16 04:00 | stop_loss | 8 | -1.49 | +| WIF | 09-15 20:00 | 09-16 04:00 | stop_loss | 8 | -1.49 | +| LTC | 09-15 08:00 | 09-16 07:00 | take_profit | 23 | +1.49 | +| KAS | 09-15 19:00 | 09-16 08:00 | take_profit | 13 | +1.49 | +| SHIB | 09-15 08:00 | 09-16 13:00 | stop_loss | 29 | -1.49 | +| TRX | 09-15 08:00 | 09-16 15:00 | stop_loss | 31 | -1.49 | +| AVAX | 09-16 23:00 | 09-17 03:00 | stop_loss | 4 | -1.49 | +| SEI | 09-17 03:00 | 09-17 08:00 | stop_loss | 5 | -1.49 | +| FET | 09-17 03:00 | 09-17 10:00 | stop_loss | 7 | -1.49 | +| FIL | 09-17 09:00 | 09-17 14:00 | stop_loss | 5 | -1.49 | +| WIF | 09-17 12:00 | 09-17 14:00 | stop_loss | 2 | -1.49 | +| PEPE | 09-17 14:00 | 09-17 16:00 | stop_loss | 2 | -1.49 | +| SEI | 09-17 08:00 | 09-17 16:00 | stop_loss | 8 | -1.49 | +| AVAX | 09-17 15:00 | 09-17 17:00 | take_profit | 2 | +1.49 | +| BONK | 09-17 09:00 | 09-17 17:00 | take_profit | 8 | +1.49 | +| FET | 09-17 10:00 | 09-17 17:00 | take_profit | 7 | +1.49 | +| INJ | 09-17 14:00 | 09-17 18:00 | take_profit | 4 | +1.49 | +| SHIB | 09-17 09:00 | 09-17 18:00 | stop_loss | 9 | -1.49 | +| ATOM | 09-17 10:00 | 09-17 19:00 | trailing_stop | 9 | -0.14 | +| LTC | 09-17 10:00 | 09-17 21:00 | trailing_stop | 11 | -0.45 | +| TRX | 09-16 15:00 | 09-18 13:00 | take_profit | 46 | +1.49 | +| BONK | 09-18 12:00 | 09-18 14:00 | trailing_stop | 2 | -0.38 | +| KAS | 09-19 03:00 | 09-19 04:00 | stop_loss | 1 | -1.49 | +| BONK | 09-19 05:00 | 09-19 06:00 | stop_loss | 1 | -1.49 | +| KAS | 09-19 04:00 | 09-19 06:00 | stop_loss | 2 | -1.49 | +| SHIB | 09-19 03:00 | 09-19 06:00 | stop_loss | 3 | -1.49 | +| SUI | 09-19 05:00 | 09-19 06:00 | stop_loss | 1 | -1.49 | +| RENDER | 09-19 06:00 | 09-19 09:00 | take_profit | 3 | +1.49 | +| UNI | 09-19 03:00 | 09-19 09:00 | stop_loss | 6 | -1.49 | +| ARB | 09-19 08:00 | 09-19 10:00 | stop_loss | 2 | -1.49 | +| SUI | 09-19 06:00 | 09-19 10:00 | stop_loss | 4 | -1.49 | +| BONK | 09-19 06:00 | 09-19 11:00 | stop_loss | 5 | -1.49 | +| ETC | 09-19 06:00 | 09-19 11:00 | stop_loss | 5 | -1.49 | +| FET | 09-19 06:00 | 09-19 11:00 | stop_loss | 5 | -1.49 | +| INJ | 09-19 06:00 | 09-19 11:00 | stop_loss | 5 | -1.49 | +| PEPE | 09-19 06:00 | 09-19 11:00 | stop_loss | 5 | -1.49 | +| SEI | 09-19 09:00 | 09-19 11:00 | stop_loss | 2 | -1.49 | +| SHIB | 09-19 06:00 | 09-19 11:00 | stop_loss | 5 | -1.49 | +| ARB | 09-19 11:00 | 09-19 14:00 | stop_loss | 3 | -1.49 | +| INJ | 09-19 11:00 | 09-19 14:00 | trailing_stop | 3 | -0.66 | +| KAS | 09-19 06:00 | 09-19 14:00 | stop_loss | 8 | -1.49 | +| LTC | 09-19 10:00 | 09-19 14:00 | stop_loss | 4 | -1.49 | +| OP | 09-19 11:00 | 09-19 14:00 | stop_loss | 3 | -1.49 | +| SUI | 09-19 11:00 | 09-19 14:00 | stop_loss | 3 | -1.49 | +| TIA | 09-19 11:00 | 09-19 14:00 | stop_loss | 3 | -1.49 | +| WIF | 09-19 12:00 | 09-19 14:00 | stop_loss | 2 | -1.49 | +| ATOM | 09-19 11:00 | 09-19 15:00 | stop_loss | 4 | -1.49 | +| AVAX | 09-19 11:00 | 09-19 15:00 | stop_loss | 4 | -1.49 | +| FET | 09-19 11:00 | 09-19 15:00 | stop_loss | 4 | -1.49 | +| FIL | 09-19 11:00 | 09-19 15:00 | stop_loss | 4 | -1.49 | +| OP | 09-19 14:00 | 09-19 15:00 | stop_loss | 1 | -1.49 | +| SHIB | 09-19 11:00 | 09-19 15:00 | stop_loss | 4 | -1.49 | +| WIF | 09-19 14:00 | 09-19 15:00 | stop_loss | 1 | -1.49 | +| APT | 09-19 11:00 | 09-19 18:00 | stop_loss | 7 | -1.49 | +| WIF | 09-19 15:00 | 09-19 18:00 | stop_loss | 3 | -1.49 | +| NEAR | 09-19 17:00 | 09-19 21:00 | take_profit | 4 | +1.49 | +| KAS | 09-19 18:00 | 09-19 23:00 | trailing_stop | 5 | -0.29 | +| NEAR | 09-19 22:00 | 09-19 23:00 | stop_loss | 1 | -1.49 | +| NEAR | 09-19 23:00 | 09-20 01:00 | stop_loss | 2 | -1.49 | +| ATOM | 09-19 17:00 | 09-20 02:00 | stop_loss | 9 | -1.49 | +| KAS | 09-19 23:00 | 09-20 02:00 | stop_loss | 3 | -1.49 | +| SEI | 09-19 23:00 | 09-20 02:00 | stop_loss | 3 | -1.49 | +| WIF | 09-19 23:00 | 09-20 02:00 | stop_loss | 3 | -1.49 | +| APT | 09-20 03:00 | 09-20 05:00 | trailing_stop | 2 | -0.04 | +| ETC | 09-20 02:00 | 09-20 07:00 | confirmed_bearish_exit | 5 | +0.16 | +| LTC | 09-19 18:00 | 09-20 10:00 | trailing_stop | 16 | -0.65 | +| AVAX | 09-20 11:00 | 09-20 14:00 | take_profit | 3 | +1.49 | +| PEPE | 09-20 10:00 | 09-20 15:00 | take_profit | 5 | +1.49 | +| BONK | 09-20 09:00 | 09-20 17:00 | stop_loss | 8 | -1.49 | +| KAS | 09-21 00:00 | 09-21 08:00 | stop_loss | 8 | -1.49 | +| AVAX | 09-21 08:00 | 09-21 09:00 | trailing_stop | 1 | -0.47 | +| UNI | 09-19 23:00 | 09-21 09:00 | stop_loss | 34 | -1.49 | +| NEAR | 09-21 06:00 | 09-21 10:00 | stop_loss | 4 | -1.49 | +| KAS | 09-21 08:00 | 09-21 11:00 | stop_loss | 3 | -1.49 | +| TRX | 09-19 06:00 | 09-21 12:00 | stop_loss | 54 | -1.49 | +| WIF | 09-21 09:00 | 09-21 12:00 | take_profit | 3 | +1.49 | +| BONK | 09-21 10:00 | 09-21 15:00 | trailing_stop | 5 | -0.63 | +| OP | 09-21 09:00 | 09-21 15:00 | stop_loss | 6 | -1.49 | +| ARB | 09-21 09:00 | 09-21 16:00 | stop_loss | 7 | -1.49 | +| FIL | 09-21 10:00 | 09-21 16:00 | stop_loss | 6 | -1.49 | +| INJ | 09-21 09:00 | 09-21 16:00 | stop_loss | 7 | -1.49 | +| KAS | 09-21 11:00 | 09-21 16:00 | stop_loss | 5 | -1.49 | +| PEPE | 09-21 09:00 | 09-21 16:00 | stop_loss | 7 | -1.49 | +| RENDER | 09-21 15:00 | 09-21 16:00 | stop_loss | 1 | -1.49 | +| SUI | 09-21 10:00 | 09-21 16:00 | trailing_stop | 6 | -0.52 | +| FET | 09-21 10:00 | 09-21 17:00 | trailing_stop | 7 | -0.53 | +| RENDER | 09-21 16:00 | 09-21 17:00 | trailing_stop | 1 | -0.67 | +| TIA | 09-21 09:00 | 09-21 17:00 | stop_loss | 8 | -1.49 | +| SHIB | 09-20 00:00 | 09-21 21:00 | stop_loss | 45 | -1.49 | +| BONK | 09-21 16:00 | 09-21 22:00 | stop_loss | 6 | -1.49 | +| OP | 09-21 16:00 | 09-21 22:00 | trailing_stop | 6 | -0.69 | +| UNI | 09-21 10:00 | 09-21 22:00 | trailing_stop | 12 | -0.66 | +| KAS | 09-21 16:00 | 09-21 23:00 | trailing_stop | 7 | -0.42 | +| ARB | 09-21 16:00 | 09-22 00:00 | stop_loss | 8 | -1.49 | +| ATOM | 09-21 19:00 | 09-22 00:00 | stop_loss | 5 | -1.49 | +| BONK | 09-21 23:00 | 09-22 00:00 | stop_loss | 1 | -1.49 | +| ETC | 09-21 10:00 | 09-22 00:00 | stop_loss | 14 | -1.49 | +| FIL | 09-21 16:00 | 09-22 00:00 | stop_loss | 8 | -1.49 | +| LTC | 09-21 23:00 | 09-22 00:00 | stop_loss | 1 | -1.49 | +| SEI | 09-21 10:00 | 09-22 00:00 | stop_loss | 14 | -1.49 | +| SHIB | 09-21 23:00 | 09-22 00:00 | stop_loss | 1 | -1.49 | +| TRX | 09-21 12:00 | 09-22 00:00 | stop_loss | 12 | -1.49 | +| ARB | 09-22 00:00 | 09-22 01:00 | take_profit | 1 | +1.49 | +| APT | 09-22 00:00 | 09-22 02:00 | stop_loss | 2 | -1.49 | +| ARB | 09-22 01:00 | 09-22 02:00 | stop_loss | 1 | -1.49 | +| ATOM | 09-22 00:00 | 09-22 02:00 | stop_loss | 2 | -1.49 | +| AVAX | 09-22 00:00 | 09-22 02:00 | stop_loss | 2 | -1.49 | +| BONK | 09-22 00:00 | 09-22 02:00 | stop_loss | 2 | -1.49 | +| ETC | 09-22 00:00 | 09-22 02:00 | stop_loss | 2 | -1.49 | +| FET | 09-22 00:00 | 09-22 02:00 | stop_loss | 2 | -1.49 | +| FIL | 09-22 00:00 | 09-22 02:00 | stop_loss | 2 | -1.49 | +| INJ | 09-22 00:00 | 09-22 02:00 | stop_loss | 2 | -1.49 | +| KAS | 09-22 00:00 | 09-22 02:00 | stop_loss | 2 | -1.49 | +| LTC | 09-22 00:00 | 09-22 02:00 | stop_loss | 2 | -1.49 | +| OP | 09-22 00:00 | 09-22 02:00 | stop_loss | 2 | -1.49 | +| PEPE | 09-22 00:00 | 09-22 02:00 | stop_loss | 2 | -1.49 | +| SEI | 09-22 00:00 | 09-22 02:00 | stop_loss | 2 | -1.49 | +| SHIB | 09-22 00:00 | 09-22 02:00 | stop_loss | 2 | -1.49 | +| SUI | 09-22 00:00 | 09-22 02:00 | stop_loss | 2 | -1.49 | +| TIA | 09-22 00:00 | 09-22 02:00 | stop_loss | 2 | -1.49 | +| UNI | 09-22 00:00 | 09-22 02:00 | stop_loss | 2 | -1.49 | +| WIF | 09-22 00:00 | 09-22 02:00 | stop_loss | 2 | -1.49 | +| KAS | 09-22 02:00 | 09-22 03:00 | stop_loss | 1 | -1.49 | +| APT | 09-22 02:00 | 09-22 05:00 | stop_loss | 3 | -1.49 | +| ARB | 09-22 02:00 | 09-22 05:00 | stop_loss | 3 | -1.49 | +| ATOM | 09-22 02:00 | 09-22 05:00 | stop_loss | 3 | -1.49 | +| AVAX | 09-22 02:00 | 09-22 05:00 | stop_loss | 3 | -1.49 | +| BONK | 09-22 02:00 | 09-22 05:00 | stop_loss | 3 | -1.49 | +| ETC | 09-22 02:00 | 09-22 05:00 | stop_loss | 3 | -1.49 | +| FET | 09-22 02:00 | 09-22 05:00 | stop_loss | 3 | -1.49 | +| FIL | 09-22 02:00 | 09-22 05:00 | stop_loss | 3 | -1.49 | +| INJ | 09-22 02:00 | 09-22 05:00 | stop_loss | 3 | -1.49 | +| KAS | 09-22 03:00 | 09-22 05:00 | stop_loss | 2 | -1.49 | +| LTC | 09-22 02:00 | 09-22 05:00 | stop_loss | 3 | -1.49 | +| NEAR | 09-22 02:00 | 09-22 05:00 | stop_loss | 3 | -1.49 | +| OP | 09-22 02:00 | 09-22 05:00 | stop_loss | 3 | -1.49 | +| PEPE | 09-22 02:00 | 09-22 05:00 | stop_loss | 3 | -1.49 | +| RENDER | 09-22 03:00 | 09-22 05:00 | stop_loss | 2 | -1.49 | +| SEI | 09-22 02:00 | 09-22 05:00 | stop_loss | 3 | -1.49 | +| SHIB | 09-22 02:00 | 09-22 05:00 | stop_loss | 3 | -1.49 | +| SUI | 09-22 02:00 | 09-22 05:00 | stop_loss | 3 | -1.49 | +| TIA | 09-22 02:00 | 09-22 05:00 | stop_loss | 3 | -1.49 | +| UNI | 09-22 02:00 | 09-22 05:00 | stop_loss | 3 | -1.49 | +| WIF | 09-22 02:00 | 09-22 05:00 | stop_loss | 3 | -1.49 | +| APT | 09-22 05:00 | 09-22 06:00 | stop_loss | 1 | -1.49 | +| ARB | 09-22 05:00 | 09-22 06:00 | stop_loss | 1 | -1.49 | +| ATOM | 09-22 05:00 | 09-22 06:00 | stop_loss | 1 | -1.49 | +| AVAX | 09-22 05:00 | 09-22 06:00 | stop_loss | 1 | -1.49 | +| BONK | 09-22 05:00 | 09-22 06:00 | stop_loss | 1 | -1.49 | +| ETC | 09-22 05:00 | 09-22 06:00 | stop_loss | 1 | -1.49 | +| FET | 09-22 05:00 | 09-22 06:00 | stop_loss | 1 | -1.49 | +| FIL | 09-22 05:00 | 09-22 06:00 | stop_loss | 1 | -1.49 | +| INJ | 09-22 05:00 | 09-22 06:00 | stop_loss | 1 | -1.49 | +| KAS | 09-22 05:00 | 09-22 06:00 | stop_loss | 1 | -1.49 | +| LTC | 09-22 05:00 | 09-22 06:00 | stop_loss | 1 | -1.49 | +| NEAR | 09-22 05:00 | 09-22 06:00 | stop_loss | 1 | -1.49 | +| OP | 09-22 05:00 | 09-22 06:00 | stop_loss | 1 | -1.49 | +| PEPE | 09-22 05:00 | 09-22 06:00 | stop_loss | 1 | -1.49 | +| RENDER | 09-22 05:00 | 09-22 06:00 | stop_loss | 1 | -1.49 | +| SEI | 09-22 05:00 | 09-22 06:00 | stop_loss | 1 | -1.49 | +| SHIB | 09-22 05:00 | 09-22 06:00 | stop_loss | 1 | -1.49 | +| SUI | 09-22 05:00 | 09-22 06:00 | stop_loss | 1 | -1.49 | +| TIA | 09-22 05:00 | 09-22 06:00 | stop_loss | 1 | -1.49 | +| TRX | 09-22 00:00 | 09-22 06:00 | stop_loss | 6 | -1.49 | +| UNI | 09-22 05:00 | 09-22 06:00 | stop_loss | 1 | -1.49 | +| WIF | 09-22 05:00 | 09-22 06:00 | stop_loss | 1 | -1.49 | +| AVAX | 09-22 06:00 | 09-22 07:00 | stop_loss | 1 | -1.49 | +| BONK | 09-22 06:00 | 09-22 07:00 | stop_loss | 1 | -1.49 | +| LTC | 09-22 06:00 | 09-22 07:00 | stop_loss | 1 | -1.49 | +| NEAR | 09-22 06:00 | 09-22 07:00 | stop_loss | 1 | -1.49 | +| RENDER | 09-22 06:00 | 09-22 07:00 | stop_loss | 1 | -1.49 | +| SEI | 09-22 06:00 | 09-22 07:00 | stop_loss | 1 | -1.49 | +| SUI | 09-22 06:00 | 09-22 07:00 | stop_loss | 1 | -1.49 | +| UNI | 09-22 06:00 | 09-22 07:00 | stop_loss | 1 | -1.49 | +| WIF | 09-22 06:00 | 09-22 07:00 | stop_loss | 1 | -1.49 | +| APT | 09-22 06:00 | 09-22 08:00 | stop_loss | 2 | -1.49 | +| ATOM | 09-22 06:00 | 09-22 08:00 | stop_loss | 2 | -1.49 | +| AVAX | 09-22 07:00 | 09-22 08:00 | trailing_stop | 1 | -0.42 | +| FET | 09-22 06:00 | 09-22 08:00 | stop_loss | 2 | -1.49 | +| FIL | 09-22 06:00 | 09-22 08:00 | stop_loss | 2 | -1.49 | +| INJ | 09-22 06:00 | 09-22 08:00 | stop_loss | 2 | -1.49 | +| OP | 09-22 06:00 | 09-22 08:00 | stop_loss | 2 | -1.49 | +| PEPE | 09-22 06:00 | 09-22 08:00 | stop_loss | 2 | -1.49 | +| RENDER | 09-22 07:00 | 09-22 08:00 | stop_loss | 1 | -1.49 | +| SEI | 09-22 07:00 | 09-22 08:00 | trailing_stop | 1 | -0.43 | +| SHIB | 09-22 06:00 | 09-22 08:00 | stop_loss | 2 | -1.49 | +| TIA | 09-22 06:00 | 09-22 08:00 | stop_loss | 2 | -1.49 | +| ARB | 09-22 06:00 | 09-22 09:00 | stop_loss | 3 | -1.49 | +| KAS | 09-22 06:00 | 09-22 09:00 | stop_loss | 3 | -1.49 | +| RENDER | 09-22 08:00 | 09-22 09:00 | stop_loss | 1 | -1.49 | +| UNI | 09-22 07:00 | 09-22 09:00 | stop_loss | 2 | -1.49 | +| WIF | 09-22 07:00 | 09-22 09:00 | stop_loss | 2 | -1.49 | +| NEAR | 09-22 07:00 | 09-22 10:00 | take_profit | 3 | +1.49 | +| RENDER | 09-22 09:00 | 09-22 10:00 | take_profit | 1 | +1.49 | +| TRX | 09-22 06:00 | 09-22 11:00 | trailing_stop | 5 | -0.23 | +| AVAX | 09-22 12:00 | 09-22 13:00 | trailing_stop | 1 | -0.68 | +| NEAR | 09-22 13:00 | 09-22 14:00 | stop_loss | 1 | -1.49 | +| SEI | 09-22 13:00 | 09-22 14:00 | stop_loss | 1 | -1.49 | +| BONK | 09-22 14:00 | 09-22 15:00 | stop_loss | 1 | -1.49 | +| SUI | 09-22 07:00 | 09-22 15:00 | trailing_stop | 8 | -0.14 | +| NEAR | 09-22 14:00 | 09-22 16:00 | stop_loss | 2 | -1.49 | +| SEI | 09-22 14:00 | 09-22 16:00 | stop_loss | 2 | -1.49 | +| BONK | 09-22 15:00 | 09-22 17:00 | stop_loss | 2 | -1.49 | +| ETC | 09-22 06:00 | 09-22 17:00 | stop_loss | 11 | -1.49 | +| RENDER | 09-22 14:00 | 09-22 17:00 | stop_loss | 3 | -1.49 | +| SHIB | 09-22 14:00 | 09-22 19:00 | stop_loss | 5 | -1.49 | +| SUI | 09-22 15:00 | 09-22 19:00 | stop_loss | 4 | -1.49 | +| FET | 09-22 14:00 | 09-22 23:00 | confirmed_bearish_exit | 9 | +1.26 | +| ARB | 09-23 02:00 | 09-23 03:00 | take_profit | 1 | +1.49 | +| LTC | 09-22 07:00 | 09-23 03:00 | stop_loss | 20 | -1.49 | +| RENDER | 09-23 02:00 | 09-23 05:00 | stop_loss | 3 | -1.49 | +| BONK | 09-23 20:00 | 09-23 23:00 | stop_loss | 3 | -1.49 | +| NEAR | 09-23 20:00 | 09-23 23:00 | stop_loss | 3 | -1.49 | +| OP | 09-23 19:00 | 09-23 23:00 | stop_loss | 4 | -1.49 | +| AVAX | 09-23 22:00 | 09-24 00:00 | take_profit | 2 | +1.49 | +| NEAR | 09-23 23:00 | 09-24 00:00 | take_profit | 1 | +1.49 | +| OP | 09-23 23:00 | 09-24 01:00 | take_profit | 2 | +1.49 | +| SEI | 09-23 22:00 | 09-24 03:00 | stop_loss | 5 | -1.49 | +| UNI | 09-23 17:00 | 09-24 03:00 | stop_loss | 10 | -1.49 | +| WIF | 09-23 20:00 | 09-24 03:00 | stop_loss | 7 | -1.49 | +| APT | 09-24 03:00 | 09-24 04:00 | stop_loss | 1 | -1.49 | +| ARB | 09-24 03:00 | 09-24 04:00 | stop_loss | 1 | -1.49 | +| ATOM | 09-24 03:00 | 09-24 04:00 | stop_loss | 1 | -1.49 | +| BONK | 09-24 03:00 | 09-24 04:00 | stop_loss | 1 | -1.49 | +| ETC | 09-24 03:00 | 09-24 04:00 | stop_loss | 1 | -1.49 | +| RENDER | 09-24 03:00 | 09-24 04:00 | stop_loss | 1 | -1.49 | +| SEI | 09-24 03:00 | 09-24 04:00 | stop_loss | 1 | -1.49 | +| SHIB | 09-24 03:00 | 09-24 04:00 | stop_loss | 1 | -1.49 | +| UNI | 09-24 03:00 | 09-24 04:00 | stop_loss | 1 | -1.49 | +| WIF | 09-24 03:00 | 09-24 04:00 | stop_loss | 1 | -1.49 | +| ARB | 09-24 20:00 | 09-24 21:00 | stop_loss | 1 | -1.49 | +| AVAX | 09-24 20:00 | 09-24 21:00 | stop_loss | 1 | -1.49 | +| OP | 09-24 19:00 | 09-24 21:00 | stop_loss | 2 | -1.49 | +| AVAX | 09-24 21:00 | 09-24 22:00 | stop_loss | 1 | -1.49 | +| UNI | 09-24 21:00 | 09-25 00:00 | stop_loss | 3 | -1.49 | +| OP | 09-24 21:00 | 09-25 01:00 | stop_loss | 4 | -1.49 | +| WIF | 09-24 21:00 | 09-25 01:00 | stop_loss | 4 | -1.49 | +| ARB | 09-24 21:00 | 09-25 02:00 | stop_loss | 5 | -1.49 | +| INJ | 09-25 00:00 | 09-25 02:00 | stop_loss | 2 | -1.49 | +| RENDER | 09-25 00:00 | 09-25 02:00 | stop_loss | 2 | -1.49 | +| SUI | 09-25 00:00 | 09-25 02:00 | stop_loss | 2 | -1.49 | +| TIA | 09-25 00:00 | 09-25 02:00 | stop_loss | 2 | -1.49 | +| APT | 09-25 00:00 | 09-25 03:00 | stop_loss | 3 | -1.49 | +| ATOM | 09-25 00:00 | 09-25 03:00 | stop_loss | 3 | -1.49 | +| AVAX | 09-24 22:00 | 09-25 03:00 | stop_loss | 5 | -1.49 | +| ETC | 09-24 23:00 | 09-25 03:00 | stop_loss | 4 | -1.49 | +| FET | 09-25 00:00 | 09-25 03:00 | stop_loss | 3 | -1.49 | +| FIL | 09-24 21:00 | 09-25 03:00 | stop_loss | 6 | -1.49 | +| KAS | 09-25 01:00 | 09-25 03:00 | stop_loss | 2 | -1.49 | +| PEPE | 09-25 01:00 | 09-25 03:00 | stop_loss | 2 | -1.49 | +| SEI | 09-25 00:00 | 09-25 03:00 | stop_loss | 3 | -1.49 | +| SHIB | 09-25 00:00 | 09-25 03:00 | stop_loss | 3 | -1.49 | +| UNI | 09-25 00:00 | 09-25 03:00 | stop_loss | 3 | -1.49 | +| WIF | 09-25 01:00 | 09-25 03:00 | stop_loss | 2 | -1.49 | +| BONK | 09-25 01:00 | 09-25 04:00 | stop_loss | 3 | -1.49 | +| INJ | 09-25 03:00 | 09-25 04:00 | stop_loss | 1 | -1.49 | +| LTC | 09-25 00:00 | 09-25 04:00 | stop_loss | 4 | -1.49 | +| NEAR | 09-25 03:00 | 09-25 04:00 | stop_loss | 1 | -1.49 | +| RENDER | 09-25 03:00 | 09-25 04:00 | stop_loss | 1 | -1.49 | +| WIF | 09-25 03:00 | 09-25 04:00 | stop_loss | 1 | -1.49 | +| FET | 09-25 04:00 | 09-25 05:00 | trailing_stop | 1 | -0.67 | +| RENDER | 09-25 04:00 | 09-25 05:00 | trailing_stop | 1 | -0.56 | +| TIA | 09-25 04:00 | 09-25 05:00 | trailing_stop | 1 | -0.34 | +| AVAX | 09-25 04:00 | 09-25 06:00 | stop_loss | 2 | -1.49 | +| KAS | 09-25 04:00 | 09-25 06:00 | stop_loss | 2 | -1.49 | +| NEAR | 09-25 04:00 | 09-25 06:00 | stop_loss | 2 | -1.49 | +| KAS | 09-25 06:00 | 09-25 09:00 | take_profit | 3 | +1.49 | +| NEAR | 09-25 06:00 | 09-25 09:00 | take_profit | 3 | +1.49 | +| SUI | 09-25 04:00 | 09-25 09:00 | stop_loss | 5 | -1.49 | +| TRX | 09-23 11:00 | 09-25 09:00 | stop_loss | 46 | -1.49 | +| APT | 09-25 04:00 | 09-25 11:00 | stop_loss | 7 | -1.49 | +| ARB | 09-25 04:00 | 09-25 11:00 | stop_loss | 7 | -1.49 | +| BONK | 09-25 04:00 | 09-25 11:00 | stop_loss | 7 | -1.49 | +| INJ | 09-25 04:00 | 09-25 11:00 | stop_loss | 7 | -1.49 | +| PEPE | 09-25 04:00 | 09-25 11:00 | stop_loss | 7 | -1.49 | +| SEI | 09-25 04:00 | 09-25 11:00 | stop_loss | 7 | -1.49 | +| UNI | 09-25 04:00 | 09-25 11:00 | trailing_stop | 7 | -0.63 | +| WIF | 09-25 04:00 | 09-25 11:00 | stop_loss | 7 | -1.49 | +| ATOM | 09-25 04:00 | 09-25 12:00 | stop_loss | 8 | -1.49 | +| ETC | 09-25 04:00 | 09-25 12:00 | stop_loss | 8 | -1.49 | +| FET | 09-25 06:00 | 09-25 12:00 | stop_loss | 6 | -1.49 | +| FIL | 09-25 04:00 | 09-25 12:00 | stop_loss | 8 | -1.49 | +| LTC | 09-25 04:00 | 09-25 12:00 | stop_loss | 8 | -1.49 | +| OP | 09-25 04:00 | 09-25 12:00 | stop_loss | 8 | -1.49 | +| RENDER | 09-25 06:00 | 09-25 12:00 | stop_loss | 6 | -1.49 | +| SHIB | 09-25 04:00 | 09-25 12:00 | stop_loss | 8 | -1.49 | +| KAS | 09-25 13:00 | 09-25 14:00 | take_profit | 1 | +1.49 | +| NEAR | 09-25 14:00 | 09-25 15:00 | stop_loss | 1 | -1.49 | +| NEAR | 09-25 15:00 | 09-25 16:00 | stop_loss | 1 | -1.49 | +| ARB | 09-25 16:00 | 09-25 17:00 | stop_loss | 1 | -1.49 | +| FET | 09-25 16:00 | 09-25 17:00 | stop_loss | 1 | -1.49 | +| FIL | 09-25 16:00 | 09-25 17:00 | stop_loss | 1 | -1.49 | +| LTC | 09-25 16:00 | 09-25 17:00 | stop_loss | 1 | -1.49 | +| OP | 09-25 16:00 | 09-25 17:00 | stop_loss | 1 | -1.49 | +| PEPE | 09-25 16:00 | 09-25 17:00 | stop_loss | 1 | -1.49 | +| SHIB | 09-25 16:00 | 09-25 17:00 | stop_loss | 1 | -1.49 | +| TIA | 09-25 16:00 | 09-25 17:00 | stop_loss | 1 | -1.49 | +| TRX | 09-25 10:00 | 09-25 17:00 | trailing_stop | 7 | -0.36 | +| UNI | 09-25 16:00 | 09-25 17:00 | stop_loss | 1 | -1.49 | +| APT | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| ARB | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| ATOM | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| BONK | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| ETC | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| FET | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| FIL | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| INJ | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| KAS | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| LTC | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| OP | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| PEPE | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| RENDER | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| SEI | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| SHIB | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| SUI | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| TIA | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| UNI | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| WIF | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| NEAR | 09-25 23:00 | 09-26 00:00 | stop_loss | 1 | -1.49 | +| UNI | 09-26 14:00 | 09-26 16:00 | take_profit | 2 | +1.49 | +| AVAX | 09-27 07:00 | 09-27 09:00 | stop_loss | 2 | -1.49 | +| BONK | 09-27 07:00 | 09-27 09:00 | stop_loss | 2 | -1.49 | +| PEPE | 09-27 07:00 | 09-27 09:00 | stop_loss | 2 | -1.49 | +| RENDER | 09-27 07:00 | 09-27 09:00 | stop_loss | 2 | -1.49 | +| SEI | 09-27 07:00 | 09-27 09:00 | stop_loss | 2 | -1.49 | +| SUI | 09-27 07:00 | 09-27 09:00 | stop_loss | 2 | -1.49 | +| WIF | 09-27 07:00 | 09-27 09:00 | stop_loss | 2 | -1.49 | +| AVAX | 09-27 13:00 | 09-27 14:00 | trailing_stop | 1 | -0.69 | +| TIA | 09-27 07:00 | 09-27 15:00 | trailing_stop | 8 | -0.53 | +| INJ | 09-27 07:00 | 09-27 17:00 | trailing_stop | 10 | -0.09 | +| KAS | 09-27 13:00 | 09-27 17:00 | stop_loss | 4 | -1.49 | +| NEAR | 09-27 07:00 | 09-27 17:00 | stop_loss | 10 | -1.49 | +| SEI | 09-27 11:00 | 09-27 17:00 | stop_loss | 6 | -1.49 | +| WIF | 09-27 11:00 | 09-27 17:00 | stop_loss | 6 | -1.49 | +| BONK | 09-27 11:00 | 09-27 18:00 | stop_loss | 7 | -1.49 | +| ATOM | 09-27 08:00 | 09-27 22:00 | take_profit | 14 | +1.49 | +| RENDER | 09-27 11:00 | 09-28 00:00 | stop_loss | 13 | -1.49 | +| FET | 09-27 08:00 | 09-28 01:00 | stop_loss | 17 | -1.49 | +| PEPE | 09-27 09:00 | 09-28 01:00 | stop_loss | 16 | -1.49 | +| LTC | 09-27 07:00 | 09-28 03:00 | trailing_stop | 20 | -0.57 | +| ETC | 09-27 07:00 | 09-28 06:00 | stop_loss | 23 | -1.49 | +| FIL | 09-28 01:00 | 09-28 06:00 | stop_loss | 5 | -1.49 | +| SEI | 09-28 02:00 | 09-28 06:00 | stop_loss | 4 | -1.49 | +| SHIB | 09-27 08:00 | 09-28 06:00 | stop_loss | 22 | -1.49 | +| INJ | 09-28 05:00 | 09-28 09:00 | stop_loss | 4 | -1.49 | +| WIF | 09-28 01:00 | 09-28 09:00 | stop_loss | 8 | -1.49 | +| BONK | 09-28 08:00 | 09-28 10:00 | stop_loss | 2 | -1.49 | +| FET | 09-28 01:00 | 09-28 10:00 | stop_loss | 9 | -1.49 | +| RENDER | 09-28 01:00 | 09-28 10:00 | stop_loss | 9 | -1.49 | +| KAS | 09-28 02:00 | 09-28 11:00 | take_profit | 9 | +1.49 | +| SUI | 09-28 01:00 | 09-28 11:00 | stop_loss | 10 | -1.49 | +| ARB | 09-28 08:00 | 09-28 12:00 | stop_loss | 4 | -1.49 | +| FIL | 09-28 06:00 | 09-28 12:00 | stop_loss | 6 | -1.49 | +| LTC | 09-28 04:00 | 09-28 12:00 | stop_loss | 8 | -1.49 | +| PEPE | 09-28 01:00 | 09-28 12:00 | stop_loss | 11 | -1.49 | +| TIA | 09-28 06:00 | 09-28 12:00 | stop_loss | 6 | -1.49 | +| WIF | 09-28 09:00 | 09-28 12:00 | stop_loss | 3 | -1.49 | +| APT | 09-28 09:00 | 09-28 13:00 | trailing_stop | 4 | -0.32 | +| BONK | 09-28 12:00 | 09-28 13:00 | take_profit | 1 | +1.49 | +| RENDER | 09-28 11:00 | 09-28 13:00 | trailing_stop | 2 | -0.02 | +| UNI | 09-28 12:00 | 09-28 13:00 | trailing_stop | 1 | -0.40 | +| WIF | 09-28 12:00 | 09-28 13:00 | trailing_stop | 1 | -0.05 | +| TRX | 09-28 09:00 | 09-29 10:00 | stop_loss | 25 | -1.49 | +| WIF | 09-29 09:00 | 09-29 11:00 | stop_loss | 2 | -1.49 | +| ARB | 09-29 12:00 | 09-29 13:00 | trailing_stop | 1 | -0.26 | +| ATOM | 09-29 12:00 | 09-29 13:00 | stop_loss | 1 | -1.49 | +| BONK | 09-29 12:00 | 09-29 13:00 | take_profit | 1 | +1.49 | +| ETC | 09-29 12:00 | 09-29 13:00 | trailing_stop | 1 | -0.50 | +| FET | 09-29 12:00 | 09-29 13:00 | trailing_stop | 1 | -0.07 | +| FIL | 09-29 12:00 | 09-29 13:00 | trailing_stop | 1 | -0.07 | +| INJ | 09-29 12:00 | 09-29 13:00 | take_profit | 1 | +1.49 | +| KAS | 09-29 12:00 | 09-29 13:00 | take_profit | 1 | +1.49 | +| NEAR | 09-29 12:00 | 09-29 13:00 | take_profit | 1 | +1.49 | +| OP | 09-29 12:00 | 09-29 13:00 | take_profit | 1 | +1.49 | +| PEPE | 09-29 12:00 | 09-29 13:00 | take_profit | 1 | +1.49 | +| RENDER | 09-29 12:00 | 09-29 13:00 | take_profit | 1 | +1.49 | +| SEI | 09-29 12:00 | 09-29 13:00 | take_profit | 1 | +1.49 | +| SHIB | 09-29 12:00 | 09-29 13:00 | trailing_stop | 1 | -0.57 | +| SUI | 09-29 12:00 | 09-29 13:00 | take_profit | 1 | +1.49 | +| TIA | 09-29 12:00 | 09-29 13:00 | take_profit | 1 | +1.49 | +| UNI | 09-29 12:00 | 09-29 13:00 | take_profit | 1 | +1.49 | +| WIF | 09-29 11:00 | 09-29 13:00 | stop_loss | 2 | -1.49 | +| WIF | 09-29 16:00 | 09-29 17:00 | trailing_stop | 1 | -0.28 | +| AVAX | 09-30 05:00 | 09-30 07:00 | stop_loss | 2 | -1.49 | +| LTC | 09-29 12:00 | 09-30 07:00 | trailing_stop | 19 | -0.22 | +| AVAX | 09-30 07:00 | 09-30 09:00 | stop_loss | 2 | -1.49 | +| FET | 09-30 04:00 | 09-30 09:00 | stop_loss | 5 | -1.49 | +| SHIB | 09-30 04:00 | 09-30 10:00 | stop_loss | 6 | -1.49 | +| APT | 09-30 09:00 | 09-30 11:00 | take_profit | 2 | +1.49 | +| NEAR | 09-30 09:00 | 09-30 13:00 | stop_loss | 4 | -1.49 | +| INJ | 09-30 09:00 | 09-30 15:00 | stop_loss | 6 | -1.49 | +| LTC | 09-30 08:00 | 09-30 15:00 | stop_loss | 7 | -1.49 | +| SUI | 09-30 09:00 | 09-30 15:00 | stop_loss | 6 | -1.49 | +| WIF | 09-30 12:00 | 09-30 15:00 | stop_loss | 3 | -1.49 | +| ETC | 09-30 09:00 | 09-30 17:00 | stop_loss | 8 | -1.49 | +| TIA | 09-30 15:00 | 09-30 18:00 | trailing_stop | 3 | -0.62 | +| LTC | 09-30 15:00 | 09-30 19:00 | take_profit | 4 | +1.49 | +| RENDER | 09-30 15:00 | 09-30 19:00 | take_profit | 4 | +1.49 | +| SUI | 09-30 15:00 | 09-30 19:00 | take_profit | 4 | +1.49 | +| FET | 09-30 17:00 | 09-30 20:00 | trailing_stop | 3 | +0.03 | +| TRX | 09-30 12:00 | 09-30 20:00 | stop_loss | 8 | -1.49 | +| FET | 10-01 00:00 | 10-01 01:00 | trailing_stop | 1 | -0.65 | +| FET | 10-01 02:00 | 10-01 03:00 | stop_loss | 1 | -1.49 | +| FET | 10-01 03:00 | 10-01 08:00 | take_profit | 5 | +1.49 | +| TRX | 10-01 00:00 | 10-01 14:00 | take_profit | 14 | +1.49 | +| ATOM | 10-01 22:00 | 10-02 01:00 | take_profit | 3 | +1.49 | +| BONK | 10-02 14:00 | 10-02 15:00 | take_profit | 1 | +1.49 | +| FET | 10-02 14:00 | 10-02 15:00 | trailing_stop | 1 | -0.53 | +| INJ | 10-02 14:00 | 10-02 15:00 | trailing_stop | 1 | -0.42 | +| SEI | 10-02 14:00 | 10-02 15:00 | trailing_stop | 1 | -0.58 | +| LTC | 10-03 00:00 | 10-03 06:00 | stop_loss | 6 | -1.49 | +| WIF | 10-03 09:00 | 10-03 11:00 | stop_loss | 2 | -1.49 | +| ARB | 10-03 09:00 | 10-03 12:00 | stop_loss | 3 | -1.49 | +| FET | 10-03 09:00 | 10-03 13:00 | stop_loss | 4 | -1.49 | +| OP | 10-03 10:00 | 10-03 13:00 | stop_loss | 3 | -1.49 | +| AVAX | 10-03 09:00 | 10-03 14:00 | stop_loss | 5 | -1.49 | +| LTC | 10-03 11:00 | 10-03 14:00 | take_profit | 3 | +1.49 | +| FIL | 10-03 07:00 | 10-03 15:00 | take_profit | 8 | +1.49 | +| KAS | 10-04 05:00 | 10-04 07:00 | stop_loss | 2 | -1.49 | +| ATOM | 10-04 05:00 | 10-04 08:00 | stop_loss | 3 | -1.49 | +| FET | 10-04 05:00 | 10-04 08:00 | stop_loss | 3 | -1.49 | +| RENDER | 10-04 05:00 | 10-04 08:00 | stop_loss | 3 | -1.49 | +| SUI | 10-04 01:00 | 10-04 08:00 | stop_loss | 7 | -1.49 | +| TIA | 10-04 05:00 | 10-04 08:00 | stop_loss | 3 | -1.49 | +| ATOM | 10-04 08:00 | 10-04 10:00 | stop_loss | 2 | -1.49 | +| FIL | 10-04 08:00 | 10-04 10:00 | stop_loss | 2 | -1.49 | +| NEAR | 10-04 08:00 | 10-04 10:00 | stop_loss | 2 | -1.49 | +| OP | 10-04 08:00 | 10-04 10:00 | stop_loss | 2 | -1.49 | +| APT | 10-04 10:00 | 10-04 11:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-04 08:00 | 10-04 11:00 | stop_loss | 3 | -1.49 | +| KAS | 10-04 08:00 | 10-04 11:00 | stop_loss | 3 | -1.49 | +| OP | 10-04 10:00 | 10-04 13:00 | take_profit | 3 | +1.49 | +| SUI | 10-04 09:00 | 10-04 13:00 | take_profit | 4 | +1.49 | +| AVAX | 10-04 11:00 | 10-04 14:00 | stop_loss | 3 | -1.49 | +| SEI | 10-04 08:00 | 10-04 14:00 | stop_loss | 6 | -1.49 | +| ARB | 10-04 09:00 | 10-04 15:00 | stop_loss | 6 | -1.49 | +| ATOM | 10-04 10:00 | 10-04 15:00 | stop_loss | 5 | -1.49 | +| BONK | 10-04 14:00 | 10-04 15:00 | stop_loss | 1 | -1.49 | +| ETC | 10-04 09:00 | 10-04 15:00 | stop_loss | 6 | -1.49 | +| FET | 10-04 08:00 | 10-04 15:00 | stop_loss | 7 | -1.49 | +| FIL | 10-04 10:00 | 10-04 15:00 | stop_loss | 5 | -1.49 | +| INJ | 10-04 10:00 | 10-04 15:00 | stop_loss | 5 | -1.49 | +| NEAR | 10-04 10:00 | 10-04 15:00 | stop_loss | 5 | -1.49 | +| SHIB | 10-04 10:00 | 10-04 15:00 | stop_loss | 5 | -1.49 | +| PEPE | 10-04 14:00 | 10-04 16:00 | stop_loss | 2 | -1.49 | +| WIF | 10-04 14:00 | 10-04 16:00 | stop_loss | 2 | -1.49 | +| INJ | 10-04 15:00 | 10-04 18:00 | stop_loss | 3 | -1.49 | +| APT | 10-04 11:00 | 10-04 19:00 | trailing_stop | 8 | -0.05 | +| SHIB | 10-04 15:00 | 10-04 19:00 | confirmed_bearish_exit | 4 | +0.08 | +| APT | 10-04 19:00 | 10-04 23:00 | stop_loss | 4 | -1.49 | +| BONK | 10-04 22:00 | 10-05 00:00 | stop_loss | 2 | -1.49 | +| INJ | 10-04 18:00 | 10-05 00:00 | trailing_stop | 6 | -0.38 | +| KAS | 10-04 15:00 | 10-05 00:00 | trailing_stop | 9 | -0.04 | +| LTC | 10-04 07:00 | 10-05 00:00 | take_profit | 17 | +1.49 | +| SEI | 10-04 15:00 | 10-05 00:00 | take_profit | 9 | +1.49 | +| WIF | 10-04 22:00 | 10-05 00:00 | stop_loss | 2 | -1.49 | +| AVAX | 10-04 14:00 | 10-05 02:00 | take_profit | 12 | +1.49 | +| ETC | 10-04 19:00 | 10-05 02:00 | trailing_stop | 7 | -0.07 | +| FIL | 10-04 21:00 | 10-05 02:00 | trailing_stop | 5 | -0.05 | +| OP | 10-04 20:00 | 10-05 02:00 | trailing_stop | 6 | +0.21 | +| PEPE | 10-04 16:00 | 10-05 02:00 | take_profit | 10 | +1.49 | +| RENDER | 10-04 19:00 | 10-05 02:00 | trailing_stop | 7 | +0.09 | +| SHIB | 10-04 21:00 | 10-05 02:00 | trailing_stop | 5 | -0.20 | +| UNI | 10-04 20:00 | 10-05 02:00 | take_profit | 6 | +1.49 | +| ATOM | 10-04 21:00 | 10-05 04:00 | take_profit | 7 | +1.49 | +| KAS | 10-05 16:00 | 10-05 18:00 | stop_loss | 2 | -1.49 | +| LTC | 10-05 16:00 | 10-05 19:00 | stop_loss | 3 | -1.49 | +| OP | 10-05 18:00 | 10-05 19:00 | stop_loss | 1 | -1.49 | +| SUI | 10-05 17:00 | 10-05 19:00 | stop_loss | 2 | -1.49 | +| TIA | 10-05 18:00 | 10-05 19:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-05 18:00 | 10-05 20:00 | stop_loss | 2 | -1.49 | +| KAS | 10-05 18:00 | 10-05 20:00 | stop_loss | 2 | -1.49 | +| FET | 10-05 18:00 | 10-05 21:00 | stop_loss | 3 | -1.49 | +| BONK | 10-05 19:00 | 10-06 00:00 | stop_loss | 5 | -1.49 | +| INJ | 10-05 19:00 | 10-06 00:00 | take_profit | 5 | +1.49 | +| TIA | 10-05 19:00 | 10-06 00:00 | trailing_stop | 5 | -0.71 | +| WIF | 10-05 21:00 | 10-06 00:00 | stop_loss | 3 | -1.49 | +| FIL | 10-05 19:00 | 10-06 01:00 | trailing_stop | 6 | -0.57 | +| OP | 10-05 19:00 | 10-06 01:00 | take_profit | 6 | +1.49 | +| SEI | 10-05 19:00 | 10-06 01:00 | take_profit | 6 | +1.49 | +| UNI | 10-05 19:00 | 10-06 01:00 | trailing_stop | 6 | -0.46 | +| ETC | 10-05 19:00 | 10-06 02:00 | trailing_stop | 7 | -0.00 | +| RENDER | 10-05 19:00 | 10-06 02:00 | take_profit | 7 | +1.49 | +| ARB | 10-05 19:00 | 10-06 06:00 | take_profit | 11 | +1.49 | +| PEPE | 10-05 19:00 | 10-06 06:00 | take_profit | 11 | +1.49 | +| SUI | 10-05 19:00 | 10-06 06:00 | take_profit | 11 | +1.49 | +| SHIB | 10-05 19:00 | 10-06 07:00 | take_profit | 12 | +1.49 | +| BONK | 10-06 03:00 | 10-06 10:00 | take_profit | 7 | +1.49 | +| NEAR | 10-05 19:00 | 10-06 12:00 | take_profit | 17 | +1.49 | +| SEI | 10-06 05:00 | 10-06 12:00 | take_profit | 7 | +1.49 | +| ATOM | 10-05 21:00 | 10-06 13:00 | trailing_stop | 16 | +0.13 | +| FET | 10-06 03:00 | 10-06 13:00 | trailing_stop | 10 | -0.27 | +| LTC | 10-06 21:00 | 10-07 00:00 | stop_loss | 3 | -1.49 | +| RENDER | 10-07 03:00 | 10-07 04:00 | trailing_stop | 1 | -0.70 | +| AVAX | 10-07 05:00 | 10-07 06:00 | stop_loss | 1 | -1.49 | +| INJ | 10-07 03:00 | 10-07 06:00 | stop_loss | 3 | -1.49 | +| OP | 10-07 03:00 | 10-07 06:00 | stop_loss | 3 | -1.49 | +| FET | 10-07 03:00 | 10-07 07:00 | stop_loss | 4 | -1.49 | +| ARB | 10-07 06:00 | 10-07 08:00 | stop_loss | 2 | -1.49 | +| ATOM | 10-07 06:00 | 10-07 08:00 | stop_loss | 2 | -1.49 | +| AVAX | 10-07 06:00 | 10-07 08:00 | stop_loss | 2 | -1.49 | +| BONK | 10-07 07:00 | 10-07 08:00 | stop_loss | 1 | -1.49 | +| ETC | 10-07 07:00 | 10-07 08:00 | stop_loss | 1 | -1.49 | +| FIL | 10-07 06:00 | 10-07 08:00 | stop_loss | 2 | -1.49 | +| INJ | 10-07 06:00 | 10-07 08:00 | stop_loss | 2 | -1.49 | +| OP | 10-07 06:00 | 10-07 08:00 | stop_loss | 2 | -1.49 | +| PEPE | 10-07 06:00 | 10-07 08:00 | stop_loss | 2 | -1.49 | +| RENDER | 10-07 06:00 | 10-07 08:00 | stop_loss | 2 | -1.49 | +| SEI | 10-07 06:00 | 10-07 08:00 | stop_loss | 2 | -1.49 | +| SHIB | 10-07 06:00 | 10-07 08:00 | stop_loss | 2 | -1.49 | +| UNI | 10-07 06:00 | 10-07 08:00 | stop_loss | 2 | -1.49 | +| WIF | 10-07 06:00 | 10-07 08:00 | stop_loss | 2 | -1.49 | +| APT | 10-07 08:00 | 10-07 09:00 | trailing_stop | 1 | -0.25 | +| ATOM | 10-07 08:00 | 10-07 10:00 | stop_loss | 2 | -1.49 | +| WIF | 10-07 08:00 | 10-07 11:00 | take_profit | 3 | +1.49 | +| BONK | 10-07 08:00 | 10-07 12:00 | take_profit | 4 | +1.49 | +| INJ | 10-07 08:00 | 10-07 12:00 | trailing_stop | 4 | +0.02 | +| NEAR | 10-07 06:00 | 10-07 12:00 | take_profit | 6 | +1.49 | +| SEI | 10-07 08:00 | 10-07 12:00 | take_profit | 4 | +1.49 | +| UNI | 10-07 08:00 | 10-07 12:00 | trailing_stop | 4 | -0.10 | +| ARB | 10-07 08:00 | 10-07 13:00 | trailing_stop | 5 | -0.20 | +| ATOM | 10-07 10:00 | 10-07 13:00 | trailing_stop | 3 | -0.52 | +| AVAX | 10-07 08:00 | 10-07 13:00 | stop_loss | 5 | -1.49 | +| ETC | 10-07 08:00 | 10-07 13:00 | take_profit | 5 | +1.49 | +| FIL | 10-07 08:00 | 10-07 13:00 | trailing_stop | 5 | -0.30 | +| OP | 10-07 08:00 | 10-07 13:00 | stop_loss | 5 | -1.49 | +| PEPE | 10-07 08:00 | 10-07 13:00 | take_profit | 5 | +1.49 | +| RENDER | 10-07 08:00 | 10-07 13:00 | stop_loss | 5 | -1.49 | +| SHIB | 10-07 08:00 | 10-07 13:00 | trailing_stop | 5 | -0.50 | +| TIA | 10-07 08:00 | 10-07 13:00 | trailing_stop | 5 | +0.02 | +| AVAX | 10-07 13:00 | 10-07 14:00 | stop_loss | 1 | -1.49 | +| FET | 10-07 13:00 | 10-07 14:00 | stop_loss | 1 | -1.49 | +| KAS | 10-07 13:00 | 10-07 14:00 | stop_loss | 1 | -1.49 | +| LTC | 10-07 01:00 | 10-07 14:00 | stop_loss | 13 | -1.49 | +| SHIB | 10-07 13:00 | 10-07 14:00 | stop_loss | 1 | -1.49 | +| TRX | 10-05 22:00 | 10-07 14:00 | trailing_stop | 40 | +0.04 | +| ARB | 10-07 14:00 | 10-07 15:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-07 14:00 | 10-07 15:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-07 14:00 | 10-07 15:00 | stop_loss | 1 | -1.49 | +| BONK | 10-07 14:00 | 10-07 15:00 | stop_loss | 1 | -1.49 | +| ETC | 10-07 14:00 | 10-07 15:00 | stop_loss | 1 | -1.49 | +| FIL | 10-07 14:00 | 10-07 15:00 | stop_loss | 1 | -1.49 | +| INJ | 10-07 14:00 | 10-07 15:00 | stop_loss | 1 | -1.49 | +| LTC | 10-07 14:00 | 10-07 15:00 | stop_loss | 1 | -1.49 | +| NEAR | 10-07 14:00 | 10-07 15:00 | stop_loss | 1 | -1.49 | +| OP | 10-07 14:00 | 10-07 15:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-07 14:00 | 10-07 15:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-07 14:00 | 10-07 15:00 | stop_loss | 1 | -1.49 | +| SEI | 10-07 14:00 | 10-07 15:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-07 14:00 | 10-07 15:00 | stop_loss | 1 | -1.49 | +| SUI | 10-07 14:00 | 10-07 15:00 | stop_loss | 1 | -1.49 | +| TIA | 10-07 14:00 | 10-07 15:00 | stop_loss | 1 | -1.49 | +| UNI | 10-07 14:00 | 10-07 15:00 | stop_loss | 1 | -1.49 | +| WIF | 10-07 14:00 | 10-07 15:00 | stop_loss | 1 | -1.49 | +| ARB | 10-07 15:00 | 10-07 16:00 | stop_loss | 1 | -1.49 | +| BONK | 10-07 15:00 | 10-07 16:00 | stop_loss | 1 | -1.49 | +| FIL | 10-07 15:00 | 10-07 16:00 | stop_loss | 1 | -1.49 | +| INJ | 10-07 15:00 | 10-07 16:00 | trailing_stop | 1 | -0.58 | +| OP | 10-07 15:00 | 10-07 16:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-07 15:00 | 10-07 16:00 | stop_loss | 1 | -1.49 | +| SEI | 10-07 15:00 | 10-07 16:00 | stop_loss | 1 | -1.49 | +| TRX | 10-07 14:00 | 10-07 16:00 | stop_loss | 2 | -1.49 | +| WIF | 10-07 15:00 | 10-07 16:00 | trailing_stop | 1 | -0.41 | +| UNI | 10-07 15:00 | 10-07 17:00 | stop_loss | 2 | -1.49 | +| ARB | 10-07 16:00 | 10-07 18:00 | stop_loss | 2 | -1.49 | +| AVAX | 10-07 15:00 | 10-07 18:00 | stop_loss | 3 | -1.49 | +| SEI | 10-07 16:00 | 10-07 18:00 | stop_loss | 2 | -1.49 | +| SUI | 10-07 15:00 | 10-07 18:00 | stop_loss | 3 | -1.49 | +| FET | 10-07 14:00 | 10-07 19:00 | stop_loss | 5 | -1.49 | +| NEAR | 10-07 15:00 | 10-07 20:00 | trailing_stop | 5 | +0.08 | +| PEPE | 10-07 15:00 | 10-07 21:00 | stop_loss | 6 | -1.49 | +| FIL | 10-07 16:00 | 10-07 23:00 | stop_loss | 7 | -1.49 | +| ARB | 10-08 02:00 | 10-08 03:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-07 15:00 | 10-08 03:00 | stop_loss | 12 | -1.49 | +| AVAX | 10-08 02:00 | 10-08 03:00 | stop_loss | 1 | -1.49 | +| BONK | 10-08 02:00 | 10-08 03:00 | stop_loss | 1 | -1.49 | +| ETC | 10-07 15:00 | 10-08 03:00 | stop_loss | 12 | -1.49 | +| FET | 10-08 01:00 | 10-08 03:00 | stop_loss | 2 | -1.49 | +| FIL | 10-08 01:00 | 10-08 03:00 | stop_loss | 2 | -1.49 | +| INJ | 10-07 17:00 | 10-08 03:00 | stop_loss | 10 | -1.49 | +| OP | 10-07 16:00 | 10-08 03:00 | stop_loss | 11 | -1.49 | +| RENDER | 10-08 02:00 | 10-08 03:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-07 15:00 | 10-08 03:00 | stop_loss | 12 | -1.49 | +| TIA | 10-07 15:00 | 10-08 03:00 | stop_loss | 12 | -1.49 | +| UNI | 10-07 17:00 | 10-08 03:00 | trailing_stop | 10 | -0.63 | +| KAS | 10-07 14:00 | 10-08 04:00 | stop_loss | 14 | -1.49 | +| LTC | 10-07 15:00 | 10-08 04:00 | trailing_stop | 13 | -0.30 | +| OP | 10-08 03:00 | 10-08 10:00 | take_profit | 7 | +1.49 | +| APT | 10-08 12:00 | 10-08 13:00 | trailing_stop | 1 | -0.42 | +| UNI | 10-08 03:00 | 10-08 13:00 | trailing_stop | 10 | +0.07 | +| ETC | 10-08 03:00 | 10-08 14:00 | take_profit | 11 | +1.49 | +| FET | 10-08 12:00 | 10-08 16:00 | trailing_stop | 4 | -0.24 | +| SUI | 10-07 18:00 | 10-08 16:00 | trailing_stop | 22 | -0.45 | +| KAS | 10-09 02:00 | 10-09 03:00 | trailing_stop | 1 | -0.37 | +| NEAR | 10-09 02:00 | 10-09 03:00 | trailing_stop | 1 | -0.32 | +| BONK | 10-09 02:00 | 10-09 04:00 | take_profit | 2 | +1.49 | +| FET | 10-09 02:00 | 10-09 07:00 | stop_loss | 5 | -1.49 | +| RENDER | 10-09 02:00 | 10-09 07:00 | trailing_stop | 5 | +0.11 | +| APT | 10-09 03:00 | 10-09 08:00 | stop_loss | 5 | -1.49 | +| ARB | 10-09 07:00 | 10-09 08:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-09 07:00 | 10-09 08:00 | stop_loss | 1 | -1.49 | +| ETC | 10-09 07:00 | 10-09 08:00 | stop_loss | 1 | -1.49 | +| FET | 10-09 07:00 | 10-09 08:00 | stop_loss | 1 | -1.49 | +| FIL | 10-09 07:00 | 10-09 08:00 | stop_loss | 1 | -1.49 | +| INJ | 10-09 06:00 | 10-09 08:00 | stop_loss | 2 | -1.49 | +| OP | 10-09 07:00 | 10-09 08:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-09 07:00 | 10-09 08:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-09 07:00 | 10-09 08:00 | stop_loss | 1 | -1.49 | +| SUI | 10-09 07:00 | 10-09 08:00 | stop_loss | 1 | -1.49 | +| TIA | 10-09 07:00 | 10-09 08:00 | stop_loss | 1 | -1.49 | +| TRX | 10-07 16:00 | 10-09 08:00 | trailing_stop | 40 | -0.59 | +| UNI | 10-09 07:00 | 10-09 08:00 | stop_loss | 1 | -1.49 | +| WIF | 10-09 07:00 | 10-09 08:00 | stop_loss | 1 | -1.49 | +| SEI | 10-09 08:00 | 10-09 11:00 | take_profit | 3 | +1.49 | +| UNI | 10-09 08:00 | 10-09 11:00 | take_profit | 3 | +1.49 | +| APT | 10-09 08:00 | 10-09 12:00 | stop_loss | 4 | -1.49 | +| ARB | 10-09 08:00 | 10-09 12:00 | take_profit | 4 | +1.49 | +| BONK | 10-09 08:00 | 10-09 12:00 | take_profit | 4 | +1.49 | +| FIL | 10-09 08:00 | 10-09 12:00 | take_profit | 4 | +1.49 | +| LTC | 10-09 08:00 | 10-09 12:00 | take_profit | 4 | +1.49 | +| NEAR | 10-09 08:00 | 10-09 12:00 | take_profit | 4 | +1.49 | +| OP | 10-09 08:00 | 10-09 12:00 | take_profit | 4 | +1.49 | +| PEPE | 10-09 08:00 | 10-09 12:00 | take_profit | 4 | +1.49 | +| TIA | 10-09 08:00 | 10-09 12:00 | take_profit | 4 | +1.49 | +| ETC | 10-09 08:00 | 10-09 13:00 | trailing_stop | 5 | +0.15 | +| FET | 10-09 08:00 | 10-09 13:00 | stop_loss | 5 | -1.49 | +| RENDER | 10-09 08:00 | 10-09 13:00 | trailing_stop | 5 | +0.01 | +| SHIB | 10-09 08:00 | 10-09 13:00 | trailing_stop | 5 | -0.02 | +| WIF | 10-09 08:00 | 10-09 13:00 | trailing_stop | 5 | -0.21 | +| APT | 10-09 13:00 | 10-09 14:00 | take_profit | 1 | +1.49 | +| ATOM | 10-09 08:00 | 10-09 14:00 | trailing_stop | 6 | -0.28 | +| INJ | 10-09 08:00 | 10-09 14:00 | trailing_stop | 6 | -0.28 | +| SUI | 10-09 08:00 | 10-09 14:00 | stop_loss | 6 | -1.49 | +| FET | 10-09 14:00 | 10-09 15:00 | stop_loss | 1 | -1.49 | +| FET | 10-09 15:00 | 10-09 16:00 | stop_loss | 1 | -1.49 | +| SEI | 10-09 15:00 | 10-09 16:00 | stop_loss | 1 | -1.49 | +| FET | 10-09 16:00 | 10-09 17:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-09 16:00 | 10-09 17:00 | trailing_stop | 1 | -0.50 | +| FET | 10-09 17:00 | 10-09 20:00 | stop_loss | 3 | -1.49 | +| FET | 10-10 01:00 | 10-10 02:00 | stop_loss | 1 | -1.49 | +| BONK | 10-10 02:00 | 10-10 03:00 | take_profit | 1 | +1.49 | +| FET | 10-10 02:00 | 10-10 05:00 | trailing_stop | 3 | -0.10 | +| AVAX | 10-10 14:00 | 10-10 15:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-10 14:00 | 10-10 15:00 | stop_loss | 1 | -1.49 | +| TRX | 10-09 08:00 | 10-10 15:00 | stop_loss | 31 | -1.49 | +| APT | 10-10 15:00 | 10-10 17:00 | stop_loss | 2 | -1.49 | +| ARB | 10-10 15:00 | 10-10 17:00 | stop_loss | 2 | -1.49 | +| AVAX | 10-10 15:00 | 10-10 17:00 | stop_loss | 2 | -1.49 | +| BONK | 10-10 15:00 | 10-10 17:00 | stop_loss | 2 | -1.49 | +| FET | 10-10 15:00 | 10-10 17:00 | stop_loss | 2 | -1.49 | +| INJ | 10-10 15:00 | 10-10 17:00 | stop_loss | 2 | -1.49 | +| OP | 10-10 15:00 | 10-10 17:00 | stop_loss | 2 | -1.49 | +| PEPE | 10-10 15:00 | 10-10 17:00 | stop_loss | 2 | -1.49 | +| RENDER | 10-10 15:00 | 10-10 17:00 | stop_loss | 2 | -1.49 | +| SUI | 10-10 15:00 | 10-10 17:00 | stop_loss | 2 | -1.49 | +| TIA | 10-10 15:00 | 10-10 17:00 | stop_loss | 2 | -1.49 | +| WIF | 10-10 15:00 | 10-10 17:00 | stop_loss | 2 | -1.49 | +| ATOM | 10-10 15:00 | 10-10 18:00 | stop_loss | 3 | -1.49 | +| AVAX | 10-10 17:00 | 10-10 18:00 | stop_loss | 1 | -1.49 | +| ETC | 10-10 17:00 | 10-10 18:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-10 17:00 | 10-10 18:00 | take_profit | 1 | +1.49 | +| SHIB | 10-10 15:00 | 10-10 18:00 | stop_loss | 3 | -1.49 | +| APT | 10-10 17:00 | 10-10 19:00 | stop_loss | 2 | -1.49 | +| ARB | 10-10 17:00 | 10-10 19:00 | stop_loss | 2 | -1.49 | +| ATOM | 10-10 18:00 | 10-10 19:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-10 18:00 | 10-10 19:00 | stop_loss | 1 | -1.49 | +| BONK | 10-10 17:00 | 10-10 19:00 | stop_loss | 2 | -1.49 | +| ETC | 10-10 18:00 | 10-10 19:00 | stop_loss | 1 | -1.49 | +| FET | 10-10 17:00 | 10-10 19:00 | stop_loss | 2 | -1.49 | +| FIL | 10-10 18:00 | 10-10 19:00 | stop_loss | 1 | -1.49 | +| INJ | 10-10 17:00 | 10-10 19:00 | stop_loss | 2 | -1.49 | +| KAS | 10-10 15:00 | 10-10 19:00 | stop_loss | 4 | -1.49 | +| OP | 10-10 17:00 | 10-10 19:00 | stop_loss | 2 | -1.49 | +| RENDER | 10-10 17:00 | 10-10 19:00 | stop_loss | 2 | -1.49 | +| SEI | 10-10 15:00 | 10-10 19:00 | stop_loss | 4 | -1.49 | +| SHIB | 10-10 18:00 | 10-10 19:00 | stop_loss | 1 | -1.49 | +| SUI | 10-10 17:00 | 10-10 19:00 | stop_loss | 2 | -1.49 | +| TIA | 10-10 17:00 | 10-10 19:00 | stop_loss | 2 | -1.49 | +| UNI | 10-10 17:00 | 10-10 19:00 | stop_loss | 2 | -1.49 | +| WIF | 10-10 17:00 | 10-10 19:00 | stop_loss | 2 | -1.49 | +| APT | 10-10 19:00 | 10-10 20:00 | stop_loss | 1 | -1.49 | +| ARB | 10-10 19:00 | 10-10 20:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-10 19:00 | 10-10 20:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-10 19:00 | 10-10 20:00 | stop_loss | 1 | -1.49 | +| BONK | 10-10 19:00 | 10-10 20:00 | stop_loss | 1 | -1.49 | +| ETC | 10-10 19:00 | 10-10 20:00 | stop_loss | 1 | -1.49 | +| FET | 10-10 19:00 | 10-10 20:00 | stop_loss | 1 | -1.49 | +| FIL | 10-10 19:00 | 10-10 20:00 | stop_loss | 1 | -1.49 | +| INJ | 10-10 19:00 | 10-10 20:00 | stop_loss | 1 | -1.49 | +| KAS | 10-10 19:00 | 10-10 20:00 | stop_loss | 1 | -1.49 | +| OP | 10-10 19:00 | 10-10 20:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-10 19:00 | 10-10 20:00 | stop_loss | 1 | -1.49 | +| SEI | 10-10 19:00 | 10-10 20:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-10 19:00 | 10-10 20:00 | stop_loss | 1 | -1.49 | +| SUI | 10-10 19:00 | 10-10 20:00 | stop_loss | 1 | -1.49 | +| TIA | 10-10 19:00 | 10-10 20:00 | stop_loss | 1 | -1.49 | +| TRX | 10-10 15:00 | 10-10 20:00 | stop_loss | 5 | -1.49 | +| UNI | 10-10 19:00 | 10-10 20:00 | stop_loss | 1 | -1.49 | +| WIF | 10-10 19:00 | 10-10 20:00 | stop_loss | 1 | -1.49 | +| APT | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| ARB | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| BONK | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| ETC | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| FET | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| FIL | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| INJ | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| KAS | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| LTC | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| NEAR | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| OP | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| SEI | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| SUI | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| TIA | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| TRX | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| UNI | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| WIF | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| APT | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| ARB | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| BONK | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| ETC | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| FET | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| FIL | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| INJ | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| KAS | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| LTC | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| NEAR | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| OP | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| SEI | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| SUI | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| TIA | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| TRX | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| UNI | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| WIF | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| APT | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| ARB | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| BONK | 10-10 22:00 | 10-10 23:00 | take_profit | 1 | +1.49 | +| ETC | 10-10 22:00 | 10-10 23:00 | take_profit | 1 | +1.49 | +| FET | 10-10 22:00 | 10-10 23:00 | take_profit | 1 | +1.49 | +| FIL | 10-10 22:00 | 10-10 23:00 | take_profit | 1 | +1.49 | +| INJ | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| KAS | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| LTC | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| NEAR | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| OP | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-10 22:00 | 10-10 23:00 | take_profit | 1 | +1.49 | +| RENDER | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| SEI | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-10 22:00 | 10-10 23:00 | take_profit | 1 | +1.49 | +| SUI | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| TIA | 10-10 22:00 | 10-10 23:00 | take_profit | 1 | +1.49 | +| UNI | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| WIF | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| APT | 10-10 23:00 | 10-11 00:00 | stop_loss | 1 | -1.49 | +| ARB | 10-10 23:00 | 10-11 00:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-10 23:00 | 10-11 00:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-10 23:00 | 10-11 00:00 | stop_loss | 1 | -1.49 | +| BONK | 10-10 23:00 | 10-11 00:00 | stop_loss | 1 | -1.49 | +| FET | 10-10 23:00 | 10-11 00:00 | take_profit | 1 | +1.49 | +| FIL | 10-10 23:00 | 10-11 00:00 | stop_loss | 1 | -1.49 | +| INJ | 10-10 23:00 | 10-11 00:00 | stop_loss | 1 | -1.49 | +| LTC | 10-10 23:00 | 10-11 00:00 | stop_loss | 1 | -1.49 | +| NEAR | 10-10 23:00 | 10-11 00:00 | stop_loss | 1 | -1.49 | +| OP | 10-10 23:00 | 10-11 00:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-10 23:00 | 10-11 00:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-10 23:00 | 10-11 00:00 | take_profit | 1 | +1.49 | +| SUI | 10-10 23:00 | 10-11 00:00 | stop_loss | 1 | -1.49 | +| TIA | 10-10 23:00 | 10-11 00:00 | stop_loss | 1 | -1.49 | +| UNI | 10-10 23:00 | 10-11 00:00 | stop_loss | 1 | -1.49 | +| WIF | 10-10 23:00 | 10-11 00:00 | stop_loss | 1 | -1.49 | +| APT | 10-11 00:00 | 10-11 01:00 | stop_loss | 1 | -1.49 | +| LTC | 10-11 00:00 | 10-11 01:00 | stop_loss | 1 | -1.49 | +| TRX | 10-10 22:00 | 10-11 03:00 | stop_loss | 5 | -1.49 | +| OP | 10-11 03:00 | 10-11 04:00 | trailing_stop | 1 | -0.07 | +| BONK | 10-11 04:00 | 10-11 05:00 | stop_loss | 1 | -1.49 | +| FET | 10-11 04:00 | 10-11 05:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-11 04:00 | 10-11 05:00 | stop_loss | 1 | -1.49 | +| ARB | 10-11 05:00 | 10-11 06:00 | take_profit | 1 | +1.49 | +| ATOM | 10-11 05:00 | 10-11 06:00 | take_profit | 1 | +1.49 | +| AVAX | 10-11 05:00 | 10-11 06:00 | take_profit | 1 | +1.49 | +| BONK | 10-11 05:00 | 10-11 06:00 | take_profit | 1 | +1.49 | +| ETC | 10-11 05:00 | 10-11 06:00 | take_profit | 1 | +1.49 | +| FET | 10-11 05:00 | 10-11 06:00 | take_profit | 1 | +1.49 | +| SUI | 10-11 05:00 | 10-11 06:00 | take_profit | 1 | +1.49 | +| TIA | 10-11 05:00 | 10-11 06:00 | take_profit | 1 | +1.49 | +| WIF | 10-11 05:00 | 10-11 06:00 | take_profit | 1 | +1.49 | +| APT | 10-11 05:00 | 10-11 07:00 | stop_loss | 2 | -1.49 | +| ARB | 10-11 06:00 | 10-11 07:00 | trailing_stop | 1 | -0.54 | +| ATOM | 10-11 06:00 | 10-11 07:00 | stop_loss | 1 | -1.49 | +| BONK | 10-11 06:00 | 10-11 07:00 | take_profit | 1 | +1.49 | +| ETC | 10-11 06:00 | 10-11 07:00 | trailing_stop | 1 | -0.66 | +| NEAR | 10-11 05:00 | 10-11 07:00 | take_profit | 2 | +1.49 | +| OP | 10-11 06:00 | 10-11 07:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-11 05:00 | 10-11 07:00 | take_profit | 2 | +1.49 | +| SEI | 10-11 05:00 | 10-11 07:00 | stop_loss | 2 | -1.49 | +| SUI | 10-11 06:00 | 10-11 07:00 | stop_loss | 1 | -1.49 | +| TIA | 10-11 06:00 | 10-11 07:00 | take_profit | 1 | +1.49 | +| APT | 10-11 07:00 | 10-11 08:00 | stop_loss | 1 | -1.49 | +| ARB | 10-11 07:00 | 10-11 08:00 | take_profit | 1 | +1.49 | +| ATOM | 10-11 07:00 | 10-11 08:00 | take_profit | 1 | +1.49 | +| AVAX | 10-11 06:00 | 10-11 08:00 | take_profit | 2 | +1.49 | +| BONK | 10-11 07:00 | 10-11 08:00 | take_profit | 1 | +1.49 | +| ETC | 10-11 07:00 | 10-11 08:00 | take_profit | 1 | +1.49 | +| FIL | 10-11 06:00 | 10-11 08:00 | stop_loss | 2 | -1.49 | +| INJ | 10-11 05:00 | 10-11 08:00 | take_profit | 3 | +1.49 | +| LTC | 10-11 06:00 | 10-11 08:00 | stop_loss | 2 | -1.49 | +| NEAR | 10-11 07:00 | 10-11 08:00 | take_profit | 1 | +1.49 | +| PEPE | 10-11 06:00 | 10-11 08:00 | take_profit | 2 | +1.49 | +| RENDER | 10-11 07:00 | 10-11 08:00 | take_profit | 1 | +1.49 | +| SEI | 10-11 07:00 | 10-11 08:00 | take_profit | 1 | +1.49 | +| SHIB | 10-11 05:00 | 10-11 08:00 | take_profit | 3 | +1.49 | +| SUI | 10-11 07:00 | 10-11 08:00 | take_profit | 1 | +1.49 | +| TIA | 10-11 07:00 | 10-11 08:00 | take_profit | 1 | +1.49 | +| UNI | 10-11 06:00 | 10-11 08:00 | take_profit | 2 | +1.49 | +| WIF | 10-11 06:00 | 10-11 08:00 | take_profit | 2 | +1.49 | +| APT | 10-11 08:00 | 10-11 09:00 | stop_loss | 1 | -1.49 | +| ARB | 10-11 08:00 | 10-11 09:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-11 08:00 | 10-11 09:00 | stop_loss | 1 | -1.49 | +| ETC | 10-11 08:00 | 10-11 09:00 | stop_loss | 1 | -1.49 | +| FIL | 10-11 08:00 | 10-11 09:00 | stop_loss | 1 | -1.49 | +| INJ | 10-11 08:00 | 10-11 09:00 | take_profit | 1 | +1.49 | +| LTC | 10-11 08:00 | 10-11 09:00 | stop_loss | 1 | -1.49 | +| NEAR | 10-11 08:00 | 10-11 09:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-11 08:00 | 10-11 09:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-11 08:00 | 10-11 09:00 | stop_loss | 1 | -1.49 | +| SUI | 10-11 08:00 | 10-11 09:00 | stop_loss | 1 | -1.49 | +| TIA | 10-11 08:00 | 10-11 09:00 | stop_loss | 1 | -1.49 | +| UNI | 10-11 08:00 | 10-11 09:00 | stop_loss | 1 | -1.49 | +| WIF | 10-11 08:00 | 10-11 09:00 | stop_loss | 1 | -1.49 | +| APT | 10-11 09:00 | 10-11 10:00 | stop_loss | 1 | -1.49 | +| FIL | 10-11 09:00 | 10-11 10:00 | stop_loss | 1 | -1.49 | +| SEI | 10-11 08:00 | 10-11 10:00 | stop_loss | 2 | -1.49 | +| APT | 10-11 10:00 | 10-11 11:00 | stop_loss | 1 | -1.49 | +| ARB | 10-11 09:00 | 10-11 11:00 | stop_loss | 2 | -1.49 | +| ATOM | 10-11 08:00 | 10-11 11:00 | stop_loss | 3 | -1.49 | +| AVAX | 10-11 09:00 | 10-11 11:00 | stop_loss | 2 | -1.49 | +| FIL | 10-11 10:00 | 10-11 11:00 | stop_loss | 1 | -1.49 | +| INJ | 10-11 09:00 | 10-11 11:00 | stop_loss | 2 | -1.49 | +| NEAR | 10-11 09:00 | 10-11 11:00 | stop_loss | 2 | -1.49 | +| OP | 10-11 09:00 | 10-11 11:00 | stop_loss | 2 | -1.49 | +| PEPE | 10-11 09:00 | 10-11 11:00 | stop_loss | 2 | -1.49 | +| RENDER | 10-11 09:00 | 10-11 11:00 | stop_loss | 2 | -1.49 | +| SUI | 10-11 09:00 | 10-11 11:00 | stop_loss | 2 | -1.49 | +| TIA | 10-11 09:00 | 10-11 11:00 | stop_loss | 2 | -1.49 | +| WIF | 10-11 09:00 | 10-11 11:00 | stop_loss | 2 | -1.49 | +| ETC | 10-11 09:00 | 10-11 12:00 | stop_loss | 3 | -1.49 | +| UNI | 10-11 09:00 | 10-11 13:00 | stop_loss | 4 | -1.49 | +| FIL | 10-11 19:00 | 10-11 20:00 | stop_loss | 1 | -1.49 | +| INJ | 10-11 19:00 | 10-11 20:00 | stop_loss | 1 | -1.49 | +| LTC | 10-11 19:00 | 10-11 20:00 | stop_loss | 1 | -1.49 | +| SEI | 10-11 19:00 | 10-11 20:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-11 19:00 | 10-11 20:00 | stop_loss | 1 | -1.49 | +| SUI | 10-11 19:00 | 10-11 20:00 | stop_loss | 1 | -1.49 | +| TRX | 10-11 09:00 | 10-11 20:00 | stop_loss | 11 | -1.49 | +| BONK | 10-11 20:00 | 10-11 21:00 | stop_loss | 1 | -1.49 | +| FET | 10-11 20:00 | 10-11 21:00 | stop_loss | 1 | -1.49 | +| FIL | 10-11 20:00 | 10-11 21:00 | stop_loss | 1 | -1.49 | +| INJ | 10-11 20:00 | 10-11 21:00 | stop_loss | 1 | -1.49 | +| KAS | 10-11 20:00 | 10-11 21:00 | stop_loss | 1 | -1.49 | +| LTC | 10-11 20:00 | 10-11 21:00 | stop_loss | 1 | -1.49 | +| NEAR | 10-11 20:00 | 10-11 21:00 | stop_loss | 1 | -1.49 | +| OP | 10-11 20:00 | 10-11 21:00 | stop_loss | 1 | -1.49 | +| SEI | 10-11 20:00 | 10-11 21:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-11 20:00 | 10-11 21:00 | stop_loss | 1 | -1.49 | +| SUI | 10-11 20:00 | 10-11 21:00 | stop_loss | 1 | -1.49 | +| FIL | 10-11 21:00 | 10-11 22:00 | trailing_stop | 1 | -0.35 | +| FET | 10-11 22:00 | 10-11 23:00 | stop_loss | 1 | -1.49 | +| ARB | 10-11 22:00 | 10-12 00:00 | stop_loss | 2 | -1.49 | +| AVAX | 10-11 21:00 | 10-12 00:00 | stop_loss | 3 | -1.49 | +| BONK | 10-11 22:00 | 10-12 00:00 | stop_loss | 2 | -1.49 | +| KAS | 10-11 21:00 | 10-12 00:00 | stop_loss | 3 | -1.49 | +| PEPE | 10-11 22:00 | 10-12 00:00 | stop_loss | 2 | -1.49 | +| SEI | 10-11 21:00 | 10-12 00:00 | stop_loss | 3 | -1.49 | +| SHIB | 10-11 22:00 | 10-12 00:00 | stop_loss | 2 | -1.49 | +| SUI | 10-11 21:00 | 10-12 00:00 | stop_loss | 3 | -1.49 | +| TIA | 10-11 22:00 | 10-12 00:00 | stop_loss | 2 | -1.49 | +| WIF | 10-11 22:00 | 10-12 00:00 | stop_loss | 2 | -1.49 | +| FET | 10-11 23:00 | 10-12 01:00 | stop_loss | 2 | -1.49 | +| OP | 10-11 21:00 | 10-12 01:00 | stop_loss | 4 | -1.49 | +| SUI | 10-12 00:00 | 10-12 01:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-12 00:00 | 10-12 02:00 | stop_loss | 2 | -1.49 | +| SUI | 10-12 01:00 | 10-12 02:00 | take_profit | 1 | +1.49 | +| ATOM | 10-12 00:00 | 10-12 03:00 | take_profit | 3 | +1.49 | +| FIL | 10-12 02:00 | 10-12 03:00 | take_profit | 1 | +1.49 | +| NEAR | 10-12 02:00 | 10-12 03:00 | take_profit | 1 | +1.49 | +| FET | 10-12 05:00 | 10-12 06:00 | trailing_stop | 1 | -0.40 | +| OP | 10-12 05:00 | 10-12 06:00 | trailing_stop | 1 | -0.62 | +| PEPE | 10-12 04:00 | 10-12 06:00 | trailing_stop | 2 | -0.59 | +| SEI | 10-12 05:00 | 10-12 06:00 | trailing_stop | 1 | -0.50 | +| TIA | 10-12 04:00 | 10-12 06:00 | trailing_stop | 2 | -0.39 | +| APT | 10-12 06:00 | 10-12 07:00 | stop_loss | 1 | -1.49 | +| FIL | 10-12 05:00 | 10-12 07:00 | trailing_stop | 2 | -0.37 | +| APT | 10-12 07:00 | 10-12 08:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-12 05:00 | 10-12 08:00 | stop_loss | 3 | -1.49 | +| BONK | 10-12 05:00 | 10-12 08:00 | stop_loss | 3 | -1.49 | +| FET | 10-12 07:00 | 10-12 08:00 | stop_loss | 1 | -1.49 | +| OP | 10-12 07:00 | 10-12 08:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-12 04:00 | 10-12 08:00 | take_profit | 4 | +1.49 | +| SUI | 10-12 05:00 | 10-12 08:00 | stop_loss | 3 | -1.49 | +| WIF | 10-12 05:00 | 10-12 08:00 | stop_loss | 3 | -1.49 | +| APT | 10-12 08:00 | 10-12 09:00 | trailing_stop | 1 | -0.42 | +| AVAX | 10-12 08:00 | 10-12 09:00 | stop_loss | 1 | -1.49 | +| INJ | 10-12 04:00 | 10-12 09:00 | trailing_stop | 5 | -0.21 | +| SUI | 10-12 08:00 | 10-12 09:00 | stop_loss | 1 | -1.49 | +| FET | 10-12 08:00 | 10-12 12:00 | take_profit | 4 | +1.49 | +| OP | 10-12 08:00 | 10-12 13:00 | stop_loss | 5 | -1.49 | +| TRX | 10-11 20:00 | 10-12 14:00 | take_profit | 18 | +1.49 | +| FET | 10-13 05:00 | 10-13 06:00 | take_profit | 1 | +1.49 | +| FET | 10-13 09:00 | 10-13 10:00 | stop_loss | 1 | -1.49 | +| APT | 10-13 09:00 | 10-13 11:00 | stop_loss | 2 | -1.49 | +| FET | 10-13 10:00 | 10-13 11:00 | stop_loss | 1 | -1.49 | +| APT | 10-13 11:00 | 10-13 13:00 | take_profit | 2 | +1.49 | +| LTC | 10-13 11:00 | 10-13 13:00 | take_profit | 2 | +1.49 | +| OP | 10-13 14:00 | 10-13 15:00 | take_profit | 1 | +1.49 | +| TRX | 10-13 10:00 | 10-14 04:00 | stop_loss | 18 | -1.49 | +| FET | 10-14 04:00 | 10-14 05:00 | stop_loss | 1 | -1.49 | +| SEI | 10-14 04:00 | 10-14 05:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-14 05:00 | 10-14 06:00 | stop_loss | 1 | -1.49 | +| FET | 10-14 05:00 | 10-14 06:00 | stop_loss | 1 | -1.49 | +| KAS | 10-14 05:00 | 10-14 06:00 | stop_loss | 1 | -1.49 | +| SEI | 10-14 05:00 | 10-14 06:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-14 05:00 | 10-14 06:00 | stop_loss | 1 | -1.49 | +| TRX | 10-14 04:00 | 10-14 06:00 | stop_loss | 2 | -1.49 | +| APT | 10-14 06:00 | 10-14 07:00 | stop_loss | 1 | -1.49 | +| ARB | 10-14 06:00 | 10-14 07:00 | stop_loss | 1 | -1.49 | +| BONK | 10-14 06:00 | 10-14 07:00 | stop_loss | 1 | -1.49 | +| FET | 10-14 06:00 | 10-14 07:00 | stop_loss | 1 | -1.49 | +| INJ | 10-14 06:00 | 10-14 07:00 | stop_loss | 1 | -1.49 | +| NEAR | 10-14 06:00 | 10-14 07:00 | stop_loss | 1 | -1.49 | +| OP | 10-14 06:00 | 10-14 07:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-14 06:00 | 10-14 07:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-14 07:00 | 10-14 08:00 | trailing_stop | 1 | -0.63 | +| BONK | 10-14 07:00 | 10-14 08:00 | stop_loss | 1 | -1.49 | +| ETC | 10-14 06:00 | 10-14 08:00 | stop_loss | 2 | -1.49 | +| FIL | 10-14 07:00 | 10-14 08:00 | stop_loss | 1 | -1.49 | +| INJ | 10-14 07:00 | 10-14 08:00 | stop_loss | 1 | -1.49 | +| OP | 10-14 07:00 | 10-14 08:00 | take_profit | 1 | +1.49 | +| RENDER | 10-14 07:00 | 10-14 08:00 | stop_loss | 1 | -1.49 | +| SEI | 10-14 06:00 | 10-14 08:00 | stop_loss | 2 | -1.49 | +| SUI | 10-14 06:00 | 10-14 08:00 | stop_loss | 2 | -1.49 | +| UNI | 10-14 07:00 | 10-14 08:00 | trailing_stop | 1 | -0.34 | +| ARB | 10-14 07:00 | 10-14 09:00 | take_profit | 2 | +1.49 | +| RENDER | 10-14 08:00 | 10-14 09:00 | take_profit | 1 | +1.49 | +| APT | 10-14 07:00 | 10-14 10:00 | stop_loss | 3 | -1.49 | +| ATOM | 10-14 06:00 | 10-14 10:00 | stop_loss | 4 | -1.49 | +| AVAX | 10-14 08:00 | 10-14 10:00 | stop_loss | 2 | -1.49 | +| BONK | 10-14 08:00 | 10-14 10:00 | stop_loss | 2 | -1.49 | +| FET | 10-14 07:00 | 10-14 10:00 | stop_loss | 3 | -1.49 | +| FIL | 10-14 08:00 | 10-14 10:00 | stop_loss | 2 | -1.49 | +| KAS | 10-14 06:00 | 10-14 10:00 | stop_loss | 4 | -1.49 | +| LTC | 10-14 06:00 | 10-14 10:00 | stop_loss | 4 | -1.49 | +| NEAR | 10-14 07:00 | 10-14 10:00 | stop_loss | 3 | -1.49 | +| PEPE | 10-14 07:00 | 10-14 10:00 | stop_loss | 3 | -1.49 | +| RENDER | 10-14 09:00 | 10-14 10:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-14 06:00 | 10-14 10:00 | stop_loss | 4 | -1.49 | +| TIA | 10-14 09:00 | 10-14 10:00 | stop_loss | 1 | -1.49 | +| TRX | 10-14 06:00 | 10-14 10:00 | stop_loss | 4 | -1.49 | +| UNI | 10-14 08:00 | 10-14 10:00 | stop_loss | 2 | -1.49 | +| WIF | 10-14 07:00 | 10-14 10:00 | stop_loss | 3 | -1.49 | +| TIA | 10-14 10:00 | 10-14 13:00 | stop_loss | 3 | -1.49 | +| TRX | 10-14 10:00 | 10-14 16:00 | take_profit | 6 | +1.49 | +| APT | 10-14 16:00 | 10-14 17:00 | stop_loss | 1 | -1.49 | +| LTC | 10-14 16:00 | 10-14 17:00 | stop_loss | 1 | -1.49 | +| NEAR | 10-14 15:00 | 10-14 17:00 | stop_loss | 2 | -1.49 | +| PEPE | 10-14 15:00 | 10-14 17:00 | stop_loss | 2 | -1.49 | +| APT | 10-14 17:00 | 10-14 19:00 | stop_loss | 2 | -1.49 | +| ATOM | 10-14 15:00 | 10-14 19:00 | trailing_stop | 4 | -0.41 | +| FIL | 10-14 15:00 | 10-15 01:00 | trailing_stop | 10 | -0.27 | +| FET | 10-15 05:00 | 10-15 06:00 | stop_loss | 1 | -1.49 | +| FET | 10-15 06:00 | 10-15 07:00 | stop_loss | 1 | -1.49 | +| TIA | 10-15 07:00 | 10-15 08:00 | take_profit | 1 | +1.49 | +| INJ | 10-15 10:00 | 10-15 11:00 | stop_loss | 1 | -1.49 | +| NEAR | 10-15 10:00 | 10-15 11:00 | stop_loss | 1 | -1.49 | +| APT | 10-15 11:00 | 10-15 12:00 | stop_loss | 1 | -1.49 | +| ARB | 10-15 11:00 | 10-15 12:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-15 10:00 | 10-15 12:00 | stop_loss | 2 | -1.49 | +| INJ | 10-15 11:00 | 10-15 12:00 | stop_loss | 1 | -1.49 | +| NEAR | 10-15 11:00 | 10-15 12:00 | stop_loss | 1 | -1.49 | +| OP | 10-15 11:00 | 10-15 12:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-15 11:00 | 10-15 12:00 | stop_loss | 1 | -1.49 | +| SEI | 10-15 11:00 | 10-15 12:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-15 11:00 | 10-15 12:00 | stop_loss | 1 | -1.49 | +| TIA | 10-15 11:00 | 10-15 12:00 | stop_loss | 1 | -1.49 | +| APT | 10-15 12:00 | 10-15 13:00 | stop_loss | 1 | -1.49 | +| ARB | 10-15 12:00 | 10-15 13:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-15 12:00 | 10-15 13:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-15 12:00 | 10-15 13:00 | stop_loss | 1 | -1.49 | +| BONK | 10-15 12:00 | 10-15 13:00 | stop_loss | 1 | -1.49 | +| ETC | 10-15 12:00 | 10-15 13:00 | stop_loss | 1 | -1.49 | +| FIL | 10-15 12:00 | 10-15 13:00 | stop_loss | 1 | -1.49 | +| INJ | 10-15 12:00 | 10-15 13:00 | stop_loss | 1 | -1.49 | +| KAS | 10-15 12:00 | 10-15 13:00 | stop_loss | 1 | -1.49 | +| NEAR | 10-15 12:00 | 10-15 13:00 | stop_loss | 1 | -1.49 | +| OP | 10-15 12:00 | 10-15 13:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-15 12:00 | 10-15 13:00 | stop_loss | 1 | -1.49 | +| SEI | 10-15 12:00 | 10-15 13:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-15 12:00 | 10-15 13:00 | stop_loss | 1 | -1.49 | +| TIA | 10-15 12:00 | 10-15 13:00 | stop_loss | 1 | -1.49 | +| UNI | 10-15 12:00 | 10-15 13:00 | stop_loss | 1 | -1.49 | +| WIF | 10-15 12:00 | 10-15 13:00 | stop_loss | 1 | -1.49 | +| APT | 10-15 13:00 | 10-15 14:00 | stop_loss | 1 | -1.49 | +| ARB | 10-15 13:00 | 10-15 14:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-15 13:00 | 10-15 14:00 | stop_loss | 1 | -1.49 | +| BONK | 10-15 13:00 | 10-15 14:00 | stop_loss | 1 | -1.49 | +| ETC | 10-15 13:00 | 10-15 14:00 | stop_loss | 1 | -1.49 | +| FIL | 10-15 13:00 | 10-15 14:00 | stop_loss | 1 | -1.49 | +| INJ | 10-15 13:00 | 10-15 14:00 | stop_loss | 1 | -1.49 | +| NEAR | 10-15 13:00 | 10-15 14:00 | stop_loss | 1 | -1.49 | +| OP | 10-15 13:00 | 10-15 14:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-15 13:00 | 10-15 14:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-15 13:00 | 10-15 14:00 | stop_loss | 1 | -1.49 | +| SEI | 10-15 13:00 | 10-15 14:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-15 13:00 | 10-15 14:00 | stop_loss | 1 | -1.49 | +| SUI | 10-15 13:00 | 10-15 14:00 | stop_loss | 1 | -1.49 | +| TIA | 10-15 13:00 | 10-15 14:00 | stop_loss | 1 | -1.49 | +| UNI | 10-15 13:00 | 10-15 14:00 | stop_loss | 1 | -1.49 | +| WIF | 10-15 13:00 | 10-15 14:00 | stop_loss | 1 | -1.49 | +| APT | 10-15 14:00 | 10-15 15:00 | stop_loss | 1 | -1.49 | +| ARB | 10-15 14:00 | 10-15 15:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-15 13:00 | 10-15 15:00 | stop_loss | 2 | -1.49 | +| AVAX | 10-15 14:00 | 10-15 15:00 | stop_loss | 1 | -1.49 | +| BONK | 10-15 14:00 | 10-15 15:00 | stop_loss | 1 | -1.49 | +| ETC | 10-15 14:00 | 10-15 15:00 | stop_loss | 1 | -1.49 | +| INJ | 10-15 14:00 | 10-15 15:00 | stop_loss | 1 | -1.49 | +| LTC | 10-15 14:00 | 10-15 15:00 | stop_loss | 1 | -1.49 | +| NEAR | 10-15 14:00 | 10-15 15:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-15 14:00 | 10-15 15:00 | stop_loss | 1 | -1.49 | +| SEI | 10-15 14:00 | 10-15 15:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-15 14:00 | 10-15 15:00 | stop_loss | 1 | -1.49 | +| SUI | 10-15 14:00 | 10-15 15:00 | stop_loss | 1 | -1.49 | +| TIA | 10-15 14:00 | 10-15 15:00 | stop_loss | 1 | -1.49 | +| UNI | 10-15 14:00 | 10-15 15:00 | stop_loss | 1 | -1.49 | +| WIF | 10-15 14:00 | 10-15 15:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-15 14:00 | 10-15 16:00 | stop_loss | 2 | -1.49 | +| AVAX | 10-15 15:00 | 10-15 17:00 | stop_loss | 2 | -1.49 | +| BONK | 10-15 15:00 | 10-15 17:00 | trailing_stop | 2 | -0.66 | +| FIL | 10-15 14:00 | 10-15 17:00 | stop_loss | 3 | -1.49 | +| INJ | 10-15 15:00 | 10-15 17:00 | stop_loss | 2 | -1.49 | +| KAS | 10-15 15:00 | 10-15 17:00 | stop_loss | 2 | -1.49 | +| LTC | 10-15 15:00 | 10-15 17:00 | stop_loss | 2 | -1.49 | +| OP | 10-15 14:00 | 10-15 17:00 | stop_loss | 3 | -1.49 | +| RENDER | 10-15 16:00 | 10-15 17:00 | stop_loss | 1 | -1.49 | +| SEI | 10-15 15:00 | 10-15 17:00 | stop_loss | 2 | -1.49 | +| SUI | 10-15 15:00 | 10-15 17:00 | stop_loss | 2 | -1.49 | +| TIA | 10-15 15:00 | 10-15 17:00 | stop_loss | 2 | -1.49 | +| APT | 10-15 15:00 | 10-15 19:00 | trailing_stop | 4 | -0.55 | +| ARB | 10-15 15:00 | 10-15 19:00 | trailing_stop | 4 | -0.71 | +| ETC | 10-15 15:00 | 10-15 19:00 | trailing_stop | 4 | -0.53 | +| NEAR | 10-15 15:00 | 10-15 19:00 | stop_loss | 4 | -1.49 | +| UNI | 10-15 15:00 | 10-15 19:00 | trailing_stop | 4 | -0.68 | +| ATOM | 10-15 15:00 | 10-15 20:00 | stop_loss | 5 | -1.49 | +| PEPE | 10-15 15:00 | 10-15 20:00 | stop_loss | 5 | -1.49 | +| SHIB | 10-15 15:00 | 10-15 20:00 | stop_loss | 5 | -1.49 | +| TRX | 10-15 15:00 | 10-15 20:00 | take_profit | 5 | +1.49 | +| WIF | 10-15 15:00 | 10-15 20:00 | stop_loss | 5 | -1.49 | +| TIA | 10-15 20:00 | 10-15 21:00 | stop_loss | 1 | -1.49 | +| FET | 10-15 20:00 | 10-15 22:00 | stop_loss | 2 | -1.49 | +| FET | 10-15 22:00 | 10-16 00:00 | take_profit | 2 | +1.49 | +| APT | 10-16 00:00 | 10-16 01:00 | trailing_stop | 1 | -0.00 | +| FET | 10-16 03:00 | 10-16 04:00 | take_profit | 1 | +1.49 | +| FIL | 10-16 02:00 | 10-16 04:00 | stop_loss | 2 | -1.49 | +| OP | 10-16 02:00 | 10-16 04:00 | stop_loss | 2 | -1.49 | +| SUI | 10-16 02:00 | 10-16 04:00 | stop_loss | 2 | -1.49 | +| AVAX | 10-16 01:00 | 10-16 05:00 | stop_loss | 4 | -1.49 | +| LTC | 10-16 00:00 | 10-16 05:00 | stop_loss | 5 | -1.49 | +| PEPE | 10-16 01:00 | 10-16 05:00 | stop_loss | 4 | -1.49 | +| WIF | 10-16 02:00 | 10-16 05:00 | stop_loss | 3 | -1.49 | +| INJ | 10-16 03:00 | 10-16 06:00 | trailing_stop | 3 | +0.12 | +| KAS | 10-16 03:00 | 10-16 06:00 | take_profit | 3 | +1.49 | +| SEI | 10-16 03:00 | 10-16 07:00 | trailing_stop | 4 | -0.28 | +| SUI | 10-16 04:00 | 10-16 07:00 | trailing_stop | 3 | -0.67 | +| FET | 10-16 07:00 | 10-16 08:00 | stop_loss | 1 | -1.49 | +| TIA | 10-16 03:00 | 10-16 08:00 | stop_loss | 5 | -1.49 | +| APT | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| ARB | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| BONK | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| ETC | 10-16 15:00 | 10-16 16:00 | take_profit | 1 | +1.49 | +| FET | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| FIL | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| INJ | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| KAS | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| LTC | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| NEAR | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| OP | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| SEI | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| SUI | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| TIA | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| UNI | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| WIF | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| INJ | 10-16 17:00 | 10-16 18:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-16 17:00 | 10-16 18:00 | stop_loss | 1 | -1.49 | +| FET | 10-16 18:00 | 10-16 19:00 | stop_loss | 1 | -1.49 | +| FIL | 10-16 18:00 | 10-16 19:00 | stop_loss | 1 | -1.49 | +| APT | 10-16 19:00 | 10-16 20:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-16 19:00 | 10-16 20:00 | stop_loss | 1 | -1.49 | +| BONK | 10-16 19:00 | 10-16 20:00 | stop_loss | 1 | -1.49 | +| FET | 10-16 19:00 | 10-16 20:00 | stop_loss | 1 | -1.49 | +| FIL | 10-16 19:00 | 10-16 20:00 | stop_loss | 1 | -1.49 | +| NEAR | 10-16 19:00 | 10-16 20:00 | stop_loss | 1 | -1.49 | +| OP | 10-16 19:00 | 10-16 20:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-16 19:00 | 10-16 20:00 | stop_loss | 1 | -1.49 | +| SEI | 10-16 19:00 | 10-16 20:00 | stop_loss | 1 | -1.49 | +| SUI | 10-16 19:00 | 10-16 20:00 | stop_loss | 1 | -1.49 | +| TIA | 10-16 19:00 | 10-16 20:00 | stop_loss | 1 | -1.49 | +| TRX | 10-16 18:00 | 10-16 20:00 | stop_loss | 2 | -1.49 | +| UNI | 10-16 19:00 | 10-16 20:00 | stop_loss | 1 | -1.49 | +| APT | 10-16 20:00 | 10-16 21:00 | trailing_stop | 1 | +0.12 | +| ARB | 10-16 20:00 | 10-16 21:00 | trailing_stop | 1 | -0.53 | +| ATOM | 10-16 20:00 | 10-16 21:00 | trailing_stop | 1 | -0.30 | +| BONK | 10-16 20:00 | 10-16 21:00 | trailing_stop | 1 | -0.50 | +| FET | 10-16 20:00 | 10-16 21:00 | trailing_stop | 1 | +0.08 | +| FIL | 10-16 20:00 | 10-16 21:00 | trailing_stop | 1 | +0.05 | +| INJ | 10-16 20:00 | 10-16 21:00 | trailing_stop | 1 | -0.37 | +| KAS | 10-16 20:00 | 10-16 21:00 | trailing_stop | 1 | -0.21 | +| NEAR | 10-16 20:00 | 10-16 21:00 | trailing_stop | 1 | -0.66 | +| PEPE | 10-16 20:00 | 10-16 21:00 | trailing_stop | 1 | -0.35 | +| RENDER | 10-16 20:00 | 10-16 21:00 | trailing_stop | 1 | -0.28 | +| SUI | 10-16 20:00 | 10-16 21:00 | trailing_stop | 1 | -0.43 | +| TIA | 10-16 20:00 | 10-16 21:00 | take_profit | 1 | +1.49 | +| WIF | 10-16 20:00 | 10-16 21:00 | trailing_stop | 1 | -0.34 | +| ETC | 10-16 20:00 | 10-16 22:00 | trailing_stop | 2 | -0.70 | +| LTC | 10-16 19:00 | 10-17 00:00 | take_profit | 5 | +1.49 | +| AVAX | 10-16 19:00 | 10-17 01:00 | take_profit | 6 | +1.49 | +| SEI | 10-16 20:00 | 10-17 01:00 | take_profit | 5 | +1.49 | +| UNI | 10-16 20:00 | 10-17 01:00 | take_profit | 5 | +1.49 | +| SUI | 10-16 22:00 | 10-17 02:00 | stop_loss | 4 | -1.49 | +| AVAX | 10-17 01:00 | 10-17 04:00 | stop_loss | 3 | -1.49 | +| OP | 10-16 20:00 | 10-17 04:00 | take_profit | 8 | +1.49 | +| ATOM | 10-17 02:00 | 10-17 05:00 | stop_loss | 3 | -1.49 | +| BONK | 10-17 02:00 | 10-17 05:00 | stop_loss | 3 | -1.49 | +| FIL | 10-17 03:00 | 10-17 05:00 | stop_loss | 2 | -1.49 | +| INJ | 10-17 02:00 | 10-17 05:00 | stop_loss | 3 | -1.49 | +| LTC | 10-17 01:00 | 10-17 05:00 | stop_loss | 4 | -1.49 | +| NEAR | 10-17 03:00 | 10-17 05:00 | stop_loss | 2 | -1.49 | +| RENDER | 10-17 03:00 | 10-17 05:00 | stop_loss | 2 | -1.49 | +| SEI | 10-17 02:00 | 10-17 05:00 | stop_loss | 3 | -1.49 | +| SHIB | 10-16 20:00 | 10-17 05:00 | trailing_stop | 9 | -0.11 | +| FET | 10-17 02:00 | 10-17 06:00 | stop_loss | 4 | -1.49 | +| PEPE | 10-17 02:00 | 10-17 06:00 | stop_loss | 4 | -1.49 | +| APT | 10-17 06:00 | 10-17 07:00 | stop_loss | 1 | -1.49 | +| ARB | 10-17 06:00 | 10-17 07:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-17 06:00 | 10-17 07:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-17 06:00 | 10-17 07:00 | stop_loss | 1 | -1.49 | +| ETC | 10-17 06:00 | 10-17 07:00 | stop_loss | 1 | -1.49 | +| KAS | 10-17 06:00 | 10-17 07:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-17 06:00 | 10-17 07:00 | stop_loss | 1 | -1.49 | +| SEI | 10-17 06:00 | 10-17 07:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-17 06:00 | 10-17 07:00 | stop_loss | 1 | -1.49 | +| TRX | 10-16 20:00 | 10-17 07:00 | stop_loss | 11 | -1.49 | +| UNI | 10-17 06:00 | 10-17 07:00 | stop_loss | 1 | -1.49 | +| WIF | 10-17 06:00 | 10-17 07:00 | stop_loss | 1 | -1.49 | +| APT | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| ARB | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| BONK | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| ETC | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| FET | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| FIL | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| INJ | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| KAS | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| LTC | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| NEAR | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| OP | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| SEI | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| SUI | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| TIA | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| UNI | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| WIF | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| APT | 10-17 08:00 | 10-17 09:00 | take_profit | 1 | +1.49 | +| ARB | 10-17 08:00 | 10-17 09:00 | take_profit | 1 | +1.49 | +| ATOM | 10-17 08:00 | 10-17 09:00 | take_profit | 1 | +1.49 | +| AVAX | 10-17 08:00 | 10-17 09:00 | take_profit | 1 | +1.49 | +| BONK | 10-17 08:00 | 10-17 09:00 | take_profit | 1 | +1.49 | +| ETC | 10-17 08:00 | 10-17 09:00 | take_profit | 1 | +1.49 | +| FET | 10-17 08:00 | 10-17 09:00 | take_profit | 1 | +1.49 | +| FIL | 10-17 08:00 | 10-17 09:00 | take_profit | 1 | +1.49 | +| INJ | 10-17 08:00 | 10-17 09:00 | take_profit | 1 | +1.49 | +| KAS | 10-17 08:00 | 10-17 09:00 | take_profit | 1 | +1.49 | +| LTC | 10-17 08:00 | 10-17 09:00 | take_profit | 1 | +1.49 | +| NEAR | 10-17 08:00 | 10-17 09:00 | take_profit | 1 | +1.49 | +| OP | 10-17 08:00 | 10-17 09:00 | take_profit | 1 | +1.49 | +| PEPE | 10-17 08:00 | 10-17 09:00 | take_profit | 1 | +1.49 | +| RENDER | 10-17 08:00 | 10-17 09:00 | take_profit | 1 | +1.49 | +| SEI | 10-17 08:00 | 10-17 09:00 | take_profit | 1 | +1.49 | +| SHIB | 10-17 08:00 | 10-17 09:00 | take_profit | 1 | +1.49 | +| SUI | 10-17 08:00 | 10-17 09:00 | take_profit | 1 | +1.49 | +| TIA | 10-17 08:00 | 10-17 09:00 | take_profit | 1 | +1.49 | +| UNI | 10-17 08:00 | 10-17 09:00 | take_profit | 1 | +1.49 | +| WIF | 10-17 08:00 | 10-17 09:00 | take_profit | 1 | +1.49 | +| APT | 10-17 13:00 | 10-17 14:00 | stop_loss | 1 | -1.49 | +| ARB | 10-17 13:00 | 10-17 14:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-17 13:00 | 10-17 14:00 | stop_loss | 1 | -1.49 | +| TRX | 10-17 07:00 | 10-17 14:00 | stop_loss | 7 | -1.49 | +| APT | 10-17 14:00 | 10-17 15:00 | take_profit | 1 | +1.49 | +| ARB | 10-17 14:00 | 10-17 15:00 | trailing_stop | 1 | +0.12 | +| AVAX | 10-17 14:00 | 10-17 15:00 | trailing_stop | 1 | -0.08 | +| BONK | 10-17 14:00 | 10-17 15:00 | take_profit | 1 | +1.49 | +| FIL | 10-17 14:00 | 10-17 15:00 | trailing_stop | 1 | -0.07 | +| INJ | 10-17 14:00 | 10-17 15:00 | take_profit | 1 | +1.49 | +| LTC | 10-17 14:00 | 10-17 15:00 | trailing_stop | 1 | -0.05 | +| PEPE | 10-17 14:00 | 10-17 15:00 | take_profit | 1 | +1.49 | +| RENDER | 10-17 14:00 | 10-17 15:00 | take_profit | 1 | +1.49 | +| SHIB | 10-17 14:00 | 10-17 15:00 | take_profit | 1 | +1.49 | +| SUI | 10-17 14:00 | 10-17 15:00 | take_profit | 1 | +1.49 | +| UNI | 10-17 14:00 | 10-17 15:00 | trailing_stop | 1 | -0.05 | +| WIF | 10-17 14:00 | 10-17 15:00 | trailing_stop | 1 | +0.01 | +| SEI | 10-17 15:00 | 10-17 16:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-17 15:00 | 10-17 23:00 | trailing_stop | 8 | -0.42 | +| SEI | 10-17 16:00 | 10-18 10:00 | take_profit | 18 | +1.49 | +| UNI | 10-18 08:00 | 10-18 12:00 | stop_loss | 4 | -1.49 | +| FET | 10-18 04:00 | 10-18 13:00 | stop_loss | 9 | -1.49 | +| UNI | 10-18 12:00 | 10-18 14:00 | stop_loss | 2 | -1.49 | +| KAS | 10-18 13:00 | 10-18 15:00 | stop_loss | 2 | -1.49 | +| FET | 10-18 13:00 | 10-18 16:00 | stop_loss | 3 | -1.49 | +| KAS | 10-18 15:00 | 10-18 17:00 | trailing_stop | 2 | +0.14 | +| NEAR | 10-18 15:00 | 10-18 22:00 | take_profit | 7 | +1.49 | +| TRX | 10-17 18:00 | 10-19 02:00 | take_profit | 32 | +1.49 | +| ETC | 10-18 15:00 | 10-19 06:00 | stop_loss | 15 | -1.49 | +| KAS | 10-19 00:00 | 10-19 08:00 | stop_loss | 8 | -1.49 | +| APT | 10-19 08:00 | 10-19 09:00 | trailing_stop | 1 | -0.27 | +| ATOM | 10-19 08:00 | 10-19 09:00 | trailing_stop | 1 | -0.70 | +| SUI | 10-19 08:00 | 10-19 09:00 | take_profit | 1 | +1.49 | +| SUI | 10-20 01:00 | 10-20 03:00 | take_profit | 2 | +1.49 | +| FET | 10-20 17:00 | 10-20 21:00 | stop_loss | 4 | -1.49 | +| RENDER | 10-20 20:00 | 10-20 23:00 | stop_loss | 3 | -1.49 | +| TIA | 10-20 18:00 | 10-21 00:00 | stop_loss | 6 | -1.49 | +| AVAX | 10-20 17:00 | 10-21 01:00 | stop_loss | 8 | -1.49 | +| BONK | 10-21 00:00 | 10-21 01:00 | stop_loss | 1 | -1.49 | +| FET | 10-20 21:00 | 10-21 01:00 | stop_loss | 4 | -1.49 | +| LTC | 10-20 23:00 | 10-21 01:00 | stop_loss | 2 | -1.49 | +| NEAR | 10-20 21:00 | 10-21 01:00 | stop_loss | 4 | -1.49 | +| RENDER | 10-20 23:00 | 10-21 01:00 | stop_loss | 2 | -1.49 | +| SUI | 10-20 17:00 | 10-21 01:00 | stop_loss | 8 | -1.49 | +| UNI | 10-20 20:00 | 10-21 01:00 | stop_loss | 5 | -1.49 | +| WIF | 10-21 00:00 | 10-21 01:00 | stop_loss | 1 | -1.49 | +| APT | 10-21 01:00 | 10-21 02:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-21 01:00 | 10-21 03:00 | stop_loss | 2 | -1.49 | +| FIL | 10-21 01:00 | 10-21 03:00 | stop_loss | 2 | -1.49 | +| INJ | 10-21 01:00 | 10-21 03:00 | stop_loss | 2 | -1.49 | +| OP | 10-21 01:00 | 10-21 03:00 | stop_loss | 2 | -1.49 | +| RENDER | 10-21 01:00 | 10-21 03:00 | stop_loss | 2 | -1.49 | +| SHIB | 10-20 18:00 | 10-21 03:00 | stop_loss | 9 | -1.49 | +| APT | 10-21 02:00 | 10-21 04:00 | stop_loss | 2 | -1.49 | +| ARB | 10-21 02:00 | 10-21 04:00 | stop_loss | 2 | -1.49 | +| ATOM | 10-21 03:00 | 10-21 04:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-21 03:00 | 10-21 04:00 | stop_loss | 1 | -1.49 | +| BONK | 10-21 01:00 | 10-21 04:00 | stop_loss | 3 | -1.49 | +| ETC | 10-21 01:00 | 10-21 04:00 | stop_loss | 3 | -1.49 | +| INJ | 10-21 03:00 | 10-21 04:00 | stop_loss | 1 | -1.49 | +| LTC | 10-21 01:00 | 10-21 04:00 | stop_loss | 3 | -1.49 | +| NEAR | 10-21 02:00 | 10-21 04:00 | stop_loss | 2 | -1.49 | +| OP | 10-21 03:00 | 10-21 04:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-21 02:00 | 10-21 04:00 | stop_loss | 2 | -1.49 | +| RENDER | 10-21 03:00 | 10-21 04:00 | stop_loss | 1 | -1.49 | +| SEI | 10-21 02:00 | 10-21 04:00 | stop_loss | 2 | -1.49 | +| SHIB | 10-21 03:00 | 10-21 04:00 | stop_loss | 1 | -1.49 | +| WIF | 10-21 02:00 | 10-21 04:00 | stop_loss | 2 | -1.49 | +| TRX | 10-21 02:00 | 10-21 05:00 | stop_loss | 3 | -1.49 | +| ATOM | 10-21 04:00 | 10-21 07:00 | confirmed_bearish_exit | 3 | +1.17 | +| BONK | 10-21 04:00 | 10-21 07:00 | trailing_stop | 3 | -0.10 | +| RENDER | 10-21 04:00 | 10-21 07:00 | trailing_stop | 3 | -0.25 | +| SEI | 10-21 04:00 | 10-21 07:00 | trailing_stop | 3 | -0.25 | +| ARB | 10-21 04:00 | 10-21 08:00 | trailing_stop | 4 | +0.02 | +| INJ | 10-21 04:00 | 10-21 08:00 | stop_loss | 4 | -1.49 | +| KAS | 10-21 04:00 | 10-21 08:00 | stop_loss | 4 | -1.49 | +| NEAR | 10-21 04:00 | 10-21 08:00 | trailing_stop | 4 | -0.48 | +| OP | 10-21 04:00 | 10-21 08:00 | trailing_stop | 4 | -0.29 | +| FIL | 10-21 04:00 | 10-21 09:00 | take_profit | 5 | +1.49 | +| LTC | 10-21 04:00 | 10-21 09:00 | trailing_stop | 5 | -0.55 | +| AVAX | 10-21 04:00 | 10-21 10:00 | take_profit | 6 | +1.49 | +| ETC | 10-21 04:00 | 10-21 10:00 | take_profit | 6 | +1.49 | +| TIA | 10-21 04:00 | 10-21 10:00 | take_profit | 6 | +1.49 | +| PEPE | 10-21 04:00 | 10-21 11:00 | trailing_stop | 7 | -0.45 | +| APT | 10-21 04:00 | 10-21 12:00 | take_profit | 8 | +1.49 | +| SHIB | 10-21 04:00 | 10-21 12:00 | take_profit | 8 | +1.49 | +| UNI | 10-21 04:00 | 10-21 12:00 | take_profit | 8 | +1.49 | +| WIF | 10-21 04:00 | 10-21 12:00 | take_profit | 8 | +1.49 | +| APT | 10-21 12:00 | 10-21 14:00 | take_profit | 2 | +1.49 | +| ARB | 10-21 13:00 | 10-21 14:00 | take_profit | 1 | +1.49 | +| AVAX | 10-21 10:00 | 10-21 14:00 | take_profit | 4 | +1.49 | +| BONK | 10-21 11:00 | 10-21 14:00 | take_profit | 3 | +1.49 | +| FET | 10-21 12:00 | 10-21 14:00 | take_profit | 2 | +1.49 | +| INJ | 10-21 12:00 | 10-21 14:00 | take_profit | 2 | +1.49 | +| KAS | 10-21 13:00 | 10-21 14:00 | take_profit | 1 | +1.49 | +| LTC | 10-21 12:00 | 10-21 14:00 | take_profit | 2 | +1.49 | +| OP | 10-21 11:00 | 10-21 14:00 | take_profit | 3 | +1.49 | +| PEPE | 10-21 12:00 | 10-21 14:00 | take_profit | 2 | +1.49 | +| RENDER | 10-21 11:00 | 10-21 14:00 | take_profit | 3 | +1.49 | +| SEI | 10-21 11:00 | 10-21 14:00 | take_profit | 3 | +1.49 | +| SHIB | 10-21 12:00 | 10-21 14:00 | take_profit | 2 | +1.49 | +| SUI | 10-21 04:00 | 10-21 14:00 | take_profit | 10 | +1.49 | +| TRX | 10-21 05:00 | 10-21 14:00 | take_profit | 9 | +1.49 | +| WIF | 10-21 12:00 | 10-21 14:00 | take_profit | 2 | +1.49 | +| FET | 10-21 20:00 | 10-21 21:00 | stop_loss | 1 | -1.49 | +| FET | 10-21 21:00 | 10-21 22:00 | stop_loss | 1 | -1.49 | +| FET | 10-21 22:00 | 10-21 23:00 | stop_loss | 1 | -1.49 | +| ARB | 10-22 04:00 | 10-22 05:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-22 04:00 | 10-22 05:00 | stop_loss | 1 | -1.49 | +| BONK | 10-22 04:00 | 10-22 05:00 | stop_loss | 1 | -1.49 | +| ETC | 10-22 04:00 | 10-22 05:00 | stop_loss | 1 | -1.49 | +| FET | 10-21 23:00 | 10-22 05:00 | trailing_stop | 6 | +0.08 | +| INJ | 10-22 04:00 | 10-22 05:00 | stop_loss | 1 | -1.49 | +| KAS | 10-22 04:00 | 10-22 05:00 | stop_loss | 1 | -1.49 | +| LTC | 10-22 04:00 | 10-22 05:00 | stop_loss | 1 | -1.49 | +| NEAR | 10-22 04:00 | 10-22 05:00 | stop_loss | 1 | -1.49 | +| OP | 10-22 04:00 | 10-22 05:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-22 04:00 | 10-22 05:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-22 04:00 | 10-22 05:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-22 04:00 | 10-22 05:00 | stop_loss | 1 | -1.49 | +| SUI | 10-22 04:00 | 10-22 05:00 | stop_loss | 1 | -1.49 | +| TIA | 10-22 04:00 | 10-22 05:00 | stop_loss | 1 | -1.49 | +| UNI | 10-22 04:00 | 10-22 05:00 | stop_loss | 1 | -1.49 | +| WIF | 10-22 04:00 | 10-22 05:00 | stop_loss | 1 | -1.49 | +| APT | 10-22 06:00 | 10-22 07:00 | trailing_stop | 1 | -0.44 | +| FIL | 10-22 05:00 | 10-22 07:00 | stop_loss | 2 | -1.49 | +| UNI | 10-22 05:00 | 10-22 07:00 | stop_loss | 2 | -1.49 | +| WIF | 10-22 05:00 | 10-22 07:00 | stop_loss | 2 | -1.49 | +| FET | 10-22 05:00 | 10-22 08:00 | stop_loss | 3 | -1.49 | +| AVAX | 10-22 08:00 | 10-22 09:00 | stop_loss | 1 | -1.49 | +| FET | 10-22 08:00 | 10-22 09:00 | stop_loss | 1 | -1.49 | +| NEAR | 10-22 05:00 | 10-22 09:00 | stop_loss | 4 | -1.49 | +| PEPE | 10-22 05:00 | 10-22 09:00 | stop_loss | 4 | -1.49 | +| SHIB | 10-22 05:00 | 10-22 09:00 | stop_loss | 4 | -1.49 | +| TIA | 10-22 05:00 | 10-22 09:00 | stop_loss | 4 | -1.49 | +| APT | 10-22 08:00 | 10-22 10:00 | take_profit | 2 | +1.49 | +| OP | 10-22 05:00 | 10-22 10:00 | stop_loss | 5 | -1.49 | +| AVAX | 10-22 09:00 | 10-22 11:00 | stop_loss | 2 | -1.49 | +| LTC | 10-22 05:00 | 10-22 11:00 | stop_loss | 6 | -1.49 | +| WIF | 10-22 15:00 | 10-22 16:00 | stop_loss | 1 | -1.49 | +| KAS | 10-22 15:00 | 10-22 17:00 | stop_loss | 2 | -1.49 | +| BONK | 10-22 18:00 | 10-22 19:00 | stop_loss | 1 | -1.49 | +| TIA | 10-22 18:00 | 10-22 19:00 | stop_loss | 1 | -1.49 | +| FIL | 10-22 18:00 | 10-22 20:00 | stop_loss | 2 | -1.49 | +| OP | 10-22 18:00 | 10-22 20:00 | stop_loss | 2 | -1.49 | +| SEI | 10-22 17:00 | 10-22 20:00 | stop_loss | 3 | -1.49 | +| ATOM | 10-22 20:00 | 10-22 21:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-22 20:00 | 10-22 21:00 | stop_loss | 1 | -1.49 | +| BONK | 10-22 20:00 | 10-22 21:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-22 20:00 | 10-22 21:00 | stop_loss | 1 | -1.49 | +| SEI | 10-22 20:00 | 10-22 21:00 | stop_loss | 1 | -1.49 | +| TIA | 10-22 20:00 | 10-22 21:00 | stop_loss | 1 | -1.49 | +| UNI | 10-22 20:00 | 10-22 21:00 | stop_loss | 1 | -1.49 | +| WIF | 10-22 20:00 | 10-22 21:00 | stop_loss | 1 | -1.49 | +| APT | 10-22 21:00 | 10-22 22:00 | trailing_stop | 1 | -0.50 | +| ARB | 10-22 21:00 | 10-22 23:00 | trailing_stop | 2 | -0.17 | +| AVAX | 10-22 21:00 | 10-22 23:00 | trailing_stop | 2 | +0.05 | +| BONK | 10-22 21:00 | 10-22 23:00 | take_profit | 2 | +1.49 | +| ETC | 10-22 21:00 | 10-22 23:00 | trailing_stop | 2 | -0.24 | +| FET | 10-22 21:00 | 10-22 23:00 | take_profit | 2 | +1.49 | +| FIL | 10-22 21:00 | 10-22 23:00 | take_profit | 2 | +1.49 | +| KAS | 10-22 21:00 | 10-22 23:00 | take_profit | 2 | +1.49 | +| NEAR | 10-22 21:00 | 10-22 23:00 | trailing_stop | 2 | -0.21 | +| OP | 10-22 21:00 | 10-22 23:00 | trailing_stop | 2 | +0.22 | +| PEPE | 10-22 21:00 | 10-22 23:00 | take_profit | 2 | +1.49 | +| RENDER | 10-22 21:00 | 10-22 23:00 | take_profit | 2 | +1.49 | +| SEI | 10-22 21:00 | 10-22 23:00 | take_profit | 2 | +1.49 | +| SHIB | 10-22 21:00 | 10-22 23:00 | trailing_stop | 2 | -0.33 | +| TIA | 10-22 21:00 | 10-22 23:00 | take_profit | 2 | +1.49 | +| UNI | 10-22 21:00 | 10-22 23:00 | take_profit | 2 | +1.49 | +| WIF | 10-22 21:00 | 10-22 23:00 | take_profit | 2 | +1.49 | +| ATOM | 10-22 21:00 | 10-23 02:00 | take_profit | 5 | +1.49 | +| APT | 10-23 03:00 | 10-23 06:00 | take_profit | 3 | +1.49 | +| ARB | 10-23 03:00 | 10-23 06:00 | take_profit | 3 | +1.49 | +| AVAX | 10-23 03:00 | 10-23 06:00 | take_profit | 3 | +1.49 | +| BONK | 10-23 03:00 | 10-23 06:00 | trailing_stop | 3 | -0.39 | +| FET | 10-23 03:00 | 10-23 06:00 | take_profit | 3 | +1.49 | +| INJ | 10-23 04:00 | 10-23 06:00 | take_profit | 2 | +1.49 | +| OP | 10-23 03:00 | 10-23 06:00 | take_profit | 3 | +1.49 | +| PEPE | 10-23 03:00 | 10-23 06:00 | take_profit | 3 | +1.49 | +| RENDER | 10-23 04:00 | 10-23 06:00 | take_profit | 2 | +1.49 | +| SUI | 10-23 03:00 | 10-23 06:00 | take_profit | 3 | +1.49 | +| TIA | 10-23 03:00 | 10-23 06:00 | take_profit | 3 | +1.49 | +| ATOM | 10-23 03:00 | 10-23 13:00 | take_profit | 10 | +1.49 | +| TRX | 10-22 10:00 | 10-23 15:00 | trailing_stop | 29 | -0.24 | +| TRX | 10-23 15:00 | 10-24 00:00 | stop_loss | 9 | -1.49 | +| ATOM | 10-24 03:00 | 10-24 04:00 | trailing_stop | 1 | -0.30 | +| AVAX | 10-23 20:00 | 10-24 04:00 | take_profit | 8 | +1.49 | +| TRX | 10-24 07:00 | 10-24 13:00 | stop_loss | 6 | -1.49 | +| TRX | 10-24 14:00 | 10-24 16:00 | stop_loss | 2 | -1.49 | +| RENDER | 10-24 16:00 | 10-24 19:00 | take_profit | 3 | +1.49 | +| TRX | 10-24 16:00 | 10-25 00:00 | stop_loss | 8 | -1.49 | +| UNI | 10-24 20:00 | 10-25 02:00 | stop_loss | 6 | -1.49 | +| TRX | 10-25 00:00 | 10-25 04:00 | stop_loss | 4 | -1.49 | +| SUI | 10-25 10:00 | 10-25 14:00 | take_profit | 4 | +1.49 | +| WIF | 10-25 10:00 | 10-25 14:00 | take_profit | 4 | +1.49 | +| RENDER | 10-25 11:00 | 10-25 17:00 | take_profit | 6 | +1.49 | +| TIA | 10-25 10:00 | 10-25 17:00 | take_profit | 7 | +1.49 | +| OP | 10-25 10:00 | 10-25 18:00 | take_profit | 8 | +1.49 | +| UNI | 10-25 15:00 | 10-26 01:00 | trailing_stop | 10 | -0.53 | +| TRX | 10-25 09:00 | 10-26 04:00 | stop_loss | 19 | -1.49 | +| INJ | 10-26 02:00 | 10-26 08:00 | take_profit | 6 | +1.49 | +| ARB | 10-26 02:00 | 10-26 09:00 | take_profit | 7 | +1.49 | +| PEPE | 10-26 01:00 | 10-26 09:00 | take_profit | 8 | +1.49 | +| TRX | 10-26 04:00 | 10-26 13:00 | take_profit | 9 | +1.49 | +| APT | 10-27 09:00 | 10-27 13:00 | stop_loss | 4 | -1.49 | +| ATOM | 10-27 10:00 | 10-27 13:00 | stop_loss | 3 | -1.49 | +| BONK | 10-27 12:00 | 10-27 13:00 | stop_loss | 1 | -1.49 | +| FET | 10-27 09:00 | 10-27 13:00 | stop_loss | 4 | -1.49 | +| FIL | 10-27 12:00 | 10-27 13:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-27 08:00 | 10-27 13:00 | stop_loss | 5 | -1.49 | +| RENDER | 10-27 12:00 | 10-27 13:00 | stop_loss | 1 | -1.49 | +| SEI | 10-27 12:00 | 10-27 13:00 | stop_loss | 1 | -1.49 | +| WIF | 10-27 12:00 | 10-27 13:00 | stop_loss | 1 | -1.49 | +| SEI | 10-27 13:00 | 10-27 14:00 | stop_loss | 1 | -1.49 | +| WIF | 10-27 13:00 | 10-27 14:00 | stop_loss | 1 | -1.49 | +| LTC | 10-27 12:00 | 10-27 15:00 | take_profit | 3 | +1.49 | +| ETC | 10-27 12:00 | 10-27 16:00 | take_profit | 4 | +1.49 | +| INJ | 10-27 12:00 | 10-27 16:00 | take_profit | 4 | +1.49 | +| NEAR | 10-27 14:00 | 10-27 16:00 | take_profit | 2 | +1.49 | +| OP | 10-27 12:00 | 10-27 16:00 | take_profit | 4 | +1.49 | +| SHIB | 10-27 12:00 | 10-27 16:00 | trailing_stop | 4 | +0.05 | +| TIA | 10-27 12:00 | 10-27 16:00 | take_profit | 4 | +1.49 | +| UNI | 10-27 14:00 | 10-27 16:00 | trailing_stop | 2 | +0.15 | +| AVAX | 10-27 14:00 | 10-27 18:00 | take_profit | 4 | +1.49 | +| APT | 10-27 18:00 | 10-27 19:00 | stop_loss | 1 | -1.49 | +| ARB | 10-27 19:00 | 10-27 20:00 | stop_loss | 1 | -1.49 | +| UNI | 10-27 18:00 | 10-27 20:00 | stop_loss | 2 | -1.49 | +| APT | 10-27 19:00 | 10-27 21:00 | stop_loss | 2 | -1.49 | +| INJ | 10-27 19:00 | 10-27 21:00 | stop_loss | 2 | -1.49 | +| OP | 10-27 19:00 | 10-27 21:00 | stop_loss | 2 | -1.49 | +| TIA | 10-27 19:00 | 10-27 21:00 | stop_loss | 2 | -1.49 | +| WIF | 10-27 19:00 | 10-27 21:00 | stop_loss | 2 | -1.49 | +| AVAX | 10-27 20:00 | 10-27 23:00 | stop_loss | 3 | -1.49 | +| BONK | 10-27 20:00 | 10-27 23:00 | stop_loss | 3 | -1.49 | +| RENDER | 10-27 20:00 | 10-27 23:00 | stop_loss | 3 | -1.49 | +| SEI | 10-27 19:00 | 10-27 23:00 | stop_loss | 4 | -1.49 | +| SHIB | 10-27 20:00 | 10-28 02:00 | stop_loss | 6 | -1.49 | +| FET | 10-27 22:00 | 10-28 03:00 | stop_loss | 5 | -1.49 | +| ATOM | 10-27 20:00 | 10-28 05:00 | stop_loss | 9 | -1.49 | +| LTC | 10-28 05:00 | 10-28 06:00 | take_profit | 1 | +1.49 | +| RENDER | 10-28 07:00 | 10-28 13:00 | take_profit | 6 | +1.49 | +| FIL | 10-28 07:00 | 10-28 14:00 | stop_loss | 7 | -1.49 | +| SHIB | 10-28 08:00 | 10-28 14:00 | stop_loss | 6 | -1.49 | +| INJ | 10-28 19:00 | 10-28 20:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-28 19:00 | 10-28 20:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-28 19:00 | 10-28 20:00 | stop_loss | 1 | -1.49 | +| SEI | 10-28 19:00 | 10-28 20:00 | stop_loss | 1 | -1.49 | +| TRX | 10-27 14:00 | 10-28 20:00 | stop_loss | 30 | -1.49 | +| UNI | 10-28 19:00 | 10-28 20:00 | stop_loss | 1 | -1.49 | +| APT | 10-28 20:00 | 10-28 21:00 | stop_loss | 1 | -1.49 | +| ARB | 10-28 20:00 | 10-28 21:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-28 20:00 | 10-28 21:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-28 20:00 | 10-28 21:00 | stop_loss | 1 | -1.49 | +| BONK | 10-28 20:00 | 10-28 21:00 | stop_loss | 1 | -1.49 | +| ETC | 10-28 20:00 | 10-28 21:00 | stop_loss | 1 | -1.49 | +| FET | 10-28 20:00 | 10-28 21:00 | stop_loss | 1 | -1.49 | +| FIL | 10-28 20:00 | 10-28 21:00 | stop_loss | 1 | -1.49 | +| INJ | 10-28 20:00 | 10-28 21:00 | stop_loss | 1 | -1.49 | +| LTC | 10-28 20:00 | 10-28 21:00 | stop_loss | 1 | -1.49 | +| NEAR | 10-28 20:00 | 10-28 21:00 | stop_loss | 1 | -1.49 | +| OP | 10-28 20:00 | 10-28 21:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-28 20:00 | 10-28 21:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-28 20:00 | 10-28 21:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-28 20:00 | 10-28 21:00 | stop_loss | 1 | -1.49 | +| SUI | 10-28 20:00 | 10-28 21:00 | stop_loss | 1 | -1.49 | +| TIA | 10-28 20:00 | 10-28 21:00 | stop_loss | 1 | -1.49 | +| UNI | 10-28 20:00 | 10-28 21:00 | stop_loss | 1 | -1.49 | +| WIF | 10-28 20:00 | 10-28 21:00 | stop_loss | 1 | -1.49 | +| ARB | 10-28 21:00 | 10-28 22:00 | trailing_stop | 1 | -0.62 | +| ATOM | 10-28 21:00 | 10-28 22:00 | trailing_stop | 1 | -0.65 | +| OP | 10-28 21:00 | 10-28 22:00 | trailing_stop | 1 | -0.53 | +| PEPE | 10-28 21:00 | 10-28 22:00 | trailing_stop | 1 | -0.67 | +| TIA | 10-28 21:00 | 10-28 22:00 | trailing_stop | 1 | -0.34 | +| WIF | 10-28 21:00 | 10-28 22:00 | trailing_stop | 1 | -0.43 | +| ETC | 10-28 21:00 | 10-29 02:00 | confirmed_bearish_exit | 5 | -0.17 | +| SEI | 10-28 20:00 | 10-29 03:00 | stop_loss | 7 | -1.49 | +| KAS | 10-29 00:00 | 10-29 06:00 | take_profit | 6 | +1.49 | +| RENDER | 10-28 21:00 | 10-29 06:00 | confirmed_bearish_exit | 9 | -0.54 | +| INJ | 10-29 06:00 | 10-29 08:00 | stop_loss | 2 | -1.49 | +| RENDER | 10-29 07:00 | 10-29 08:00 | stop_loss | 1 | -1.49 | +| FET | 10-29 04:00 | 10-29 09:00 | stop_loss | 5 | -1.49 | +| SEI | 10-29 06:00 | 10-29 09:00 | stop_loss | 3 | -1.49 | +| ARB | 10-29 04:00 | 10-29 10:00 | trailing_stop | 6 | -0.36 | +| AVAX | 10-28 21:00 | 10-29 10:00 | confirmed_bearish_exit | 13 | +0.66 | +| BONK | 10-28 21:00 | 10-29 10:00 | trailing_stop | 13 | -0.57 | +| FIL | 10-28 21:00 | 10-29 10:00 | take_profit | 13 | +1.49 | +| INJ | 10-29 08:00 | 10-29 10:00 | take_profit | 2 | +1.49 | +| NEAR | 10-28 21:00 | 10-29 10:00 | take_profit | 13 | +1.49 | +| OP | 10-29 05:00 | 10-29 10:00 | trailing_stop | 5 | -0.07 | +| WIF | 10-29 08:00 | 10-29 10:00 | stop_loss | 2 | -1.49 | +| APT | 10-28 21:00 | 10-29 11:00 | take_profit | 14 | +1.49 | +| SUI | 10-28 21:00 | 10-29 11:00 | take_profit | 14 | +1.49 | +| SHIB | 10-28 21:00 | 10-29 12:00 | take_profit | 15 | +1.49 | +| PEPE | 10-29 06:00 | 10-29 13:00 | take_profit | 7 | +1.49 | +| RENDER | 10-29 08:00 | 10-29 13:00 | take_profit | 5 | +1.49 | +| ATOM | 10-29 07:00 | 10-29 15:00 | stop_loss | 8 | -1.49 | +| ETC | 10-29 04:00 | 10-29 15:00 | trailing_stop | 11 | -0.06 | +| UNI | 10-28 21:00 | 10-29 15:00 | stop_loss | 18 | -1.49 | +| TRX | 10-28 20:00 | 10-29 16:00 | trailing_stop | 20 | -0.59 | +| UNI | 10-29 15:00 | 10-29 17:00 | take_profit | 2 | +1.49 | +| TRX | 10-29 18:00 | 10-30 04:00 | trailing_stop | 10 | -0.46 | +| UNI | 10-30 03:00 | 10-30 04:00 | stop_loss | 1 | -1.49 | +| APT | 10-30 04:00 | 10-30 05:00 | take_profit | 1 | +1.49 | +| ARB | 10-30 04:00 | 10-30 05:00 | take_profit | 1 | +1.49 | +| ATOM | 10-30 04:00 | 10-30 05:00 | trailing_stop | 1 | +0.03 | +| AVAX | 10-30 04:00 | 10-30 05:00 | take_profit | 1 | +1.49 | +| BONK | 10-30 04:00 | 10-30 05:00 | take_profit | 1 | +1.49 | +| ETC | 10-30 04:00 | 10-30 05:00 | trailing_stop | 1 | -0.17 | +| FIL | 10-30 04:00 | 10-30 05:00 | trailing_stop | 1 | +0.10 | +| INJ | 10-30 04:00 | 10-30 05:00 | take_profit | 1 | +1.49 | +| KAS | 10-30 04:00 | 10-30 05:00 | stop_loss | 1 | -1.49 | +| LTC | 10-30 04:00 | 10-30 05:00 | trailing_stop | 1 | +0.13 | +| NEAR | 10-30 04:00 | 10-30 05:00 | trailing_stop | 1 | -0.17 | +| OP | 10-30 04:00 | 10-30 05:00 | trailing_stop | 1 | -0.06 | +| PEPE | 10-30 04:00 | 10-30 05:00 | take_profit | 1 | +1.49 | +| SHIB | 10-30 04:00 | 10-30 05:00 | trailing_stop | 1 | -0.16 | +| SUI | 10-30 04:00 | 10-30 05:00 | take_profit | 1 | +1.49 | +| TIA | 10-30 04:00 | 10-30 05:00 | take_profit | 1 | +1.49 | +| ARB | 10-30 12:00 | 10-30 13:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-30 12:00 | 10-30 13:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-30 12:00 | 10-30 13:00 | stop_loss | 1 | -1.49 | +| ETC | 10-30 12:00 | 10-30 13:00 | stop_loss | 1 | -1.49 | +| FET | 10-30 12:00 | 10-30 13:00 | stop_loss | 1 | -1.49 | +| INJ | 10-30 12:00 | 10-30 13:00 | stop_loss | 1 | -1.49 | +| KAS | 10-30 12:00 | 10-30 13:00 | stop_loss | 1 | -1.49 | +| LTC | 10-30 12:00 | 10-30 13:00 | stop_loss | 1 | -1.49 | +| NEAR | 10-30 12:00 | 10-30 13:00 | stop_loss | 1 | -1.49 | +| OP | 10-30 12:00 | 10-30 13:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-30 12:00 | 10-30 13:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-30 12:00 | 10-30 13:00 | stop_loss | 1 | -1.49 | +| SEI | 10-30 12:00 | 10-30 13:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-30 12:00 | 10-30 13:00 | stop_loss | 1 | -1.49 | +| SUI | 10-30 12:00 | 10-30 13:00 | stop_loss | 1 | -1.49 | +| KAS | 10-30 13:00 | 10-30 14:00 | trailing_stop | 1 | +0.06 | +| SUI | 10-30 13:00 | 10-30 14:00 | stop_loss | 1 | -1.49 | +| APT | 10-30 13:00 | 10-30 15:00 | stop_loss | 2 | -1.49 | +| ARB | 10-30 13:00 | 10-30 15:00 | stop_loss | 2 | -1.49 | +| ATOM | 10-30 13:00 | 10-30 15:00 | stop_loss | 2 | -1.49 | +| AVAX | 10-30 13:00 | 10-30 15:00 | stop_loss | 2 | -1.49 | +| BONK | 10-30 13:00 | 10-30 15:00 | stop_loss | 2 | -1.49 | +| FET | 10-30 13:00 | 10-30 15:00 | stop_loss | 2 | -1.49 | +| FIL | 10-30 13:00 | 10-30 15:00 | stop_loss | 2 | -1.49 | +| INJ | 10-30 13:00 | 10-30 15:00 | stop_loss | 2 | -1.49 | +| KAS | 10-30 14:00 | 10-30 15:00 | stop_loss | 1 | -1.49 | +| LTC | 10-30 13:00 | 10-30 15:00 | stop_loss | 2 | -1.49 | +| NEAR | 10-30 13:00 | 10-30 15:00 | stop_loss | 2 | -1.49 | +| OP | 10-30 13:00 | 10-30 15:00 | stop_loss | 2 | -1.49 | +| PEPE | 10-30 13:00 | 10-30 15:00 | stop_loss | 2 | -1.49 | +| RENDER | 10-30 13:00 | 10-30 15:00 | stop_loss | 2 | -1.49 | +| SEI | 10-30 13:00 | 10-30 15:00 | stop_loss | 2 | -1.49 | +| SHIB | 10-30 13:00 | 10-30 15:00 | stop_loss | 2 | -1.49 | +| SUI | 10-30 14:00 | 10-30 15:00 | stop_loss | 1 | -1.49 | +| TIA | 10-30 13:00 | 10-30 15:00 | stop_loss | 2 | -1.49 | +| WIF | 10-30 13:00 | 10-30 15:00 | stop_loss | 2 | -1.49 | +| KAS | 10-30 15:00 | 10-30 16:00 | trailing_stop | 1 | -0.60 | +| APT | 10-30 15:00 | 10-30 17:00 | stop_loss | 2 | -1.49 | +| ARB | 10-30 15:00 | 10-30 17:00 | stop_loss | 2 | -1.49 | +| AVAX | 10-30 15:00 | 10-30 17:00 | stop_loss | 2 | -1.49 | +| ETC | 10-30 13:00 | 10-30 17:00 | stop_loss | 4 | -1.49 | +| FET | 10-30 15:00 | 10-30 17:00 | stop_loss | 2 | -1.49 | +| FIL | 10-30 15:00 | 10-30 17:00 | stop_loss | 2 | -1.49 | +| INJ | 10-30 15:00 | 10-30 17:00 | stop_loss | 2 | -1.49 | +| LTC | 10-30 15:00 | 10-30 17:00 | stop_loss | 2 | -1.49 | +| NEAR | 10-30 15:00 | 10-30 17:00 | stop_loss | 2 | -1.49 | +| OP | 10-30 15:00 | 10-30 17:00 | stop_loss | 2 | -1.49 | +| PEPE | 10-30 15:00 | 10-30 17:00 | stop_loss | 2 | -1.49 | +| RENDER | 10-30 15:00 | 10-30 17:00 | stop_loss | 2 | -1.49 | +| SEI | 10-30 15:00 | 10-30 17:00 | stop_loss | 2 | -1.49 | +| SHIB | 10-30 15:00 | 10-30 17:00 | stop_loss | 2 | -1.49 | +| SUI | 10-30 15:00 | 10-30 17:00 | stop_loss | 2 | -1.49 | +| TIA | 10-30 15:00 | 10-30 17:00 | stop_loss | 2 | -1.49 | +| APT | 10-30 17:00 | 10-30 18:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-30 15:00 | 10-30 18:00 | stop_loss | 3 | -1.49 | +| FIL | 10-30 17:00 | 10-30 18:00 | stop_loss | 1 | -1.49 | +| APT | 10-30 18:00 | 10-30 19:00 | stop_loss | 1 | -1.49 | +| ARB | 10-30 18:00 | 10-30 19:00 | stop_loss | 1 | -1.49 | +| BONK | 10-30 18:00 | 10-30 19:00 | stop_loss | 1 | -1.49 | +| INJ | 10-30 18:00 | 10-30 19:00 | stop_loss | 1 | -1.49 | +| SEI | 10-30 18:00 | 10-30 19:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-30 18:00 | 10-30 19:00 | stop_loss | 1 | -1.49 | +| TIA | 10-30 18:00 | 10-30 19:00 | stop_loss | 1 | -1.49 | +| BONK | 10-30 19:00 | 10-30 20:00 | trailing_stop | 1 | +0.00 | +| ETC | 10-30 19:00 | 10-30 20:00 | take_profit | 1 | +1.49 | +| SHIB | 10-30 19:00 | 10-30 20:00 | trailing_stop | 1 | -0.25 | +| ATOM | 10-30 18:00 | 10-30 21:00 | take_profit | 3 | +1.49 | +| FIL | 10-30 18:00 | 10-30 22:00 | take_profit | 4 | +1.49 | +| ETC | 10-30 22:00 | 10-30 23:00 | trailing_stop | 1 | -0.63 | +| KAS | 10-30 22:00 | 10-30 23:00 | take_profit | 1 | +1.49 | +| ATOM | 10-30 22:00 | 10-31 00:00 | stop_loss | 2 | -1.49 | +| SUI | 10-30 23:00 | 10-31 00:00 | trailing_stop | 1 | -0.19 | +| APT | 10-30 23:00 | 10-31 01:00 | trailing_stop | 2 | -0.11 | +| ARB | 10-30 23:00 | 10-31 01:00 | trailing_stop | 2 | -0.24 | +| FIL | 10-30 23:00 | 10-31 01:00 | trailing_stop | 2 | -0.62 | +| TIA | 10-30 23:00 | 10-31 01:00 | trailing_stop | 2 | -0.08 | +| WIF | 10-30 23:00 | 10-31 01:00 | take_profit | 2 | +1.49 | +| ARB | 10-31 01:00 | 10-31 02:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-30 23:00 | 10-31 02:00 | trailing_stop | 3 | -0.22 | +| NEAR | 10-30 23:00 | 10-31 02:00 | trailing_stop | 3 | -0.42 | +| RENDER | 10-30 22:00 | 10-31 02:00 | trailing_stop | 4 | -0.50 | +| SUI | 10-31 00:00 | 10-31 02:00 | stop_loss | 2 | -1.49 | +| BONK | 10-31 00:00 | 10-31 03:00 | stop_loss | 3 | -1.49 | +| FET | 10-30 23:00 | 10-31 03:00 | trailing_stop | 4 | -0.38 | +| INJ | 10-31 00:00 | 10-31 04:00 | trailing_stop | 4 | +0.00 | +| LTC | 10-30 22:00 | 10-31 04:00 | take_profit | 6 | +1.49 | +| PEPE | 10-31 00:00 | 10-31 04:00 | trailing_stop | 4 | +0.03 | +| OP | 10-31 00:00 | 10-31 06:00 | stop_loss | 6 | -1.49 | +| UNI | 10-30 23:00 | 10-31 07:00 | trailing_stop | 8 | -0.01 | +| SEI | 10-30 23:00 | 10-31 10:00 | take_profit | 11 | +1.49 | +| TRX | 10-30 13:00 | 10-31 14:00 | take_profit | 25 | +1.49 | +| KAS | 10-31 15:00 | 10-31 16:00 | stop_loss | 1 | -1.49 | +| UNI | 10-31 15:00 | 10-31 16:00 | stop_loss | 1 | -1.49 | +| FET | 10-31 16:00 | 10-31 17:00 | stop_loss | 1 | -1.49 | +| INJ | 10-31 16:00 | 10-31 17:00 | stop_loss | 1 | -1.49 | +| OP | 10-31 16:00 | 10-31 17:00 | stop_loss | 1 | -1.49 | +| TIA | 10-31 16:00 | 10-31 17:00 | stop_loss | 1 | -1.49 | +| INJ | 10-31 17:00 | 10-31 18:00 | trailing_stop | 1 | -0.64 | +| UNI | 10-31 16:00 | 10-31 18:00 | trailing_stop | 2 | -0.59 | +| AVAX | 10-31 16:00 | 10-31 19:00 | take_profit | 3 | +1.49 | +| FET | 10-31 17:00 | 10-31 19:00 | trailing_stop | 2 | -0.44 | +| KAS | 10-31 16:00 | 10-31 19:00 | take_profit | 3 | +1.49 | +| OP | 10-31 17:00 | 10-31 19:00 | take_profit | 2 | +1.49 | +| TIA | 10-31 17:00 | 10-31 19:00 | take_profit | 2 | +1.49 | +| FET | 11-02 13:00 | 11-02 14:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-02 13:00 | 11-02 14:00 | stop_loss | 1 | -1.49 | +| FET | 11-02 14:00 | 11-02 15:00 | take_profit | 1 | +1.49 | +| KAS | 11-02 14:00 | 11-02 15:00 | stop_loss | 1 | -1.49 | +| ARB | 11-02 14:00 | 11-02 16:00 | stop_loss | 2 | -1.49 | +| ETC | 11-02 14:00 | 11-02 16:00 | stop_loss | 2 | -1.49 | +| FIL | 11-02 14:00 | 11-02 16:00 | stop_loss | 2 | -1.49 | +| INJ | 11-02 14:00 | 11-02 16:00 | stop_loss | 2 | -1.49 | +| LTC | 11-02 14:00 | 11-02 16:00 | stop_loss | 2 | -1.49 | +| PEPE | 11-02 14:00 | 11-02 16:00 | stop_loss | 2 | -1.49 | +| RENDER | 11-02 14:00 | 11-02 16:00 | stop_loss | 2 | -1.49 | +| SHIB | 11-02 14:00 | 11-02 19:00 | stop_loss | 5 | -1.49 | +| OP | 11-02 19:00 | 11-02 21:00 | confirmed_bearish_exit | 2 | +0.57 | +| KAS | 11-02 15:00 | 11-02 22:00 | trailing_stop | 7 | -0.46 | +| ATOM | 11-02 14:00 | 11-02 23:00 | take_profit | 9 | +1.49 | +| AVAX | 11-02 14:00 | 11-02 23:00 | take_profit | 9 | +1.49 | +| BONK | 11-02 22:00 | 11-02 23:00 | take_profit | 1 | +1.49 | +| ETC | 11-02 22:00 | 11-02 23:00 | trailing_stop | 1 | +0.12 | +| INJ | 11-02 22:00 | 11-02 23:00 | take_profit | 1 | +1.49 | +| NEAR | 11-02 14:00 | 11-02 23:00 | take_profit | 9 | +1.49 | +| RENDER | 11-02 22:00 | 11-02 23:00 | trailing_stop | 1 | +0.10 | +| UNI | 11-02 14:00 | 11-02 23:00 | take_profit | 9 | +1.49 | +| TIA | 11-03 00:00 | 11-03 01:00 | stop_loss | 1 | -1.49 | +| APT | 11-03 01:00 | 11-03 02:00 | stop_loss | 1 | -1.49 | +| ARB | 11-03 01:00 | 11-03 02:00 | stop_loss | 1 | -1.49 | +| FIL | 11-02 22:00 | 11-03 02:00 | stop_loss | 4 | -1.49 | +| INJ | 11-03 01:00 | 11-03 02:00 | stop_loss | 1 | -1.49 | +| LTC | 11-03 01:00 | 11-03 02:00 | stop_loss | 1 | -1.49 | +| OP | 11-03 01:00 | 11-03 02:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-03 01:00 | 11-03 02:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-03 01:00 | 11-03 02:00 | stop_loss | 1 | -1.49 | +| SEI | 11-03 01:00 | 11-03 02:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-03 01:00 | 11-03 02:00 | stop_loss | 1 | -1.49 | +| SUI | 11-03 01:00 | 11-03 02:00 | stop_loss | 1 | -1.49 | +| TIA | 11-03 01:00 | 11-03 02:00 | stop_loss | 1 | -1.49 | +| UNI | 11-03 01:00 | 11-03 02:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-03 02:00 | 11-03 03:00 | stop_loss | 1 | -1.49 | +| SUI | 11-03 02:00 | 11-03 03:00 | stop_loss | 1 | -1.49 | +| ARB | 11-03 03:00 | 11-03 04:00 | stop_loss | 1 | -1.49 | +| ETC | 11-03 03:00 | 11-03 04:00 | stop_loss | 1 | -1.49 | +| FIL | 11-03 03:00 | 11-03 04:00 | stop_loss | 1 | -1.49 | +| INJ | 11-03 03:00 | 11-03 04:00 | stop_loss | 1 | -1.49 | +| KAS | 11-03 03:00 | 11-03 04:00 | stop_loss | 1 | -1.49 | +| OP | 11-03 03:00 | 11-03 04:00 | stop_loss | 1 | -1.49 | +| TIA | 11-03 03:00 | 11-03 04:00 | stop_loss | 1 | -1.49 | +| TRX | 11-02 02:00 | 11-03 04:00 | stop_loss | 26 | -1.49 | +| UNI | 11-03 03:00 | 11-03 04:00 | stop_loss | 1 | -1.49 | +| ARB | 11-03 04:00 | 11-03 05:00 | stop_loss | 1 | -1.49 | +| FIL | 11-03 04:00 | 11-03 05:00 | stop_loss | 1 | -1.49 | +| OP | 11-03 04:00 | 11-03 05:00 | stop_loss | 1 | -1.49 | +| UNI | 11-03 04:00 | 11-03 05:00 | stop_loss | 1 | -1.49 | +| WIF | 11-03 03:00 | 11-03 05:00 | stop_loss | 2 | -1.49 | +| APT | 11-03 03:00 | 11-03 06:00 | stop_loss | 3 | -1.49 | +| ARB | 11-03 05:00 | 11-03 06:00 | stop_loss | 1 | -1.49 | +| ATOM | 11-03 03:00 | 11-03 06:00 | stop_loss | 3 | -1.49 | +| AVAX | 11-03 03:00 | 11-03 06:00 | stop_loss | 3 | -1.49 | +| BONK | 11-03 03:00 | 11-03 06:00 | stop_loss | 3 | -1.49 | +| ETC | 11-03 05:00 | 11-03 06:00 | stop_loss | 1 | -1.49 | +| FIL | 11-03 05:00 | 11-03 06:00 | stop_loss | 1 | -1.49 | +| KAS | 11-03 04:00 | 11-03 06:00 | stop_loss | 2 | -1.49 | +| LTC | 11-03 03:00 | 11-03 06:00 | stop_loss | 3 | -1.49 | +| NEAR | 11-03 03:00 | 11-03 06:00 | stop_loss | 3 | -1.49 | +| OP | 11-03 05:00 | 11-03 06:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-03 03:00 | 11-03 06:00 | stop_loss | 3 | -1.49 | +| RENDER | 11-03 03:00 | 11-03 06:00 | stop_loss | 3 | -1.49 | +| SEI | 11-03 03:00 | 11-03 06:00 | stop_loss | 3 | -1.49 | +| SHIB | 11-03 03:00 | 11-03 06:00 | stop_loss | 3 | -1.49 | +| SUI | 11-03 03:00 | 11-03 06:00 | stop_loss | 3 | -1.49 | +| TIA | 11-03 04:00 | 11-03 06:00 | stop_loss | 2 | -1.49 | +| WIF | 11-03 05:00 | 11-03 06:00 | stop_loss | 1 | -1.49 | +| OP | 11-03 06:00 | 11-03 07:00 | trailing_stop | 1 | -0.51 | +| FIL | 11-03 06:00 | 11-03 08:00 | stop_loss | 2 | -1.49 | +| WIF | 11-03 06:00 | 11-03 08:00 | trailing_stop | 2 | -0.51 | +| APT | 11-03 06:00 | 11-03 09:00 | stop_loss | 3 | -1.49 | +| BONK | 11-03 06:00 | 11-03 09:00 | take_profit | 3 | +1.49 | +| LTC | 11-03 06:00 | 11-03 09:00 | stop_loss | 3 | -1.49 | +| SUI | 11-03 06:00 | 11-03 09:00 | take_profit | 3 | +1.49 | +| UNI | 11-03 05:00 | 11-03 09:00 | take_profit | 4 | +1.49 | +| ARB | 11-03 06:00 | 11-03 10:00 | stop_loss | 4 | -1.49 | +| ETC | 11-03 06:00 | 11-03 10:00 | stop_loss | 4 | -1.49 | +| PEPE | 11-03 06:00 | 11-03 10:00 | stop_loss | 4 | -1.49 | +| SHIB | 11-03 06:00 | 11-03 10:00 | stop_loss | 4 | -1.49 | +| TRX | 11-03 04:00 | 11-03 13:00 | stop_loss | 9 | -1.49 | +| FIL | 11-03 13:00 | 11-03 14:00 | trailing_stop | 1 | -0.15 | +| ARB | 11-03 14:00 | 11-03 15:00 | stop_loss | 1 | -1.49 | +| ATOM | 11-03 10:00 | 11-03 15:00 | stop_loss | 5 | -1.49 | +| AVAX | 11-03 13:00 | 11-03 15:00 | stop_loss | 2 | -1.49 | +| ETC | 11-03 14:00 | 11-03 15:00 | stop_loss | 1 | -1.49 | +| FIL | 11-03 14:00 | 11-03 15:00 | stop_loss | 1 | -1.49 | +| INJ | 11-03 13:00 | 11-03 15:00 | stop_loss | 2 | -1.49 | +| KAS | 11-03 12:00 | 11-03 15:00 | stop_loss | 3 | -1.49 | +| OP | 11-03 14:00 | 11-03 15:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-03 13:00 | 11-03 15:00 | stop_loss | 2 | -1.49 | +| SHIB | 11-03 14:00 | 11-03 15:00 | stop_loss | 1 | -1.49 | +| TIA | 11-03 14:00 | 11-03 15:00 | stop_loss | 1 | -1.49 | +| UNI | 11-03 12:00 | 11-03 15:00 | stop_loss | 3 | -1.49 | +| APT | 11-03 15:00 | 11-03 16:00 | take_profit | 1 | +1.49 | +| ARB | 11-03 15:00 | 11-03 16:00 | take_profit | 1 | +1.49 | +| ATOM | 11-03 15:00 | 11-03 16:00 | take_profit | 1 | +1.49 | +| AVAX | 11-03 15:00 | 11-03 16:00 | take_profit | 1 | +1.49 | +| BONK | 11-03 15:00 | 11-03 16:00 | take_profit | 1 | +1.49 | +| ETC | 11-03 15:00 | 11-03 16:00 | take_profit | 1 | +1.49 | +| FET | 11-03 15:00 | 11-03 16:00 | take_profit | 1 | +1.49 | +| FIL | 11-03 15:00 | 11-03 16:00 | take_profit | 1 | +1.49 | +| INJ | 11-03 15:00 | 11-03 16:00 | take_profit | 1 | +1.49 | +| KAS | 11-03 15:00 | 11-03 16:00 | take_profit | 1 | +1.49 | +| NEAR | 11-03 15:00 | 11-03 16:00 | take_profit | 1 | +1.49 | +| OP | 11-03 15:00 | 11-03 16:00 | take_profit | 1 | +1.49 | +| PEPE | 11-03 15:00 | 11-03 16:00 | trailing_stop | 1 | -0.02 | +| RENDER | 11-03 15:00 | 11-03 16:00 | take_profit | 1 | +1.49 | +| SEI | 11-03 15:00 | 11-03 16:00 | take_profit | 1 | +1.49 | +| SHIB | 11-03 15:00 | 11-03 16:00 | trailing_stop | 1 | -0.11 | +| SUI | 11-03 15:00 | 11-03 16:00 | take_profit | 1 | +1.49 | +| TIA | 11-03 15:00 | 11-03 16:00 | stop_loss | 1 | -1.49 | +| WIF | 11-03 15:00 | 11-03 16:00 | take_profit | 1 | +1.49 | +| FET | 11-03 16:00 | 11-03 17:00 | take_profit | 1 | +1.49 | +| LTC | 11-03 15:00 | 11-03 17:00 | take_profit | 2 | +1.49 | +| TRX | 11-03 15:00 | 11-03 18:00 | stop_loss | 3 | -1.49 | +| TRX | 11-03 18:00 | 11-03 20:00 | stop_loss | 2 | -1.49 | +| ATOM | 11-03 20:00 | 11-03 21:00 | stop_loss | 1 | -1.49 | +| OP | 11-03 20:00 | 11-03 21:00 | take_profit | 1 | +1.49 | +| RENDER | 11-03 20:00 | 11-03 21:00 | trailing_stop | 1 | -0.39 | +| ATOM | 11-03 21:00 | 11-03 22:00 | stop_loss | 1 | -1.49 | +| APT | 11-03 20:00 | 11-03 23:00 | trailing_stop | 3 | -0.71 | +| TRX | 11-03 20:00 | 11-04 01:00 | confirmed_bearish_exit | 5 | +0.35 | +| FET | 11-04 01:00 | 11-04 03:00 | take_profit | 2 | +1.49 | +| ATOM | 11-04 04:00 | 11-04 05:00 | stop_loss | 1 | -1.49 | +| BONK | 11-04 04:00 | 11-04 05:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-04 04:00 | 11-04 05:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-03 20:00 | 11-04 05:00 | stop_loss | 9 | -1.49 | +| TIA | 11-04 03:00 | 11-04 05:00 | stop_loss | 2 | -1.49 | +| TRX | 11-04 03:00 | 11-04 05:00 | stop_loss | 2 | -1.49 | +| ETC | 11-04 05:00 | 11-04 06:00 | take_profit | 1 | +1.49 | +| KAS | 11-04 05:00 | 11-04 06:00 | stop_loss | 1 | -1.49 | +| WIF | 11-04 05:00 | 11-04 06:00 | take_profit | 1 | +1.49 | +| SEI | 11-04 07:00 | 11-04 08:00 | take_profit | 1 | +1.49 | +| TRX | 11-04 05:00 | 11-04 08:00 | stop_loss | 3 | -1.49 | +| KAS | 11-04 13:00 | 11-04 14:00 | stop_loss | 1 | -1.49 | +| FIL | 11-04 17:00 | 11-04 18:00 | stop_loss | 1 | -1.49 | +| ETC | 11-04 18:00 | 11-04 19:00 | stop_loss | 1 | -1.49 | +| FIL | 11-04 18:00 | 11-04 19:00 | stop_loss | 1 | -1.49 | +| LTC | 11-04 18:00 | 11-04 19:00 | stop_loss | 1 | -1.49 | +| FIL | 11-04 19:00 | 11-04 20:00 | stop_loss | 1 | -1.49 | +| OP | 11-04 19:00 | 11-04 20:00 | stop_loss | 1 | -1.49 | +| ARB | 11-04 20:00 | 11-04 21:00 | stop_loss | 1 | -1.49 | +| ETC | 11-04 20:00 | 11-04 21:00 | stop_loss | 1 | -1.49 | +| FIL | 11-04 20:00 | 11-04 21:00 | stop_loss | 1 | -1.49 | +| LTC | 11-04 20:00 | 11-04 21:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-04 20:00 | 11-04 21:00 | stop_loss | 1 | -1.49 | +| SUI | 11-04 20:00 | 11-04 21:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-04 21:00 | 11-04 22:00 | take_profit | 1 | +1.49 | +| AVAX | 11-05 00:00 | 11-05 01:00 | stop_loss | 1 | -1.49 | +| SEI | 11-05 00:00 | 11-05 01:00 | stop_loss | 1 | -1.49 | +| TIA | 11-05 00:00 | 11-05 01:00 | stop_loss | 1 | -1.49 | +| ARB | 11-05 01:00 | 11-05 02:00 | take_profit | 1 | +1.49 | +| AVAX | 11-05 01:00 | 11-05 02:00 | take_profit | 1 | +1.49 | +| OP | 11-05 01:00 | 11-05 02:00 | take_profit | 1 | +1.49 | +| PEPE | 11-05 01:00 | 11-05 02:00 | take_profit | 1 | +1.49 | +| SUI | 11-05 01:00 | 11-05 02:00 | take_profit | 1 | +1.49 | +| RENDER | 11-05 04:00 | 11-05 06:00 | trailing_stop | 2 | -0.64 | +| FIL | 11-05 04:00 | 11-05 07:00 | stop_loss | 3 | -1.49 | +| INJ | 11-06 03:00 | 11-06 05:00 | stop_loss | 2 | -1.49 | +| FIL | 11-06 05:00 | 11-06 06:00 | stop_loss | 1 | -1.49 | +| SEI | 11-06 05:00 | 11-06 06:00 | trailing_stop | 1 | -0.23 | +| INJ | 11-06 05:00 | 11-06 07:00 | stop_loss | 2 | -1.49 | +| FIL | 11-06 06:00 | 11-06 08:00 | trailing_stop | 2 | -0.48 | +| RENDER | 11-06 06:00 | 11-06 08:00 | stop_loss | 2 | -1.49 | +| SEI | 11-06 06:00 | 11-06 08:00 | stop_loss | 2 | -1.49 | +| KAS | 11-06 05:00 | 11-06 10:00 | trailing_stop | 5 | -0.50 | +| SUI | 11-06 06:00 | 11-06 10:00 | stop_loss | 4 | -1.49 | +| BONK | 11-06 09:00 | 11-06 11:00 | stop_loss | 2 | -1.49 | +| ARB | 11-06 07:00 | 11-06 12:00 | stop_loss | 5 | -1.49 | +| AVAX | 11-06 05:00 | 11-06 12:00 | stop_loss | 7 | -1.49 | +| ETC | 11-06 06:00 | 11-06 12:00 | stop_loss | 6 | -1.49 | +| INJ | 11-06 07:00 | 11-06 12:00 | stop_loss | 5 | -1.49 | +| KAS | 11-06 10:00 | 11-06 12:00 | stop_loss | 2 | -1.49 | +| PEPE | 11-06 06:00 | 11-06 12:00 | stop_loss | 6 | -1.49 | +| RENDER | 11-06 08:00 | 11-06 12:00 | stop_loss | 4 | -1.49 | +| SEI | 11-06 08:00 | 11-06 12:00 | stop_loss | 4 | -1.49 | +| ARB | 11-06 12:00 | 11-06 13:00 | take_profit | 1 | +1.49 | +| ATOM | 11-06 05:00 | 11-06 13:00 | trailing_stop | 8 | -0.42 | +| BONK | 11-06 12:00 | 11-06 13:00 | take_profit | 1 | +1.49 | +| ETC | 11-06 12:00 | 11-06 13:00 | take_profit | 1 | +1.49 | +| FET | 11-06 07:00 | 11-06 13:00 | take_profit | 6 | +1.49 | +| FIL | 11-06 12:00 | 11-06 13:00 | take_profit | 1 | +1.49 | +| KAS | 11-06 12:00 | 11-06 13:00 | take_profit | 1 | +1.49 | +| LTC | 11-06 06:00 | 11-06 13:00 | trailing_stop | 7 | -0.05 | +| NEAR | 11-06 08:00 | 11-06 13:00 | take_profit | 5 | +1.49 | +| OP | 11-06 07:00 | 11-06 13:00 | stop_loss | 6 | -1.49 | +| PEPE | 11-06 12:00 | 11-06 13:00 | trailing_stop | 1 | -0.52 | +| SEI | 11-06 12:00 | 11-06 13:00 | take_profit | 1 | +1.49 | +| SUI | 11-06 12:00 | 11-06 13:00 | take_profit | 1 | +1.49 | +| TIA | 11-06 06:00 | 11-06 13:00 | take_profit | 7 | +1.49 | +| SHIB | 11-06 05:00 | 11-06 14:00 | trailing_stop | 9 | -0.58 | +| TRX | 11-06 08:00 | 11-06 14:00 | stop_loss | 6 | -1.49 | +| ATOM | 11-06 14:00 | 11-06 15:00 | stop_loss | 1 | -1.49 | +| BONK | 11-06 14:00 | 11-06 15:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-06 14:00 | 11-06 15:00 | stop_loss | 1 | -1.49 | +| SUI | 11-06 14:00 | 11-06 15:00 | stop_loss | 1 | -1.49 | +| UNI | 11-06 06:00 | 11-06 15:00 | stop_loss | 9 | -1.49 | +| ATOM | 11-06 15:00 | 11-06 16:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-06 15:00 | 11-06 16:00 | stop_loss | 1 | -1.49 | +| BONK | 11-06 15:00 | 11-06 16:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-06 15:00 | 11-06 16:00 | stop_loss | 1 | -1.49 | +| SUI | 11-06 15:00 | 11-06 16:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-06 16:00 | 11-06 17:00 | trailing_stop | 1 | -0.65 | +| BONK | 11-06 16:00 | 11-06 17:00 | take_profit | 1 | +1.49 | +| KAS | 11-06 16:00 | 11-06 17:00 | trailing_stop | 1 | -0.43 | +| PEPE | 11-06 16:00 | 11-06 17:00 | take_profit | 1 | +1.49 | +| SUI | 11-06 16:00 | 11-06 17:00 | trailing_stop | 1 | -0.27 | +| UNI | 11-06 16:00 | 11-06 17:00 | trailing_stop | 1 | -0.50 | +| BONK | 11-06 20:00 | 11-06 21:00 | trailing_stop | 1 | -0.32 | +| TRX | 11-06 14:00 | 11-07 14:00 | trailing_stop | 24 | -0.37 | +| KAS | 11-07 14:00 | 11-07 15:00 | stop_loss | 1 | -1.49 | +| KAS | 11-07 15:00 | 11-07 16:00 | take_profit | 1 | +1.49 | +| KAS | 11-08 07:00 | 11-08 08:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-08 08:00 | 11-08 09:00 | stop_loss | 1 | -1.49 | +| KAS | 11-08 08:00 | 11-08 10:00 | trailing_stop | 2 | -0.58 | +| RENDER | 11-08 09:00 | 11-08 10:00 | take_profit | 1 | +1.49 | +| WIF | 11-08 09:00 | 11-08 10:00 | trailing_stop | 1 | -0.22 | +| BONK | 11-08 08:00 | 11-08 13:00 | stop_loss | 5 | -1.49 | +| ETC | 11-08 06:00 | 11-08 13:00 | stop_loss | 7 | -1.49 | +| TIA | 11-08 12:00 | 11-08 13:00 | stop_loss | 1 | -1.49 | +| ARB | 11-08 13:00 | 11-08 14:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-08 13:00 | 11-08 14:00 | stop_loss | 1 | -1.49 | +| SUI | 11-08 13:00 | 11-08 14:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-08 13:00 | 11-08 15:00 | stop_loss | 2 | -1.49 | +| SUI | 11-08 14:00 | 11-08 15:00 | stop_loss | 1 | -1.49 | +| APT | 11-08 15:00 | 11-08 16:00 | stop_loss | 1 | -1.49 | +| FET | 11-08 15:00 | 11-08 16:00 | take_profit | 1 | +1.49 | +| FIL | 11-08 15:00 | 11-08 16:00 | stop_loss | 1 | -1.49 | +| INJ | 11-08 15:00 | 11-08 16:00 | stop_loss | 1 | -1.49 | +| FIL | 11-08 16:00 | 11-08 17:00 | stop_loss | 1 | -1.49 | +| SUI | 11-08 15:00 | 11-08 17:00 | trailing_stop | 2 | -0.28 | +| FIL | 11-08 17:00 | 11-08 18:00 | stop_loss | 1 | -1.49 | +| ARB | 11-08 15:00 | 11-08 19:00 | trailing_stop | 4 | -0.61 | +| AVAX | 11-08 15:00 | 11-08 19:00 | trailing_stop | 4 | -0.64 | +| OP | 11-08 15:00 | 11-08 22:00 | take_profit | 7 | +1.49 | +| SHIB | 11-08 15:00 | 11-08 22:00 | take_profit | 7 | +1.49 | +| FIL | 11-08 23:00 | 11-09 00:00 | stop_loss | 1 | -1.49 | +| INJ | 11-08 23:00 | 11-09 00:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-08 15:00 | 11-09 00:00 | trailing_stop | 9 | +0.01 | +| APT | 11-09 00:00 | 11-09 01:00 | trailing_stop | 1 | -0.54 | +| AVAX | 11-08 21:00 | 11-09 01:00 | stop_loss | 4 | -1.49 | +| FIL | 11-09 00:00 | 11-09 01:00 | stop_loss | 1 | -1.49 | +| ATOM | 11-09 00:00 | 11-09 02:00 | stop_loss | 2 | -1.49 | +| AVAX | 11-09 01:00 | 11-09 02:00 | stop_loss | 1 | -1.49 | +| BONK | 11-09 00:00 | 11-09 02:00 | stop_loss | 2 | -1.49 | +| ETC | 11-09 00:00 | 11-09 02:00 | stop_loss | 2 | -1.49 | +| FIL | 11-09 01:00 | 11-09 02:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-09 00:00 | 11-09 02:00 | stop_loss | 2 | -1.49 | +| RENDER | 11-09 00:00 | 11-09 02:00 | stop_loss | 2 | -1.49 | +| SHIB | 11-09 00:00 | 11-09 02:00 | stop_loss | 2 | -1.49 | +| ARB | 11-09 02:00 | 11-09 03:00 | stop_loss | 1 | -1.49 | +| ATOM | 11-09 02:00 | 11-09 03:00 | stop_loss | 1 | -1.49 | +| BONK | 11-09 02:00 | 11-09 03:00 | stop_loss | 1 | -1.49 | +| KAS | 11-09 02:00 | 11-09 03:00 | stop_loss | 1 | -1.49 | +| OP | 11-09 02:00 | 11-09 03:00 | stop_loss | 1 | -1.49 | +| WIF | 11-09 02:00 | 11-09 03:00 | stop_loss | 1 | -1.49 | +| WIF | 11-09 03:00 | 11-09 06:00 | take_profit | 3 | +1.49 | +| BONK | 11-09 03:00 | 11-09 07:00 | trailing_stop | 4 | -0.01 | +| KAS | 11-09 03:00 | 11-09 07:00 | take_profit | 4 | +1.49 | +| OP | 11-09 03:00 | 11-09 07:00 | take_profit | 4 | +1.49 | +| PEPE | 11-09 02:00 | 11-09 07:00 | take_profit | 5 | +1.49 | +| SHIB | 11-09 03:00 | 11-09 07:00 | take_profit | 4 | +1.49 | +| APT | 11-09 02:00 | 11-09 08:00 | trailing_stop | 6 | -0.04 | +| ATOM | 11-09 03:00 | 11-09 08:00 | trailing_stop | 5 | -0.12 | +| UNI | 11-09 02:00 | 11-09 10:00 | take_profit | 8 | +1.49 | +| FIL | 11-09 12:00 | 11-09 13:00 | take_profit | 1 | +1.49 | +| SEI | 11-09 11:00 | 11-09 13:00 | take_profit | 2 | +1.49 | +| INJ | 11-09 09:00 | 11-09 14:00 | take_profit | 5 | +1.49 | +| TIA | 11-09 13:00 | 11-09 14:00 | take_profit | 1 | +1.49 | +| LTC | 11-10 10:00 | 11-10 14:00 | stop_loss | 4 | -1.49 | +| ARB | 11-10 14:00 | 11-10 17:00 | trailing_stop | 3 | -0.53 | +| SHIB | 11-10 16:00 | 11-10 17:00 | trailing_stop | 1 | -0.31 | +| LTC | 11-10 23:00 | 11-11 00:00 | stop_loss | 1 | -1.49 | +| TRX | 11-08 15:00 | 11-11 00:00 | take_profit | 57 | +1.49 | +| RENDER | 11-11 03:00 | 11-11 04:00 | stop_loss | 1 | -1.49 | +| FIL | 11-11 05:00 | 11-11 06:00 | take_profit | 1 | +1.49 | +| FIL | 11-11 07:00 | 11-11 08:00 | stop_loss | 1 | -1.49 | +| TIA | 11-11 07:00 | 11-11 08:00 | stop_loss | 1 | -1.49 | +| FIL | 11-11 08:00 | 11-11 10:00 | take_profit | 2 | +1.49 | +| APT | 11-11 07:00 | 11-11 11:00 | take_profit | 4 | +1.49 | +| UNI | 11-11 12:00 | 11-11 13:00 | take_profit | 1 | +1.49 | +| WIF | 11-11 07:00 | 11-11 13:00 | take_profit | 6 | +1.49 | +| ATOM | 11-11 07:00 | 11-11 14:00 | trailing_stop | 7 | +0.02 | +| AVAX | 11-11 07:00 | 11-11 14:00 | trailing_stop | 7 | -0.08 | +| BONK | 11-11 07:00 | 11-11 14:00 | stop_loss | 7 | -1.49 | +| ETC | 11-11 07:00 | 11-11 14:00 | trailing_stop | 7 | -0.07 | +| FIL | 11-11 13:00 | 11-11 14:00 | trailing_stop | 1 | -0.40 | +| INJ | 11-11 07:00 | 11-11 14:00 | trailing_stop | 7 | +0.13 | +| LTC | 11-11 07:00 | 11-11 14:00 | stop_loss | 7 | -1.49 | +| NEAR | 11-11 07:00 | 11-11 14:00 | take_profit | 7 | +1.49 | +| PEPE | 11-11 07:00 | 11-11 14:00 | stop_loss | 7 | -1.49 | +| RENDER | 11-11 07:00 | 11-11 14:00 | stop_loss | 7 | -1.49 | +| UNI | 11-11 13:00 | 11-11 14:00 | stop_loss | 1 | -1.49 | +| FIL | 11-11 14:00 | 11-11 15:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-11 07:00 | 11-11 16:00 | stop_loss | 9 | -1.49 | +| APT | 11-11 16:00 | 11-11 17:00 | stop_loss | 1 | -1.49 | +| FIL | 11-11 16:00 | 11-11 17:00 | stop_loss | 1 | -1.49 | +| KAS | 11-11 16:00 | 11-11 17:00 | stop_loss | 1 | -1.49 | +| OP | 11-11 16:00 | 11-11 17:00 | stop_loss | 1 | -1.49 | +| WIF | 11-11 16:00 | 11-11 17:00 | stop_loss | 1 | -1.49 | +| FIL | 11-11 17:00 | 11-11 18:00 | stop_loss | 1 | -1.49 | +| INJ | 11-11 16:00 | 11-11 18:00 | trailing_stop | 2 | -0.25 | +| RENDER | 11-11 16:00 | 11-11 18:00 | stop_loss | 2 | -1.49 | +| SUI | 11-11 16:00 | 11-11 18:00 | stop_loss | 2 | -1.49 | +| APT | 11-11 17:00 | 11-11 19:00 | stop_loss | 2 | -1.49 | +| ETC | 11-11 16:00 | 11-11 19:00 | stop_loss | 3 | -1.49 | +| NEAR | 11-11 17:00 | 11-11 19:00 | stop_loss | 2 | -1.49 | +| BONK | 11-11 20:00 | 11-11 21:00 | stop_loss | 1 | -1.49 | +| FET | 11-11 20:00 | 11-11 21:00 | stop_loss | 1 | -1.49 | +| FIL | 11-11 20:00 | 11-11 21:00 | stop_loss | 1 | -1.49 | +| APT | 11-11 20:00 | 11-11 22:00 | trailing_stop | 2 | -0.44 | +| RENDER | 11-11 23:00 | 11-12 00:00 | stop_loss | 1 | -1.49 | +| APT | 11-12 00:00 | 11-12 01:00 | take_profit | 1 | +1.49 | +| ATOM | 11-12 00:00 | 11-12 01:00 | trailing_stop | 1 | -0.21 | +| FIL | 11-12 00:00 | 11-12 01:00 | take_profit | 1 | +1.49 | +| RENDER | 11-12 00:00 | 11-12 01:00 | take_profit | 1 | +1.49 | +| KAS | 11-12 02:00 | 11-12 05:00 | take_profit | 3 | +1.49 | +| WIF | 11-11 23:00 | 11-12 05:00 | take_profit | 6 | +1.49 | +| BONK | 11-11 21:00 | 11-12 06:00 | take_profit | 9 | +1.49 | +| NEAR | 11-11 23:00 | 11-12 06:00 | take_profit | 7 | +1.49 | +| ARB | 11-12 06:00 | 11-12 07:00 | stop_loss | 1 | -1.49 | +| FET | 11-12 06:00 | 11-12 07:00 | take_profit | 1 | +1.49 | +| FIL | 11-12 03:00 | 11-12 07:00 | take_profit | 4 | +1.49 | +| NEAR | 11-12 06:00 | 11-12 07:00 | stop_loss | 1 | -1.49 | +| APT | 11-12 04:00 | 11-12 08:00 | trailing_stop | 4 | -0.44 | +| ATOM | 11-12 04:00 | 11-12 08:00 | take_profit | 4 | +1.49 | +| AVAX | 11-12 04:00 | 11-12 08:00 | take_profit | 4 | +1.49 | +| NEAR | 11-12 07:00 | 11-12 08:00 | take_profit | 1 | +1.49 | +| OP | 11-12 04:00 | 11-12 08:00 | take_profit | 4 | +1.49 | +| PEPE | 11-12 07:00 | 11-12 08:00 | take_profit | 1 | +1.49 | +| SUI | 11-12 04:00 | 11-12 10:00 | take_profit | 6 | +1.49 | +| ETC | 11-12 04:00 | 11-12 11:00 | take_profit | 7 | +1.49 | +| ARB | 11-12 15:00 | 11-12 16:00 | stop_loss | 1 | -1.49 | +| ETC | 11-12 15:00 | 11-12 16:00 | stop_loss | 1 | -1.49 | +| UNI | 11-12 15:00 | 11-12 16:00 | take_profit | 1 | +1.49 | +| FIL | 11-12 16:00 | 11-12 17:00 | stop_loss | 1 | -1.49 | +| INJ | 11-12 16:00 | 11-12 17:00 | stop_loss | 1 | -1.49 | +| TIA | 11-12 16:00 | 11-12 17:00 | stop_loss | 1 | -1.49 | +| UNI | 11-12 16:00 | 11-12 17:00 | stop_loss | 1 | -1.49 | +| UNI | 11-12 17:00 | 11-12 18:00 | stop_loss | 1 | -1.49 | +| ARB | 11-12 16:00 | 11-12 19:00 | stop_loss | 3 | -1.49 | +| INJ | 11-12 18:00 | 11-12 19:00 | stop_loss | 1 | -1.49 | +| LTC | 11-12 16:00 | 11-12 19:00 | take_profit | 3 | +1.49 | +| SUI | 11-12 16:00 | 11-12 19:00 | stop_loss | 3 | -1.49 | +| UNI | 11-12 18:00 | 11-12 19:00 | stop_loss | 1 | -1.49 | +| SEI | 11-12 16:00 | 11-12 20:00 | take_profit | 4 | +1.49 | +| ETC | 11-12 16:00 | 11-12 22:00 | confirmed_bearish_exit | 6 | +0.40 | +| FIL | 11-12 22:00 | 11-12 23:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-12 16:00 | 11-12 23:00 | trailing_stop | 7 | -0.61 | +| FIL | 11-12 23:00 | 11-13 02:00 | stop_loss | 3 | -1.49 | +| UNI | 11-13 01:00 | 11-13 02:00 | take_profit | 1 | +1.49 | +| APT | 11-12 23:00 | 11-13 03:00 | stop_loss | 4 | -1.49 | +| ARB | 11-13 01:00 | 11-13 03:00 | stop_loss | 2 | -1.49 | +| ATOM | 11-13 01:00 | 11-13 03:00 | stop_loss | 2 | -1.49 | +| AVAX | 11-13 00:00 | 11-13 03:00 | take_profit | 3 | +1.49 | +| BONK | 11-13 02:00 | 11-13 03:00 | stop_loss | 1 | -1.49 | +| ETC | 11-13 00:00 | 11-13 03:00 | take_profit | 3 | +1.49 | +| FIL | 11-13 02:00 | 11-13 03:00 | stop_loss | 1 | -1.49 | +| NEAR | 11-12 23:00 | 11-13 03:00 | stop_loss | 4 | -1.49 | +| OP | 11-13 00:00 | 11-13 03:00 | stop_loss | 3 | -1.49 | +| PEPE | 11-13 02:00 | 11-13 03:00 | stop_loss | 1 | -1.49 | +| SEI | 11-12 22:00 | 11-13 03:00 | stop_loss | 5 | -1.49 | +| SHIB | 11-13 02:00 | 11-13 03:00 | stop_loss | 1 | -1.49 | +| SUI | 11-13 02:00 | 11-13 03:00 | stop_loss | 1 | -1.49 | +| INJ | 11-13 03:00 | 11-13 04:00 | stop_loss | 1 | -1.49 | +| OP | 11-13 03:00 | 11-13 04:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-13 03:00 | 11-13 04:00 | stop_loss | 1 | -1.49 | +| WIF | 11-13 03:00 | 11-13 04:00 | stop_loss | 1 | -1.49 | +| ARB | 11-13 03:00 | 11-13 05:00 | trailing_stop | 2 | -0.39 | +| BONK | 11-13 03:00 | 11-13 05:00 | trailing_stop | 2 | -0.47 | +| FET | 11-13 03:00 | 11-13 05:00 | take_profit | 2 | +1.49 | +| LTC | 11-13 03:00 | 11-13 05:00 | take_profit | 2 | +1.49 | +| PEPE | 11-13 03:00 | 11-13 05:00 | trailing_stop | 2 | -0.46 | +| RENDER | 11-13 04:00 | 11-13 05:00 | take_profit | 1 | +1.49 | +| SUI | 11-13 03:00 | 11-13 05:00 | trailing_stop | 2 | -0.69 | +| WIF | 11-13 04:00 | 11-13 05:00 | take_profit | 1 | +1.49 | +| SHIB | 11-13 03:00 | 11-13 14:00 | take_profit | 11 | +1.49 | +| ARB | 11-13 16:00 | 11-13 17:00 | stop_loss | 1 | -1.49 | +| BONK | 11-13 16:00 | 11-13 17:00 | stop_loss | 1 | -1.49 | +| FET | 11-13 16:00 | 11-13 17:00 | stop_loss | 1 | -1.49 | +| KAS | 11-13 16:00 | 11-13 17:00 | stop_loss | 1 | -1.49 | +| NEAR | 11-13 16:00 | 11-13 17:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-13 16:00 | 11-13 17:00 | stop_loss | 1 | -1.49 | +| SEI | 11-13 16:00 | 11-13 17:00 | stop_loss | 1 | -1.49 | +| SUI | 11-13 16:00 | 11-13 17:00 | stop_loss | 1 | -1.49 | +| TRX | 11-12 19:00 | 11-13 17:00 | trailing_stop | 22 | -0.19 | +| APT | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| ARB | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| ATOM | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| BONK | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| FET | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| FIL | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| INJ | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| KAS | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| LTC | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| NEAR | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| OP | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| SEI | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| SUI | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| TIA | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| WIF | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| APT | 11-13 18:00 | 11-13 19:00 | stop_loss | 1 | -1.49 | +| ARB | 11-13 18:00 | 11-13 19:00 | stop_loss | 1 | -1.49 | +| ATOM | 11-13 18:00 | 11-13 19:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-13 18:00 | 11-13 19:00 | stop_loss | 1 | -1.49 | +| BONK | 11-13 18:00 | 11-13 19:00 | stop_loss | 1 | -1.49 | +| FIL | 11-13 18:00 | 11-13 19:00 | stop_loss | 1 | -1.49 | +| INJ | 11-13 18:00 | 11-13 19:00 | stop_loss | 1 | -1.49 | +| OP | 11-13 18:00 | 11-13 19:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-13 18:00 | 11-13 19:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-13 18:00 | 11-13 19:00 | stop_loss | 1 | -1.49 | +| SEI | 11-13 18:00 | 11-13 19:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-13 18:00 | 11-13 19:00 | stop_loss | 1 | -1.49 | +| SUI | 11-13 18:00 | 11-13 19:00 | stop_loss | 1 | -1.49 | +| WIF | 11-13 18:00 | 11-13 19:00 | stop_loss | 1 | -1.49 | +| ARB | 11-13 19:00 | 11-13 20:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-13 19:00 | 11-13 20:00 | stop_loss | 1 | -1.49 | +| BONK | 11-13 19:00 | 11-13 20:00 | stop_loss | 1 | -1.49 | +| ETC | 11-13 17:00 | 11-13 20:00 | stop_loss | 3 | -1.49 | +| FET | 11-13 18:00 | 11-13 20:00 | stop_loss | 2 | -1.49 | +| INJ | 11-13 19:00 | 11-13 20:00 | stop_loss | 1 | -1.49 | +| KAS | 11-13 18:00 | 11-13 20:00 | stop_loss | 2 | -1.49 | +| LTC | 11-13 18:00 | 11-13 20:00 | stop_loss | 2 | -1.49 | +| PEPE | 11-13 19:00 | 11-13 20:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-13 19:00 | 11-13 20:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-13 19:00 | 11-13 20:00 | stop_loss | 1 | -1.49 | +| SUI | 11-13 19:00 | 11-13 20:00 | stop_loss | 1 | -1.49 | +| WIF | 11-13 19:00 | 11-13 20:00 | stop_loss | 1 | -1.49 | +| FET | 11-13 20:00 | 11-13 21:00 | stop_loss | 1 | -1.49 | +| FIL | 11-13 19:00 | 11-13 21:00 | stop_loss | 2 | -1.49 | +| INJ | 11-13 20:00 | 11-13 21:00 | stop_loss | 1 | -1.49 | +| OP | 11-13 19:00 | 11-13 21:00 | stop_loss | 2 | -1.49 | +| SEI | 11-13 19:00 | 11-13 21:00 | stop_loss | 2 | -1.49 | +| TIA | 11-13 19:00 | 11-13 21:00 | stop_loss | 2 | -1.49 | +| APT | 11-13 19:00 | 11-13 22:00 | take_profit | 3 | +1.49 | +| ARB | 11-13 20:00 | 11-13 22:00 | trailing_stop | 2 | -0.55 | +| ATOM | 11-13 19:00 | 11-13 22:00 | take_profit | 3 | +1.49 | +| AVAX | 11-13 20:00 | 11-13 22:00 | trailing_stop | 2 | -0.21 | +| BONK | 11-13 20:00 | 11-13 22:00 | take_profit | 2 | +1.49 | +| FET | 11-13 21:00 | 11-13 22:00 | take_profit | 1 | +1.49 | +| NEAR | 11-13 18:00 | 11-13 22:00 | take_profit | 4 | +1.49 | +| PEPE | 11-13 20:00 | 11-13 22:00 | take_profit | 2 | +1.49 | +| SHIB | 11-13 20:00 | 11-13 22:00 | trailing_stop | 2 | +0.24 | +| SUI | 11-13 20:00 | 11-13 22:00 | take_profit | 2 | +1.49 | +| UNI | 11-13 20:00 | 11-13 22:00 | take_profit | 2 | +1.49 | +| WIF | 11-13 20:00 | 11-13 22:00 | take_profit | 2 | +1.49 | +| NEAR | 11-14 00:00 | 11-14 02:00 | stop_loss | 2 | -1.49 | +| APT | 11-14 01:00 | 11-14 03:00 | stop_loss | 2 | -1.49 | +| OP | 11-14 01:00 | 11-14 03:00 | stop_loss | 2 | -1.49 | +| TIA | 11-14 00:00 | 11-14 03:00 | stop_loss | 3 | -1.49 | +| WIF | 11-14 02:00 | 11-14 03:00 | stop_loss | 1 | -1.49 | +| APT | 11-14 03:00 | 11-14 04:00 | stop_loss | 1 | -1.49 | +| ATOM | 11-14 03:00 | 11-14 04:00 | stop_loss | 1 | -1.49 | +| BONK | 11-14 01:00 | 11-14 04:00 | stop_loss | 3 | -1.49 | +| ETC | 11-14 00:00 | 11-14 04:00 | stop_loss | 4 | -1.49 | +| INJ | 11-14 01:00 | 11-14 04:00 | stop_loss | 3 | -1.49 | +| KAS | 11-14 00:00 | 11-14 04:00 | stop_loss | 4 | -1.49 | +| LTC | 11-14 01:00 | 11-14 04:00 | stop_loss | 3 | -1.49 | +| OP | 11-14 03:00 | 11-14 04:00 | stop_loss | 1 | -1.49 | +| SEI | 11-14 02:00 | 11-14 04:00 | stop_loss | 2 | -1.49 | +| SHIB | 11-14 02:00 | 11-14 04:00 | stop_loss | 2 | -1.49 | +| TIA | 11-14 03:00 | 11-14 04:00 | stop_loss | 1 | -1.49 | +| TRX | 11-13 19:00 | 11-14 04:00 | stop_loss | 9 | -1.49 | +| WIF | 11-14 03:00 | 11-14 04:00 | stop_loss | 1 | -1.49 | +| ATOM | 11-14 04:00 | 11-14 05:00 | take_profit | 1 | +1.49 | +| ETC | 11-14 04:00 | 11-14 05:00 | take_profit | 1 | +1.49 | +| FIL | 11-14 04:00 | 11-14 05:00 | stop_loss | 1 | -1.49 | +| INJ | 11-14 04:00 | 11-14 05:00 | take_profit | 1 | +1.49 | +| LTC | 11-14 04:00 | 11-14 06:00 | take_profit | 2 | +1.49 | +| KAS | 11-14 13:00 | 11-14 14:00 | take_profit | 1 | +1.49 | +| PEPE | 11-14 13:00 | 11-14 14:00 | stop_loss | 1 | -1.49 | +| SUI | 11-14 13:00 | 11-14 14:00 | stop_loss | 1 | -1.49 | +| FIL | 11-14 17:00 | 11-14 18:00 | take_profit | 1 | +1.49 | +| UNI | 11-14 17:00 | 11-14 18:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-14 17:00 | 11-14 19:00 | take_profit | 2 | +1.49 | +| FIL | 11-14 20:00 | 11-14 21:00 | take_profit | 1 | +1.49 | +| PEPE | 11-14 20:00 | 11-14 22:00 | stop_loss | 2 | -1.49 | +| WIF | 11-14 22:00 | 11-14 23:00 | stop_loss | 1 | -1.49 | +| INJ | 11-14 23:00 | 11-15 00:00 | trailing_stop | 1 | -0.63 | +| PEPE | 11-14 23:00 | 11-15 00:00 | trailing_stop | 1 | +0.05 | +| TIA | 11-14 23:00 | 11-15 00:00 | trailing_stop | 1 | -0.23 | +| WIF | 11-14 23:00 | 11-15 00:00 | take_profit | 1 | +1.49 | +| APT | 11-15 06:00 | 11-15 07:00 | stop_loss | 1 | -1.49 | +| INJ | 11-15 06:00 | 11-15 07:00 | stop_loss | 1 | -1.49 | +| INJ | 11-15 08:00 | 11-15 12:00 | trailing_stop | 4 | -0.24 | +| NEAR | 11-15 18:00 | 11-15 20:00 | stop_loss | 2 | -1.49 | +| NEAR | 11-15 20:00 | 11-15 21:00 | stop_loss | 1 | -1.49 | +| ATOM | 11-15 20:00 | 11-16 00:00 | stop_loss | 4 | -1.49 | +| NEAR | 11-15 21:00 | 11-16 00:00 | stop_loss | 3 | -1.49 | +| RENDER | 11-15 21:00 | 11-16 00:00 | trailing_stop | 3 | -0.58 | +| TIA | 11-15 21:00 | 11-16 00:00 | stop_loss | 3 | -1.49 | +| BONK | 11-15 20:00 | 11-16 01:00 | stop_loss | 5 | -1.49 | +| ETC | 11-16 01:00 | 11-16 02:00 | trailing_stop | 1 | -0.54 | +| FET | 11-16 02:00 | 11-16 04:00 | stop_loss | 2 | -1.49 | +| NEAR | 11-16 03:00 | 11-16 05:00 | take_profit | 2 | +1.49 | +| FET | 11-16 04:00 | 11-16 06:00 | take_profit | 2 | +1.49 | +| FIL | 11-16 04:00 | 11-16 06:00 | take_profit | 2 | +1.49 | +| LTC | 11-16 04:00 | 11-16 11:00 | stop_loss | 7 | -1.49 | +| ETC | 11-16 11:00 | 11-16 13:00 | stop_loss | 2 | -1.49 | +| RENDER | 11-16 11:00 | 11-16 13:00 | stop_loss | 2 | -1.49 | +| SUI | 11-16 12:00 | 11-16 13:00 | stop_loss | 1 | -1.49 | +| WIF | 11-16 11:00 | 11-16 13:00 | stop_loss | 2 | -1.49 | +| SUI | 11-16 13:00 | 11-16 14:00 | trailing_stop | 1 | -0.61 | +| APT | 11-16 11:00 | 11-16 15:00 | stop_loss | 4 | -1.49 | +| AVAX | 11-16 13:00 | 11-16 15:00 | stop_loss | 2 | -1.49 | +| SEI | 11-16 13:00 | 11-16 15:00 | stop_loss | 2 | -1.49 | +| BONK | 11-16 15:00 | 11-16 16:00 | stop_loss | 1 | -1.49 | +| FET | 11-16 15:00 | 11-16 16:00 | stop_loss | 1 | -1.49 | +| FIL | 11-16 15:00 | 11-16 16:00 | stop_loss | 1 | -1.49 | +| KAS | 11-16 15:00 | 11-16 16:00 | stop_loss | 1 | -1.49 | +| NEAR | 11-16 15:00 | 11-16 16:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-16 15:00 | 11-16 16:00 | stop_loss | 1 | -1.49 | +| SEI | 11-16 15:00 | 11-16 16:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-16 15:00 | 11-16 16:00 | stop_loss | 1 | -1.49 | +| APT | 11-16 16:00 | 11-16 17:00 | stop_loss | 1 | -1.49 | +| ARB | 11-16 16:00 | 11-16 17:00 | stop_loss | 1 | -1.49 | +| ATOM | 11-16 15:00 | 11-16 17:00 | stop_loss | 2 | -1.49 | +| AVAX | 11-16 16:00 | 11-16 17:00 | stop_loss | 1 | -1.49 | +| BONK | 11-16 16:00 | 11-16 17:00 | stop_loss | 1 | -1.49 | +| ETC | 11-16 16:00 | 11-16 17:00 | stop_loss | 1 | -1.49 | +| FET | 11-16 16:00 | 11-16 17:00 | stop_loss | 1 | -1.49 | +| FIL | 11-16 16:00 | 11-16 17:00 | stop_loss | 1 | -1.49 | +| INJ | 11-16 16:00 | 11-16 17:00 | stop_loss | 1 | -1.49 | +| KAS | 11-16 16:00 | 11-16 17:00 | stop_loss | 1 | -1.49 | +| LTC | 11-16 16:00 | 11-16 17:00 | stop_loss | 1 | -1.49 | +| NEAR | 11-16 16:00 | 11-16 17:00 | stop_loss | 1 | -1.49 | +| OP | 11-16 16:00 | 11-16 17:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-16 16:00 | 11-16 17:00 | stop_loss | 1 | -1.49 | +| SEI | 11-16 16:00 | 11-16 17:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-16 16:00 | 11-16 17:00 | stop_loss | 1 | -1.49 | +| SUI | 11-16 15:00 | 11-16 17:00 | stop_loss | 2 | -1.49 | +| TIA | 11-16 16:00 | 11-16 17:00 | stop_loss | 1 | -1.49 | +| WIF | 11-16 16:00 | 11-16 17:00 | stop_loss | 1 | -1.49 | +| APT | 11-16 17:00 | 11-16 18:00 | take_profit | 1 | +1.49 | +| ARB | 11-16 17:00 | 11-16 18:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-16 17:00 | 11-16 18:00 | take_profit | 1 | +1.49 | +| BONK | 11-16 17:00 | 11-16 18:00 | take_profit | 1 | +1.49 | +| FET | 11-16 17:00 | 11-16 18:00 | take_profit | 1 | +1.49 | +| INJ | 11-16 17:00 | 11-16 18:00 | stop_loss | 1 | -1.49 | +| KAS | 11-16 17:00 | 11-16 18:00 | stop_loss | 1 | -1.49 | +| NEAR | 11-16 17:00 | 11-16 18:00 | take_profit | 1 | +1.49 | +| OP | 11-16 17:00 | 11-16 18:00 | take_profit | 1 | +1.49 | +| RENDER | 11-16 16:00 | 11-16 18:00 | take_profit | 2 | +1.49 | +| SEI | 11-16 17:00 | 11-16 18:00 | take_profit | 1 | +1.49 | +| TIA | 11-16 17:00 | 11-16 18:00 | take_profit | 1 | +1.49 | +| WIF | 11-16 17:00 | 11-16 18:00 | stop_loss | 1 | -1.49 | +| APT | 11-16 18:00 | 11-16 19:00 | take_profit | 1 | +1.49 | +| INJ | 11-16 18:00 | 11-16 19:00 | take_profit | 1 | +1.49 | +| KAS | 11-16 18:00 | 11-16 20:00 | take_profit | 2 | +1.49 | +| TIA | 11-16 18:00 | 11-16 21:00 | stop_loss | 3 | -1.49 | +| UNI | 11-16 19:00 | 11-16 21:00 | stop_loss | 2 | -1.49 | +| WIF | 11-16 18:00 | 11-16 21:00 | stop_loss | 3 | -1.49 | +| ARB | 11-16 18:00 | 11-16 22:00 | take_profit | 4 | +1.49 | +| AVAX | 11-16 18:00 | 11-16 22:00 | trailing_stop | 4 | -0.36 | +| ETC | 11-16 17:00 | 11-16 22:00 | take_profit | 5 | +1.49 | +| FIL | 11-16 17:00 | 11-16 22:00 | take_profit | 5 | +1.49 | +| SEI | 11-16 18:00 | 11-16 22:00 | take_profit | 4 | +1.49 | +| SHIB | 11-16 17:00 | 11-16 22:00 | trailing_stop | 5 | -0.17 | +| ATOM | 11-16 17:00 | 11-16 23:00 | stop_loss | 6 | -1.49 | +| LTC | 11-16 17:00 | 11-16 23:00 | stop_loss | 6 | -1.49 | +| APT | 11-16 23:00 | 11-17 00:00 | trailing_stop | 1 | -0.21 | +| ARB | 11-16 23:00 | 11-17 00:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-16 23:00 | 11-17 00:00 | stop_loss | 1 | -1.49 | +| ETC | 11-16 23:00 | 11-17 00:00 | trailing_stop | 1 | -0.49 | +| FIL | 11-16 23:00 | 11-17 00:00 | stop_loss | 1 | -1.49 | +| OP | 11-16 23:00 | 11-17 00:00 | take_profit | 1 | +1.49 | +| PEPE | 11-16 23:00 | 11-17 00:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-16 23:00 | 11-17 00:00 | stop_loss | 1 | -1.49 | +| SUI | 11-16 23:00 | 11-17 00:00 | stop_loss | 1 | -1.49 | +| KAS | 11-17 00:00 | 11-17 01:00 | stop_loss | 1 | -1.49 | +| SEI | 11-17 00:00 | 11-17 01:00 | stop_loss | 1 | -1.49 | +| UNI | 11-17 00:00 | 11-17 01:00 | stop_loss | 1 | -1.49 | +| LTC | 11-17 00:00 | 11-17 02:00 | stop_loss | 2 | -1.49 | +| RENDER | 11-17 00:00 | 11-17 02:00 | stop_loss | 2 | -1.49 | +| UNI | 11-17 01:00 | 11-17 03:00 | take_profit | 2 | +1.49 | +| SUI | 11-17 00:00 | 11-17 04:00 | take_profit | 4 | +1.49 | +| RENDER | 11-17 02:00 | 11-17 06:00 | trailing_stop | 4 | -0.57 | +| SEI | 11-17 01:00 | 11-17 06:00 | confirmed_bearish_exit | 5 | +0.71 | +| TIA | 11-17 00:00 | 11-17 06:00 | confirmed_bearish_exit | 6 | +0.45 | +| ATOM | 11-16 23:00 | 11-17 07:00 | take_profit | 8 | +1.49 | +| SHIB | 11-16 23:00 | 11-17 08:00 | take_profit | 9 | +1.49 | +| INJ | 11-17 00:00 | 11-17 09:00 | take_profit | 9 | +1.49 | +| BONK | 11-17 00:00 | 11-17 10:00 | trailing_stop | 10 | -0.23 | +| LTC | 11-17 02:00 | 11-17 10:00 | stop_loss | 8 | -1.49 | +| NEAR | 11-17 00:00 | 11-17 13:00 | stop_loss | 13 | -1.49 | +| RENDER | 11-17 13:00 | 11-17 14:00 | take_profit | 1 | +1.49 | +| SEI | 11-17 13:00 | 11-17 14:00 | take_profit | 1 | +1.49 | +| TRX | 11-16 16:00 | 11-17 14:00 | trailing_stop | 22 | -0.27 | +| BONK | 11-17 15:00 | 11-17 16:00 | stop_loss | 1 | -1.49 | +| APT | 11-17 17:00 | 11-17 18:00 | stop_loss | 1 | -1.49 | +| ARB | 11-17 17:00 | 11-17 18:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-17 17:00 | 11-17 18:00 | stop_loss | 1 | -1.49 | +| BONK | 11-17 17:00 | 11-17 18:00 | stop_loss | 1 | -1.49 | +| ETC | 11-17 17:00 | 11-17 18:00 | stop_loss | 1 | -1.49 | +| LTC | 11-17 17:00 | 11-17 18:00 | stop_loss | 1 | -1.49 | +| OP | 11-17 17:00 | 11-17 18:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-17 17:00 | 11-17 18:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-17 17:00 | 11-17 18:00 | stop_loss | 1 | -1.49 | +| SEI | 11-17 17:00 | 11-17 18:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-17 17:00 | 11-17 18:00 | stop_loss | 1 | -1.49 | +| TIA | 11-17 17:00 | 11-17 18:00 | stop_loss | 1 | -1.49 | +| WIF | 11-17 17:00 | 11-17 18:00 | stop_loss | 1 | -1.49 | +| APT | 11-17 18:00 | 11-17 19:00 | stop_loss | 1 | -1.49 | +| ARB | 11-17 18:00 | 11-17 19:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-17 18:00 | 11-17 19:00 | stop_loss | 1 | -1.49 | +| ETC | 11-17 18:00 | 11-17 19:00 | stop_loss | 1 | -1.49 | +| INJ | 11-17 18:00 | 11-17 19:00 | stop_loss | 1 | -1.49 | +| LTC | 11-17 18:00 | 11-17 19:00 | stop_loss | 1 | -1.49 | +| OP | 11-17 18:00 | 11-17 19:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-17 18:00 | 11-17 19:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-17 18:00 | 11-17 19:00 | stop_loss | 1 | -1.49 | +| SEI | 11-17 18:00 | 11-17 19:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-17 18:00 | 11-17 19:00 | stop_loss | 1 | -1.49 | +| SUI | 11-17 18:00 | 11-17 19:00 | stop_loss | 1 | -1.49 | +| TIA | 11-17 18:00 | 11-17 19:00 | stop_loss | 1 | -1.49 | +| WIF | 11-17 18:00 | 11-17 19:00 | stop_loss | 1 | -1.49 | +| APT | 11-17 19:00 | 11-17 20:00 | stop_loss | 1 | -1.49 | +| BONK | 11-17 18:00 | 11-17 20:00 | stop_loss | 2 | -1.49 | +| INJ | 11-17 19:00 | 11-17 20:00 | stop_loss | 1 | -1.49 | +| SUI | 11-17 19:00 | 11-17 20:00 | stop_loss | 1 | -1.49 | +| TIA | 11-17 19:00 | 11-17 20:00 | stop_loss | 1 | -1.49 | +| WIF | 11-17 19:00 | 11-17 20:00 | stop_loss | 1 | -1.49 | +| ATOM | 11-17 19:00 | 11-17 21:00 | stop_loss | 2 | -1.49 | +| FET | 11-17 20:00 | 11-17 21:00 | stop_loss | 1 | -1.49 | +| INJ | 11-17 20:00 | 11-17 21:00 | stop_loss | 1 | -1.49 | +| KAS | 11-17 19:00 | 11-17 21:00 | take_profit | 2 | +1.49 | +| LTC | 11-17 19:00 | 11-17 21:00 | stop_loss | 2 | -1.49 | +| SUI | 11-17 20:00 | 11-17 21:00 | stop_loss | 1 | -1.49 | +| TIA | 11-17 20:00 | 11-17 21:00 | stop_loss | 1 | -1.49 | +| WIF | 11-17 20:00 | 11-17 21:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-17 19:00 | 11-17 22:00 | take_profit | 3 | +1.49 | +| UNI | 11-17 21:00 | 11-17 22:00 | stop_loss | 1 | -1.49 | +| APT | 11-17 20:00 | 11-17 23:00 | trailing_stop | 3 | -0.55 | +| NEAR | 11-17 19:00 | 11-17 23:00 | take_profit | 4 | +1.49 | +| OP | 11-17 19:00 | 11-17 23:00 | trailing_stop | 4 | +0.14 | +| ARB | 11-17 19:00 | 11-18 00:00 | trailing_stop | 5 | +0.06 | +| ATOM | 11-17 21:00 | 11-18 00:00 | stop_loss | 3 | -1.49 | +| ETC | 11-17 19:00 | 11-18 00:00 | stop_loss | 5 | -1.49 | +| INJ | 11-17 21:00 | 11-18 00:00 | stop_loss | 3 | -1.49 | +| PEPE | 11-17 19:00 | 11-18 00:00 | stop_loss | 5 | -1.49 | +| SEI | 11-17 19:00 | 11-18 00:00 | stop_loss | 5 | -1.49 | +| SHIB | 11-17 19:00 | 11-18 00:00 | trailing_stop | 5 | -0.54 | +| TIA | 11-17 21:00 | 11-18 00:00 | stop_loss | 3 | -1.49 | +| ARB | 11-18 01:00 | 11-18 02:00 | stop_loss | 1 | -1.49 | +| BONK | 11-18 01:00 | 11-18 02:00 | stop_loss | 1 | -1.49 | +| KAS | 11-18 00:00 | 11-18 02:00 | stop_loss | 2 | -1.49 | +| OP | 11-18 01:00 | 11-18 02:00 | stop_loss | 1 | -1.49 | +| UNI | 11-18 01:00 | 11-18 02:00 | stop_loss | 1 | -1.49 | +| APT | 11-18 02:00 | 11-18 03:00 | take_profit | 1 | +1.49 | +| ARB | 11-18 02:00 | 11-18 03:00 | stop_loss | 1 | -1.49 | +| ATOM | 11-18 02:00 | 11-18 03:00 | trailing_stop | 1 | -0.55 | +| INJ | 11-18 02:00 | 11-18 03:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-18 02:00 | 11-18 03:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-18 02:00 | 11-18 03:00 | trailing_stop | 1 | -0.19 | +| SUI | 11-18 02:00 | 11-18 03:00 | stop_loss | 1 | -1.49 | +| UNI | 11-18 02:00 | 11-18 03:00 | stop_loss | 1 | -1.49 | +| ETC | 11-18 02:00 | 11-18 04:00 | trailing_stop | 2 | -0.32 | +| UNI | 11-18 04:00 | 11-18 05:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-18 04:00 | 11-18 06:00 | stop_loss | 2 | -1.49 | +| SEI | 11-18 04:00 | 11-18 06:00 | stop_loss | 2 | -1.49 | +| TRX | 11-17 19:00 | 11-18 06:00 | stop_loss | 11 | -1.49 | +| UNI | 11-18 05:00 | 11-18 06:00 | stop_loss | 1 | -1.49 | +| ATOM | 11-18 06:00 | 11-18 07:00 | trailing_stop | 1 | -0.57 | +| FET | 11-18 06:00 | 11-18 07:00 | take_profit | 1 | +1.49 | +| AVAX | 11-18 06:00 | 11-18 08:00 | take_profit | 2 | +1.49 | +| BONK | 11-18 06:00 | 11-18 08:00 | take_profit | 2 | +1.49 | +| INJ | 11-18 06:00 | 11-18 08:00 | take_profit | 2 | +1.49 | +| PEPE | 11-18 06:00 | 11-18 08:00 | take_profit | 2 | +1.49 | +| RENDER | 11-18 06:00 | 11-18 08:00 | take_profit | 2 | +1.49 | +| SEI | 11-18 06:00 | 11-18 08:00 | take_profit | 2 | +1.49 | +| SUI | 11-18 06:00 | 11-18 08:00 | take_profit | 2 | +1.49 | +| ETC | 11-18 06:00 | 11-18 12:00 | trailing_stop | 6 | +0.09 | +| SHIB | 11-18 06:00 | 11-18 13:00 | trailing_stop | 7 | -0.15 | +| FIL | 11-18 18:00 | 11-18 19:00 | stop_loss | 1 | -1.49 | +| FIL | 11-18 19:00 | 11-18 21:00 | stop_loss | 2 | -1.49 | +| TIA | 11-18 21:00 | 11-19 00:00 | stop_loss | 3 | -1.49 | +| TRX | 11-18 06:00 | 11-19 00:00 | trailing_stop | 18 | -0.02 | +| AVAX | 11-19 04:00 | 11-19 05:00 | stop_loss | 1 | -1.49 | +| LTC | 11-19 04:00 | 11-19 05:00 | stop_loss | 1 | -1.49 | +| TIA | 11-19 03:00 | 11-19 05:00 | stop_loss | 2 | -1.49 | +| ARB | 11-19 05:00 | 11-19 06:00 | trailing_stop | 1 | -0.71 | +| AVAX | 11-19 05:00 | 11-19 06:00 | trailing_stop | 1 | -0.57 | +| FIL | 11-19 05:00 | 11-19 06:00 | stop_loss | 1 | -1.49 | +| KAS | 11-19 05:00 | 11-19 06:00 | take_profit | 1 | +1.49 | +| SEI | 11-19 05:00 | 11-19 06:00 | trailing_stop | 1 | -0.42 | +| ATOM | 11-19 05:00 | 11-19 07:00 | take_profit | 2 | +1.49 | +| BONK | 11-19 05:00 | 11-19 07:00 | take_profit | 2 | +1.49 | +| ETC | 11-19 05:00 | 11-19 07:00 | take_profit | 2 | +1.49 | +| FET | 11-19 06:00 | 11-19 07:00 | take_profit | 1 | +1.49 | +| FIL | 11-19 06:00 | 11-19 07:00 | trailing_stop | 1 | -0.14 | +| LTC | 11-19 05:00 | 11-19 07:00 | take_profit | 2 | +1.49 | +| OP | 11-19 05:00 | 11-19 07:00 | take_profit | 2 | +1.49 | +| SUI | 11-19 05:00 | 11-19 07:00 | take_profit | 2 | +1.49 | +| TIA | 11-19 05:00 | 11-19 07:00 | take_profit | 2 | +1.49 | +| UNI | 11-19 05:00 | 11-19 07:00 | trailing_stop | 2 | -0.04 | +| PEPE | 11-19 05:00 | 11-19 08:00 | take_profit | 3 | +1.49 | +| NEAR | 11-19 06:00 | 11-19 09:00 | take_profit | 3 | +1.49 | +| APT | 11-19 05:00 | 11-19 10:00 | take_profit | 5 | +1.49 | +| ARB | 11-19 06:00 | 11-19 13:00 | trailing_stop | 7 | -0.13 | +| FIL | 11-19 12:00 | 11-19 13:00 | stop_loss | 1 | -1.49 | +| KAS | 11-19 06:00 | 11-19 13:00 | trailing_stop | 7 | -0.25 | +| UNI | 11-19 12:00 | 11-19 13:00 | stop_loss | 1 | -1.49 | +| FIL | 11-19 13:00 | 11-19 14:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-19 05:00 | 11-19 14:00 | trailing_stop | 9 | -0.39 | +| WIF | 11-19 13:00 | 11-19 14:00 | stop_loss | 1 | -1.49 | +| FIL | 11-19 14:00 | 11-19 15:00 | stop_loss | 1 | -1.49 | +| UNI | 11-19 14:00 | 11-19 15:00 | stop_loss | 1 | -1.49 | +| WIF | 11-19 14:00 | 11-19 15:00 | stop_loss | 1 | -1.49 | +| APT | 11-19 15:00 | 11-19 16:00 | stop_loss | 1 | -1.49 | +| ARB | 11-19 15:00 | 11-19 16:00 | stop_loss | 1 | -1.49 | +| BONK | 11-19 15:00 | 11-19 16:00 | stop_loss | 1 | -1.49 | +| LTC | 11-19 15:00 | 11-19 16:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-19 15:00 | 11-19 16:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-19 15:00 | 11-19 16:00 | stop_loss | 1 | -1.49 | +| SEI | 11-19 15:00 | 11-19 16:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-19 15:00 | 11-19 16:00 | stop_loss | 1 | -1.49 | +| SUI | 11-19 15:00 | 11-19 16:00 | stop_loss | 1 | -1.49 | +| TIA | 11-19 15:00 | 11-19 16:00 | stop_loss | 1 | -1.49 | +| WIF | 11-19 15:00 | 11-19 16:00 | stop_loss | 1 | -1.49 | +| APT | 11-19 16:00 | 11-19 17:00 | stop_loss | 1 | -1.49 | +| ARB | 11-19 16:00 | 11-19 17:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-19 16:00 | 11-19 17:00 | stop_loss | 1 | -1.49 | +| BONK | 11-19 16:00 | 11-19 17:00 | stop_loss | 1 | -1.49 | +| ETC | 11-19 16:00 | 11-19 17:00 | stop_loss | 1 | -1.49 | +| KAS | 11-19 16:00 | 11-19 17:00 | stop_loss | 1 | -1.49 | +| LTC | 11-19 16:00 | 11-19 17:00 | stop_loss | 1 | -1.49 | +| OP | 11-19 16:00 | 11-19 17:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-19 16:00 | 11-19 17:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-19 16:00 | 11-19 17:00 | stop_loss | 1 | -1.49 | +| SEI | 11-19 16:00 | 11-19 17:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-19 16:00 | 11-19 17:00 | stop_loss | 1 | -1.49 | +| SUI | 11-19 16:00 | 11-19 17:00 | stop_loss | 1 | -1.49 | +| TIA | 11-19 16:00 | 11-19 17:00 | stop_loss | 1 | -1.49 | +| UNI | 11-19 15:00 | 11-19 17:00 | take_profit | 2 | +1.49 | +| WIF | 11-19 16:00 | 11-19 17:00 | stop_loss | 1 | -1.49 | +| APT | 11-19 17:00 | 11-19 18:00 | stop_loss | 1 | -1.49 | +| ARB | 11-19 17:00 | 11-19 18:00 | stop_loss | 1 | -1.49 | +| BONK | 11-19 17:00 | 11-19 18:00 | stop_loss | 1 | -1.49 | +| ETC | 11-19 17:00 | 11-19 18:00 | stop_loss | 1 | -1.49 | +| INJ | 11-19 17:00 | 11-19 18:00 | stop_loss | 1 | -1.49 | +| LTC | 11-19 17:00 | 11-19 18:00 | stop_loss | 1 | -1.49 | +| OP | 11-19 17:00 | 11-19 18:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-19 17:00 | 11-19 18:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-19 17:00 | 11-19 18:00 | stop_loss | 1 | -1.49 | +| SEI | 11-19 17:00 | 11-19 18:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-19 17:00 | 11-19 18:00 | stop_loss | 1 | -1.49 | +| SUI | 11-19 17:00 | 11-19 18:00 | stop_loss | 1 | -1.49 | +| WIF | 11-19 17:00 | 11-19 18:00 | stop_loss | 1 | -1.49 | +| ARB | 11-19 18:00 | 11-19 19:00 | stop_loss | 1 | -1.49 | +| SUI | 11-19 18:00 | 11-19 19:00 | stop_loss | 1 | -1.49 | +| TIA | 11-19 18:00 | 11-19 19:00 | stop_loss | 1 | -1.49 | +| APT | 11-19 18:00 | 11-19 20:00 | trailing_stop | 2 | -0.14 | +| ARB | 11-19 19:00 | 11-19 20:00 | take_profit | 1 | +1.49 | +| BONK | 11-19 18:00 | 11-19 20:00 | trailing_stop | 2 | -0.25 | +| ETC | 11-19 18:00 | 11-19 20:00 | take_profit | 2 | +1.49 | +| LTC | 11-19 18:00 | 11-19 20:00 | trailing_stop | 2 | -0.03 | +| OP | 11-19 18:00 | 11-19 20:00 | take_profit | 2 | +1.49 | +| PEPE | 11-19 18:00 | 11-19 20:00 | take_profit | 2 | +1.49 | +| RENDER | 11-19 18:00 | 11-19 20:00 | take_profit | 2 | +1.49 | +| SEI | 11-19 18:00 | 11-19 20:00 | trailing_stop | 2 | -0.02 | +| SUI | 11-19 19:00 | 11-19 20:00 | take_profit | 1 | +1.49 | +| WIF | 11-19 18:00 | 11-19 20:00 | trailing_stop | 2 | -0.47 | +| SHIB | 11-19 18:00 | 11-19 21:00 | take_profit | 3 | +1.49 | +| SUI | 11-19 22:00 | 11-19 23:00 | trailing_stop | 1 | -0.13 | +| UNI | 11-19 22:00 | 11-19 23:00 | take_profit | 1 | +1.49 | +| WIF | 11-19 22:00 | 11-19 23:00 | take_profit | 1 | +1.49 | +| TRX | 11-19 05:00 | 11-20 14:00 | stop_loss | 33 | -1.49 | +| LTC | 11-20 15:00 | 11-20 16:00 | stop_loss | 1 | -1.49 | +| NEAR | 11-20 15:00 | 11-20 16:00 | stop_loss | 1 | -1.49 | +| TRX | 11-20 14:00 | 11-20 16:00 | stop_loss | 2 | -1.49 | +| UNI | 11-20 15:00 | 11-20 16:00 | stop_loss | 1 | -1.49 | +| ARB | 11-20 16:00 | 11-20 17:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-20 16:00 | 11-20 17:00 | stop_loss | 1 | -1.49 | +| BONK | 11-20 16:00 | 11-20 17:00 | stop_loss | 1 | -1.49 | +| ETC | 11-20 16:00 | 11-20 17:00 | stop_loss | 1 | -1.49 | +| FET | 11-20 16:00 | 11-20 17:00 | stop_loss | 1 | -1.49 | +| FIL | 11-20 16:00 | 11-20 17:00 | stop_loss | 1 | -1.49 | +| INJ | 11-20 16:00 | 11-20 17:00 | stop_loss | 1 | -1.49 | +| KAS | 11-20 16:00 | 11-20 17:00 | stop_loss | 1 | -1.49 | +| LTC | 11-20 16:00 | 11-20 17:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-20 16:00 | 11-20 17:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-20 16:00 | 11-20 17:00 | stop_loss | 1 | -1.49 | +| SEI | 11-20 16:00 | 11-20 17:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-20 16:00 | 11-20 17:00 | stop_loss | 1 | -1.49 | +| SUI | 11-20 16:00 | 11-20 17:00 | stop_loss | 1 | -1.49 | +| TIA | 11-20 16:00 | 11-20 17:00 | stop_loss | 1 | -1.49 | +| UNI | 11-20 16:00 | 11-20 17:00 | stop_loss | 1 | -1.49 | +| APT | 11-20 17:00 | 11-20 18:00 | stop_loss | 1 | -1.49 | +| ARB | 11-20 17:00 | 11-20 18:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-20 17:00 | 11-20 18:00 | stop_loss | 1 | -1.49 | +| BONK | 11-20 17:00 | 11-20 18:00 | stop_loss | 1 | -1.49 | +| INJ | 11-20 17:00 | 11-20 18:00 | stop_loss | 1 | -1.49 | +| NEAR | 11-20 16:00 | 11-20 18:00 | stop_loss | 2 | -1.49 | +| OP | 11-20 17:00 | 11-20 18:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-20 17:00 | 11-20 18:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-20 17:00 | 11-20 18:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-20 17:00 | 11-20 18:00 | stop_loss | 1 | -1.49 | +| TIA | 11-20 17:00 | 11-20 18:00 | stop_loss | 1 | -1.49 | +| UNI | 11-20 17:00 | 11-20 18:00 | stop_loss | 1 | -1.49 | +| WIF | 11-20 17:00 | 11-20 18:00 | stop_loss | 1 | -1.49 | +| ARB | 11-20 18:00 | 11-20 19:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-20 18:00 | 11-20 19:00 | trailing_stop | 1 | -0.58 | +| BONK | 11-20 18:00 | 11-20 19:00 | take_profit | 1 | +1.49 | +| ETC | 11-20 17:00 | 11-20 19:00 | stop_loss | 2 | -1.49 | +| FET | 11-20 17:00 | 11-20 19:00 | take_profit | 2 | +1.49 | +| FIL | 11-20 17:00 | 11-20 19:00 | stop_loss | 2 | -1.49 | +| INJ | 11-20 18:00 | 11-20 19:00 | stop_loss | 1 | -1.49 | +| KAS | 11-20 17:00 | 11-20 19:00 | stop_loss | 2 | -1.49 | +| LTC | 11-20 17:00 | 11-20 19:00 | stop_loss | 2 | -1.49 | +| OP | 11-20 18:00 | 11-20 19:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-20 18:00 | 11-20 19:00 | trailing_stop | 1 | -0.42 | +| RENDER | 11-20 18:00 | 11-20 19:00 | stop_loss | 1 | -1.49 | +| SEI | 11-20 17:00 | 11-20 19:00 | stop_loss | 2 | -1.49 | +| SHIB | 11-20 18:00 | 11-20 19:00 | trailing_stop | 1 | -0.24 | +| SUI | 11-20 17:00 | 11-20 19:00 | stop_loss | 2 | -1.49 | +| UNI | 11-20 18:00 | 11-20 19:00 | stop_loss | 1 | -1.49 | +| WIF | 11-20 18:00 | 11-20 19:00 | take_profit | 1 | +1.49 | +| BONK | 11-20 19:00 | 11-20 20:00 | stop_loss | 1 | -1.49 | +| INJ | 11-20 19:00 | 11-20 20:00 | stop_loss | 1 | -1.49 | +| NEAR | 11-20 18:00 | 11-20 20:00 | stop_loss | 2 | -1.49 | +| PEPE | 11-20 19:00 | 11-20 20:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-20 19:00 | 11-20 20:00 | stop_loss | 1 | -1.49 | +| APT | 11-20 18:00 | 11-20 21:00 | trailing_stop | 3 | -0.63 | +| ARB | 11-20 19:00 | 11-20 21:00 | take_profit | 2 | +1.49 | +| INJ | 11-20 20:00 | 11-20 21:00 | take_profit | 1 | +1.49 | +| OP | 11-20 20:00 | 11-20 21:00 | take_profit | 1 | +1.49 | +| PEPE | 11-20 20:00 | 11-20 21:00 | take_profit | 1 | +1.49 | +| SEI | 11-20 19:00 | 11-20 21:00 | take_profit | 2 | +1.49 | +| SUI | 11-20 19:00 | 11-20 21:00 | take_profit | 2 | +1.49 | +| TIA | 11-20 18:00 | 11-20 21:00 | take_profit | 3 | +1.49 | +| WIF | 11-20 20:00 | 11-20 21:00 | take_profit | 1 | +1.49 | +| UNI | 11-20 19:00 | 11-20 22:00 | take_profit | 3 | +1.49 | +| ATOM | 11-20 21:00 | 11-20 23:00 | stop_loss | 2 | -1.49 | +| LTC | 11-21 00:00 | 11-21 02:00 | stop_loss | 2 | -1.49 | +| SEI | 11-21 01:00 | 11-21 02:00 | stop_loss | 1 | -1.49 | +| BONK | 11-21 02:00 | 11-21 03:00 | take_profit | 1 | +1.49 | +| TIA | 11-21 02:00 | 11-21 03:00 | take_profit | 1 | +1.49 | +| AVAX | 11-21 02:00 | 11-21 04:00 | stop_loss | 2 | -1.49 | +| UNI | 11-21 02:00 | 11-21 06:00 | stop_loss | 4 | -1.49 | +| LTC | 11-21 02:00 | 11-21 07:00 | stop_loss | 5 | -1.49 | +| TRX | 11-20 16:00 | 11-21 07:00 | stop_loss | 15 | -1.49 | +| ATOM | 11-21 07:00 | 11-21 08:00 | take_profit | 1 | +1.49 | +| AVAX | 11-21 07:00 | 11-21 08:00 | trailing_stop | 1 | -0.58 | +| FET | 11-21 07:00 | 11-21 08:00 | take_profit | 1 | +1.49 | +| RENDER | 11-21 07:00 | 11-21 08:00 | take_profit | 1 | +1.49 | +| SUI | 11-21 07:00 | 11-21 08:00 | stop_loss | 1 | -1.49 | +| APT | 11-21 07:00 | 11-21 09:00 | stop_loss | 2 | -1.49 | +| FIL | 11-21 07:00 | 11-21 09:00 | stop_loss | 2 | -1.49 | +| INJ | 11-21 07:00 | 11-21 09:00 | stop_loss | 2 | -1.49 | +| OP | 11-21 07:00 | 11-21 09:00 | stop_loss | 2 | -1.49 | +| SEI | 11-21 07:00 | 11-21 09:00 | stop_loss | 2 | -1.49 | +| SUI | 11-21 08:00 | 11-21 09:00 | stop_loss | 1 | -1.49 | +| ARB | 11-21 07:00 | 11-21 10:00 | stop_loss | 3 | -1.49 | +| UNI | 11-21 07:00 | 11-21 10:00 | stop_loss | 3 | -1.49 | +| APT | 11-21 09:00 | 11-21 11:00 | stop_loss | 2 | -1.49 | +| AVAX | 11-21 09:00 | 11-21 11:00 | stop_loss | 2 | -1.49 | +| FIL | 11-21 09:00 | 11-21 11:00 | stop_loss | 2 | -1.49 | +| INJ | 11-21 09:00 | 11-21 11:00 | stop_loss | 2 | -1.49 | +| KAS | 11-21 09:00 | 11-21 11:00 | stop_loss | 2 | -1.49 | +| LTC | 11-21 09:00 | 11-21 11:00 | stop_loss | 2 | -1.49 | +| OP | 11-21 09:00 | 11-21 11:00 | stop_loss | 2 | -1.49 | +| RENDER | 11-21 09:00 | 11-21 11:00 | stop_loss | 2 | -1.49 | +| SHIB | 11-21 09:00 | 11-21 11:00 | stop_loss | 2 | -1.49 | +| SUI | 11-21 09:00 | 11-21 11:00 | stop_loss | 2 | -1.49 | +| WIF | 11-21 09:00 | 11-21 11:00 | stop_loss | 2 | -1.49 | +| ARB | 11-21 11:00 | 11-21 12:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-21 11:00 | 11-21 12:00 | stop_loss | 1 | -1.49 | +| BONK | 11-21 11:00 | 11-21 12:00 | stop_loss | 1 | -1.49 | +| ETC | 11-21 09:00 | 11-21 12:00 | stop_loss | 3 | -1.49 | +| FIL | 11-21 11:00 | 11-21 12:00 | stop_loss | 1 | -1.49 | +| KAS | 11-21 11:00 | 11-21 12:00 | stop_loss | 1 | -1.49 | +| LTC | 11-21 11:00 | 11-21 12:00 | stop_loss | 1 | -1.49 | +| OP | 11-21 11:00 | 11-21 12:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-21 11:00 | 11-21 12:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-21 11:00 | 11-21 12:00 | stop_loss | 1 | -1.49 | +| SEI | 11-21 09:00 | 11-21 12:00 | stop_loss | 3 | -1.49 | +| SHIB | 11-21 11:00 | 11-21 12:00 | stop_loss | 1 | -1.49 | +| SUI | 11-21 11:00 | 11-21 12:00 | stop_loss | 1 | -1.49 | +| UNI | 11-21 11:00 | 11-21 12:00 | stop_loss | 1 | -1.49 | +| WIF | 11-21 11:00 | 11-21 12:00 | stop_loss | 1 | -1.49 | +| ARB | 11-21 15:00 | 11-21 16:00 | stop_loss | 1 | -1.49 | +| BONK | 11-21 15:00 | 11-21 16:00 | stop_loss | 1 | -1.49 | +| FIL | 11-21 15:00 | 11-21 16:00 | stop_loss | 1 | -1.49 | +| INJ | 11-21 15:00 | 11-21 16:00 | stop_loss | 1 | -1.49 | +| KAS | 11-21 15:00 | 11-21 16:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-21 15:00 | 11-21 16:00 | stop_loss | 1 | -1.49 | +| SUI | 11-21 15:00 | 11-21 16:00 | stop_loss | 1 | -1.49 | +| TIA | 11-21 15:00 | 11-21 16:00 | stop_loss | 1 | -1.49 | +| UNI | 11-21 15:00 | 11-21 16:00 | take_profit | 1 | +1.49 | +| FIL | 11-21 17:00 | 11-21 18:00 | stop_loss | 1 | -1.49 | +| INJ | 11-21 17:00 | 11-21 18:00 | stop_loss | 1 | -1.49 | +| TIA | 11-21 17:00 | 11-21 18:00 | stop_loss | 1 | -1.49 | +| APT | 11-21 18:00 | 11-21 19:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-21 18:00 | 11-21 19:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-21 18:00 | 11-21 19:00 | stop_loss | 1 | -1.49 | +| SUI | 11-21 18:00 | 11-21 19:00 | stop_loss | 1 | -1.49 | +| ATOM | 11-21 19:00 | 11-21 20:00 | stop_loss | 1 | -1.49 | +| LTC | 11-21 18:00 | 11-21 20:00 | stop_loss | 2 | -1.49 | +| PEPE | 11-21 19:00 | 11-21 20:00 | stop_loss | 1 | -1.49 | +| SUI | 11-21 19:00 | 11-21 20:00 | stop_loss | 1 | -1.49 | +| SUI | 11-21 20:00 | 11-21 21:00 | trailing_stop | 1 | -0.41 | +| TIA | 11-22 04:00 | 11-22 05:00 | stop_loss | 1 | -1.49 | +| WIF | 11-22 04:00 | 11-22 05:00 | stop_loss | 1 | -1.49 | +| APT | 11-22 05:00 | 11-22 06:00 | trailing_stop | 1 | -0.14 | +| OP | 11-22 05:00 | 11-22 06:00 | take_profit | 1 | +1.49 | +| UNI | 11-22 08:00 | 11-22 10:00 | stop_loss | 2 | -1.49 | +| UNI | 11-22 10:00 | 11-22 12:00 | stop_loss | 2 | -1.49 | +| AVAX | 11-22 12:00 | 11-22 13:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-22 13:00 | 11-22 14:00 | trailing_stop | 1 | -0.45 | +| TRX | 11-21 07:00 | 11-22 15:00 | stop_loss | 32 | -1.49 | +| AVAX | 11-22 13:00 | 11-22 22:00 | take_profit | 9 | +1.49 | +| NEAR | 11-23 16:00 | 11-23 17:00 | stop_loss | 1 | -1.49 | +| UNI | 11-23 17:00 | 11-23 18:00 | take_profit | 1 | +1.49 | +| FIL | 11-23 17:00 | 11-23 19:00 | take_profit | 2 | +1.49 | +| NEAR | 11-23 17:00 | 11-23 19:00 | take_profit | 2 | +1.49 | +| FIL | 11-23 19:00 | 11-23 23:00 | stop_loss | 4 | -1.49 | +| FET | 11-23 23:00 | 11-24 00:00 | stop_loss | 1 | -1.49 | +| ATOM | 11-23 23:00 | 11-24 02:00 | trailing_stop | 3 | -0.39 | +| AVAX | 11-24 00:00 | 11-24 02:00 | take_profit | 2 | +1.49 | +| ETC | 11-23 23:00 | 11-24 02:00 | take_profit | 3 | +1.49 | +| OP | 11-23 23:00 | 11-24 02:00 | take_profit | 3 | +1.49 | +| SHIB | 11-23 23:00 | 11-24 02:00 | take_profit | 3 | +1.49 | +| APT | 11-24 09:00 | 11-24 12:00 | take_profit | 3 | +1.49 | +| ATOM | 11-24 09:00 | 11-24 14:00 | stop_loss | 5 | -1.49 | +| ETC | 11-24 12:00 | 11-24 14:00 | trailing_stop | 2 | -0.62 | +| SEI | 11-24 12:00 | 11-24 15:00 | take_profit | 3 | +1.49 | +| APT | 11-24 16:00 | 11-24 17:00 | take_profit | 1 | +1.49 | +| TRX | 11-24 21:00 | 11-25 02:00 | stop_loss | 5 | -1.49 | +| NEAR | 11-25 06:00 | 11-25 07:00 | stop_loss | 1 | -1.49 | +| FET | 11-25 07:00 | 11-25 09:00 | stop_loss | 2 | -1.49 | +| FIL | 11-25 07:00 | 11-25 09:00 | stop_loss | 2 | -1.49 | +| RENDER | 11-25 07:00 | 11-25 09:00 | trailing_stop | 2 | -0.47 | +| SEI | 11-25 07:00 | 11-25 09:00 | stop_loss | 2 | -1.49 | +| TIA | 11-25 07:00 | 11-25 09:00 | stop_loss | 2 | -1.49 | +| INJ | 11-25 08:00 | 11-25 10:00 | trailing_stop | 2 | -0.30 | +| OP | 11-25 07:00 | 11-25 12:00 | take_profit | 5 | +1.49 | +| WIF | 11-25 10:00 | 11-25 12:00 | stop_loss | 2 | -1.49 | +| APT | 11-25 07:00 | 11-25 13:00 | stop_loss | 6 | -1.49 | +| PEPE | 11-25 10:00 | 11-25 13:00 | stop_loss | 3 | -1.49 | +| RENDER | 11-25 10:00 | 11-25 13:00 | stop_loss | 3 | -1.49 | +| UNI | 11-25 08:00 | 11-25 13:00 | stop_loss | 5 | -1.49 | +| WIF | 11-25 12:00 | 11-25 13:00 | stop_loss | 1 | -1.49 | +| ARB | 11-25 08:00 | 11-25 14:00 | stop_loss | 6 | -1.49 | +| ATOM | 11-25 11:00 | 11-25 14:00 | stop_loss | 3 | -1.49 | +| BONK | 11-25 13:00 | 11-25 14:00 | stop_loss | 1 | -1.49 | +| ETC | 11-25 07:00 | 11-25 14:00 | stop_loss | 7 | -1.49 | +| FET | 11-25 13:00 | 11-25 14:00 | stop_loss | 1 | -1.49 | +| INJ | 11-25 10:00 | 11-25 14:00 | stop_loss | 4 | -1.49 | +| LTC | 11-25 07:00 | 11-25 14:00 | stop_loss | 7 | -1.49 | +| NEAR | 11-25 07:00 | 11-25 14:00 | stop_loss | 7 | -1.49 | +| PEPE | 11-25 13:00 | 11-25 14:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-25 07:00 | 11-25 14:00 | stop_loss | 7 | -1.49 | +| SUI | 11-25 13:00 | 11-25 14:00 | stop_loss | 1 | -1.49 | +| TIA | 11-25 09:00 | 11-25 14:00 | stop_loss | 5 | -1.49 | +| UNI | 11-25 13:00 | 11-25 14:00 | stop_loss | 1 | -1.49 | +| ATOM | 11-25 14:00 | 11-25 15:00 | stop_loss | 1 | -1.49 | +| BONK | 11-25 14:00 | 11-25 15:00 | stop_loss | 1 | -1.49 | +| FET | 11-25 14:00 | 11-25 15:00 | trailing_stop | 1 | -0.43 | +| SUI | 11-25 14:00 | 11-25 15:00 | stop_loss | 1 | -1.49 | +| UNI | 11-25 14:00 | 11-25 15:00 | stop_loss | 1 | -1.49 | +| WIF | 11-25 14:00 | 11-25 15:00 | stop_loss | 1 | -1.49 | +| UNI | 11-25 15:00 | 11-25 16:00 | take_profit | 1 | +1.49 | +| BONK | 11-25 15:00 | 11-25 17:00 | take_profit | 2 | +1.49 | +| APT | 11-25 18:00 | 11-25 19:00 | stop_loss | 1 | -1.49 | +| ATOM | 11-25 15:00 | 11-25 19:00 | stop_loss | 4 | -1.49 | +| BONK | 11-25 18:00 | 11-25 19:00 | stop_loss | 1 | -1.49 | +| SUI | 11-25 15:00 | 11-25 19:00 | stop_loss | 4 | -1.49 | +| TIA | 11-25 18:00 | 11-25 19:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-25 14:00 | 11-25 20:00 | take_profit | 6 | +1.49 | +| TIA | 11-25 19:00 | 11-25 20:00 | trailing_stop | 1 | -0.52 | +| APT | 11-25 19:00 | 11-25 22:00 | take_profit | 3 | +1.49 | +| BONK | 11-25 19:00 | 11-25 22:00 | stop_loss | 3 | -1.49 | +| FIL | 11-26 08:00 | 11-26 11:00 | stop_loss | 3 | -1.49 | +| TIA | 11-26 09:00 | 11-26 12:00 | stop_loss | 3 | -1.49 | +| INJ | 11-26 12:00 | 11-26 13:00 | trailing_stop | 1 | +0.11 | +| SEI | 11-26 12:00 | 11-26 13:00 | trailing_stop | 1 | -0.59 | +| TIA | 11-26 12:00 | 11-26 13:00 | trailing_stop | 1 | -0.34 | +| APT | 11-26 12:00 | 11-26 14:00 | stop_loss | 2 | -1.49 | +| SHIB | 11-26 12:00 | 11-26 14:00 | stop_loss | 2 | -1.49 | +| SUI | 11-26 13:00 | 11-26 14:00 | stop_loss | 1 | -1.49 | +| UNI | 11-26 12:00 | 11-26 14:00 | trailing_stop | 2 | -0.64 | +| WIF | 11-26 12:00 | 11-26 14:00 | take_profit | 2 | +1.49 | +| APT | 11-26 14:00 | 11-26 15:00 | stop_loss | 1 | -1.49 | +| BONK | 11-26 12:00 | 11-26 15:00 | stop_loss | 3 | -1.49 | +| FET | 11-26 12:00 | 11-26 15:00 | stop_loss | 3 | -1.49 | +| LTC | 11-26 11:00 | 11-26 15:00 | stop_loss | 4 | -1.49 | +| RENDER | 11-26 12:00 | 11-26 15:00 | stop_loss | 3 | -1.49 | +| APT | 11-26 15:00 | 11-26 16:00 | take_profit | 1 | +1.49 | +| ETC | 11-26 11:00 | 11-26 16:00 | stop_loss | 5 | -1.49 | +| FET | 11-26 15:00 | 11-26 16:00 | take_profit | 1 | +1.49 | +| PEPE | 11-26 12:00 | 11-26 16:00 | take_profit | 4 | +1.49 | +| UNI | 11-26 14:00 | 11-26 16:00 | take_profit | 2 | +1.49 | +| WIF | 11-26 14:00 | 11-26 16:00 | take_profit | 2 | +1.49 | +| ARB | 11-26 14:00 | 11-26 17:00 | take_profit | 3 | +1.49 | +| NEAR | 11-26 15:00 | 11-26 17:00 | take_profit | 2 | +1.49 | +| OP | 11-26 14:00 | 11-26 17:00 | take_profit | 3 | +1.49 | +| RENDER | 11-26 15:00 | 11-26 17:00 | take_profit | 2 | +1.49 | +| SHIB | 11-26 14:00 | 11-26 17:00 | take_profit | 3 | +1.49 | +| TIA | 11-26 14:00 | 11-26 17:00 | take_profit | 3 | +1.49 | +| RENDER | 11-27 09:00 | 11-27 11:00 | stop_loss | 2 | -1.49 | +| FIL | 11-27 07:00 | 11-27 12:00 | stop_loss | 5 | -1.49 | +| UNI | 11-27 08:00 | 11-27 12:00 | stop_loss | 4 | -1.49 | +| SEI | 11-27 12:00 | 11-27 15:00 | take_profit | 3 | +1.49 | +| WIF | 11-27 11:00 | 11-27 15:00 | take_profit | 4 | +1.49 | +| FIL | 11-27 12:00 | 11-27 16:00 | take_profit | 4 | +1.49 | +| NEAR | 11-27 12:00 | 11-27 16:00 | take_profit | 4 | +1.49 | +| RENDER | 11-27 11:00 | 11-27 16:00 | take_profit | 5 | +1.49 | +| TRX | 11-25 02:00 | 11-27 16:00 | take_profit | 62 | +1.49 | +| UNI | 11-27 12:00 | 11-27 16:00 | take_profit | 4 | +1.49 | +| BONK | 11-27 11:00 | 11-27 17:00 | take_profit | 6 | +1.49 | +| PEPE | 11-27 11:00 | 11-27 18:00 | take_profit | 7 | +1.49 | +| ATOM | 11-27 08:00 | 11-27 22:00 | trailing_stop | 14 | -0.32 | +| KAS | 11-27 22:00 | 11-27 23:00 | stop_loss | 1 | -1.49 | +| KAS | 11-27 23:00 | 11-28 00:00 | stop_loss | 1 | -1.49 | +| ETC | 11-27 11:00 | 11-28 01:00 | stop_loss | 14 | -1.49 | +| FET | 11-27 23:00 | 11-28 01:00 | stop_loss | 2 | -1.49 | +| FIL | 11-27 23:00 | 11-28 01:00 | stop_loss | 2 | -1.49 | +| KAS | 11-28 00:00 | 11-28 01:00 | stop_loss | 1 | -1.49 | +| FIL | 11-28 01:00 | 11-28 02:00 | stop_loss | 1 | -1.49 | +| KAS | 11-28 01:00 | 11-28 02:00 | stop_loss | 1 | -1.49 | +| APT | 11-28 01:00 | 11-28 04:00 | stop_loss | 3 | -1.49 | +| KAS | 11-28 03:00 | 11-28 06:00 | stop_loss | 3 | -1.49 | +| APT | 11-28 04:00 | 11-28 08:00 | take_profit | 4 | +1.49 | +| ARB | 11-28 06:00 | 11-28 08:00 | take_profit | 2 | +1.49 | +| ATOM | 11-28 01:00 | 11-28 08:00 | take_profit | 7 | +1.49 | +| BONK | 11-28 01:00 | 11-28 08:00 | take_profit | 7 | +1.49 | +| FET | 11-28 01:00 | 11-28 08:00 | take_profit | 7 | +1.49 | +| LTC | 11-28 01:00 | 11-28 08:00 | trailing_stop | 7 | -0.56 | +| NEAR | 11-28 01:00 | 11-28 08:00 | take_profit | 7 | +1.49 | +| OP | 11-28 05:00 | 11-28 08:00 | take_profit | 3 | +1.49 | +| RENDER | 11-28 01:00 | 11-28 08:00 | take_profit | 7 | +1.49 | +| WIF | 11-28 07:00 | 11-28 08:00 | take_profit | 1 | +1.49 | +| APT | 11-28 09:00 | 11-28 11:00 | stop_loss | 2 | -1.49 | +| TIA | 11-28 10:00 | 11-28 11:00 | stop_loss | 1 | -1.49 | +| LTC | 11-28 11:00 | 11-28 16:00 | trailing_stop | 5 | -0.58 | +| APT | 11-28 16:00 | 11-28 18:00 | stop_loss | 2 | -1.49 | +| FET | 11-28 22:00 | 11-29 03:00 | take_profit | 5 | +1.49 | +| APT | 11-29 00:00 | 11-29 06:00 | stop_loss | 6 | -1.49 | +| ARB | 11-29 05:00 | 11-29 06:00 | stop_loss | 1 | -1.49 | +| KAS | 11-29 03:00 | 11-29 06:00 | stop_loss | 3 | -1.49 | +| AVAX | 11-28 16:00 | 11-29 07:00 | stop_loss | 15 | -1.49 | +| APT | 11-29 11:00 | 11-29 14:00 | stop_loss | 3 | -1.49 | +| APT | 11-29 14:00 | 11-29 17:00 | stop_loss | 3 | -1.49 | +| AVAX | 11-29 07:00 | 11-29 17:00 | trailing_stop | 10 | -0.38 | +| SEI | 11-29 12:00 | 11-29 17:00 | stop_loss | 5 | -1.49 | +| TIA | 11-29 14:00 | 11-29 17:00 | trailing_stop | 3 | -0.64 | +| APT | 11-29 17:00 | 11-29 18:00 | take_profit | 1 | +1.49 | +| AVAX | 11-29 18:00 | 11-29 19:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-29 19:00 | 11-29 20:00 | stop_loss | 1 | -1.49 | +| KAS | 11-29 18:00 | 11-29 20:00 | stop_loss | 2 | -1.49 | +| AVAX | 11-29 20:00 | 11-29 23:00 | stop_loss | 3 | -1.49 | +| APT | 11-29 21:00 | 11-30 00:00 | stop_loss | 3 | -1.49 | +| SEI | 11-29 18:00 | 11-30 02:00 | take_profit | 8 | +1.49 | +| APT | 11-30 00:00 | 11-30 03:00 | trailing_stop | 3 | -0.48 | +| ARB | 11-29 17:00 | 11-30 03:00 | trailing_stop | 10 | +0.01 | +| INJ | 11-30 01:00 | 11-30 03:00 | stop_loss | 2 | -1.49 | +| NEAR | 11-29 18:00 | 11-30 03:00 | stop_loss | 9 | -1.49 | +| PEPE | 11-29 17:00 | 11-30 03:00 | trailing_stop | 10 | -0.43 | +| UNI | 11-29 18:00 | 11-30 03:00 | trailing_stop | 9 | -0.22 | +| TIA | 11-29 21:00 | 11-30 04:00 | take_profit | 7 | +1.49 | +| AVAX | 11-29 23:00 | 11-30 05:00 | stop_loss | 6 | -1.49 | +| BONK | 11-30 05:00 | 11-30 10:00 | take_profit | 5 | +1.49 | +| FET | 11-30 10:00 | 11-30 16:00 | take_profit | 6 | +1.49 | +| FIL | 11-30 21:00 | 11-30 23:00 | stop_loss | 2 | -1.49 | +| OP | 11-30 15:00 | 11-30 23:00 | trailing_stop | 8 | -0.22 | +| APT | 11-30 23:00 | 12-01 00:00 | stop_loss | 1 | -1.49 | +| ATOM | 11-30 23:00 | 12-01 00:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-30 23:00 | 12-01 00:00 | stop_loss | 1 | -1.49 | +| BONK | 11-30 23:00 | 12-01 00:00 | stop_loss | 1 | -1.49 | +| FIL | 11-30 23:00 | 12-01 00:00 | stop_loss | 1 | -1.49 | +| INJ | 11-30 23:00 | 12-01 00:00 | stop_loss | 1 | -1.49 | +| LTC | 11-30 23:00 | 12-01 00:00 | stop_loss | 1 | -1.49 | +| NEAR | 11-30 23:00 | 12-01 00:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-30 23:00 | 12-01 00:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-30 23:00 | 12-01 00:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-30 23:00 | 12-01 00:00 | stop_loss | 1 | -1.49 | +| SUI | 11-30 23:00 | 12-01 00:00 | stop_loss | 1 | -1.49 | +| TRX | 11-30 00:00 | 12-01 00:00 | stop_loss | 24 | -1.49 | +| UNI | 11-30 23:00 | 12-01 00:00 | stop_loss | 1 | -1.49 | +| FIL | 12-01 00:00 | 12-01 01:00 | take_profit | 1 | +1.49 | +| KAS | 12-01 00:00 | 12-01 01:00 | take_profit | 1 | +1.49 | +| SUI | 12-01 00:00 | 12-01 01:00 | take_profit | 1 | +1.49 | +| TIA | 12-01 00:00 | 12-01 02:00 | stop_loss | 2 | -1.49 | +| ARB | 12-01 00:00 | 12-01 03:00 | stop_loss | 3 | -1.49 | +| AVAX | 12-01 00:00 | 12-01 03:00 | stop_loss | 3 | -1.49 | +| BONK | 12-01 00:00 | 12-01 03:00 | trailing_stop | 3 | -0.61 | +| FET | 12-01 00:00 | 12-01 03:00 | stop_loss | 3 | -1.49 | +| FIL | 12-01 01:00 | 12-01 03:00 | stop_loss | 2 | -1.49 | +| INJ | 12-01 00:00 | 12-01 03:00 | stop_loss | 3 | -1.49 | +| KAS | 12-01 02:00 | 12-01 03:00 | stop_loss | 1 | -1.49 | +| NEAR | 12-01 00:00 | 12-01 03:00 | stop_loss | 3 | -1.49 | +| OP | 12-01 00:00 | 12-01 03:00 | stop_loss | 3 | -1.49 | +| PEPE | 12-01 00:00 | 12-01 03:00 | stop_loss | 3 | -1.49 | +| RENDER | 12-01 00:00 | 12-01 03:00 | stop_loss | 3 | -1.49 | +| SEI | 12-01 00:00 | 12-01 03:00 | stop_loss | 3 | -1.49 | +| SUI | 12-01 01:00 | 12-01 03:00 | stop_loss | 2 | -1.49 | +| TIA | 12-01 02:00 | 12-01 03:00 | stop_loss | 1 | -1.49 | +| UNI | 12-01 00:00 | 12-01 03:00 | stop_loss | 3 | -1.49 | +| ETC | 12-01 00:00 | 12-01 04:00 | stop_loss | 4 | -1.49 | +| FET | 12-01 03:00 | 12-01 04:00 | stop_loss | 1 | -1.49 | +| INJ | 12-01 03:00 | 12-01 04:00 | stop_loss | 1 | -1.49 | +| KAS | 12-01 03:00 | 12-01 04:00 | stop_loss | 1 | -1.49 | +| LTC | 12-01 00:00 | 12-01 04:00 | stop_loss | 4 | -1.49 | +| SEI | 12-01 03:00 | 12-01 04:00 | stop_loss | 1 | -1.49 | +| TIA | 12-01 03:00 | 12-01 04:00 | stop_loss | 1 | -1.49 | +| PEPE | 12-01 03:00 | 12-01 05:00 | stop_loss | 2 | -1.49 | +| APT | 12-01 00:00 | 12-01 06:00 | stop_loss | 6 | -1.49 | +| ATOM | 12-01 00:00 | 12-01 06:00 | take_profit | 6 | +1.49 | +| KAS | 12-01 04:00 | 12-01 06:00 | stop_loss | 2 | -1.49 | +| ARB | 12-01 03:00 | 12-01 07:00 | trailing_stop | 4 | +0.02 | +| FIL | 12-01 03:00 | 12-01 07:00 | stop_loss | 4 | -1.49 | +| NEAR | 12-01 03:00 | 12-01 07:00 | stop_loss | 4 | -1.49 | +| SUI | 12-01 03:00 | 12-01 07:00 | stop_loss | 4 | -1.49 | +| SEI | 12-01 04:00 | 12-01 08:00 | take_profit | 4 | +1.49 | +| TIA | 12-01 04:00 | 12-01 10:00 | take_profit | 6 | +1.49 | +| BONK | 12-01 03:00 | 12-01 11:00 | stop_loss | 8 | -1.49 | +| FET | 12-01 09:00 | 12-01 11:00 | stop_loss | 2 | -1.49 | +| OP | 12-01 03:00 | 12-01 11:00 | stop_loss | 8 | -1.49 | +| RENDER | 12-01 03:00 | 12-01 11:00 | trailing_stop | 8 | -0.64 | +| SEI | 12-01 09:00 | 12-01 11:00 | stop_loss | 2 | -1.49 | +| WIF | 12-01 00:00 | 12-01 11:00 | stop_loss | 11 | -1.49 | +| ARB | 12-01 09:00 | 12-01 12:00 | stop_loss | 3 | -1.49 | +| ATOM | 12-01 09:00 | 12-01 12:00 | stop_loss | 3 | -1.49 | +| AVAX | 12-01 03:00 | 12-01 12:00 | stop_loss | 9 | -1.49 | +| FET | 12-01 11:00 | 12-01 12:00 | stop_loss | 1 | -1.49 | +| LTC | 12-01 04:00 | 12-01 12:00 | stop_loss | 8 | -1.49 | +| SHIB | 12-01 00:00 | 12-01 12:00 | stop_loss | 12 | -1.49 | +| UNI | 12-01 03:00 | 12-01 12:00 | stop_loss | 9 | -1.49 | +| APT | 12-01 11:00 | 12-01 13:00 | take_profit | 2 | +1.49 | +| APT | 12-01 13:00 | 12-01 14:00 | stop_loss | 1 | -1.49 | +| BONK | 12-01 13:00 | 12-01 15:00 | stop_loss | 2 | -1.49 | +| ETC | 12-01 12:00 | 12-01 15:00 | stop_loss | 3 | -1.49 | +| SHIB | 12-01 12:00 | 12-01 15:00 | stop_loss | 3 | -1.49 | +| UNI | 12-01 12:00 | 12-01 19:00 | stop_loss | 7 | -1.49 | +| BONK | 12-01 16:00 | 12-01 20:00 | take_profit | 4 | +1.49 | +| SUI | 12-01 22:00 | 12-02 01:00 | take_profit | 3 | +1.49 | +| SEI | 12-01 22:00 | 12-02 02:00 | stop_loss | 4 | -1.49 | +| NEAR | 12-01 21:00 | 12-02 03:00 | trailing_stop | 6 | +0.04 | +| PEPE | 12-01 22:00 | 12-02 03:00 | stop_loss | 5 | -1.49 | +| TRX | 12-01 00:00 | 12-02 18:00 | take_profit | 42 | +1.49 | +| WIF | 12-03 06:00 | 12-03 08:00 | stop_loss | 2 | -1.49 | +| ATOM | 12-03 12:00 | 12-03 14:00 | stop_loss | 2 | -1.49 | +| TIA | 12-03 05:00 | 12-03 14:00 | stop_loss | 9 | -1.49 | +| WIF | 12-03 12:00 | 12-03 14:00 | stop_loss | 2 | -1.49 | +| BONK | 12-03 14:00 | 12-03 15:00 | trailing_stop | 1 | -0.54 | +| WIF | 12-03 14:00 | 12-03 16:00 | take_profit | 2 | +1.49 | +| SEI | 12-03 14:00 | 12-03 17:00 | trailing_stop | 3 | +0.19 | +| ATOM | 12-03 15:00 | 12-03 20:00 | take_profit | 5 | +1.49 | +| SUI | 12-03 18:00 | 12-03 22:00 | take_profit | 4 | +1.49 | +| SUI | 12-03 22:00 | 12-04 00:00 | stop_loss | 2 | -1.49 | +| SHIB | 12-04 06:00 | 12-04 11:00 | stop_loss | 5 | -1.49 | +| APT | 12-04 11:00 | 12-04 13:00 | stop_loss | 2 | -1.49 | +| ETC | 12-04 11:00 | 12-04 13:00 | stop_loss | 2 | -1.49 | +| FET | 12-04 12:00 | 12-04 13:00 | stop_loss | 1 | -1.49 | +| SUI | 12-04 12:00 | 12-04 13:00 | stop_loss | 1 | -1.49 | +| ARB | 12-04 13:00 | 12-04 14:00 | stop_loss | 1 | -1.49 | +| BONK | 12-04 11:00 | 12-04 14:00 | stop_loss | 3 | -1.49 | +| FET | 12-04 13:00 | 12-04 14:00 | stop_loss | 1 | -1.49 | +| LTC | 12-04 10:00 | 12-04 14:00 | stop_loss | 4 | -1.49 | +| TIA | 12-04 11:00 | 12-04 14:00 | stop_loss | 3 | -1.49 | +| UNI | 12-04 12:00 | 12-04 14:00 | stop_loss | 2 | -1.49 | +| APT | 12-04 13:00 | 12-04 15:00 | trailing_stop | 2 | -0.50 | +| ARB | 12-04 14:00 | 12-04 15:00 | take_profit | 1 | +1.49 | +| ATOM | 12-04 14:00 | 12-04 15:00 | take_profit | 1 | +1.49 | +| BONK | 12-04 14:00 | 12-04 15:00 | take_profit | 1 | +1.49 | +| FET | 12-04 14:00 | 12-04 15:00 | take_profit | 1 | +1.49 | +| FIL | 12-04 14:00 | 12-04 15:00 | take_profit | 1 | +1.49 | +| INJ | 12-04 14:00 | 12-04 15:00 | take_profit | 1 | +1.49 | +| LTC | 12-04 14:00 | 12-04 15:00 | trailing_stop | 1 | -0.47 | +| OP | 12-04 14:00 | 12-04 15:00 | take_profit | 1 | +1.49 | +| SEI | 12-04 13:00 | 12-04 15:00 | take_profit | 2 | +1.49 | +| SUI | 12-04 13:00 | 12-04 15:00 | take_profit | 2 | +1.49 | +| UNI | 12-04 14:00 | 12-04 15:00 | take_profit | 1 | +1.49 | +| AVAX | 12-04 11:00 | 12-04 17:00 | stop_loss | 6 | -1.49 | +| ETC | 12-04 13:00 | 12-04 17:00 | stop_loss | 4 | -1.49 | +| NEAR | 12-04 16:00 | 12-04 17:00 | stop_loss | 1 | -1.49 | +| FIL | 12-04 17:00 | 12-04 18:00 | stop_loss | 1 | -1.49 | +| AVAX | 12-04 17:00 | 12-04 19:00 | stop_loss | 2 | -1.49 | +| FIL | 12-04 18:00 | 12-04 19:00 | stop_loss | 1 | -1.49 | +| NEAR | 12-04 17:00 | 12-04 19:00 | stop_loss | 2 | -1.49 | +| RENDER | 12-04 18:00 | 12-04 19:00 | stop_loss | 1 | -1.49 | +| APT | 12-04 19:00 | 12-04 21:00 | stop_loss | 2 | -1.49 | +| TIA | 12-04 20:00 | 12-04 21:00 | stop_loss | 1 | -1.49 | +| WIF | 12-04 20:00 | 12-04 21:00 | stop_loss | 1 | -1.49 | +| WIF | 12-04 21:00 | 12-04 22:00 | take_profit | 1 | +1.49 | +| INJ | 12-04 20:00 | 12-04 23:00 | stop_loss | 3 | -1.49 | +| TRX | 12-03 05:00 | 12-05 00:00 | take_profit | 43 | +1.49 | +| FIL | 12-04 19:00 | 12-05 02:00 | take_profit | 7 | +1.49 | +| BONK | 12-04 21:00 | 12-05 03:00 | stop_loss | 6 | -1.49 | +| KAS | 12-04 21:00 | 12-05 03:00 | take_profit | 6 | +1.49 | +| SEI | 12-04 21:00 | 12-05 03:00 | stop_loss | 6 | -1.49 | +| APT | 12-04 21:00 | 12-05 04:00 | stop_loss | 7 | -1.49 | +| ARB | 12-04 21:00 | 12-05 04:00 | stop_loss | 7 | -1.49 | +| OP | 12-04 23:00 | 12-05 04:00 | trailing_stop | 5 | -0.64 | +| WIF | 12-04 23:00 | 12-05 04:00 | stop_loss | 5 | -1.49 | +| AVAX | 12-04 19:00 | 12-05 08:00 | stop_loss | 13 | -1.49 | +| NEAR | 12-04 19:00 | 12-05 08:00 | stop_loss | 13 | -1.49 | +| APT | 12-05 04:00 | 12-05 09:00 | stop_loss | 5 | -1.49 | +| ATOM | 12-04 21:00 | 12-05 09:00 | stop_loss | 12 | -1.49 | +| AVAX | 12-05 08:00 | 12-05 09:00 | stop_loss | 1 | -1.49 | +| SHIB | 12-05 05:00 | 12-05 09:00 | stop_loss | 4 | -1.49 | +| TIA | 12-04 21:00 | 12-05 09:00 | stop_loss | 12 | -1.49 | +| WIF | 12-05 06:00 | 12-05 09:00 | stop_loss | 3 | -1.49 | +| AVAX | 12-05 09:00 | 12-05 11:00 | stop_loss | 2 | -1.49 | +| ETC | 12-05 10:00 | 12-05 11:00 | stop_loss | 1 | -1.49 | +| FET | 12-05 09:00 | 12-05 11:00 | stop_loss | 2 | -1.49 | +| SEI | 12-05 09:00 | 12-05 11:00 | stop_loss | 2 | -1.49 | +| SHIB | 12-05 09:00 | 12-05 11:00 | stop_loss | 2 | -1.49 | +| AVAX | 12-05 11:00 | 12-05 12:00 | stop_loss | 1 | -1.49 | +| APT | 12-05 11:00 | 12-05 13:00 | stop_loss | 2 | -1.49 | +| ARB | 12-05 09:00 | 12-05 13:00 | stop_loss | 4 | -1.49 | +| ATOM | 12-05 09:00 | 12-05 13:00 | stop_loss | 4 | -1.49 | +| FET | 12-05 11:00 | 12-05 13:00 | stop_loss | 2 | -1.49 | +| PEPE | 12-05 09:00 | 12-05 13:00 | stop_loss | 4 | -1.49 | +| UNI | 12-05 10:00 | 12-05 13:00 | stop_loss | 3 | -1.49 | +| APT | 12-05 13:00 | 12-05 14:00 | stop_loss | 1 | -1.49 | +| AVAX | 12-05 12:00 | 12-05 14:00 | stop_loss | 2 | -1.49 | +| ETC | 12-05 12:00 | 12-05 14:00 | stop_loss | 2 | -1.49 | +| FET | 12-05 13:00 | 12-05 14:00 | stop_loss | 1 | -1.49 | +| KAS | 12-05 09:00 | 12-05 14:00 | stop_loss | 5 | -1.49 | +| NEAR | 12-05 09:00 | 12-05 14:00 | stop_loss | 5 | -1.49 | +| PEPE | 12-05 13:00 | 12-05 14:00 | stop_loss | 1 | -1.49 | +| SHIB | 12-05 11:00 | 12-05 14:00 | stop_loss | 3 | -1.49 | +| UNI | 12-05 13:00 | 12-05 14:00 | stop_loss | 1 | -1.49 | +| APT | 12-05 14:00 | 12-05 15:00 | take_profit | 1 | +1.49 | +| ARB | 12-05 13:00 | 12-05 15:00 | take_profit | 2 | +1.49 | +| FET | 12-05 14:00 | 12-05 15:00 | take_profit | 1 | +1.49 | +| INJ | 12-05 13:00 | 12-05 15:00 | take_profit | 2 | +1.49 | +| NEAR | 12-05 14:00 | 12-05 15:00 | take_profit | 1 | +1.49 | +| PEPE | 12-05 14:00 | 12-05 15:00 | take_profit | 1 | +1.49 | +| SUI | 12-05 13:00 | 12-05 15:00 | take_profit | 2 | +1.49 | +| TIA | 12-05 13:00 | 12-05 15:00 | take_profit | 2 | +1.49 | +| UNI | 12-05 14:00 | 12-05 15:00 | take_profit | 1 | +1.49 | +| ATOM | 12-05 14:00 | 12-05 16:00 | stop_loss | 2 | -1.49 | +| AVAX | 12-05 14:00 | 12-05 16:00 | stop_loss | 2 | -1.49 | +| BONK | 12-05 13:00 | 12-05 16:00 | stop_loss | 3 | -1.49 | +| ETC | 12-05 14:00 | 12-05 16:00 | stop_loss | 2 | -1.49 | +| FET | 12-05 15:00 | 12-05 16:00 | stop_loss | 1 | -1.49 | +| FIL | 12-05 15:00 | 12-05 16:00 | stop_loss | 1 | -1.49 | +| LTC | 12-05 10:00 | 12-05 16:00 | stop_loss | 6 | -1.49 | +| OP | 12-05 15:00 | 12-05 16:00 | stop_loss | 1 | -1.49 | +| RENDER | 12-05 09:00 | 12-05 16:00 | stop_loss | 7 | -1.49 | +| APT | 12-05 16:00 | 12-05 17:00 | stop_loss | 1 | -1.49 | +| AVAX | 12-05 16:00 | 12-05 17:00 | stop_loss | 1 | -1.49 | +| OP | 12-05 16:00 | 12-05 17:00 | stop_loss | 1 | -1.49 | +| SEI | 12-05 16:00 | 12-05 17:00 | stop_loss | 1 | -1.49 | +| SUI | 12-05 16:00 | 12-05 17:00 | stop_loss | 1 | -1.49 | +| APT | 12-05 17:00 | 12-05 18:00 | stop_loss | 1 | -1.49 | +| ARB | 12-05 16:00 | 12-05 18:00 | stop_loss | 2 | -1.49 | +| BONK | 12-05 16:00 | 12-05 18:00 | stop_loss | 2 | -1.49 | +| FET | 12-05 16:00 | 12-05 18:00 | stop_loss | 2 | -1.49 | +| FIL | 12-05 16:00 | 12-05 18:00 | stop_loss | 2 | -1.49 | +| INJ | 12-05 16:00 | 12-05 18:00 | stop_loss | 2 | -1.49 | +| OP | 12-05 17:00 | 12-05 18:00 | stop_loss | 1 | -1.49 | +| RENDER | 12-05 16:00 | 12-05 18:00 | stop_loss | 2 | -1.49 | +| SEI | 12-05 17:00 | 12-05 18:00 | stop_loss | 1 | -1.49 | +| SUI | 12-05 17:00 | 12-05 18:00 | stop_loss | 1 | -1.49 | +| TIA | 12-05 16:00 | 12-05 18:00 | stop_loss | 2 | -1.49 | +| UNI | 12-05 16:00 | 12-05 18:00 | stop_loss | 2 | -1.49 | +| ARB | 12-05 18:00 | 12-05 19:00 | trailing_stop | 1 | -0.56 | +| ATOM | 12-05 16:00 | 12-05 19:00 | stop_loss | 3 | -1.49 | +| FET | 12-05 18:00 | 12-05 19:00 | trailing_stop | 1 | -0.70 | +| INJ | 12-05 18:00 | 12-05 19:00 | trailing_stop | 1 | -0.58 | +| KAS | 12-05 18:00 | 12-05 19:00 | trailing_stop | 1 | -0.32 | +| LTC | 12-05 16:00 | 12-05 19:00 | stop_loss | 3 | -1.49 | +| OP | 12-05 18:00 | 12-05 19:00 | trailing_stop | 1 | +0.01 | +| PEPE | 12-05 16:00 | 12-05 19:00 | trailing_stop | 3 | -0.52 | +| SEI | 12-05 18:00 | 12-05 19:00 | trailing_stop | 1 | -0.59 | +| SHIB | 12-05 16:00 | 12-05 19:00 | stop_loss | 3 | -1.49 | +| SUI | 12-05 18:00 | 12-05 19:00 | trailing_stop | 1 | -0.32 | +| TIA | 12-05 18:00 | 12-05 19:00 | trailing_stop | 1 | -0.64 | +| UNI | 12-05 18:00 | 12-05 19:00 | trailing_stop | 1 | -0.63 | +| WIF | 12-05 18:00 | 12-05 19:00 | trailing_stop | 1 | -0.47 | +| FIL | 12-05 18:00 | 12-05 22:00 | take_profit | 4 | +1.49 | +| APT | 12-05 18:00 | 12-06 00:00 | trailing_stop | 6 | -0.40 | +| FET | 12-05 23:00 | 12-06 00:00 | stop_loss | 1 | -1.49 | +| BONK | 12-05 18:00 | 12-06 01:00 | take_profit | 7 | +1.49 | +| TIA | 12-05 19:00 | 12-06 02:00 | stop_loss | 7 | -1.49 | +| WIF | 12-06 00:00 | 12-06 02:00 | trailing_stop | 2 | +0.04 | +| RENDER | 12-05 18:00 | 12-06 03:00 | take_profit | 9 | +1.49 | +| FIL | 12-05 23:00 | 12-06 07:00 | stop_loss | 8 | -1.49 | +| INJ | 12-06 00:00 | 12-06 07:00 | stop_loss | 7 | -1.49 | +| PEPE | 12-06 01:00 | 12-06 07:00 | stop_loss | 6 | -1.49 | +| AVAX | 12-06 02:00 | 12-06 08:00 | stop_loss | 6 | -1.49 | +| UNI | 12-06 03:00 | 12-06 08:00 | stop_loss | 5 | -1.49 | +| NEAR | 12-05 16:00 | 12-06 09:00 | take_profit | 17 | +1.49 | +| FET | 12-06 00:00 | 12-06 10:00 | trailing_stop | 10 | -0.43 | +| ARB | 12-06 01:00 | 12-06 14:00 | take_profit | 13 | +1.49 | +| ETC | 12-05 16:00 | 12-06 14:00 | take_profit | 22 | +1.49 | +| LTC | 12-06 01:00 | 12-06 14:00 | take_profit | 13 | +1.49 | +| OP | 12-06 00:00 | 12-06 14:00 | take_profit | 14 | +1.49 | +| SEI | 12-06 05:00 | 12-06 14:00 | take_profit | 9 | +1.49 | +| ATOM | 12-06 00:00 | 12-06 17:00 | take_profit | 17 | +1.49 | +| BONK | 12-06 01:00 | 12-06 17:00 | take_profit | 16 | +1.49 | +| KAS | 12-06 19:00 | 12-07 07:00 | trailing_stop | 12 | -0.47 | +| RENDER | 12-06 05:00 | 12-07 08:00 | stop_loss | 27 | -1.49 | +| APT | 12-07 07:00 | 12-07 09:00 | stop_loss | 2 | -1.49 | +| FET | 12-07 07:00 | 12-07 09:00 | stop_loss | 2 | -1.49 | +| RENDER | 12-07 08:00 | 12-07 10:00 | stop_loss | 2 | -1.49 | +| ATOM | 12-07 07:00 | 12-07 11:00 | stop_loss | 4 | -1.49 | +| INJ | 12-07 09:00 | 12-07 13:00 | stop_loss | 4 | -1.49 | +| TIA | 12-07 09:00 | 12-07 13:00 | stop_loss | 4 | -1.49 | +| ATOM | 12-07 11:00 | 12-07 14:00 | stop_loss | 3 | -1.49 | +| ETC | 12-07 09:00 | 12-07 14:00 | stop_loss | 5 | -1.49 | +| FET | 12-07 09:00 | 12-07 14:00 | stop_loss | 5 | -1.49 | +| FIL | 12-07 13:00 | 12-07 14:00 | stop_loss | 1 | -1.49 | +| INJ | 12-07 13:00 | 12-07 14:00 | stop_loss | 1 | -1.49 | +| OP | 12-07 13:00 | 12-07 14:00 | stop_loss | 1 | -1.49 | +| RENDER | 12-07 10:00 | 12-07 14:00 | stop_loss | 4 | -1.49 | +| UNI | 12-07 09:00 | 12-07 14:00 | stop_loss | 5 | -1.49 | +| APT | 12-07 14:00 | 12-07 15:00 | take_profit | 1 | +1.49 | +| ARB | 12-07 14:00 | 12-07 15:00 | take_profit | 1 | +1.49 | +| ATOM | 12-07 14:00 | 12-07 15:00 | take_profit | 1 | +1.49 | +| AVAX | 12-07 14:00 | 12-07 15:00 | take_profit | 1 | +1.49 | +| BONK | 12-07 14:00 | 12-07 15:00 | take_profit | 1 | +1.49 | +| ETC | 12-07 14:00 | 12-07 15:00 | take_profit | 1 | +1.49 | +| FET | 12-07 14:00 | 12-07 15:00 | take_profit | 1 | +1.49 | +| FIL | 12-07 14:00 | 12-07 15:00 | take_profit | 1 | +1.49 | +| INJ | 12-07 14:00 | 12-07 15:00 | take_profit | 1 | +1.49 | +| KAS | 12-07 14:00 | 12-07 15:00 | take_profit | 1 | +1.49 | +| LTC | 12-07 14:00 | 12-07 15:00 | take_profit | 1 | +1.49 | +| NEAR | 12-07 14:00 | 12-07 15:00 | take_profit | 1 | +1.49 | +| OP | 12-07 14:00 | 12-07 15:00 | take_profit | 1 | +1.49 | +| PEPE | 12-07 14:00 | 12-07 15:00 | take_profit | 1 | +1.49 | +| RENDER | 12-07 14:00 | 12-07 15:00 | take_profit | 1 | +1.49 | +| SEI | 12-07 14:00 | 12-07 15:00 | take_profit | 1 | +1.49 | +| SHIB | 12-07 14:00 | 12-07 15:00 | take_profit | 1 | +1.49 | +| SUI | 12-07 14:00 | 12-07 15:00 | take_profit | 1 | +1.49 | +| TIA | 12-07 14:00 | 12-07 15:00 | take_profit | 1 | +1.49 | +| UNI | 12-07 14:00 | 12-07 15:00 | take_profit | 1 | +1.49 | +| WIF | 12-07 14:00 | 12-07 15:00 | take_profit | 1 | +1.49 | +| TRX | 12-07 00:00 | 12-08 16:00 | stop_loss | 40 | -1.49 | +| KAS | 12-08 18:00 | 12-08 21:00 | take_profit | 3 | +1.49 | +| TRX | 12-08 16:00 | 12-09 00:00 | stop_loss | 8 | -1.49 | +| UNI | 12-08 23:00 | 12-09 00:00 | stop_loss | 1 | -1.49 | +| INJ | 12-08 23:00 | 12-09 01:00 | stop_loss | 2 | -1.49 | +| OP | 12-08 23:00 | 12-09 01:00 | stop_loss | 2 | -1.49 | +| KAS | 12-09 00:00 | 12-09 02:00 | stop_loss | 2 | -1.49 | +| NEAR | 12-09 00:00 | 12-09 03:00 | stop_loss | 3 | -1.49 | +| SEI | 12-09 00:00 | 12-09 03:00 | stop_loss | 3 | -1.49 | +| TIA | 12-09 01:00 | 12-09 03:00 | trailing_stop | 2 | -0.61 | +| UNI | 12-09 01:00 | 12-09 03:00 | stop_loss | 2 | -1.49 | +| APT | 12-09 04:00 | 12-09 07:00 | take_profit | 3 | +1.49 | +| SUI | 12-09 01:00 | 12-09 07:00 | trailing_stop | 6 | -0.10 | +| FIL | 12-09 01:00 | 12-09 09:00 | stop_loss | 8 | -1.49 | +| NEAR | 12-09 04:00 | 12-09 09:00 | trailing_stop | 5 | -0.26 | +| INJ | 12-09 01:00 | 12-09 12:00 | take_profit | 11 | +1.49 | +| PEPE | 12-09 04:00 | 12-09 12:00 | trailing_stop | 8 | -0.34 | +| WIF | 12-09 04:00 | 12-09 12:00 | take_profit | 8 | +1.49 | +| ATOM | 12-09 04:00 | 12-09 13:00 | take_profit | 9 | +1.49 | +| LTC | 12-09 11:00 | 12-09 14:00 | trailing_stop | 3 | -0.31 | +| PEPE | 12-09 12:00 | 12-09 14:00 | stop_loss | 2 | -1.49 | +| ETC | 12-09 02:00 | 12-09 15:00 | take_profit | 13 | +1.49 | +| FIL | 12-10 06:00 | 12-10 07:00 | stop_loss | 1 | -1.49 | +| SUI | 12-10 06:00 | 12-10 07:00 | stop_loss | 1 | -1.49 | +| WIF | 12-10 06:00 | 12-10 07:00 | stop_loss | 1 | -1.49 | +| APT | 12-10 06:00 | 12-10 08:00 | stop_loss | 2 | -1.49 | +| ARB | 12-10 06:00 | 12-10 08:00 | stop_loss | 2 | -1.49 | +| BONK | 12-10 06:00 | 12-10 08:00 | stop_loss | 2 | -1.49 | +| FIL | 12-10 07:00 | 12-10 08:00 | stop_loss | 1 | -1.49 | +| KAS | 12-10 06:00 | 12-10 08:00 | stop_loss | 2 | -1.49 | +| NEAR | 12-10 06:00 | 12-10 08:00 | stop_loss | 2 | -1.49 | +| OP | 12-10 06:00 | 12-10 08:00 | stop_loss | 2 | -1.49 | +| PEPE | 12-10 06:00 | 12-10 08:00 | stop_loss | 2 | -1.49 | +| RENDER | 12-10 06:00 | 12-10 08:00 | stop_loss | 2 | -1.49 | +| TIA | 12-10 06:00 | 12-10 08:00 | stop_loss | 2 | -1.49 | +| APT | 12-10 08:00 | 12-10 09:00 | trailing_stop | 1 | -0.66 | +| ATOM | 12-10 06:00 | 12-10 09:00 | stop_loss | 3 | -1.49 | +| ETC | 12-10 06:00 | 12-10 09:00 | stop_loss | 3 | -1.49 | +| FIL | 12-10 08:00 | 12-10 09:00 | trailing_stop | 1 | -0.67 | +| INJ | 12-10 06:00 | 12-10 09:00 | stop_loss | 3 | -1.49 | +| SHIB | 12-10 05:00 | 12-10 09:00 | stop_loss | 4 | -1.49 | +| UNI | 12-10 06:00 | 12-10 09:00 | stop_loss | 3 | -1.49 | +| WIF | 12-10 07:00 | 12-10 09:00 | stop_loss | 2 | -1.49 | +| APT | 12-10 09:00 | 12-10 10:00 | stop_loss | 1 | -1.49 | +| ATOM | 12-10 09:00 | 12-10 10:00 | stop_loss | 1 | -1.49 | +| BONK | 12-10 08:00 | 12-10 10:00 | stop_loss | 2 | -1.49 | +| PEPE | 12-10 08:00 | 12-10 10:00 | take_profit | 2 | +1.49 | +| SUI | 12-10 07:00 | 12-10 10:00 | stop_loss | 3 | -1.49 | +| TIA | 12-10 08:00 | 12-10 10:00 | take_profit | 2 | +1.49 | +| UNI | 12-10 09:00 | 12-10 10:00 | stop_loss | 1 | -1.49 | +| WIF | 12-10 09:00 | 12-10 10:00 | stop_loss | 1 | -1.49 | +| AVAX | 12-10 10:00 | 12-10 11:00 | stop_loss | 1 | -1.49 | +| ETC | 12-10 09:00 | 12-10 11:00 | stop_loss | 2 | -1.49 | +| RENDER | 12-10 08:00 | 12-10 11:00 | stop_loss | 3 | -1.49 | +| SEI | 12-10 07:00 | 12-10 11:00 | stop_loss | 4 | -1.49 | +| WIF | 12-10 10:00 | 12-10 11:00 | stop_loss | 1 | -1.49 | +| APT | 12-10 10:00 | 12-10 12:00 | stop_loss | 2 | -1.49 | +| BONK | 12-10 10:00 | 12-10 12:00 | stop_loss | 2 | -1.49 | +| KAS | 12-10 08:00 | 12-10 12:00 | confirmed_bearish_exit | 4 | -0.06 | +| NEAR | 12-10 08:00 | 12-10 12:00 | stop_loss | 4 | -1.49 | +| PEPE | 12-10 10:00 | 12-10 14:00 | stop_loss | 4 | -1.49 | +| TRX | 12-09 00:00 | 12-10 14:00 | stop_loss | 38 | -1.49 | +| INJ | 12-10 15:00 | 12-10 16:00 | trailing_stop | 1 | -0.70 | +| ARB | 12-10 08:00 | 12-10 17:00 | take_profit | 9 | +1.49 | +| AVAX | 12-10 11:00 | 12-10 18:00 | take_profit | 7 | +1.49 | +| BONK | 12-10 17:00 | 12-10 18:00 | take_profit | 1 | +1.49 | +| OP | 12-10 08:00 | 12-10 18:00 | take_profit | 10 | +1.49 | +| TIA | 12-10 10:00 | 12-10 18:00 | take_profit | 8 | +1.49 | +| WIF | 12-10 11:00 | 12-10 18:00 | take_profit | 7 | +1.49 | +| FIL | 12-10 16:00 | 12-10 19:00 | take_profit | 3 | +1.49 | +| LTC | 12-10 06:00 | 12-10 19:00 | trailing_stop | 13 | -0.14 | +| WIF | 12-10 18:00 | 12-10 19:00 | stop_loss | 1 | -1.49 | +| WIF | 12-10 19:00 | 12-10 20:00 | stop_loss | 1 | -1.49 | +| WIF | 12-10 20:00 | 12-10 21:00 | stop_loss | 1 | -1.49 | +| FET | 12-10 21:00 | 12-10 22:00 | stop_loss | 1 | -1.49 | +| KAS | 12-10 21:00 | 12-10 22:00 | stop_loss | 1 | -1.49 | +| OP | 12-10 21:00 | 12-10 22:00 | stop_loss | 1 | -1.49 | +| FET | 12-10 23:00 | 12-11 00:00 | stop_loss | 1 | -1.49 | +| KAS | 12-10 23:00 | 12-11 00:00 | stop_loss | 1 | -1.49 | +| AVAX | 12-11 00:00 | 12-11 01:00 | stop_loss | 1 | -1.49 | +| ETC | 12-11 00:00 | 12-11 01:00 | stop_loss | 1 | -1.49 | +| FET | 12-11 00:00 | 12-11 01:00 | stop_loss | 1 | -1.49 | +| FIL | 12-11 00:00 | 12-11 01:00 | stop_loss | 1 | -1.49 | +| KAS | 12-11 00:00 | 12-11 01:00 | stop_loss | 1 | -1.49 | +| LTC | 12-11 00:00 | 12-11 01:00 | stop_loss | 1 | -1.49 | +| OP | 12-11 00:00 | 12-11 01:00 | stop_loss | 1 | -1.49 | +| ARB | 12-11 01:00 | 12-11 02:00 | stop_loss | 1 | -1.49 | +| AVAX | 12-11 01:00 | 12-11 02:00 | stop_loss | 1 | -1.49 | +| ETC | 12-11 01:00 | 12-11 02:00 | stop_loss | 1 | -1.49 | +| FET | 12-11 01:00 | 12-11 02:00 | stop_loss | 1 | -1.49 | +| FIL | 12-11 01:00 | 12-11 02:00 | stop_loss | 1 | -1.49 | +| INJ | 12-11 01:00 | 12-11 02:00 | stop_loss | 1 | -1.49 | +| NEAR | 12-11 01:00 | 12-11 02:00 | stop_loss | 1 | -1.49 | +| OP | 12-11 01:00 | 12-11 02:00 | stop_loss | 1 | -1.49 | +| PEPE | 12-11 01:00 | 12-11 02:00 | stop_loss | 1 | -1.49 | +| UNI | 12-11 01:00 | 12-11 02:00 | stop_loss | 1 | -1.49 | +| WIF | 12-11 00:00 | 12-11 02:00 | stop_loss | 2 | -1.49 | +| ARB | 12-11 02:00 | 12-11 03:00 | stop_loss | 1 | -1.49 | +| AVAX | 12-11 02:00 | 12-11 03:00 | stop_loss | 1 | -1.49 | +| ETC | 12-11 02:00 | 12-11 03:00 | stop_loss | 1 | -1.49 | +| FET | 12-11 02:00 | 12-11 03:00 | stop_loss | 1 | -1.49 | +| FIL | 12-11 02:00 | 12-11 03:00 | stop_loss | 1 | -1.49 | +| INJ | 12-11 02:00 | 12-11 03:00 | stop_loss | 1 | -1.49 | +| KAS | 12-11 01:00 | 12-11 03:00 | stop_loss | 2 | -1.49 | +| LTC | 12-11 01:00 | 12-11 03:00 | stop_loss | 2 | -1.49 | +| NEAR | 12-11 02:00 | 12-11 03:00 | stop_loss | 1 | -1.49 | +| OP | 12-11 02:00 | 12-11 03:00 | stop_loss | 1 | -1.49 | +| PEPE | 12-11 02:00 | 12-11 03:00 | stop_loss | 1 | -1.49 | +| RENDER | 12-11 01:00 | 12-11 03:00 | stop_loss | 2 | -1.49 | +| SUI | 12-11 02:00 | 12-11 03:00 | stop_loss | 1 | -1.49 | +| TIA | 12-11 02:00 | 12-11 03:00 | stop_loss | 1 | -1.49 | +| UNI | 12-11 02:00 | 12-11 03:00 | stop_loss | 1 | -1.49 | +| WIF | 12-11 02:00 | 12-11 03:00 | stop_loss | 1 | -1.49 | +| APT | 12-11 03:00 | 12-11 04:00 | take_profit | 1 | +1.49 | +| ARB | 12-11 03:00 | 12-11 04:00 | trailing_stop | 1 | -0.06 | +| BONK | 12-11 03:00 | 12-11 04:00 | take_profit | 1 | +1.49 | +| FET | 12-11 03:00 | 12-11 04:00 | take_profit | 1 | +1.49 | +| FIL | 12-11 03:00 | 12-11 04:00 | trailing_stop | 1 | -0.58 | +| INJ | 12-11 03:00 | 12-11 04:00 | trailing_stop | 1 | -0.31 | +| KAS | 12-11 03:00 | 12-11 04:00 | trailing_stop | 1 | -0.26 | +| LTC | 12-11 03:00 | 12-11 04:00 | trailing_stop | 1 | -0.50 | +| NEAR | 12-11 03:00 | 12-11 04:00 | trailing_stop | 1 | -0.28 | +| OP | 12-11 03:00 | 12-11 04:00 | trailing_stop | 1 | -0.38 | +| PEPE | 12-11 03:00 | 12-11 04:00 | trailing_stop | 1 | -0.23 | +| RENDER | 12-11 03:00 | 12-11 04:00 | trailing_stop | 1 | -0.63 | +| SUI | 12-11 03:00 | 12-11 04:00 | trailing_stop | 1 | -0.11 | +| TIA | 12-11 03:00 | 12-11 04:00 | trailing_stop | 1 | -0.67 | +| UNI | 12-11 03:00 | 12-11 04:00 | trailing_stop | 1 | -0.60 | +| WIF | 12-11 03:00 | 12-11 04:00 | take_profit | 1 | +1.49 | +| SEI | 12-11 07:00 | 12-11 08:00 | stop_loss | 1 | -1.49 | +| WIF | 12-11 07:00 | 12-11 08:00 | stop_loss | 1 | -1.49 | +| KAS | 12-11 07:00 | 12-11 09:00 | stop_loss | 2 | -1.49 | +| SEI | 12-11 08:00 | 12-11 09:00 | stop_loss | 1 | -1.49 | +| AVAX | 12-11 03:00 | 12-11 10:00 | trailing_stop | 7 | -0.61 | +| WIF | 12-11 08:00 | 12-11 10:00 | stop_loss | 2 | -1.49 | +| UNI | 12-11 11:00 | 12-11 13:00 | stop_loss | 2 | -1.49 | +| ARB | 12-11 12:00 | 12-11 14:00 | stop_loss | 2 | -1.49 | +| ATOM | 12-11 03:00 | 12-11 14:00 | trailing_stop | 11 | -0.55 | +| ETC | 12-11 03:00 | 12-11 14:00 | stop_loss | 11 | -1.49 | +| FET | 12-11 11:00 | 12-11 14:00 | stop_loss | 3 | -1.49 | +| INJ | 12-11 12:00 | 12-11 14:00 | stop_loss | 2 | -1.49 | +| UNI | 12-11 13:00 | 12-11 14:00 | stop_loss | 1 | -1.49 | +| ARB | 12-11 14:00 | 12-11 16:00 | stop_loss | 2 | -1.49 | +| SEI | 12-11 09:00 | 12-11 16:00 | stop_loss | 7 | -1.49 | +| KAS | 12-11 15:00 | 12-11 18:00 | take_profit | 3 | +1.49 | +| SHIB | 12-11 03:00 | 12-11 18:00 | trailing_stop | 15 | -0.31 | +| SEI | 12-11 22:00 | 12-12 00:00 | stop_loss | 2 | -1.49 | +| BONK | 12-12 11:00 | 12-12 14:00 | stop_loss | 3 | -1.49 | +| BONK | 12-12 14:00 | 12-12 15:00 | stop_loss | 1 | -1.49 | +| TRX | 12-12 07:00 | 12-12 15:00 | stop_loss | 8 | -1.49 | +| APT | 12-12 15:00 | 12-12 16:00 | stop_loss | 1 | -1.49 | +| ARB | 12-12 15:00 | 12-12 16:00 | stop_loss | 1 | -1.49 | +| ATOM | 12-12 15:00 | 12-12 16:00 | stop_loss | 1 | -1.49 | +| BONK | 12-12 15:00 | 12-12 16:00 | stop_loss | 1 | -1.49 | +| FET | 12-12 15:00 | 12-12 16:00 | stop_loss | 1 | -1.49 | +| FIL | 12-12 15:00 | 12-12 16:00 | stop_loss | 1 | -1.49 | +| INJ | 12-12 15:00 | 12-12 16:00 | stop_loss | 1 | -1.49 | +| KAS | 12-12 15:00 | 12-12 16:00 | stop_loss | 1 | -1.49 | +| LTC | 12-12 15:00 | 12-12 16:00 | stop_loss | 1 | -1.49 | +| NEAR | 12-12 15:00 | 12-12 16:00 | stop_loss | 1 | -1.49 | +| OP | 12-12 15:00 | 12-12 16:00 | stop_loss | 1 | -1.49 | +| PEPE | 12-12 15:00 | 12-12 16:00 | stop_loss | 1 | -1.49 | +| RENDER | 12-12 15:00 | 12-12 16:00 | stop_loss | 1 | -1.49 | +| SEI | 12-12 15:00 | 12-12 16:00 | stop_loss | 1 | -1.49 | +| SHIB | 12-12 15:00 | 12-12 16:00 | stop_loss | 1 | -1.49 | +| SUI | 12-12 15:00 | 12-12 16:00 | stop_loss | 1 | -1.49 | +| TIA | 12-12 15:00 | 12-12 16:00 | stop_loss | 1 | -1.49 | +| UNI | 12-12 15:00 | 12-12 16:00 | stop_loss | 1 | -1.49 | +| WIF | 12-12 15:00 | 12-12 16:00 | stop_loss | 1 | -1.49 | +| INJ | 12-12 16:00 | 12-12 17:00 | take_profit | 1 | +1.49 | +| APT | 12-12 16:00 | 12-12 18:00 | take_profit | 2 | +1.49 | +| ARB | 12-12 16:00 | 12-12 18:00 | take_profit | 2 | +1.49 | +| ATOM | 12-12 16:00 | 12-12 18:00 | take_profit | 2 | +1.49 | +| AVAX | 12-12 15:00 | 12-12 18:00 | take_profit | 3 | +1.49 | +| BONK | 12-12 16:00 | 12-12 18:00 | take_profit | 2 | +1.49 | +| FET | 12-12 16:00 | 12-12 18:00 | take_profit | 2 | +1.49 | +| NEAR | 12-12 16:00 | 12-12 18:00 | take_profit | 2 | +1.49 | +| OP | 12-12 16:00 | 12-12 18:00 | take_profit | 2 | +1.49 | +| PEPE | 12-12 16:00 | 12-12 18:00 | take_profit | 2 | +1.49 | +| SHIB | 12-12 16:00 | 12-12 18:00 | take_profit | 2 | +1.49 | +| TIA | 12-12 16:00 | 12-12 18:00 | take_profit | 2 | +1.49 | +| UNI | 12-12 16:00 | 12-12 18:00 | take_profit | 2 | +1.49 | +| WIF | 12-12 16:00 | 12-12 18:00 | take_profit | 2 | +1.49 | +| KAS | 12-12 16:00 | 12-12 21:00 | take_profit | 5 | +1.49 | +| FIL | 12-12 16:00 | 12-12 22:00 | take_profit | 6 | +1.49 | +| INJ | 12-12 17:00 | 12-12 22:00 | take_profit | 5 | +1.49 | +| RENDER | 12-12 16:00 | 12-13 00:00 | take_profit | 8 | +1.49 | +| FIL | 12-12 23:00 | 12-13 01:00 | stop_loss | 2 | -1.49 | +| SEI | 12-12 16:00 | 12-13 01:00 | take_profit | 9 | +1.49 | +| ETC | 12-12 15:00 | 12-13 02:00 | take_profit | 11 | +1.49 | +| SUI | 12-12 16:00 | 12-13 02:00 | take_profit | 10 | +1.49 | +| APT | 12-12 23:00 | 12-13 03:00 | take_profit | 4 | +1.49 | +| INJ | 12-12 23:00 | 12-13 03:00 | trailing_stop | 4 | -0.18 | +| TIA | 12-12 23:00 | 12-13 03:00 | trailing_stop | 4 | -0.12 | +| PEPE | 12-12 23:00 | 12-13 05:00 | take_profit | 6 | +1.49 | +| AVAX | 12-12 23:00 | 12-13 06:00 | take_profit | 7 | +1.49 | +| BONK | 12-12 23:00 | 12-13 06:00 | trailing_stop | 7 | -0.02 | +| FIL | 12-13 01:00 | 12-13 06:00 | confirmed_bearish_exit | 5 | +0.29 | +| SEI | 12-13 04:00 | 12-13 06:00 | stop_loss | 2 | -1.49 | +| ARB | 12-12 23:00 | 12-13 08:00 | take_profit | 9 | +1.49 | +| FET | 12-13 02:00 | 12-13 08:00 | take_profit | 6 | +1.49 | +| SUI | 12-13 02:00 | 12-13 08:00 | take_profit | 6 | +1.49 | +| NEAR | 12-12 23:00 | 12-13 09:00 | take_profit | 10 | +1.49 | +| OP | 12-13 02:00 | 12-13 10:00 | take_profit | 8 | +1.49 | +| TRX | 12-12 15:00 | 12-13 12:00 | stop_loss | 21 | -1.49 | +| LTC | 12-12 16:00 | 12-13 13:00 | trailing_stop | 21 | -0.07 | +| UNI | 12-12 23:00 | 12-13 14:00 | trailing_stop | 15 | -0.54 | +| RENDER | 12-13 00:00 | 12-14 04:00 | stop_loss | 28 | -1.49 | +| FET | 12-14 00:00 | 12-14 05:00 | stop_loss | 5 | -1.49 | +| PEPE | 12-14 00:00 | 12-14 05:00 | stop_loss | 5 | -1.49 | +| LTC | 12-13 17:00 | 12-14 06:00 | stop_loss | 13 | -1.49 | +| OP | 12-14 04:00 | 12-14 08:00 | stop_loss | 4 | -1.49 | +| AVAX | 12-14 05:00 | 12-14 10:00 | stop_loss | 5 | -1.49 | +| FET | 12-14 05:00 | 12-14 10:00 | stop_loss | 5 | -1.49 | +| KAS | 12-14 09:00 | 12-14 10:00 | stop_loss | 1 | -1.49 | +| PEPE | 12-14 05:00 | 12-14 10:00 | stop_loss | 5 | -1.49 | +| WIF | 12-14 04:00 | 12-14 10:00 | take_profit | 6 | +1.49 | +| APT | 12-14 06:00 | 12-14 11:00 | stop_loss | 5 | -1.49 | +| ARB | 12-14 10:00 | 12-14 11:00 | stop_loss | 1 | -1.49 | +| ATOM | 12-14 04:00 | 12-14 11:00 | stop_loss | 7 | -1.49 | +| ETC | 12-14 09:00 | 12-14 11:00 | stop_loss | 2 | -1.49 | +| INJ | 12-14 10:00 | 12-14 11:00 | stop_loss | 1 | -1.49 | +| LTC | 12-14 06:00 | 12-14 11:00 | stop_loss | 5 | -1.49 | +| NEAR | 12-14 05:00 | 12-14 11:00 | stop_loss | 6 | -1.49 | +| OP | 12-14 08:00 | 12-14 11:00 | stop_loss | 3 | -1.49 | +| PEPE | 12-14 10:00 | 12-14 11:00 | stop_loss | 1 | -1.49 | +| RENDER | 12-14 04:00 | 12-14 11:00 | stop_loss | 7 | -1.49 | +| SEI | 12-14 06:00 | 12-14 11:00 | stop_loss | 5 | -1.49 | +| SHIB | 12-14 06:00 | 12-14 11:00 | stop_loss | 5 | -1.49 | +| TIA | 12-14 05:00 | 12-14 11:00 | stop_loss | 6 | -1.49 | +| ARB | 12-14 11:00 | 12-14 14:00 | stop_loss | 3 | -1.49 | +| ATOM | 12-14 11:00 | 12-14 14:00 | stop_loss | 3 | -1.49 | +| FIL | 12-14 11:00 | 12-14 14:00 | stop_loss | 3 | -1.49 | +| LTC | 12-14 11:00 | 12-14 14:00 | stop_loss | 3 | -1.49 | +| PEPE | 12-14 11:00 | 12-14 14:00 | stop_loss | 3 | -1.49 | +| ETC | 12-14 11:00 | 12-14 15:00 | stop_loss | 4 | -1.49 | +| PEPE | 12-14 14:00 | 12-14 15:00 | stop_loss | 1 | -1.49 | +| APT | 12-14 14:00 | 12-14 17:00 | stop_loss | 3 | -1.49 | +| ARB | 12-14 14:00 | 12-14 17:00 | stop_loss | 3 | -1.49 | +| AVAX | 12-14 11:00 | 12-14 17:00 | stop_loss | 6 | -1.49 | +| INJ | 12-14 11:00 | 12-14 17:00 | stop_loss | 6 | -1.49 | +| NEAR | 12-14 14:00 | 12-14 17:00 | stop_loss | 3 | -1.49 | +| RENDER | 12-14 14:00 | 12-14 17:00 | stop_loss | 3 | -1.49 | +| SUI | 12-14 15:00 | 12-14 17:00 | stop_loss | 2 | -1.49 | +| TIA | 12-14 14:00 | 12-14 17:00 | stop_loss | 3 | -1.49 | +| WIF | 12-14 17:00 | 12-14 18:00 | trailing_stop | 1 | -0.41 | +| SEI | 12-14 11:00 | 12-14 19:00 | stop_loss | 8 | -1.49 | +| ATOM | 12-14 14:00 | 12-14 20:00 | stop_loss | 6 | -1.49 | +| APT | 12-14 17:00 | 12-14 21:00 | stop_loss | 4 | -1.49 | +| ETC | 12-14 15:00 | 12-14 21:00 | stop_loss | 6 | -1.49 | +| FET | 12-14 17:00 | 12-14 21:00 | stop_loss | 4 | -1.49 | +| KAS | 12-14 20:00 | 12-14 21:00 | stop_loss | 1 | -1.49 | +| LTC | 12-14 14:00 | 12-14 21:00 | stop_loss | 7 | -1.49 | +| NEAR | 12-14 17:00 | 12-14 21:00 | stop_loss | 4 | -1.49 | +| PEPE | 12-14 15:00 | 12-14 21:00 | stop_loss | 6 | -1.49 | +| RENDER | 12-14 17:00 | 12-14 21:00 | stop_loss | 4 | -1.49 | +| FIL | 12-14 14:00 | 12-14 22:00 | confirmed_bearish_exit | 8 | +0.10 | +| SUI | 12-14 17:00 | 12-14 22:00 | stop_loss | 5 | -1.49 | +| ARB | 12-14 17:00 | 12-14 23:00 | stop_loss | 6 | -1.49 | +| INJ | 12-14 17:00 | 12-14 23:00 | stop_loss | 6 | -1.49 | +| KAS | 12-14 21:00 | 12-14 23:00 | stop_loss | 2 | -1.49 | +| SHIB | 12-14 14:00 | 12-14 23:00 | stop_loss | 9 | -1.49 | +| TIA | 12-14 17:00 | 12-14 23:00 | stop_loss | 6 | -1.49 | +| UNI | 12-14 17:00 | 12-14 23:00 | stop_loss | 6 | -1.49 | +| WIF | 12-14 21:00 | 12-14 23:00 | stop_loss | 2 | -1.49 | +| TRX | 12-13 12:00 | 12-15 00:00 | take_profit | 36 | +1.49 | +| KAS | 12-14 23:00 | 12-15 02:00 | take_profit | 3 | +1.49 | +| TIA | 12-15 02:00 | 12-15 11:00 | trailing_stop | 9 | -0.62 | +| SUI | 12-15 03:00 | 12-15 13:00 | stop_loss | 10 | -1.49 | +| SHIB | 12-15 00:00 | 12-15 14:00 | stop_loss | 14 | -1.49 | +| BONK | 12-15 14:00 | 12-15 15:00 | stop_loss | 1 | -1.49 | +| FIL | 12-15 14:00 | 12-15 15:00 | stop_loss | 1 | -1.49 | +| SEI | 12-15 14:00 | 12-15 15:00 | stop_loss | 1 | -1.49 | +| SHIB | 12-15 14:00 | 12-15 15:00 | stop_loss | 1 | -1.49 | +| SUI | 12-15 14:00 | 12-15 15:00 | stop_loss | 1 | -1.49 | +| TIA | 12-15 14:00 | 12-15 15:00 | stop_loss | 1 | -1.49 | +| UNI | 12-15 14:00 | 12-15 15:00 | stop_loss | 1 | -1.49 | +| APT | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| ARB | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| ETC | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| FET | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| FIL | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| INJ | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| KAS | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| LTC | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| OP | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| PEPE | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| RENDER | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| SEI | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| SHIB | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| SUI | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| TIA | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| UNI | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| WIF | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| ARB | 12-15 16:00 | 12-15 17:00 | stop_loss | 1 | -1.49 | +| ATOM | 12-15 15:00 | 12-15 17:00 | stop_loss | 2 | -1.49 | +| AVAX | 12-15 15:00 | 12-15 17:00 | stop_loss | 2 | -1.49 | +| BONK | 12-15 15:00 | 12-15 17:00 | stop_loss | 2 | -1.49 | +| ETC | 12-15 16:00 | 12-15 17:00 | stop_loss | 1 | -1.49 | +| FET | 12-15 16:00 | 12-15 17:00 | stop_loss | 1 | -1.49 | +| INJ | 12-15 16:00 | 12-15 17:00 | stop_loss | 1 | -1.49 | +| KAS | 12-15 16:00 | 12-15 17:00 | stop_loss | 1 | -1.49 | +| NEAR | 12-15 15:00 | 12-15 17:00 | stop_loss | 2 | -1.49 | +| OP | 12-15 16:00 | 12-15 17:00 | stop_loss | 1 | -1.49 | +| PEPE | 12-15 16:00 | 12-15 17:00 | stop_loss | 1 | -1.49 | +| RENDER | 12-15 16:00 | 12-15 17:00 | stop_loss | 1 | -1.49 | +| SEI | 12-15 16:00 | 12-15 17:00 | stop_loss | 1 | -1.49 | +| SHIB | 12-15 16:00 | 12-15 17:00 | stop_loss | 1 | -1.49 | +| SUI | 12-15 16:00 | 12-15 17:00 | stop_loss | 1 | -1.49 | +| TIA | 12-15 16:00 | 12-15 17:00 | stop_loss | 1 | -1.49 | +| APT | 12-15 16:00 | 12-15 18:00 | stop_loss | 2 | -1.49 | +| ARB | 12-15 17:00 | 12-15 18:00 | stop_loss | 1 | -1.49 | +| BONK | 12-15 17:00 | 12-15 18:00 | stop_loss | 1 | -1.49 | +| FET | 12-15 17:00 | 12-15 18:00 | stop_loss | 1 | -1.49 | +| FIL | 12-15 16:00 | 12-15 18:00 | stop_loss | 2 | -1.49 | +| INJ | 12-15 17:00 | 12-15 18:00 | stop_loss | 1 | -1.49 | +| LTC | 12-15 16:00 | 12-15 18:00 | stop_loss | 2 | -1.49 | +| NEAR | 12-15 17:00 | 12-15 18:00 | stop_loss | 1 | -1.49 | +| OP | 12-15 17:00 | 12-15 18:00 | stop_loss | 1 | -1.49 | +| PEPE | 12-15 17:00 | 12-15 18:00 | stop_loss | 1 | -1.49 | +| RENDER | 12-15 17:00 | 12-15 18:00 | stop_loss | 1 | -1.49 | +| SUI | 12-15 17:00 | 12-15 18:00 | stop_loss | 1 | -1.49 | +| UNI | 12-15 16:00 | 12-15 18:00 | stop_loss | 2 | -1.49 | +| WIF | 12-15 17:00 | 12-15 18:00 | stop_loss | 1 | -1.49 | +| ARB | 12-15 18:00 | 12-15 19:00 | trailing_stop | 1 | -0.63 | +| KAS | 12-15 17:00 | 12-15 19:00 | trailing_stop | 2 | +0.14 | +| TIA | 12-15 17:00 | 12-15 19:00 | take_profit | 2 | +1.49 | +| FET | 12-15 18:00 | 12-15 20:00 | stop_loss | 2 | -1.49 | +| RENDER | 12-15 18:00 | 12-15 20:00 | stop_loss | 2 | -1.49 | +| WIF | 12-15 18:00 | 12-15 20:00 | stop_loss | 2 | -1.49 | +| SEI | 12-15 17:00 | 12-15 21:00 | trailing_stop | 4 | -0.35 | +| NEAR | 12-15 18:00 | 12-15 23:00 | take_profit | 5 | +1.49 | +| APT | 12-15 23:00 | 12-16 00:00 | stop_loss | 1 | -1.49 | +| BONK | 12-15 23:00 | 12-16 00:00 | stop_loss | 1 | -1.49 | +| FIL | 12-15 23:00 | 12-16 00:00 | stop_loss | 1 | -1.49 | +| INJ | 12-15 23:00 | 12-16 00:00 | stop_loss | 1 | -1.49 | +| OP | 12-15 23:00 | 12-16 00:00 | stop_loss | 1 | -1.49 | +| SHIB | 12-15 17:00 | 12-16 00:00 | take_profit | 7 | +1.49 | +| SUI | 12-15 18:00 | 12-16 00:00 | trailing_stop | 6 | -0.68 | +| AVAX | 12-15 17:00 | 12-16 01:00 | stop_loss | 8 | -1.49 | +| PEPE | 12-15 18:00 | 12-16 01:00 | trailing_stop | 7 | -0.22 | +| APT | 12-16 00:00 | 12-16 02:00 | take_profit | 2 | +1.49 | +| ETC | 12-15 17:00 | 12-16 02:00 | trailing_stop | 9 | -0.27 | +| APT | 12-16 02:00 | 12-16 03:00 | stop_loss | 1 | -1.49 | +| KAS | 12-15 23:00 | 12-16 03:00 | stop_loss | 4 | -1.49 | +| APT | 12-16 03:00 | 12-16 04:00 | stop_loss | 1 | -1.49 | +| ATOM | 12-15 17:00 | 12-16 04:00 | trailing_stop | 11 | -0.27 | +| BONK | 12-16 00:00 | 12-16 04:00 | stop_loss | 4 | -1.49 | +| FIL | 12-16 00:00 | 12-16 04:00 | trailing_stop | 4 | -0.66 | +| INJ | 12-16 00:00 | 12-16 04:00 | stop_loss | 4 | -1.49 | +| LTC | 12-15 23:00 | 12-16 04:00 | stop_loss | 5 | -1.49 | +| NEAR | 12-15 23:00 | 12-16 04:00 | stop_loss | 5 | -1.49 | +| OP | 12-16 00:00 | 12-16 04:00 | stop_loss | 4 | -1.49 | +| PEPE | 12-16 01:00 | 12-16 04:00 | stop_loss | 3 | -1.49 | +| RENDER | 12-16 00:00 | 12-16 04:00 | trailing_stop | 4 | -0.42 | +| SEI | 12-15 23:00 | 12-16 04:00 | stop_loss | 5 | -1.49 | +| SHIB | 12-16 00:00 | 12-16 04:00 | stop_loss | 4 | -1.49 | +| SUI | 12-16 01:00 | 12-16 04:00 | stop_loss | 3 | -1.49 | +| UNI | 12-16 03:00 | 12-16 04:00 | stop_loss | 1 | -1.49 | +| WIF | 12-16 00:00 | 12-16 04:00 | stop_loss | 4 | -1.49 | +| TIA | 12-16 04:00 | 12-16 05:00 | stop_loss | 1 | -1.49 | +| ARB | 12-16 04:00 | 12-16 07:00 | stop_loss | 3 | -1.49 | +| BONK | 12-16 04:00 | 12-16 07:00 | stop_loss | 3 | -1.49 | +| NEAR | 12-16 04:00 | 12-16 07:00 | stop_loss | 3 | -1.49 | +| RENDER | 12-16 04:00 | 12-16 07:00 | trailing_stop | 3 | -0.70 | +| INJ | 12-16 04:00 | 12-16 10:00 | take_profit | 6 | +1.49 | +| LTC | 12-16 04:00 | 12-16 10:00 | take_profit | 6 | +1.49 | +| SUI | 12-16 04:00 | 12-16 10:00 | take_profit | 6 | +1.49 | +| SEI | 12-16 04:00 | 12-16 12:00 | take_profit | 8 | +1.49 | +| ATOM | 12-16 04:00 | 12-16 13:00 | trailing_stop | 9 | -0.45 | +| AVAX | 12-16 13:00 | 12-16 14:00 | take_profit | 1 | +1.49 | +| ATOM | 12-16 17:00 | 12-16 23:00 | trailing_stop | 6 | -0.53 | +| ARB | 12-17 06:00 | 12-17 08:00 | stop_loss | 2 | -1.49 | +| OP | 12-17 05:00 | 12-17 08:00 | stop_loss | 3 | -1.49 | +| KAS | 12-17 07:00 | 12-17 09:00 | stop_loss | 2 | -1.49 | +| APT | 12-17 05:00 | 12-17 10:00 | stop_loss | 5 | -1.49 | +| BONK | 12-17 08:00 | 12-17 10:00 | stop_loss | 2 | -1.49 | +| SUI | 12-17 04:00 | 12-17 10:00 | stop_loss | 6 | -1.49 | +| TIA | 12-17 08:00 | 12-17 10:00 | stop_loss | 2 | -1.49 | +| APT | 12-17 10:00 | 12-17 13:00 | take_profit | 3 | +1.49 | +| BONK | 12-17 10:00 | 12-17 13:00 | take_profit | 3 | +1.49 | +| KAS | 12-17 09:00 | 12-17 13:00 | trailing_stop | 4 | +0.10 | +| LTC | 12-17 08:00 | 12-17 13:00 | trailing_stop | 5 | -0.59 | +| OP | 12-17 09:00 | 12-17 13:00 | trailing_stop | 4 | +0.22 | +| RENDER | 12-17 08:00 | 12-17 13:00 | trailing_stop | 5 | +0.19 | +| UNI | 12-17 05:00 | 12-17 13:00 | trailing_stop | 8 | -0.70 | +| WIF | 12-17 08:00 | 12-17 13:00 | trailing_stop | 5 | -0.61 | +| ARB | 12-17 08:00 | 12-17 14:00 | stop_loss | 6 | -1.49 | +| AVAX | 12-17 08:00 | 12-17 14:00 | take_profit | 6 | +1.49 | +| ETC | 12-17 08:00 | 12-17 14:00 | stop_loss | 6 | -1.49 | +| NEAR | 12-17 08:00 | 12-17 14:00 | stop_loss | 6 | -1.49 | +| PEPE | 12-17 08:00 | 12-17 14:00 | stop_loss | 6 | -1.49 | +| SHIB | 12-17 09:00 | 12-17 14:00 | take_profit | 5 | +1.49 | +| ARB | 12-17 15:00 | 12-17 16:00 | stop_loss | 1 | -1.49 | +| ETC | 12-17 15:00 | 12-17 16:00 | stop_loss | 1 | -1.49 | +| KAS | 12-17 15:00 | 12-17 16:00 | stop_loss | 1 | -1.49 | +| APT | 12-17 16:00 | 12-17 17:00 | stop_loss | 1 | -1.49 | +| ARB | 12-17 16:00 | 12-17 17:00 | stop_loss | 1 | -1.49 | +| ATOM | 12-17 16:00 | 12-17 17:00 | stop_loss | 1 | -1.49 | +| ETC | 12-17 16:00 | 12-17 17:00 | stop_loss | 1 | -1.49 | +| FIL | 12-17 16:00 | 12-17 17:00 | stop_loss | 1 | -1.49 | +| INJ | 12-17 16:00 | 12-17 17:00 | stop_loss | 1 | -1.49 | +| KAS | 12-17 16:00 | 12-17 17:00 | stop_loss | 1 | -1.49 | +| OP | 12-17 16:00 | 12-17 17:00 | stop_loss | 1 | -1.49 | +| PEPE | 12-17 16:00 | 12-17 17:00 | stop_loss | 1 | -1.49 | +| SHIB | 12-17 16:00 | 12-17 17:00 | stop_loss | 1 | -1.49 | +| ARB | 12-17 17:00 | 12-17 18:00 | stop_loss | 1 | -1.49 | +| AVAX | 12-17 16:00 | 12-17 18:00 | stop_loss | 2 | -1.49 | +| FET | 12-17 17:00 | 12-17 18:00 | stop_loss | 1 | -1.49 | +| FIL | 12-17 17:00 | 12-17 18:00 | stop_loss | 1 | -1.49 | +| INJ | 12-17 17:00 | 12-17 18:00 | stop_loss | 1 | -1.49 | +| KAS | 12-17 17:00 | 12-17 18:00 | stop_loss | 1 | -1.49 | +| LTC | 12-17 17:00 | 12-17 18:00 | stop_loss | 1 | -1.49 | +| NEAR | 12-17 17:00 | 12-17 18:00 | stop_loss | 1 | -1.49 | +| OP | 12-17 17:00 | 12-17 18:00 | stop_loss | 1 | -1.49 | +| RENDER | 12-17 17:00 | 12-17 18:00 | stop_loss | 1 | -1.49 | +| UNI | 12-17 17:00 | 12-17 18:00 | stop_loss | 1 | -1.49 | +| APT | 12-17 17:00 | 12-17 19:00 | stop_loss | 2 | -1.49 | +| BONK | 12-17 18:00 | 12-17 19:00 | trailing_stop | 1 | -0.69 | +| ETC | 12-17 17:00 | 12-17 19:00 | stop_loss | 2 | -1.49 | +| FET | 12-17 18:00 | 12-17 19:00 | trailing_stop | 1 | -0.69 | +| KAS | 12-17 18:00 | 12-17 19:00 | trailing_stop | 1 | -0.65 | +| OP | 12-17 18:00 | 12-17 19:00 | trailing_stop | 1 | -0.61 | +| PEPE | 12-17 17:00 | 12-17 19:00 | stop_loss | 2 | -1.49 | +| SHIB | 12-17 17:00 | 12-17 19:00 | stop_loss | 2 | -1.49 | +| TIA | 12-17 17:00 | 12-17 19:00 | stop_loss | 2 | -1.49 | +| WIF | 12-17 18:00 | 12-17 19:00 | trailing_stop | 1 | +0.04 | +| ARB | 12-17 18:00 | 12-17 20:00 | take_profit | 2 | +1.49 | +| INJ | 12-17 18:00 | 12-17 20:00 | take_profit | 2 | +1.49 | +| SUI | 12-17 18:00 | 12-17 20:00 | take_profit | 2 | +1.49 | +| FIL | 12-17 18:00 | 12-17 22:00 | stop_loss | 4 | -1.49 | +| NEAR | 12-17 18:00 | 12-17 22:00 | trailing_stop | 4 | -0.69 | +| RENDER | 12-17 18:00 | 12-18 00:00 | stop_loss | 6 | -1.49 | +| ATOM | 12-17 18:00 | 12-18 01:00 | stop_loss | 7 | -1.49 | +| FIL | 12-18 02:00 | 12-18 03:00 | stop_loss | 1 | -1.49 | +| AVAX | 12-17 18:00 | 12-18 05:00 | stop_loss | 11 | -1.49 | +| UNI | 12-18 04:00 | 12-18 05:00 | stop_loss | 1 | -1.49 | +| ATOM | 12-18 09:00 | 12-18 13:00 | take_profit | 4 | +1.49 | +| LTC | 12-17 18:00 | 12-18 13:00 | take_profit | 19 | +1.49 | +| SHIB | 12-18 12:00 | 12-18 13:00 | trailing_stop | 1 | -0.33 | +| ETC | 12-18 17:00 | 12-18 18:00 | stop_loss | 1 | -1.49 | +| PEPE | 12-18 17:00 | 12-18 18:00 | stop_loss | 1 | -1.49 | +| WIF | 12-18 17:00 | 12-18 18:00 | stop_loss | 1 | -1.49 | +| ARB | 12-18 18:00 | 12-18 19:00 | stop_loss | 1 | -1.49 | +| ETC | 12-18 18:00 | 12-18 19:00 | stop_loss | 1 | -1.49 | +| OP | 12-18 18:00 | 12-18 19:00 | stop_loss | 1 | -1.49 | +| RENDER | 12-18 18:00 | 12-18 19:00 | stop_loss | 1 | -1.49 | +| SHIB | 12-18 18:00 | 12-18 19:00 | stop_loss | 1 | -1.49 | +| APT | 12-18 19:00 | 12-18 21:00 | take_profit | 2 | +1.49 | +| ARB | 12-18 19:00 | 12-18 21:00 | take_profit | 2 | +1.49 | +| AVAX | 12-18 19:00 | 12-18 21:00 | take_profit | 2 | +1.49 | +| ETC | 12-18 20:00 | 12-18 21:00 | trailing_stop | 1 | -0.06 | +| FET | 12-18 19:00 | 12-18 21:00 | take_profit | 2 | +1.49 | +| FIL | 12-18 19:00 | 12-18 21:00 | take_profit | 2 | +1.49 | +| INJ | 12-18 19:00 | 12-18 21:00 | take_profit | 2 | +1.49 | +| KAS | 12-18 19:00 | 12-18 21:00 | take_profit | 2 | +1.49 | +| LTC | 12-18 19:00 | 12-18 21:00 | take_profit | 2 | +1.49 | +| OP | 12-18 19:00 | 12-18 21:00 | take_profit | 2 | +1.49 | +| PEPE | 12-18 19:00 | 12-18 21:00 | take_profit | 2 | +1.49 | +| RENDER | 12-18 19:00 | 12-18 21:00 | take_profit | 2 | +1.49 | +| SEI | 12-18 19:00 | 12-18 21:00 | trailing_stop | 2 | -0.23 | +| SHIB | 12-18 19:00 | 12-18 21:00 | trailing_stop | 2 | -0.63 | +| SUI | 12-18 19:00 | 12-18 21:00 | take_profit | 2 | +1.49 | +| TIA | 12-18 19:00 | 12-18 21:00 | take_profit | 2 | +1.49 | +| UNI | 12-18 23:00 | 12-19 01:00 | stop_loss | 2 | -1.49 | +| ARB | 12-19 03:00 | 12-19 06:00 | trailing_stop | 3 | -0.39 | +| ATOM | 12-19 05:00 | 12-19 06:00 | stop_loss | 1 | -1.49 | +| NEAR | 12-19 05:00 | 12-19 06:00 | trailing_stop | 1 | -0.70 | +| SUI | 12-19 03:00 | 12-19 06:00 | take_profit | 3 | +1.49 | +| BONK | 12-19 05:00 | 12-19 07:00 | take_profit | 2 | +1.49 | +| KAS | 12-19 03:00 | 12-19 07:00 | take_profit | 4 | +1.49 | +| OP | 12-19 05:00 | 12-19 07:00 | take_profit | 2 | +1.49 | +| RENDER | 12-19 04:00 | 12-19 07:00 | take_profit | 3 | +1.49 | +| TIA | 12-19 03:00 | 12-19 07:00 | take_profit | 4 | +1.49 | +| UNI | 12-19 03:00 | 12-19 07:00 | take_profit | 4 | +1.49 | +| WIF | 12-19 05:00 | 12-19 07:00 | take_profit | 2 | +1.49 | +| NEAR | 12-19 06:00 | 12-19 12:00 | take_profit | 6 | +1.49 | +| ATOM | 12-19 06:00 | 12-19 14:00 | take_profit | 8 | +1.49 | +| RENDER | 12-20 09:00 | 12-20 10:00 | stop_loss | 1 | -1.49 | +| TIA | 12-20 09:00 | 12-20 10:00 | stop_loss | 1 | -1.49 | +| WIF | 12-20 09:00 | 12-20 10:00 | stop_loss | 1 | -1.49 | +| TIA | 12-20 10:00 | 12-20 14:00 | trailing_stop | 4 | -0.63 | +| FET | 12-20 10:00 | 12-20 22:00 | trailing_stop | 12 | -0.00 | +| APT | 12-20 22:00 | 12-21 00:00 | stop_loss | 2 | -1.49 | +| PEPE | 12-20 10:00 | 12-21 01:00 | stop_loss | 15 | -1.49 | +| RENDER | 12-20 10:00 | 12-21 01:00 | trailing_stop | 15 | -0.70 | +| WIF | 12-20 10:00 | 12-21 01:00 | stop_loss | 15 | -1.49 | +| NEAR | 12-20 10:00 | 12-21 02:00 | stop_loss | 16 | -1.49 | +| SHIB | 12-20 09:00 | 12-21 02:00 | stop_loss | 17 | -1.49 | +| KAS | 12-21 02:00 | 12-21 05:00 | take_profit | 3 | +1.49 | +| WIF | 12-21 01:00 | 12-21 05:00 | take_profit | 4 | +1.49 | +| APT | 12-21 00:00 | 12-21 08:00 | take_profit | 8 | +1.49 | +| TIA | 12-21 02:00 | 12-21 08:00 | take_profit | 6 | +1.49 | +| SUI | 12-21 01:00 | 12-21 09:00 | take_profit | 8 | +1.49 | +| TRX | 12-15 17:00 | 12-21 09:00 | take_profit | 136 | +1.49 | +| ARB | 12-21 01:00 | 12-21 11:00 | trailing_stop | 10 | -0.13 | +| BONK | 12-21 01:00 | 12-21 12:00 | stop_loss | 11 | -1.49 | +| FET | 12-21 02:00 | 12-21 12:00 | trailing_stop | 10 | -0.27 | +| INJ | 12-21 01:00 | 12-21 12:00 | stop_loss | 11 | -1.49 | +| OP | 12-21 01:00 | 12-21 12:00 | stop_loss | 11 | -1.49 | +| SEI | 12-21 02:00 | 12-21 12:00 | trailing_stop | 10 | -0.17 | +| SHIB | 12-21 02:00 | 12-21 12:00 | trailing_stop | 10 | -0.66 | +| ATOM | 12-21 02:00 | 12-21 13:00 | stop_loss | 11 | -1.49 | +| AVAX | 12-20 22:00 | 12-21 13:00 | stop_loss | 15 | -1.49 | +| BONK | 12-21 12:00 | 12-21 13:00 | stop_loss | 1 | -1.49 | +| ETC | 12-21 01:00 | 12-21 13:00 | stop_loss | 12 | -1.49 | +| INJ | 12-21 12:00 | 12-21 13:00 | stop_loss | 1 | -1.49 | +| LTC | 12-21 12:00 | 12-21 13:00 | stop_loss | 1 | -1.49 | +| PEPE | 12-21 01:00 | 12-21 13:00 | stop_loss | 12 | -1.49 | +| RENDER | 12-21 12:00 | 12-21 13:00 | stop_loss | 1 | -1.49 | +| SEI | 12-21 12:00 | 12-21 13:00 | stop_loss | 1 | -1.49 | +| SHIB | 12-21 12:00 | 12-21 13:00 | stop_loss | 1 | -1.49 | +| TIA | 12-21 12:00 | 12-21 13:00 | stop_loss | 1 | -1.49 | +| SEI | 12-21 13:00 | 12-21 14:00 | trailing_stop | 1 | -0.21 | +| APT | 12-21 13:00 | 12-21 16:00 | trailing_stop | 3 | -0.47 | +| FET | 12-21 13:00 | 12-21 16:00 | take_profit | 3 | +1.49 | +| INJ | 12-21 13:00 | 12-21 16:00 | trailing_stop | 3 | -0.56 | +| OP | 12-21 13:00 | 12-21 16:00 | take_profit | 3 | +1.49 | +| TIA | 12-21 13:00 | 12-21 16:00 | take_profit | 3 | +1.49 | +| PEPE | 12-21 13:00 | 12-21 17:00 | take_profit | 4 | +1.49 | +| RENDER | 12-21 13:00 | 12-21 17:00 | take_profit | 4 | +1.49 | +| WIF | 12-21 13:00 | 12-21 17:00 | take_profit | 4 | +1.49 | +| FIL | 12-21 13:00 | 12-21 18:00 | trailing_stop | 5 | -0.43 | +| NEAR | 12-21 13:00 | 12-21 18:00 | trailing_stop | 5 | -0.56 | +| SEI | 12-21 14:00 | 12-21 19:00 | take_profit | 5 | +1.49 | +| ARB | 12-21 13:00 | 12-21 21:00 | trailing_stop | 8 | -0.24 | +| BONK | 12-21 13:00 | 12-21 22:00 | take_profit | 9 | +1.49 | +| OP | 12-21 20:00 | 12-21 22:00 | trailing_stop | 2 | -0.63 | +| RENDER | 12-21 21:00 | 12-21 22:00 | trailing_stop | 1 | +0.04 | +| ATOM | 12-21 13:00 | 12-21 23:00 | take_profit | 10 | +1.49 | +| FIL | 12-21 22:00 | 12-21 23:00 | stop_loss | 1 | -1.49 | +| ETC | 12-21 13:00 | 12-22 00:00 | take_profit | 11 | +1.49 | +| LTC | 12-21 13:00 | 12-22 00:00 | take_profit | 11 | +1.49 | +| SHIB | 12-21 13:00 | 12-22 00:00 | take_profit | 11 | +1.49 | +| FIL | 12-21 23:00 | 12-22 07:00 | take_profit | 8 | +1.49 | +| TIA | 12-22 18:00 | 12-22 19:00 | stop_loss | 1 | -1.49 | +| WIF | 12-22 17:00 | 12-22 19:00 | stop_loss | 2 | -1.49 | +| UNI | 12-22 19:00 | 12-22 20:00 | stop_loss | 1 | -1.49 | +| FET | 12-22 19:00 | 12-22 22:00 | trailing_stop | 3 | +0.05 | +| TIA | 12-22 19:00 | 12-22 22:00 | trailing_stop | 3 | -0.35 | +| UNI | 12-22 20:00 | 12-22 22:00 | trailing_stop | 2 | -0.24 | +| WIF | 12-22 19:00 | 12-22 22:00 | trailing_stop | 3 | -0.10 | +| NEAR | 12-22 22:00 | 12-22 23:00 | stop_loss | 1 | -1.49 | +| KAS | 12-23 00:00 | 12-23 01:00 | stop_loss | 1 | -1.49 | +| NEAR | 12-22 23:00 | 12-23 01:00 | trailing_stop | 2 | -0.66 | +| ARB | 12-22 19:00 | 12-23 02:00 | trailing_stop | 7 | -0.43 | +| BONK | 12-22 19:00 | 12-23 02:00 | trailing_stop | 7 | -0.20 | +| OP | 12-22 19:00 | 12-23 02:00 | trailing_stop | 7 | -0.35 | +| ETC | 12-22 20:00 | 12-23 03:00 | trailing_stop | 7 | -0.10 | +| LTC | 12-22 20:00 | 12-23 03:00 | trailing_stop | 7 | -0.70 | +| RENDER | 12-23 01:00 | 12-23 03:00 | stop_loss | 2 | -1.49 | +| SHIB | 12-22 19:00 | 12-23 03:00 | trailing_stop | 8 | -0.50 | +| FIL | 12-23 02:00 | 12-23 06:00 | stop_loss | 4 | -1.49 | +| UNI | 12-23 02:00 | 12-23 06:00 | stop_loss | 4 | -1.49 | +| APT | 12-23 06:00 | 12-23 08:00 | stop_loss | 2 | -1.49 | +| LTC | 12-23 05:00 | 12-23 13:00 | stop_loss | 8 | -1.49 | +| RENDER | 12-23 12:00 | 12-23 13:00 | stop_loss | 1 | -1.49 | +| WIF | 12-23 05:00 | 12-23 13:00 | stop_loss | 8 | -1.49 | +| ARB | 12-23 12:00 | 12-23 14:00 | stop_loss | 2 | -1.49 | +| BONK | 12-23 12:00 | 12-23 14:00 | stop_loss | 2 | -1.49 | +| ETC | 12-23 12:00 | 12-23 14:00 | stop_loss | 2 | -1.49 | +| SUI | 12-23 13:00 | 12-23 14:00 | stop_loss | 1 | -1.49 | +| UNI | 12-23 12:00 | 12-23 14:00 | stop_loss | 2 | -1.49 | +| FET | 12-23 14:00 | 12-23 15:00 | trailing_stop | 1 | -0.11 | +| FIL | 12-23 12:00 | 12-23 15:00 | trailing_stop | 3 | -0.19 | +| TRX | 12-22 10:00 | 12-23 15:00 | stop_loss | 29 | -1.49 | +| UNI | 12-23 14:00 | 12-23 15:00 | take_profit | 1 | +1.49 | +| ARB | 12-23 14:00 | 12-23 16:00 | take_profit | 2 | +1.49 | +| BONK | 12-23 14:00 | 12-23 16:00 | take_profit | 2 | +1.49 | +| LTC | 12-23 14:00 | 12-23 16:00 | take_profit | 2 | +1.49 | +| OP | 12-23 14:00 | 12-23 16:00 | take_profit | 2 | +1.49 | +| PEPE | 12-23 14:00 | 12-23 16:00 | take_profit | 2 | +1.49 | +| RENDER | 12-23 14:00 | 12-23 16:00 | take_profit | 2 | +1.49 | +| SEI | 12-23 14:00 | 12-23 16:00 | take_profit | 2 | +1.49 | +| TIA | 12-23 14:00 | 12-23 16:00 | take_profit | 2 | +1.49 | +| ETC | 12-23 14:00 | 12-23 17:00 | trailing_stop | 3 | -0.26 | +| AVAX | 12-23 14:00 | 12-23 18:00 | trailing_stop | 4 | +0.03 | +| KAS | 12-23 14:00 | 12-23 18:00 | take_profit | 4 | +1.49 | +| UNI | 12-23 20:00 | 12-23 21:00 | trailing_stop | 1 | -0.68 | +| UNI | 12-23 21:00 | 12-24 02:00 | stop_loss | 5 | -1.49 | +| NEAR | 12-24 02:00 | 12-24 07:00 | stop_loss | 5 | -1.49 | +| FIL | 12-24 06:00 | 12-24 08:00 | stop_loss | 2 | -1.49 | +| RENDER | 12-24 05:00 | 12-24 08:00 | stop_loss | 3 | -1.49 | +| UNI | 12-24 06:00 | 12-24 10:00 | take_profit | 4 | +1.49 | +| RENDER | 12-24 08:00 | 12-24 11:00 | confirmed_bearish_exit | 3 | +0.31 | +| TIA | 12-24 05:00 | 12-24 11:00 | confirmed_bearish_exit | 6 | -0.59 | +| FET | 12-24 12:00 | 12-24 13:00 | stop_loss | 1 | -1.49 | +| ARB | 12-24 10:00 | 12-24 14:00 | stop_loss | 4 | -1.49 | +| BONK | 12-24 11:00 | 12-24 14:00 | stop_loss | 3 | -1.49 | +| FET | 12-24 13:00 | 12-24 14:00 | take_profit | 1 | +1.49 | +| FIL | 12-24 12:00 | 12-24 14:00 | stop_loss | 2 | -1.49 | +| INJ | 12-24 05:00 | 12-24 14:00 | stop_loss | 9 | -1.49 | +| NEAR | 12-24 13:00 | 12-24 14:00 | stop_loss | 1 | -1.49 | +| OP | 12-24 13:00 | 12-24 14:00 | stop_loss | 1 | -1.49 | +| PEPE | 12-24 10:00 | 12-24 14:00 | stop_loss | 4 | -1.49 | +| RENDER | 12-24 13:00 | 12-24 14:00 | stop_loss | 1 | -1.49 | +| TIA | 12-24 13:00 | 12-24 14:00 | stop_loss | 1 | -1.49 | +| WIF | 12-24 09:00 | 12-24 14:00 | stop_loss | 5 | -1.49 | +| ATOM | 12-24 06:00 | 12-24 15:00 | trailing_stop | 9 | -0.49 | +| BONK | 12-24 14:00 | 12-24 15:00 | trailing_stop | 1 | -0.17 | +| TIA | 12-24 14:00 | 12-24 15:00 | trailing_stop | 1 | -0.53 | +| INJ | 12-24 14:00 | 12-24 17:00 | trailing_stop | 3 | -0.51 | +| ETC | 12-24 14:00 | 12-24 20:00 | confirmed_bearish_exit | 6 | +0.33 | +| RENDER | 12-24 14:00 | 12-24 20:00 | take_profit | 6 | +1.49 | +| AVAX | 12-24 14:00 | 12-25 03:00 | take_profit | 13 | +1.49 | +| TRX | 12-24 15:00 | 12-25 09:00 | stop_loss | 18 | -1.49 | +| FIL | 12-24 14:00 | 12-25 10:00 | stop_loss | 20 | -1.49 | +| LTC | 12-24 05:00 | 12-25 10:00 | trailing_stop | 29 | -0.20 | +| OP | 12-24 14:00 | 12-25 10:00 | stop_loss | 20 | -1.49 | +| OP | 12-25 10:00 | 12-25 14:00 | trailing_stop | 4 | -0.52 | +| FIL | 12-25 10:00 | 12-25 15:00 | take_profit | 5 | +1.49 | +| ETC | 12-25 10:00 | 12-25 22:00 | stop_loss | 12 | -1.49 | +| WIF | 12-25 10:00 | 12-25 22:00 | stop_loss | 12 | -1.49 | +| ATOM | 12-25 22:00 | 12-25 23:00 | stop_loss | 1 | -1.49 | +| ETC | 12-25 22:00 | 12-25 23:00 | stop_loss | 1 | -1.49 | +| FET | 12-25 22:00 | 12-25 23:00 | stop_loss | 1 | -1.49 | +| FIL | 12-25 22:00 | 12-25 23:00 | stop_loss | 1 | -1.49 | +| INJ | 12-25 22:00 | 12-25 23:00 | stop_loss | 1 | -1.49 | +| NEAR | 12-25 22:00 | 12-25 23:00 | stop_loss | 1 | -1.49 | +| RENDER | 12-25 22:00 | 12-25 23:00 | stop_loss | 1 | -1.49 | +| SUI | 12-25 22:00 | 12-25 23:00 | stop_loss | 1 | -1.49 | +| TIA | 12-25 22:00 | 12-25 23:00 | stop_loss | 1 | -1.49 | +| APT | 12-25 23:00 | 12-26 00:00 | trailing_stop | 1 | -0.55 | +| PEPE | 12-25 22:00 | 12-26 00:00 | stop_loss | 2 | -1.49 | +| SHIB | 12-25 22:00 | 12-26 00:00 | stop_loss | 2 | -1.49 | +| KAS | 12-25 23:00 | 12-26 01:00 | take_profit | 2 | +1.49 | +| WIF | 12-25 22:00 | 12-26 01:00 | trailing_stop | 3 | -0.32 | +| ATOM | 12-25 23:00 | 12-26 02:00 | take_profit | 3 | +1.49 | +| BONK | 12-25 23:00 | 12-26 02:00 | take_profit | 3 | +1.49 | +| ETC | 12-25 23:00 | 12-26 02:00 | take_profit | 3 | +1.49 | +| FET | 12-25 23:00 | 12-26 02:00 | take_profit | 3 | +1.49 | +| FIL | 12-25 23:00 | 12-26 02:00 | take_profit | 3 | +1.49 | +| INJ | 12-25 23:00 | 12-26 02:00 | take_profit | 3 | +1.49 | +| LTC | 12-25 23:00 | 12-26 02:00 | take_profit | 3 | +1.49 | +| NEAR | 12-25 23:00 | 12-26 02:00 | take_profit | 3 | +1.49 | +| OP | 12-25 23:00 | 12-26 02:00 | take_profit | 3 | +1.49 | +| PEPE | 12-26 00:00 | 12-26 02:00 | take_profit | 2 | +1.49 | +| RENDER | 12-25 23:00 | 12-26 02:00 | take_profit | 3 | +1.49 | +| SEI | 12-25 23:00 | 12-26 02:00 | take_profit | 3 | +1.49 | +| SUI | 12-25 23:00 | 12-26 02:00 | take_profit | 3 | +1.49 | +| TIA | 12-25 23:00 | 12-26 02:00 | take_profit | 3 | +1.49 | +| FIL | 12-26 05:00 | 12-26 07:00 | stop_loss | 2 | -1.49 | +| FIL | 12-26 07:00 | 12-26 11:00 | take_profit | 4 | +1.49 | +| TIA | 12-26 16:00 | 12-26 17:00 | trailing_stop | 1 | -0.22 | +| ARB | 12-26 16:00 | 12-26 18:00 | take_profit | 2 | +1.49 | +| INJ | 12-26 16:00 | 12-26 18:00 | take_profit | 2 | +1.49 | +| ATOM | 12-26 16:00 | 12-26 19:00 | take_profit | 3 | +1.49 | +| SEI | 12-26 16:00 | 12-26 19:00 | take_profit | 3 | +1.49 | +| BONK | 12-26 16:00 | 12-26 20:00 | take_profit | 4 | +1.49 | +| ETC | 12-26 16:00 | 12-26 20:00 | take_profit | 4 | +1.49 | +| PEPE | 12-26 16:00 | 12-26 20:00 | take_profit | 4 | +1.49 | +| WIF | 12-26 16:00 | 12-26 20:00 | take_profit | 4 | +1.49 | +| SUI | 12-26 16:00 | 12-27 03:00 | take_profit | 11 | +1.49 | +| AVAX | 12-26 16:00 | 12-27 05:00 | take_profit | 13 | +1.49 | +| KAS | 12-26 19:00 | 12-27 10:00 | stop_loss | 15 | -1.49 | +| TRX | 12-25 09:00 | 12-27 22:00 | take_profit | 61 | +1.49 | +| UNI | 12-27 22:00 | 12-27 23:00 | trailing_stop | 1 | -0.21 | +| WIF | 12-28 13:00 | 12-28 16:00 | stop_loss | 3 | -1.49 | +| TIA | 12-28 13:00 | 12-28 18:00 | stop_loss | 5 | -1.49 | +| WIF | 12-28 16:00 | 12-28 18:00 | stop_loss | 2 | -1.49 | +| APT | 12-28 13:00 | 12-28 19:00 | stop_loss | 6 | -1.49 | +| LTC | 12-28 13:00 | 12-28 19:00 | stop_loss | 6 | -1.49 | +| SEI | 12-28 18:00 | 12-28 20:00 | stop_loss | 2 | -1.49 | +| FIL | 12-28 21:00 | 12-28 23:00 | trailing_stop | 2 | -0.43 | +| NEAR | 12-28 18:00 | 12-28 23:00 | trailing_stop | 5 | -0.49 | +| UNI | 12-28 20:00 | 12-28 23:00 | trailing_stop | 3 | -0.12 | +| APT | 12-28 19:00 | 12-29 00:00 | take_profit | 5 | +1.49 | +| BONK | 12-28 18:00 | 12-29 00:00 | take_profit | 6 | +1.49 | +| ETC | 12-28 19:00 | 12-29 00:00 | take_profit | 5 | +1.49 | +| FET | 12-28 18:00 | 12-29 00:00 | take_profit | 6 | +1.49 | +| INJ | 12-28 18:00 | 12-29 00:00 | take_profit | 6 | +1.49 | +| OP | 12-28 18:00 | 12-29 00:00 | take_profit | 6 | +1.49 | +| RENDER | 12-28 18:00 | 12-29 00:00 | take_profit | 6 | +1.49 | +| SEI | 12-28 20:00 | 12-29 00:00 | take_profit | 4 | +1.49 | +| SHIB | 12-28 18:00 | 12-29 00:00 | take_profit | 6 | +1.49 | +| TIA | 12-28 18:00 | 12-29 00:00 | take_profit | 6 | +1.49 | +| WIF | 12-28 18:00 | 12-29 00:00 | take_profit | 6 | +1.49 | +| ARB | 12-28 18:00 | 12-29 01:00 | take_profit | 7 | +1.49 | +| SUI | 12-28 19:00 | 12-29 01:00 | take_profit | 6 | +1.49 | +| AVAX | 12-28 18:00 | 12-29 02:00 | take_profit | 8 | +1.49 | +| LTC | 12-28 20:00 | 12-29 02:00 | take_profit | 6 | +1.49 | +| KAS | 12-28 12:00 | 12-29 03:00 | take_profit | 15 | +1.49 | +| ATOM | 12-28 19:00 | 12-29 06:00 | trailing_stop | 11 | +0.12 | +| NEAR | 12-29 09:00 | 12-29 12:00 | stop_loss | 3 | -1.49 | +| WIF | 12-29 12:00 | 12-29 13:00 | stop_loss | 1 | -1.49 | +| INJ | 12-29 12:00 | 12-29 14:00 | stop_loss | 2 | -1.49 | +| TIA | 12-29 12:00 | 12-29 14:00 | stop_loss | 2 | -1.49 | +| WIF | 12-29 13:00 | 12-29 14:00 | stop_loss | 1 | -1.49 | +| ATOM | 12-29 12:00 | 12-29 16:00 | take_profit | 4 | +1.49 | +| WIF | 12-29 14:00 | 12-29 16:00 | stop_loss | 2 | -1.49 | +| FET | 12-29 14:00 | 12-29 17:00 | stop_loss | 3 | -1.49 | +| LTC | 12-29 17:00 | 12-29 18:00 | stop_loss | 1 | -1.49 | +| UNI | 12-29 13:00 | 12-29 19:00 | stop_loss | 6 | -1.49 | +| BONK | 12-29 14:00 | 12-29 20:00 | stop_loss | 6 | -1.49 | +| SHIB | 12-29 16:00 | 12-29 20:00 | stop_loss | 4 | -1.49 | +| WIF | 12-29 16:00 | 12-29 20:00 | trailing_stop | 4 | -0.61 | +| SEI | 12-29 18:00 | 12-30 02:00 | stop_loss | 8 | -1.49 | +| SUI | 12-29 16:00 | 12-30 02:00 | stop_loss | 10 | -1.49 | +| FIL | 12-30 00:00 | 12-30 03:00 | trailing_stop | 3 | -0.10 | +| KAS | 12-30 02:00 | 12-30 03:00 | trailing_stop | 1 | -0.66 | +| ARB | 12-29 13:00 | 12-30 08:00 | take_profit | 19 | +1.49 | +| NEAR | 12-29 12:00 | 12-30 08:00 | take_profit | 20 | +1.49 | +| FIL | 12-30 07:00 | 12-30 11:00 | take_profit | 4 | +1.49 | +| SEI | 12-30 06:00 | 12-30 14:00 | take_profit | 8 | +1.49 | +| WIF | 12-30 14:00 | 12-30 15:00 | stop_loss | 1 | -1.49 | +| ATOM | 12-30 03:00 | 12-30 16:00 | stop_loss | 13 | -1.49 | +| LTC | 12-30 12:00 | 12-30 19:00 | trailing_stop | 7 | -0.61 | +| WIF | 12-30 17:00 | 12-30 19:00 | stop_loss | 2 | -1.49 | +| ETC | 12-29 13:00 | 12-30 22:00 | stop_loss | 33 | -1.49 | +| WIF | 12-30 20:00 | 12-30 23:00 | stop_loss | 3 | -1.49 | +| AVAX | 12-30 06:00 | 12-31 01:00 | take_profit | 19 | +1.49 | +| INJ | 12-30 20:00 | 12-31 06:00 | stop_loss | 10 | -1.49 | +| UNI | 12-30 20:00 | 12-31 07:00 | trailing_stop | 11 | -0.70 | +| WIF | 12-31 07:00 | 12-31 08:00 | stop_loss | 1 | -1.49 | +| TRX | 12-29 08:00 | 12-31 09:00 | trailing_stop | 49 | -0.37 | +| NEAR | 12-30 22:00 | 12-31 10:00 | stop_loss | 12 | -1.49 | +| ETC | 12-31 03:00 | 12-31 15:00 | stop_loss | 12 | -1.49 | +| PEPE | 12-31 05:00 | 12-31 15:00 | stop_loss | 10 | -1.49 | +| SHIB | 12-31 06:00 | 12-31 15:00 | stop_loss | 9 | -1.49 | +| ARB | 12-30 22:00 | 12-31 16:00 | stop_loss | 18 | -1.49 | +| ATOM | 12-31 15:00 | 12-31 16:00 | stop_loss | 1 | -1.49 | +| ETC | 12-31 15:00 | 12-31 16:00 | stop_loss | 1 | -1.49 | +| INJ | 12-31 10:00 | 12-31 16:00 | stop_loss | 6 | -1.49 | +| PEPE | 12-31 15:00 | 12-31 16:00 | stop_loss | 1 | -1.49 | +| UNI | 12-31 15:00 | 12-31 16:00 | stop_loss | 1 | -1.49 | +| ETC | 12-31 16:00 | 12-31 17:00 | stop_loss | 1 | -1.49 | +| FIL | 12-31 16:00 | 12-31 17:00 | stop_loss | 1 | -1.49 | +| INJ | 12-31 16:00 | 12-31 17:00 | stop_loss | 1 | -1.49 | +| WIF | 12-31 16:00 | 12-31 17:00 | stop_loss | 1 | -1.49 | +| ARB | 12-31 16:00 | 12-31 18:00 | stop_loss | 2 | -1.49 | +| ATOM | 12-31 16:00 | 12-31 18:00 | stop_loss | 2 | -1.49 | +| SHIB | 12-31 16:00 | 12-31 18:00 | stop_loss | 2 | -1.49 | +| UNI | 12-31 16:00 | 12-31 19:00 | stop_loss | 3 | -1.49 | +| WIF | 12-31 17:00 | 12-31 19:00 | trailing_stop | 2 | -0.62 | +| APT | 12-31 16:00 | 12-31 20:00 | stop_loss | 4 | -1.49 | +| ARB | 12-31 18:00 | 12-31 20:00 | trailing_stop | 2 | -0.63 | +| FIL | 12-31 17:00 | 12-31 20:00 | take_profit | 3 | +1.49 | +| INJ | 12-31 17:00 | 12-31 20:00 | stop_loss | 3 | -1.49 | +| LTC | 12-31 16:00 | 12-31 20:00 | stop_loss | 4 | -1.49 | +| OP | 12-31 16:00 | 12-31 20:00 | take_profit | 4 | +1.49 | +| SEI | 12-31 17:00 | 12-31 20:00 | stop_loss | 3 | -1.49 | +| SUI | 12-31 16:00 | 12-31 20:00 | stop_loss | 4 | -1.49 | +| TIA | 12-31 16:00 | 12-31 20:00 | take_profit | 4 | +1.49 | +| NEAR | 12-31 16:00 | 12-31 21:00 | take_profit | 5 | +1.49 | +| KAS | 12-31 16:00 | 12-31 22:00 | confirmed_bearish_exit | 6 | -0.50 | +| FET | 12-31 16:00 | 12-31 23:00 | stop_loss | 7 | -1.49 | +| BONK | 12-31 16:00 | 01-01 04:00 | stop_loss | 12 | -1.49 | +| SHIB | 12-31 18:00 | 01-01 05:00 | take_profit | 11 | +1.49 | +| PEPE | 12-31 16:00 | 01-01 06:00 | take_profit | 14 | +1.49 | +| ETC | 12-31 17:00 | 01-01 08:00 | confirmed_bearish_exit | 15 | +1.04 | +| APT | 01-01 03:00 | 01-01 10:00 | take_profit | 7 | +1.49 | +| FIL | 01-01 01:00 | 01-01 11:00 | take_profit | 10 | +1.49 | +| ARB | 01-01 01:00 | 01-01 13:00 | take_profit | 12 | +1.49 | +| ATOM | 12-31 18:00 | 01-01 13:00 | take_profit | 19 | +1.49 | +| SEI | 01-01 01:00 | 01-01 13:00 | take_profit | 12 | +1.49 | +| LTC | 01-01 00:00 | 01-01 15:00 | take_profit | 15 | +1.49 | +| SUI | 01-01 01:00 | 01-01 15:00 | take_profit | 14 | +1.49 | +| AVAX | 12-31 16:00 | 01-01 16:00 | take_profit | 24 | +1.49 | +| UNI | 12-31 19:00 | 01-01 17:00 | take_profit | 22 | +1.49 | +| FIL | 01-02 06:00 | 01-02 11:00 | stop_loss | 5 | -1.49 | +| AVAX | 01-02 14:00 | 01-02 15:00 | stop_loss | 1 | -1.49 | +| APT | 01-02 14:00 | 01-02 16:00 | take_profit | 2 | +1.49 | +| AVAX | 01-02 15:00 | 01-02 16:00 | trailing_stop | 1 | -0.15 | +| FIL | 01-02 11:00 | 01-02 16:00 | take_profit | 5 | +1.49 | +| TRX | 12-31 09:00 | 01-03 00:00 | take_profit | 63 | +1.49 | +| KAS | 01-03 06:00 | 01-03 07:00 | stop_loss | 1 | -1.49 | +| SHIB | 01-03 06:00 | 01-03 07:00 | stop_loss | 1 | -1.49 | +| KAS | 01-03 07:00 | 01-03 13:00 | take_profit | 6 | +1.49 | +| ETC | 01-03 15:00 | 01-03 16:00 | trailing_stop | 1 | -0.27 | +| SHIB | 01-03 07:00 | 01-03 16:00 | take_profit | 9 | +1.49 | +| UNI | 01-03 07:00 | 01-03 16:00 | trailing_stop | 9 | -0.13 | +| FIL | 01-03 18:00 | 01-04 00:00 | take_profit | 6 | +1.49 | +| SEI | 01-03 15:00 | 01-04 00:00 | take_profit | 9 | +1.49 | +| UNI | 01-03 16:00 | 01-04 00:00 | take_profit | 8 | +1.49 | +| LTC | 01-03 15:00 | 01-04 12:00 | take_profit | 21 | +1.49 | +| AVAX | 01-04 02:00 | 01-04 13:00 | take_profit | 11 | +1.49 | +| FIL | 01-04 22:00 | 01-05 01:00 | take_profit | 3 | +1.49 | +| BONK | 01-05 03:00 | 01-05 04:00 | stop_loss | 1 | -1.49 | +| BONK | 01-05 04:00 | 01-05 05:00 | take_profit | 1 | +1.49 | +| SUI | 01-05 04:00 | 01-05 06:00 | stop_loss | 2 | -1.49 | +| OP | 01-05 06:00 | 01-05 09:00 | stop_loss | 3 | -1.49 | +| SHIB | 01-05 06:00 | 01-05 09:00 | stop_loss | 3 | -1.49 | +| WIF | 01-05 09:00 | 01-05 10:00 | stop_loss | 1 | -1.49 | +| WIF | 01-05 11:00 | 01-05 13:00 | trailing_stop | 2 | -0.25 | +| APT | 01-05 06:00 | 01-05 14:00 | trailing_stop | 8 | -0.47 | +| ATOM | 01-05 09:00 | 01-05 14:00 | take_profit | 5 | +1.49 | +| PEPE | 01-05 09:00 | 01-05 14:00 | trailing_stop | 5 | -0.70 | +| TIA | 01-05 06:00 | 01-05 14:00 | take_profit | 8 | +1.49 | +| ARB | 01-05 06:00 | 01-05 15:00 | take_profit | 9 | +1.49 | +| SHIB | 01-05 13:00 | 01-05 15:00 | stop_loss | 2 | -1.49 | +| FIL | 01-06 05:00 | 01-06 07:00 | stop_loss | 2 | -1.49 | +| TRX | 01-04 13:00 | 01-06 09:00 | stop_loss | 44 | -1.49 | +| APT | 01-06 07:00 | 01-06 12:00 | take_profit | 5 | +1.49 | +| FIL | 01-06 07:00 | 01-06 13:00 | take_profit | 6 | +1.49 | +| ARB | 01-06 16:00 | 01-06 17:00 | stop_loss | 1 | -1.49 | +| OP | 01-06 16:00 | 01-06 17:00 | stop_loss | 1 | -1.49 | +| SUI | 01-06 16:00 | 01-06 17:00 | stop_loss | 1 | -1.49 | +| UNI | 01-06 16:00 | 01-06 17:00 | stop_loss | 1 | -1.49 | +| APT | 01-06 17:00 | 01-06 18:00 | take_profit | 1 | +1.49 | +| ARB | 01-06 17:00 | 01-06 18:00 | trailing_stop | 1 | -0.26 | +| BONK | 01-06 17:00 | 01-06 18:00 | trailing_stop | 1 | -0.20 | +| ETC | 01-06 17:00 | 01-06 18:00 | trailing_stop | 1 | -0.43 | +| KAS | 01-06 17:00 | 01-06 18:00 | trailing_stop | 1 | -0.13 | +| LTC | 01-06 17:00 | 01-06 18:00 | trailing_stop | 1 | -0.36 | +| NEAR | 01-06 17:00 | 01-06 18:00 | trailing_stop | 1 | -0.64 | +| OP | 01-06 17:00 | 01-06 18:00 | trailing_stop | 1 | -0.32 | +| PEPE | 01-06 16:00 | 01-06 18:00 | take_profit | 2 | +1.49 | +| SEI | 01-06 17:00 | 01-06 18:00 | trailing_stop | 1 | -0.61 | +| SHIB | 01-06 17:00 | 01-06 18:00 | take_profit | 1 | +1.49 | +| SUI | 01-06 17:00 | 01-06 18:00 | take_profit | 1 | +1.49 | +| TIA | 01-06 17:00 | 01-06 18:00 | trailing_stop | 1 | -0.60 | +| FIL | 01-06 17:00 | 01-06 20:00 | take_profit | 3 | +1.49 | +| SUI | 01-06 18:00 | 01-06 21:00 | take_profit | 3 | +1.49 | +| UNI | 01-06 17:00 | 01-06 21:00 | take_profit | 4 | +1.49 | +| RENDER | 01-07 01:00 | 01-07 02:00 | trailing_stop | 1 | -0.25 | +| SUI | 01-07 01:00 | 01-07 02:00 | trailing_stop | 1 | -0.48 | +| UNI | 01-07 01:00 | 01-07 02:00 | trailing_stop | 1 | -0.52 | +| PEPE | 01-07 00:00 | 01-07 03:00 | take_profit | 3 | +1.49 | +| KAS | 01-07 01:00 | 01-07 07:00 | take_profit | 6 | +1.49 | +| SUI | 01-07 04:00 | 01-07 07:00 | take_profit | 3 | +1.49 | +| AVAX | 01-07 13:00 | 01-07 14:00 | stop_loss | 1 | -1.49 | +| AVAX | 01-07 14:00 | 01-07 15:00 | stop_loss | 1 | -1.49 | +| KAS | 01-07 14:00 | 01-07 15:00 | stop_loss | 1 | -1.49 | +| UNI | 01-07 14:00 | 01-07 15:00 | stop_loss | 1 | -1.49 | +| TRX | 01-06 09:00 | 01-07 16:00 | take_profit | 31 | +1.49 | +| FIL | 01-07 15:00 | 01-07 18:00 | take_profit | 3 | +1.49 | +| UNI | 01-07 15:00 | 01-07 19:00 | stop_loss | 4 | -1.49 | +| APT | 01-08 01:00 | 01-08 02:00 | stop_loss | 1 | -1.49 | +| FIL | 01-08 01:00 | 01-08 02:00 | stop_loss | 1 | -1.49 | +| SEI | 01-08 01:00 | 01-08 02:00 | stop_loss | 1 | -1.49 | +| APT | 01-08 02:00 | 01-08 03:00 | stop_loss | 1 | -1.49 | +| ARB | 01-08 01:00 | 01-08 03:00 | stop_loss | 2 | -1.49 | +| AVAX | 01-07 15:00 | 01-08 03:00 | trailing_stop | 12 | -0.35 | +| BONK | 01-07 23:00 | 01-08 03:00 | stop_loss | 4 | -1.49 | +| INJ | 01-07 15:00 | 01-08 03:00 | stop_loss | 12 | -1.49 | +| KAS | 01-08 00:00 | 01-08 03:00 | stop_loss | 3 | -1.49 | +| NEAR | 01-08 01:00 | 01-08 03:00 | stop_loss | 2 | -1.49 | +| OP | 01-08 01:00 | 01-08 03:00 | stop_loss | 2 | -1.49 | +| UNI | 01-08 00:00 | 01-08 03:00 | stop_loss | 3 | -1.49 | +| WIF | 01-08 02:00 | 01-08 03:00 | stop_loss | 1 | -1.49 | +| AVAX | 01-08 03:00 | 01-08 06:00 | stop_loss | 3 | -1.49 | +| KAS | 01-08 03:00 | 01-08 06:00 | stop_loss | 3 | -1.49 | +| LTC | 01-07 16:00 | 01-08 06:00 | stop_loss | 14 | -1.49 | +| SEI | 01-08 02:00 | 01-08 06:00 | stop_loss | 4 | -1.49 | +| SHIB | 01-08 02:00 | 01-08 06:00 | stop_loss | 4 | -1.49 | +| UNI | 01-08 03:00 | 01-08 06:00 | stop_loss | 3 | -1.49 | +| APT | 01-08 06:00 | 01-08 07:00 | trailing_stop | 1 | -0.45 | +| ARB | 01-08 06:00 | 01-08 07:00 | trailing_stop | 1 | -0.04 | +| INJ | 01-08 06:00 | 01-08 07:00 | trailing_stop | 1 | -0.07 | +| KAS | 01-08 06:00 | 01-08 07:00 | trailing_stop | 1 | -0.47 | +| NEAR | 01-08 06:00 | 01-08 07:00 | take_profit | 1 | +1.49 | +| OP | 01-08 06:00 | 01-08 07:00 | trailing_stop | 1 | -0.11 | +| PEPE | 01-08 06:00 | 01-08 07:00 | stop_loss | 1 | -1.49 | +| SEI | 01-08 06:00 | 01-08 07:00 | trailing_stop | 1 | -0.57 | +| SHIB | 01-08 06:00 | 01-08 07:00 | trailing_stop | 1 | -0.69 | +| TIA | 01-08 06:00 | 01-08 07:00 | trailing_stop | 1 | +0.26 | +| UNI | 01-08 06:00 | 01-08 07:00 | trailing_stop | 1 | +0.01 | +| PEPE | 01-08 08:00 | 01-08 09:00 | stop_loss | 1 | -1.49 | +| AVAX | 01-08 09:00 | 01-08 10:00 | trailing_stop | 1 | -0.50 | +| FIL | 01-08 08:00 | 01-08 10:00 | stop_loss | 2 | -1.49 | +| OP | 01-08 09:00 | 01-08 10:00 | trailing_stop | 1 | -0.61 | +| PEPE | 01-08 09:00 | 01-08 10:00 | stop_loss | 1 | -1.49 | +| TIA | 01-08 09:00 | 01-08 11:00 | stop_loss | 2 | -1.49 | +| WIF | 01-08 09:00 | 01-08 11:00 | trailing_stop | 2 | -0.53 | +| APT | 01-08 09:00 | 01-08 12:00 | stop_loss | 3 | -1.49 | +| INJ | 01-08 09:00 | 01-08 12:00 | stop_loss | 3 | -1.49 | +| TIA | 01-08 11:00 | 01-08 12:00 | stop_loss | 1 | -1.49 | +| BONK | 01-08 12:00 | 01-08 13:00 | stop_loss | 1 | -1.49 | +| APT | 01-08 12:00 | 01-08 14:00 | stop_loss | 2 | -1.49 | +| BONK | 01-08 13:00 | 01-08 14:00 | take_profit | 1 | +1.49 | +| ETC | 01-08 09:00 | 01-08 14:00 | stop_loss | 5 | -1.49 | +| INJ | 01-08 12:00 | 01-08 14:00 | trailing_stop | 2 | -0.64 | +| KAS | 01-08 08:00 | 01-08 14:00 | stop_loss | 6 | -1.49 | +| PEPE | 01-08 12:00 | 01-08 14:00 | stop_loss | 2 | -1.49 | +| RENDER | 01-08 12:00 | 01-08 14:00 | trailing_stop | 2 | -0.19 | +| SEI | 01-08 09:00 | 01-08 14:00 | stop_loss | 5 | -1.49 | +| TIA | 01-08 12:00 | 01-08 14:00 | stop_loss | 2 | -1.49 | +| ARB | 01-08 13:00 | 01-08 15:00 | take_profit | 2 | +1.49 | +| KAS | 01-08 15:00 | 01-08 20:00 | trailing_stop | 5 | -0.71 | +| UNI | 01-08 18:00 | 01-08 20:00 | stop_loss | 2 | -1.49 | +| FET | 01-09 05:00 | 01-09 06:00 | trailing_stop | 1 | -0.43 | +| SEI | 01-09 08:00 | 01-09 13:00 | trailing_stop | 5 | -0.55 | +| SUI | 01-09 08:00 | 01-09 13:00 | take_profit | 5 | +1.49 | +| APT | 01-09 12:00 | 01-09 14:00 | trailing_stop | 2 | -0.71 | +| AVAX | 01-09 08:00 | 01-09 15:00 | take_profit | 7 | +1.49 | +| BONK | 01-10 05:00 | 01-10 06:00 | stop_loss | 1 | -1.49 | +| PEPE | 01-10 11:00 | 01-10 22:00 | stop_loss | 11 | -1.49 | +| TRX | 01-08 08:00 | 01-10 23:00 | take_profit | 63 | +1.49 | +| SEI | 01-10 22:00 | 01-11 09:00 | take_profit | 11 | +1.49 | +| INJ | 01-11 02:00 | 01-11 12:00 | take_profit | 10 | +1.49 | +| ARB | 01-11 02:00 | 01-11 15:00 | trailing_stop | 13 | -0.41 | +| ATOM | 01-11 02:00 | 01-11 15:00 | trailing_stop | 13 | -0.49 | +| AVAX | 01-10 23:00 | 01-11 15:00 | trailing_stop | 16 | -0.10 | +| OP | 01-11 02:00 | 01-11 15:00 | trailing_stop | 13 | -0.18 | +| PEPE | 01-11 15:00 | 01-11 16:00 | trailing_stop | 1 | -0.69 | +| ARB | 01-11 19:00 | 01-11 20:00 | stop_loss | 1 | -1.49 | +| LTC | 01-11 15:00 | 01-11 20:00 | stop_loss | 5 | -1.49 | +| SHIB | 01-11 15:00 | 01-11 20:00 | stop_loss | 5 | -1.49 | +| LTC | 01-11 20:00 | 01-11 21:00 | stop_loss | 1 | -1.49 | +| TIA | 01-11 20:00 | 01-11 21:00 | stop_loss | 1 | -1.49 | +| TRX | 01-11 14:00 | 01-11 21:00 | trailing_stop | 7 | -0.68 | +| APT | 01-11 20:00 | 01-11 22:00 | stop_loss | 2 | -1.49 | +| ETC | 01-11 15:00 | 01-11 22:00 | stop_loss | 7 | -1.49 | +| FIL | 01-11 20:00 | 01-11 22:00 | stop_loss | 2 | -1.49 | +| PEPE | 01-11 20:00 | 01-11 22:00 | stop_loss | 2 | -1.49 | +| SHIB | 01-11 20:00 | 01-11 22:00 | stop_loss | 2 | -1.49 | +| WIF | 01-11 20:00 | 01-11 22:00 | stop_loss | 2 | -1.49 | +| AVAX | 01-11 22:00 | 01-11 23:00 | stop_loss | 1 | -1.49 | +| BONK | 01-11 22:00 | 01-11 23:00 | stop_loss | 1 | -1.49 | +| FIL | 01-11 22:00 | 01-11 23:00 | stop_loss | 1 | -1.49 | +| INJ | 01-11 22:00 | 01-11 23:00 | stop_loss | 1 | -1.49 | +| LTC | 01-11 21:00 | 01-11 23:00 | stop_loss | 2 | -1.49 | +| OP | 01-11 20:00 | 01-11 23:00 | stop_loss | 3 | -1.49 | +| PEPE | 01-11 22:00 | 01-11 23:00 | trailing_stop | 1 | -0.44 | +| TIA | 01-11 22:00 | 01-11 23:00 | trailing_stop | 1 | -0.53 | +| WIF | 01-11 22:00 | 01-11 23:00 | stop_loss | 1 | -1.49 | +| ATOM | 01-11 21:00 | 01-12 00:00 | stop_loss | 3 | -1.49 | +| LTC | 01-11 23:00 | 01-12 00:00 | stop_loss | 1 | -1.49 | +| SUI | 01-11 22:00 | 01-12 00:00 | stop_loss | 2 | -1.49 | +| ARB | 01-11 22:00 | 01-12 01:00 | take_profit | 3 | +1.49 | +| SHIB | 01-11 22:00 | 01-12 01:00 | take_profit | 3 | +1.49 | +| ATOM | 01-12 00:00 | 01-12 02:00 | take_profit | 2 | +1.49 | +| ETC | 01-11 22:00 | 01-12 02:00 | take_profit | 4 | +1.49 | +| SEI | 01-11 22:00 | 01-12 02:00 | take_profit | 4 | +1.49 | +| LTC | 01-12 00:00 | 01-12 04:00 | take_profit | 4 | +1.49 | +| RENDER | 01-12 07:00 | 01-12 08:00 | stop_loss | 1 | -1.49 | +| RENDER | 01-12 08:00 | 01-12 09:00 | stop_loss | 1 | -1.49 | +| LTC | 01-12 07:00 | 01-12 10:00 | stop_loss | 3 | -1.49 | +| RENDER | 01-12 09:00 | 01-12 13:00 | stop_loss | 4 | -1.49 | +| NEAR | 01-12 09:00 | 01-12 14:00 | stop_loss | 5 | -1.49 | +| RENDER | 01-12 13:00 | 01-12 14:00 | take_profit | 1 | +1.49 | +| INJ | 01-12 16:00 | 01-12 17:00 | stop_loss | 1 | -1.49 | +| LTC | 01-12 12:00 | 01-12 18:00 | trailing_stop | 6 | -0.64 | +| FET | 01-12 17:00 | 01-12 19:00 | stop_loss | 2 | -1.49 | +| FIL | 01-12 18:00 | 01-12 19:00 | trailing_stop | 1 | -0.52 | +| ATOM | 01-12 17:00 | 01-12 20:00 | stop_loss | 3 | -1.49 | +| TIA | 01-12 18:00 | 01-12 20:00 | stop_loss | 2 | -1.49 | +| ARB | 01-12 18:00 | 01-12 21:00 | stop_loss | 3 | -1.49 | +| AVAX | 01-12 18:00 | 01-12 21:00 | stop_loss | 3 | -1.49 | +| BONK | 01-12 18:00 | 01-12 21:00 | stop_loss | 3 | -1.49 | +| ETC | 01-12 18:00 | 01-12 21:00 | stop_loss | 3 | -1.49 | +| INJ | 01-12 17:00 | 01-12 21:00 | stop_loss | 4 | -1.49 | +| NEAR | 01-12 18:00 | 01-12 21:00 | stop_loss | 3 | -1.49 | +| OP | 01-12 17:00 | 01-12 21:00 | stop_loss | 4 | -1.49 | +| RENDER | 01-12 17:00 | 01-12 21:00 | stop_loss | 4 | -1.49 | +| SEI | 01-12 18:00 | 01-12 21:00 | stop_loss | 3 | -1.49 | +| WIF | 01-12 18:00 | 01-12 21:00 | stop_loss | 3 | -1.49 | +| FET | 01-13 05:00 | 01-13 12:00 | stop_loss | 7 | -1.49 | +| APT | 01-14 12:00 | 01-14 13:00 | stop_loss | 1 | -1.49 | +| BONK | 01-14 12:00 | 01-14 13:00 | stop_loss | 1 | -1.49 | +| FET | 01-14 12:00 | 01-14 13:00 | stop_loss | 1 | -1.49 | +| INJ | 01-14 12:00 | 01-14 13:00 | stop_loss | 1 | -1.49 | +| OP | 01-14 12:00 | 01-14 13:00 | stop_loss | 1 | -1.49 | +| WIF | 01-14 12:00 | 01-14 13:00 | stop_loss | 1 | -1.49 | +| APT | 01-14 13:00 | 01-14 14:00 | take_profit | 1 | +1.49 | +| FET | 01-14 13:00 | 01-14 14:00 | take_profit | 1 | +1.49 | +| INJ | 01-14 13:00 | 01-14 14:00 | take_profit | 1 | +1.49 | +| SEI | 01-14 12:00 | 01-14 14:00 | trailing_stop | 2 | -0.35 | +| AVAX | 01-14 12:00 | 01-14 15:00 | trailing_stop | 3 | -0.18 | +| ETC | 01-14 12:00 | 01-14 15:00 | take_profit | 3 | +1.49 | +| TRX | 01-14 10:00 | 01-14 15:00 | take_profit | 5 | +1.49 | +| NEAR | 01-14 12:00 | 01-14 16:00 | take_profit | 4 | +1.49 | +| SHIB | 01-14 12:00 | 01-14 16:00 | take_profit | 4 | +1.49 | +| SUI | 01-14 12:00 | 01-14 16:00 | take_profit | 4 | +1.49 | +| PEPE | 01-14 16:00 | 01-14 17:00 | stop_loss | 1 | -1.49 | +| OP | 01-14 13:00 | 01-14 18:00 | stop_loss | 5 | -1.49 | +| PEPE | 01-14 17:00 | 01-14 18:00 | stop_loss | 1 | -1.49 | +| TIA | 01-14 17:00 | 01-14 18:00 | stop_loss | 1 | -1.49 | +| ATOM | 01-14 17:00 | 01-14 22:00 | stop_loss | 5 | -1.49 | +| RENDER | 01-14 22:00 | 01-14 23:00 | stop_loss | 1 | -1.49 | +| LTC | 01-14 22:00 | 01-15 01:00 | stop_loss | 3 | -1.49 | +| PEPE | 01-14 18:00 | 01-15 01:00 | stop_loss | 7 | -1.49 | +| RENDER | 01-14 23:00 | 01-15 01:00 | stop_loss | 2 | -1.49 | +| ARB | 01-14 18:00 | 01-15 02:00 | stop_loss | 8 | -1.49 | +| ARB | 01-15 02:00 | 01-15 03:00 | stop_loss | 1 | -1.49 | +| NEAR | 01-14 22:00 | 01-15 03:00 | stop_loss | 5 | -1.49 | +| OP | 01-14 18:00 | 01-15 03:00 | stop_loss | 9 | -1.49 | +| RENDER | 01-15 01:00 | 01-15 03:00 | stop_loss | 2 | -1.49 | +| UNI | 01-15 02:00 | 01-15 03:00 | stop_loss | 1 | -1.49 | +| ARB | 01-15 03:00 | 01-15 07:00 | take_profit | 4 | +1.49 | +| FET | 01-15 04:00 | 01-15 07:00 | take_profit | 3 | +1.49 | +| INJ | 01-15 03:00 | 01-15 07:00 | trailing_stop | 4 | -0.30 | +| NEAR | 01-15 03:00 | 01-15 07:00 | take_profit | 4 | +1.49 | +| RENDER | 01-15 03:00 | 01-15 07:00 | trailing_stop | 4 | -0.26 | +| TIA | 01-15 03:00 | 01-15 07:00 | take_profit | 4 | +1.49 | +| LTC | 01-15 03:00 | 01-15 09:00 | take_profit | 6 | +1.49 | +| BONK | 01-15 09:00 | 01-15 11:00 | stop_loss | 2 | -1.49 | +| RENDER | 01-15 09:00 | 01-15 12:00 | take_profit | 3 | +1.49 | +| UNI | 01-15 03:00 | 01-15 12:00 | trailing_stop | 9 | -0.47 | +| AVAX | 01-15 11:00 | 01-15 14:00 | stop_loss | 3 | -1.49 | +| INJ | 01-15 10:00 | 01-15 14:00 | stop_loss | 4 | -1.49 | +| SEI | 01-15 10:00 | 01-15 14:00 | stop_loss | 4 | -1.49 | +| SHIB | 01-15 09:00 | 01-15 14:00 | stop_loss | 5 | -1.49 | +| UNI | 01-15 12:00 | 01-15 14:00 | stop_loss | 2 | -1.49 | +| ATOM | 01-15 14:00 | 01-15 15:00 | stop_loss | 1 | -1.49 | +| BONK | 01-15 11:00 | 01-15 15:00 | stop_loss | 4 | -1.49 | +| ETC | 01-15 10:00 | 01-15 15:00 | stop_loss | 5 | -1.49 | +| FIL | 01-15 14:00 | 01-15 15:00 | stop_loss | 1 | -1.49 | +| INJ | 01-15 14:00 | 01-15 15:00 | stop_loss | 1 | -1.49 | +| WIF | 01-15 14:00 | 01-15 15:00 | stop_loss | 1 | -1.49 | +| LTC | 01-15 15:00 | 01-15 16:00 | stop_loss | 1 | -1.49 | +| APT | 01-15 15:00 | 01-15 17:00 | stop_loss | 2 | -1.49 | +| FIL | 01-15 16:00 | 01-15 17:00 | stop_loss | 1 | -1.49 | +| TIA | 01-15 15:00 | 01-15 17:00 | stop_loss | 2 | -1.49 | +| APT | 01-15 17:00 | 01-15 18:00 | stop_loss | 1 | -1.49 | +| ATOM | 01-15 15:00 | 01-15 18:00 | stop_loss | 3 | -1.49 | +| FIL | 01-15 17:00 | 01-15 18:00 | stop_loss | 1 | -1.49 | +| APT | 01-15 18:00 | 01-15 19:00 | stop_loss | 1 | -1.49 | +| FIL | 01-15 18:00 | 01-15 19:00 | stop_loss | 1 | -1.49 | +| KAS | 01-15 18:00 | 01-15 19:00 | trailing_stop | 1 | -0.64 | +| TIA | 01-15 18:00 | 01-15 19:00 | stop_loss | 1 | -1.49 | +| ETC | 01-15 18:00 | 01-15 20:00 | stop_loss | 2 | -1.49 | +| LTC | 01-15 18:00 | 01-15 20:00 | stop_loss | 2 | -1.49 | +| TIA | 01-15 19:00 | 01-15 20:00 | stop_loss | 1 | -1.49 | +| UNI | 01-15 18:00 | 01-15 20:00 | stop_loss | 2 | -1.49 | +| TIA | 01-15 20:00 | 01-15 21:00 | trailing_stop | 1 | +0.01 | +| WIF | 01-15 18:00 | 01-15 22:00 | take_profit | 4 | +1.49 | +| FET | 01-15 19:00 | 01-15 23:00 | take_profit | 4 | +1.49 | +| UNI | 01-15 20:00 | 01-15 23:00 | take_profit | 3 | +1.49 | +| BONK | 01-15 18:00 | 01-16 00:00 | take_profit | 6 | +1.49 | +| OP | 01-15 20:00 | 01-16 01:00 | take_profit | 5 | +1.49 | +| APT | 01-15 19:00 | 01-16 02:00 | trailing_stop | 7 | -0.39 | +| FIL | 01-16 00:00 | 01-16 02:00 | take_profit | 2 | +1.49 | +| OP | 01-16 01:00 | 01-16 02:00 | stop_loss | 1 | -1.49 | +| TIA | 01-16 00:00 | 01-16 02:00 | stop_loss | 2 | -1.49 | +| OP | 01-16 02:00 | 01-16 03:00 | stop_loss | 1 | -1.49 | +| PEPE | 01-16 02:00 | 01-16 03:00 | stop_loss | 1 | -1.49 | +| RENDER | 01-16 02:00 | 01-16 03:00 | stop_loss | 1 | -1.49 | +| APT | 01-16 02:00 | 01-16 04:00 | stop_loss | 2 | -1.49 | +| ARB | 01-16 02:00 | 01-16 04:00 | stop_loss | 2 | -1.49 | +| ETC | 01-15 20:00 | 01-16 04:00 | trailing_stop | 8 | +0.14 | +| FET | 01-16 01:00 | 01-16 04:00 | stop_loss | 3 | -1.49 | +| INJ | 01-15 18:00 | 01-16 04:00 | trailing_stop | 10 | -0.64 | +| LTC | 01-16 02:00 | 01-16 04:00 | stop_loss | 2 | -1.49 | +| NEAR | 01-16 02:00 | 01-16 04:00 | stop_loss | 2 | -1.49 | +| OP | 01-16 03:00 | 01-16 04:00 | stop_loss | 1 | -1.49 | +| SHIB | 01-15 18:00 | 01-16 04:00 | trailing_stop | 10 | -0.51 | +| SUI | 01-16 01:00 | 01-16 04:00 | stop_loss | 3 | -1.49 | +| TIA | 01-16 02:00 | 01-16 04:00 | stop_loss | 2 | -1.49 | +| WIF | 01-16 02:00 | 01-16 04:00 | stop_loss | 2 | -1.49 | +| FET | 01-16 04:00 | 01-16 05:00 | trailing_stop | 1 | -0.40 | +| NEAR | 01-16 04:00 | 01-16 05:00 | trailing_stop | 1 | -0.27 | +| PEPE | 01-16 04:00 | 01-16 05:00 | trailing_stop | 1 | -0.35 | +| RENDER | 01-16 03:00 | 01-16 05:00 | trailing_stop | 2 | -0.03 | +| OP | 01-16 04:00 | 01-16 06:00 | confirmed_bearish_exit | 2 | +0.62 | +| SEI | 01-16 03:00 | 01-16 11:00 | trailing_stop | 8 | -0.46 | +| APT | 01-16 04:00 | 01-16 12:00 | trailing_stop | 8 | -0.50 | +| KAS | 01-15 19:00 | 01-16 13:00 | stop_loss | 18 | -1.49 | +| SHIB | 01-16 04:00 | 01-16 13:00 | trailing_stop | 9 | -0.15 | +| UNI | 01-16 01:00 | 01-16 13:00 | stop_loss | 12 | -1.49 | +| ATOM | 01-15 18:00 | 01-16 15:00 | stop_loss | 21 | -1.49 | +| AVAX | 01-15 18:00 | 01-16 15:00 | stop_loss | 21 | -1.49 | +| ETC | 01-16 04:00 | 01-16 15:00 | stop_loss | 11 | -1.49 | +| INJ | 01-16 04:00 | 01-16 15:00 | stop_loss | 11 | -1.49 | +| KAS | 01-16 13:00 | 01-16 15:00 | stop_loss | 2 | -1.49 | +| LTC | 01-16 04:00 | 01-16 15:00 | stop_loss | 11 | -1.49 | +| SUI | 01-16 04:00 | 01-16 15:00 | stop_loss | 11 | -1.49 | +| AVAX | 01-16 15:00 | 01-16 16:00 | stop_loss | 1 | -1.49 | +| BONK | 01-16 15:00 | 01-16 16:00 | trailing_stop | 1 | -0.58 | +| FET | 01-16 15:00 | 01-16 16:00 | take_profit | 1 | +1.49 | +| INJ | 01-16 15:00 | 01-16 16:00 | trailing_stop | 1 | -0.61 | +| SUI | 01-16 15:00 | 01-16 16:00 | trailing_stop | 1 | -0.43 | +| SHIB | 01-16 15:00 | 01-16 17:00 | trailing_stop | 2 | -0.30 | +| TIA | 01-16 15:00 | 01-16 17:00 | trailing_stop | 2 | -0.21 | +| WIF | 01-16 15:00 | 01-16 17:00 | take_profit | 2 | +1.49 | +| OP | 01-16 15:00 | 01-16 19:00 | trailing_stop | 4 | -0.19 | +| APT | 01-16 15:00 | 01-16 20:00 | take_profit | 5 | +1.49 | +| ARB | 01-16 16:00 | 01-16 20:00 | take_profit | 4 | +1.49 | +| ATOM | 01-16 15:00 | 01-16 20:00 | trailing_stop | 5 | -0.17 | +| AVAX | 01-16 16:00 | 01-16 20:00 | trailing_stop | 4 | -0.16 | +| ETC | 01-16 15:00 | 01-16 20:00 | take_profit | 5 | +1.49 | +| KAS | 01-16 15:00 | 01-16 20:00 | take_profit | 5 | +1.49 | +| NEAR | 01-16 15:00 | 01-16 20:00 | take_profit | 5 | +1.49 | +| SUI | 01-16 16:00 | 01-16 20:00 | take_profit | 4 | +1.49 | +| UNI | 01-16 15:00 | 01-16 20:00 | take_profit | 5 | +1.49 | +| FIL | 01-16 16:00 | 01-17 00:00 | take_profit | 8 | +1.49 | +| TRX | 01-16 10:00 | 01-17 13:00 | take_profit | 27 | +1.49 | +| SHIB | 01-17 12:00 | 01-17 22:00 | trailing_stop | 10 | -0.70 | +| KAS | 01-17 14:00 | 01-17 23:00 | stop_loss | 9 | -1.49 | +| WIF | 01-17 22:00 | 01-18 00:00 | take_profit | 2 | +1.49 | +| INJ | 01-17 22:00 | 01-18 01:00 | stop_loss | 3 | -1.49 | +| TIA | 01-17 22:00 | 01-18 01:00 | stop_loss | 3 | -1.49 | +| BONK | 01-17 22:00 | 01-18 02:00 | stop_loss | 4 | -1.49 | +| INJ | 01-18 02:00 | 01-18 04:00 | confirmed_bearish_exit | 2 | -0.35 | +| NEAR | 01-18 01:00 | 01-18 06:00 | stop_loss | 5 | -1.49 | +| ATOM | 01-18 03:00 | 01-18 07:00 | stop_loss | 4 | -1.49 | +| OP | 01-18 01:00 | 01-18 07:00 | stop_loss | 6 | -1.49 | +| LTC | 01-17 12:00 | 01-18 09:00 | take_profit | 21 | +1.49 | +| RENDER | 01-18 07:00 | 01-18 09:00 | stop_loss | 2 | -1.49 | +| APT | 01-18 04:00 | 01-18 12:00 | stop_loss | 8 | -1.49 | +| ATOM | 01-18 07:00 | 01-18 12:00 | stop_loss | 5 | -1.49 | +| AVAX | 01-18 04:00 | 01-18 13:00 | stop_loss | 9 | -1.49 | +| BONK | 01-18 10:00 | 01-18 13:00 | stop_loss | 3 | -1.49 | +| SUI | 01-17 22:00 | 01-18 13:00 | stop_loss | 15 | -1.49 | +| ETC | 01-18 02:00 | 01-18 14:00 | stop_loss | 12 | -1.49 | +| FIL | 01-18 04:00 | 01-18 14:00 | stop_loss | 10 | -1.49 | +| PEPE | 01-18 10:00 | 01-18 14:00 | stop_loss | 4 | -1.49 | +| RENDER | 01-18 12:00 | 01-18 14:00 | stop_loss | 2 | -1.49 | +| SEI | 01-18 04:00 | 01-18 14:00 | stop_loss | 10 | -1.49 | +| WIF | 01-18 01:00 | 01-18 14:00 | stop_loss | 13 | -1.49 | +| FIL | 01-18 14:00 | 01-18 15:00 | trailing_stop | 1 | +0.12 | +| RENDER | 01-18 14:00 | 01-18 15:00 | trailing_stop | 1 | -0.27 | +| ARB | 01-18 04:00 | 01-18 18:00 | take_profit | 14 | +1.49 | +| KAS | 01-18 10:00 | 01-18 23:00 | stop_loss | 13 | -1.49 | +| PEPE | 01-18 14:00 | 01-18 23:00 | stop_loss | 9 | -1.49 | +| SEI | 01-18 14:00 | 01-18 23:00 | stop_loss | 9 | -1.49 | +| SHIB | 01-18 13:00 | 01-18 23:00 | stop_loss | 10 | -1.49 | +| UNI | 01-18 01:00 | 01-18 23:00 | stop_loss | 22 | -1.49 | +| APT | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| ARB | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| ATOM | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| AVAX | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| BONK | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| ETC | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| FET | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| FIL | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| INJ | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| KAS | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| LTC | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| NEAR | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| OP | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| PEPE | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| RENDER | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| SEI | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| SHIB | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| SUI | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| TIA | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| UNI | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| WIF | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| APT | 01-19 00:00 | 01-19 01:00 | trailing_stop | 1 | -0.37 | +| PEPE | 01-19 00:00 | 01-19 01:00 | stop_loss | 1 | -1.49 | +| SEI | 01-19 00:00 | 01-19 01:00 | trailing_stop | 1 | -0.63 | +| SUI | 01-19 00:00 | 01-19 01:00 | stop_loss | 1 | -1.49 | +| WIF | 01-19 00:00 | 01-19 01:00 | take_profit | 1 | +1.49 | +| APT | 01-19 01:00 | 01-19 02:00 | take_profit | 1 | +1.49 | +| OP | 01-19 00:00 | 01-19 02:00 | take_profit | 2 | +1.49 | +| PEPE | 01-19 01:00 | 01-19 02:00 | trailing_stop | 1 | -0.55 | +| NEAR | 01-19 00:00 | 01-19 03:00 | trailing_stop | 3 | -0.15 | +| RENDER | 01-19 00:00 | 01-19 03:00 | take_profit | 3 | +1.49 | +| UNI | 01-19 00:00 | 01-19 03:00 | take_profit | 3 | +1.49 | +| APT | 01-19 02:00 | 01-19 04:00 | stop_loss | 2 | -1.49 | +| ARB | 01-19 00:00 | 01-19 04:00 | stop_loss | 4 | -1.49 | +| BONK | 01-19 00:00 | 01-19 04:00 | take_profit | 4 | +1.49 | +| INJ | 01-19 00:00 | 01-19 04:00 | trailing_stop | 4 | -0.28 | +| SEI | 01-19 01:00 | 01-19 04:00 | stop_loss | 3 | -1.49 | +| TIA | 01-19 00:00 | 01-19 04:00 | stop_loss | 4 | -1.49 | +| FET | 01-19 00:00 | 01-19 05:00 | take_profit | 5 | +1.49 | +| FIL | 01-19 00:00 | 01-19 05:00 | take_profit | 5 | +1.49 | +| SUI | 01-19 01:00 | 01-19 05:00 | stop_loss | 4 | -1.49 | +| WIF | 01-19 01:00 | 01-19 05:00 | stop_loss | 4 | -1.49 | +| AVAX | 01-19 00:00 | 01-19 06:00 | trailing_stop | 6 | -0.53 | +| ATOM | 01-19 00:00 | 01-19 08:00 | take_profit | 8 | +1.49 | +| KAS | 01-19 00:00 | 01-19 08:00 | take_profit | 8 | +1.49 | +| LTC | 01-19 00:00 | 01-19 08:00 | take_profit | 8 | +1.49 | +| PEPE | 01-19 02:00 | 01-19 08:00 | stop_loss | 6 | -1.49 | +| FIL | 01-19 08:00 | 01-19 10:00 | stop_loss | 2 | -1.49 | +| WIF | 01-19 08:00 | 01-19 10:00 | stop_loss | 2 | -1.49 | +| ETC | 01-19 00:00 | 01-19 11:00 | take_profit | 11 | +1.49 | +| INJ | 01-19 09:00 | 01-19 11:00 | stop_loss | 2 | -1.49 | +| AVAX | 01-19 09:00 | 01-19 12:00 | stop_loss | 3 | -1.49 | +| FIL | 01-19 10:00 | 01-19 12:00 | stop_loss | 2 | -1.49 | +| ATOM | 01-19 08:00 | 01-19 13:00 | stop_loss | 5 | -1.49 | +| FET | 01-19 09:00 | 01-19 13:00 | stop_loss | 4 | -1.49 | +| KAS | 01-19 08:00 | 01-19 13:00 | stop_loss | 5 | -1.49 | +| RENDER | 01-19 11:00 | 01-19 13:00 | stop_loss | 2 | -1.49 | +| OP | 01-19 02:00 | 01-19 16:00 | trailing_stop | 14 | +0.11 | +| SHIB | 01-19 00:00 | 01-19 16:00 | trailing_stop | 16 | -0.23 | +| WIF | 01-19 10:00 | 01-19 16:00 | take_profit | 6 | +1.49 | +| LTC | 01-19 08:00 | 01-19 23:00 | trailing_stop | 15 | -0.00 | +| AVAX | 01-19 12:00 | 01-20 06:00 | stop_loss | 18 | -1.49 | +| ETC | 01-19 11:00 | 01-20 06:00 | stop_loss | 19 | -1.49 | +| KAS | 01-20 03:00 | 01-20 06:00 | stop_loss | 3 | -1.49 | +| UNI | 01-19 09:00 | 01-20 06:00 | stop_loss | 21 | -1.49 | +| TRX | 01-19 15:00 | 01-20 07:00 | stop_loss | 16 | -1.49 | +| ETC | 01-20 06:00 | 01-20 08:00 | stop_loss | 2 | -1.49 | +| FIL | 01-20 06:00 | 01-20 08:00 | stop_loss | 2 | -1.49 | +| KAS | 01-20 06:00 | 01-20 08:00 | stop_loss | 2 | -1.49 | +| RENDER | 01-20 07:00 | 01-20 08:00 | stop_loss | 1 | -1.49 | +| SEI | 01-20 06:00 | 01-20 08:00 | stop_loss | 2 | -1.49 | +| SUI | 01-20 07:00 | 01-20 08:00 | stop_loss | 1 | -1.49 | +| UNI | 01-20 06:00 | 01-20 08:00 | stop_loss | 2 | -1.49 | +| ARB | 01-20 08:00 | 01-20 10:00 | take_profit | 2 | +1.49 | +| SUI | 01-20 08:00 | 01-20 10:00 | stop_loss | 2 | -1.49 | +| INJ | 01-20 09:00 | 01-20 11:00 | stop_loss | 2 | -1.49 | +| AVAX | 01-20 08:00 | 01-20 13:00 | stop_loss | 5 | -1.49 | +| FET | 01-20 08:00 | 01-20 13:00 | stop_loss | 5 | -1.49 | +| FIL | 01-20 08:00 | 01-20 13:00 | stop_loss | 5 | -1.49 | +| PEPE | 01-20 09:00 | 01-20 13:00 | stop_loss | 4 | -1.49 | +| RENDER | 01-20 08:00 | 01-20 13:00 | stop_loss | 5 | -1.49 | +| SUI | 01-20 10:00 | 01-20 13:00 | stop_loss | 3 | -1.49 | +| TIA | 01-20 11:00 | 01-20 13:00 | stop_loss | 2 | -1.49 | +| UNI | 01-20 09:00 | 01-20 13:00 | stop_loss | 4 | -1.49 | +| WIF | 01-20 09:00 | 01-20 13:00 | stop_loss | 4 | -1.49 | +| FIL | 01-20 13:00 | 01-20 14:00 | take_profit | 1 | +1.49 | +| PEPE | 01-20 13:00 | 01-20 14:00 | take_profit | 1 | +1.49 | +| RENDER | 01-20 13:00 | 01-20 14:00 | take_profit | 1 | +1.49 | +| SUI | 01-20 13:00 | 01-20 14:00 | take_profit | 1 | +1.49 | +| TIA | 01-20 13:00 | 01-20 14:00 | take_profit | 1 | +1.49 | +| WIF | 01-20 13:00 | 01-20 14:00 | take_profit | 1 | +1.49 | +| ATOM | 01-20 13:00 | 01-20 15:00 | stop_loss | 2 | -1.49 | +| AVAX | 01-20 13:00 | 01-20 15:00 | trailing_stop | 2 | -0.64 | +| ETC | 01-20 08:00 | 01-20 15:00 | stop_loss | 7 | -1.49 | +| KAS | 01-20 08:00 | 01-20 15:00 | stop_loss | 7 | -1.49 | +| LTC | 01-20 07:00 | 01-20 15:00 | stop_loss | 8 | -1.49 | +| NEAR | 01-20 08:00 | 01-20 15:00 | stop_loss | 7 | -1.49 | +| TRX | 01-20 09:00 | 01-20 15:00 | stop_loss | 6 | -1.49 | +| APT | 01-20 13:00 | 01-20 16:00 | stop_loss | 3 | -1.49 | +| INJ | 01-20 11:00 | 01-20 16:00 | stop_loss | 5 | -1.49 | +| SEI | 01-20 13:00 | 01-20 16:00 | stop_loss | 3 | -1.49 | +| SHIB | 01-20 09:00 | 01-20 16:00 | stop_loss | 7 | -1.49 | +| UNI | 01-20 13:00 | 01-20 16:00 | stop_loss | 3 | -1.49 | +| APT | 01-20 16:00 | 01-20 17:00 | stop_loss | 1 | -1.49 | +| ARB | 01-20 16:00 | 01-20 17:00 | stop_loss | 1 | -1.49 | +| AVAX | 01-20 16:00 | 01-20 17:00 | stop_loss | 1 | -1.49 | +| ETC | 01-20 16:00 | 01-20 17:00 | stop_loss | 1 | -1.49 | +| OP | 01-20 16:00 | 01-20 17:00 | stop_loss | 1 | -1.49 | +| PEPE | 01-20 16:00 | 01-20 17:00 | stop_loss | 1 | -1.49 | +| LTC | 01-20 16:00 | 01-20 18:00 | stop_loss | 2 | -1.49 | +| SEI | 01-20 16:00 | 01-20 18:00 | stop_loss | 2 | -1.49 | +| UNI | 01-20 16:00 | 01-20 18:00 | stop_loss | 2 | -1.49 | +| KAS | 01-20 17:00 | 01-20 19:00 | stop_loss | 2 | -1.49 | +| APT | 01-20 17:00 | 01-20 20:00 | trailing_stop | 3 | -0.67 | +| ATOM | 01-20 16:00 | 01-20 20:00 | take_profit | 4 | +1.49 | +| OP | 01-20 17:00 | 01-20 20:00 | take_profit | 3 | +1.49 | +| TIA | 01-20 16:00 | 01-20 20:00 | take_profit | 4 | +1.49 | +| LTC | 01-20 18:00 | 01-20 21:00 | stop_loss | 3 | -1.49 | +| ARB | 01-20 17:00 | 01-20 22:00 | stop_loss | 5 | -1.49 | +| AVAX | 01-20 17:00 | 01-20 22:00 | stop_loss | 5 | -1.49 | +| ETC | 01-20 17:00 | 01-20 22:00 | stop_loss | 5 | -1.49 | +| FIL | 01-20 18:00 | 01-20 22:00 | trailing_stop | 4 | -0.70 | +| SEI | 01-20 18:00 | 01-20 22:00 | stop_loss | 4 | -1.49 | +| BONK | 01-20 22:00 | 01-21 00:00 | take_profit | 2 | +1.49 | +| FIL | 01-21 16:00 | 01-21 17:00 | trailing_stop | 1 | -0.49 | +| OP | 01-21 16:00 | 01-21 17:00 | stop_loss | 1 | -1.49 | +| TIA | 01-21 16:00 | 01-21 17:00 | stop_loss | 1 | -1.49 | +| WIF | 01-21 16:00 | 01-21 17:00 | stop_loss | 1 | -1.49 | +| AVAX | 01-21 16:00 | 01-21 18:00 | take_profit | 2 | +1.49 | +| OP | 01-21 17:00 | 01-21 18:00 | trailing_stop | 1 | -0.61 | +| SUI | 01-21 16:00 | 01-21 18:00 | take_profit | 2 | +1.49 | +| APT | 01-21 16:00 | 01-21 19:00 | take_profit | 3 | +1.49 | +| ETC | 01-21 16:00 | 01-21 19:00 | take_profit | 3 | +1.49 | +| KAS | 01-21 17:00 | 01-21 19:00 | take_profit | 2 | +1.49 | +| LTC | 01-21 16:00 | 01-21 19:00 | take_profit | 3 | +1.49 | +| NEAR | 01-21 16:00 | 01-21 19:00 | take_profit | 3 | +1.49 | +| PEPE | 01-21 16:00 | 01-21 19:00 | take_profit | 3 | +1.49 | +| SEI | 01-21 16:00 | 01-21 19:00 | take_profit | 3 | +1.49 | +| SHIB | 01-21 16:00 | 01-21 19:00 | take_profit | 3 | +1.49 | +| UNI | 01-22 09:00 | 01-22 11:00 | stop_loss | 2 | -1.49 | +| ETC | 01-22 09:00 | 01-22 12:00 | stop_loss | 3 | -1.49 | +| PEPE | 01-22 11:00 | 01-22 13:00 | stop_loss | 2 | -1.49 | +| SHIB | 01-22 11:00 | 01-22 13:00 | stop_loss | 2 | -1.49 | +| TIA | 01-22 11:00 | 01-22 13:00 | stop_loss | 2 | -1.49 | +| AVAX | 01-22 11:00 | 01-22 14:00 | stop_loss | 3 | -1.49 | +| BONK | 01-22 11:00 | 01-22 14:00 | stop_loss | 3 | -1.49 | +| FIL | 01-22 11:00 | 01-22 14:00 | stop_loss | 3 | -1.49 | +| KAS | 01-22 11:00 | 01-22 14:00 | stop_loss | 3 | -1.49 | +| PEPE | 01-22 13:00 | 01-22 14:00 | stop_loss | 1 | -1.49 | +| UNI | 01-22 11:00 | 01-22 14:00 | stop_loss | 3 | -1.49 | +| WIF | 01-22 11:00 | 01-22 14:00 | stop_loss | 3 | -1.49 | +| APT | 01-22 14:00 | 01-22 15:00 | stop_loss | 1 | -1.49 | +| FET | 01-22 14:00 | 01-22 15:00 | stop_loss | 1 | -1.49 | +| FIL | 01-22 14:00 | 01-22 15:00 | stop_loss | 1 | -1.49 | +| OP | 01-22 14:00 | 01-22 15:00 | stop_loss | 1 | -1.49 | +| SEI | 01-22 14:00 | 01-22 15:00 | stop_loss | 1 | -1.49 | +| TIA | 01-22 14:00 | 01-22 15:00 | stop_loss | 1 | -1.49 | +| UNI | 01-22 14:00 | 01-22 15:00 | stop_loss | 1 | -1.49 | +| WIF | 01-22 14:00 | 01-22 15:00 | stop_loss | 1 | -1.49 | +| APT | 01-22 15:00 | 01-22 16:00 | trailing_stop | 1 | -0.55 | +| BONK | 01-22 14:00 | 01-22 16:00 | take_profit | 2 | +1.49 | +| INJ | 01-22 14:00 | 01-22 16:00 | trailing_stop | 2 | -0.03 | +| OP | 01-22 15:00 | 01-22 16:00 | trailing_stop | 1 | -0.25 | +| PEPE | 01-22 14:00 | 01-22 16:00 | trailing_stop | 2 | -0.38 | +| SEI | 01-22 15:00 | 01-22 16:00 | trailing_stop | 1 | -0.03 | +| WIF | 01-22 15:00 | 01-22 16:00 | trailing_stop | 1 | -0.15 | +| OP | 01-22 16:00 | 01-22 17:00 | stop_loss | 1 | -1.49 | +| FIL | 01-22 15:00 | 01-22 18:00 | stop_loss | 3 | -1.49 | +| NEAR | 01-22 14:00 | 01-22 19:00 | trailing_stop | 5 | -0.24 | +| TRX | 01-20 15:00 | 01-22 19:00 | take_profit | 52 | +1.49 | +| UNI | 01-22 15:00 | 01-22 19:00 | trailing_stop | 4 | -0.36 | +| SHIB | 01-22 14:00 | 01-22 22:00 | trailing_stop | 8 | -0.23 | +| SUI | 01-22 14:00 | 01-22 23:00 | trailing_stop | 9 | -0.57 | +| RENDER | 01-22 23:00 | 01-23 00:00 | take_profit | 1 | +1.49 | +| FIL | 01-22 18:00 | 01-23 01:00 | take_profit | 7 | +1.49 | +| LTC | 01-22 14:00 | 01-23 01:00 | take_profit | 11 | +1.49 | +| ETC | 01-22 14:00 | 01-23 03:00 | take_profit | 13 | +1.49 | +| INJ | 01-22 18:00 | 01-23 06:00 | trailing_stop | 12 | +0.26 | +| PEPE | 01-22 21:00 | 01-23 06:00 | take_profit | 9 | +1.49 | +| AVAX | 01-22 14:00 | 01-23 07:00 | trailing_stop | 17 | -0.02 | +| KAS | 01-22 20:00 | 01-23 14:00 | stop_loss | 18 | -1.49 | +| TRX | 01-23 13:00 | 01-23 14:00 | stop_loss | 1 | -1.49 | +| INJ | 01-23 14:00 | 01-23 15:00 | trailing_stop | 1 | +0.16 | +| LTC | 01-23 14:00 | 01-23 15:00 | trailing_stop | 1 | -0.51 | +| OP | 01-23 14:00 | 01-23 15:00 | take_profit | 1 | +1.49 | +| PEPE | 01-23 14:00 | 01-23 15:00 | take_profit | 1 | +1.49 | +| TIA | 01-23 14:00 | 01-23 15:00 | take_profit | 1 | +1.49 | +| UNI | 01-23 14:00 | 01-23 15:00 | take_profit | 1 | +1.49 | +| WIF | 01-23 14:00 | 01-23 15:00 | take_profit | 1 | +1.49 | +| FIL | 01-23 19:00 | 01-23 20:00 | stop_loss | 1 | -1.49 | +| LTC | 01-23 15:00 | 01-23 20:00 | stop_loss | 5 | -1.49 | +| FET | 01-24 07:00 | 01-24 10:00 | stop_loss | 3 | -1.49 | +| TRX | 01-23 14:00 | 01-24 10:00 | stop_loss | 20 | -1.49 | +| TIA | 01-24 07:00 | 01-24 11:00 | confirmed_bearish_exit | 4 | +1.16 | +| ATOM | 01-24 07:00 | 01-24 13:00 | stop_loss | 6 | -1.49 | +| OP | 01-24 07:00 | 01-24 14:00 | stop_loss | 7 | -1.49 | +| RENDER | 01-24 08:00 | 01-24 14:00 | stop_loss | 6 | -1.49 | +| APT | 01-23 20:00 | 01-24 15:00 | trailing_stop | 19 | -0.60 | +| SEI | 01-24 07:00 | 01-24 15:00 | stop_loss | 8 | -1.49 | +| SHIB | 01-24 06:00 | 01-24 15:00 | stop_loss | 9 | -1.49 | +| PEPE | 01-24 07:00 | 01-24 16:00 | stop_loss | 9 | -1.49 | +| FIL | 01-24 17:00 | 01-25 02:00 | trailing_stop | 9 | -0.35 | +| ATOM | 01-24 13:00 | 01-25 03:00 | trailing_stop | 14 | -0.13 | +| AVAX | 01-24 15:00 | 01-25 03:00 | stop_loss | 12 | -1.49 | +| FET | 01-25 02:00 | 01-25 04:00 | stop_loss | 2 | -1.49 | +| TIA | 01-25 01:00 | 01-25 04:00 | stop_loss | 3 | -1.49 | +| SHIB | 01-24 23:00 | 01-25 07:00 | stop_loss | 8 | -1.49 | +| INJ | 01-25 03:00 | 01-25 08:00 | stop_loss | 5 | -1.49 | +| KAS | 01-25 07:00 | 01-25 09:00 | stop_loss | 2 | -1.49 | +| LTC | 01-24 19:00 | 01-25 09:00 | take_profit | 14 | +1.49 | +| PEPE | 01-25 08:00 | 01-25 10:00 | take_profit | 2 | +1.49 | +| FET | 01-25 04:00 | 01-25 12:00 | trailing_stop | 8 | -0.39 | +| INJ | 01-25 08:00 | 01-25 12:00 | trailing_stop | 4 | -0.39 | +| BONK | 01-25 08:00 | 01-25 14:00 | trailing_stop | 6 | -0.59 | +| ETC | 01-25 01:00 | 01-25 14:00 | stop_loss | 13 | -1.49 | +| FIL | 01-25 12:00 | 01-25 14:00 | stop_loss | 2 | -1.49 | +| TIA | 01-25 13:00 | 01-25 14:00 | stop_loss | 1 | -1.49 | +| ARB | 01-25 14:00 | 01-25 16:00 | stop_loss | 2 | -1.49 | +| AVAX | 01-25 03:00 | 01-25 16:00 | stop_loss | 13 | -1.49 | +| BONK | 01-25 14:00 | 01-25 16:00 | stop_loss | 2 | -1.49 | +| FIL | 01-25 14:00 | 01-25 16:00 | stop_loss | 2 | -1.49 | +| INJ | 01-25 14:00 | 01-25 16:00 | stop_loss | 2 | -1.49 | +| KAS | 01-25 15:00 | 01-25 16:00 | stop_loss | 1 | -1.49 | +| NEAR | 01-25 14:00 | 01-25 16:00 | stop_loss | 2 | -1.49 | +| PEPE | 01-25 15:00 | 01-25 16:00 | stop_loss | 1 | -1.49 | +| SHIB | 01-25 08:00 | 01-25 16:00 | stop_loss | 8 | -1.49 | +| SUI | 01-25 15:00 | 01-25 16:00 | stop_loss | 1 | -1.49 | +| WIF | 01-25 03:00 | 01-25 16:00 | stop_loss | 13 | -1.49 | +| FET | 01-25 16:00 | 01-25 17:00 | stop_loss | 1 | -1.49 | +| SEI | 01-25 16:00 | 01-25 17:00 | stop_loss | 1 | -1.49 | +| TIA | 01-25 16:00 | 01-25 17:00 | stop_loss | 1 | -1.49 | +| WIF | 01-25 16:00 | 01-25 17:00 | stop_loss | 1 | -1.49 | +| APT | 01-25 16:00 | 01-25 18:00 | stop_loss | 2 | -1.49 | +| ARB | 01-25 16:00 | 01-25 18:00 | stop_loss | 2 | -1.49 | +| ATOM | 01-25 16:00 | 01-25 18:00 | stop_loss | 2 | -1.49 | +| AVAX | 01-25 16:00 | 01-25 18:00 | stop_loss | 2 | -1.49 | +| BONK | 01-25 16:00 | 01-25 18:00 | stop_loss | 2 | -1.49 | +| ETC | 01-25 16:00 | 01-25 18:00 | stop_loss | 2 | -1.49 | +| FET | 01-25 17:00 | 01-25 18:00 | stop_loss | 1 | -1.49 | +| FIL | 01-25 16:00 | 01-25 18:00 | stop_loss | 2 | -1.49 | +| INJ | 01-25 16:00 | 01-25 18:00 | stop_loss | 2 | -1.49 | +| NEAR | 01-25 16:00 | 01-25 18:00 | stop_loss | 2 | -1.49 | +| OP | 01-25 16:00 | 01-25 18:00 | stop_loss | 2 | -1.49 | +| PEPE | 01-25 16:00 | 01-25 18:00 | stop_loss | 2 | -1.49 | +| RENDER | 01-25 16:00 | 01-25 18:00 | stop_loss | 2 | -1.49 | +| SEI | 01-25 17:00 | 01-25 18:00 | stop_loss | 1 | -1.49 | +| SHIB | 01-25 16:00 | 01-25 18:00 | stop_loss | 2 | -1.49 | +| SUI | 01-25 16:00 | 01-25 18:00 | stop_loss | 2 | -1.49 | +| TIA | 01-25 17:00 | 01-25 18:00 | stop_loss | 1 | -1.49 | +| UNI | 01-25 16:00 | 01-25 18:00 | stop_loss | 2 | -1.49 | +| WIF | 01-25 17:00 | 01-25 18:00 | stop_loss | 1 | -1.49 | +| APT | 01-25 18:00 | 01-25 19:00 | stop_loss | 1 | -1.49 | +| ARB | 01-25 18:00 | 01-25 19:00 | stop_loss | 1 | -1.49 | +| ATOM | 01-25 18:00 | 01-25 19:00 | stop_loss | 1 | -1.49 | +| AVAX | 01-25 18:00 | 01-25 19:00 | stop_loss | 1 | -1.49 | +| BONK | 01-25 18:00 | 01-25 19:00 | stop_loss | 1 | -1.49 | +| ETC | 01-25 18:00 | 01-25 19:00 | stop_loss | 1 | -1.49 | +| FET | 01-25 18:00 | 01-25 19:00 | stop_loss | 1 | -1.49 | +| FIL | 01-25 18:00 | 01-25 19:00 | stop_loss | 1 | -1.49 | +| INJ | 01-25 18:00 | 01-25 19:00 | stop_loss | 1 | -1.49 | +| KAS | 01-25 16:00 | 01-25 19:00 | stop_loss | 3 | -1.49 | +| NEAR | 01-25 18:00 | 01-25 19:00 | stop_loss | 1 | -1.49 | +| OP | 01-25 18:00 | 01-25 19:00 | stop_loss | 1 | -1.49 | +| PEPE | 01-25 18:00 | 01-25 19:00 | stop_loss | 1 | -1.49 | +| RENDER | 01-25 18:00 | 01-25 19:00 | stop_loss | 1 | -1.49 | +| SEI | 01-25 18:00 | 01-25 19:00 | stop_loss | 1 | -1.49 | +| SHIB | 01-25 18:00 | 01-25 19:00 | stop_loss | 1 | -1.49 | +| SUI | 01-25 18:00 | 01-25 19:00 | stop_loss | 1 | -1.49 | +| TIA | 01-25 18:00 | 01-25 19:00 | stop_loss | 1 | -1.49 | +| TRX | 01-24 10:00 | 01-25 19:00 | trailing_stop | 33 | -0.53 | +| UNI | 01-25 18:00 | 01-25 19:00 | stop_loss | 1 | -1.49 | +| WIF | 01-25 18:00 | 01-25 19:00 | stop_loss | 1 | -1.49 | +| FIL | 01-25 19:00 | 01-25 20:00 | trailing_stop | 1 | -0.64 | +| LTC | 01-25 19:00 | 01-25 20:00 | stop_loss | 1 | -1.49 | +| BONK | 01-25 19:00 | 01-25 21:00 | take_profit | 2 | +1.49 | +| FET | 01-25 19:00 | 01-25 21:00 | take_profit | 2 | +1.49 | +| OP | 01-25 19:00 | 01-25 21:00 | take_profit | 2 | +1.49 | +| PEPE | 01-25 19:00 | 01-25 21:00 | trailing_stop | 2 | -0.06 | +| WIF | 01-25 19:00 | 01-25 21:00 | take_profit | 2 | +1.49 | +| ETC | 01-25 19:00 | 01-25 22:00 | trailing_stop | 3 | -0.65 | +| UNI | 01-25 19:00 | 01-25 22:00 | trailing_stop | 3 | -0.47 | +| APT | 01-25 19:00 | 01-25 23:00 | take_profit | 4 | +1.49 | +| AVAX | 01-25 19:00 | 01-25 23:00 | trailing_stop | 4 | -0.06 | +| INJ | 01-25 19:00 | 01-25 23:00 | take_profit | 4 | +1.49 | +| KAS | 01-25 19:00 | 01-25 23:00 | take_profit | 4 | +1.49 | +| LTC | 01-25 20:00 | 01-25 23:00 | take_profit | 3 | +1.49 | +| NEAR | 01-25 19:00 | 01-25 23:00 | trailing_stop | 4 | -0.49 | +| RENDER | 01-25 19:00 | 01-25 23:00 | take_profit | 4 | +1.49 | +| SEI | 01-25 19:00 | 01-25 23:00 | take_profit | 4 | +1.49 | +| SUI | 01-25 19:00 | 01-25 23:00 | trailing_stop | 4 | -0.07 | +| TIA | 01-25 19:00 | 01-25 23:00 | take_profit | 4 | +1.49 | +| ARB | 01-25 19:00 | 01-26 00:00 | take_profit | 5 | +1.49 | +| FIL | 01-25 20:00 | 01-26 00:00 | take_profit | 4 | +1.49 | +| SHIB | 01-25 19:00 | 01-26 00:00 | take_profit | 5 | +1.49 | +| RENDER | 01-26 03:00 | 01-26 04:00 | take_profit | 1 | +1.49 | +| OP | 01-26 03:00 | 01-26 06:00 | take_profit | 3 | +1.49 | +| AVAX | 01-26 03:00 | 01-26 08:00 | take_profit | 5 | +1.49 | +| KAS | 01-26 02:00 | 01-26 08:00 | take_profit | 6 | +1.49 | +| LTC | 01-26 03:00 | 01-26 08:00 | take_profit | 5 | +1.49 | +| UNI | 01-26 03:00 | 01-26 08:00 | take_profit | 5 | +1.49 | +| TRX | 01-26 03:00 | 01-26 16:00 | stop_loss | 13 | -1.49 | +| KAS | 01-26 20:00 | 01-27 02:00 | take_profit | 6 | +1.49 | +| FET | 01-26 20:00 | 01-27 06:00 | trailing_stop | 10 | -0.40 | +| ATOM | 01-26 20:00 | 01-27 10:00 | stop_loss | 14 | -1.49 | +| RENDER | 01-27 09:00 | 01-27 10:00 | stop_loss | 1 | -1.49 | +| INJ | 01-27 09:00 | 01-27 14:00 | stop_loss | 5 | -1.49 | +| FIL | 01-27 14:00 | 01-27 15:00 | trailing_stop | 1 | -0.46 | +| PEPE | 01-27 14:00 | 01-27 15:00 | trailing_stop | 1 | -0.44 | +| SUI | 01-27 14:00 | 01-27 15:00 | trailing_stop | 1 | -0.11 | +| TIA | 01-27 06:00 | 01-27 15:00 | trailing_stop | 9 | -0.64 | +| UNI | 01-27 09:00 | 01-27 15:00 | trailing_stop | 6 | -0.45 | +| WIF | 01-27 12:00 | 01-27 15:00 | trailing_stop | 3 | -0.15 | +| AVAX | 01-27 13:00 | 01-27 16:00 | take_profit | 3 | +1.49 | +| ETC | 01-27 08:00 | 01-27 16:00 | trailing_stop | 8 | -0.31 | +| KAS | 01-27 09:00 | 01-27 16:00 | take_profit | 7 | +1.49 | +| LTC | 01-27 12:00 | 01-27 16:00 | take_profit | 4 | +1.49 | +| RENDER | 01-27 10:00 | 01-27 16:00 | take_profit | 6 | +1.49 | +| SHIB | 01-27 09:00 | 01-27 16:00 | take_profit | 7 | +1.49 | +| BONK | 01-27 17:00 | 01-27 18:00 | take_profit | 1 | +1.49 | +| PEPE | 01-27 17:00 | 01-27 18:00 | take_profit | 1 | +1.49 | +| TRX | 01-27 07:00 | 01-28 08:00 | stop_loss | 25 | -1.49 | +| ARB | 01-28 15:00 | 01-28 17:00 | stop_loss | 2 | -1.49 | +| PEPE | 01-28 15:00 | 01-28 17:00 | trailing_stop | 2 | -0.40 | +| OP | 01-28 15:00 | 01-28 21:00 | trailing_stop | 6 | -0.40 | +| ETC | 01-28 15:00 | 01-29 01:00 | trailing_stop | 10 | -0.54 | +| ATOM | 01-29 00:00 | 01-29 02:00 | stop_loss | 2 | -1.49 | +| AVAX | 01-29 01:00 | 01-29 02:00 | stop_loss | 1 | -1.49 | +| BONK | 01-29 01:00 | 01-29 02:00 | stop_loss | 1 | -1.49 | +| LTC | 01-29 01:00 | 01-29 02:00 | stop_loss | 1 | -1.49 | +| PEPE | 01-29 00:00 | 01-29 02:00 | stop_loss | 2 | -1.49 | +| SEI | 01-29 01:00 | 01-29 02:00 | stop_loss | 1 | -1.49 | +| SUI | 01-29 01:00 | 01-29 02:00 | stop_loss | 1 | -1.49 | +| UNI | 01-29 01:00 | 01-29 02:00 | stop_loss | 1 | -1.49 | +| BONK | 01-29 02:00 | 01-29 04:00 | stop_loss | 2 | -1.49 | +| RENDER | 01-29 02:00 | 01-29 04:00 | stop_loss | 2 | -1.49 | +| TIA | 01-29 02:00 | 01-29 07:00 | stop_loss | 5 | -1.49 | +| KAS | 01-29 02:00 | 01-29 08:00 | trailing_stop | 6 | -0.68 | +| NEAR | 01-29 03:00 | 01-29 08:00 | stop_loss | 5 | -1.49 | +| RENDER | 01-29 04:00 | 01-29 08:00 | stop_loss | 4 | -1.49 | +| WIF | 01-29 02:00 | 01-29 08:00 | stop_loss | 6 | -1.49 | +| FIL | 01-29 02:00 | 01-29 10:00 | stop_loss | 8 | -1.49 | +| LTC | 01-29 02:00 | 01-29 10:00 | stop_loss | 8 | -1.49 | +| OP | 01-29 02:00 | 01-29 10:00 | stop_loss | 8 | -1.49 | +| ATOM | 01-29 02:00 | 01-29 11:00 | stop_loss | 9 | -1.49 | +| AVAX | 01-29 02:00 | 01-29 11:00 | stop_loss | 9 | -1.49 | +| ETC | 01-29 02:00 | 01-29 11:00 | stop_loss | 9 | -1.49 | +| SUI | 01-29 02:00 | 01-29 11:00 | stop_loss | 9 | -1.49 | +| UNI | 01-29 02:00 | 01-29 11:00 | stop_loss | 9 | -1.49 | +| PEPE | 01-29 02:00 | 01-29 12:00 | stop_loss | 10 | -1.49 | +| SEI | 01-29 02:00 | 01-29 12:00 | stop_loss | 10 | -1.49 | +| SHIB | 01-29 02:00 | 01-29 12:00 | stop_loss | 10 | -1.49 | +| BONK | 01-29 04:00 | 01-29 14:00 | stop_loss | 10 | -1.49 | +| ARB | 01-29 14:00 | 01-29 15:00 | stop_loss | 1 | -1.49 | +| AVAX | 01-29 14:00 | 01-29 15:00 | stop_loss | 1 | -1.49 | +| BONK | 01-29 14:00 | 01-29 15:00 | stop_loss | 1 | -1.49 | +| ETC | 01-29 14:00 | 01-29 15:00 | stop_loss | 1 | -1.49 | +| FET | 01-29 14:00 | 01-29 15:00 | stop_loss | 1 | -1.49 | +| INJ | 01-29 14:00 | 01-29 15:00 | stop_loss | 1 | -1.49 | +| LTC | 01-29 14:00 | 01-29 15:00 | stop_loss | 1 | -1.49 | +| NEAR | 01-29 14:00 | 01-29 15:00 | stop_loss | 1 | -1.49 | +| SEI | 01-29 14:00 | 01-29 15:00 | stop_loss | 1 | -1.49 | +| SHIB | 01-29 14:00 | 01-29 15:00 | stop_loss | 1 | -1.49 | +| SUI | 01-29 14:00 | 01-29 15:00 | stop_loss | 1 | -1.49 | +| TRX | 01-28 08:00 | 01-29 15:00 | trailing_stop | 31 | -0.68 | +| UNI | 01-29 14:00 | 01-29 15:00 | stop_loss | 1 | -1.49 | +| APT | 01-29 15:00 | 01-29 16:00 | stop_loss | 1 | -1.49 | +| ARB | 01-29 15:00 | 01-29 16:00 | stop_loss | 1 | -1.49 | +| ATOM | 01-29 15:00 | 01-29 16:00 | trailing_stop | 1 | -0.33 | +| BONK | 01-29 15:00 | 01-29 16:00 | stop_loss | 1 | -1.49 | +| INJ | 01-29 15:00 | 01-29 16:00 | trailing_stop | 1 | -0.47 | +| KAS | 01-29 15:00 | 01-29 16:00 | trailing_stop | 1 | -0.23 | +| LTC | 01-29 15:00 | 01-29 16:00 | trailing_stop | 1 | -0.70 | +| NEAR | 01-29 15:00 | 01-29 16:00 | trailing_stop | 1 | -0.68 | +| OP | 01-29 15:00 | 01-29 16:00 | stop_loss | 1 | -1.49 | +| PEPE | 01-29 15:00 | 01-29 16:00 | trailing_stop | 1 | -0.22 | +| SEI | 01-29 15:00 | 01-29 16:00 | stop_loss | 1 | -1.49 | +| SUI | 01-29 15:00 | 01-29 16:00 | trailing_stop | 1 | +0.01 | +| TIA | 01-29 15:00 | 01-29 16:00 | trailing_stop | 1 | -0.45 | +| UNI | 01-29 15:00 | 01-29 16:00 | stop_loss | 1 | -1.49 | +| SHIB | 01-29 15:00 | 01-29 17:00 | take_profit | 2 | +1.49 | +| APT | 01-29 17:00 | 01-29 18:00 | stop_loss | 1 | -1.49 | +| AVAX | 01-29 15:00 | 01-29 18:00 | stop_loss | 3 | -1.49 | +| ETC | 01-29 15:00 | 01-29 18:00 | stop_loss | 3 | -1.49 | +| NEAR | 01-29 17:00 | 01-29 18:00 | stop_loss | 1 | -1.49 | +| OP | 01-29 17:00 | 01-29 18:00 | stop_loss | 1 | -1.49 | +| SEI | 01-29 16:00 | 01-29 18:00 | stop_loss | 2 | -1.49 | +| UNI | 01-29 16:00 | 01-29 18:00 | stop_loss | 2 | -1.49 | +| APT | 01-29 18:00 | 01-29 19:00 | take_profit | 1 | +1.49 | +| ARB | 01-29 18:00 | 01-29 19:00 | trailing_stop | 1 | -0.68 | +| ATOM | 01-29 18:00 | 01-29 19:00 | trailing_stop | 1 | -0.39 | +| AVAX | 01-29 18:00 | 01-29 19:00 | trailing_stop | 1 | -0.19 | +| BONK | 01-29 18:00 | 01-29 19:00 | trailing_stop | 1 | -0.46 | +| FIL | 01-29 18:00 | 01-29 19:00 | trailing_stop | 1 | -0.06 | +| INJ | 01-29 18:00 | 01-29 19:00 | trailing_stop | 1 | -0.02 | +| NEAR | 01-29 18:00 | 01-29 19:00 | trailing_stop | 1 | -0.50 | +| SUI | 01-29 18:00 | 01-29 19:00 | trailing_stop | 1 | -0.56 | +| TIA | 01-29 18:00 | 01-29 19:00 | take_profit | 1 | +1.49 | +| LTC | 01-29 18:00 | 01-29 20:00 | take_profit | 2 | +1.49 | +| OP | 01-29 18:00 | 01-29 20:00 | take_profit | 2 | +1.49 | +| PEPE | 01-29 18:00 | 01-29 20:00 | take_profit | 2 | +1.49 | +| UNI | 01-29 18:00 | 01-29 20:00 | trailing_stop | 2 | -0.42 | +| WIF | 01-29 18:00 | 01-29 20:00 | take_profit | 2 | +1.49 | +| ETC | 01-29 18:00 | 01-29 21:00 | take_profit | 3 | +1.49 | +| SHIB | 01-29 18:00 | 01-29 21:00 | take_profit | 3 | +1.49 | +| FET | 01-29 22:00 | 01-30 00:00 | stop_loss | 2 | -1.49 | +| ARB | 01-29 22:00 | 01-30 01:00 | stop_loss | 3 | -1.49 | +| AVAX | 01-29 23:00 | 01-30 01:00 | stop_loss | 2 | -1.49 | +| ETC | 01-29 23:00 | 01-30 01:00 | stop_loss | 2 | -1.49 | +| FET | 01-30 00:00 | 01-30 01:00 | stop_loss | 1 | -1.49 | +| INJ | 01-30 00:00 | 01-30 01:00 | stop_loss | 1 | -1.49 | +| NEAR | 01-29 23:00 | 01-30 01:00 | stop_loss | 2 | -1.49 | +| OP | 01-29 23:00 | 01-30 01:00 | stop_loss | 2 | -1.49 | +| SEI | 01-29 18:00 | 01-30 01:00 | stop_loss | 7 | -1.49 | +| SHIB | 01-29 22:00 | 01-30 01:00 | stop_loss | 3 | -1.49 | +| TIA | 01-30 00:00 | 01-30 01:00 | stop_loss | 1 | -1.49 | +| UNI | 01-30 00:00 | 01-30 01:00 | stop_loss | 1 | -1.49 | +| APT | 01-30 01:00 | 01-30 02:00 | stop_loss | 1 | -1.49 | +| ARB | 01-30 01:00 | 01-30 02:00 | stop_loss | 1 | -1.49 | +| AVAX | 01-30 01:00 | 01-30 02:00 | stop_loss | 1 | -1.49 | +| ETC | 01-30 01:00 | 01-30 02:00 | stop_loss | 1 | -1.49 | +| LTC | 01-30 01:00 | 01-30 02:00 | stop_loss | 1 | -1.49 | +| OP | 01-30 01:00 | 01-30 02:00 | stop_loss | 1 | -1.49 | +| SHIB | 01-30 01:00 | 01-30 02:00 | stop_loss | 1 | -1.49 | +| RENDER | 01-30 02:00 | 01-30 04:00 | take_profit | 2 | +1.49 | +| APT | 01-30 02:00 | 01-30 06:00 | stop_loss | 4 | -1.49 | +| TRX | 01-29 15:00 | 01-30 06:00 | trailing_stop | 15 | -0.68 | +| PEPE | 01-30 06:00 | 01-30 07:00 | take_profit | 1 | +1.49 | +| RENDER | 01-30 12:00 | 01-30 13:00 | stop_loss | 1 | -1.49 | +| SEI | 01-30 12:00 | 01-30 13:00 | stop_loss | 1 | -1.49 | +| INJ | 01-30 12:00 | 01-30 15:00 | stop_loss | 3 | -1.49 | +| NEAR | 01-30 12:00 | 01-30 15:00 | stop_loss | 3 | -1.49 | +| RENDER | 01-30 13:00 | 01-30 15:00 | stop_loss | 2 | -1.49 | +| SHIB | 01-31 01:00 | 01-31 05:00 | stop_loss | 4 | -1.49 | +| KAS | 01-31 05:00 | 01-31 06:00 | stop_loss | 1 | -1.49 | +| ATOM | 01-31 06:00 | 01-31 07:00 | stop_loss | 1 | -1.49 | +| AVAX | 01-31 06:00 | 01-31 07:00 | stop_loss | 1 | -1.49 | +| ETC | 01-31 06:00 | 01-31 07:00 | stop_loss | 1 | -1.49 | +| PEPE | 01-31 06:00 | 01-31 07:00 | stop_loss | 1 | -1.49 | +| ATOM | 01-31 07:00 | 01-31 08:00 | stop_loss | 1 | -1.49 | +| AVAX | 01-31 07:00 | 01-31 08:00 | stop_loss | 1 | -1.49 | +| BONK | 01-31 07:00 | 01-31 08:00 | stop_loss | 1 | -1.49 | +| ETC | 01-31 07:00 | 01-31 08:00 | stop_loss | 1 | -1.49 | +| KAS | 01-31 06:00 | 01-31 08:00 | stop_loss | 2 | -1.49 | +| LTC | 01-31 07:00 | 01-31 08:00 | stop_loss | 1 | -1.49 | +| OP | 01-31 07:00 | 01-31 08:00 | stop_loss | 1 | -1.49 | +| PEPE | 01-31 07:00 | 01-31 08:00 | stop_loss | 1 | -1.49 | +| SUI | 01-31 07:00 | 01-31 08:00 | stop_loss | 1 | -1.49 | +| TIA | 01-31 06:00 | 01-31 08:00 | stop_loss | 2 | -1.49 | +| UNI | 01-31 07:00 | 01-31 08:00 | stop_loss | 1 | -1.49 | +| WIF | 01-31 07:00 | 01-31 08:00 | stop_loss | 1 | -1.49 | +| APT | 01-31 08:00 | 01-31 09:00 | stop_loss | 1 | -1.49 | +| KAS | 01-31 08:00 | 01-31 09:00 | stop_loss | 1 | -1.49 | +| TRX | 01-30 14:00 | 01-31 09:00 | trailing_stop | 19 | -0.41 | +| FIL | 01-31 08:00 | 01-31 10:00 | stop_loss | 2 | -1.49 | +| APT | 01-31 09:00 | 01-31 11:00 | stop_loss | 2 | -1.49 | +| INJ | 01-31 08:00 | 01-31 11:00 | stop_loss | 3 | -1.49 | +| KAS | 01-31 09:00 | 01-31 11:00 | stop_loss | 2 | -1.49 | +| NEAR | 01-31 08:00 | 01-31 11:00 | stop_loss | 3 | -1.49 | +| ARB | 01-31 08:00 | 01-31 12:00 | stop_loss | 4 | -1.49 | +| OP | 01-31 08:00 | 01-31 12:00 | stop_loss | 4 | -1.49 | +| RENDER | 01-31 11:00 | 01-31 12:00 | stop_loss | 1 | -1.49 | +| TIA | 01-31 08:00 | 01-31 12:00 | stop_loss | 4 | -1.49 | +| UNI | 01-31 08:00 | 01-31 12:00 | stop_loss | 4 | -1.49 | +| APT | 01-31 11:00 | 01-31 13:00 | stop_loss | 2 | -1.49 | +| ARB | 01-31 12:00 | 01-31 13:00 | stop_loss | 1 | -1.49 | +| AVAX | 01-31 08:00 | 01-31 13:00 | stop_loss | 5 | -1.49 | +| BONK | 01-31 08:00 | 01-31 13:00 | stop_loss | 5 | -1.49 | +| ETC | 01-31 08:00 | 01-31 13:00 | stop_loss | 5 | -1.49 | +| FIL | 01-31 10:00 | 01-31 13:00 | stop_loss | 3 | -1.49 | +| INJ | 01-31 11:00 | 01-31 13:00 | stop_loss | 2 | -1.49 | +| LTC | 01-31 08:00 | 01-31 13:00 | stop_loss | 5 | -1.49 | +| PEPE | 01-31 08:00 | 01-31 13:00 | stop_loss | 5 | -1.49 | +| RENDER | 01-31 12:00 | 01-31 13:00 | stop_loss | 1 | -1.49 | +| SHIB | 01-31 08:00 | 01-31 13:00 | stop_loss | 5 | -1.49 | +| UNI | 01-31 12:00 | 01-31 13:00 | stop_loss | 1 | -1.49 | +| ARB | 01-31 13:00 | 01-31 14:00 | stop_loss | 1 | -1.49 | +| ATOM | 01-31 08:00 | 01-31 14:00 | stop_loss | 6 | -1.49 | +| BONK | 01-31 13:00 | 01-31 14:00 | stop_loss | 1 | -1.49 | +| FET | 01-31 08:00 | 01-31 14:00 | stop_loss | 6 | -1.49 | +| FIL | 01-31 13:00 | 01-31 14:00 | stop_loss | 1 | -1.49 | +| INJ | 01-31 13:00 | 01-31 14:00 | stop_loss | 1 | -1.49 | +| KAS | 01-31 11:00 | 01-31 14:00 | stop_loss | 3 | -1.49 | +| NEAR | 01-31 11:00 | 01-31 14:00 | stop_loss | 3 | -1.49 | +| RENDER | 01-31 13:00 | 01-31 14:00 | stop_loss | 1 | -1.49 | +| SEI | 01-31 08:00 | 01-31 14:00 | stop_loss | 6 | -1.49 | +| SUI | 01-31 08:00 | 01-31 14:00 | stop_loss | 6 | -1.49 | +| TRX | 01-31 09:00 | 01-31 14:00 | stop_loss | 5 | -1.49 | +| UNI | 01-31 13:00 | 01-31 14:00 | stop_loss | 1 | -1.49 | +| RENDER | 01-31 14:00 | 01-31 15:00 | stop_loss | 1 | -1.49 | +| TIA | 01-31 14:00 | 01-31 15:00 | take_profit | 1 | +1.49 | +| APT | 01-31 14:00 | 01-31 16:00 | stop_loss | 2 | -1.49 | +| ATOM | 01-31 14:00 | 01-31 16:00 | take_profit | 2 | +1.49 | +| BONK | 01-31 14:00 | 01-31 16:00 | stop_loss | 2 | -1.49 | +| FET | 01-31 14:00 | 01-31 16:00 | stop_loss | 2 | -1.49 | +| FIL | 01-31 14:00 | 01-31 16:00 | stop_loss | 2 | -1.49 | +| INJ | 01-31 14:00 | 01-31 16:00 | stop_loss | 2 | -1.49 | +| KAS | 01-31 14:00 | 01-31 16:00 | stop_loss | 2 | -1.49 | +| LTC | 01-31 14:00 | 01-31 16:00 | stop_loss | 2 | -1.49 | +| NEAR | 01-31 14:00 | 01-31 16:00 | take_profit | 2 | +1.49 | +| OP | 01-31 14:00 | 01-31 16:00 | stop_loss | 2 | -1.49 | +| PEPE | 01-31 14:00 | 01-31 16:00 | stop_loss | 2 | -1.49 | +| RENDER | 01-31 15:00 | 01-31 16:00 | stop_loss | 1 | -1.49 | +| SEI | 01-31 14:00 | 01-31 16:00 | stop_loss | 2 | -1.49 | +| SHIB | 01-31 14:00 | 01-31 16:00 | stop_loss | 2 | -1.49 | +| SUI | 01-31 14:00 | 01-31 16:00 | stop_loss | 2 | -1.49 | +| UNI | 01-31 14:00 | 01-31 16:00 | take_profit | 2 | +1.49 | +| WIF | 01-31 14:00 | 01-31 16:00 | stop_loss | 2 | -1.49 | +| APT | 01-31 16:00 | 01-31 17:00 | stop_loss | 1 | -1.49 | +| ARB | 01-31 14:00 | 01-31 17:00 | stop_loss | 3 | -1.49 | +| ATOM | 01-31 16:00 | 01-31 17:00 | stop_loss | 1 | -1.49 | +| AVAX | 01-31 14:00 | 01-31 17:00 | stop_loss | 3 | -1.49 | +| BONK | 01-31 16:00 | 01-31 17:00 | stop_loss | 1 | -1.49 | +| ETC | 01-31 14:00 | 01-31 17:00 | stop_loss | 3 | -1.49 | +| FET | 01-31 16:00 | 01-31 17:00 | stop_loss | 1 | -1.49 | +| FIL | 01-31 16:00 | 01-31 17:00 | stop_loss | 1 | -1.49 | +| INJ | 01-31 16:00 | 01-31 17:00 | stop_loss | 1 | -1.49 | +| LTC | 01-31 16:00 | 01-31 17:00 | stop_loss | 1 | -1.49 | +| NEAR | 01-31 16:00 | 01-31 17:00 | stop_loss | 1 | -1.49 | +| OP | 01-31 16:00 | 01-31 17:00 | stop_loss | 1 | -1.49 | +| RENDER | 01-31 16:00 | 01-31 17:00 | stop_loss | 1 | -1.49 | +| SEI | 01-31 16:00 | 01-31 17:00 | stop_loss | 1 | -1.49 | +| SHIB | 01-31 16:00 | 01-31 17:00 | stop_loss | 1 | -1.49 | +| SUI | 01-31 16:00 | 01-31 17:00 | stop_loss | 1 | -1.49 | +| TIA | 01-31 15:00 | 01-31 17:00 | stop_loss | 2 | -1.49 | +| UNI | 01-31 16:00 | 01-31 17:00 | stop_loss | 1 | -1.49 | +| WIF | 01-31 16:00 | 01-31 17:00 | stop_loss | 1 | -1.49 | +| APT | 01-31 17:00 | 01-31 18:00 | stop_loss | 1 | -1.49 | +| ARB | 01-31 17:00 | 01-31 18:00 | stop_loss | 1 | -1.49 | +| ATOM | 01-31 17:00 | 01-31 18:00 | stop_loss | 1 | -1.49 | +| AVAX | 01-31 17:00 | 01-31 18:00 | stop_loss | 1 | -1.49 | +| BONK | 01-31 17:00 | 01-31 18:00 | stop_loss | 1 | -1.49 | +| ETC | 01-31 17:00 | 01-31 18:00 | stop_loss | 1 | -1.49 | +| FET | 01-31 17:00 | 01-31 18:00 | stop_loss | 1 | -1.49 | +| FIL | 01-31 17:00 | 01-31 18:00 | stop_loss | 1 | -1.49 | +| INJ | 01-31 17:00 | 01-31 18:00 | stop_loss | 1 | -1.49 | +| KAS | 01-31 17:00 | 01-31 18:00 | stop_loss | 1 | -1.49 | +| LTC | 01-31 17:00 | 01-31 18:00 | stop_loss | 1 | -1.49 | +| NEAR | 01-31 17:00 | 01-31 18:00 | stop_loss | 1 | -1.49 | +| OP | 01-31 17:00 | 01-31 18:00 | stop_loss | 1 | -1.49 | +| PEPE | 01-31 17:00 | 01-31 18:00 | stop_loss | 1 | -1.49 | +| RENDER | 01-31 17:00 | 01-31 18:00 | stop_loss | 1 | -1.49 | +| SEI | 01-31 17:00 | 01-31 18:00 | stop_loss | 1 | -1.49 | +| SHIB | 01-31 17:00 | 01-31 18:00 | stop_loss | 1 | -1.49 | +| SUI | 01-31 17:00 | 01-31 18:00 | stop_loss | 1 | -1.49 | +| TIA | 01-31 17:00 | 01-31 18:00 | stop_loss | 1 | -1.49 | +| TRX | 01-31 14:00 | 01-31 18:00 | stop_loss | 4 | -1.49 | +| UNI | 01-31 17:00 | 01-31 18:00 | stop_loss | 1 | -1.49 | +| WIF | 01-31 17:00 | 01-31 18:00 | stop_loss | 1 | -1.49 | +| APT | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| ARB | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| FET | 01-31 18:00 | 01-31 19:00 | trailing_stop | 1 | -0.38 | +| INJ | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| KAS | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| NEAR | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| OP | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| PEPE | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| RENDER | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| SEI | 01-31 18:00 | 01-31 19:00 | trailing_stop | 1 | -0.28 | +| SHIB | 01-31 18:00 | 01-31 19:00 | trailing_stop | 1 | -0.34 | +| SUI | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| TIA | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| UNI | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| WIF | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| ATOM | 01-31 18:00 | 01-31 20:00 | trailing_stop | 2 | -0.37 | +| FIL | 01-31 18:00 | 01-31 20:00 | stop_loss | 2 | -1.49 | +| AVAX | 01-31 18:00 | 01-31 21:00 | take_profit | 3 | +1.49 | +| BONK | 01-31 18:00 | 01-31 21:00 | take_profit | 3 | +1.49 | +| ETC | 01-31 18:00 | 01-31 21:00 | trailing_stop | 3 | -0.64 | +| LTC | 01-31 18:00 | 01-31 21:00 | take_profit | 3 | +1.49 | +| WIF | 01-31 19:00 | 01-31 21:00 | take_profit | 2 | +1.49 | +| ARB | 01-31 22:00 | 01-31 23:00 | take_profit | 1 | +1.49 | +| OP | 01-31 22:00 | 01-31 23:00 | take_profit | 1 | +1.49 | +| RENDER | 01-31 23:00 | 02-01 00:00 | take_profit | 1 | +1.49 | +| APT | 01-31 23:00 | 02-01 01:00 | stop_loss | 2 | -1.49 | +| BONK | 02-01 00:00 | 02-01 01:00 | stop_loss | 1 | -1.49 | +| ETC | 02-01 00:00 | 02-01 01:00 | stop_loss | 1 | -1.49 | +| NEAR | 02-01 00:00 | 02-01 01:00 | stop_loss | 1 | -1.49 | +| OP | 02-01 00:00 | 02-01 01:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-01 00:00 | 02-01 01:00 | stop_loss | 1 | -1.49 | +| WIF | 02-01 00:00 | 02-01 01:00 | stop_loss | 1 | -1.49 | +| BONK | 02-01 01:00 | 02-01 05:00 | stop_loss | 4 | -1.49 | +| INJ | 01-31 23:00 | 02-01 05:00 | take_profit | 6 | +1.49 | +| KAS | 01-31 23:00 | 02-01 05:00 | stop_loss | 6 | -1.49 | +| SUI | 01-31 23:00 | 02-01 05:00 | stop_loss | 6 | -1.49 | +| UNI | 01-31 23:00 | 02-01 05:00 | trailing_stop | 6 | -0.29 | +| NEAR | 02-01 01:00 | 02-01 06:00 | stop_loss | 5 | -1.49 | +| WIF | 02-01 01:00 | 02-01 06:00 | trailing_stop | 5 | -0.61 | +| APT | 02-01 01:00 | 02-01 07:00 | take_profit | 6 | +1.49 | +| FET | 01-31 23:00 | 02-01 07:00 | take_profit | 8 | +1.49 | +| PEPE | 02-01 01:00 | 02-01 07:00 | take_profit | 6 | +1.49 | +| AVAX | 01-31 23:00 | 02-01 09:00 | confirmed_bearish_exit | 10 | +0.29 | +| SEI | 01-31 23:00 | 02-01 09:00 | trailing_stop | 10 | -0.57 | +| ARB | 01-31 23:00 | 02-01 10:00 | stop_loss | 11 | -1.49 | +| ETC | 02-01 01:00 | 02-01 10:00 | trailing_stop | 9 | -0.22 | +| FIL | 01-31 23:00 | 02-01 10:00 | take_profit | 11 | +1.49 | +| LTC | 01-31 23:00 | 02-01 10:00 | stop_loss | 11 | -1.49 | +| OP | 02-01 01:00 | 02-01 10:00 | trailing_stop | 9 | -0.53 | +| INJ | 02-01 14:00 | 02-01 15:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-01 14:00 | 02-01 15:00 | stop_loss | 1 | -1.49 | +| UNI | 02-01 14:00 | 02-01 15:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-01 15:00 | 02-01 16:00 | stop_loss | 1 | -1.49 | +| OP | 02-01 15:00 | 02-01 16:00 | stop_loss | 1 | -1.49 | +| SUI | 02-01 15:00 | 02-01 16:00 | stop_loss | 1 | -1.49 | +| ATOM | 02-01 15:00 | 02-01 17:00 | stop_loss | 2 | -1.49 | +| ETC | 02-01 16:00 | 02-01 17:00 | stop_loss | 1 | -1.49 | +| KAS | 02-01 15:00 | 02-01 17:00 | stop_loss | 2 | -1.49 | +| NEAR | 02-01 15:00 | 02-01 17:00 | stop_loss | 2 | -1.49 | +| TIA | 02-01 15:00 | 02-01 17:00 | stop_loss | 2 | -1.49 | +| WIF | 02-01 16:00 | 02-01 17:00 | stop_loss | 1 | -1.49 | +| APT | 02-01 16:00 | 02-01 18:00 | take_profit | 2 | +1.49 | +| ARB | 02-01 15:00 | 02-01 18:00 | take_profit | 3 | +1.49 | +| AVAX | 02-01 16:00 | 02-01 18:00 | take_profit | 2 | +1.49 | +| INJ | 02-01 15:00 | 02-01 18:00 | take_profit | 3 | +1.49 | +| LTC | 02-01 16:00 | 02-01 18:00 | take_profit | 2 | +1.49 | +| NEAR | 02-01 17:00 | 02-01 18:00 | take_profit | 1 | +1.49 | +| OP | 02-01 16:00 | 02-01 18:00 | take_profit | 2 | +1.49 | +| RENDER | 02-01 15:00 | 02-01 18:00 | take_profit | 3 | +1.49 | +| SUI | 02-01 16:00 | 02-01 18:00 | take_profit | 2 | +1.49 | +| TIA | 02-01 17:00 | 02-01 18:00 | take_profit | 1 | +1.49 | +| UNI | 02-01 15:00 | 02-01 18:00 | take_profit | 3 | +1.49 | +| WIF | 02-01 17:00 | 02-01 18:00 | take_profit | 1 | +1.49 | +| ATOM | 02-01 17:00 | 02-01 19:00 | trailing_stop | 2 | -0.70 | +| OP | 02-01 18:00 | 02-01 19:00 | stop_loss | 1 | -1.49 | +| TIA | 02-01 18:00 | 02-01 19:00 | stop_loss | 1 | -1.49 | +| FET | 02-01 16:00 | 02-01 20:00 | stop_loss | 4 | -1.49 | +| INJ | 02-01 18:00 | 02-01 20:00 | stop_loss | 2 | -1.49 | +| RENDER | 02-01 18:00 | 02-01 20:00 | stop_loss | 2 | -1.49 | +| ETC | 02-01 17:00 | 02-01 21:00 | stop_loss | 4 | -1.49 | +| ETC | 02-01 21:00 | 02-01 22:00 | trailing_stop | 1 | -0.40 | +| ARB | 02-01 21:00 | 02-01 23:00 | stop_loss | 2 | -1.49 | +| FET | 02-01 21:00 | 02-01 23:00 | stop_loss | 2 | -1.49 | +| SEI | 02-01 15:00 | 02-01 23:00 | stop_loss | 8 | -1.49 | +| SHIB | 02-01 15:00 | 02-01 23:00 | stop_loss | 8 | -1.49 | +| FET | 02-01 23:00 | 02-02 00:00 | stop_loss | 1 | -1.49 | +| INJ | 02-01 23:00 | 02-02 00:00 | take_profit | 1 | +1.49 | +| ARB | 02-02 04:00 | 02-02 05:00 | stop_loss | 1 | -1.49 | +| TRX | 01-31 18:00 | 02-02 05:00 | stop_loss | 35 | -1.49 | +| ARB | 02-02 05:00 | 02-02 06:00 | stop_loss | 1 | -1.49 | +| KAS | 02-02 05:00 | 02-02 06:00 | stop_loss | 1 | -1.49 | +| OP | 02-03 02:00 | 02-03 03:00 | take_profit | 1 | +1.49 | +| UNI | 02-03 02:00 | 02-03 03:00 | take_profit | 1 | +1.49 | +| WIF | 02-03 05:00 | 02-03 08:00 | take_profit | 3 | +1.49 | +| FET | 02-03 05:00 | 02-03 09:00 | stop_loss | 4 | -1.49 | +| NEAR | 02-03 05:00 | 02-03 12:00 | trailing_stop | 7 | -0.62 | +| FET | 02-03 14:00 | 02-03 15:00 | take_profit | 1 | +1.49 | +| NEAR | 02-03 14:00 | 02-03 15:00 | take_profit | 1 | +1.49 | +| OP | 02-03 16:00 | 02-03 17:00 | stop_loss | 1 | -1.49 | +| ARB | 02-03 17:00 | 02-03 18:00 | stop_loss | 1 | -1.49 | +| ATOM | 02-03 17:00 | 02-03 18:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-03 17:00 | 02-03 18:00 | stop_loss | 1 | -1.49 | +| FET | 02-03 17:00 | 02-03 18:00 | stop_loss | 1 | -1.49 | +| KAS | 02-03 17:00 | 02-03 18:00 | stop_loss | 1 | -1.49 | +| NEAR | 02-03 17:00 | 02-03 18:00 | stop_loss | 1 | -1.49 | +| OP | 02-03 17:00 | 02-03 18:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-03 17:00 | 02-03 18:00 | stop_loss | 1 | -1.49 | +| SEI | 02-03 17:00 | 02-03 18:00 | stop_loss | 1 | -1.49 | +| APT | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| ARB | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| ATOM | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| AVAX | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| BONK | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| ETC | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| FET | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| FIL | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| INJ | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| KAS | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| LTC | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| NEAR | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| OP | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| RENDER | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| SEI | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| SHIB | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| SUI | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| TIA | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| UNI | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| WIF | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| OP | 02-03 22:00 | 02-03 23:00 | stop_loss | 1 | -1.49 | +| OP | 02-03 23:00 | 02-04 00:00 | trailing_stop | 1 | -0.49 | +| RENDER | 02-04 10:00 | 02-04 11:00 | stop_loss | 1 | -1.49 | +| SEI | 02-04 10:00 | 02-04 11:00 | stop_loss | 1 | -1.49 | +| UNI | 02-04 10:00 | 02-04 11:00 | stop_loss | 1 | -1.49 | +| WIF | 02-04 10:00 | 02-04 11:00 | stop_loss | 1 | -1.49 | +| TRX | 02-02 09:00 | 02-04 14:00 | trailing_stop | 53 | -0.45 | +| APT | 02-04 14:00 | 02-04 15:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-04 14:00 | 02-04 15:00 | stop_loss | 1 | -1.49 | +| BONK | 02-04 14:00 | 02-04 15:00 | stop_loss | 1 | -1.49 | +| ETC | 02-04 14:00 | 02-04 15:00 | stop_loss | 1 | -1.49 | +| FET | 02-04 14:00 | 02-04 15:00 | stop_loss | 1 | -1.49 | +| FIL | 02-04 14:00 | 02-04 15:00 | stop_loss | 1 | -1.49 | +| LTC | 02-04 14:00 | 02-04 15:00 | stop_loss | 1 | -1.49 | +| NEAR | 02-04 14:00 | 02-04 15:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-04 14:00 | 02-04 15:00 | stop_loss | 1 | -1.49 | +| TIA | 02-04 14:00 | 02-04 15:00 | stop_loss | 1 | -1.49 | +| UNI | 02-04 14:00 | 02-04 15:00 | stop_loss | 1 | -1.49 | +| APT | 02-04 15:00 | 02-04 16:00 | stop_loss | 1 | -1.49 | +| ATOM | 02-04 15:00 | 02-04 16:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-04 15:00 | 02-04 16:00 | stop_loss | 1 | -1.49 | +| BONK | 02-04 15:00 | 02-04 16:00 | stop_loss | 1 | -1.49 | +| ETC | 02-04 15:00 | 02-04 16:00 | stop_loss | 1 | -1.49 | +| FIL | 02-04 15:00 | 02-04 16:00 | stop_loss | 1 | -1.49 | +| INJ | 02-04 15:00 | 02-04 16:00 | stop_loss | 1 | -1.49 | +| KAS | 02-04 14:00 | 02-04 16:00 | stop_loss | 2 | -1.49 | +| LTC | 02-04 15:00 | 02-04 16:00 | stop_loss | 1 | -1.49 | +| NEAR | 02-04 15:00 | 02-04 16:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-04 14:00 | 02-04 16:00 | trailing_stop | 2 | -0.50 | +| SEI | 02-04 15:00 | 02-04 16:00 | stop_loss | 1 | -1.49 | +| SHIB | 02-04 15:00 | 02-04 16:00 | stop_loss | 1 | -1.49 | +| SUI | 02-04 15:00 | 02-04 16:00 | stop_loss | 1 | -1.49 | +| TIA | 02-04 15:00 | 02-04 16:00 | stop_loss | 1 | -1.49 | +| UNI | 02-04 15:00 | 02-04 16:00 | stop_loss | 1 | -1.49 | +| APT | 02-04 16:00 | 02-04 17:00 | stop_loss | 1 | -1.49 | +| ATOM | 02-04 16:00 | 02-04 17:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-04 16:00 | 02-04 17:00 | stop_loss | 1 | -1.49 | +| BONK | 02-04 16:00 | 02-04 17:00 | stop_loss | 1 | -1.49 | +| ETC | 02-04 16:00 | 02-04 17:00 | stop_loss | 1 | -1.49 | +| FET | 02-04 16:00 | 02-04 17:00 | stop_loss | 1 | -1.49 | +| FIL | 02-04 16:00 | 02-04 17:00 | stop_loss | 1 | -1.49 | +| INJ | 02-04 16:00 | 02-04 17:00 | stop_loss | 1 | -1.49 | +| LTC | 02-04 16:00 | 02-04 17:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-04 15:00 | 02-04 17:00 | trailing_stop | 2 | -0.26 | +| SEI | 02-04 16:00 | 02-04 17:00 | stop_loss | 1 | -1.49 | +| SHIB | 02-04 16:00 | 02-04 17:00 | stop_loss | 1 | -1.49 | +| SUI | 02-04 16:00 | 02-04 17:00 | stop_loss | 1 | -1.49 | +| TIA | 02-04 16:00 | 02-04 17:00 | stop_loss | 1 | -1.49 | +| ATOM | 02-04 17:00 | 02-04 18:00 | stop_loss | 1 | -1.49 | +| BONK | 02-04 17:00 | 02-04 18:00 | stop_loss | 1 | -1.49 | +| ETC | 02-04 17:00 | 02-04 18:00 | stop_loss | 1 | -1.49 | +| FET | 02-04 17:00 | 02-04 18:00 | stop_loss | 1 | -1.49 | +| FIL | 02-04 17:00 | 02-04 18:00 | stop_loss | 1 | -1.49 | +| LTC | 02-04 17:00 | 02-04 18:00 | stop_loss | 1 | -1.49 | +| SHIB | 02-04 17:00 | 02-04 18:00 | stop_loss | 1 | -1.49 | +| SUI | 02-04 17:00 | 02-04 18:00 | stop_loss | 1 | -1.49 | +| UNI | 02-04 16:00 | 02-04 18:00 | stop_loss | 2 | -1.49 | +| ARB | 02-04 18:00 | 02-04 19:00 | trailing_stop | 1 | -0.19 | +| ATOM | 02-04 18:00 | 02-04 19:00 | stop_loss | 1 | -1.49 | +| APT | 02-04 20:00 | 02-04 21:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-04 20:00 | 02-04 21:00 | stop_loss | 1 | -1.49 | +| INJ | 02-04 20:00 | 02-04 21:00 | stop_loss | 1 | -1.49 | +| APT | 02-04 21:00 | 02-04 22:00 | stop_loss | 1 | -1.49 | +| ARB | 02-04 21:00 | 02-04 22:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-04 21:00 | 02-04 22:00 | stop_loss | 1 | -1.49 | +| BONK | 02-04 21:00 | 02-04 22:00 | stop_loss | 1 | -1.49 | +| ETC | 02-04 21:00 | 02-04 22:00 | stop_loss | 1 | -1.49 | +| FET | 02-04 21:00 | 02-04 22:00 | stop_loss | 1 | -1.49 | +| FIL | 02-04 21:00 | 02-04 22:00 | stop_loss | 1 | -1.49 | +| INJ | 02-04 21:00 | 02-04 22:00 | stop_loss | 1 | -1.49 | +| KAS | 02-04 21:00 | 02-04 22:00 | stop_loss | 1 | -1.49 | +| LTC | 02-04 21:00 | 02-04 22:00 | stop_loss | 1 | -1.49 | +| SEI | 02-04 21:00 | 02-04 22:00 | stop_loss | 1 | -1.49 | +| SHIB | 02-04 21:00 | 02-04 22:00 | stop_loss | 1 | -1.49 | +| SUI | 02-04 21:00 | 02-04 22:00 | stop_loss | 1 | -1.49 | +| TIA | 02-04 21:00 | 02-04 22:00 | stop_loss | 1 | -1.49 | +| UNI | 02-04 21:00 | 02-04 22:00 | stop_loss | 1 | -1.49 | +| OP | 02-04 22:00 | 02-04 23:00 | take_profit | 1 | +1.49 | +| TIA | 02-04 22:00 | 02-04 23:00 | trailing_stop | 1 | -0.58 | +| ARB | 02-04 22:00 | 02-05 02:00 | stop_loss | 4 | -1.49 | +| LTC | 02-04 22:00 | 02-05 02:00 | trailing_stop | 4 | -0.46 | +| RENDER | 02-04 22:00 | 02-05 02:00 | stop_loss | 4 | -1.49 | +| SEI | 02-04 22:00 | 02-05 02:00 | stop_loss | 4 | -1.49 | +| BONK | 02-04 22:00 | 02-05 03:00 | stop_loss | 5 | -1.49 | +| NEAR | 02-04 22:00 | 02-05 03:00 | stop_loss | 5 | -1.49 | +| TRX | 02-04 14:00 | 02-05 03:00 | stop_loss | 13 | -1.49 | +| KAS | 02-05 09:00 | 02-05 10:00 | stop_loss | 1 | -1.49 | +| APT | 02-05 10:00 | 02-05 11:00 | stop_loss | 1 | -1.49 | +| ARB | 02-05 10:00 | 02-05 11:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-05 10:00 | 02-05 11:00 | stop_loss | 1 | -1.49 | +| BONK | 02-05 10:00 | 02-05 11:00 | stop_loss | 1 | -1.49 | +| FET | 02-05 10:00 | 02-05 11:00 | stop_loss | 1 | -1.49 | +| FIL | 02-05 10:00 | 02-05 11:00 | stop_loss | 1 | -1.49 | +| INJ | 02-05 10:00 | 02-05 11:00 | stop_loss | 1 | -1.49 | +| LTC | 02-05 10:00 | 02-05 11:00 | stop_loss | 1 | -1.49 | +| OP | 02-05 10:00 | 02-05 11:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-05 10:00 | 02-05 11:00 | stop_loss | 1 | -1.49 | +| SEI | 02-05 10:00 | 02-05 11:00 | stop_loss | 1 | -1.49 | +| SHIB | 02-05 10:00 | 02-05 11:00 | stop_loss | 1 | -1.49 | +| SUI | 02-05 10:00 | 02-05 11:00 | stop_loss | 1 | -1.49 | +| TIA | 02-05 10:00 | 02-05 11:00 | stop_loss | 1 | -1.49 | +| UNI | 02-05 10:00 | 02-05 11:00 | stop_loss | 1 | -1.49 | +| WIF | 02-05 10:00 | 02-05 11:00 | stop_loss | 1 | -1.49 | +| APT | 02-05 11:00 | 02-05 12:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-05 11:00 | 02-05 12:00 | stop_loss | 1 | -1.49 | +| FIL | 02-05 11:00 | 02-05 12:00 | stop_loss | 1 | -1.49 | +| INJ | 02-05 11:00 | 02-05 12:00 | stop_loss | 1 | -1.49 | +| LTC | 02-05 11:00 | 02-05 12:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-05 11:00 | 02-05 12:00 | stop_loss | 1 | -1.49 | +| SEI | 02-05 11:00 | 02-05 12:00 | stop_loss | 1 | -1.49 | +| SHIB | 02-05 11:00 | 02-05 12:00 | stop_loss | 1 | -1.49 | +| SUI | 02-05 11:00 | 02-05 12:00 | stop_loss | 1 | -1.49 | +| UNI | 02-05 11:00 | 02-05 12:00 | stop_loss | 1 | -1.49 | +| ETC | 02-05 10:00 | 02-05 13:00 | stop_loss | 3 | -1.49 | +| KAS | 02-05 12:00 | 02-05 13:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-05 11:00 | 02-05 13:00 | stop_loss | 2 | -1.49 | +| SUI | 02-05 12:00 | 02-05 13:00 | stop_loss | 1 | -1.49 | +| APT | 02-05 12:00 | 02-05 14:00 | take_profit | 2 | +1.49 | +| AVAX | 02-05 12:00 | 02-05 14:00 | take_profit | 2 | +1.49 | +| ETC | 02-05 13:00 | 02-05 14:00 | take_profit | 1 | +1.49 | +| FET | 02-05 11:00 | 02-05 14:00 | take_profit | 3 | +1.49 | +| FIL | 02-05 12:00 | 02-05 14:00 | take_profit | 2 | +1.49 | +| KAS | 02-05 13:00 | 02-05 14:00 | take_profit | 1 | +1.49 | +| LTC | 02-05 12:00 | 02-05 14:00 | take_profit | 2 | +1.49 | +| SUI | 02-05 13:00 | 02-05 14:00 | take_profit | 1 | +1.49 | +| TIA | 02-05 11:00 | 02-05 14:00 | stop_loss | 3 | -1.49 | +| UNI | 02-05 12:00 | 02-05 14:00 | take_profit | 2 | +1.49 | +| BONK | 02-05 11:00 | 02-05 15:00 | stop_loss | 4 | -1.49 | +| INJ | 02-05 12:00 | 02-05 15:00 | stop_loss | 3 | -1.49 | +| KAS | 02-05 14:00 | 02-05 15:00 | stop_loss | 1 | -1.49 | +| OP | 02-05 11:00 | 02-05 15:00 | stop_loss | 4 | -1.49 | +| SHIB | 02-05 12:00 | 02-05 15:00 | stop_loss | 3 | -1.49 | +| TRX | 02-05 11:00 | 02-05 15:00 | stop_loss | 4 | -1.49 | +| WIF | 02-05 11:00 | 02-05 15:00 | stop_loss | 4 | -1.49 | +| APT | 02-05 15:00 | 02-05 16:00 | stop_loss | 1 | -1.49 | +| ARB | 02-05 15:00 | 02-05 16:00 | take_profit | 1 | +1.49 | +| ATOM | 02-05 15:00 | 02-05 16:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-05 15:00 | 02-05 16:00 | take_profit | 1 | +1.49 | +| BONK | 02-05 15:00 | 02-05 16:00 | take_profit | 1 | +1.49 | +| ETC | 02-05 15:00 | 02-05 16:00 | take_profit | 1 | +1.49 | +| FET | 02-05 15:00 | 02-05 16:00 | stop_loss | 1 | -1.49 | +| FIL | 02-05 15:00 | 02-05 16:00 | stop_loss | 1 | -1.49 | +| INJ | 02-05 15:00 | 02-05 16:00 | stop_loss | 1 | -1.49 | +| KAS | 02-05 15:00 | 02-05 16:00 | stop_loss | 1 | -1.49 | +| NEAR | 02-05 15:00 | 02-05 16:00 | take_profit | 1 | +1.49 | +| OP | 02-05 15:00 | 02-05 16:00 | take_profit | 1 | +1.49 | +| RENDER | 02-05 15:00 | 02-05 16:00 | stop_loss | 1 | -1.49 | +| SEI | 02-05 15:00 | 02-05 16:00 | take_profit | 1 | +1.49 | +| SUI | 02-05 15:00 | 02-05 16:00 | take_profit | 1 | +1.49 | +| TIA | 02-05 15:00 | 02-05 16:00 | stop_loss | 1 | -1.49 | +| UNI | 02-05 15:00 | 02-05 16:00 | take_profit | 1 | +1.49 | +| WIF | 02-05 15:00 | 02-05 16:00 | stop_loss | 1 | -1.49 | +| APT | 02-05 16:00 | 02-05 17:00 | stop_loss | 1 | -1.49 | +| ARB | 02-05 16:00 | 02-05 17:00 | stop_loss | 1 | -1.49 | +| BONK | 02-05 16:00 | 02-05 17:00 | stop_loss | 1 | -1.49 | +| ETC | 02-05 16:00 | 02-05 17:00 | stop_loss | 1 | -1.49 | +| FET | 02-05 16:00 | 02-05 17:00 | stop_loss | 1 | -1.49 | +| FIL | 02-05 16:00 | 02-05 17:00 | stop_loss | 1 | -1.49 | +| INJ | 02-05 16:00 | 02-05 17:00 | stop_loss | 1 | -1.49 | +| LTC | 02-05 15:00 | 02-05 17:00 | stop_loss | 2 | -1.49 | +| NEAR | 02-05 16:00 | 02-05 17:00 | stop_loss | 1 | -1.49 | +| OP | 02-05 16:00 | 02-05 17:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-05 15:00 | 02-05 17:00 | stop_loss | 2 | -1.49 | +| RENDER | 02-05 16:00 | 02-05 17:00 | stop_loss | 1 | -1.49 | +| SHIB | 02-05 15:00 | 02-05 17:00 | stop_loss | 2 | -1.49 | +| TIA | 02-05 16:00 | 02-05 17:00 | stop_loss | 1 | -1.49 | +| UNI | 02-05 16:00 | 02-05 17:00 | stop_loss | 1 | -1.49 | +| WIF | 02-05 16:00 | 02-05 17:00 | stop_loss | 1 | -1.49 | +| APT | 02-05 17:00 | 02-05 18:00 | stop_loss | 1 | -1.49 | +| ARB | 02-05 17:00 | 02-05 18:00 | stop_loss | 1 | -1.49 | +| ATOM | 02-05 17:00 | 02-05 18:00 | take_profit | 1 | +1.49 | +| AVAX | 02-05 17:00 | 02-05 18:00 | stop_loss | 1 | -1.49 | +| BONK | 02-05 17:00 | 02-05 18:00 | stop_loss | 1 | -1.49 | +| ETC | 02-05 17:00 | 02-05 18:00 | stop_loss | 1 | -1.49 | +| FET | 02-05 17:00 | 02-05 18:00 | stop_loss | 1 | -1.49 | +| FIL | 02-05 17:00 | 02-05 18:00 | stop_loss | 1 | -1.49 | +| INJ | 02-05 17:00 | 02-05 18:00 | stop_loss | 1 | -1.49 | +| KAS | 02-05 17:00 | 02-05 18:00 | stop_loss | 1 | -1.49 | +| LTC | 02-05 17:00 | 02-05 18:00 | stop_loss | 1 | -1.49 | +| NEAR | 02-05 17:00 | 02-05 18:00 | stop_loss | 1 | -1.49 | +| OP | 02-05 17:00 | 02-05 18:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-05 17:00 | 02-05 18:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-05 17:00 | 02-05 18:00 | stop_loss | 1 | -1.49 | +| SEI | 02-05 17:00 | 02-05 18:00 | stop_loss | 1 | -1.49 | +| SHIB | 02-05 17:00 | 02-05 18:00 | stop_loss | 1 | -1.49 | +| SUI | 02-05 17:00 | 02-05 18:00 | stop_loss | 1 | -1.49 | +| TIA | 02-05 17:00 | 02-05 18:00 | stop_loss | 1 | -1.49 | +| UNI | 02-05 17:00 | 02-05 18:00 | stop_loss | 1 | -1.49 | +| WIF | 02-05 17:00 | 02-05 18:00 | stop_loss | 1 | -1.49 | +| FET | 02-05 18:00 | 02-05 19:00 | stop_loss | 1 | -1.49 | +| NEAR | 02-05 18:00 | 02-05 19:00 | stop_loss | 1 | -1.49 | +| UNI | 02-05 18:00 | 02-05 19:00 | stop_loss | 1 | -1.49 | +| ARB | 02-05 19:00 | 02-05 20:00 | stop_loss | 1 | -1.49 | +| ATOM | 02-05 19:00 | 02-05 20:00 | stop_loss | 1 | -1.49 | +| BONK | 02-05 19:00 | 02-05 20:00 | stop_loss | 1 | -1.49 | +| ETC | 02-05 19:00 | 02-05 20:00 | stop_loss | 1 | -1.49 | +| FET | 02-05 19:00 | 02-05 20:00 | stop_loss | 1 | -1.49 | +| INJ | 02-05 19:00 | 02-05 20:00 | stop_loss | 1 | -1.49 | +| LTC | 02-05 19:00 | 02-05 20:00 | stop_loss | 1 | -1.49 | +| NEAR | 02-05 19:00 | 02-05 20:00 | stop_loss | 1 | -1.49 | +| UNI | 02-05 19:00 | 02-05 20:00 | stop_loss | 1 | -1.49 | +| APT | 02-05 20:00 | 02-05 21:00 | stop_loss | 1 | -1.49 | +| ARB | 02-05 20:00 | 02-05 21:00 | stop_loss | 1 | -1.49 | +| ATOM | 02-05 20:00 | 02-05 21:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-05 20:00 | 02-05 21:00 | stop_loss | 1 | -1.49 | +| BONK | 02-05 20:00 | 02-05 21:00 | take_profit | 1 | +1.49 | +| ETC | 02-05 20:00 | 02-05 21:00 | stop_loss | 1 | -1.49 | +| FET | 02-05 20:00 | 02-05 21:00 | stop_loss | 1 | -1.49 | +| FIL | 02-05 20:00 | 02-05 21:00 | stop_loss | 1 | -1.49 | +| INJ | 02-05 20:00 | 02-05 21:00 | stop_loss | 1 | -1.49 | +| KAS | 02-05 20:00 | 02-05 21:00 | take_profit | 1 | +1.49 | +| LTC | 02-05 20:00 | 02-05 21:00 | take_profit | 1 | +1.49 | +| NEAR | 02-05 20:00 | 02-05 21:00 | stop_loss | 1 | -1.49 | +| OP | 02-05 20:00 | 02-05 21:00 | take_profit | 1 | +1.49 | +| RENDER | 02-05 20:00 | 02-05 21:00 | stop_loss | 1 | -1.49 | +| SEI | 02-05 20:00 | 02-05 21:00 | take_profit | 1 | +1.49 | +| SHIB | 02-05 20:00 | 02-05 21:00 | stop_loss | 1 | -1.49 | +| SUI | 02-05 20:00 | 02-05 21:00 | take_profit | 1 | +1.49 | +| TIA | 02-05 20:00 | 02-05 21:00 | take_profit | 1 | +1.49 | +| TRX | 02-05 18:00 | 02-05 21:00 | stop_loss | 3 | -1.49 | +| UNI | 02-05 20:00 | 02-05 21:00 | stop_loss | 1 | -1.49 | +| WIF | 02-05 20:00 | 02-05 21:00 | stop_loss | 1 | -1.49 | +| ARB | 02-05 21:00 | 02-05 22:00 | stop_loss | 1 | -1.49 | +| ATOM | 02-05 21:00 | 02-05 22:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-05 21:00 | 02-05 22:00 | stop_loss | 1 | -1.49 | +| ETC | 02-05 21:00 | 02-05 22:00 | stop_loss | 1 | -1.49 | +| NEAR | 02-05 21:00 | 02-05 22:00 | stop_loss | 1 | -1.49 | +| TRX | 02-05 21:00 | 02-06 00:00 | stop_loss | 3 | -1.49 | +| APT | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| ARB | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| ATOM | 02-06 00:00 | 02-06 01:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| BONK | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| FET | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| FIL | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| INJ | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| KAS | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| LTC | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| NEAR | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| OP | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| PEPE | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| RENDER | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| SEI | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| SHIB | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| SUI | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| TIA | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| UNI | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| WIF | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| INJ | 02-06 03:00 | 02-06 05:00 | take_profit | 2 | +1.49 | +| OP | 02-06 04:00 | 02-06 05:00 | take_profit | 1 | +1.49 | +| SHIB | 02-06 03:00 | 02-06 05:00 | take_profit | 2 | +1.49 | +| TIA | 02-06 03:00 | 02-06 05:00 | take_profit | 2 | +1.49 | +| WIF | 02-06 04:00 | 02-06 05:00 | take_profit | 1 | +1.49 | +| ARB | 02-06 06:00 | 02-06 07:00 | stop_loss | 1 | -1.49 | +| NEAR | 02-06 06:00 | 02-06 07:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-06 06:00 | 02-06 08:00 | stop_loss | 2 | -1.49 | +| ATOM | 02-06 08:00 | 02-06 09:00 | take_profit | 1 | +1.49 | +| AVAX | 02-06 08:00 | 02-06 09:00 | take_profit | 1 | +1.49 | +| LTC | 02-07 06:00 | 02-07 07:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-07 06:00 | 02-07 07:00 | stop_loss | 1 | -1.49 | +| WIF | 02-07 06:00 | 02-07 07:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-07 07:00 | 02-07 08:00 | trailing_stop | 1 | -0.67 | +| APT | 02-07 07:00 | 02-07 10:00 | stop_loss | 3 | -1.49 | +| BONK | 02-07 07:00 | 02-07 10:00 | stop_loss | 3 | -1.49 | +| FET | 02-07 07:00 | 02-07 10:00 | stop_loss | 3 | -1.49 | +| LTC | 02-07 07:00 | 02-07 10:00 | stop_loss | 3 | -1.49 | +| NEAR | 02-07 07:00 | 02-07 10:00 | stop_loss | 3 | -1.49 | +| RENDER | 02-07 08:00 | 02-07 10:00 | stop_loss | 2 | -1.49 | +| SEI | 02-07 07:00 | 02-07 10:00 | stop_loss | 3 | -1.49 | +| SHIB | 02-07 07:00 | 02-07 10:00 | stop_loss | 3 | -1.49 | +| APT | 02-07 10:00 | 02-07 12:00 | take_profit | 2 | +1.49 | +| ARB | 02-07 07:00 | 02-07 12:00 | take_profit | 5 | +1.49 | +| AVAX | 02-07 07:00 | 02-07 12:00 | take_profit | 5 | +1.49 | +| BONK | 02-07 10:00 | 02-07 12:00 | take_profit | 2 | +1.49 | +| ETC | 02-07 07:00 | 02-07 12:00 | take_profit | 5 | +1.49 | +| INJ | 02-07 07:00 | 02-07 12:00 | take_profit | 5 | +1.49 | +| KAS | 02-07 07:00 | 02-07 12:00 | take_profit | 5 | +1.49 | +| LTC | 02-07 10:00 | 02-07 12:00 | take_profit | 2 | +1.49 | +| NEAR | 02-07 10:00 | 02-07 12:00 | take_profit | 2 | +1.49 | +| OP | 02-07 07:00 | 02-07 12:00 | take_profit | 5 | +1.49 | +| PEPE | 02-07 07:00 | 02-07 12:00 | take_profit | 5 | +1.49 | +| SEI | 02-07 10:00 | 02-07 12:00 | take_profit | 2 | +1.49 | +| SHIB | 02-07 10:00 | 02-07 12:00 | take_profit | 2 | +1.49 | +| SUI | 02-07 07:00 | 02-07 12:00 | take_profit | 5 | +1.49 | +| TIA | 02-07 07:00 | 02-07 12:00 | take_profit | 5 | +1.49 | +| UNI | 02-07 07:00 | 02-07 12:00 | take_profit | 5 | +1.49 | +| WIF | 02-07 07:00 | 02-07 12:00 | take_profit | 5 | +1.49 | +| RENDER | 02-07 14:00 | 02-07 15:00 | take_profit | 1 | +1.49 | +| SEI | 02-07 14:00 | 02-07 16:00 | take_profit | 2 | +1.49 | +| ARB | 02-08 06:00 | 02-08 08:00 | trailing_stop | 2 | -0.36 | +| FIL | 02-08 07:00 | 02-08 08:00 | trailing_stop | 1 | -0.22 | +| INJ | 02-08 06:00 | 02-08 08:00 | trailing_stop | 2 | -0.14 | +| NEAR | 02-08 06:00 | 02-08 08:00 | trailing_stop | 2 | -0.11 | +| OP | 02-08 05:00 | 02-08 08:00 | trailing_stop | 3 | -0.47 | +| TIA | 02-08 06:00 | 02-08 08:00 | trailing_stop | 2 | -0.70 | +| UNI | 02-08 07:00 | 02-08 08:00 | trailing_stop | 1 | -0.37 | +| ARB | 02-08 08:00 | 02-08 09:00 | stop_loss | 1 | -1.49 | +| ATOM | 02-08 06:00 | 02-08 09:00 | trailing_stop | 3 | -0.62 | +| TIA | 02-08 08:00 | 02-08 09:00 | stop_loss | 1 | -1.49 | +| APT | 02-08 09:00 | 02-08 10:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-08 10:00 | 02-08 11:00 | trailing_stop | 1 | -0.36 | +| BONK | 02-08 10:00 | 02-08 11:00 | trailing_stop | 1 | -0.08 | +| ETC | 02-08 10:00 | 02-08 11:00 | trailing_stop | 1 | -0.33 | +| NEAR | 02-08 10:00 | 02-08 11:00 | trailing_stop | 1 | -0.20 | +| OP | 02-08 10:00 | 02-08 11:00 | trailing_stop | 1 | -0.11 | +| PEPE | 02-08 10:00 | 02-08 11:00 | take_profit | 1 | +1.49 | +| SHIB | 02-08 10:00 | 02-08 11:00 | trailing_stop | 1 | -0.12 | +| SUI | 02-08 10:00 | 02-08 11:00 | trailing_stop | 1 | -0.26 | +| WIF | 02-08 10:00 | 02-08 11:00 | trailing_stop | 1 | -0.11 | +| FIL | 02-08 10:00 | 02-08 13:00 | trailing_stop | 3 | -0.64 | +| APT | 02-08 10:00 | 02-08 15:00 | stop_loss | 5 | -1.49 | +| TIA | 02-08 09:00 | 02-08 15:00 | trailing_stop | 6 | -0.50 | +| FIL | 02-08 15:00 | 02-08 16:00 | stop_loss | 1 | -1.49 | +| FIL | 02-08 16:00 | 02-08 17:00 | trailing_stop | 1 | -0.41 | +| OP | 02-08 16:00 | 02-08 17:00 | trailing_stop | 1 | -0.38 | +| APT | 02-08 16:00 | 02-08 18:00 | take_profit | 2 | +1.49 | +| ARB | 02-08 16:00 | 02-08 18:00 | take_profit | 2 | +1.49 | +| BONK | 02-08 16:00 | 02-08 18:00 | take_profit | 2 | +1.49 | +| INJ | 02-08 16:00 | 02-08 18:00 | take_profit | 2 | +1.49 | +| TIA | 02-08 16:00 | 02-08 18:00 | take_profit | 2 | +1.49 | +| PEPE | 02-09 01:00 | 02-09 03:00 | take_profit | 2 | +1.49 | +| TIA | 02-09 01:00 | 02-09 06:00 | trailing_stop | 5 | -0.33 | +| ARB | 02-09 08:00 | 02-09 09:00 | stop_loss | 1 | -1.49 | +| SUI | 02-09 08:00 | 02-09 09:00 | stop_loss | 1 | -1.49 | +| UNI | 02-09 08:00 | 02-09 09:00 | stop_loss | 1 | -1.49 | +| APT | 02-09 08:00 | 02-09 10:00 | stop_loss | 2 | -1.49 | +| ARB | 02-09 09:00 | 02-09 10:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-09 08:00 | 02-09 10:00 | stop_loss | 2 | -1.49 | +| BONK | 02-09 08:00 | 02-09 10:00 | stop_loss | 2 | -1.49 | +| ETC | 02-09 08:00 | 02-09 10:00 | stop_loss | 2 | -1.49 | +| FET | 02-09 08:00 | 02-09 10:00 | stop_loss | 2 | -1.49 | +| FIL | 02-09 08:00 | 02-09 10:00 | stop_loss | 2 | -1.49 | +| INJ | 02-09 09:00 | 02-09 10:00 | stop_loss | 1 | -1.49 | +| KAS | 02-09 08:00 | 02-09 10:00 | stop_loss | 2 | -1.49 | +| LTC | 02-09 08:00 | 02-09 10:00 | stop_loss | 2 | -1.49 | +| NEAR | 02-09 08:00 | 02-09 10:00 | stop_loss | 2 | -1.49 | +| OP | 02-09 08:00 | 02-09 10:00 | stop_loss | 2 | -1.49 | +| PEPE | 02-09 09:00 | 02-09 10:00 | stop_loss | 1 | -1.49 | +| SEI | 02-09 08:00 | 02-09 10:00 | stop_loss | 2 | -1.49 | +| SHIB | 02-09 08:00 | 02-09 10:00 | stop_loss | 2 | -1.49 | +| SUI | 02-09 09:00 | 02-09 10:00 | stop_loss | 1 | -1.49 | +| TIA | 02-09 08:00 | 02-09 10:00 | stop_loss | 2 | -1.49 | +| UNI | 02-09 09:00 | 02-09 10:00 | stop_loss | 1 | -1.49 | +| WIF | 02-09 08:00 | 02-09 10:00 | stop_loss | 2 | -1.49 | +| ARB | 02-09 10:00 | 02-09 13:00 | trailing_stop | 3 | -0.71 | +| ATOM | 02-09 10:00 | 02-09 13:00 | take_profit | 3 | +1.49 | +| INJ | 02-09 10:00 | 02-09 13:00 | take_profit | 3 | +1.49 | +| LTC | 02-09 10:00 | 02-09 13:00 | take_profit | 3 | +1.49 | +| SUI | 02-09 10:00 | 02-09 13:00 | trailing_stop | 3 | -0.57 | +| APT | 02-09 10:00 | 02-09 14:00 | take_profit | 4 | +1.49 | +| AVAX | 02-09 10:00 | 02-09 14:00 | take_profit | 4 | +1.49 | +| BONK | 02-09 10:00 | 02-09 14:00 | take_profit | 4 | +1.49 | +| ETC | 02-09 10:00 | 02-09 14:00 | take_profit | 4 | +1.49 | +| FET | 02-09 10:00 | 02-09 14:00 | take_profit | 4 | +1.49 | +| FIL | 02-09 10:00 | 02-09 14:00 | trailing_stop | 4 | -0.29 | +| KAS | 02-09 10:00 | 02-09 14:00 | take_profit | 4 | +1.49 | +| NEAR | 02-09 10:00 | 02-09 14:00 | take_profit | 4 | +1.49 | +| OP | 02-09 10:00 | 02-09 14:00 | take_profit | 4 | +1.49 | +| PEPE | 02-09 10:00 | 02-09 14:00 | take_profit | 4 | +1.49 | +| RENDER | 02-09 10:00 | 02-09 14:00 | take_profit | 4 | +1.49 | +| SEI | 02-09 10:00 | 02-09 14:00 | trailing_stop | 4 | -0.09 | +| SHIB | 02-09 10:00 | 02-09 14:00 | take_profit | 4 | +1.49 | +| SUI | 02-09 13:00 | 02-09 14:00 | take_profit | 1 | +1.49 | +| TIA | 02-09 10:00 | 02-09 14:00 | take_profit | 4 | +1.49 | +| UNI | 02-09 10:00 | 02-09 14:00 | trailing_stop | 4 | -0.64 | +| WIF | 02-09 10:00 | 02-09 14:00 | take_profit | 4 | +1.49 | +| KAS | 02-09 17:00 | 02-09 18:00 | stop_loss | 1 | -1.49 | +| KAS | 02-09 18:00 | 02-09 21:00 | stop_loss | 3 | -1.49 | +| ATOM | 02-10 05:00 | 02-10 06:00 | stop_loss | 1 | -1.49 | +| APT | 02-10 06:00 | 02-10 11:00 | stop_loss | 5 | -1.49 | +| OP | 02-10 06:00 | 02-10 11:00 | trailing_stop | 5 | -0.56 | +| PEPE | 02-10 06:00 | 02-10 11:00 | stop_loss | 5 | -1.49 | +| RENDER | 02-10 06:00 | 02-10 11:00 | trailing_stop | 5 | -0.34 | +| WIF | 02-10 07:00 | 02-10 11:00 | stop_loss | 4 | -1.49 | +| FIL | 02-10 10:00 | 02-10 12:00 | stop_loss | 2 | -1.49 | +| SUI | 02-10 07:00 | 02-10 12:00 | stop_loss | 5 | -1.49 | +| UNI | 02-10 06:00 | 02-10 12:00 | trailing_stop | 6 | -0.63 | +| AVAX | 02-10 06:00 | 02-10 13:00 | trailing_stop | 7 | -0.68 | +| NEAR | 02-10 07:00 | 02-10 13:00 | stop_loss | 6 | -1.49 | +| FET | 02-10 06:00 | 02-10 14:00 | stop_loss | 8 | -1.49 | +| WIF | 02-10 11:00 | 02-10 14:00 | stop_loss | 3 | -1.49 | +| ATOM | 02-10 06:00 | 02-10 15:00 | trailing_stop | 9 | -0.08 | +| SHIB | 02-10 06:00 | 02-10 15:00 | take_profit | 9 | +1.49 | +| BONK | 02-10 06:00 | 02-10 16:00 | stop_loss | 10 | -1.49 | +| ETC | 02-10 06:00 | 02-10 18:00 | stop_loss | 12 | -1.49 | +| INJ | 02-10 06:00 | 02-10 18:00 | stop_loss | 12 | -1.49 | +| LTC | 02-10 06:00 | 02-10 18:00 | trailing_stop | 12 | -0.60 | +| RENDER | 02-10 15:00 | 02-10 18:00 | stop_loss | 3 | -1.49 | +| SEI | 02-10 06:00 | 02-10 18:00 | stop_loss | 12 | -1.49 | +| TIA | 02-10 06:00 | 02-10 18:00 | stop_loss | 12 | -1.49 | +| FIL | 02-10 18:00 | 02-10 19:00 | stop_loss | 1 | -1.49 | +| FIL | 02-11 00:00 | 02-11 02:00 | stop_loss | 2 | -1.49 | +| OP | 02-10 18:00 | 02-11 02:00 | take_profit | 8 | +1.49 | +| PEPE | 02-10 18:00 | 02-11 02:00 | take_profit | 8 | +1.49 | +| FET | 02-10 18:00 | 02-11 03:00 | trailing_stop | 9 | -0.05 | +| NEAR | 02-10 18:00 | 02-11 03:00 | trailing_stop | 9 | -0.43 | +| FIL | 02-11 02:00 | 02-11 04:00 | stop_loss | 2 | -1.49 | +| UNI | 02-10 18:00 | 02-11 04:00 | stop_loss | 10 | -1.49 | +| SHIB | 02-10 18:00 | 02-11 05:00 | stop_loss | 11 | -1.49 | +| WIF | 02-10 22:00 | 02-11 05:00 | stop_loss | 7 | -1.49 | +| BONK | 02-11 04:00 | 02-11 06:00 | stop_loss | 2 | -1.49 | +| ETC | 02-11 04:00 | 02-11 06:00 | stop_loss | 2 | -1.49 | +| LTC | 02-11 05:00 | 02-11 06:00 | stop_loss | 1 | -1.49 | +| NEAR | 02-11 05:00 | 02-11 06:00 | stop_loss | 1 | -1.49 | +| OP | 02-11 05:00 | 02-11 06:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-11 05:00 | 02-11 06:00 | stop_loss | 1 | -1.49 | +| SHIB | 02-11 05:00 | 02-11 06:00 | stop_loss | 1 | -1.49 | +| SUI | 02-11 05:00 | 02-11 06:00 | stop_loss | 1 | -1.49 | +| TIA | 02-11 04:00 | 02-11 06:00 | stop_loss | 2 | -1.49 | +| UNI | 02-11 05:00 | 02-11 06:00 | stop_loss | 1 | -1.49 | +| SEI | 02-11 05:00 | 02-11 07:00 | stop_loss | 2 | -1.49 | +| TIA | 02-11 06:00 | 02-11 08:00 | stop_loss | 2 | -1.49 | +| TRX | 02-10 07:00 | 02-11 08:00 | stop_loss | 25 | -1.49 | +| NEAR | 02-11 06:00 | 02-11 09:00 | stop_loss | 3 | -1.49 | +| ARB | 02-11 06:00 | 02-11 10:00 | stop_loss | 4 | -1.49 | +| AVAX | 02-11 06:00 | 02-11 10:00 | stop_loss | 4 | -1.49 | +| OP | 02-11 06:00 | 02-11 10:00 | stop_loss | 4 | -1.49 | +| RENDER | 02-11 06:00 | 02-11 10:00 | stop_loss | 4 | -1.49 | +| SHIB | 02-11 06:00 | 02-11 10:00 | stop_loss | 4 | -1.49 | +| SUI | 02-11 06:00 | 02-11 10:00 | stop_loss | 4 | -1.49 | +| TIA | 02-11 08:00 | 02-11 10:00 | stop_loss | 2 | -1.49 | +| WIF | 02-11 07:00 | 02-11 10:00 | stop_loss | 3 | -1.49 | +| WIF | 02-11 10:00 | 02-11 12:00 | trailing_stop | 2 | -0.41 | +| ATOM | 02-11 06:00 | 02-11 13:00 | take_profit | 7 | +1.49 | +| BONK | 02-11 06:00 | 02-11 13:00 | take_profit | 7 | +1.49 | +| FET | 02-11 06:00 | 02-11 13:00 | trailing_stop | 7 | +0.12 | +| FIL | 02-11 06:00 | 02-11 13:00 | trailing_stop | 7 | +0.13 | +| INJ | 02-11 06:00 | 02-11 13:00 | trailing_stop | 7 | +0.06 | +| NEAR | 02-11 09:00 | 02-11 13:00 | take_profit | 4 | +1.49 | +| PEPE | 02-11 06:00 | 02-11 13:00 | take_profit | 7 | +1.49 | +| SEI | 02-11 07:00 | 02-11 13:00 | trailing_stop | 6 | -0.30 | +| SHIB | 02-11 10:00 | 02-11 13:00 | trailing_stop | 3 | -0.27 | +| TIA | 02-11 10:00 | 02-11 13:00 | take_profit | 3 | +1.49 | +| UNI | 02-11 06:00 | 02-11 13:00 | take_profit | 7 | +1.49 | +| ETC | 02-11 06:00 | 02-11 14:00 | take_profit | 8 | +1.49 | +| LTC | 02-11 06:00 | 02-11 14:00 | stop_loss | 8 | -1.49 | +| SUI | 02-11 13:00 | 02-11 14:00 | stop_loss | 1 | -1.49 | +| ARB | 02-11 14:00 | 02-11 15:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-11 14:00 | 02-11 15:00 | stop_loss | 1 | -1.49 | +| BONK | 02-11 14:00 | 02-11 15:00 | stop_loss | 1 | -1.49 | +| ETC | 02-11 14:00 | 02-11 15:00 | stop_loss | 1 | -1.49 | +| FET | 02-11 14:00 | 02-11 15:00 | stop_loss | 1 | -1.49 | +| FIL | 02-11 14:00 | 02-11 15:00 | stop_loss | 1 | -1.49 | +| INJ | 02-11 14:00 | 02-11 15:00 | stop_loss | 1 | -1.49 | +| LTC | 02-11 14:00 | 02-11 15:00 | stop_loss | 1 | -1.49 | +| NEAR | 02-11 14:00 | 02-11 15:00 | stop_loss | 1 | -1.49 | +| OP | 02-11 14:00 | 02-11 15:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-11 14:00 | 02-11 15:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-11 14:00 | 02-11 15:00 | stop_loss | 1 | -1.49 | +| SEI | 02-11 14:00 | 02-11 15:00 | stop_loss | 1 | -1.49 | +| SUI | 02-11 14:00 | 02-11 15:00 | stop_loss | 1 | -1.49 | +| TIA | 02-11 14:00 | 02-11 15:00 | stop_loss | 1 | -1.49 | +| WIF | 02-11 14:00 | 02-11 15:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-11 15:00 | 02-11 16:00 | take_profit | 1 | +1.49 | +| TIA | 02-11 15:00 | 02-11 16:00 | take_profit | 1 | +1.49 | +| AVAX | 02-11 15:00 | 02-11 17:00 | trailing_stop | 2 | -0.33 | +| NEAR | 02-11 15:00 | 02-11 17:00 | take_profit | 2 | +1.49 | +| ARB | 02-11 15:00 | 02-11 18:00 | trailing_stop | 3 | -0.22 | +| ETC | 02-11 15:00 | 02-11 18:00 | trailing_stop | 3 | -0.20 | +| FET | 02-11 15:00 | 02-11 18:00 | trailing_stop | 3 | -0.40 | +| INJ | 02-11 15:00 | 02-11 18:00 | take_profit | 3 | +1.49 | +| LTC | 02-11 15:00 | 02-11 18:00 | take_profit | 3 | +1.49 | +| OP | 02-11 15:00 | 02-11 18:00 | take_profit | 3 | +1.49 | +| SHIB | 02-11 15:00 | 02-11 18:00 | trailing_stop | 3 | -0.54 | +| APT | 02-11 15:00 | 02-11 20:00 | stop_loss | 5 | -1.49 | +| AVAX | 02-11 17:00 | 02-11 23:00 | trailing_stop | 6 | -0.38 | +| SEI | 02-11 15:00 | 02-11 23:00 | trailing_stop | 8 | -0.58 | +| TRX | 02-11 08:00 | 02-12 07:00 | take_profit | 23 | +1.49 | +| UNI | 02-12 04:00 | 02-12 07:00 | stop_loss | 3 | -1.49 | +| APT | 02-12 15:00 | 02-12 16:00 | stop_loss | 1 | -1.49 | +| KAS | 02-12 16:00 | 02-12 18:00 | stop_loss | 2 | -1.49 | +| UNI | 02-12 16:00 | 02-12 18:00 | stop_loss | 2 | -1.49 | +| APT | 02-12 16:00 | 02-12 19:00 | take_profit | 3 | +1.49 | +| ETC | 02-12 16:00 | 02-12 19:00 | take_profit | 3 | +1.49 | +| LTC | 02-12 16:00 | 02-12 19:00 | take_profit | 3 | +1.49 | +| NEAR | 02-12 16:00 | 02-12 19:00 | take_profit | 3 | +1.49 | +| OP | 02-12 16:00 | 02-12 19:00 | take_profit | 3 | +1.49 | +| UNI | 02-12 18:00 | 02-12 19:00 | take_profit | 1 | +1.49 | +| KAS | 02-12 20:00 | 02-12 22:00 | stop_loss | 2 | -1.49 | +| UNI | 02-12 20:00 | 02-12 22:00 | take_profit | 2 | +1.49 | +| INJ | 02-12 20:00 | 02-13 00:00 | take_profit | 4 | +1.49 | +| INJ | 02-13 00:00 | 02-13 04:00 | stop_loss | 4 | -1.49 | +| SUI | 02-13 00:00 | 02-13 04:00 | stop_loss | 4 | -1.49 | +| UNI | 02-13 00:00 | 02-13 04:00 | take_profit | 4 | +1.49 | +| APT | 02-13 00:00 | 02-13 05:00 | stop_loss | 5 | -1.49 | +| TIA | 02-13 00:00 | 02-13 05:00 | stop_loss | 5 | -1.49 | +| KAS | 02-13 00:00 | 02-13 06:00 | stop_loss | 6 | -1.49 | +| NEAR | 02-13 00:00 | 02-13 06:00 | take_profit | 6 | +1.49 | +| RENDER | 02-13 03:00 | 02-13 06:00 | stop_loss | 3 | -1.49 | +| SHIB | 02-13 03:00 | 02-13 10:00 | take_profit | 7 | +1.49 | +| TRX | 02-12 16:00 | 02-13 21:00 | take_profit | 29 | +1.49 | +| UNI | 02-14 06:00 | 02-14 08:00 | take_profit | 2 | +1.49 | +| ARB | 02-15 09:00 | 02-15 10:00 | stop_loss | 1 | -1.49 | +| FIL | 02-15 09:00 | 02-15 10:00 | stop_loss | 1 | -1.49 | +| INJ | 02-15 09:00 | 02-15 10:00 | stop_loss | 1 | -1.49 | +| OP | 02-15 09:00 | 02-15 10:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-15 09:00 | 02-15 10:00 | stop_loss | 1 | -1.49 | +| ARB | 02-15 10:00 | 02-15 12:00 | stop_loss | 2 | -1.49 | +| BONK | 02-15 10:00 | 02-15 12:00 | stop_loss | 2 | -1.49 | +| FET | 02-15 11:00 | 02-15 12:00 | stop_loss | 1 | -1.49 | +| FIL | 02-15 10:00 | 02-15 12:00 | stop_loss | 2 | -1.49 | +| INJ | 02-15 10:00 | 02-15 12:00 | stop_loss | 2 | -1.49 | +| RENDER | 02-15 10:00 | 02-15 12:00 | stop_loss | 2 | -1.49 | +| SEI | 02-15 11:00 | 02-15 12:00 | stop_loss | 1 | -1.49 | +| SUI | 02-15 11:00 | 02-15 12:00 | stop_loss | 1 | -1.49 | +| UNI | 02-15 08:00 | 02-15 12:00 | stop_loss | 4 | -1.49 | +| WIF | 02-15 11:00 | 02-15 12:00 | stop_loss | 1 | -1.49 | +| APT | 02-15 12:00 | 02-15 13:00 | stop_loss | 1 | -1.49 | +| ARB | 02-15 12:00 | 02-15 13:00 | stop_loss | 1 | -1.49 | +| BONK | 02-15 12:00 | 02-15 13:00 | stop_loss | 1 | -1.49 | +| SEI | 02-15 12:00 | 02-15 13:00 | stop_loss | 1 | -1.49 | +| SHIB | 02-15 12:00 | 02-15 13:00 | stop_loss | 1 | -1.49 | +| TIA | 02-15 12:00 | 02-15 13:00 | stop_loss | 1 | -1.49 | +| UNI | 02-15 12:00 | 02-15 13:00 | stop_loss | 1 | -1.49 | +| WIF | 02-15 12:00 | 02-15 13:00 | stop_loss | 1 | -1.49 | +| ARB | 02-15 13:00 | 02-15 14:00 | trailing_stop | 1 | -0.66 | +| PEPE | 02-15 12:00 | 02-15 14:00 | take_profit | 2 | +1.49 | +| UNI | 02-15 13:00 | 02-15 14:00 | trailing_stop | 1 | -0.50 | +| WIF | 02-15 13:00 | 02-15 14:00 | trailing_stop | 1 | -0.25 | +| KAS | 02-15 12:00 | 02-15 16:00 | stop_loss | 4 | -1.49 | +| APT | 02-15 13:00 | 02-15 17:00 | stop_loss | 4 | -1.49 | +| ATOM | 02-15 12:00 | 02-15 17:00 | trailing_stop | 5 | -0.68 | +| AVAX | 02-15 12:00 | 02-15 17:00 | stop_loss | 5 | -1.49 | +| BONK | 02-15 13:00 | 02-15 17:00 | stop_loss | 4 | -1.49 | +| ETC | 02-15 12:00 | 02-15 17:00 | stop_loss | 5 | -1.49 | +| FET | 02-15 12:00 | 02-15 17:00 | stop_loss | 5 | -1.49 | +| FIL | 02-15 12:00 | 02-15 17:00 | stop_loss | 5 | -1.49 | +| INJ | 02-15 12:00 | 02-15 17:00 | stop_loss | 5 | -1.49 | +| KAS | 02-15 16:00 | 02-15 17:00 | stop_loss | 1 | -1.49 | +| NEAR | 02-15 12:00 | 02-15 17:00 | stop_loss | 5 | -1.49 | +| OP | 02-15 12:00 | 02-15 17:00 | stop_loss | 5 | -1.49 | +| RENDER | 02-15 12:00 | 02-15 17:00 | stop_loss | 5 | -1.49 | +| SEI | 02-15 13:00 | 02-15 17:00 | stop_loss | 4 | -1.49 | +| SHIB | 02-15 13:00 | 02-15 17:00 | stop_loss | 4 | -1.49 | +| SUI | 02-15 12:00 | 02-15 17:00 | stop_loss | 5 | -1.49 | +| TIA | 02-15 13:00 | 02-15 17:00 | trailing_stop | 4 | -0.41 | +| KAS | 02-15 17:00 | 02-15 18:00 | stop_loss | 1 | -1.49 | +| UNI | 02-15 17:00 | 02-15 18:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-15 17:00 | 02-15 19:00 | stop_loss | 2 | -1.49 | +| LTC | 02-15 12:00 | 02-15 19:00 | stop_loss | 7 | -1.49 | +| PEPE | 02-15 18:00 | 02-15 19:00 | stop_loss | 1 | -1.49 | +| FET | 02-15 21:00 | 02-15 22:00 | trailing_stop | 1 | -0.32 | +| KAS | 02-15 18:00 | 02-15 22:00 | trailing_stop | 4 | +0.03 | +| APT | 02-15 22:00 | 02-15 23:00 | stop_loss | 1 | -1.49 | +| INJ | 02-15 22:00 | 02-15 23:00 | stop_loss | 1 | -1.49 | +| NEAR | 02-15 18:00 | 02-15 23:00 | trailing_stop | 5 | -0.16 | +| OP | 02-15 22:00 | 02-15 23:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-15 22:00 | 02-15 23:00 | stop_loss | 1 | -1.49 | +| UNI | 02-15 18:00 | 02-15 23:00 | trailing_stop | 5 | -0.16 | +| INJ | 02-15 23:00 | 02-16 01:00 | stop_loss | 2 | -1.49 | +| KAS | 02-15 23:00 | 02-16 01:00 | stop_loss | 2 | -1.49 | +| FIL | 02-16 00:00 | 02-16 02:00 | stop_loss | 2 | -1.49 | +| OP | 02-15 23:00 | 02-16 02:00 | stop_loss | 3 | -1.49 | +| SUI | 02-16 00:00 | 02-16 02:00 | stop_loss | 2 | -1.49 | +| APT | 02-15 23:00 | 02-16 03:00 | stop_loss | 4 | -1.49 | +| BONK | 02-16 00:00 | 02-16 04:00 | trailing_stop | 4 | -0.07 | +| SHIB | 02-15 23:00 | 02-16 04:00 | trailing_stop | 5 | +0.18 | +| UNI | 02-15 23:00 | 02-16 04:00 | take_profit | 5 | +1.49 | +| WIF | 02-16 00:00 | 02-16 04:00 | trailing_stop | 4 | +0.09 | +| ARB | 02-15 23:00 | 02-16 05:00 | stop_loss | 6 | -1.49 | +| ATOM | 02-15 21:00 | 02-16 05:00 | trailing_stop | 8 | -0.42 | +| AVAX | 02-16 00:00 | 02-16 05:00 | stop_loss | 5 | -1.49 | +| ETC | 02-15 18:00 | 02-16 05:00 | take_profit | 11 | +1.49 | +| FET | 02-15 23:00 | 02-16 05:00 | stop_loss | 6 | -1.49 | +| KAS | 02-16 01:00 | 02-16 05:00 | stop_loss | 4 | -1.49 | +| NEAR | 02-16 01:00 | 02-16 05:00 | stop_loss | 4 | -1.49 | +| SEI | 02-15 22:00 | 02-16 05:00 | stop_loss | 7 | -1.49 | +| INJ | 02-16 01:00 | 02-16 11:00 | trailing_stop | 10 | +0.01 | +| LTC | 02-16 05:00 | 02-16 11:00 | trailing_stop | 6 | -0.49 | +| TIA | 02-16 00:00 | 02-16 11:00 | stop_loss | 11 | -1.49 | +| APT | 02-16 15:00 | 02-16 19:00 | take_profit | 4 | +1.49 | +| FET | 02-16 15:00 | 02-16 19:00 | trailing_stop | 4 | -0.60 | +| ARB | 02-16 15:00 | 02-16 20:00 | take_profit | 5 | +1.49 | +| BONK | 02-16 15:00 | 02-16 20:00 | trailing_stop | 5 | -0.00 | +| OP | 02-16 15:00 | 02-16 20:00 | take_profit | 5 | +1.49 | +| TIA | 02-16 15:00 | 02-16 20:00 | take_profit | 5 | +1.49 | +| SHIB | 02-16 15:00 | 02-16 21:00 | take_profit | 6 | +1.49 | +| TRX | 02-15 00:00 | 02-17 10:00 | trailing_stop | 58 | -0.65 | +| ARB | 02-17 10:00 | 02-17 13:00 | trailing_stop | 3 | -0.47 | +| ATOM | 02-17 12:00 | 02-17 13:00 | take_profit | 1 | +1.49 | +| WIF | 02-17 10:00 | 02-17 13:00 | take_profit | 3 | +1.49 | +| NEAR | 02-17 10:00 | 02-17 14:00 | stop_loss | 4 | -1.49 | +| SEI | 02-17 11:00 | 02-17 14:00 | stop_loss | 3 | -1.49 | +| SUI | 02-17 11:00 | 02-17 14:00 | stop_loss | 3 | -1.49 | +| TIA | 02-17 12:00 | 02-17 14:00 | stop_loss | 2 | -1.49 | +| UNI | 02-17 11:00 | 02-17 14:00 | stop_loss | 3 | -1.49 | +| ARB | 02-17 14:00 | 02-17 15:00 | trailing_stop | 1 | -0.37 | +| FET | 02-17 14:00 | 02-17 15:00 | trailing_stop | 1 | -0.59 | +| FIL | 02-17 14:00 | 02-17 15:00 | trailing_stop | 1 | -0.15 | +| KAS | 02-17 14:00 | 02-17 15:00 | trailing_stop | 1 | +0.09 | +| LTC | 02-17 14:00 | 02-17 15:00 | stop_loss | 1 | -1.49 | +| OP | 02-17 14:00 | 02-17 15:00 | trailing_stop | 1 | -0.63 | +| RENDER | 02-17 14:00 | 02-17 15:00 | take_profit | 1 | +1.49 | +| WIF | 02-17 14:00 | 02-17 15:00 | trailing_stop | 1 | -0.63 | +| AVAX | 02-17 14:00 | 02-17 16:00 | take_profit | 2 | +1.49 | +| ETC | 02-17 10:00 | 02-17 16:00 | take_profit | 6 | +1.49 | +| UNI | 02-17 14:00 | 02-17 16:00 | take_profit | 2 | +1.49 | +| APT | 02-17 17:00 | 02-17 18:00 | take_profit | 1 | +1.49 | +| LTC | 02-17 15:00 | 02-17 18:00 | take_profit | 3 | +1.49 | +| NEAR | 02-17 14:00 | 02-17 18:00 | trailing_stop | 4 | -0.12 | +| APT | 02-18 12:00 | 02-18 13:00 | stop_loss | 1 | -1.49 | +| BONK | 02-18 12:00 | 02-18 13:00 | stop_loss | 1 | -1.49 | +| SUI | 02-18 12:00 | 02-18 14:00 | stop_loss | 2 | -1.49 | +| APT | 02-18 13:00 | 02-18 15:00 | take_profit | 2 | +1.49 | +| ARB | 02-18 13:00 | 02-18 15:00 | take_profit | 2 | +1.49 | +| AVAX | 02-18 13:00 | 02-18 15:00 | take_profit | 2 | +1.49 | +| BONK | 02-18 13:00 | 02-18 15:00 | take_profit | 2 | +1.49 | +| ETC | 02-18 13:00 | 02-18 15:00 | take_profit | 2 | +1.49 | +| FET | 02-18 13:00 | 02-18 15:00 | take_profit | 2 | +1.49 | +| FIL | 02-18 13:00 | 02-18 15:00 | take_profit | 2 | +1.49 | +| NEAR | 02-18 13:00 | 02-18 15:00 | take_profit | 2 | +1.49 | +| OP | 02-18 13:00 | 02-18 15:00 | take_profit | 2 | +1.49 | +| PEPE | 02-18 13:00 | 02-18 15:00 | take_profit | 2 | +1.49 | +| SHIB | 02-18 13:00 | 02-18 15:00 | take_profit | 2 | +1.49 | +| TIA | 02-18 13:00 | 02-18 15:00 | take_profit | 2 | +1.49 | +| ARB | 02-18 17:00 | 02-18 18:00 | stop_loss | 1 | -1.49 | +| BONK | 02-18 16:00 | 02-18 18:00 | stop_loss | 2 | -1.49 | +| INJ | 02-18 17:00 | 02-18 18:00 | stop_loss | 1 | -1.49 | +| KAS | 02-18 16:00 | 02-18 18:00 | stop_loss | 2 | -1.49 | +| OP | 02-18 17:00 | 02-18 18:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-18 16:00 | 02-18 18:00 | stop_loss | 2 | -1.49 | +| SEI | 02-18 13:00 | 02-18 18:00 | stop_loss | 5 | -1.49 | +| SHIB | 02-18 17:00 | 02-18 18:00 | stop_loss | 1 | -1.49 | +| TIA | 02-18 16:00 | 02-18 18:00 | stop_loss | 2 | -1.49 | +| APT | 02-18 18:00 | 02-18 19:00 | stop_loss | 1 | -1.49 | +| ARB | 02-18 18:00 | 02-18 19:00 | stop_loss | 1 | -1.49 | +| BONK | 02-18 18:00 | 02-18 19:00 | stop_loss | 1 | -1.49 | +| ETC | 02-18 18:00 | 02-18 19:00 | stop_loss | 1 | -1.49 | +| FET | 02-18 18:00 | 02-18 19:00 | stop_loss | 1 | -1.49 | +| FIL | 02-18 18:00 | 02-18 19:00 | stop_loss | 1 | -1.49 | +| INJ | 02-18 18:00 | 02-18 19:00 | stop_loss | 1 | -1.49 | +| NEAR | 02-18 18:00 | 02-18 19:00 | stop_loss | 1 | -1.49 | +| OP | 02-18 18:00 | 02-18 19:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-18 18:00 | 02-18 19:00 | stop_loss | 1 | -1.49 | +| SUI | 02-18 18:00 | 02-18 19:00 | stop_loss | 1 | -1.49 | +| TIA | 02-18 18:00 | 02-18 19:00 | stop_loss | 1 | -1.49 | +| TRX | 02-17 10:00 | 02-18 19:00 | stop_loss | 33 | -1.49 | +| UNI | 02-18 18:00 | 02-18 19:00 | stop_loss | 1 | -1.49 | +| WIF | 02-18 18:00 | 02-18 19:00 | stop_loss | 1 | -1.49 | +| OP | 02-18 19:00 | 02-18 20:00 | stop_loss | 1 | -1.49 | +| ARB | 02-18 19:00 | 02-18 21:00 | stop_loss | 2 | -1.49 | +| OP | 02-18 20:00 | 02-18 21:00 | stop_loss | 1 | -1.49 | +| BONK | 02-18 19:00 | 02-18 22:00 | stop_loss | 3 | -1.49 | +| FET | 02-18 19:00 | 02-18 22:00 | stop_loss | 3 | -1.49 | +| NEAR | 02-18 19:00 | 02-18 22:00 | stop_loss | 3 | -1.49 | +| OP | 02-18 21:00 | 02-18 22:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-18 19:00 | 02-18 22:00 | stop_loss | 3 | -1.49 | +| RENDER | 02-18 19:00 | 02-18 22:00 | stop_loss | 3 | -1.49 | +| SUI | 02-18 19:00 | 02-18 22:00 | stop_loss | 3 | -1.49 | +| UNI | 02-18 19:00 | 02-18 22:00 | stop_loss | 3 | -1.49 | +| OP | 02-18 22:00 | 02-18 23:00 | stop_loss | 1 | -1.49 | +| TIA | 02-18 19:00 | 02-19 00:00 | stop_loss | 5 | -1.49 | +| APT | 02-18 19:00 | 02-19 01:00 | trailing_stop | 6 | -0.56 | +| INJ | 02-18 19:00 | 02-19 01:00 | take_profit | 6 | +1.49 | +| SEI | 02-18 18:00 | 02-19 03:00 | confirmed_bearish_exit | 9 | -0.64 | +| KAS | 02-18 18:00 | 02-19 05:00 | stop_loss | 11 | -1.49 | +| SHIB | 02-18 18:00 | 02-19 05:00 | stop_loss | 11 | -1.49 | +| UNI | 02-19 02:00 | 02-19 05:00 | stop_loss | 3 | -1.49 | +| WIF | 02-18 19:00 | 02-19 05:00 | trailing_stop | 10 | -0.58 | +| ARB | 02-18 21:00 | 02-19 07:00 | stop_loss | 10 | -1.49 | +| ATOM | 02-19 05:00 | 02-19 08:00 | stop_loss | 3 | -1.49 | +| BONK | 02-19 02:00 | 02-19 08:00 | stop_loss | 6 | -1.49 | +| ETC | 02-18 19:00 | 02-19 08:00 | stop_loss | 13 | -1.49 | +| FET | 02-18 22:00 | 02-19 08:00 | stop_loss | 10 | -1.49 | +| FIL | 02-18 19:00 | 02-19 08:00 | trailing_stop | 13 | -0.46 | +| LTC | 02-18 18:00 | 02-19 08:00 | stop_loss | 14 | -1.49 | +| NEAR | 02-18 22:00 | 02-19 08:00 | stop_loss | 10 | -1.49 | +| SUI | 02-19 04:00 | 02-19 08:00 | stop_loss | 4 | -1.49 | +| TIA | 02-19 04:00 | 02-19 08:00 | stop_loss | 4 | -1.49 | +| WIF | 02-19 05:00 | 02-19 08:00 | stop_loss | 3 | -1.49 | +| AVAX | 02-18 20:00 | 02-19 12:00 | stop_loss | 16 | -1.49 | +| UNI | 02-19 05:00 | 02-19 12:00 | stop_loss | 7 | -1.49 | +| ARB | 02-19 08:00 | 02-19 13:00 | stop_loss | 5 | -1.49 | +| KAS | 02-19 11:00 | 02-19 13:00 | stop_loss | 2 | -1.49 | +| LTC | 02-19 12:00 | 02-19 13:00 | stop_loss | 1 | -1.49 | +| SEI | 02-19 11:00 | 02-19 13:00 | stop_loss | 2 | -1.49 | +| SUI | 02-19 08:00 | 02-19 13:00 | stop_loss | 5 | -1.49 | +| ARB | 02-19 13:00 | 02-19 14:00 | stop_loss | 1 | -1.49 | +| KAS | 02-19 13:00 | 02-19 14:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-19 13:00 | 02-19 14:00 | take_profit | 1 | +1.49 | +| UNI | 02-19 13:00 | 02-19 14:00 | trailing_stop | 1 | -0.55 | +| ARB | 02-19 14:00 | 02-19 15:00 | stop_loss | 1 | -1.49 | +| SEI | 02-19 13:00 | 02-19 15:00 | stop_loss | 2 | -1.49 | +| APT | 02-19 13:00 | 02-19 16:00 | stop_loss | 3 | -1.49 | +| ARB | 02-19 15:00 | 02-19 16:00 | take_profit | 1 | +1.49 | +| AVAX | 02-19 13:00 | 02-19 16:00 | take_profit | 3 | +1.49 | +| FET | 02-19 13:00 | 02-19 16:00 | stop_loss | 3 | -1.49 | +| FIL | 02-19 13:00 | 02-19 16:00 | stop_loss | 3 | -1.49 | +| INJ | 02-19 15:00 | 02-19 16:00 | stop_loss | 1 | -1.49 | +| KAS | 02-19 14:00 | 02-19 16:00 | stop_loss | 2 | -1.49 | +| NEAR | 02-19 13:00 | 02-19 16:00 | stop_loss | 3 | -1.49 | +| SHIB | 02-19 12:00 | 02-19 16:00 | stop_loss | 4 | -1.49 | +| TIA | 02-19 13:00 | 02-19 16:00 | stop_loss | 3 | -1.49 | +| WIF | 02-19 13:00 | 02-19 16:00 | stop_loss | 3 | -1.49 | +| SEI | 02-19 15:00 | 02-19 17:00 | stop_loss | 2 | -1.49 | +| KAS | 02-19 16:00 | 02-19 18:00 | take_profit | 2 | +1.49 | +| LTC | 02-19 13:00 | 02-19 18:00 | trailing_stop | 5 | -0.25 | +| NEAR | 02-19 16:00 | 02-19 18:00 | trailing_stop | 2 | -0.61 | +| SEI | 02-19 17:00 | 02-19 18:00 | trailing_stop | 1 | -0.42 | +| TRX | 02-18 19:00 | 02-19 20:00 | take_profit | 25 | +1.49 | +| SUI | 02-19 13:00 | 02-19 23:00 | take_profit | 10 | +1.49 | +| BONK | 02-19 15:00 | 02-20 00:00 | take_profit | 9 | +1.49 | +| RENDER | 02-19 19:00 | 02-20 00:00 | take_profit | 5 | +1.49 | +| TIA | 02-19 16:00 | 02-20 00:00 | take_profit | 8 | +1.49 | +| WIF | 02-19 16:00 | 02-20 00:00 | take_profit | 8 | +1.49 | +| FET | 02-19 20:00 | 02-20 02:00 | take_profit | 6 | +1.49 | +| OP | 02-20 02:00 | 02-20 03:00 | stop_loss | 1 | -1.49 | +| APT | 02-19 21:00 | 02-20 04:00 | trailing_stop | 7 | -0.23 | +| ATOM | 02-19 19:00 | 02-20 04:00 | trailing_stop | 9 | -0.65 | +| FIL | 02-19 20:00 | 02-20 04:00 | trailing_stop | 8 | -0.69 | +| OP | 02-20 03:00 | 02-20 04:00 | stop_loss | 1 | -1.49 | +| UNI | 02-19 21:00 | 02-20 04:00 | trailing_stop | 7 | -0.27 | +| ETC | 02-19 13:00 | 02-20 05:00 | trailing_stop | 16 | -0.58 | +| LTC | 02-19 21:00 | 02-20 05:00 | take_profit | 8 | +1.49 | +| NEAR | 02-19 21:00 | 02-20 05:00 | take_profit | 8 | +1.49 | +| OP | 02-20 04:00 | 02-20 05:00 | take_profit | 1 | +1.49 | +| KAS | 02-19 20:00 | 02-20 10:00 | stop_loss | 14 | -1.49 | +| ARB | 02-20 10:00 | 02-20 11:00 | stop_loss | 1 | -1.49 | +| INJ | 02-20 08:00 | 02-20 11:00 | take_profit | 3 | +1.49 | +| ARB | 02-20 11:00 | 02-20 12:00 | stop_loss | 1 | -1.49 | +| ARB | 02-20 12:00 | 02-20 13:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-20 12:00 | 02-20 13:00 | stop_loss | 1 | -1.49 | +| APT | 02-20 13:00 | 02-20 14:00 | take_profit | 1 | +1.49 | +| ARB | 02-20 13:00 | 02-20 14:00 | take_profit | 1 | +1.49 | +| PEPE | 02-20 13:00 | 02-20 14:00 | take_profit | 1 | +1.49 | +| SEI | 02-20 13:00 | 02-20 14:00 | trailing_stop | 1 | -0.70 | +| UNI | 02-20 13:00 | 02-20 14:00 | trailing_stop | 1 | -0.42 | +| WIF | 02-20 13:00 | 02-20 14:00 | take_profit | 1 | +1.49 | +| FET | 02-21 06:00 | 02-21 08:00 | trailing_stop | 2 | -0.39 | +| KAS | 02-21 06:00 | 02-21 09:00 | take_profit | 3 | +1.49 | +| SUI | 02-21 06:00 | 02-21 14:00 | take_profit | 8 | +1.49 | +| PEPE | 02-21 15:00 | 02-21 20:00 | stop_loss | 5 | -1.49 | +| RENDER | 02-21 06:00 | 02-21 20:00 | stop_loss | 14 | -1.49 | +| BONK | 02-21 16:00 | 02-21 23:00 | stop_loss | 7 | -1.49 | +| SEI | 02-21 05:00 | 02-21 23:00 | stop_loss | 18 | -1.49 | +| ARB | 02-21 22:00 | 02-22 00:00 | stop_loss | 2 | -1.49 | +| ETC | 02-21 22:00 | 02-22 00:00 | stop_loss | 2 | -1.49 | +| FET | 02-21 23:00 | 02-22 00:00 | stop_loss | 1 | -1.49 | +| FIL | 02-21 23:00 | 02-22 00:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-21 22:00 | 02-22 00:00 | stop_loss | 2 | -1.49 | +| SHIB | 02-21 21:00 | 02-22 00:00 | stop_loss | 3 | -1.49 | +| TIA | 02-21 22:00 | 02-22 00:00 | stop_loss | 2 | -1.49 | +| WIF | 02-21 20:00 | 02-22 00:00 | stop_loss | 4 | -1.49 | +| PEPE | 02-21 20:00 | 02-22 01:00 | stop_loss | 5 | -1.49 | +| APT | 02-22 00:00 | 02-22 02:00 | stop_loss | 2 | -1.49 | +| ETC | 02-22 00:00 | 02-22 02:00 | stop_loss | 2 | -1.49 | +| FIL | 02-22 00:00 | 02-22 02:00 | stop_loss | 2 | -1.49 | +| OP | 02-22 00:00 | 02-22 02:00 | stop_loss | 2 | -1.49 | +| TIA | 02-22 00:00 | 02-22 02:00 | stop_loss | 2 | -1.49 | +| WIF | 02-22 00:00 | 02-22 02:00 | stop_loss | 2 | -1.49 | +| BONK | 02-22 00:00 | 02-22 03:00 | stop_loss | 3 | -1.49 | +| FET | 02-22 00:00 | 02-22 03:00 | stop_loss | 3 | -1.49 | +| SHIB | 02-22 00:00 | 02-22 03:00 | stop_loss | 3 | -1.49 | +| SUI | 02-22 00:00 | 02-22 03:00 | stop_loss | 3 | -1.49 | +| AVAX | 02-22 00:00 | 02-22 06:00 | stop_loss | 6 | -1.49 | +| INJ | 02-22 03:00 | 02-22 06:00 | stop_loss | 3 | -1.49 | +| RENDER | 02-22 00:00 | 02-22 06:00 | confirmed_bearish_exit | 6 | +0.20 | +| UNI | 02-22 00:00 | 02-22 06:00 | stop_loss | 6 | -1.49 | +| APT | 02-22 02:00 | 02-22 08:00 | stop_loss | 6 | -1.49 | +| TIA | 02-22 02:00 | 02-22 08:00 | stop_loss | 6 | -1.49 | +| WIF | 02-22 02:00 | 02-22 08:00 | stop_loss | 6 | -1.49 | +| KAS | 02-22 00:00 | 02-22 09:00 | stop_loss | 9 | -1.49 | +| ARB | 02-22 11:00 | 02-22 12:00 | stop_loss | 1 | -1.49 | +| ATOM | 02-22 08:00 | 02-22 12:00 | stop_loss | 4 | -1.49 | +| ETC | 02-22 11:00 | 02-22 12:00 | stop_loss | 1 | -1.49 | +| FET | 02-22 11:00 | 02-22 12:00 | stop_loss | 1 | -1.49 | +| LTC | 02-22 00:00 | 02-22 12:00 | stop_loss | 12 | -1.49 | +| PEPE | 02-22 11:00 | 02-22 12:00 | stop_loss | 1 | -1.49 | +| SEI | 02-22 00:00 | 02-22 13:00 | stop_loss | 13 | -1.49 | +| SHIB | 02-22 05:00 | 02-22 13:00 | stop_loss | 8 | -1.49 | +| LTC | 02-22 12:00 | 02-22 14:00 | stop_loss | 2 | -1.49 | +| PEPE | 02-22 12:00 | 02-22 14:00 | stop_loss | 2 | -1.49 | +| SEI | 02-22 13:00 | 02-22 14:00 | stop_loss | 1 | -1.49 | +| UNI | 02-22 12:00 | 02-22 14:00 | stop_loss | 2 | -1.49 | +| APT | 02-22 13:00 | 02-22 15:00 | trailing_stop | 2 | -0.60 | +| FET | 02-22 13:00 | 02-22 15:00 | trailing_stop | 2 | -0.64 | +| OP | 02-22 12:00 | 02-22 15:00 | trailing_stop | 3 | -0.24 | +| TRX | 02-21 04:00 | 02-22 17:00 | take_profit | 37 | +1.49 | +| UNI | 02-22 14:00 | 02-22 20:00 | stop_loss | 6 | -1.49 | +| ETC | 02-22 19:00 | 02-22 21:00 | stop_loss | 2 | -1.49 | +| ATOM | 02-22 14:00 | 02-23 00:00 | stop_loss | 10 | -1.49 | +| ETC | 02-22 21:00 | 02-23 00:00 | stop_loss | 3 | -1.49 | +| FET | 02-22 23:00 | 02-23 00:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-22 20:00 | 02-23 00:00 | trailing_stop | 4 | -0.64 | +| UNI | 02-22 23:00 | 02-23 00:00 | stop_loss | 1 | -1.49 | +| APT | 02-22 21:00 | 02-23 01:00 | stop_loss | 4 | -1.49 | +| ARB | 02-23 00:00 | 02-23 01:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-22 17:00 | 02-23 01:00 | stop_loss | 8 | -1.49 | +| ETC | 02-23 00:00 | 02-23 01:00 | stop_loss | 1 | -1.49 | +| FET | 02-23 00:00 | 02-23 01:00 | stop_loss | 1 | -1.49 | +| FIL | 02-23 00:00 | 02-23 01:00 | stop_loss | 1 | -1.49 | +| KAS | 02-22 12:00 | 02-23 01:00 | stop_loss | 13 | -1.49 | +| LTC | 02-22 14:00 | 02-23 01:00 | stop_loss | 11 | -1.49 | +| PEPE | 02-23 00:00 | 02-23 01:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-23 00:00 | 02-23 01:00 | stop_loss | 1 | -1.49 | +| SEI | 02-22 14:00 | 02-23 01:00 | stop_loss | 11 | -1.49 | +| SHIB | 02-23 00:00 | 02-23 01:00 | stop_loss | 1 | -1.49 | +| SUI | 02-23 00:00 | 02-23 01:00 | stop_loss | 1 | -1.49 | +| UNI | 02-23 00:00 | 02-23 01:00 | stop_loss | 1 | -1.49 | +| WIF | 02-22 23:00 | 02-23 01:00 | stop_loss | 2 | -1.49 | +| APT | 02-23 01:00 | 02-23 02:00 | trailing_stop | 1 | -0.36 | +| ARB | 02-23 01:00 | 02-23 02:00 | trailing_stop | 1 | -0.37 | +| BONK | 02-23 01:00 | 02-23 02:00 | trailing_stop | 1 | -0.23 | +| FET | 02-23 01:00 | 02-23 02:00 | trailing_stop | 1 | -0.40 | +| KAS | 02-23 01:00 | 02-23 02:00 | trailing_stop | 1 | -0.61 | +| SHIB | 02-23 01:00 | 02-23 02:00 | trailing_stop | 1 | -0.55 | +| SUI | 02-23 01:00 | 02-23 02:00 | trailing_stop | 1 | -0.65 | +| INJ | 02-23 01:00 | 02-23 03:00 | take_profit | 2 | +1.49 | +| INJ | 02-23 03:00 | 02-23 04:00 | stop_loss | 1 | -1.49 | +| OP | 02-23 01:00 | 02-23 04:00 | trailing_stop | 3 | -0.67 | +| TIA | 02-23 01:00 | 02-23 04:00 | stop_loss | 3 | -1.49 | +| ARB | 02-23 02:00 | 02-23 05:00 | trailing_stop | 3 | -0.39 | +| NEAR | 02-23 01:00 | 02-23 05:00 | take_profit | 4 | +1.49 | +| ATOM | 02-23 01:00 | 02-23 06:00 | take_profit | 5 | +1.49 | +| AVAX | 02-23 01:00 | 02-23 06:00 | take_profit | 5 | +1.49 | +| BONK | 02-23 02:00 | 02-23 06:00 | trailing_stop | 4 | -0.08 | +| ETC | 02-23 01:00 | 02-23 06:00 | take_profit | 5 | +1.49 | +| FET | 02-23 02:00 | 02-23 06:00 | take_profit | 4 | +1.49 | +| FIL | 02-23 01:00 | 02-23 06:00 | take_profit | 5 | +1.49 | +| LTC | 02-23 01:00 | 02-23 06:00 | take_profit | 5 | +1.49 | +| PEPE | 02-23 01:00 | 02-23 06:00 | take_profit | 5 | +1.49 | +| RENDER | 02-23 01:00 | 02-23 06:00 | take_profit | 5 | +1.49 | +| SEI | 02-23 01:00 | 02-23 06:00 | take_profit | 5 | +1.49 | +| SHIB | 02-23 02:00 | 02-23 06:00 | trailing_stop | 4 | -0.30 | +| SUI | 02-23 02:00 | 02-23 06:00 | take_profit | 4 | +1.49 | +| TIA | 02-23 04:00 | 02-23 06:00 | take_profit | 2 | +1.49 | +| UNI | 02-23 01:00 | 02-23 06:00 | take_profit | 5 | +1.49 | +| WIF | 02-23 01:00 | 02-23 06:00 | take_profit | 5 | +1.49 | +| ETC | 02-23 08:00 | 02-23 09:00 | trailing_stop | 1 | -0.38 | +| INJ | 02-23 04:00 | 02-23 09:00 | trailing_stop | 5 | -0.24 | +| TIA | 02-23 08:00 | 02-23 09:00 | take_profit | 1 | +1.49 | +| TRX | 02-23 01:00 | 02-23 15:00 | stop_loss | 14 | -1.49 | +| APT | 02-23 20:00 | 02-24 01:00 | stop_loss | 5 | -1.49 | +| ETC | 02-24 00:00 | 02-24 01:00 | stop_loss | 1 | -1.49 | +| FET | 02-24 00:00 | 02-24 01:00 | stop_loss | 1 | -1.49 | +| FIL | 02-23 23:00 | 02-24 01:00 | stop_loss | 2 | -1.49 | +| RENDER | 02-23 23:00 | 02-24 01:00 | stop_loss | 2 | -1.49 | +| ETC | 02-24 01:00 | 02-24 03:00 | stop_loss | 2 | -1.49 | +| FIL | 02-24 02:00 | 02-24 03:00 | stop_loss | 1 | -1.49 | +| INJ | 02-24 02:00 | 02-24 03:00 | stop_loss | 1 | -1.49 | +| KAS | 02-24 02:00 | 02-24 03:00 | stop_loss | 1 | -1.49 | +| LTC | 02-24 01:00 | 02-24 03:00 | stop_loss | 2 | -1.49 | +| RENDER | 02-24 02:00 | 02-24 03:00 | stop_loss | 1 | -1.49 | +| SEI | 02-24 02:00 | 02-24 03:00 | stop_loss | 1 | -1.49 | +| SUI | 02-24 01:00 | 02-24 03:00 | stop_loss | 2 | -1.49 | +| TIA | 02-24 02:00 | 02-24 03:00 | stop_loss | 1 | -1.49 | +| APT | 02-24 01:00 | 02-24 04:00 | stop_loss | 3 | -1.49 | +| FET | 02-24 01:00 | 02-24 04:00 | stop_loss | 3 | -1.49 | +| NEAR | 02-24 01:00 | 02-24 04:00 | stop_loss | 3 | -1.49 | +| OP | 02-24 02:00 | 02-24 04:00 | stop_loss | 2 | -1.49 | +| ARB | 02-24 01:00 | 02-24 05:00 | stop_loss | 4 | -1.49 | +| INJ | 02-24 03:00 | 02-24 05:00 | stop_loss | 2 | -1.49 | +| APT | 02-24 04:00 | 02-24 06:00 | stop_loss | 2 | -1.49 | +| LTC | 02-24 05:00 | 02-24 11:00 | trailing_stop | 6 | -0.23 | +| ETC | 02-24 03:00 | 02-24 13:00 | stop_loss | 10 | -1.49 | +| FIL | 02-24 05:00 | 02-24 13:00 | stop_loss | 8 | -1.49 | +| OP | 02-24 12:00 | 02-24 13:00 | stop_loss | 1 | -1.49 | +| SUI | 02-24 03:00 | 02-24 13:00 | stop_loss | 10 | -1.49 | +| WIF | 02-24 12:00 | 02-24 13:00 | stop_loss | 1 | -1.49 | +| BONK | 02-24 11:00 | 02-24 14:00 | trailing_stop | 3 | -0.53 | +| NEAR | 02-24 13:00 | 02-24 14:00 | stop_loss | 1 | -1.49 | +| OP | 02-24 13:00 | 02-24 14:00 | stop_loss | 1 | -1.49 | +| WIF | 02-24 13:00 | 02-24 14:00 | take_profit | 1 | +1.49 | +| INJ | 02-24 16:00 | 02-24 17:00 | stop_loss | 1 | -1.49 | +| ATOM | 02-24 20:00 | 02-25 00:00 | trailing_stop | 4 | +0.08 | +| FIL | 02-24 14:00 | 02-25 01:00 | take_profit | 11 | +1.49 | +| KAS | 02-24 23:00 | 02-25 01:00 | take_profit | 2 | +1.49 | +| SEI | 02-24 14:00 | 02-25 01:00 | take_profit | 11 | +1.49 | +| TRX | 02-23 17:00 | 02-25 04:00 | confirmed_bearish_exit | 35 | +1.30 | +| ATOM | 02-25 20:00 | 02-25 21:00 | stop_loss | 1 | -1.49 | +| ATOM | 02-25 21:00 | 02-25 22:00 | stop_loss | 1 | -1.49 | +| ATOM | 02-25 22:00 | 02-25 23:00 | stop_loss | 1 | -1.49 | +| ATOM | 02-25 23:00 | 02-26 01:00 | take_profit | 2 | +1.49 | +| LTC | 02-26 05:00 | 02-26 08:00 | stop_loss | 3 | -1.49 | +| PEPE | 02-26 06:00 | 02-26 08:00 | stop_loss | 2 | -1.49 | +| FET | 02-26 08:00 | 02-26 09:00 | trailing_stop | 1 | -0.56 | +| FIL | 02-26 05:00 | 02-26 09:00 | take_profit | 4 | +1.49 | +| RENDER | 02-26 06:00 | 02-26 09:00 | take_profit | 3 | +1.49 | +| SEI | 02-26 07:00 | 02-26 09:00 | trailing_stop | 2 | -0.44 | +| SUI | 02-26 08:00 | 02-26 09:00 | trailing_stop | 1 | -0.38 | +| WIF | 02-26 08:00 | 02-26 09:00 | take_profit | 1 | +1.49 | +| APT | 02-26 09:00 | 02-26 10:00 | stop_loss | 1 | -1.49 | +| BONK | 02-26 08:00 | 02-26 10:00 | stop_loss | 2 | -1.49 | +| FET | 02-26 09:00 | 02-26 10:00 | stop_loss | 1 | -1.49 | +| FIL | 02-26 09:00 | 02-26 10:00 | stop_loss | 1 | -1.49 | +| SHIB | 02-26 06:00 | 02-26 10:00 | stop_loss | 4 | -1.49 | +| SUI | 02-26 09:00 | 02-26 10:00 | stop_loss | 1 | -1.49 | +| TIA | 02-26 06:00 | 02-26 10:00 | stop_loss | 4 | -1.49 | +| ARB | 02-26 10:00 | 02-26 11:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-26 06:00 | 02-26 11:00 | stop_loss | 5 | -1.49 | +| INJ | 02-26 05:00 | 02-26 11:00 | stop_loss | 6 | -1.49 | +| NEAR | 02-26 09:00 | 02-26 11:00 | stop_loss | 2 | -1.49 | +| APT | 02-26 10:00 | 02-26 12:00 | trailing_stop | 2 | -0.06 | +| NEAR | 02-26 11:00 | 02-26 12:00 | take_profit | 1 | +1.49 | +| SUI | 02-26 10:00 | 02-26 12:00 | stop_loss | 2 | -1.49 | +| WIF | 02-26 10:00 | 02-26 12:00 | trailing_stop | 2 | -0.57 | +| BONK | 02-26 10:00 | 02-26 14:00 | stop_loss | 4 | -1.49 | +| ETC | 02-26 06:00 | 02-26 14:00 | stop_loss | 8 | -1.49 | +| FET | 02-26 10:00 | 02-26 14:00 | stop_loss | 4 | -1.49 | +| AVAX | 02-26 14:00 | 02-26 15:00 | stop_loss | 1 | -1.49 | +| LTC | 02-26 08:00 | 02-26 15:00 | stop_loss | 7 | -1.49 | +| NEAR | 02-26 14:00 | 02-26 15:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-26 11:00 | 02-26 15:00 | stop_loss | 4 | -1.49 | +| SEI | 02-26 10:00 | 02-26 15:00 | stop_loss | 5 | -1.49 | +| UNI | 02-26 14:00 | 02-26 15:00 | stop_loss | 1 | -1.49 | +| ATOM | 02-26 15:00 | 02-26 16:00 | stop_loss | 1 | -1.49 | +| UNI | 02-26 15:00 | 02-26 16:00 | stop_loss | 1 | -1.49 | +| OP | 02-26 16:00 | 02-26 17:00 | stop_loss | 1 | -1.49 | +| ARB | 02-26 16:00 | 02-26 18:00 | take_profit | 2 | +1.49 | +| AVAX | 02-26 16:00 | 02-26 18:00 | trailing_stop | 2 | -0.59 | +| BONK | 02-26 16:00 | 02-26 18:00 | trailing_stop | 2 | -0.15 | +| ETC | 02-26 16:00 | 02-26 18:00 | trailing_stop | 2 | -0.51 | +| FET | 02-26 16:00 | 02-26 18:00 | trailing_stop | 2 | +0.05 | +| INJ | 02-26 16:00 | 02-26 18:00 | trailing_stop | 2 | -0.14 | +| LTC | 02-26 16:00 | 02-26 18:00 | trailing_stop | 2 | -0.41 | +| NEAR | 02-26 16:00 | 02-26 18:00 | take_profit | 2 | +1.49 | +| OP | 02-26 17:00 | 02-26 18:00 | trailing_stop | 1 | -0.60 | +| SEI | 02-26 16:00 | 02-26 18:00 | trailing_stop | 2 | -0.56 | +| SUI | 02-26 16:00 | 02-26 18:00 | trailing_stop | 2 | -0.28 | +| TIA | 02-26 16:00 | 02-26 18:00 | trailing_stop | 2 | -0.23 | +| WIF | 02-26 16:00 | 02-26 18:00 | trailing_stop | 2 | -0.01 | +| PEPE | 02-26 16:00 | 02-26 19:00 | take_profit | 3 | +1.49 | +| RENDER | 02-26 16:00 | 02-26 19:00 | take_profit | 3 | +1.49 | +| UNI | 02-26 16:00 | 02-26 19:00 | take_profit | 3 | +1.49 | +| ATOM | 02-26 16:00 | 02-26 21:00 | take_profit | 5 | +1.49 | +| BONK | 02-26 23:00 | 02-27 00:00 | stop_loss | 1 | -1.49 | +| UNI | 02-26 23:00 | 02-27 01:00 | stop_loss | 2 | -1.49 | +| ATOM | 02-26 23:00 | 02-27 02:00 | take_profit | 3 | +1.49 | +| RENDER | 02-26 23:00 | 02-27 03:00 | take_profit | 4 | +1.49 | +| UNI | 02-27 01:00 | 02-27 03:00 | trailing_stop | 2 | -0.56 | +| SHIB | 02-26 16:00 | 02-27 04:00 | take_profit | 12 | +1.49 | +| PEPE | 02-27 01:00 | 02-27 06:00 | confirmed_bearish_exit | 5 | +0.79 | +| KAS | 02-27 04:00 | 02-27 10:00 | stop_loss | 6 | -1.49 | +| AVAX | 02-27 11:00 | 02-27 13:00 | stop_loss | 2 | -1.49 | +| PEPE | 02-27 11:00 | 02-27 13:00 | stop_loss | 2 | -1.49 | +| PEPE | 02-27 13:00 | 02-27 14:00 | stop_loss | 1 | -1.49 | +| SUI | 02-27 13:00 | 02-27 14:00 | stop_loss | 1 | -1.49 | +| KAS | 02-27 12:00 | 02-27 15:00 | stop_loss | 3 | -1.49 | +| TIA | 02-27 13:00 | 02-27 15:00 | stop_loss | 2 | -1.49 | +| AVAX | 02-27 13:00 | 02-27 16:00 | stop_loss | 3 | -1.49 | +| INJ | 02-27 15:00 | 02-27 16:00 | stop_loss | 1 | -1.49 | +| KAS | 02-27 15:00 | 02-27 16:00 | stop_loss | 1 | -1.49 | +| TIA | 02-27 15:00 | 02-27 16:00 | stop_loss | 1 | -1.49 | +| BONK | 02-27 16:00 | 02-27 17:00 | trailing_stop | 1 | -0.53 | +| INJ | 02-27 16:00 | 02-27 17:00 | stop_loss | 1 | -1.49 | +| LTC | 02-27 14:00 | 02-27 17:00 | stop_loss | 3 | -1.49 | +| NEAR | 02-27 14:00 | 02-27 17:00 | stop_loss | 3 | -1.49 | +| PEPE | 02-27 14:00 | 02-27 17:00 | stop_loss | 3 | -1.49 | +| SHIB | 02-27 14:00 | 02-27 17:00 | stop_loss | 3 | -1.49 | +| SUI | 02-27 14:00 | 02-27 17:00 | stop_loss | 3 | -1.49 | +| TIA | 02-27 16:00 | 02-27 17:00 | trailing_stop | 1 | -0.34 | +| TRX | 02-26 18:00 | 02-27 17:00 | stop_loss | 23 | -1.49 | +| UNI | 02-27 12:00 | 02-27 17:00 | stop_loss | 5 | -1.49 | +| APT | 02-27 17:00 | 02-27 19:00 | stop_loss | 2 | -1.49 | +| ATOM | 02-27 17:00 | 02-27 19:00 | stop_loss | 2 | -1.49 | +| FET | 02-27 16:00 | 02-27 19:00 | stop_loss | 3 | -1.49 | +| INJ | 02-27 17:00 | 02-27 19:00 | stop_loss | 2 | -1.49 | +| KAS | 02-27 16:00 | 02-27 19:00 | stop_loss | 3 | -1.49 | +| NEAR | 02-27 17:00 | 02-27 19:00 | stop_loss | 2 | -1.49 | +| RENDER | 02-27 17:00 | 02-27 19:00 | stop_loss | 2 | -1.49 | +| ATOM | 02-27 19:00 | 02-27 22:00 | stop_loss | 3 | -1.49 | +| ETC | 02-27 16:00 | 02-27 22:00 | stop_loss | 6 | -1.49 | +| FIL | 02-27 16:00 | 02-27 22:00 | stop_loss | 6 | -1.49 | +| TIA | 02-27 19:00 | 02-27 22:00 | stop_loss | 3 | -1.49 | +| KAS | 02-27 23:00 | 02-28 01:00 | stop_loss | 2 | -1.49 | +| PEPE | 02-27 23:00 | 02-28 01:00 | stop_loss | 2 | -1.49 | +| INJ | 02-28 01:00 | 02-28 03:00 | stop_loss | 2 | -1.49 | +| ETC | 02-28 00:00 | 02-28 04:00 | stop_loss | 4 | -1.49 | +| TIA | 02-28 01:00 | 02-28 04:00 | stop_loss | 3 | -1.49 | +| INJ | 02-28 03:00 | 02-28 05:00 | stop_loss | 2 | -1.49 | +| PEPE | 02-28 01:00 | 02-28 05:00 | stop_loss | 4 | -1.49 | +| SHIB | 02-28 00:00 | 02-28 05:00 | stop_loss | 5 | -1.49 | +| ARB | 02-28 01:00 | 02-28 06:00 | stop_loss | 5 | -1.49 | +| ATOM | 02-28 04:00 | 02-28 06:00 | stop_loss | 2 | -1.49 | +| APT | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| ARB | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| ATOM | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| AVAX | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| BONK | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| ETC | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| FET | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| FIL | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| INJ | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| NEAR | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| OP | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| PEPE | 02-28 06:00 | 02-28 07:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| SUI | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| TIA | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| UNI | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| WIF | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| APT | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| ARB | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| BONK | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| ETC | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| FET | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| FIL | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| INJ | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| OP | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| SEI | 02-28 06:00 | 02-28 08:00 | stop_loss | 2 | -1.49 | +| SHIB | 02-28 06:00 | 02-28 08:00 | stop_loss | 2 | -1.49 | +| SUI | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| TIA | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| TRX | 02-27 17:00 | 02-28 08:00 | stop_loss | 15 | -1.49 | +| WIF | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| APT | 02-28 08:00 | 02-28 09:00 | stop_loss | 1 | -1.49 | +| LTC | 02-28 06:00 | 02-28 09:00 | stop_loss | 3 | -1.49 | +| ARB | 02-28 08:00 | 02-28 10:00 | stop_loss | 2 | -1.49 | +| FET | 02-28 08:00 | 02-28 10:00 | stop_loss | 2 | -1.49 | +| INJ | 02-28 08:00 | 02-28 10:00 | take_profit | 2 | +1.49 | +| OP | 02-28 08:00 | 02-28 10:00 | stop_loss | 2 | -1.49 | +| RENDER | 02-28 08:00 | 02-28 10:00 | stop_loss | 2 | -1.49 | +| SEI | 02-28 08:00 | 02-28 10:00 | stop_loss | 2 | -1.49 | +| SUI | 02-28 08:00 | 02-28 10:00 | stop_loss | 2 | -1.49 | +| UNI | 02-28 08:00 | 02-28 10:00 | stop_loss | 2 | -1.49 | +| WIF | 02-28 08:00 | 02-28 10:00 | stop_loss | 2 | -1.49 | +| APT | 02-28 09:00 | 02-28 11:00 | stop_loss | 2 | -1.49 | +| FIL | 02-28 08:00 | 02-28 11:00 | stop_loss | 3 | -1.49 | +| APT | 02-28 11:00 | 02-28 12:00 | trailing_stop | 1 | -0.21 | +| SEI | 02-28 10:00 | 02-28 12:00 | stop_loss | 2 | -1.49 | +| ARB | 02-28 10:00 | 02-28 13:00 | take_profit | 3 | +1.49 | +| ATOM | 02-28 08:00 | 02-28 13:00 | trailing_stop | 5 | -0.32 | +| AVAX | 02-28 08:00 | 02-28 13:00 | take_profit | 5 | +1.49 | +| BONK | 02-28 08:00 | 02-28 13:00 | take_profit | 5 | +1.49 | +| ETC | 02-28 08:00 | 02-28 13:00 | take_profit | 5 | +1.49 | +| KAS | 02-28 06:00 | 02-28 13:00 | take_profit | 7 | +1.49 | +| LTC | 02-28 09:00 | 02-28 13:00 | take_profit | 4 | +1.49 | +| PEPE | 02-28 08:00 | 02-28 13:00 | take_profit | 5 | +1.49 | +| SHIB | 02-28 08:00 | 02-28 13:00 | take_profit | 5 | +1.49 | +| TIA | 02-28 08:00 | 02-28 13:00 | stop_loss | 5 | -1.49 | +| UNI | 02-28 10:00 | 02-28 13:00 | take_profit | 3 | +1.49 | +| OP | 02-28 14:00 | 02-28 15:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-28 14:00 | 02-28 15:00 | trailing_stop | 1 | -0.48 | +| ARB | 02-28 15:00 | 02-28 16:00 | stop_loss | 1 | -1.49 | +| BONK | 02-28 14:00 | 02-28 16:00 | stop_loss | 2 | -1.49 | +| OP | 02-28 15:00 | 02-28 16:00 | stop_loss | 1 | -1.49 | +| WIF | 02-28 15:00 | 02-28 16:00 | stop_loss | 1 | -1.49 | +| APT | 02-28 14:00 | 02-28 17:00 | take_profit | 3 | +1.49 | +| BONK | 02-28 16:00 | 02-28 17:00 | stop_loss | 1 | -1.49 | +| ETC | 02-28 14:00 | 02-28 17:00 | stop_loss | 3 | -1.49 | +| FIL | 02-28 14:00 | 02-28 17:00 | trailing_stop | 3 | -0.65 | +| INJ | 02-28 14:00 | 02-28 17:00 | stop_loss | 3 | -1.49 | +| SUI | 02-28 14:00 | 02-28 17:00 | trailing_stop | 3 | -0.38 | +| ARB | 02-28 16:00 | 02-28 18:00 | take_profit | 2 | +1.49 | +| ATOM | 02-28 16:00 | 02-28 18:00 | take_profit | 2 | +1.49 | +| AVAX | 02-28 14:00 | 02-28 18:00 | take_profit | 4 | +1.49 | +| BONK | 02-28 17:00 | 02-28 18:00 | take_profit | 1 | +1.49 | +| ETC | 02-28 17:00 | 02-28 18:00 | take_profit | 1 | +1.49 | +| FET | 02-28 14:00 | 02-28 18:00 | take_profit | 4 | +1.49 | +| LTC | 02-28 14:00 | 02-28 18:00 | take_profit | 4 | +1.49 | +| OP | 02-28 16:00 | 02-28 18:00 | take_profit | 2 | +1.49 | +| RENDER | 02-28 15:00 | 02-28 18:00 | take_profit | 3 | +1.49 | +| SHIB | 02-28 14:00 | 02-28 18:00 | take_profit | 4 | +1.49 | +| TIA | 02-28 14:00 | 02-28 18:00 | take_profit | 4 | +1.49 | +| SEI | 02-28 18:00 | 02-28 19:00 | trailing_stop | 1 | -0.49 | +| FIL | 03-01 12:00 | 03-01 13:00 | take_profit | 1 | +1.49 | +| PEPE | 03-01 12:00 | 03-01 13:00 | take_profit | 1 | +1.49 | +| RENDER | 03-01 12:00 | 03-01 13:00 | take_profit | 1 | +1.49 | +| APT | 03-01 15:00 | 03-01 16:00 | stop_loss | 1 | -1.49 | +| ATOM | 03-01 15:00 | 03-01 16:00 | stop_loss | 1 | -1.49 | +| FIL | 03-01 15:00 | 03-01 16:00 | stop_loss | 1 | -1.49 | +| UNI | 03-01 15:00 | 03-01 16:00 | stop_loss | 1 | -1.49 | +| APT | 03-01 16:00 | 03-01 17:00 | stop_loss | 1 | -1.49 | +| ARB | 03-01 16:00 | 03-01 17:00 | stop_loss | 1 | -1.49 | +| BONK | 03-01 16:00 | 03-01 17:00 | stop_loss | 1 | -1.49 | +| ETC | 03-01 16:00 | 03-01 17:00 | stop_loss | 1 | -1.49 | +| FET | 03-01 16:00 | 03-01 17:00 | stop_loss | 1 | -1.49 | +| INJ | 03-01 16:00 | 03-01 17:00 | stop_loss | 1 | -1.49 | +| SEI | 03-01 16:00 | 03-01 17:00 | stop_loss | 1 | -1.49 | +| SUI | 03-01 16:00 | 03-01 17:00 | stop_loss | 1 | -1.49 | +| TIA | 03-01 16:00 | 03-01 17:00 | stop_loss | 1 | -1.49 | +| WIF | 03-01 16:00 | 03-01 17:00 | stop_loss | 1 | -1.49 | +| WIF | 03-01 17:00 | 03-01 18:00 | take_profit | 1 | +1.49 | +| SEI | 03-01 17:00 | 03-01 19:00 | trailing_stop | 2 | -0.68 | +| ARB | 03-01 19:00 | 03-01 20:00 | stop_loss | 1 | -1.49 | +| ATOM | 03-01 17:00 | 03-01 20:00 | stop_loss | 3 | -1.49 | +| AVAX | 03-01 16:00 | 03-01 20:00 | stop_loss | 4 | -1.49 | +| FET | 03-01 17:00 | 03-01 20:00 | stop_loss | 3 | -1.49 | +| KAS | 03-01 16:00 | 03-01 20:00 | stop_loss | 4 | -1.49 | +| SEI | 03-01 19:00 | 03-01 20:00 | stop_loss | 1 | -1.49 | +| SUI | 03-01 17:00 | 03-01 20:00 | stop_loss | 3 | -1.49 | +| WIF | 03-01 19:00 | 03-01 20:00 | stop_loss | 1 | -1.49 | +| APT | 03-01 20:00 | 03-01 21:00 | trailing_stop | 1 | -0.35 | +| ARB | 03-01 20:00 | 03-01 21:00 | trailing_stop | 1 | -0.06 | +| BONK | 03-01 20:00 | 03-01 21:00 | trailing_stop | 1 | -0.31 | +| FIL | 03-01 20:00 | 03-01 21:00 | trailing_stop | 1 | -0.46 | +| NEAR | 03-01 20:00 | 03-01 21:00 | trailing_stop | 1 | -0.29 | +| SUI | 03-01 20:00 | 03-01 21:00 | trailing_stop | 1 | -0.49 | +| TIA | 03-01 20:00 | 03-01 21:00 | trailing_stop | 1 | -0.26 | +| ATOM | 03-01 20:00 | 03-01 22:00 | take_profit | 2 | +1.49 | +| AVAX | 03-01 20:00 | 03-01 22:00 | take_profit | 2 | +1.49 | +| ETC | 03-01 20:00 | 03-01 22:00 | take_profit | 2 | +1.49 | +| FET | 03-01 20:00 | 03-01 22:00 | take_profit | 2 | +1.49 | +| INJ | 03-01 20:00 | 03-01 22:00 | take_profit | 2 | +1.49 | +| LTC | 03-01 20:00 | 03-01 22:00 | take_profit | 2 | +1.49 | +| OP | 03-01 20:00 | 03-01 22:00 | take_profit | 2 | +1.49 | +| SEI | 03-01 20:00 | 03-01 22:00 | take_profit | 2 | +1.49 | +| UNI | 03-01 20:00 | 03-01 22:00 | take_profit | 2 | +1.49 | +| WIF | 03-01 20:00 | 03-01 22:00 | take_profit | 2 | +1.49 | +| FET | 03-03 05:00 | 03-03 06:00 | stop_loss | 1 | -1.49 | +| ETC | 03-03 04:00 | 03-03 07:00 | stop_loss | 3 | -1.49 | +| PEPE | 03-03 05:00 | 03-03 07:00 | take_profit | 2 | +1.49 | +| WIF | 03-03 05:00 | 03-03 07:00 | take_profit | 2 | +1.49 | +| ATOM | 03-03 07:00 | 03-03 08:00 | stop_loss | 1 | -1.49 | +| AVAX | 03-03 05:00 | 03-03 08:00 | stop_loss | 3 | -1.49 | +| FIL | 03-03 05:00 | 03-03 08:00 | stop_loss | 3 | -1.49 | +| INJ | 03-03 06:00 | 03-03 08:00 | stop_loss | 2 | -1.49 | +| KAS | 03-03 06:00 | 03-03 08:00 | stop_loss | 2 | -1.49 | +| OP | 03-03 05:00 | 03-03 08:00 | stop_loss | 3 | -1.49 | +| SUI | 03-03 05:00 | 03-03 08:00 | stop_loss | 3 | -1.49 | +| UNI | 03-03 05:00 | 03-03 08:00 | stop_loss | 3 | -1.49 | +| ARB | 03-03 04:00 | 03-03 09:00 | stop_loss | 5 | -1.49 | +| BONK | 03-03 05:00 | 03-03 09:00 | stop_loss | 4 | -1.49 | +| ETC | 03-03 07:00 | 03-03 09:00 | stop_loss | 2 | -1.49 | +| LTC | 03-03 05:00 | 03-03 09:00 | stop_loss | 4 | -1.49 | +| TIA | 03-03 04:00 | 03-03 09:00 | stop_loss | 5 | -1.49 | +| OP | 03-03 08:00 | 03-03 10:00 | stop_loss | 2 | -1.49 | +| SEI | 03-03 08:00 | 03-03 10:00 | stop_loss | 2 | -1.49 | +| KAS | 03-03 08:00 | 03-03 11:00 | trailing_stop | 3 | +0.23 | +| ATOM | 03-03 08:00 | 03-03 12:00 | stop_loss | 4 | -1.49 | +| FIL | 03-03 08:00 | 03-03 12:00 | take_profit | 4 | +1.49 | +| OP | 03-03 10:00 | 03-03 12:00 | take_profit | 2 | +1.49 | +| PEPE | 03-03 09:00 | 03-03 12:00 | take_profit | 3 | +1.49 | +| INJ | 03-03 08:00 | 03-03 13:00 | stop_loss | 5 | -1.49 | +| SEI | 03-03 10:00 | 03-03 13:00 | stop_loss | 3 | -1.49 | +| SUI | 03-03 08:00 | 03-03 13:00 | stop_loss | 5 | -1.49 | +| UNI | 03-03 08:00 | 03-03 13:00 | stop_loss | 5 | -1.49 | +| AVAX | 03-03 08:00 | 03-03 14:00 | stop_loss | 6 | -1.49 | +| LTC | 03-03 09:00 | 03-03 14:00 | take_profit | 5 | +1.49 | +| PEPE | 03-03 14:00 | 03-03 15:00 | stop_loss | 1 | -1.49 | +| LTC | 03-03 14:00 | 03-03 16:00 | take_profit | 2 | +1.49 | +| SEI | 03-03 13:00 | 03-03 16:00 | take_profit | 3 | +1.49 | +| TRX | 02-28 08:00 | 03-04 00:00 | trailing_stop | 88 | -0.14 | +| ATOM | 03-03 17:00 | 03-04 03:00 | trailing_stop | 10 | -0.49 | +| TRX | 03-04 00:00 | 03-04 06:00 | confirmed_bearish_exit | 6 | +0.82 | +| ETC | 03-04 06:00 | 03-04 07:00 | trailing_stop | 1 | -0.61 | +| NEAR | 03-05 00:00 | 03-05 01:00 | stop_loss | 1 | -1.49 | +| NEAR | 03-05 01:00 | 03-05 02:00 | take_profit | 1 | +1.49 | +| PEPE | 03-05 05:00 | 03-05 07:00 | stop_loss | 2 | -1.49 | +| RENDER | 03-05 05:00 | 03-05 07:00 | stop_loss | 2 | -1.49 | +| SEI | 03-05 05:00 | 03-05 07:00 | stop_loss | 2 | -1.49 | +| WIF | 03-05 05:00 | 03-05 08:00 | take_profit | 3 | +1.49 | +| APT | 03-05 05:00 | 03-05 10:00 | take_profit | 5 | +1.49 | +| BONK | 03-05 05:00 | 03-05 10:00 | take_profit | 5 | +1.49 | +| INJ | 03-05 05:00 | 03-05 10:00 | take_profit | 5 | +1.49 | +| PEPE | 03-05 07:00 | 03-05 10:00 | take_profit | 3 | +1.49 | +| SUI | 03-05 05:00 | 03-05 10:00 | take_profit | 5 | +1.49 | +| AVAX | 03-05 05:00 | 03-05 11:00 | trailing_stop | 6 | -0.16 | +| SHIB | 03-05 05:00 | 03-05 12:00 | trailing_stop | 7 | -0.19 | +| KAS | 03-05 05:00 | 03-05 13:00 | trailing_stop | 8 | -0.11 | +| SEI | 03-05 11:00 | 03-05 13:00 | stop_loss | 2 | -1.49 | +| PEPE | 03-05 16:00 | 03-05 17:00 | stop_loss | 1 | -1.49 | +| FIL | 03-05 17:00 | 03-05 18:00 | trailing_stop | 1 | -0.62 | +| RENDER | 03-05 17:00 | 03-05 18:00 | trailing_stop | 1 | -0.45 | +| PEPE | 03-05 17:00 | 03-05 19:00 | take_profit | 2 | +1.49 | +| TIA | 03-05 17:00 | 03-05 19:00 | take_profit | 2 | +1.49 | +| KAS | 03-05 17:00 | 03-05 20:00 | take_profit | 3 | +1.49 | +| ATOM | 03-05 17:00 | 03-06 01:00 | trailing_stop | 8 | -0.44 | +| PEPE | 03-06 00:00 | 03-06 08:00 | trailing_stop | 8 | -0.53 | +| ETC | 03-06 00:00 | 03-06 09:00 | stop_loss | 9 | -1.49 | +| WIF | 03-06 08:00 | 03-06 09:00 | stop_loss | 1 | -1.49 | +| WIF | 03-06 09:00 | 03-06 10:00 | stop_loss | 1 | -1.49 | +| ATOM | 03-06 04:00 | 03-06 11:00 | stop_loss | 7 | -1.49 | +| FET | 03-06 11:00 | 03-06 12:00 | stop_loss | 1 | -1.49 | +| WIF | 03-06 10:00 | 03-06 12:00 | stop_loss | 2 | -1.49 | +| AVAX | 03-06 11:00 | 03-06 13:00 | stop_loss | 2 | -1.49 | +| ETC | 03-06 11:00 | 03-06 13:00 | stop_loss | 2 | -1.49 | +| FET | 03-06 12:00 | 03-06 13:00 | stop_loss | 1 | -1.49 | +| INJ | 03-06 12:00 | 03-06 13:00 | stop_loss | 1 | -1.49 | +| LTC | 03-06 11:00 | 03-06 13:00 | stop_loss | 2 | -1.49 | +| ARB | 03-06 13:00 | 03-06 14:00 | stop_loss | 1 | -1.49 | +| ATOM | 03-06 11:00 | 03-06 14:00 | stop_loss | 3 | -1.49 | +| AVAX | 03-06 13:00 | 03-06 14:00 | stop_loss | 1 | -1.49 | +| BONK | 03-06 13:00 | 03-06 14:00 | stop_loss | 1 | -1.49 | +| ETC | 03-06 13:00 | 03-06 14:00 | stop_loss | 1 | -1.49 | +| FET | 03-06 13:00 | 03-06 14:00 | stop_loss | 1 | -1.49 | +| INJ | 03-06 13:00 | 03-06 14:00 | stop_loss | 1 | -1.49 | +| LTC | 03-06 13:00 | 03-06 14:00 | stop_loss | 1 | -1.49 | +| RENDER | 03-06 13:00 | 03-06 14:00 | stop_loss | 1 | -1.49 | +| SUI | 03-06 13:00 | 03-06 14:00 | stop_loss | 1 | -1.49 | +| TIA | 03-06 13:00 | 03-06 14:00 | stop_loss | 1 | -1.49 | +| UNI | 03-06 13:00 | 03-06 14:00 | stop_loss | 1 | -1.49 | +| APT | 03-06 14:00 | 03-06 15:00 | stop_loss | 1 | -1.49 | +| BONK | 03-06 14:00 | 03-06 15:00 | take_profit | 1 | +1.49 | +| ETC | 03-06 14:00 | 03-06 15:00 | stop_loss | 1 | -1.49 | +| INJ | 03-06 14:00 | 03-06 15:00 | stop_loss | 1 | -1.49 | +| NEAR | 03-06 13:00 | 03-06 15:00 | stop_loss | 2 | -1.49 | +| WIF | 03-06 14:00 | 03-06 15:00 | stop_loss | 1 | -1.49 | +| OP | 03-06 14:00 | 03-06 16:00 | stop_loss | 2 | -1.49 | +| APT | 03-06 15:00 | 03-06 17:00 | stop_loss | 2 | -1.49 | +| ARB | 03-06 15:00 | 03-06 17:00 | stop_loss | 2 | -1.49 | +| BONK | 03-06 15:00 | 03-06 17:00 | stop_loss | 2 | -1.49 | +| ETC | 03-06 15:00 | 03-06 17:00 | stop_loss | 2 | -1.49 | +| FET | 03-06 14:00 | 03-06 17:00 | stop_loss | 3 | -1.49 | +| FIL | 03-06 14:00 | 03-06 17:00 | stop_loss | 3 | -1.49 | +| INJ | 03-06 15:00 | 03-06 17:00 | stop_loss | 2 | -1.49 | +| LTC | 03-06 14:00 | 03-06 17:00 | stop_loss | 3 | -1.49 | +| NEAR | 03-06 15:00 | 03-06 17:00 | stop_loss | 2 | -1.49 | +| OP | 03-06 16:00 | 03-06 17:00 | stop_loss | 1 | -1.49 | +| PEPE | 03-06 14:00 | 03-06 17:00 | stop_loss | 3 | -1.49 | +| SUI | 03-06 14:00 | 03-06 17:00 | stop_loss | 3 | -1.49 | +| TIA | 03-06 14:00 | 03-06 17:00 | stop_loss | 3 | -1.49 | +| APT | 03-06 17:00 | 03-06 18:00 | trailing_stop | 1 | -0.48 | +| ARB | 03-06 17:00 | 03-06 18:00 | trailing_stop | 1 | -0.20 | +| NEAR | 03-06 17:00 | 03-06 18:00 | take_profit | 1 | +1.49 | +| OP | 03-06 17:00 | 03-06 18:00 | trailing_stop | 1 | -0.44 | +| RENDER | 03-06 14:00 | 03-06 18:00 | take_profit | 4 | +1.49 | +| TIA | 03-06 17:00 | 03-06 18:00 | take_profit | 1 | +1.49 | +| PEPE | 03-06 17:00 | 03-06 21:00 | confirmed_bearish_exit | 4 | +1.32 | +| SEI | 03-06 14:00 | 03-06 21:00 | confirmed_bearish_exit | 7 | +0.10 | +| INJ | 03-06 17:00 | 03-06 22:00 | take_profit | 5 | +1.49 | +| NEAR | 03-06 22:00 | 03-06 23:00 | stop_loss | 1 | -1.49 | +| RENDER | 03-06 20:00 | 03-07 01:00 | stop_loss | 5 | -1.49 | +| TIA | 03-06 22:00 | 03-07 01:00 | stop_loss | 3 | -1.49 | +| ATOM | 03-06 14:00 | 03-07 02:00 | take_profit | 12 | +1.49 | +| INJ | 03-06 22:00 | 03-07 02:00 | stop_loss | 4 | -1.49 | +| OP | 03-06 22:00 | 03-07 02:00 | stop_loss | 4 | -1.49 | +| WIF | 03-06 15:00 | 03-07 02:00 | trailing_stop | 11 | -0.54 | +| BONK | 03-06 22:00 | 03-07 04:00 | stop_loss | 6 | -1.49 | +| FET | 03-06 22:00 | 03-07 04:00 | stop_loss | 6 | -1.49 | +| FIL | 03-06 17:00 | 03-07 04:00 | trailing_stop | 11 | -0.57 | +| ARB | 03-06 22:00 | 03-07 06:00 | stop_loss | 8 | -1.49 | +| INJ | 03-07 02:00 | 03-07 06:00 | stop_loss | 4 | -1.49 | +| PEPE | 03-06 22:00 | 03-07 06:00 | stop_loss | 8 | -1.49 | +| TIA | 03-07 01:00 | 03-07 06:00 | stop_loss | 5 | -1.49 | +| UNI | 03-06 14:00 | 03-07 06:00 | stop_loss | 16 | -1.49 | +| ETC | 03-06 17:00 | 03-07 07:00 | trailing_stop | 14 | -0.30 | +| OP | 03-07 02:00 | 03-07 07:00 | stop_loss | 5 | -1.49 | +| SEI | 03-06 22:00 | 03-07 07:00 | stop_loss | 9 | -1.49 | +| APT | 03-06 23:00 | 03-07 09:00 | stop_loss | 10 | -1.49 | +| SUI | 03-06 23:00 | 03-07 09:00 | trailing_stop | 10 | -0.50 | +| WIF | 03-07 09:00 | 03-07 11:00 | stop_loss | 2 | -1.49 | +| WIF | 03-07 11:00 | 03-07 12:00 | stop_loss | 1 | -1.49 | +| AVAX | 03-06 14:00 | 03-07 14:00 | trailing_stop | 24 | -0.62 | +| SHIB | 03-06 14:00 | 03-07 14:00 | trailing_stop | 24 | -0.68 | +| WIF | 03-07 12:00 | 03-07 14:00 | take_profit | 2 | +1.49 | +| ARB | 03-07 14:00 | 03-07 15:00 | stop_loss | 1 | -1.49 | +| BONK | 03-07 12:00 | 03-07 15:00 | stop_loss | 3 | -1.49 | +| OP | 03-07 14:00 | 03-07 15:00 | stop_loss | 1 | -1.49 | +| PEPE | 03-07 14:00 | 03-07 16:00 | stop_loss | 2 | -1.49 | +| APT | 03-07 14:00 | 03-07 17:00 | take_profit | 3 | +1.49 | +| ARB | 03-07 15:00 | 03-07 19:00 | stop_loss | 4 | -1.49 | +| FIL | 03-07 15:00 | 03-07 19:00 | stop_loss | 4 | -1.49 | +| KAS | 03-06 17:00 | 03-07 19:00 | trailing_stop | 26 | -0.67 | +| LTC | 03-06 17:00 | 03-07 19:00 | trailing_stop | 26 | -0.31 | +| NEAR | 03-07 15:00 | 03-07 19:00 | stop_loss | 4 | -1.49 | +| OP | 03-07 15:00 | 03-07 19:00 | stop_loss | 4 | -1.49 | +| ATOM | 03-07 15:00 | 03-07 22:00 | stop_loss | 7 | -1.49 | +| BONK | 03-07 15:00 | 03-07 22:00 | stop_loss | 7 | -1.49 | +| ETC | 03-07 15:00 | 03-07 22:00 | stop_loss | 7 | -1.49 | +| OP | 03-07 19:00 | 03-07 22:00 | stop_loss | 3 | -1.49 | +| PEPE | 03-07 16:00 | 03-07 22:00 | stop_loss | 6 | -1.49 | +| SEI | 03-07 18:00 | 03-07 22:00 | stop_loss | 4 | -1.49 | +| SHIB | 03-07 14:00 | 03-07 22:00 | stop_loss | 8 | -1.49 | +| TIA | 03-07 15:00 | 03-07 22:00 | stop_loss | 7 | -1.49 | +| APT | 03-07 19:00 | 03-08 02:00 | stop_loss | 7 | -1.49 | +| ARB | 03-07 19:00 | 03-08 02:00 | stop_loss | 7 | -1.49 | +| BONK | 03-07 22:00 | 03-08 02:00 | stop_loss | 4 | -1.49 | +| FET | 03-07 22:00 | 03-08 02:00 | stop_loss | 4 | -1.49 | +| FIL | 03-07 19:00 | 03-08 02:00 | stop_loss | 7 | -1.49 | +| SUI | 03-07 19:00 | 03-08 02:00 | stop_loss | 7 | -1.49 | +| TIA | 03-07 22:00 | 03-08 02:00 | stop_loss | 4 | -1.49 | +| UNI | 03-07 19:00 | 03-08 02:00 | stop_loss | 7 | -1.49 | +| KAS | 03-08 01:00 | 03-08 03:00 | stop_loss | 2 | -1.49 | +| NEAR | 03-08 02:00 | 03-08 03:00 | trailing_stop | 1 | -0.53 | +| ETC | 03-07 22:00 | 03-08 04:00 | stop_loss | 6 | -1.49 | +| LTC | 03-07 19:00 | 03-08 04:00 | stop_loss | 9 | -1.49 | +| SEI | 03-07 22:00 | 03-08 04:00 | stop_loss | 6 | -1.49 | +| SHIB | 03-07 22:00 | 03-08 04:00 | stop_loss | 6 | -1.49 | +| RENDER | 03-08 02:00 | 03-08 05:00 | take_profit | 3 | +1.49 | +| TIA | 03-08 02:00 | 03-08 05:00 | confirmed_bearish_exit | 3 | +0.84 | +| FET | 03-08 02:00 | 03-08 09:00 | take_profit | 7 | +1.49 | +| SUI | 03-08 02:00 | 03-08 09:00 | take_profit | 7 | +1.49 | +| BONK | 03-08 02:00 | 03-08 10:00 | take_profit | 8 | +1.49 | +| ETC | 03-08 04:00 | 03-08 10:00 | take_profit | 6 | +1.49 | +| FIL | 03-08 02:00 | 03-08 10:00 | take_profit | 8 | +1.49 | +| INJ | 03-08 02:00 | 03-08 10:00 | take_profit | 8 | +1.49 | +| OP | 03-08 02:00 | 03-08 10:00 | take_profit | 8 | +1.49 | +| SHIB | 03-08 04:00 | 03-08 10:00 | take_profit | 6 | +1.49 | +| UNI | 03-08 02:00 | 03-08 10:00 | take_profit | 8 | +1.49 | +| ATOM | 03-08 02:00 | 03-08 12:00 | stop_loss | 10 | -1.49 | +| AVAX | 03-07 19:00 | 03-08 12:00 | trailing_stop | 17 | -0.64 | +| LTC | 03-08 04:00 | 03-08 14:00 | trailing_stop | 10 | -0.41 | +| TRX | 03-05 07:00 | 03-08 16:00 | take_profit | 81 | +1.49 | +| KAS | 03-08 04:00 | 03-08 19:00 | take_profit | 15 | +1.49 | +| ATOM | 03-08 13:00 | 03-08 22:00 | stop_loss | 9 | -1.49 | +| ATOM | 03-08 23:00 | 03-09 01:00 | stop_loss | 2 | -1.49 | +| NEAR | 03-09 00:00 | 03-09 02:00 | trailing_stop | 2 | -0.58 | +| ATOM | 03-09 01:00 | 03-09 03:00 | take_profit | 2 | +1.49 | +| SEI | 03-08 23:00 | 03-09 03:00 | take_profit | 4 | +1.49 | +| TRX | 03-09 09:00 | 03-09 11:00 | stop_loss | 2 | -1.49 | +| SEI | 03-09 11:00 | 03-09 15:00 | trailing_stop | 4 | -0.42 | +| TRX | 03-09 11:00 | 03-10 09:00 | take_profit | 22 | +1.49 | +| WIF | 03-10 11:00 | 03-10 13:00 | stop_loss | 2 | -1.49 | +| FIL | 03-10 18:00 | 03-10 19:00 | stop_loss | 1 | -1.49 | +| FIL | 03-10 19:00 | 03-10 21:00 | stop_loss | 2 | -1.49 | +| FIL | 03-10 21:00 | 03-10 22:00 | stop_loss | 1 | -1.49 | +| SEI | 03-10 22:00 | 03-11 01:00 | stop_loss | 3 | -1.49 | +| APT | 03-10 23:00 | 03-11 02:00 | stop_loss | 3 | -1.49 | +| SEI | 03-11 01:00 | 03-11 02:00 | stop_loss | 1 | -1.49 | +| FIL | 03-10 22:00 | 03-11 04:00 | stop_loss | 6 | -1.49 | +| NEAR | 03-11 04:00 | 03-11 05:00 | stop_loss | 1 | -1.49 | +| OP | 03-10 21:00 | 03-11 05:00 | stop_loss | 8 | -1.49 | +| KAS | 03-11 02:00 | 03-11 07:00 | stop_loss | 5 | -1.49 | +| SEI | 03-11 02:00 | 03-11 09:00 | confirmed_bearish_exit | 7 | -0.66 | +| FIL | 03-11 07:00 | 03-11 10:00 | trailing_stop | 3 | +0.11 | +| ARB | 03-10 21:00 | 03-11 12:00 | take_profit | 15 | +1.49 | +| RENDER | 03-11 06:00 | 03-11 12:00 | take_profit | 6 | +1.49 | +| SHIB | 03-11 06:00 | 03-11 12:00 | take_profit | 6 | +1.49 | +| WIF | 03-10 21:00 | 03-11 12:00 | take_profit | 15 | +1.49 | +| LTC | 03-11 04:00 | 03-11 17:00 | take_profit | 13 | +1.49 | +| TRX | 03-10 10:00 | 03-11 17:00 | take_profit | 31 | +1.49 | +| FIL | 03-12 02:00 | 03-12 04:00 | stop_loss | 2 | -1.49 | +| APT | 03-12 03:00 | 03-12 07:00 | stop_loss | 4 | -1.49 | +| SHIB | 03-12 04:00 | 03-12 07:00 | trailing_stop | 3 | -0.23 | +| WIF | 03-12 03:00 | 03-12 08:00 | confirmed_bearish_exit | 5 | +0.72 | +| BONK | 03-12 03:00 | 03-12 10:00 | trailing_stop | 7 | +0.11 | +| PEPE | 03-12 04:00 | 03-12 10:00 | trailing_stop | 6 | -0.04 | +| UNI | 03-12 03:00 | 03-12 10:00 | take_profit | 7 | +1.49 | +| ARB | 03-12 03:00 | 03-12 11:00 | trailing_stop | 8 | -0.50 | +| OP | 03-12 03:00 | 03-12 11:00 | stop_loss | 8 | -1.49 | +| FIL | 03-12 10:00 | 03-12 13:00 | stop_loss | 3 | -1.49 | +| OP | 03-12 11:00 | 03-12 13:00 | stop_loss | 2 | -1.49 | +| ARB | 03-12 11:00 | 03-12 14:00 | stop_loss | 3 | -1.49 | +| AVAX | 03-12 03:00 | 03-12 14:00 | trailing_stop | 11 | -0.40 | +| ETC | 03-12 03:00 | 03-12 14:00 | stop_loss | 11 | -1.49 | +| KAS | 03-12 03:00 | 03-12 14:00 | trailing_stop | 11 | -0.42 | +| TIA | 03-12 12:00 | 03-12 14:00 | stop_loss | 2 | -1.49 | +| PEPE | 03-12 14:00 | 03-12 16:00 | trailing_stop | 2 | -0.46 | +| OP | 03-12 14:00 | 03-12 19:00 | trailing_stop | 5 | +0.07 | +| APT | 03-12 14:00 | 03-13 00:00 | take_profit | 10 | +1.49 | +| ATOM | 03-12 14:00 | 03-13 00:00 | take_profit | 10 | +1.49 | +| LTC | 03-12 06:00 | 03-13 00:00 | take_profit | 18 | +1.49 | +| NEAR | 03-13 15:00 | 03-13 16:00 | trailing_stop | 1 | -0.62 | +| FET | 03-13 17:00 | 03-13 18:00 | trailing_stop | 1 | -0.17 | +| FIL | 03-13 19:00 | 03-13 22:00 | stop_loss | 3 | -1.49 | +| SUI | 03-13 18:00 | 03-13 22:00 | stop_loss | 4 | -1.49 | +| FET | 03-13 18:00 | 03-14 02:00 | take_profit | 8 | +1.49 | +| OP | 03-14 00:00 | 03-14 03:00 | take_profit | 3 | +1.49 | +| BONK | 03-14 03:00 | 03-14 05:00 | stop_loss | 2 | -1.49 | +| PEPE | 03-14 02:00 | 03-14 05:00 | stop_loss | 3 | -1.49 | +| WIF | 03-14 03:00 | 03-14 05:00 | stop_loss | 2 | -1.49 | +| ARB | 03-13 22:00 | 03-14 06:00 | stop_loss | 8 | -1.49 | +| INJ | 03-13 22:00 | 03-14 06:00 | stop_loss | 8 | -1.49 | +| PEPE | 03-14 05:00 | 03-14 06:00 | stop_loss | 1 | -1.49 | +| SHIB | 03-14 03:00 | 03-14 06:00 | stop_loss | 3 | -1.49 | +| TIA | 03-14 05:00 | 03-14 06:00 | stop_loss | 1 | -1.49 | +| ETC | 03-14 06:00 | 03-14 10:00 | stop_loss | 4 | -1.49 | +| TRX | 03-12 10:00 | 03-14 12:00 | take_profit | 50 | +1.49 | +| APT | 03-14 13:00 | 03-14 15:00 | stop_loss | 2 | -1.49 | +| ARB | 03-14 15:00 | 03-14 18:00 | take_profit | 3 | +1.49 | +| FIL | 03-14 06:00 | 03-14 18:00 | take_profit | 12 | +1.49 | +| PEPE | 03-14 15:00 | 03-14 20:00 | stop_loss | 5 | -1.49 | +| APT | 03-14 15:00 | 03-15 01:00 | trailing_stop | 10 | -0.30 | +| NEAR | 03-14 17:00 | 03-15 01:00 | take_profit | 8 | +1.49 | +| SEI | 03-14 06:00 | 03-15 01:00 | trailing_stop | 19 | -0.50 | +| ARB | 03-14 18:00 | 03-15 02:00 | take_profit | 8 | +1.49 | +| AVAX | 03-14 16:00 | 03-15 02:00 | take_profit | 10 | +1.49 | +| ETC | 03-14 10:00 | 03-15 10:00 | take_profit | 24 | +1.49 | +| KAS | 03-13 17:00 | 03-15 10:00 | trailing_stop | 41 | -0.14 | +| UNI | 03-14 15:00 | 03-15 13:00 | trailing_stop | 22 | -0.13 | +| PEPE | 03-15 16:00 | 03-15 17:00 | trailing_stop | 1 | -0.54 | +| RENDER | 03-15 15:00 | 03-15 18:00 | take_profit | 3 | +1.49 | +| LTC | 03-14 09:00 | 03-15 21:00 | take_profit | 36 | +1.49 | +| SUI | 03-15 16:00 | 03-15 21:00 | trailing_stop | 5 | -0.09 | +| TIA | 03-15 16:00 | 03-15 21:00 | trailing_stop | 5 | +0.22 | +| BONK | 03-15 13:00 | 03-15 22:00 | take_profit | 9 | +1.49 | +| SHIB | 03-15 16:00 | 03-15 22:00 | take_profit | 6 | +1.49 | +| KAS | 03-15 12:00 | 03-15 23:00 | take_profit | 11 | +1.49 | +| NEAR | 03-15 16:00 | 03-15 23:00 | trailing_stop | 7 | -0.18 | +| ATOM | 03-15 00:00 | 03-16 03:00 | take_profit | 27 | +1.49 | +| AVAX | 03-16 19:00 | 03-16 22:00 | take_profit | 3 | +1.49 | +| PEPE | 03-17 04:00 | 03-17 05:00 | stop_loss | 1 | -1.49 | +| FET | 03-17 06:00 | 03-17 07:00 | take_profit | 1 | +1.49 | +| BONK | 03-17 05:00 | 03-17 08:00 | take_profit | 3 | +1.49 | +| FET | 03-17 07:00 | 03-17 08:00 | stop_loss | 1 | -1.49 | +| PEPE | 03-17 05:00 | 03-17 09:00 | stop_loss | 4 | -1.49 | +| TRX | 03-15 05:00 | 03-17 09:00 | take_profit | 52 | +1.49 | +| SUI | 03-17 04:00 | 03-17 10:00 | stop_loss | 6 | -1.49 | +| APT | 03-17 10:00 | 03-17 12:00 | stop_loss | 2 | -1.49 | +| ATOM | 03-17 09:00 | 03-17 12:00 | stop_loss | 3 | -1.49 | +| ETC | 03-17 08:00 | 03-17 12:00 | stop_loss | 4 | -1.49 | +| FIL | 03-17 10:00 | 03-17 12:00 | stop_loss | 2 | -1.49 | +| OP | 03-17 11:00 | 03-17 12:00 | stop_loss | 1 | -1.49 | +| TIA | 03-17 10:00 | 03-17 12:00 | stop_loss | 2 | -1.49 | +| UNI | 03-17 05:00 | 03-17 12:00 | stop_loss | 7 | -1.49 | +| FET | 03-17 12:00 | 03-17 13:00 | take_profit | 1 | +1.49 | +| RENDER | 03-17 12:00 | 03-17 14:00 | stop_loss | 2 | -1.49 | +| PEPE | 03-17 12:00 | 03-17 17:00 | trailing_stop | 5 | -0.70 | +| SHIB | 03-17 12:00 | 03-17 18:00 | take_profit | 6 | +1.49 | +| OP | 03-17 12:00 | 03-17 20:00 | take_profit | 8 | +1.49 | +| ATOM | 03-17 12:00 | 03-17 21:00 | confirmed_bearish_exit | 9 | +0.99 | +| FIL | 03-17 12:00 | 03-18 00:00 | trailing_stop | 12 | -0.32 | +| PEPE | 03-17 19:00 | 03-18 00:00 | stop_loss | 5 | -1.49 | +| RENDER | 03-17 20:00 | 03-18 00:00 | stop_loss | 4 | -1.49 | +| SUI | 03-17 16:00 | 03-18 00:00 | trailing_stop | 8 | -0.44 | +| NEAR | 03-17 12:00 | 03-18 05:00 | trailing_stop | 17 | -0.35 | +| RENDER | 03-18 00:00 | 03-18 07:00 | stop_loss | 7 | -1.49 | +| SEI | 03-17 10:00 | 03-18 07:00 | trailing_stop | 21 | -0.40 | +| FET | 03-18 07:00 | 03-18 09:00 | take_profit | 2 | +1.49 | +| AVAX | 03-17 12:00 | 03-18 11:00 | stop_loss | 23 | -1.49 | +| ETC | 03-17 16:00 | 03-18 11:00 | stop_loss | 19 | -1.49 | +| INJ | 03-17 11:00 | 03-18 11:00 | stop_loss | 24 | -1.49 | +| LTC | 03-18 07:00 | 03-18 11:00 | stop_loss | 4 | -1.49 | +| NEAR | 03-18 06:00 | 03-18 11:00 | stop_loss | 5 | -1.49 | +| SEI | 03-18 10:00 | 03-18 11:00 | stop_loss | 1 | -1.49 | +| UNI | 03-18 10:00 | 03-18 11:00 | stop_loss | 1 | -1.49 | +| APT | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| ARB | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| AVAX | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| ETC | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| FIL | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| INJ | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| LTC | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| NEAR | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| OP | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| PEPE | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| RENDER | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| SEI | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| SHIB | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| SUI | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| TIA | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| UNI | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| WIF | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| APT | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| ARB | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| AVAX | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| BONK | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| ETC | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| FIL | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| INJ | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| NEAR | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| OP | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| PEPE | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| RENDER | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| SHIB | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| SUI | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| TIA | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| UNI | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| WIF | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| FIL | 03-18 14:00 | 03-18 15:00 | stop_loss | 1 | -1.49 | +| LTC | 03-18 12:00 | 03-18 15:00 | stop_loss | 3 | -1.49 | +| SEI | 03-18 12:00 | 03-18 15:00 | stop_loss | 3 | -1.49 | +| UNI | 03-18 14:00 | 03-18 15:00 | stop_loss | 1 | -1.49 | +| OP | 03-18 14:00 | 03-18 16:00 | stop_loss | 2 | -1.49 | +| RENDER | 03-18 14:00 | 03-18 16:00 | stop_loss | 2 | -1.49 | +| UNI | 03-18 15:00 | 03-18 16:00 | stop_loss | 1 | -1.49 | +| FIL | 03-18 15:00 | 03-18 17:00 | stop_loss | 2 | -1.49 | +| RENDER | 03-18 16:00 | 03-18 17:00 | trailing_stop | 1 | -0.48 | +| TIA | 03-18 14:00 | 03-18 17:00 | stop_loss | 3 | -1.49 | +| APT | 03-18 14:00 | 03-18 18:00 | take_profit | 4 | +1.49 | +| ATOM | 03-18 14:00 | 03-18 18:00 | stop_loss | 4 | -1.49 | +| BONK | 03-18 14:00 | 03-18 18:00 | take_profit | 4 | +1.49 | +| PEPE | 03-18 14:00 | 03-18 18:00 | take_profit | 4 | +1.49 | +| WIF | 03-18 14:00 | 03-18 18:00 | take_profit | 4 | +1.49 | +| ARB | 03-18 14:00 | 03-18 20:00 | trailing_stop | 6 | -0.43 | +| SHIB | 03-18 14:00 | 03-18 20:00 | trailing_stop | 6 | -0.67 | +| OP | 03-18 16:00 | 03-18 23:00 | trailing_stop | 7 | -0.13 | +| SEI | 03-18 15:00 | 03-19 00:00 | stop_loss | 9 | -1.49 | +| NEAR | 03-18 14:00 | 03-19 01:00 | stop_loss | 11 | -1.49 | +| ARB | 03-18 21:00 | 03-19 02:00 | stop_loss | 5 | -1.49 | +| BONK | 03-18 21:00 | 03-19 02:00 | stop_loss | 5 | -1.49 | +| FIL | 03-18 21:00 | 03-19 02:00 | stop_loss | 5 | -1.49 | +| INJ | 03-18 14:00 | 03-19 02:00 | trailing_stop | 12 | -0.40 | +| OP | 03-18 23:00 | 03-19 02:00 | stop_loss | 3 | -1.49 | +| RENDER | 03-18 21:00 | 03-19 02:00 | stop_loss | 5 | -1.49 | +| SUI | 03-18 14:00 | 03-19 02:00 | trailing_stop | 12 | -0.29 | +| ETC | 03-18 14:00 | 03-19 03:00 | take_profit | 13 | +1.49 | +| PEPE | 03-18 21:00 | 03-19 04:00 | stop_loss | 7 | -1.49 | +| AVAX | 03-18 14:00 | 03-19 05:00 | trailing_stop | 15 | -0.22 | +| LTC | 03-18 15:00 | 03-19 05:00 | trailing_stop | 14 | -0.44 | +| TIA | 03-18 22:00 | 03-19 05:00 | stop_loss | 7 | -1.49 | +| ATOM | 03-18 22:00 | 03-19 06:00 | stop_loss | 8 | -1.49 | +| UNI | 03-18 16:00 | 03-19 06:00 | trailing_stop | 14 | -0.54 | +| SHIB | 03-18 21:00 | 03-19 07:00 | stop_loss | 10 | -1.49 | +| FET | 03-19 08:00 | 03-19 09:00 | take_profit | 1 | +1.49 | +| RENDER | 03-19 08:00 | 03-19 10:00 | stop_loss | 2 | -1.49 | +| APT | 03-19 11:00 | 03-19 12:00 | stop_loss | 1 | -1.49 | +| FET | 03-19 11:00 | 03-19 12:00 | stop_loss | 1 | -1.49 | +| INJ | 03-19 07:00 | 03-19 12:00 | stop_loss | 5 | -1.49 | +| NEAR | 03-19 07:00 | 03-19 12:00 | stop_loss | 5 | -1.49 | +| OP | 03-19 07:00 | 03-19 12:00 | trailing_stop | 5 | -0.56 | +| RENDER | 03-19 10:00 | 03-19 12:00 | stop_loss | 2 | -1.49 | +| TIA | 03-19 07:00 | 03-19 12:00 | stop_loss | 5 | -1.49 | +| APT | 03-19 12:00 | 03-19 13:00 | stop_loss | 1 | -1.49 | +| ATOM | 03-19 10:00 | 03-19 13:00 | stop_loss | 3 | -1.49 | +| FET | 03-19 12:00 | 03-19 13:00 | stop_loss | 1 | -1.49 | +| FIL | 03-19 12:00 | 03-19 13:00 | stop_loss | 1 | -1.49 | +| WIF | 03-19 12:00 | 03-19 13:00 | take_profit | 1 | +1.49 | +| APT | 03-19 13:00 | 03-19 14:00 | stop_loss | 1 | -1.49 | +| APT | 03-19 14:00 | 03-19 15:00 | stop_loss | 1 | -1.49 | +| ARB | 03-19 12:00 | 03-19 15:00 | stop_loss | 3 | -1.49 | +| AVAX | 03-19 12:00 | 03-19 15:00 | stop_loss | 3 | -1.49 | +| BONK | 03-19 12:00 | 03-19 15:00 | stop_loss | 3 | -1.49 | +| FET | 03-19 14:00 | 03-19 15:00 | stop_loss | 1 | -1.49 | +| FIL | 03-19 13:00 | 03-19 15:00 | stop_loss | 2 | -1.49 | +| NEAR | 03-19 12:00 | 03-19 15:00 | stop_loss | 3 | -1.49 | +| SEI | 03-19 12:00 | 03-19 15:00 | stop_loss | 3 | -1.49 | +| UNI | 03-19 12:00 | 03-19 15:00 | stop_loss | 3 | -1.49 | +| FET | 03-19 15:00 | 03-19 16:00 | trailing_stop | 1 | -0.44 | +| PEPE | 03-19 12:00 | 03-19 16:00 | stop_loss | 4 | -1.49 | +| TIA | 03-19 12:00 | 03-19 16:00 | stop_loss | 4 | -1.49 | +| FIL | 03-19 15:00 | 03-19 17:00 | stop_loss | 2 | -1.49 | +| SHIB | 03-19 12:00 | 03-19 17:00 | stop_loss | 5 | -1.49 | +| BONK | 03-19 16:00 | 03-19 19:00 | take_profit | 3 | +1.49 | +| PEPE | 03-19 16:00 | 03-19 19:00 | take_profit | 3 | +1.49 | +| RENDER | 03-19 12:00 | 03-19 19:00 | take_profit | 7 | +1.49 | +| INJ | 03-19 12:00 | 03-19 20:00 | take_profit | 8 | +1.49 | +| ATOM | 03-19 20:00 | 03-19 22:00 | stop_loss | 2 | -1.49 | +| KAS | 03-19 21:00 | 03-19 22:00 | stop_loss | 1 | -1.49 | +| APT | 03-19 15:00 | 03-20 01:00 | take_profit | 10 | +1.49 | +| SUI | 03-19 12:00 | 03-20 01:00 | take_profit | 13 | +1.49 | +| FIL | 03-19 22:00 | 03-20 02:00 | take_profit | 4 | +1.49 | +| ETC | 03-19 12:00 | 03-20 03:00 | take_profit | 15 | +1.49 | +| LTC | 03-19 12:00 | 03-20 04:00 | take_profit | 16 | +1.49 | +| BONK | 03-19 23:00 | 03-20 05:00 | take_profit | 6 | +1.49 | +| KAS | 03-20 04:00 | 03-20 06:00 | stop_loss | 2 | -1.49 | +| TRX | 03-19 15:00 | 03-20 10:00 | take_profit | 19 | +1.49 | +| KAS | 03-20 16:00 | 03-20 17:00 | stop_loss | 1 | -1.49 | +| KAS | 03-20 17:00 | 03-20 18:00 | take_profit | 1 | +1.49 | +| NEAR | 03-20 15:00 | 03-20 18:00 | stop_loss | 3 | -1.49 | +| SEI | 03-20 13:00 | 03-20 18:00 | stop_loss | 5 | -1.49 | +| FET | 03-20 18:00 | 03-20 19:00 | stop_loss | 1 | -1.49 | +| INJ | 03-20 18:00 | 03-20 19:00 | stop_loss | 1 | -1.49 | +| FET | 03-20 19:00 | 03-20 20:00 | stop_loss | 1 | -1.49 | +| INJ | 03-20 19:00 | 03-20 20:00 | stop_loss | 1 | -1.49 | +| FET | 03-20 20:00 | 03-20 21:00 | take_profit | 1 | +1.49 | +| RENDER | 03-20 18:00 | 03-20 21:00 | trailing_stop | 3 | -0.70 | +| LTC | 03-20 18:00 | 03-21 05:00 | take_profit | 11 | +1.49 | +| SEI | 03-20 18:00 | 03-21 08:00 | trailing_stop | 14 | -0.29 | +| TIA | 03-20 14:00 | 03-21 12:00 | trailing_stop | 22 | -0.60 | +| KAS | 03-21 11:00 | 03-21 13:00 | stop_loss | 2 | -1.49 | +| UNI | 03-20 15:00 | 03-21 13:00 | trailing_stop | 22 | -0.08 | +| OP | 03-21 11:00 | 03-21 15:00 | trailing_stop | 4 | +0.25 | +| KAS | 03-21 13:00 | 03-21 16:00 | trailing_stop | 3 | -0.39 | +| APT | 03-21 22:00 | 03-21 23:00 | stop_loss | 1 | -1.49 | +| ARB | 03-20 18:00 | 03-21 23:00 | stop_loss | 29 | -1.49 | +| ATOM | 03-21 20:00 | 03-21 23:00 | stop_loss | 3 | -1.49 | +| AVAX | 03-21 20:00 | 03-21 23:00 | stop_loss | 3 | -1.49 | +| FET | 03-21 21:00 | 03-21 23:00 | stop_loss | 2 | -1.49 | +| LTC | 03-21 14:00 | 03-21 23:00 | stop_loss | 9 | -1.49 | +| NEAR | 03-20 18:00 | 03-21 23:00 | stop_loss | 29 | -1.49 | +| SUI | 03-20 18:00 | 03-21 23:00 | stop_loss | 29 | -1.49 | +| UNI | 03-21 14:00 | 03-21 23:00 | stop_loss | 9 | -1.49 | +| APT | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| ARB | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| AVAX | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| BONK | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| ETC | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| INJ | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| KAS | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| LTC | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| NEAR | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| OP | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| PEPE | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| RENDER | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| SEI | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| SHIB | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| SUI | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| TIA | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| UNI | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| WIF | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| APT | 03-22 00:00 | 03-22 01:00 | stop_loss | 1 | -1.49 | +| WIF | 03-22 00:00 | 03-22 02:00 | trailing_stop | 2 | +0.07 | +| KAS | 03-22 01:00 | 03-22 04:00 | take_profit | 3 | +1.49 | +| ATOM | 03-21 23:00 | 03-22 06:00 | trailing_stop | 7 | -0.71 | +| INJ | 03-22 00:00 | 03-22 06:00 | stop_loss | 6 | -1.49 | +| BONK | 03-22 00:00 | 03-22 07:00 | trailing_stop | 7 | -0.17 | +| OP | 03-22 00:00 | 03-22 07:00 | trailing_stop | 7 | -0.53 | +| PEPE | 03-22 00:00 | 03-22 07:00 | trailing_stop | 7 | -0.45 | +| SUI | 03-22 00:00 | 03-22 07:00 | trailing_stop | 7 | -0.65 | +| APT | 03-22 01:00 | 03-22 08:00 | stop_loss | 7 | -1.49 | +| ARB | 03-22 00:00 | 03-22 08:00 | stop_loss | 8 | -1.49 | +| AVAX | 03-22 00:00 | 03-22 08:00 | stop_loss | 8 | -1.49 | +| SEI | 03-22 00:00 | 03-22 08:00 | stop_loss | 8 | -1.49 | +| SHIB | 03-22 00:00 | 03-22 08:00 | stop_loss | 8 | -1.49 | +| TIA | 03-22 00:00 | 03-22 08:00 | trailing_stop | 8 | -0.59 | +| UNI | 03-22 00:00 | 03-22 08:00 | stop_loss | 8 | -1.49 | +| ETC | 03-22 00:00 | 03-22 09:00 | confirmed_bearish_exit | 9 | -0.49 | +| FET | 03-22 09:00 | 03-22 10:00 | stop_loss | 1 | -1.49 | +| LTC | 03-22 00:00 | 03-22 10:00 | stop_loss | 10 | -1.49 | +| NEAR | 03-22 07:00 | 03-22 11:00 | stop_loss | 4 | -1.49 | +| APT | 03-22 10:00 | 03-22 12:00 | stop_loss | 2 | -1.49 | +| FET | 03-22 11:00 | 03-22 12:00 | stop_loss | 1 | -1.49 | +| FET | 03-22 12:00 | 03-22 13:00 | trailing_stop | 1 | -0.18 | +| TRX | 03-22 07:00 | 03-22 14:00 | take_profit | 7 | +1.49 | +| INJ | 03-22 16:00 | 03-22 18:00 | stop_loss | 2 | -1.49 | +| PEPE | 03-22 17:00 | 03-22 18:00 | stop_loss | 1 | -1.49 | +| SUI | 03-22 17:00 | 03-22 18:00 | stop_loss | 1 | -1.49 | +| UNI | 03-22 18:00 | 03-22 19:00 | stop_loss | 1 | -1.49 | +| LTC | 03-22 16:00 | 03-22 20:00 | stop_loss | 4 | -1.49 | +| FIL | 03-22 19:00 | 03-22 21:00 | stop_loss | 2 | -1.49 | +| NEAR | 03-22 18:00 | 03-22 21:00 | stop_loss | 3 | -1.49 | +| PEPE | 03-22 19:00 | 03-22 21:00 | stop_loss | 2 | -1.49 | +| RENDER | 03-22 18:00 | 03-22 21:00 | stop_loss | 3 | -1.49 | +| SUI | 03-22 19:00 | 03-22 21:00 | stop_loss | 2 | -1.49 | +| TIA | 03-22 18:00 | 03-22 21:00 | stop_loss | 3 | -1.49 | +| FIL | 03-22 21:00 | 03-22 22:00 | stop_loss | 1 | -1.49 | +| SUI | 03-22 21:00 | 03-22 22:00 | trailing_stop | 1 | -0.60 | +| APT | 03-22 23:00 | 03-23 00:00 | trailing_stop | 1 | +0.00 | +| SHIB | 03-22 21:00 | 03-23 01:00 | take_profit | 4 | +1.49 | +| BONK | 03-22 21:00 | 03-23 02:00 | take_profit | 5 | +1.49 | +| FIL | 03-22 22:00 | 03-23 02:00 | take_profit | 4 | +1.49 | +| FIL | 03-23 03:00 | 03-23 06:00 | stop_loss | 3 | -1.49 | +| KAS | 03-23 03:00 | 03-23 06:00 | stop_loss | 3 | -1.49 | +| LTC | 03-22 20:00 | 03-23 06:00 | trailing_stop | 10 | -0.63 | +| ATOM | 03-23 06:00 | 03-23 07:00 | stop_loss | 1 | -1.49 | +| FIL | 03-23 06:00 | 03-23 07:00 | stop_loss | 1 | -1.49 | +| KAS | 03-23 06:00 | 03-23 07:00 | stop_loss | 1 | -1.49 | +| SUI | 03-23 06:00 | 03-23 07:00 | stop_loss | 1 | -1.49 | +| KAS | 03-23 07:00 | 03-23 08:00 | stop_loss | 1 | -1.49 | +| NEAR | 03-23 06:00 | 03-23 09:00 | stop_loss | 3 | -1.49 | +| KAS | 03-23 08:00 | 03-23 11:00 | take_profit | 3 | +1.49 | +| RENDER | 03-23 09:00 | 03-23 11:00 | take_profit | 2 | +1.49 | +| TRX | 03-23 03:00 | 03-23 15:00 | stop_loss | 12 | -1.49 | +| SUI | 03-24 04:00 | 03-24 07:00 | trailing_stop | 3 | -0.03 | +| TRX | 03-23 15:00 | 03-24 12:00 | take_profit | 21 | +1.49 | +| FIL | 03-24 10:00 | 03-24 14:00 | trailing_stop | 4 | -0.48 | +| ATOM | 03-24 03:00 | 03-24 15:00 | trailing_stop | 12 | -0.58 | +| APT | 03-24 15:00 | 03-24 16:00 | trailing_stop | 1 | -0.30 | +| INJ | 03-24 11:00 | 03-24 16:00 | stop_loss | 5 | -1.49 | +| AVAX | 03-24 13:00 | 03-24 17:00 | stop_loss | 4 | -1.49 | +| INJ | 03-24 16:00 | 03-24 17:00 | stop_loss | 1 | -1.49 | +| ARB | 03-24 17:00 | 03-24 20:00 | take_profit | 3 | +1.49 | +| AVAX | 03-24 17:00 | 03-24 20:00 | take_profit | 3 | +1.49 | +| ETC | 03-24 11:00 | 03-24 20:00 | take_profit | 9 | +1.49 | +| FIL | 03-24 17:00 | 03-24 20:00 | take_profit | 3 | +1.49 | +| INJ | 03-24 17:00 | 03-24 20:00 | take_profit | 3 | +1.49 | +| TIA | 03-24 17:00 | 03-24 20:00 | take_profit | 3 | +1.49 | +| UNI | 03-24 17:00 | 03-24 20:00 | take_profit | 3 | +1.49 | +| NEAR | 03-24 17:00 | 03-24 22:00 | trailing_stop | 5 | -0.03 | +| ATOM | 03-24 15:00 | 03-25 04:00 | take_profit | 13 | +1.49 | +| NEAR | 03-24 23:00 | 03-25 06:00 | stop_loss | 7 | -1.49 | +| KAS | 03-25 02:00 | 03-25 07:00 | take_profit | 5 | +1.49 | +| TRX | 03-24 21:00 | 03-25 17:00 | take_profit | 20 | +1.49 | +| APT | 03-25 13:00 | 03-25 21:00 | stop_loss | 8 | -1.49 | +| WIF | 03-25 21:00 | 03-25 23:00 | stop_loss | 2 | -1.49 | +| ATOM | 03-25 15:00 | 03-26 02:00 | stop_loss | 11 | -1.49 | +| BONK | 03-25 22:00 | 03-26 02:00 | stop_loss | 4 | -1.49 | +| PEPE | 03-25 20:00 | 03-26 02:00 | stop_loss | 6 | -1.49 | +| FIL | 03-26 01:00 | 03-26 03:00 | stop_loss | 2 | -1.49 | +| KAS | 03-26 01:00 | 03-26 03:00 | stop_loss | 2 | -1.49 | +| SHIB | 03-25 15:00 | 03-26 03:00 | stop_loss | 12 | -1.49 | +| APT | 03-26 02:00 | 03-26 05:00 | stop_loss | 3 | -1.49 | +| ARB | 03-26 04:00 | 03-26 05:00 | stop_loss | 1 | -1.49 | +| AVAX | 03-26 02:00 | 03-26 05:00 | stop_loss | 3 | -1.49 | +| BONK | 03-26 03:00 | 03-26 05:00 | stop_loss | 2 | -1.49 | +| INJ | 03-26 04:00 | 03-26 05:00 | stop_loss | 1 | -1.49 | +| LTC | 03-26 03:00 | 03-26 05:00 | stop_loss | 2 | -1.49 | +| NEAR | 03-26 03:00 | 03-26 05:00 | stop_loss | 2 | -1.49 | +| OP | 03-26 03:00 | 03-26 05:00 | stop_loss | 2 | -1.49 | +| PEPE | 03-26 04:00 | 03-26 05:00 | stop_loss | 1 | -1.49 | +| RENDER | 03-26 03:00 | 03-26 05:00 | stop_loss | 2 | -1.49 | +| SEI | 03-26 03:00 | 03-26 05:00 | stop_loss | 2 | -1.49 | +| SUI | 03-26 03:00 | 03-26 05:00 | stop_loss | 2 | -1.49 | +| TIA | 03-26 02:00 | 03-26 05:00 | stop_loss | 3 | -1.49 | +| UNI | 03-26 02:00 | 03-26 05:00 | stop_loss | 3 | -1.49 | +| ETC | 03-26 04:00 | 03-26 06:00 | stop_loss | 2 | -1.49 | +| FET | 03-26 05:00 | 03-26 06:00 | stop_loss | 1 | -1.49 | +| FIL | 03-26 03:00 | 03-26 06:00 | stop_loss | 3 | -1.49 | +| RENDER | 03-26 05:00 | 03-26 06:00 | stop_loss | 1 | -1.49 | +| SHIB | 03-26 04:00 | 03-26 06:00 | stop_loss | 2 | -1.49 | +| ARB | 03-26 05:00 | 03-26 08:00 | stop_loss | 3 | -1.49 | +| KAS | 03-26 06:00 | 03-26 08:00 | stop_loss | 2 | -1.49 | +| OP | 03-26 05:00 | 03-26 08:00 | stop_loss | 3 | -1.49 | +| ARB | 03-26 08:00 | 03-26 09:00 | stop_loss | 1 | -1.49 | +| AVAX | 03-26 05:00 | 03-26 09:00 | stop_loss | 4 | -1.49 | +| BONK | 03-26 05:00 | 03-26 09:00 | stop_loss | 4 | -1.49 | +| ETC | 03-26 06:00 | 03-26 09:00 | stop_loss | 3 | -1.49 | +| FET | 03-26 06:00 | 03-26 09:00 | stop_loss | 3 | -1.49 | +| FIL | 03-26 06:00 | 03-26 09:00 | stop_loss | 3 | -1.49 | +| INJ | 03-26 05:00 | 03-26 09:00 | stop_loss | 4 | -1.49 | +| KAS | 03-26 08:00 | 03-26 09:00 | stop_loss | 1 | -1.49 | +| LTC | 03-26 05:00 | 03-26 09:00 | stop_loss | 4 | -1.49 | +| NEAR | 03-26 05:00 | 03-26 09:00 | stop_loss | 4 | -1.49 | +| OP | 03-26 08:00 | 03-26 09:00 | stop_loss | 1 | -1.49 | +| PEPE | 03-26 05:00 | 03-26 09:00 | stop_loss | 4 | -1.49 | +| RENDER | 03-26 06:00 | 03-26 09:00 | stop_loss | 3 | -1.49 | +| SEI | 03-26 05:00 | 03-26 09:00 | stop_loss | 4 | -1.49 | +| SHIB | 03-26 06:00 | 03-26 09:00 | stop_loss | 3 | -1.49 | +| SUI | 03-26 06:00 | 03-26 09:00 | stop_loss | 3 | -1.49 | +| TIA | 03-26 05:00 | 03-26 09:00 | stop_loss | 4 | -1.49 | +| UNI | 03-26 05:00 | 03-26 09:00 | stop_loss | 4 | -1.49 | +| ATOM | 03-26 04:00 | 03-26 10:00 | stop_loss | 6 | -1.49 | +| SEI | 03-26 09:00 | 03-26 10:00 | stop_loss | 1 | -1.49 | +| ETC | 03-26 09:00 | 03-26 12:00 | stop_loss | 3 | -1.49 | +| FET | 03-26 10:00 | 03-26 12:00 | take_profit | 2 | +1.49 | +| UNI | 03-26 09:00 | 03-26 12:00 | stop_loss | 3 | -1.49 | +| APT | 03-26 05:00 | 03-26 13:00 | take_profit | 8 | +1.49 | +| TRX | 03-26 10:00 | 03-26 14:00 | take_profit | 4 | +1.49 | +| AVAX | 03-26 09:00 | 03-26 15:00 | stop_loss | 6 | -1.49 | +| BONK | 03-26 09:00 | 03-26 15:00 | trailing_stop | 6 | -0.70 | +| FET | 03-26 14:00 | 03-26 15:00 | stop_loss | 1 | -1.49 | +| FIL | 03-26 09:00 | 03-26 15:00 | stop_loss | 6 | -1.49 | +| KAS | 03-26 09:00 | 03-26 15:00 | stop_loss | 6 | -1.49 | +| NEAR | 03-26 14:00 | 03-26 15:00 | stop_loss | 1 | -1.49 | +| RENDER | 03-26 14:00 | 03-26 15:00 | stop_loss | 1 | -1.49 | +| SUI | 03-26 09:00 | 03-26 15:00 | stop_loss | 6 | -1.49 | +| TIA | 03-26 09:00 | 03-26 16:00 | stop_loss | 7 | -1.49 | +| ARB | 03-26 09:00 | 03-26 17:00 | trailing_stop | 8 | -0.65 | +| LTC | 03-26 09:00 | 03-26 17:00 | stop_loss | 8 | -1.49 | +| OP | 03-26 09:00 | 03-26 17:00 | take_profit | 8 | +1.49 | +| PEPE | 03-26 09:00 | 03-26 17:00 | stop_loss | 8 | -1.49 | +| SHIB | 03-26 11:00 | 03-26 17:00 | trailing_stop | 6 | -0.57 | +| WIF | 03-26 16:00 | 03-26 17:00 | stop_loss | 1 | -1.49 | +| FET | 03-26 15:00 | 03-26 18:00 | stop_loss | 3 | -1.49 | +| INJ | 03-26 09:00 | 03-26 18:00 | stop_loss | 9 | -1.49 | +| NEAR | 03-26 15:00 | 03-26 18:00 | stop_loss | 3 | -1.49 | +| RENDER | 03-26 15:00 | 03-26 18:00 | stop_loss | 3 | -1.49 | +| OP | 03-26 18:00 | 03-26 19:00 | stop_loss | 1 | -1.49 | +| KAS | 03-26 17:00 | 03-26 20:00 | take_profit | 3 | +1.49 | +| WIF | 03-26 17:00 | 03-26 21:00 | take_profit | 4 | +1.49 | +| AVAX | 03-26 23:00 | 03-27 04:00 | stop_loss | 5 | -1.49 | +| FET | 03-27 03:00 | 03-27 04:00 | stop_loss | 1 | -1.49 | +| FIL | 03-26 19:00 | 03-27 04:00 | trailing_stop | 9 | -0.35 | +| APT | 03-27 04:00 | 03-27 07:00 | confirmed_bearish_exit | 3 | +0.19 | +| ATOM | 03-26 23:00 | 03-27 08:00 | trailing_stop | 9 | +0.05 | +| ETC | 03-26 23:00 | 03-27 08:00 | stop_loss | 9 | -1.49 | +| FIL | 03-27 04:00 | 03-27 08:00 | stop_loss | 4 | -1.49 | +| KAS | 03-27 00:00 | 03-27 08:00 | trailing_stop | 8 | -0.22 | +| SEI | 03-27 04:00 | 03-27 08:00 | stop_loss | 4 | -1.49 | +| UNI | 03-26 22:00 | 03-27 08:00 | stop_loss | 10 | -1.49 | +| SEI | 03-27 08:00 | 03-27 09:00 | stop_loss | 1 | -1.49 | +| APT | 03-27 09:00 | 03-27 10:00 | stop_loss | 1 | -1.49 | +| ARB | 03-27 09:00 | 03-27 10:00 | stop_loss | 1 | -1.49 | +| INJ | 03-27 09:00 | 03-27 10:00 | stop_loss | 1 | -1.49 | +| SEI | 03-27 09:00 | 03-27 10:00 | stop_loss | 1 | -1.49 | +| WIF | 03-27 09:00 | 03-27 10:00 | stop_loss | 1 | -1.49 | +| TIA | 03-27 10:00 | 03-27 11:00 | stop_loss | 1 | -1.49 | +| FET | 03-27 10:00 | 03-27 12:00 | stop_loss | 2 | -1.49 | +| KAS | 03-27 10:00 | 03-27 12:00 | stop_loss | 2 | -1.49 | +| NEAR | 03-27 10:00 | 03-27 12:00 | stop_loss | 2 | -1.49 | +| RENDER | 03-27 10:00 | 03-27 12:00 | stop_loss | 2 | -1.49 | +| RENDER | 03-27 12:00 | 03-27 13:00 | stop_loss | 1 | -1.49 | +| OP | 03-27 10:00 | 03-27 14:00 | stop_loss | 4 | -1.49 | +| KAS | 03-27 13:00 | 03-27 15:00 | take_profit | 2 | +1.49 | +| RENDER | 03-27 13:00 | 03-27 15:00 | take_profit | 2 | +1.49 | +| TIA | 03-27 11:00 | 03-27 15:00 | stop_loss | 4 | -1.49 | +| WIF | 03-27 10:00 | 03-27 15:00 | stop_loss | 5 | -1.49 | +| SEI | 03-27 10:00 | 03-27 16:00 | stop_loss | 6 | -1.49 | +| APT | 03-27 10:00 | 03-27 18:00 | stop_loss | 8 | -1.49 | +| ARB | 03-27 10:00 | 03-27 18:00 | stop_loss | 8 | -1.49 | +| AVAX | 03-27 10:00 | 03-27 18:00 | trailing_stop | 8 | -0.67 | +| LTC | 03-27 10:00 | 03-27 18:00 | trailing_stop | 8 | -0.35 | +| SUI | 03-27 10:00 | 03-27 18:00 | stop_loss | 8 | -1.49 | +| NEAR | 03-27 12:00 | 03-27 20:00 | stop_loss | 8 | -1.49 | +| INJ | 03-27 10:00 | 03-27 23:00 | confirmed_bearish_exit | 13 | -0.29 | +| PEPE | 03-27 10:00 | 03-27 23:00 | trailing_stop | 13 | -0.46 | +| FIL | 03-27 10:00 | 03-28 01:00 | stop_loss | 15 | -1.49 | +| BONK | 03-27 10:00 | 03-28 04:00 | stop_loss | 18 | -1.49 | +| UNI | 03-27 10:00 | 03-28 05:00 | confirmed_bearish_exit | 19 | -0.42 | +| AVAX | 03-27 21:00 | 03-28 07:00 | confirmed_bearish_exit | 10 | +0.15 | +| ETC | 03-27 10:00 | 03-28 07:00 | take_profit | 21 | +1.49 | +| BONK | 03-28 04:00 | 03-28 10:00 | take_profit | 6 | +1.49 | +| SHIB | 03-27 10:00 | 03-28 10:00 | take_profit | 24 | +1.49 | +| ATOM | 03-27 20:00 | 03-28 12:00 | trailing_stop | 16 | -0.28 | +| LTC | 03-28 05:00 | 03-28 13:00 | take_profit | 8 | +1.49 | +| NEAR | 03-28 09:00 | 03-28 13:00 | take_profit | 4 | +1.49 | +| TRX | 03-27 21:00 | 03-28 13:00 | take_profit | 16 | +1.49 | +| APT | 03-28 02:00 | 03-28 17:00 | stop_loss | 15 | -1.49 | +| APT | 03-28 21:00 | 03-28 23:00 | stop_loss | 2 | -1.49 | +| FIL | 03-28 21:00 | 03-28 23:00 | stop_loss | 2 | -1.49 | +| ATOM | 03-28 22:00 | 03-29 00:00 | stop_loss | 2 | -1.49 | +| KAS | 03-28 21:00 | 03-29 03:00 | take_profit | 6 | +1.49 | +| BONK | 03-29 04:00 | 03-29 08:00 | stop_loss | 4 | -1.49 | +| SUI | 03-28 23:00 | 03-29 09:00 | trailing_stop | 10 | -0.49 | +| NEAR | 03-29 05:00 | 03-29 10:00 | stop_loss | 5 | -1.49 | +| OP | 03-28 23:00 | 03-29 10:00 | stop_loss | 11 | -1.49 | +| PEPE | 03-29 05:00 | 03-29 10:00 | stop_loss | 5 | -1.49 | +| SEI | 03-28 23:00 | 03-29 10:00 | trailing_stop | 11 | -0.59 | +| SHIB | 03-29 05:00 | 03-29 10:00 | stop_loss | 5 | -1.49 | +| UNI | 03-29 08:00 | 03-29 10:00 | stop_loss | 2 | -1.49 | +| APT | 03-28 23:00 | 03-29 12:00 | stop_loss | 13 | -1.49 | +| TIA | 03-28 23:00 | 03-29 12:00 | stop_loss | 13 | -1.49 | +| WIF | 03-29 03:00 | 03-29 12:00 | stop_loss | 9 | -1.49 | +| ATOM | 03-29 00:00 | 03-29 13:00 | stop_loss | 13 | -1.49 | +| BONK | 03-29 08:00 | 03-29 13:00 | stop_loss | 5 | -1.49 | +| ETC | 03-28 23:00 | 03-29 13:00 | stop_loss | 14 | -1.49 | +| FIL | 03-29 10:00 | 03-29 13:00 | stop_loss | 3 | -1.49 | +| INJ | 03-28 23:00 | 03-29 13:00 | stop_loss | 14 | -1.49 | +| LTC | 03-29 06:00 | 03-29 13:00 | stop_loss | 7 | -1.49 | +| RENDER | 03-29 03:00 | 03-29 13:00 | stop_loss | 10 | -1.49 | +| KAS | 03-29 13:00 | 03-29 14:00 | stop_loss | 1 | -1.49 | +| KAS | 03-29 14:00 | 03-29 18:00 | trailing_stop | 4 | -0.67 | +| SEI | 03-29 17:00 | 03-29 19:00 | stop_loss | 2 | -1.49 | +| ARB | 03-29 19:00 | 03-29 22:00 | stop_loss | 3 | -1.49 | +| AVAX | 03-29 17:00 | 03-29 22:00 | stop_loss | 5 | -1.49 | +| LTC | 03-29 15:00 | 03-29 22:00 | stop_loss | 7 | -1.49 | +| SEI | 03-29 19:00 | 03-29 22:00 | stop_loss | 3 | -1.49 | +| TIA | 03-29 17:00 | 03-29 22:00 | stop_loss | 5 | -1.49 | +| APT | 03-29 22:00 | 03-30 00:00 | take_profit | 2 | +1.49 | +| ARB | 03-29 22:00 | 03-30 00:00 | take_profit | 2 | +1.49 | +| ATOM | 03-29 22:00 | 03-30 00:00 | take_profit | 2 | +1.49 | +| AVAX | 03-29 22:00 | 03-30 00:00 | take_profit | 2 | +1.49 | +| BONK | 03-29 22:00 | 03-30 00:00 | take_profit | 2 | +1.49 | +| FIL | 03-29 22:00 | 03-30 00:00 | take_profit | 2 | +1.49 | +| INJ | 03-29 22:00 | 03-30 00:00 | take_profit | 2 | +1.49 | +| RENDER | 03-29 22:00 | 03-30 00:00 | take_profit | 2 | +1.49 | +| WIF | 03-29 22:00 | 03-30 00:00 | take_profit | 2 | +1.49 | +| FET | 03-30 01:00 | 03-30 02:00 | take_profit | 1 | +1.49 | +| LTC | 03-29 22:00 | 03-30 02:00 | take_profit | 4 | +1.49 | +| SEI | 03-29 22:00 | 03-30 02:00 | take_profit | 4 | +1.49 | +| APT | 03-30 16:00 | 03-30 17:00 | stop_loss | 1 | -1.49 | +| APT | 03-30 17:00 | 03-30 18:00 | stop_loss | 1 | -1.49 | +| KAS | 03-30 16:00 | 03-30 18:00 | stop_loss | 2 | -1.49 | +| SEI | 03-30 17:00 | 03-30 18:00 | stop_loss | 1 | -1.49 | +| SEI | 03-30 18:00 | 03-30 21:00 | take_profit | 3 | +1.49 | +| APT | 03-30 18:00 | 03-30 23:00 | stop_loss | 5 | -1.49 | +| FET | 03-30 18:00 | 03-30 23:00 | stop_loss | 5 | -1.49 | +| INJ | 03-30 21:00 | 03-30 23:00 | stop_loss | 2 | -1.49 | +| RENDER | 03-30 21:00 | 03-30 23:00 | stop_loss | 2 | -1.49 | +| SHIB | 03-30 21:00 | 03-31 00:00 | stop_loss | 3 | -1.49 | +| AVAX | 03-30 22:00 | 03-31 01:00 | take_profit | 3 | +1.49 | +| ETC | 03-30 21:00 | 03-31 01:00 | trailing_stop | 4 | -0.69 | +| FIL | 03-30 19:00 | 03-31 01:00 | take_profit | 6 | +1.49 | +| INJ | 03-30 23:00 | 03-31 01:00 | take_profit | 2 | +1.49 | +| LTC | 03-30 18:00 | 03-31 01:00 | trailing_stop | 7 | -0.55 | +| NEAR | 03-30 18:00 | 03-31 01:00 | take_profit | 7 | +1.49 | +| PEPE | 03-30 19:00 | 03-31 01:00 | take_profit | 6 | +1.49 | +| SUI | 03-30 22:00 | 03-31 01:00 | take_profit | 3 | +1.49 | +| TIA | 03-30 18:00 | 03-31 01:00 | take_profit | 7 | +1.49 | +| UNI | 03-30 22:00 | 03-31 01:00 | take_profit | 3 | +1.49 | +| FET | 03-31 02:00 | 03-31 03:00 | stop_loss | 1 | -1.49 | +| KAS | 03-30 18:00 | 03-31 03:00 | trailing_stop | 9 | -0.65 | +| APT | 03-31 02:00 | 03-31 09:00 | stop_loss | 7 | -1.49 | +| KAS | 03-31 03:00 | 03-31 09:00 | stop_loss | 6 | -1.49 | +| KAS | 03-31 10:00 | 03-31 11:00 | trailing_stop | 1 | -0.10 | +| TRX | 03-30 12:00 | 03-31 11:00 | stop_loss | 23 | -1.49 | +| PEPE | 03-31 09:00 | 03-31 13:00 | take_profit | 4 | +1.49 | +| SEI | 03-31 14:00 | 03-31 15:00 | stop_loss | 1 | -1.49 | +| TRX | 03-31 11:00 | 03-31 15:00 | stop_loss | 4 | -1.49 | +| APT | 03-31 15:00 | 03-31 16:00 | trailing_stop | 1 | -0.26 | +| BONK | 03-31 15:00 | 03-31 16:00 | take_profit | 1 | +1.49 | +| SUI | 03-31 15:00 | 03-31 16:00 | take_profit | 1 | +1.49 | +| TIA | 03-31 15:00 | 03-31 16:00 | trailing_stop | 1 | -0.18 | +| SEI | 03-31 15:00 | 03-31 17:00 | take_profit | 2 | +1.49 | +| KAS | 04-01 10:00 | 04-01 11:00 | stop_loss | 1 | -1.49 | +| RENDER | 04-01 22:00 | 04-02 00:00 | trailing_stop | 2 | +0.03 | +| SEI | 04-01 23:00 | 04-02 00:00 | stop_loss | 1 | -1.49 | +| APT | 04-01 23:00 | 04-02 01:00 | stop_loss | 2 | -1.49 | +| AVAX | 04-01 20:00 | 04-02 01:00 | stop_loss | 5 | -1.49 | +| ETC | 04-01 20:00 | 04-02 01:00 | stop_loss | 5 | -1.49 | +| INJ | 04-01 20:00 | 04-02 01:00 | stop_loss | 5 | -1.49 | +| LTC | 04-01 23:00 | 04-02 01:00 | stop_loss | 2 | -1.49 | +| NEAR | 04-01 20:00 | 04-02 01:00 | stop_loss | 5 | -1.49 | +| PEPE | 04-01 20:00 | 04-02 01:00 | stop_loss | 5 | -1.49 | +| UNI | 04-01 23:00 | 04-02 01:00 | stop_loss | 2 | -1.49 | +| APT | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| ARB | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| ATOM | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| AVAX | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| BONK | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| ETC | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| FET | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| FIL | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| INJ | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| KAS | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| NEAR | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| SEI | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| SUI | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| TIA | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| UNI | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| WIF | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| FET | 04-02 02:00 | 04-02 03:00 | stop_loss | 1 | -1.49 | +| FIL | 04-02 02:00 | 04-02 03:00 | stop_loss | 1 | -1.49 | +| RENDER | 04-02 02:00 | 04-02 03:00 | stop_loss | 1 | -1.49 | +| SHIB | 04-02 01:00 | 04-02 03:00 | stop_loss | 2 | -1.49 | +| UNI | 04-02 02:00 | 04-02 03:00 | stop_loss | 1 | -1.49 | +| ATOM | 04-02 02:00 | 04-02 04:00 | stop_loss | 2 | -1.49 | +| AVAX | 04-02 02:00 | 04-02 04:00 | stop_loss | 2 | -1.49 | +| FET | 04-02 03:00 | 04-02 04:00 | trailing_stop | 1 | -0.30 | +| NEAR | 04-02 02:00 | 04-02 04:00 | stop_loss | 2 | -1.49 | +| UNI | 04-02 03:00 | 04-02 04:00 | stop_loss | 1 | -1.49 | +| BONK | 04-02 02:00 | 04-02 05:00 | stop_loss | 3 | -1.49 | +| LTC | 04-02 02:00 | 04-02 05:00 | stop_loss | 3 | -1.49 | +| SHIB | 04-02 03:00 | 04-02 05:00 | stop_loss | 2 | -1.49 | +| TIA | 04-02 02:00 | 04-02 05:00 | stop_loss | 3 | -1.49 | +| WIF | 04-02 02:00 | 04-02 05:00 | trailing_stop | 3 | -0.29 | +| AVAX | 04-02 04:00 | 04-02 07:00 | stop_loss | 3 | -1.49 | +| ETC | 04-02 02:00 | 04-02 07:00 | confirmed_bearish_exit | 5 | +0.22 | +| RENDER | 04-02 03:00 | 04-02 07:00 | take_profit | 4 | +1.49 | +| FIL | 04-02 03:00 | 04-02 08:00 | trailing_stop | 5 | -0.68 | +| SEI | 04-02 02:00 | 04-02 08:00 | stop_loss | 6 | -1.49 | +| SUI | 04-02 02:00 | 04-02 08:00 | stop_loss | 6 | -1.49 | +| APT | 04-02 02:00 | 04-02 09:00 | stop_loss | 7 | -1.49 | +| ATOM | 04-02 04:00 | 04-02 10:00 | trailing_stop | 6 | -0.56 | +| KAS | 04-02 02:00 | 04-02 10:00 | stop_loss | 8 | -1.49 | +| NEAR | 04-02 04:00 | 04-02 10:00 | trailing_stop | 6 | -0.61 | +| PEPE | 04-02 04:00 | 04-02 10:00 | trailing_stop | 6 | -0.19 | +| LTC | 04-02 05:00 | 04-02 11:00 | stop_loss | 6 | -1.49 | +| OP | 04-02 02:00 | 04-02 12:00 | stop_loss | 10 | -1.49 | +| ARB | 04-02 02:00 | 04-02 13:00 | stop_loss | 11 | -1.49 | +| INJ | 04-02 02:00 | 04-02 13:00 | stop_loss | 11 | -1.49 | +| UNI | 04-02 04:00 | 04-02 13:00 | stop_loss | 9 | -1.49 | +| UNI | 04-02 13:00 | 04-02 14:00 | trailing_stop | 1 | +0.07 | +| AVAX | 04-02 14:00 | 04-02 15:00 | stop_loss | 1 | -1.49 | +| LTC | 04-02 17:00 | 04-03 04:00 | take_profit | 11 | +1.49 | +| UNI | 04-03 00:00 | 04-03 05:00 | take_profit | 5 | +1.49 | +| KAS | 04-03 02:00 | 04-03 06:00 | trailing_stop | 4 | -0.67 | +| PEPE | 04-03 23:00 | 04-04 01:00 | stop_loss | 2 | -1.49 | +| SHIB | 04-03 23:00 | 04-04 01:00 | stop_loss | 2 | -1.49 | +| WIF | 04-03 23:00 | 04-04 01:00 | stop_loss | 2 | -1.49 | +| APT | 04-03 17:00 | 04-04 02:00 | stop_loss | 9 | -1.49 | +| BONK | 04-03 20:00 | 04-04 02:00 | stop_loss | 6 | -1.49 | +| TIA | 04-03 23:00 | 04-04 06:00 | confirmed_bearish_exit | 7 | -0.46 | +| UNI | 04-03 19:00 | 04-04 08:00 | stop_loss | 13 | -1.49 | +| PEPE | 04-04 01:00 | 04-04 14:00 | stop_loss | 13 | -1.49 | +| SEI | 04-04 06:00 | 04-04 14:00 | stop_loss | 8 | -1.49 | +| SHIB | 04-04 01:00 | 04-04 14:00 | stop_loss | 13 | -1.49 | +| WIF | 04-04 01:00 | 04-04 14:00 | stop_loss | 13 | -1.49 | +| TRX | 03-31 15:00 | 04-04 15:00 | trailing_stop | 96 | +0.04 | +| BONK | 04-04 02:00 | 04-04 19:00 | take_profit | 17 | +1.49 | +| TIA | 04-04 08:00 | 04-04 21:00 | trailing_stop | 13 | -0.47 | +| FIL | 04-04 01:00 | 04-04 23:00 | trailing_stop | 22 | -0.65 | +| SEI | 04-04 18:00 | 04-05 01:00 | trailing_stop | 7 | -0.40 | +| FET | 04-05 01:00 | 04-05 02:00 | stop_loss | 1 | -1.49 | +| RENDER | 04-04 16:00 | 04-05 04:00 | take_profit | 12 | +1.49 | +| ARB | 04-03 22:00 | 04-05 05:00 | stop_loss | 31 | -1.49 | +| FIL | 04-05 02:00 | 04-05 05:00 | stop_loss | 3 | -1.49 | +| INJ | 04-03 23:00 | 04-05 05:00 | trailing_stop | 30 | -0.64 | +| TIA | 04-05 01:00 | 04-05 05:00 | stop_loss | 4 | -1.49 | +| UNI | 04-04 09:00 | 04-05 05:00 | stop_loss | 20 | -1.49 | +| APT | 04-05 05:00 | 04-05 06:00 | stop_loss | 1 | -1.49 | +| ATOM | 04-03 22:00 | 04-05 06:00 | trailing_stop | 32 | +0.04 | +| BONK | 04-05 04:00 | 04-05 06:00 | stop_loss | 2 | -1.49 | +| FET | 04-05 02:00 | 04-05 06:00 | stop_loss | 4 | -1.49 | +| INJ | 04-05 05:00 | 04-05 06:00 | stop_loss | 1 | -1.49 | +| PEPE | 04-05 05:00 | 04-05 06:00 | stop_loss | 1 | -1.49 | +| OP | 04-05 05:00 | 04-05 07:00 | stop_loss | 2 | -1.49 | +| SEI | 04-05 04:00 | 04-05 07:00 | stop_loss | 3 | -1.49 | +| BONK | 04-05 06:00 | 04-05 08:00 | stop_loss | 2 | -1.49 | +| INJ | 04-05 06:00 | 04-05 09:00 | confirmed_bearish_exit | 3 | +0.11 | +| FIL | 04-05 05:00 | 04-05 11:00 | stop_loss | 6 | -1.49 | +| WIF | 04-05 07:00 | 04-05 11:00 | confirmed_bearish_exit | 4 | -0.67 | +| APT | 04-05 06:00 | 04-05 12:00 | stop_loss | 6 | -1.49 | +| ARB | 04-05 05:00 | 04-05 12:00 | stop_loss | 7 | -1.49 | +| BONK | 04-05 08:00 | 04-05 12:00 | stop_loss | 4 | -1.49 | +| FET | 04-05 06:00 | 04-05 12:00 | stop_loss | 6 | -1.49 | +| KAS | 04-05 03:00 | 04-05 12:00 | stop_loss | 9 | -1.49 | +| RENDER | 04-05 07:00 | 04-05 12:00 | stop_loss | 5 | -1.49 | +| SEI | 04-05 07:00 | 04-05 12:00 | stop_loss | 5 | -1.49 | +| SUI | 04-05 05:00 | 04-05 12:00 | stop_loss | 7 | -1.49 | +| ATOM | 04-05 07:00 | 04-05 13:00 | stop_loss | 6 | -1.49 | +| ETC | 04-05 07:00 | 04-05 13:00 | trailing_stop | 6 | -0.60 | +| OP | 04-05 07:00 | 04-05 13:00 | stop_loss | 6 | -1.49 | +| PEPE | 04-05 06:00 | 04-05 13:00 | stop_loss | 7 | -1.49 | +| ETC | 04-05 13:00 | 04-05 15:00 | take_profit | 2 | +1.49 | +| FET | 04-05 14:00 | 04-05 15:00 | take_profit | 1 | +1.49 | +| NEAR | 04-05 07:00 | 04-05 19:00 | stop_loss | 12 | -1.49 | +| TIA | 04-05 05:00 | 04-05 21:00 | stop_loss | 16 | -1.49 | +| ARB | 04-05 15:00 | 04-05 22:00 | trailing_stop | 7 | -0.07 | +| AVAX | 04-05 06:00 | 04-05 22:00 | trailing_stop | 16 | -0.12 | +| FIL | 04-05 14:00 | 04-05 22:00 | take_profit | 8 | +1.49 | +| PEPE | 04-05 17:00 | 04-05 22:00 | trailing_stop | 5 | +0.13 | +| RENDER | 04-05 12:00 | 04-05 22:00 | trailing_stop | 10 | -0.03 | +| SHIB | 04-05 07:00 | 04-05 22:00 | trailing_stop | 15 | -0.05 | +| SUI | 04-05 12:00 | 04-05 22:00 | trailing_stop | 10 | -0.24 | +| UNI | 04-05 05:00 | 04-05 22:00 | trailing_stop | 17 | -0.53 | +| LTC | 04-05 05:00 | 04-05 23:00 | take_profit | 18 | +1.49 | +| SEI | 04-05 19:00 | 04-05 23:00 | take_profit | 4 | +1.49 | +| APT | 04-05 15:00 | 04-06 00:00 | take_profit | 9 | +1.49 | +| FET | 04-06 15:00 | 04-06 18:00 | stop_loss | 3 | -1.49 | +| PEPE | 04-06 16:00 | 04-06 19:00 | stop_loss | 3 | -1.49 | +| FET | 04-06 19:00 | 04-06 21:00 | stop_loss | 2 | -1.49 | +| RENDER | 04-06 18:00 | 04-06 21:00 | stop_loss | 3 | -1.49 | +| AVAX | 04-06 16:00 | 04-06 22:00 | stop_loss | 6 | -1.49 | +| ETC | 04-06 15:00 | 04-06 22:00 | stop_loss | 7 | -1.49 | +| PEPE | 04-06 19:00 | 04-06 22:00 | stop_loss | 3 | -1.49 | +| RENDER | 04-06 21:00 | 04-06 22:00 | stop_loss | 1 | -1.49 | +| SHIB | 04-06 19:00 | 04-06 22:00 | stop_loss | 3 | -1.49 | +| AVAX | 04-06 22:00 | 04-06 23:00 | stop_loss | 1 | -1.49 | +| BONK | 04-06 22:00 | 04-06 23:00 | stop_loss | 1 | -1.49 | +| FET | 04-06 21:00 | 04-06 23:00 | stop_loss | 2 | -1.49 | +| LTC | 04-06 21:00 | 04-06 23:00 | stop_loss | 2 | -1.49 | +| NEAR | 04-06 21:00 | 04-06 23:00 | stop_loss | 2 | -1.49 | +| TIA | 04-06 22:00 | 04-06 23:00 | stop_loss | 1 | -1.49 | +| WIF | 04-06 22:00 | 04-06 23:00 | stop_loss | 1 | -1.49 | +| AVAX | 04-06 23:00 | 04-07 00:00 | stop_loss | 1 | -1.49 | +| AVAX | 04-07 00:00 | 04-07 01:00 | stop_loss | 1 | -1.49 | +| ETC | 04-06 22:00 | 04-07 01:00 | stop_loss | 3 | -1.49 | +| NEAR | 04-06 23:00 | 04-07 01:00 | stop_loss | 2 | -1.49 | +| SUI | 04-06 22:00 | 04-07 01:00 | stop_loss | 3 | -1.49 | +| APT | 04-06 22:00 | 04-07 02:00 | stop_loss | 4 | -1.49 | +| ARB | 04-06 22:00 | 04-07 02:00 | stop_loss | 4 | -1.49 | +| INJ | 04-06 23:00 | 04-07 02:00 | stop_loss | 3 | -1.49 | +| OP | 04-06 22:00 | 04-07 02:00 | stop_loss | 4 | -1.49 | +| UNI | 04-06 22:00 | 04-07 02:00 | stop_loss | 4 | -1.49 | +| FET | 04-06 23:00 | 04-07 03:00 | trailing_stop | 4 | -0.26 | +| ETC | 04-07 01:00 | 04-07 04:00 | stop_loss | 3 | -1.49 | +| SEI | 04-06 23:00 | 04-07 04:00 | stop_loss | 5 | -1.49 | +| ATOM | 04-06 22:00 | 04-07 05:00 | stop_loss | 7 | -1.49 | +| AVAX | 04-07 01:00 | 04-07 05:00 | stop_loss | 4 | -1.49 | +| FET | 04-07 04:00 | 04-07 08:00 | take_profit | 4 | +1.49 | +| RENDER | 04-06 22:00 | 04-07 08:00 | take_profit | 10 | +1.49 | +| FIL | 04-07 01:00 | 04-07 09:00 | take_profit | 8 | +1.49 | +| PEPE | 04-06 22:00 | 04-07 09:00 | take_profit | 11 | +1.49 | +| SUI | 04-07 01:00 | 04-07 09:00 | take_profit | 8 | +1.49 | +| ARB | 04-07 06:00 | 04-07 10:00 | trailing_stop | 4 | -0.55 | +| ETC | 04-07 04:00 | 04-07 10:00 | stop_loss | 6 | -1.49 | +| KAS | 04-06 22:00 | 04-07 10:00 | take_profit | 12 | +1.49 | +| TIA | 04-06 23:00 | 04-07 10:00 | trailing_stop | 11 | -0.56 | +| TRX | 04-06 06:00 | 04-07 10:00 | stop_loss | 28 | -1.49 | +| UNI | 04-07 09:00 | 04-07 10:00 | stop_loss | 1 | -1.49 | +| WIF | 04-06 23:00 | 04-07 10:00 | trailing_stop | 11 | -0.15 | +| AVAX | 04-07 09:00 | 04-07 11:00 | stop_loss | 2 | -1.49 | +| INJ | 04-07 08:00 | 04-07 11:00 | stop_loss | 3 | -1.49 | +| NEAR | 04-07 01:00 | 04-07 11:00 | trailing_stop | 10 | -0.59 | +| OP | 04-07 08:00 | 04-07 11:00 | stop_loss | 3 | -1.49 | +| APT | 04-07 09:00 | 04-07 12:00 | stop_loss | 3 | -1.49 | +| BONK | 04-06 23:00 | 04-07 12:00 | stop_loss | 13 | -1.49 | +| LTC | 04-06 23:00 | 04-07 12:00 | stop_loss | 13 | -1.49 | +| PEPE | 04-07 10:00 | 04-07 12:00 | stop_loss | 2 | -1.49 | +| SHIB | 04-06 22:00 | 04-07 12:00 | trailing_stop | 14 | -0.70 | +| SUI | 04-07 10:00 | 04-07 12:00 | stop_loss | 2 | -1.49 | +| TIA | 04-07 10:00 | 04-07 12:00 | stop_loss | 2 | -1.49 | +| UNI | 04-07 10:00 | 04-07 12:00 | stop_loss | 2 | -1.49 | +| WIF | 04-07 10:00 | 04-07 12:00 | stop_loss | 2 | -1.49 | +| ETC | 04-07 14:00 | 04-07 15:00 | trailing_stop | 1 | -0.46 | +| SEI | 04-07 15:00 | 04-07 17:00 | trailing_stop | 2 | -0.20 | +| BONK | 04-08 12:00 | 04-08 14:00 | stop_loss | 2 | -1.49 | +| ETC | 04-08 12:00 | 04-08 14:00 | stop_loss | 2 | -1.49 | +| PEPE | 04-08 12:00 | 04-08 14:00 | stop_loss | 2 | -1.49 | +| SHIB | 04-08 12:00 | 04-08 14:00 | stop_loss | 2 | -1.49 | +| UNI | 04-08 13:00 | 04-08 14:00 | stop_loss | 1 | -1.49 | +| WIF | 04-08 12:00 | 04-08 14:00 | stop_loss | 2 | -1.49 | +| ATOM | 04-08 13:00 | 04-08 15:00 | trailing_stop | 2 | +0.03 | +| BONK | 04-08 14:00 | 04-08 15:00 | trailing_stop | 1 | -0.67 | +| SUI | 04-08 14:00 | 04-08 15:00 | trailing_stop | 1 | -0.47 | +| WIF | 04-08 14:00 | 04-08 16:00 | trailing_stop | 2 | -0.21 | +| AVAX | 04-08 14:00 | 04-08 18:00 | trailing_stop | 4 | -0.69 | +| INJ | 04-08 14:00 | 04-08 18:00 | stop_loss | 4 | -1.49 | +| PEPE | 04-08 14:00 | 04-08 18:00 | stop_loss | 4 | -1.49 | +| SUI | 04-08 15:00 | 04-08 18:00 | stop_loss | 3 | -1.49 | +| UNI | 04-08 14:00 | 04-08 18:00 | trailing_stop | 4 | -0.70 | +| ARB | 04-08 18:00 | 04-08 19:00 | trailing_stop | 1 | -0.61 | +| ETC | 04-08 14:00 | 04-08 22:00 | stop_loss | 8 | -1.49 | +| FET | 04-08 18:00 | 04-08 22:00 | stop_loss | 4 | -1.49 | +| WIF | 04-08 18:00 | 04-08 22:00 | take_profit | 4 | +1.49 | +| APT | 04-08 14:00 | 04-08 23:00 | stop_loss | 9 | -1.49 | +| AVAX | 04-08 18:00 | 04-08 23:00 | stop_loss | 5 | -1.49 | +| BONK | 04-08 18:00 | 04-08 23:00 | stop_loss | 5 | -1.49 | +| FIL | 04-08 18:00 | 04-08 23:00 | stop_loss | 5 | -1.49 | +| INJ | 04-08 18:00 | 04-08 23:00 | trailing_stop | 5 | -0.58 | +| LTC | 04-08 14:00 | 04-08 23:00 | stop_loss | 9 | -1.49 | +| OP | 04-08 14:00 | 04-08 23:00 | stop_loss | 9 | -1.49 | +| PEPE | 04-08 18:00 | 04-08 23:00 | trailing_stop | 5 | -0.61 | +| SHIB | 04-08 14:00 | 04-08 23:00 | stop_loss | 9 | -1.49 | +| SUI | 04-08 18:00 | 04-08 23:00 | stop_loss | 5 | -1.49 | +| TIA | 04-08 19:00 | 04-08 23:00 | stop_loss | 4 | -1.49 | +| UNI | 04-08 18:00 | 04-08 23:00 | stop_loss | 5 | -1.49 | +| AVAX | 04-09 00:00 | 04-09 06:00 | confirmed_bearish_exit | 6 | +0.44 | +| NEAR | 04-08 23:00 | 04-09 09:00 | trailing_stop | 10 | -0.24 | +| SEI | 04-09 07:00 | 04-09 12:00 | stop_loss | 5 | -1.49 | +| FIL | 04-08 23:00 | 04-09 14:00 | stop_loss | 15 | -1.49 | +| SHIB | 04-09 01:00 | 04-09 14:00 | stop_loss | 13 | -1.49 | +| APT | 04-09 07:00 | 04-09 15:00 | take_profit | 8 | +1.49 | +| BONK | 04-09 08:00 | 04-09 15:00 | take_profit | 7 | +1.49 | +| ETC | 04-09 07:00 | 04-09 15:00 | stop_loss | 8 | -1.49 | +| SUI | 04-09 11:00 | 04-09 15:00 | take_profit | 4 | +1.49 | +| TIA | 04-09 01:00 | 04-09 15:00 | take_profit | 14 | +1.49 | +| UNI | 04-09 09:00 | 04-09 15:00 | trailing_stop | 6 | -0.49 | +| KAS | 04-08 23:00 | 04-09 16:00 | take_profit | 17 | +1.49 | +| TRX | 04-07 10:00 | 04-10 10:00 | take_profit | 72 | +1.49 | +| FET | 04-10 07:00 | 04-10 11:00 | stop_loss | 4 | -1.49 | +| KAS | 04-10 07:00 | 04-10 12:00 | take_profit | 5 | +1.49 | +| SHIB | 04-10 07:00 | 04-10 14:00 | trailing_stop | 7 | +0.06 | +| TIA | 04-10 11:00 | 04-10 14:00 | take_profit | 3 | +1.49 | +| WIF | 04-10 10:00 | 04-10 14:00 | trailing_stop | 4 | -0.03 | +| LTC | 04-10 10:00 | 04-11 01:00 | trailing_stop | 15 | -0.10 | +| ATOM | 04-11 00:00 | 04-11 10:00 | stop_loss | 10 | -1.49 | +| RENDER | 04-11 00:00 | 04-11 10:00 | take_profit | 10 | +1.49 | +| INJ | 04-11 06:00 | 04-11 11:00 | confirmed_bearish_exit | 5 | -0.10 | +| KAS | 04-11 10:00 | 04-11 11:00 | stop_loss | 1 | -1.49 | +| KAS | 04-11 11:00 | 04-11 12:00 | stop_loss | 1 | -1.49 | +| OP | 04-11 00:00 | 04-11 12:00 | stop_loss | 12 | -1.49 | +| PEPE | 04-11 09:00 | 04-11 12:00 | stop_loss | 3 | -1.49 | +| AVAX | 04-11 04:00 | 04-11 13:00 | stop_loss | 9 | -1.49 | +| BONK | 04-11 08:00 | 04-11 13:00 | stop_loss | 5 | -1.49 | +| FET | 04-11 09:00 | 04-11 13:00 | stop_loss | 4 | -1.49 | +| FIL | 04-11 04:00 | 04-11 13:00 | stop_loss | 9 | -1.49 | +| LTC | 04-11 04:00 | 04-11 13:00 | stop_loss | 9 | -1.49 | +| TIA | 04-11 10:00 | 04-11 13:00 | stop_loss | 3 | -1.49 | +| WIF | 04-11 10:00 | 04-11 13:00 | stop_loss | 3 | -1.49 | +| NEAR | 04-11 05:00 | 04-11 15:00 | take_profit | 10 | +1.49 | +| APT | 04-11 06:00 | 04-11 16:00 | take_profit | 10 | +1.49 | +| SEI | 04-11 13:00 | 04-11 16:00 | trailing_stop | 3 | -0.28 | +| SUI | 04-11 06:00 | 04-11 16:00 | take_profit | 10 | +1.49 | +| TIA | 04-11 13:00 | 04-11 16:00 | take_profit | 3 | +1.49 | +| ETC | 04-11 05:00 | 04-11 18:00 | take_profit | 13 | +1.49 | +| SHIB | 04-11 08:00 | 04-11 18:00 | take_profit | 10 | +1.49 | +| UNI | 04-11 08:00 | 04-11 18:00 | trailing_stop | 10 | +0.05 | +| TRX | 04-10 12:00 | 04-11 19:00 | stop_loss | 31 | -1.49 | +| ARB | 04-11 17:00 | 04-11 20:00 | trailing_stop | 3 | -0.34 | +| ARB | 04-12 01:00 | 04-12 04:00 | stop_loss | 3 | -1.49 | +| INJ | 04-12 01:00 | 04-12 04:00 | stop_loss | 3 | -1.49 | +| RENDER | 04-12 01:00 | 04-12 04:00 | stop_loss | 3 | -1.49 | +| SEI | 04-12 01:00 | 04-12 06:00 | stop_loss | 5 | -1.49 | +| TIA | 04-12 01:00 | 04-12 07:00 | stop_loss | 6 | -1.49 | +| APT | 04-12 01:00 | 04-12 08:00 | stop_loss | 7 | -1.49 | +| ARB | 04-12 04:00 | 04-12 08:00 | stop_loss | 4 | -1.49 | +| INJ | 04-12 04:00 | 04-12 08:00 | confirmed_bearish_exit | 4 | -0.46 | +| SHIB | 04-12 01:00 | 04-12 09:00 | confirmed_bearish_exit | 8 | -0.14 | +| ATOM | 04-12 03:00 | 04-12 10:00 | stop_loss | 7 | -1.49 | +| AVAX | 04-12 01:00 | 04-12 10:00 | stop_loss | 9 | -1.49 | +| FET | 04-12 09:00 | 04-12 10:00 | stop_loss | 1 | -1.49 | +| RENDER | 04-12 04:00 | 04-12 10:00 | stop_loss | 6 | -1.49 | +| FIL | 04-12 01:00 | 04-12 11:00 | stop_loss | 10 | -1.49 | +| UNI | 04-12 01:00 | 04-12 11:00 | stop_loss | 10 | -1.49 | +| SUI | 04-12 01:00 | 04-12 13:00 | stop_loss | 12 | -1.49 | +| BONK | 04-12 01:00 | 04-12 14:00 | stop_loss | 13 | -1.49 | +| WIF | 04-12 06:00 | 04-12 14:00 | stop_loss | 8 | -1.49 | +| ARB | 04-12 12:00 | 04-12 15:00 | stop_loss | 3 | -1.49 | +| ETC | 04-12 01:00 | 04-12 15:00 | stop_loss | 14 | -1.49 | +| FET | 04-12 10:00 | 04-12 17:00 | trailing_stop | 7 | -0.22 | +| NEAR | 04-12 06:00 | 04-12 18:00 | take_profit | 12 | +1.49 | +| KAS | 04-12 19:00 | 04-12 22:00 | stop_loss | 3 | -1.49 | +| LTC | 04-12 01:00 | 04-12 22:00 | stop_loss | 21 | -1.49 | +| SHIB | 04-12 10:00 | 04-12 22:00 | stop_loss | 12 | -1.49 | +| TIA | 04-12 13:00 | 04-12 22:00 | stop_loss | 9 | -1.49 | +| UNI | 04-12 19:00 | 04-13 08:00 | trailing_stop | 13 | -0.69 | +| ETC | 04-12 19:00 | 04-13 11:00 | trailing_stop | 16 | -0.32 | +| RENDER | 04-13 07:00 | 04-13 11:00 | confirmed_bearish_exit | 4 | -0.39 | +| ATOM | 04-13 08:00 | 04-13 13:00 | take_profit | 5 | +1.49 | +| UNI | 04-13 10:00 | 04-13 13:00 | take_profit | 3 | +1.49 | +| FIL | 04-13 07:00 | 04-13 14:00 | take_profit | 7 | +1.49 | +| KAS | 04-12 22:00 | 04-13 14:00 | take_profit | 16 | +1.49 | +| TRX | 04-13 04:00 | 04-13 14:00 | take_profit | 10 | +1.49 | +| LTC | 04-13 07:00 | 04-13 19:00 | trailing_stop | 12 | -0.68 | +| SHIB | 04-12 22:00 | 04-13 19:00 | trailing_stop | 21 | -0.16 | +| AVAX | 04-14 12:00 | 04-14 13:00 | trailing_stop | 1 | -0.39 | +| OP | 04-14 12:00 | 04-14 13:00 | trailing_stop | 1 | -0.30 | +| RENDER | 04-14 12:00 | 04-14 13:00 | trailing_stop | 1 | -0.23 | +| SEI | 04-14 12:00 | 04-14 13:00 | trailing_stop | 1 | -0.27 | +| WIF | 04-14 12:00 | 04-14 13:00 | trailing_stop | 1 | -0.24 | +| APT | 04-14 12:00 | 04-14 15:00 | trailing_stop | 3 | +0.08 | +| ARB | 04-14 13:00 | 04-14 15:00 | stop_loss | 2 | -1.49 | +| FET | 04-14 12:00 | 04-14 15:00 | stop_loss | 3 | -1.49 | +| ARB | 04-14 15:00 | 04-14 16:00 | trailing_stop | 1 | -0.35 | +| NEAR | 04-14 14:00 | 04-14 16:00 | stop_loss | 2 | -1.49 | +| FIL | 04-14 12:00 | 04-14 17:00 | stop_loss | 5 | -1.49 | +| INJ | 04-14 17:00 | 04-14 18:00 | stop_loss | 1 | -1.49 | +| RENDER | 04-14 16:00 | 04-14 18:00 | stop_loss | 2 | -1.49 | +| UNI | 04-14 16:00 | 04-14 18:00 | stop_loss | 2 | -1.49 | +| FET | 04-14 15:00 | 04-14 19:00 | stop_loss | 4 | -1.49 | +| INJ | 04-14 18:00 | 04-14 21:00 | confirmed_bearish_exit | 3 | +0.38 | +| NEAR | 04-14 16:00 | 04-14 22:00 | stop_loss | 6 | -1.49 | +| WIF | 04-14 18:00 | 04-15 00:00 | take_profit | 6 | +1.49 | +| ARB | 04-14 18:00 | 04-15 01:00 | take_profit | 7 | +1.49 | +| BONK | 04-14 18:00 | 04-15 01:00 | take_profit | 7 | +1.49 | +| FIL | 04-14 18:00 | 04-15 01:00 | trailing_stop | 7 | +0.07 | +| RENDER | 04-14 18:00 | 04-15 01:00 | take_profit | 7 | +1.49 | +| TIA | 04-14 18:00 | 04-15 01:00 | take_profit | 7 | +1.49 | +| UNI | 04-14 18:00 | 04-15 01:00 | take_profit | 7 | +1.49 | +| APT | 04-14 18:00 | 04-15 04:00 | take_profit | 10 | +1.49 | +| FET | 04-15 03:00 | 04-15 05:00 | stop_loss | 2 | -1.49 | +| OP | 04-14 18:00 | 04-15 05:00 | take_profit | 11 | +1.49 | +| PEPE | 04-14 18:00 | 04-15 05:00 | trailing_stop | 11 | -0.59 | +| NEAR | 04-15 02:00 | 04-15 06:00 | stop_loss | 4 | -1.49 | +| PEPE | 04-15 05:00 | 04-15 07:00 | stop_loss | 2 | -1.49 | +| SEI | 04-14 18:00 | 04-15 07:00 | stop_loss | 13 | -1.49 | +| SUI | 04-14 18:00 | 04-15 07:00 | trailing_stop | 13 | -0.07 | +| TRX | 04-13 23:00 | 04-15 12:00 | take_profit | 37 | +1.49 | +| ETC | 04-14 18:00 | 04-15 14:00 | confirmed_bearish_exit | 20 | +1.41 | +| SHIB | 04-14 18:00 | 04-15 14:00 | take_profit | 20 | +1.49 | +| ATOM | 04-14 18:00 | 04-15 15:00 | trailing_stop | 21 | -0.49 | +| NEAR | 04-16 13:00 | 04-16 14:00 | stop_loss | 1 | -1.49 | +| RENDER | 04-16 14:00 | 04-16 15:00 | trailing_stop | 1 | -0.08 | +| TRX | 04-16 07:00 | 04-16 19:00 | take_profit | 12 | +1.49 | +| FIL | 04-17 05:00 | 04-17 06:00 | trailing_stop | 1 | -0.68 | +| BONK | 04-17 08:00 | 04-17 10:00 | stop_loss | 2 | -1.49 | +| WIF | 04-17 09:00 | 04-17 10:00 | stop_loss | 1 | -1.49 | +| PEPE | 04-17 10:00 | 04-17 11:00 | take_profit | 1 | +1.49 | +| BONK | 04-17 10:00 | 04-17 12:00 | take_profit | 2 | +1.49 | +| SHIB | 04-17 08:00 | 04-17 12:00 | take_profit | 4 | +1.49 | +| NEAR | 04-17 10:00 | 04-17 13:00 | take_profit | 3 | +1.49 | +| TRX | 04-17 03:00 | 04-17 19:00 | stop_loss | 16 | -1.49 | +| BONK | 04-18 03:00 | 04-18 05:00 | confirmed_bearish_exit | 2 | +0.42 | +| SUI | 04-18 03:00 | 04-18 05:00 | confirmed_bearish_exit | 2 | +0.26 | +| ARB | 04-18 02:00 | 04-18 06:00 | take_profit | 4 | +1.49 | +| KAS | 04-18 03:00 | 04-18 06:00 | stop_loss | 3 | -1.49 | +| SEI | 04-18 03:00 | 04-18 06:00 | confirmed_bearish_exit | 3 | +0.53 | +| APT | 04-18 04:00 | 04-18 08:00 | stop_loss | 4 | -1.49 | +| AVAX | 04-18 03:00 | 04-18 08:00 | stop_loss | 5 | -1.49 | +| BONK | 04-18 07:00 | 04-18 08:00 | stop_loss | 1 | -1.49 | +| FET | 04-18 03:00 | 04-18 08:00 | trailing_stop | 5 | -0.36 | +| INJ | 04-18 06:00 | 04-18 08:00 | stop_loss | 2 | -1.49 | +| NEAR | 04-18 03:00 | 04-18 08:00 | trailing_stop | 5 | -0.29 | +| OP | 04-18 03:00 | 04-18 08:00 | trailing_stop | 5 | -0.20 | +| PEPE | 04-18 03:00 | 04-18 08:00 | stop_loss | 5 | -1.49 | +| RENDER | 04-18 03:00 | 04-18 08:00 | stop_loss | 5 | -1.49 | +| SEI | 04-18 07:00 | 04-18 08:00 | stop_loss | 1 | -1.49 | +| SHIB | 04-18 03:00 | 04-18 08:00 | stop_loss | 5 | -1.49 | +| SUI | 04-18 06:00 | 04-18 08:00 | stop_loss | 2 | -1.49 | +| UNI | 04-18 03:00 | 04-18 08:00 | stop_loss | 5 | -1.49 | +| WIF | 04-18 03:00 | 04-18 08:00 | stop_loss | 5 | -1.49 | +| ETC | 04-18 03:00 | 04-18 09:00 | stop_loss | 6 | -1.49 | +| FIL | 04-18 08:00 | 04-18 09:00 | stop_loss | 1 | -1.49 | +| KAS | 04-18 08:00 | 04-18 09:00 | stop_loss | 1 | -1.49 | +| RENDER | 04-18 08:00 | 04-18 09:00 | stop_loss | 1 | -1.49 | +| SUI | 04-18 08:00 | 04-18 09:00 | stop_loss | 1 | -1.49 | +| APT | 04-18 08:00 | 04-18 10:00 | stop_loss | 2 | -1.49 | +| AVAX | 04-18 08:00 | 04-18 10:00 | stop_loss | 2 | -1.49 | +| FET | 04-18 08:00 | 04-18 10:00 | stop_loss | 2 | -1.49 | +| INJ | 04-18 08:00 | 04-18 10:00 | stop_loss | 2 | -1.49 | +| KAS | 04-18 09:00 | 04-18 10:00 | stop_loss | 1 | -1.49 | +| OP | 04-18 09:00 | 04-18 10:00 | stop_loss | 1 | -1.49 | +| SEI | 04-18 08:00 | 04-18 10:00 | stop_loss | 2 | -1.49 | +| ATOM | 04-18 09:00 | 04-18 11:00 | stop_loss | 2 | -1.49 | +| BONK | 04-18 10:00 | 04-18 11:00 | stop_loss | 1 | -1.49 | +| FIL | 04-18 10:00 | 04-18 11:00 | stop_loss | 1 | -1.49 | +| OP | 04-18 10:00 | 04-18 11:00 | stop_loss | 1 | -1.49 | +| SEI | 04-18 10:00 | 04-18 11:00 | stop_loss | 1 | -1.49 | +| SHIB | 04-18 10:00 | 04-18 11:00 | stop_loss | 1 | -1.49 | +| SUI | 04-18 10:00 | 04-18 11:00 | stop_loss | 1 | -1.49 | +| UNI | 04-18 10:00 | 04-18 11:00 | stop_loss | 1 | -1.49 | +| WIF | 04-18 10:00 | 04-18 11:00 | stop_loss | 1 | -1.49 | +| APT | 04-18 10:00 | 04-18 13:00 | stop_loss | 3 | -1.49 | +| BONK | 04-18 11:00 | 04-18 13:00 | stop_loss | 2 | -1.49 | +| LTC | 04-18 03:00 | 04-18 13:00 | stop_loss | 10 | -1.49 | +| OP | 04-18 11:00 | 04-18 13:00 | stop_loss | 2 | -1.49 | +| TIA | 04-18 12:00 | 04-18 13:00 | stop_loss | 1 | -1.49 | +| WIF | 04-18 11:00 | 04-18 13:00 | stop_loss | 2 | -1.49 | +| BONK | 04-18 13:00 | 04-18 17:00 | stop_loss | 4 | -1.49 | +| FET | 04-18 16:00 | 04-18 17:00 | stop_loss | 1 | -1.49 | +| INJ | 04-18 10:00 | 04-18 17:00 | stop_loss | 7 | -1.49 | +| SHIB | 04-18 11:00 | 04-18 17:00 | stop_loss | 6 | -1.49 | +| ARB | 04-18 10:00 | 04-18 18:00 | stop_loss | 8 | -1.49 | +| ATOM | 04-18 11:00 | 04-18 18:00 | stop_loss | 7 | -1.49 | +| AVAX | 04-18 10:00 | 04-18 18:00 | stop_loss | 8 | -1.49 | +| ETC | 04-18 10:00 | 04-18 18:00 | stop_loss | 8 | -1.49 | +| FET | 04-18 17:00 | 04-18 18:00 | stop_loss | 1 | -1.49 | +| FIL | 04-18 11:00 | 04-18 18:00 | stop_loss | 7 | -1.49 | +| KAS | 04-18 10:00 | 04-18 18:00 | stop_loss | 8 | -1.49 | +| LTC | 04-18 13:00 | 04-18 18:00 | stop_loss | 5 | -1.49 | +| SEI | 04-18 11:00 | 04-18 18:00 | stop_loss | 7 | -1.49 | +| SUI | 04-18 11:00 | 04-18 18:00 | stop_loss | 7 | -1.49 | +| UNI | 04-18 11:00 | 04-18 18:00 | stop_loss | 7 | -1.49 | +| ETC | 04-18 18:00 | 04-18 22:00 | confirmed_bearish_exit | 4 | +0.33 | +| FET | 04-18 18:00 | 04-18 23:00 | trailing_stop | 5 | -0.56 | +| NEAR | 04-18 17:00 | 04-18 23:00 | stop_loss | 6 | -1.49 | +| APT | 04-18 22:00 | 04-19 00:00 | stop_loss | 2 | -1.49 | +| AVAX | 04-18 22:00 | 04-19 00:00 | stop_loss | 2 | -1.49 | +| UNI | 04-18 22:00 | 04-19 00:00 | stop_loss | 2 | -1.49 | +| INJ | 04-18 18:00 | 04-19 02:00 | stop_loss | 8 | -1.49 | +| SHIB | 04-18 23:00 | 04-19 02:00 | stop_loss | 3 | -1.49 | +| LTC | 04-18 18:00 | 04-19 07:00 | stop_loss | 13 | -1.49 | +| UNI | 04-19 02:00 | 04-19 07:00 | stop_loss | 5 | -1.49 | +| TRX | 04-19 04:00 | 04-19 09:00 | take_profit | 5 | +1.49 | +| FET | 04-19 09:00 | 04-19 11:00 | trailing_stop | 2 | -0.27 | +| RENDER | 04-19 08:00 | 04-19 11:00 | trailing_stop | 3 | -0.13 | +| APT | 04-19 10:00 | 04-19 12:00 | take_profit | 2 | +1.49 | +| PEPE | 04-19 09:00 | 04-19 13:00 | take_profit | 4 | +1.49 | +| AVAX | 04-19 07:00 | 04-19 15:00 | trailing_stop | 8 | -0.53 | +| OP | 04-19 11:00 | 04-19 15:00 | trailing_stop | 4 | -0.59 | +| FIL | 04-19 12:00 | 04-19 17:00 | stop_loss | 5 | -1.49 | +| UNI | 04-19 11:00 | 04-19 17:00 | stop_loss | 6 | -1.49 | +| LTC | 04-19 07:00 | 04-19 18:00 | stop_loss | 11 | -1.49 | +| AVAX | 04-19 17:00 | 04-19 22:00 | stop_loss | 5 | -1.49 | +| LTC | 04-19 18:00 | 04-19 22:00 | stop_loss | 4 | -1.49 | +| TIA | 04-19 17:00 | 04-19 22:00 | stop_loss | 5 | -1.49 | +| APT | 04-19 22:00 | 04-20 00:00 | trailing_stop | 2 | -0.56 | +| FET | 04-19 23:00 | 04-20 02:00 | stop_loss | 3 | -1.49 | +| APT | 04-20 02:00 | 04-20 05:00 | stop_loss | 3 | -1.49 | +| OP | 04-20 03:00 | 04-20 05:00 | stop_loss | 2 | -1.49 | +| SUI | 04-20 03:00 | 04-20 05:00 | stop_loss | 2 | -1.49 | +| TIA | 04-20 02:00 | 04-20 05:00 | stop_loss | 3 | -1.49 | +| ATOM | 04-19 22:00 | 04-20 07:00 | take_profit | 9 | +1.49 | +| AVAX | 04-19 22:00 | 04-20 07:00 | take_profit | 9 | +1.49 | +| BONK | 04-20 05:00 | 04-20 07:00 | take_profit | 2 | +1.49 | +| LTC | 04-19 22:00 | 04-20 07:00 | take_profit | 9 | +1.49 | +| OP | 04-20 05:00 | 04-20 07:00 | take_profit | 2 | +1.49 | +| RENDER | 04-20 04:00 | 04-20 07:00 | take_profit | 3 | +1.49 | +| SUI | 04-20 05:00 | 04-20 07:00 | take_profit | 2 | +1.49 | +| UNI | 04-20 05:00 | 04-20 07:00 | take_profit | 2 | +1.49 | +| KAS | 04-20 05:00 | 04-20 12:00 | take_profit | 7 | +1.49 | +| SEI | 04-20 05:00 | 04-20 12:00 | take_profit | 7 | +1.49 | +| TRX | 04-20 06:00 | 04-20 12:00 | stop_loss | 6 | -1.49 | +| WIF | 04-20 05:00 | 04-20 17:00 | trailing_stop | 12 | -0.15 | +| SHIB | 04-20 05:00 | 04-20 18:00 | take_profit | 13 | +1.49 | +| TIA | 04-21 00:00 | 04-21 08:00 | stop_loss | 8 | -1.49 | +| OP | 04-21 08:00 | 04-21 11:00 | take_profit | 3 | +1.49 | +| ATOM | 04-21 08:00 | 04-21 13:00 | stop_loss | 5 | -1.49 | +| ARB | 04-21 02:00 | 04-21 16:00 | take_profit | 14 | +1.49 | +| TRX | 04-20 20:00 | 04-21 16:00 | take_profit | 20 | +1.49 | +| KAS | 04-21 17:00 | 04-21 18:00 | stop_loss | 1 | -1.49 | +| ARB | 04-21 17:00 | 04-21 19:00 | stop_loss | 2 | -1.49 | +| FIL | 04-21 17:00 | 04-21 19:00 | stop_loss | 2 | -1.49 | +| KAS | 04-21 18:00 | 04-21 19:00 | stop_loss | 1 | -1.49 | +| RENDER | 04-21 18:00 | 04-21 19:00 | stop_loss | 1 | -1.49 | +| WIF | 04-21 18:00 | 04-21 19:00 | stop_loss | 1 | -1.49 | +| FET | 04-21 19:00 | 04-21 20:00 | take_profit | 1 | +1.49 | +| OP | 04-21 19:00 | 04-21 20:00 | trailing_stop | 1 | -0.39 | +| PEPE | 04-21 19:00 | 04-21 20:00 | take_profit | 1 | +1.49 | +| RENDER | 04-21 19:00 | 04-21 20:00 | trailing_stop | 1 | -0.40 | +| WIF | 04-21 19:00 | 04-21 20:00 | trailing_stop | 1 | -0.57 | +| AVAX | 04-21 19:00 | 04-21 23:00 | take_profit | 4 | +1.49 | +| BONK | 04-21 19:00 | 04-21 23:00 | take_profit | 4 | +1.49 | +| FIL | 04-21 19:00 | 04-21 23:00 | take_profit | 4 | +1.49 | +| SUI | 04-21 19:00 | 04-21 23:00 | take_profit | 4 | +1.49 | +| TIA | 04-21 19:00 | 04-21 23:00 | take_profit | 4 | +1.49 | +| UNI | 04-21 19:00 | 04-21 23:00 | take_profit | 4 | +1.49 | +| ETC | 04-21 19:00 | 04-22 00:00 | take_profit | 5 | +1.49 | +| INJ | 04-21 19:00 | 04-22 00:00 | take_profit | 5 | +1.49 | +| KAS | 04-21 19:00 | 04-22 02:00 | take_profit | 7 | +1.49 | +| WIF | 04-22 19:00 | 04-22 20:00 | stop_loss | 1 | -1.49 | +| OP | 04-22 20:00 | 04-22 22:00 | stop_loss | 2 | -1.49 | +| ATOM | 04-22 17:00 | 04-22 23:00 | stop_loss | 6 | -1.49 | +| AVAX | 04-22 19:00 | 04-22 23:00 | stop_loss | 4 | -1.49 | +| ETC | 04-22 22:00 | 04-22 23:00 | stop_loss | 1 | -1.49 | +| FET | 04-22 19:00 | 04-22 23:00 | stop_loss | 4 | -1.49 | +| FIL | 04-22 20:00 | 04-22 23:00 | stop_loss | 3 | -1.49 | +| OP | 04-22 22:00 | 04-22 23:00 | stop_loss | 1 | -1.49 | +| TIA | 04-22 22:00 | 04-22 23:00 | stop_loss | 1 | -1.49 | +| WIF | 04-22 20:00 | 04-22 23:00 | stop_loss | 3 | -1.49 | +| AVAX | 04-22 23:00 | 04-23 00:00 | stop_loss | 1 | -1.49 | +| ETC | 04-22 23:00 | 04-23 00:00 | stop_loss | 1 | -1.49 | +| FET | 04-22 23:00 | 04-23 00:00 | stop_loss | 1 | -1.49 | +| FIL | 04-22 23:00 | 04-23 00:00 | stop_loss | 1 | -1.49 | +| INJ | 04-22 23:00 | 04-23 00:00 | stop_loss | 1 | -1.49 | +| OP | 04-22 23:00 | 04-23 00:00 | stop_loss | 1 | -1.49 | +| PEPE | 04-22 23:00 | 04-23 00:00 | stop_loss | 1 | -1.49 | +| RENDER | 04-22 23:00 | 04-23 00:00 | stop_loss | 1 | -1.49 | +| SUI | 04-22 20:00 | 04-23 00:00 | stop_loss | 4 | -1.49 | +| TIA | 04-22 23:00 | 04-23 00:00 | stop_loss | 1 | -1.49 | +| UNI | 04-22 23:00 | 04-23 00:00 | stop_loss | 1 | -1.49 | +| WIF | 04-22 23:00 | 04-23 00:00 | stop_loss | 1 | -1.49 | +| OP | 04-23 00:00 | 04-23 01:00 | stop_loss | 1 | -1.49 | +| WIF | 04-23 00:00 | 04-23 01:00 | stop_loss | 1 | -1.49 | +| BONK | 04-23 00:00 | 04-23 02:00 | stop_loss | 2 | -1.49 | +| ETC | 04-23 00:00 | 04-23 02:00 | stop_loss | 2 | -1.49 | +| FET | 04-23 00:00 | 04-23 02:00 | stop_loss | 2 | -1.49 | +| FIL | 04-23 00:00 | 04-23 02:00 | stop_loss | 2 | -1.49 | +| NEAR | 04-22 23:00 | 04-23 02:00 | stop_loss | 3 | -1.49 | +| OP | 04-23 01:00 | 04-23 02:00 | stop_loss | 1 | -1.49 | +| RENDER | 04-23 01:00 | 04-23 02:00 | stop_loss | 1 | -1.49 | +| SUI | 04-23 00:00 | 04-23 02:00 | stop_loss | 2 | -1.49 | +| TIA | 04-23 00:00 | 04-23 02:00 | stop_loss | 2 | -1.49 | +| UNI | 04-23 00:00 | 04-23 02:00 | stop_loss | 2 | -1.49 | +| WIF | 04-23 01:00 | 04-23 02:00 | stop_loss | 1 | -1.49 | +| APT | 04-22 23:00 | 04-23 03:00 | stop_loss | 4 | -1.49 | +| AVAX | 04-23 00:00 | 04-23 03:00 | stop_loss | 3 | -1.49 | +| BONK | 04-23 02:00 | 04-23 03:00 | stop_loss | 1 | -1.49 | +| LTC | 04-22 23:00 | 04-23 03:00 | stop_loss | 4 | -1.49 | +| NEAR | 04-23 02:00 | 04-23 03:00 | stop_loss | 1 | -1.49 | +| PEPE | 04-23 02:00 | 04-23 03:00 | stop_loss | 1 | -1.49 | +| SHIB | 04-22 23:00 | 04-23 03:00 | stop_loss | 4 | -1.49 | +| TIA | 04-23 02:00 | 04-23 03:00 | stop_loss | 1 | -1.49 | +| BONK | 04-23 03:00 | 04-23 06:00 | take_profit | 3 | +1.49 | +| WIF | 04-23 02:00 | 04-23 08:00 | stop_loss | 6 | -1.49 | +| ARB | 04-23 08:00 | 04-23 09:00 | stop_loss | 1 | -1.49 | +| PEPE | 04-23 07:00 | 04-23 09:00 | stop_loss | 2 | -1.49 | +| UNI | 04-23 02:00 | 04-23 09:00 | stop_loss | 7 | -1.49 | +| ARB | 04-23 09:00 | 04-23 10:00 | stop_loss | 1 | -1.49 | +| KAS | 04-23 07:00 | 04-23 10:00 | stop_loss | 3 | -1.49 | +| BONK | 04-23 08:00 | 04-23 14:00 | trailing_stop | 6 | -0.35 | +| OP | 04-23 02:00 | 04-23 14:00 | take_profit | 12 | +1.49 | +| ATOM | 04-23 02:00 | 04-23 15:00 | take_profit | 13 | +1.49 | +| INJ | 04-23 07:00 | 04-23 15:00 | take_profit | 8 | +1.49 | +| NEAR | 04-23 03:00 | 04-23 15:00 | take_profit | 12 | +1.49 | +| SHIB | 04-23 03:00 | 04-23 15:00 | take_profit | 12 | +1.49 | +| TIA | 04-23 03:00 | 04-23 15:00 | take_profit | 12 | +1.49 | +| AVAX | 04-23 03:00 | 04-23 17:00 | stop_loss | 14 | -1.49 | +| ETC | 04-23 02:00 | 04-23 17:00 | trailing_stop | 15 | +0.02 | +| FIL | 04-23 02:00 | 04-23 17:00 | stop_loss | 15 | -1.49 | +| LTC | 04-23 03:00 | 04-23 17:00 | trailing_stop | 14 | -0.37 | +| RENDER | 04-23 02:00 | 04-23 17:00 | stop_loss | 15 | -1.49 | +| SUI | 04-23 02:00 | 04-23 17:00 | stop_loss | 15 | -1.49 | +| KAS | 04-23 18:00 | 04-24 00:00 | take_profit | 6 | +1.49 | +| TRX | 04-22 14:00 | 04-24 15:00 | stop_loss | 49 | -1.49 | +| TRX | 04-24 15:00 | 04-24 16:00 | stop_loss | 1 | -1.49 | +| SEI | 04-24 22:00 | 04-25 05:00 | trailing_stop | 7 | +0.23 | +| RENDER | 04-24 22:00 | 04-25 10:00 | take_profit | 12 | +1.49 | +| APT | 04-25 13:00 | 04-25 15:00 | stop_loss | 2 | -1.49 | +| TIA | 04-25 11:00 | 04-25 15:00 | stop_loss | 4 | -1.49 | +| BONK | 04-25 11:00 | 04-25 16:00 | stop_loss | 5 | -1.49 | +| PEPE | 04-25 11:00 | 04-25 16:00 | stop_loss | 5 | -1.49 | +| WIF | 04-24 22:00 | 04-25 16:00 | stop_loss | 18 | -1.49 | +| ARB | 04-25 15:00 | 04-25 17:00 | stop_loss | 2 | -1.49 | +| SUI | 04-25 15:00 | 04-25 19:00 | stop_loss | 4 | -1.49 | +| BONK | 04-25 16:00 | 04-25 20:00 | confirmed_bearish_exit | 4 | -0.47 | +| TIA | 04-25 15:00 | 04-25 20:00 | confirmed_bearish_exit | 5 | -0.64 | +| SEI | 04-25 16:00 | 04-26 00:00 | stop_loss | 8 | -1.49 | +| ARB | 04-25 23:00 | 04-26 01:00 | stop_loss | 2 | -1.49 | +| ARB | 04-26 01:00 | 04-26 05:00 | take_profit | 4 | +1.49 | +| FET | 04-25 17:00 | 04-26 05:00 | take_profit | 12 | +1.49 | +| TIA | 04-25 23:00 | 04-26 05:00 | take_profit | 6 | +1.49 | +| FIL | 04-25 16:00 | 04-26 06:00 | take_profit | 14 | +1.49 | +| OP | 04-25 17:00 | 04-26 06:00 | take_profit | 13 | +1.49 | +| PEPE | 04-25 16:00 | 04-26 06:00 | take_profit | 14 | +1.49 | +| APT | 04-25 15:00 | 04-26 07:00 | take_profit | 16 | +1.49 | +| KAS | 04-25 17:00 | 04-26 07:00 | take_profit | 14 | +1.49 | +| BONK | 04-25 23:00 | 04-26 11:00 | take_profit | 12 | +1.49 | +| UNI | 04-25 17:00 | 04-26 11:00 | take_profit | 18 | +1.49 | +| WIF | 04-25 16:00 | 04-26 12:00 | trailing_stop | 20 | -0.14 | +| AVAX | 04-25 15:00 | 04-26 18:00 | take_profit | 27 | +1.49 | +| NEAR | 04-25 16:00 | 04-26 21:00 | stop_loss | 29 | -1.49 | +| SHIB | 04-25 17:00 | 04-27 01:00 | take_profit | 32 | +1.49 | +| SUI | 04-25 23:00 | 04-27 01:00 | take_profit | 26 | +1.49 | +| ARB | 04-26 22:00 | 04-27 02:00 | take_profit | 4 | +1.49 | +| NEAR | 04-26 23:00 | 04-27 02:00 | trailing_stop | 3 | -0.49 | +| ATOM | 04-26 00:00 | 04-27 03:00 | stop_loss | 27 | -1.49 | +| ATOM | 04-27 04:00 | 04-27 05:00 | stop_loss | 1 | -1.49 | +| ETC | 04-25 15:00 | 04-27 05:00 | stop_loss | 38 | -1.49 | +| LTC | 04-25 11:00 | 04-27 05:00 | stop_loss | 42 | -1.49 | +| APT | 04-27 05:00 | 04-27 06:00 | stop_loss | 1 | -1.49 | +| ARB | 04-27 05:00 | 04-27 06:00 | stop_loss | 1 | -1.49 | +| OP | 04-27 05:00 | 04-27 06:00 | stop_loss | 1 | -1.49 | +| SEI | 04-27 05:00 | 04-27 06:00 | stop_loss | 1 | -1.49 | +| SUI | 04-27 05:00 | 04-27 06:00 | stop_loss | 1 | -1.49 | +| TIA | 04-27 05:00 | 04-27 06:00 | stop_loss | 1 | -1.49 | +| APT | 04-27 06:00 | 04-27 08:00 | stop_loss | 2 | -1.49 | +| SEI | 04-27 06:00 | 04-27 08:00 | stop_loss | 2 | -1.49 | +| OP | 04-27 06:00 | 04-27 11:00 | stop_loss | 5 | -1.49 | +| ATOM | 04-27 05:00 | 04-27 12:00 | take_profit | 7 | +1.49 | +| ARB | 04-27 06:00 | 04-27 13:00 | stop_loss | 7 | -1.49 | +| AVAX | 04-27 05:00 | 04-27 13:00 | stop_loss | 8 | -1.49 | +| APT | 04-27 08:00 | 04-27 15:00 | stop_loss | 7 | -1.49 | +| ETC | 04-27 08:00 | 04-27 15:00 | stop_loss | 7 | -1.49 | +| FIL | 04-27 07:00 | 04-27 15:00 | stop_loss | 8 | -1.49 | +| INJ | 04-27 12:00 | 04-27 15:00 | stop_loss | 3 | -1.49 | +| KAS | 04-27 06:00 | 04-27 15:00 | stop_loss | 9 | -1.49 | +| SEI | 04-27 08:00 | 04-27 15:00 | stop_loss | 7 | -1.49 | +| SHIB | 04-27 06:00 | 04-27 15:00 | stop_loss | 9 | -1.49 | +| SUI | 04-27 06:00 | 04-27 15:00 | stop_loss | 9 | -1.49 | +| TIA | 04-27 06:00 | 04-27 15:00 | stop_loss | 9 | -1.49 | +| RENDER | 04-27 15:00 | 04-27 23:00 | take_profit | 8 | +1.49 | +| KAS | 04-27 15:00 | 04-28 02:00 | trailing_stop | 11 | -0.59 | +| NEAR | 04-27 15:00 | 04-28 07:00 | trailing_stop | 16 | -0.53 | +| FET | 04-28 02:00 | 04-28 09:00 | stop_loss | 7 | -1.49 | +| ATOM | 04-28 02:00 | 04-28 11:00 | stop_loss | 9 | -1.49 | +| LTC | 04-27 05:00 | 04-28 11:00 | stop_loss | 30 | -1.49 | +| ATOM | 04-28 11:00 | 04-28 14:00 | stop_loss | 3 | -1.49 | +| FET | 04-28 11:00 | 04-28 14:00 | stop_loss | 3 | -1.49 | +| INJ | 04-28 14:00 | 04-28 15:00 | stop_loss | 1 | -1.49 | +| FET | 04-28 14:00 | 04-28 17:00 | stop_loss | 3 | -1.49 | +| INJ | 04-28 15:00 | 04-28 17:00 | stop_loss | 2 | -1.49 | +| INJ | 04-28 17:00 | 04-28 18:00 | trailing_stop | 1 | -0.17 | +| FET | 04-28 20:00 | 04-28 22:00 | stop_loss | 2 | -1.49 | +| ATOM | 04-28 14:00 | 04-29 02:00 | take_profit | 12 | +1.49 | +| FET | 04-28 22:00 | 04-29 03:00 | take_profit | 5 | +1.49 | +| NEAR | 04-28 15:00 | 04-29 03:00 | take_profit | 12 | +1.49 | +| RENDER | 04-28 19:00 | 04-29 03:00 | confirmed_bearish_exit | 8 | +0.87 | +| LTC | 04-28 11:00 | 04-29 04:00 | take_profit | 17 | +1.49 | +| PEPE | 04-28 13:00 | 04-29 04:00 | take_profit | 15 | +1.49 | +| INJ | 04-29 13:00 | 04-29 15:00 | stop_loss | 2 | -1.49 | +| SEI | 04-29 13:00 | 04-29 15:00 | stop_loss | 2 | -1.49 | +| SUI | 04-29 13:00 | 04-29 15:00 | stop_loss | 2 | -1.49 | +| FIL | 04-29 16:00 | 04-29 17:00 | trailing_stop | 1 | -0.31 | +| ATOM | 04-29 15:00 | 04-29 18:00 | stop_loss | 3 | -1.49 | +| BONK | 04-29 15:00 | 04-29 18:00 | stop_loss | 3 | -1.49 | +| ETC | 04-29 15:00 | 04-29 18:00 | stop_loss | 3 | -1.49 | +| INJ | 04-29 15:00 | 04-29 18:00 | stop_loss | 3 | -1.49 | +| KAS | 04-29 15:00 | 04-29 18:00 | stop_loss | 3 | -1.49 | +| NEAR | 04-29 15:00 | 04-29 18:00 | stop_loss | 3 | -1.49 | +| OP | 04-29 15:00 | 04-29 18:00 | stop_loss | 3 | -1.49 | +| RENDER | 04-29 15:00 | 04-29 18:00 | stop_loss | 3 | -1.49 | +| SEI | 04-29 15:00 | 04-29 18:00 | stop_loss | 3 | -1.49 | +| SUI | 04-29 15:00 | 04-29 18:00 | stop_loss | 3 | -1.49 | +| TIA | 04-29 15:00 | 04-29 18:00 | stop_loss | 3 | -1.49 | +| UNI | 04-29 15:00 | 04-29 18:00 | stop_loss | 3 | -1.49 | +| APT | 04-29 18:00 | 04-29 20:00 | take_profit | 2 | +1.49 | +| FIL | 04-29 18:00 | 04-29 20:00 | trailing_stop | 2 | -0.11 | +| FET | 04-29 18:00 | 04-29 21:00 | take_profit | 3 | +1.49 | +| OP | 04-29 18:00 | 04-29 21:00 | take_profit | 3 | +1.49 | +| ARB | 04-29 23:00 | 04-30 00:00 | take_profit | 1 | +1.49 | +| BONK | 04-29 18:00 | 04-30 00:00 | take_profit | 6 | +1.49 | +| OP | 04-29 23:00 | 04-30 00:00 | trailing_stop | 1 | -0.46 | +| PEPE | 04-29 23:00 | 04-30 00:00 | trailing_stop | 1 | +0.17 | +| SHIB | 04-29 23:00 | 04-30 00:00 | trailing_stop | 1 | -0.05 | +| SUI | 04-29 18:00 | 04-30 00:00 | take_profit | 6 | +1.49 | +| TIA | 04-29 18:00 | 04-30 00:00 | confirmed_bearish_exit | 6 | +0.74 | +| UNI | 04-29 18:00 | 04-30 00:00 | take_profit | 6 | +1.49 | +| WIF | 04-29 23:00 | 04-30 00:00 | trailing_stop | 1 | +0.18 | +| NEAR | 04-29 18:00 | 04-30 01:00 | take_profit | 7 | +1.49 | +| SEI | 04-29 18:00 | 04-30 01:00 | take_profit | 7 | +1.49 | +| ATOM | 04-29 18:00 | 04-30 02:00 | trailing_stop | 8 | -0.54 | +| AVAX | 04-29 18:00 | 04-30 02:00 | trailing_stop | 8 | -0.11 | +| PEPE | 04-30 00:00 | 04-30 02:00 | stop_loss | 2 | -1.49 | +| RENDER | 04-29 22:00 | 04-30 02:00 | stop_loss | 4 | -1.49 | +| TIA | 04-30 01:00 | 04-30 02:00 | stop_loss | 1 | -1.49 | +| UNI | 04-30 00:00 | 04-30 02:00 | stop_loss | 2 | -1.49 | +| INJ | 04-29 23:00 | 04-30 03:00 | stop_loss | 4 | -1.49 | +| TIA | 04-30 02:00 | 04-30 03:00 | take_profit | 1 | +1.49 | +| KAS | 04-29 18:00 | 04-30 04:00 | trailing_stop | 10 | -0.44 | +| LTC | 04-30 00:00 | 04-30 04:00 | stop_loss | 4 | -1.49 | +| UNI | 04-30 02:00 | 04-30 05:00 | stop_loss | 3 | -1.49 | +| SEI | 04-30 02:00 | 04-30 06:00 | stop_loss | 4 | -1.49 | +| RENDER | 04-30 02:00 | 04-30 15:00 | stop_loss | 13 | -1.49 | +| ATOM | 04-30 02:00 | 04-30 16:00 | stop_loss | 14 | -1.49 | +| APT | 04-30 17:00 | 05-01 01:00 | take_profit | 8 | +1.49 | +| TIA | 04-30 21:00 | 05-01 01:00 | trailing_stop | 4 | -0.03 | +| BONK | 04-30 22:00 | 05-01 03:00 | take_profit | 5 | +1.49 | +| SHIB | 04-30 22:00 | 05-01 03:00 | take_profit | 5 | +1.49 | +| ETC | 04-29 23:00 | 05-01 10:00 | trailing_stop | 35 | -0.64 | +| RENDER | 04-30 21:00 | 05-01 10:00 | take_profit | 13 | +1.49 | +| NEAR | 04-30 18:00 | 05-01 15:00 | stop_loss | 21 | -1.49 | +| ATOM | 04-30 17:00 | 05-01 19:00 | take_profit | 26 | +1.49 | +| APT | 05-01 17:00 | 05-01 20:00 | stop_loss | 3 | -1.49 | +| TIA | 05-01 20:00 | 05-02 03:00 | stop_loss | 7 | -1.49 | +| ARB | 05-01 23:00 | 05-02 05:00 | stop_loss | 6 | -1.49 | +| KAS | 05-02 03:00 | 05-02 06:00 | stop_loss | 3 | -1.49 | +| TRX | 04-24 16:00 | 05-02 10:00 | take_profit | 186 | +1.49 | +| LTC | 04-30 21:00 | 05-02 11:00 | trailing_stop | 38 | -0.21 | +| WIF | 05-02 05:00 | 05-02 12:00 | take_profit | 7 | +1.49 | +| FET | 05-02 03:00 | 05-02 14:00 | take_profit | 11 | +1.49 | +| TIA | 05-02 11:00 | 05-02 14:00 | take_profit | 3 | +1.49 | +| PEPE | 05-02 03:00 | 05-02 18:00 | trailing_stop | 15 | -0.19 | +| UNI | 05-02 04:00 | 05-02 21:00 | take_profit | 17 | +1.49 | +| ETC | 05-02 04:00 | 05-03 00:00 | trailing_stop | 20 | +0.02 | +| ATOM | 05-02 11:00 | 05-03 01:00 | stop_loss | 14 | -1.49 | +| AVAX | 05-02 04:00 | 05-03 01:00 | trailing_stop | 21 | -0.42 | +| BONK | 05-02 03:00 | 05-03 01:00 | trailing_stop | 22 | -0.09 | +| SUI | 05-02 05:00 | 05-03 01:00 | trailing_stop | 20 | -0.33 | +| ARB | 05-03 01:00 | 05-03 05:00 | stop_loss | 4 | -1.49 | +| NEAR | 05-01 17:00 | 05-03 05:00 | stop_loss | 36 | -1.49 | +| ARB | 05-03 09:00 | 05-03 10:00 | stop_loss | 1 | -1.49 | +| APT | 05-03 01:00 | 05-03 20:00 | take_profit | 19 | +1.49 | +| SHIB | 05-03 01:00 | 05-03 21:00 | stop_loss | 20 | -1.49 | +| OP | 05-03 08:00 | 05-03 22:00 | take_profit | 14 | +1.49 | +| PEPE | 05-03 06:00 | 05-03 22:00 | trailing_stop | 16 | -0.17 | +| SEI | 05-03 06:00 | 05-03 22:00 | take_profit | 16 | +1.49 | +| TIA | 05-03 05:00 | 05-03 23:00 | trailing_stop | 18 | -0.71 | +| ARB | 05-03 23:00 | 05-04 00:00 | stop_loss | 1 | -1.49 | +| AVAX | 05-03 04:00 | 05-04 00:00 | trailing_stop | 20 | -0.15 | +| BONK | 05-03 06:00 | 05-04 00:00 | stop_loss | 18 | -1.49 | +| ETC | 05-03 06:00 | 05-04 00:00 | trailing_stop | 18 | -0.67 | +| FIL | 05-03 05:00 | 05-04 00:00 | trailing_stop | 19 | -0.04 | +| SUI | 05-03 05:00 | 05-04 00:00 | trailing_stop | 19 | -0.53 | +| UNI | 05-03 06:00 | 05-04 00:00 | trailing_stop | 18 | -0.26 | +| LTC | 05-02 17:00 | 05-04 04:00 | take_profit | 35 | +1.49 | +| APT | 05-04 10:00 | 05-04 14:00 | take_profit | 4 | +1.49 | +| ARB | 05-04 10:00 | 05-04 14:00 | take_profit | 4 | +1.49 | +| FET | 05-04 10:00 | 05-04 14:00 | take_profit | 4 | +1.49 | +| INJ | 05-04 10:00 | 05-04 14:00 | trailing_stop | 4 | -0.55 | +| NEAR | 05-04 10:00 | 05-04 14:00 | take_profit | 4 | +1.49 | +| FIL | 05-04 16:00 | 05-04 20:00 | trailing_stop | 4 | -0.39 | +| UNI | 05-04 18:00 | 05-04 20:00 | stop_loss | 2 | -1.49 | +| FET | 05-04 16:00 | 05-05 03:00 | take_profit | 11 | +1.49 | +| ATOM | 05-04 15:00 | 05-05 05:00 | take_profit | 14 | +1.49 | +| KAS | 05-04 19:00 | 05-05 12:00 | trailing_stop | 17 | +0.12 | +| ATOM | 05-05 15:00 | 05-05 16:00 | stop_loss | 1 | -1.49 | +| LTC | 05-04 16:00 | 05-05 20:00 | take_profit | 28 | +1.49 | +| TIA | 05-05 15:00 | 05-05 20:00 | trailing_stop | 5 | +0.19 | +| ATOM | 05-05 16:00 | 05-05 21:00 | take_profit | 5 | +1.49 | +| WIF | 05-06 19:00 | 05-06 20:00 | stop_loss | 1 | -1.49 | +| FIL | 05-06 18:00 | 05-06 21:00 | take_profit | 3 | +1.49 | +| WIF | 05-06 20:00 | 05-06 22:00 | stop_loss | 2 | -1.49 | +| APT | 05-06 23:00 | 05-07 00:00 | stop_loss | 1 | -1.49 | +| SUI | 05-06 23:00 | 05-07 00:00 | stop_loss | 1 | -1.49 | +| WIF | 05-06 22:00 | 05-07 00:00 | stop_loss | 2 | -1.49 | +| ATOM | 05-06 22:00 | 05-07 01:00 | stop_loss | 3 | -1.49 | +| BONK | 05-06 22:00 | 05-07 01:00 | stop_loss | 3 | -1.49 | +| PEPE | 05-06 19:00 | 05-07 01:00 | stop_loss | 6 | -1.49 | +| RENDER | 05-07 01:00 | 05-07 04:00 | trailing_stop | 3 | -0.31 | +| UNI | 05-07 00:00 | 05-07 04:00 | stop_loss | 4 | -1.49 | +| WIF | 05-07 03:00 | 05-07 04:00 | stop_loss | 1 | -1.49 | +| AVAX | 05-07 00:00 | 05-07 06:00 | trailing_stop | 6 | -0.35 | +| SEI | 05-07 01:00 | 05-07 06:00 | take_profit | 5 | +1.49 | +| LTC | 05-06 22:00 | 05-07 14:00 | trailing_stop | 16 | -0.58 | +| TRX | 05-06 08:00 | 05-07 17:00 | take_profit | 33 | +1.49 | +| KAS | 05-07 15:00 | 05-07 20:00 | stop_loss | 5 | -1.49 | +| FIL | 05-07 22:00 | 05-07 23:00 | take_profit | 1 | +1.49 | +| PEPE | 05-07 21:00 | 05-08 02:00 | stop_loss | 5 | -1.49 | +| FET | 05-08 00:00 | 05-08 03:00 | trailing_stop | 3 | -0.67 | +| SEI | 05-08 02:00 | 05-08 04:00 | confirmed_bearish_exit | 2 | +0.57 | +| RENDER | 05-07 21:00 | 05-08 05:00 | take_profit | 8 | +1.49 | +| BONK | 05-08 02:00 | 05-08 08:00 | take_profit | 6 | +1.49 | +| KAS | 05-07 20:00 | 05-08 08:00 | take_profit | 12 | +1.49 | +| AVAX | 05-08 02:00 | 05-08 14:00 | take_profit | 12 | +1.49 | +| TIA | 05-09 10:00 | 05-09 11:00 | take_profit | 1 | +1.49 | +| ETC | 05-09 09:00 | 05-09 13:00 | stop_loss | 4 | -1.49 | +| FIL | 05-09 12:00 | 05-09 14:00 | stop_loss | 2 | -1.49 | +| PEPE | 05-09 13:00 | 05-09 14:00 | stop_loss | 1 | -1.49 | +| SHIB | 05-09 11:00 | 05-09 14:00 | stop_loss | 3 | -1.49 | +| TIA | 05-09 13:00 | 05-09 14:00 | stop_loss | 1 | -1.49 | +| FIL | 05-09 14:00 | 05-09 15:00 | stop_loss | 1 | -1.49 | +| APT | 05-09 10:00 | 05-09 16:00 | stop_loss | 6 | -1.49 | +| FET | 05-09 14:00 | 05-09 17:00 | take_profit | 3 | +1.49 | +| UNI | 05-09 13:00 | 05-09 17:00 | trailing_stop | 4 | -0.42 | +| ARB | 05-09 15:00 | 05-09 18:00 | take_profit | 3 | +1.49 | +| SUI | 05-09 14:00 | 05-09 20:00 | take_profit | 6 | +1.49 | +| KAS | 05-09 16:00 | 05-09 22:00 | take_profit | 6 | +1.49 | +| WIF | 05-09 15:00 | 05-09 22:00 | take_profit | 7 | +1.49 | +| FIL | 05-09 15:00 | 05-09 23:00 | trailing_stop | 8 | -0.30 | +| OP | 05-09 11:00 | 05-09 23:00 | stop_loss | 12 | -1.49 | +| ARB | 05-09 20:00 | 05-10 00:00 | stop_loss | 4 | -1.49 | +| ATOM | 05-09 14:00 | 05-10 00:00 | stop_loss | 10 | -1.49 | +| BONK | 05-09 15:00 | 05-10 00:00 | trailing_stop | 9 | -0.14 | +| AVAX | 05-09 15:00 | 05-10 01:00 | trailing_stop | 10 | -0.19 | +| INJ | 05-09 15:00 | 05-10 01:00 | stop_loss | 10 | -1.49 | +| PEPE | 05-09 14:00 | 05-10 01:00 | stop_loss | 11 | -1.49 | +| ETC | 05-09 13:00 | 05-10 02:00 | take_profit | 13 | +1.49 | +| ATOM | 05-10 00:00 | 05-10 05:00 | take_profit | 5 | +1.49 | +| APT | 05-10 07:00 | 05-10 08:00 | trailing_stop | 1 | -0.35 | +| OP | 05-10 01:00 | 05-10 10:00 | trailing_stop | 9 | -0.54 | +| INJ | 05-10 01:00 | 05-10 13:00 | take_profit | 12 | +1.49 | +| SHIB | 05-09 14:00 | 05-10 13:00 | take_profit | 23 | +1.49 | +| LTC | 05-09 14:00 | 05-10 15:00 | take_profit | 25 | +1.49 | +| PEPE | 05-10 01:00 | 05-10 15:00 | take_profit | 14 | +1.49 | +| SEI | 05-10 12:00 | 05-10 15:00 | take_profit | 3 | +1.49 | +| NEAR | 05-09 14:00 | 05-10 17:00 | take_profit | 27 | +1.49 | +| FIL | 05-10 16:00 | 05-10 20:00 | stop_loss | 4 | -1.49 | +| FIL | 05-10 20:00 | 05-10 22:00 | take_profit | 2 | +1.49 | +| UNI | 05-11 03:00 | 05-11 04:00 | stop_loss | 1 | -1.49 | +| SUI | 05-11 08:00 | 05-11 09:00 | trailing_stop | 1 | -0.69 | +| APT | 05-11 09:00 | 05-11 11:00 | stop_loss | 2 | -1.49 | +| BONK | 05-11 08:00 | 05-11 13:00 | stop_loss | 5 | -1.49 | +| NEAR | 05-11 09:00 | 05-11 13:00 | stop_loss | 4 | -1.49 | +| RENDER | 05-11 09:00 | 05-11 13:00 | stop_loss | 4 | -1.49 | +| SUI | 05-11 09:00 | 05-11 13:00 | take_profit | 4 | +1.49 | +| FET | 05-11 12:00 | 05-11 14:00 | stop_loss | 2 | -1.49 | +| PEPE | 05-11 07:00 | 05-11 14:00 | stop_loss | 7 | -1.49 | +| SUI | 05-11 13:00 | 05-11 14:00 | stop_loss | 1 | -1.49 | +| AVAX | 05-11 12:00 | 05-11 15:00 | trailing_stop | 3 | -0.18 | +| WIF | 05-11 09:00 | 05-11 15:00 | take_profit | 6 | +1.49 | +| SUI | 05-11 14:00 | 05-11 16:00 | take_profit | 2 | +1.49 | +| ARB | 05-11 12:00 | 05-11 17:00 | trailing_stop | 5 | -0.65 | +| RENDER | 05-12 00:00 | 05-12 01:00 | stop_loss | 1 | -1.49 | +| APT | 05-12 01:00 | 05-12 06:00 | take_profit | 5 | +1.49 | +| SEI | 05-12 01:00 | 05-12 06:00 | trailing_stop | 5 | -0.29 | +| ETC | 05-12 01:00 | 05-12 07:00 | stop_loss | 6 | -1.49 | +| FET | 05-12 01:00 | 05-12 07:00 | trailing_stop | 6 | -0.46 | +| RENDER | 05-12 01:00 | 05-12 07:00 | stop_loss | 6 | -1.49 | +| BONK | 05-12 01:00 | 05-12 08:00 | stop_loss | 7 | -1.49 | +| PEPE | 05-12 01:00 | 05-12 08:00 | stop_loss | 7 | -1.49 | +| AVAX | 05-12 01:00 | 05-12 09:00 | stop_loss | 8 | -1.49 | +| KAS | 05-12 08:00 | 05-12 09:00 | stop_loss | 1 | -1.49 | +| SHIB | 05-12 07:00 | 05-12 09:00 | stop_loss | 2 | -1.49 | +| ARB | 05-12 03:00 | 05-12 10:00 | stop_loss | 7 | -1.49 | +| BONK | 05-12 08:00 | 05-12 10:00 | stop_loss | 2 | -1.49 | +| UNI | 05-12 01:00 | 05-12 10:00 | stop_loss | 9 | -1.49 | +| BONK | 05-12 10:00 | 05-12 11:00 | stop_loss | 1 | -1.49 | +| PEPE | 05-12 08:00 | 05-12 11:00 | stop_loss | 3 | -1.49 | +| RENDER | 05-12 09:00 | 05-12 11:00 | stop_loss | 2 | -1.49 | +| SEI | 05-12 08:00 | 05-12 11:00 | stop_loss | 3 | -1.49 | +| SHIB | 05-12 10:00 | 05-12 11:00 | stop_loss | 1 | -1.49 | +| FIL | 05-12 03:00 | 05-12 12:00 | stop_loss | 9 | -1.49 | +| OP | 05-12 01:00 | 05-12 12:00 | stop_loss | 11 | -1.49 | +| SUI | 05-12 11:00 | 05-12 12:00 | take_profit | 1 | +1.49 | +| AVAX | 05-12 09:00 | 05-12 13:00 | stop_loss | 4 | -1.49 | +| KAS | 05-12 09:00 | 05-12 13:00 | stop_loss | 4 | -1.49 | +| LTC | 05-12 01:00 | 05-12 13:00 | stop_loss | 12 | -1.49 | +| OP | 05-12 12:00 | 05-12 13:00 | stop_loss | 1 | -1.49 | +| SHIB | 05-12 11:00 | 05-12 13:00 | stop_loss | 2 | -1.49 | +| BONK | 05-12 11:00 | 05-12 14:00 | stop_loss | 3 | -1.49 | +| OP | 05-12 13:00 | 05-12 14:00 | stop_loss | 1 | -1.49 | +| PEPE | 05-12 13:00 | 05-12 14:00 | stop_loss | 1 | -1.49 | +| TIA | 05-12 13:00 | 05-12 14:00 | stop_loss | 1 | -1.49 | +| WIF | 05-12 13:00 | 05-12 14:00 | stop_loss | 1 | -1.49 | +| ATOM | 05-12 14:00 | 05-12 15:00 | trailing_stop | 1 | -0.48 | +| AVAX | 05-12 13:00 | 05-12 15:00 | stop_loss | 2 | -1.49 | +| SUI | 05-12 14:00 | 05-12 15:00 | stop_loss | 1 | -1.49 | +| TIA | 05-12 14:00 | 05-12 15:00 | take_profit | 1 | +1.49 | +| APT | 05-12 13:00 | 05-12 16:00 | stop_loss | 3 | -1.49 | +| FET | 05-12 14:00 | 05-12 16:00 | stop_loss | 2 | -1.49 | +| OP | 05-12 14:00 | 05-12 16:00 | stop_loss | 2 | -1.49 | +| PEPE | 05-12 14:00 | 05-12 16:00 | stop_loss | 2 | -1.49 | +| OP | 05-12 16:00 | 05-12 17:00 | trailing_stop | 1 | -0.18 | +| FIL | 05-12 15:00 | 05-12 19:00 | take_profit | 4 | +1.49 | +| PEPE | 05-12 16:00 | 05-12 19:00 | take_profit | 3 | +1.49 | +| RENDER | 05-12 15:00 | 05-12 19:00 | take_profit | 4 | +1.49 | +| FET | 05-12 16:00 | 05-12 21:00 | take_profit | 5 | +1.49 | +| LTC | 05-12 13:00 | 05-12 22:00 | trailing_stop | 9 | -0.15 | +| WIF | 05-12 14:00 | 05-12 22:00 | take_profit | 8 | +1.49 | +| FET | 05-12 21:00 | 05-12 23:00 | stop_loss | 2 | -1.49 | +| SEI | 05-12 21:00 | 05-12 23:00 | stop_loss | 2 | -1.49 | +| ARB | 05-12 14:00 | 05-13 01:00 | take_profit | 11 | +1.49 | +| ETC | 05-12 15:00 | 05-13 01:00 | take_profit | 10 | +1.49 | +| FET | 05-12 23:00 | 05-13 02:00 | take_profit | 3 | +1.49 | +| APT | 05-12 19:00 | 05-13 03:00 | take_profit | 8 | +1.49 | +| WIF | 05-12 22:00 | 05-13 03:00 | take_profit | 5 | +1.49 | +| AVAX | 05-12 19:00 | 05-13 04:00 | confirmed_bearish_exit | 9 | +1.30 | +| SHIB | 05-12 13:00 | 05-13 04:00 | take_profit | 15 | +1.49 | +| UNI | 05-12 19:00 | 05-13 04:00 | take_profit | 9 | +1.49 | +| BONK | 05-12 20:00 | 05-13 05:00 | trailing_stop | 9 | -0.23 | +| SEI | 05-12 23:00 | 05-13 06:00 | take_profit | 7 | +1.49 | +| OP | 05-12 20:00 | 05-13 09:00 | take_profit | 13 | +1.49 | +| PEPE | 05-12 20:00 | 05-13 09:00 | take_profit | 13 | +1.49 | +| BONK | 05-13 12:00 | 05-13 13:00 | stop_loss | 1 | -1.49 | +| FET | 05-13 12:00 | 05-13 13:00 | stop_loss | 1 | -1.49 | +| FIL | 05-13 12:00 | 05-13 13:00 | stop_loss | 1 | -1.49 | +| OP | 05-13 12:00 | 05-13 13:00 | stop_loss | 1 | -1.49 | +| SEI | 05-13 12:00 | 05-13 13:00 | stop_loss | 1 | -1.49 | +| SHIB | 05-13 12:00 | 05-13 13:00 | stop_loss | 1 | -1.49 | +| UNI | 05-13 12:00 | 05-13 13:00 | stop_loss | 1 | -1.49 | +| APT | 05-13 13:00 | 05-13 15:00 | stop_loss | 2 | -1.49 | +| ARB | 05-13 13:00 | 05-13 15:00 | stop_loss | 2 | -1.49 | +| ATOM | 05-13 13:00 | 05-13 15:00 | stop_loss | 2 | -1.49 | +| BONK | 05-13 13:00 | 05-13 15:00 | stop_loss | 2 | -1.49 | +| ETC | 05-13 13:00 | 05-13 15:00 | stop_loss | 2 | -1.49 | +| FET | 05-13 14:00 | 05-13 15:00 | stop_loss | 1 | -1.49 | +| FIL | 05-13 13:00 | 05-13 15:00 | stop_loss | 2 | -1.49 | +| LTC | 05-13 13:00 | 05-13 15:00 | stop_loss | 2 | -1.49 | +| OP | 05-13 13:00 | 05-13 15:00 | stop_loss | 2 | -1.49 | +| PEPE | 05-13 13:00 | 05-13 15:00 | stop_loss | 2 | -1.49 | +| SEI | 05-13 13:00 | 05-13 15:00 | stop_loss | 2 | -1.49 | +| SHIB | 05-13 13:00 | 05-13 15:00 | stop_loss | 2 | -1.49 | +| UNI | 05-13 13:00 | 05-13 15:00 | stop_loss | 2 | -1.49 | +| ATOM | 05-13 15:00 | 05-13 16:00 | trailing_stop | 1 | -0.42 | +| FIL | 05-13 15:00 | 05-13 16:00 | take_profit | 1 | +1.49 | +| NEAR | 05-13 15:00 | 05-13 16:00 | take_profit | 1 | +1.49 | +| PEPE | 05-13 15:00 | 05-13 16:00 | trailing_stop | 1 | -0.27 | +| SUI | 05-13 15:00 | 05-13 16:00 | take_profit | 1 | +1.49 | +| WIF | 05-13 15:00 | 05-13 16:00 | take_profit | 1 | +1.49 | +| APT | 05-13 15:00 | 05-13 18:00 | take_profit | 3 | +1.49 | +| ARB | 05-13 15:00 | 05-13 18:00 | take_profit | 3 | +1.49 | +| BONK | 05-13 15:00 | 05-13 18:00 | take_profit | 3 | +1.49 | +| FET | 05-13 15:00 | 05-13 18:00 | take_profit | 3 | +1.49 | +| OP | 05-13 15:00 | 05-13 18:00 | take_profit | 3 | +1.49 | +| RENDER | 05-13 15:00 | 05-13 20:00 | take_profit | 5 | +1.49 | +| KAS | 05-13 15:00 | 05-13 21:00 | trailing_stop | 6 | -0.63 | +| NEAR | 05-13 19:00 | 05-13 21:00 | stop_loss | 2 | -1.49 | +| ETC | 05-13 15:00 | 05-13 22:00 | confirmed_bearish_exit | 7 | +0.71 | +| ATOM | 05-13 21:00 | 05-14 00:00 | stop_loss | 3 | -1.49 | +| INJ | 05-13 23:00 | 05-14 00:00 | stop_loss | 1 | -1.49 | +| APT | 05-14 00:00 | 05-14 02:00 | stop_loss | 2 | -1.49 | +| SEI | 05-13 15:00 | 05-14 02:00 | trailing_stop | 11 | -0.06 | +| AVAX | 05-13 15:00 | 05-14 03:00 | trailing_stop | 12 | -0.07 | +| BONK | 05-14 00:00 | 05-14 03:00 | stop_loss | 3 | -1.49 | +| ETC | 05-14 00:00 | 05-14 03:00 | stop_loss | 3 | -1.49 | +| FIL | 05-14 00:00 | 05-14 03:00 | stop_loss | 3 | -1.49 | +| RENDER | 05-13 22:00 | 05-14 03:00 | stop_loss | 5 | -1.49 | +| SHIB | 05-13 15:00 | 05-14 03:00 | trailing_stop | 12 | -0.10 | +| UNI | 05-13 15:00 | 05-14 03:00 | trailing_stop | 12 | -0.19 | +| WIF | 05-14 00:00 | 05-14 03:00 | stop_loss | 3 | -1.49 | +| LTC | 05-13 15:00 | 05-14 07:00 | take_profit | 16 | +1.49 | +| TIA | 05-14 07:00 | 05-14 09:00 | stop_loss | 2 | -1.49 | +| TRX | 05-10 04:00 | 05-14 10:00 | stop_loss | 102 | -1.49 | +| FET | 05-14 11:00 | 05-14 12:00 | trailing_stop | 1 | -0.47 | +| ARB | 05-14 10:00 | 05-14 14:00 | take_profit | 4 | +1.49 | +| APT | 05-15 04:00 | 05-15 05:00 | stop_loss | 1 | -1.49 | +| ARB | 05-15 04:00 | 05-15 05:00 | stop_loss | 1 | -1.49 | +| ATOM | 05-15 04:00 | 05-15 05:00 | stop_loss | 1 | -1.49 | +| AVAX | 05-15 04:00 | 05-15 05:00 | stop_loss | 1 | -1.49 | +| BONK | 05-15 04:00 | 05-15 05:00 | stop_loss | 1 | -1.49 | +| FET | 05-15 04:00 | 05-15 05:00 | stop_loss | 1 | -1.49 | +| FIL | 05-15 04:00 | 05-15 05:00 | stop_loss | 1 | -1.49 | +| NEAR | 05-15 04:00 | 05-15 05:00 | stop_loss | 1 | -1.49 | +| OP | 05-15 04:00 | 05-15 05:00 | stop_loss | 1 | -1.49 | +| SUI | 05-15 04:00 | 05-15 05:00 | stop_loss | 1 | -1.49 | +| TIA | 05-15 04:00 | 05-15 05:00 | stop_loss | 1 | -1.49 | +| INJ | 05-15 05:00 | 05-15 06:00 | take_profit | 1 | +1.49 | +| SUI | 05-15 05:00 | 05-15 06:00 | take_profit | 1 | +1.49 | +| UNI | 05-15 05:00 | 05-15 06:00 | trailing_stop | 1 | -0.32 | +| WIF | 05-15 05:00 | 05-15 06:00 | trailing_stop | 1 | -0.34 | +| FET | 05-15 05:00 | 05-15 07:00 | take_profit | 2 | +1.49 | +| TIA | 05-15 05:00 | 05-15 07:00 | take_profit | 2 | +1.49 | +| SUI | 05-15 06:00 | 05-15 08:00 | stop_loss | 2 | -1.49 | +| WIF | 05-15 06:00 | 05-15 08:00 | stop_loss | 2 | -1.49 | +| KAS | 05-15 05:00 | 05-15 09:00 | stop_loss | 4 | -1.49 | +| OP | 05-15 05:00 | 05-15 10:00 | take_profit | 5 | +1.49 | +| SEI | 05-15 05:00 | 05-15 10:00 | trailing_stop | 5 | -0.66 | +| RENDER | 05-15 05:00 | 05-15 11:00 | take_profit | 6 | +1.49 | +| ARB | 05-15 05:00 | 05-15 12:00 | trailing_stop | 7 | -0.22 | +| BONK | 05-15 05:00 | 05-15 12:00 | trailing_stop | 7 | -0.17 | +| PEPE | 05-15 05:00 | 05-15 12:00 | trailing_stop | 7 | -0.21 | +| APT | 05-15 05:00 | 05-15 13:00 | stop_loss | 8 | -1.49 | +| ATOM | 05-15 05:00 | 05-15 13:00 | stop_loss | 8 | -1.49 | +| AVAX | 05-15 05:00 | 05-15 13:00 | stop_loss | 8 | -1.49 | +| ETC | 05-15 08:00 | 05-15 13:00 | stop_loss | 5 | -1.49 | +| FIL | 05-15 05:00 | 05-15 13:00 | stop_loss | 8 | -1.49 | +| KAS | 05-15 09:00 | 05-15 13:00 | stop_loss | 4 | -1.49 | +| OP | 05-15 12:00 | 05-15 13:00 | stop_loss | 1 | -1.49 | +| SHIB | 05-15 05:00 | 05-15 13:00 | stop_loss | 8 | -1.49 | +| UNI | 05-15 09:00 | 05-15 13:00 | stop_loss | 4 | -1.49 | +| KAS | 05-15 13:00 | 05-15 14:00 | trailing_stop | 1 | -0.30 | +| SUI | 05-15 13:00 | 05-15 15:00 | stop_loss | 2 | -1.49 | +| APT | 05-15 13:00 | 05-15 16:00 | trailing_stop | 3 | +0.14 | +| ARB | 05-15 13:00 | 05-15 16:00 | trailing_stop | 3 | -0.02 | +| BONK | 05-15 13:00 | 05-15 16:00 | take_profit | 3 | +1.49 | +| OP | 05-15 13:00 | 05-15 16:00 | trailing_stop | 3 | -0.39 | +| PEPE | 05-15 13:00 | 05-15 16:00 | trailing_stop | 3 | +0.02 | +| RENDER | 05-15 13:00 | 05-15 16:00 | take_profit | 3 | +1.49 | +| TIA | 05-15 13:00 | 05-15 16:00 | take_profit | 3 | +1.49 | +| UNI | 05-15 13:00 | 05-15 16:00 | take_profit | 3 | +1.49 | +| WIF | 05-15 13:00 | 05-15 16:00 | take_profit | 3 | +1.49 | +| ETC | 05-15 13:00 | 05-15 17:00 | take_profit | 4 | +1.49 | +| FET | 05-15 13:00 | 05-15 17:00 | take_profit | 4 | +1.49 | +| FIL | 05-15 13:00 | 05-15 17:00 | take_profit | 4 | +1.49 | +| INJ | 05-15 13:00 | 05-15 17:00 | take_profit | 4 | +1.49 | +| ATOM | 05-15 13:00 | 05-15 21:00 | stop_loss | 8 | -1.49 | +| LTC | 05-15 13:00 | 05-16 01:00 | take_profit | 12 | +1.49 | +| AVAX | 05-15 13:00 | 05-16 04:00 | trailing_stop | 15 | -0.29 | +| SEI | 05-15 13:00 | 05-16 04:00 | stop_loss | 15 | -1.49 | +| SHIB | 05-15 13:00 | 05-16 04:00 | trailing_stop | 15 | -0.35 | +| WIF | 05-15 20:00 | 05-16 04:00 | stop_loss | 8 | -1.49 | +| APT | 05-16 06:00 | 05-16 07:00 | stop_loss | 1 | -1.49 | +| ARB | 05-16 06:00 | 05-16 07:00 | stop_loss | 1 | -1.49 | +| ATOM | 05-16 04:00 | 05-16 07:00 | stop_loss | 3 | -1.49 | +| FET | 05-16 06:00 | 05-16 07:00 | stop_loss | 1 | -1.49 | +| NEAR | 05-16 06:00 | 05-16 07:00 | stop_loss | 1 | -1.49 | +| SUI | 05-16 06:00 | 05-16 07:00 | stop_loss | 1 | -1.49 | +| TRX | 05-15 01:00 | 05-16 07:00 | stop_loss | 30 | -1.49 | +| UNI | 05-16 06:00 | 05-16 07:00 | stop_loss | 1 | -1.49 | +| APT | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| ARB | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| AVAX | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| BONK | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| FET | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| FIL | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| INJ | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| KAS | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| LTC | 05-16 06:00 | 05-16 09:00 | stop_loss | 3 | -1.49 | +| NEAR | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| OP | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| PEPE | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| SEI | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| SHIB | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| TIA | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| WIF | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| ETC | 05-16 07:00 | 05-16 10:00 | stop_loss | 3 | -1.49 | +| KAS | 05-16 09:00 | 05-16 10:00 | stop_loss | 1 | -1.49 | +| SUI | 05-16 09:00 | 05-16 10:00 | stop_loss | 1 | -1.49 | +| INJ | 05-16 09:00 | 05-16 12:00 | trailing_stop | 3 | +0.11 | +| FIL | 05-16 09:00 | 05-16 14:00 | take_profit | 5 | +1.49 | +| SHIB | 05-16 09:00 | 05-16 14:00 | stop_loss | 5 | -1.49 | +| ARB | 05-16 09:00 | 05-16 15:00 | take_profit | 6 | +1.49 | +| ETC | 05-16 10:00 | 05-16 15:00 | take_profit | 5 | +1.49 | +| SEI | 05-16 09:00 | 05-16 15:00 | take_profit | 6 | +1.49 | +| SUI | 05-16 10:00 | 05-16 15:00 | take_profit | 5 | +1.49 | +| INJ | 05-16 14:00 | 05-16 16:00 | take_profit | 2 | +1.49 | +| OP | 05-16 09:00 | 05-16 16:00 | take_profit | 7 | +1.49 | +| KAS | 05-16 15:00 | 05-16 19:00 | stop_loss | 4 | -1.49 | +| FET | 05-16 09:00 | 05-16 22:00 | trailing_stop | 13 | -0.28 | +| OP | 05-16 16:00 | 05-16 22:00 | stop_loss | 6 | -1.49 | +| FIL | 05-16 15:00 | 05-16 23:00 | confirmed_bearish_exit | 8 | -1.09 | +| TIA | 05-16 09:00 | 05-16 23:00 | stop_loss | 14 | -1.49 | +| APT | 05-16 09:00 | 05-17 00:00 | stop_loss | 15 | -1.49 | +| ARB | 05-16 15:00 | 05-17 00:00 | stop_loss | 9 | -1.49 | +| AVAX | 05-16 09:00 | 05-17 00:00 | trailing_stop | 15 | -0.48 | +| BONK | 05-16 09:00 | 05-17 00:00 | trailing_stop | 15 | -0.43 | +| PEPE | 05-16 09:00 | 05-17 00:00 | trailing_stop | 15 | -0.43 | +| RENDER | 05-16 16:00 | 05-17 00:00 | stop_loss | 8 | -1.49 | +| WIF | 05-16 09:00 | 05-17 00:00 | trailing_stop | 15 | -0.29 | +| NEAR | 05-16 17:00 | 05-17 01:00 | stop_loss | 8 | -1.49 | +| SUI | 05-16 16:00 | 05-17 01:00 | stop_loss | 9 | -1.49 | +| UNI | 05-16 09:00 | 05-17 01:00 | stop_loss | 16 | -1.49 | +| APT | 05-17 02:00 | 05-17 07:00 | take_profit | 5 | +1.49 | +| KAS | 05-16 19:00 | 05-17 07:00 | trailing_stop | 12 | +0.21 | +| WIF | 05-17 01:00 | 05-17 08:00 | take_profit | 7 | +1.49 | +| OP | 05-17 07:00 | 05-17 13:00 | stop_loss | 6 | -1.49 | +| LTC | 05-16 09:00 | 05-17 17:00 | trailing_stop | 32 | -0.53 | +| SHIB | 05-17 01:00 | 05-17 17:00 | trailing_stop | 16 | -0.31 | +| INJ | 05-17 18:00 | 05-17 22:00 | stop_loss | 4 | -1.49 | +| TIA | 05-17 17:00 | 05-17 22:00 | trailing_stop | 5 | -0.11 | +| ATOM | 05-17 22:00 | 05-17 23:00 | stop_loss | 1 | -1.49 | +| AVAX | 05-17 22:00 | 05-17 23:00 | stop_loss | 1 | -1.49 | +| BONK | 05-17 22:00 | 05-17 23:00 | stop_loss | 1 | -1.49 | +| SEI | 05-17 19:00 | 05-17 23:00 | stop_loss | 4 | -1.49 | +| TIA | 05-17 22:00 | 05-17 23:00 | stop_loss | 1 | -1.49 | +| ARB | 05-17 23:00 | 05-18 00:00 | stop_loss | 1 | -1.49 | +| ATOM | 05-17 23:00 | 05-18 00:00 | stop_loss | 1 | -1.49 | +| BONK | 05-17 23:00 | 05-18 00:00 | stop_loss | 1 | -1.49 | +| FET | 05-17 23:00 | 05-18 00:00 | stop_loss | 1 | -1.49 | +| KAS | 05-17 23:00 | 05-18 00:00 | stop_loss | 1 | -1.49 | +| NEAR | 05-17 23:00 | 05-18 00:00 | stop_loss | 1 | -1.49 | +| OP | 05-17 23:00 | 05-18 00:00 | stop_loss | 1 | -1.49 | +| PEPE | 05-17 23:00 | 05-18 00:00 | stop_loss | 1 | -1.49 | +| RENDER | 05-17 23:00 | 05-18 00:00 | stop_loss | 1 | -1.49 | +| SEI | 05-17 23:00 | 05-18 00:00 | stop_loss | 1 | -1.49 | +| SUI | 05-17 23:00 | 05-18 00:00 | stop_loss | 1 | -1.49 | +| TIA | 05-17 23:00 | 05-18 00:00 | stop_loss | 1 | -1.49 | +| WIF | 05-17 23:00 | 05-18 00:00 | stop_loss | 1 | -1.49 | +| FET | 05-18 00:00 | 05-18 01:00 | stop_loss | 1 | -1.49 | +| INJ | 05-17 23:00 | 05-18 01:00 | trailing_stop | 2 | -0.16 | +| LTC | 05-17 23:00 | 05-18 01:00 | stop_loss | 2 | -1.49 | +| NEAR | 05-18 00:00 | 05-18 01:00 | stop_loss | 1 | -1.49 | +| OP | 05-18 00:00 | 05-18 01:00 | stop_loss | 1 | -1.49 | +| RENDER | 05-18 00:00 | 05-18 01:00 | stop_loss | 1 | -1.49 | +| UNI | 05-17 23:00 | 05-18 01:00 | stop_loss | 2 | -1.49 | +| WIF | 05-18 00:00 | 05-18 01:00 | stop_loss | 1 | -1.49 | +| ATOM | 05-18 00:00 | 05-18 04:00 | take_profit | 4 | +1.49 | +| SEI | 05-18 00:00 | 05-18 05:00 | stop_loss | 5 | -1.49 | +| AVAX | 05-17 23:00 | 05-18 06:00 | stop_loss | 7 | -1.49 | +| BONK | 05-18 00:00 | 05-18 06:00 | stop_loss | 6 | -1.49 | +| ETC | 05-17 23:00 | 05-18 06:00 | stop_loss | 7 | -1.49 | +| FET | 05-18 01:00 | 05-18 06:00 | stop_loss | 5 | -1.49 | +| FIL | 05-17 23:00 | 05-18 06:00 | stop_loss | 7 | -1.49 | +| PEPE | 05-18 00:00 | 05-18 06:00 | stop_loss | 6 | -1.49 | +| RENDER | 05-18 01:00 | 05-18 06:00 | stop_loss | 5 | -1.49 | +| SHIB | 05-17 23:00 | 05-18 06:00 | stop_loss | 7 | -1.49 | +| SUI | 05-18 00:00 | 05-18 06:00 | stop_loss | 6 | -1.49 | +| WIF | 05-18 01:00 | 05-18 06:00 | stop_loss | 5 | -1.49 | +| OP | 05-18 01:00 | 05-18 07:00 | stop_loss | 6 | -1.49 | +| UNI | 05-18 01:00 | 05-18 07:00 | stop_loss | 6 | -1.49 | +| ARB | 05-18 00:00 | 05-18 10:00 | stop_loss | 10 | -1.49 | +| LTC | 05-18 01:00 | 05-18 10:00 | stop_loss | 9 | -1.49 | +| NEAR | 05-18 07:00 | 05-18 10:00 | take_profit | 3 | +1.49 | +| OP | 05-18 14:00 | 05-18 15:00 | stop_loss | 1 | -1.49 | +| RENDER | 05-18 14:00 | 05-18 15:00 | trailing_stop | 1 | -0.62 | +| SEI | 05-18 14:00 | 05-18 18:00 | trailing_stop | 4 | -0.54 | +| AVAX | 05-18 18:00 | 05-18 19:00 | trailing_stop | 1 | -0.05 | +| BONK | 05-18 14:00 | 05-18 19:00 | take_profit | 5 | +1.49 | +| PEPE | 05-18 18:00 | 05-18 19:00 | take_profit | 1 | +1.49 | +| ATOM | 05-18 18:00 | 05-18 22:00 | take_profit | 4 | +1.49 | +| ARB | 05-19 11:00 | 05-19 13:00 | trailing_stop | 2 | -0.58 | +| ETC | 05-19 09:00 | 05-19 14:00 | stop_loss | 5 | -1.49 | +| UNI | 05-19 13:00 | 05-19 14:00 | stop_loss | 1 | -1.49 | +| ATOM | 05-19 14:00 | 05-19 16:00 | take_profit | 2 | +1.49 | +| INJ | 05-19 14:00 | 05-19 16:00 | take_profit | 2 | +1.49 | +| RENDER | 05-19 14:00 | 05-19 16:00 | take_profit | 2 | +1.49 | +| ETC | 05-19 14:00 | 05-19 17:00 | take_profit | 3 | +1.49 | +| KAS | 05-19 14:00 | 05-19 19:00 | trailing_stop | 5 | -0.07 | +| BONK | 05-19 14:00 | 05-19 20:00 | confirmed_bearish_exit | 6 | +0.36 | +| FET | 05-19 14:00 | 05-19 21:00 | trailing_stop | 7 | -0.34 | +| ARB | 05-19 14:00 | 05-19 22:00 | stop_loss | 8 | -1.49 | +| OP | 05-19 14:00 | 05-19 22:00 | trailing_stop | 8 | -0.68 | +| LTC | 05-19 11:00 | 05-20 00:00 | trailing_stop | 13 | -0.65 | +| SEI | 05-19 14:00 | 05-20 00:00 | stop_loss | 10 | -1.49 | +| SUI | 05-20 00:00 | 05-20 06:00 | take_profit | 6 | +1.49 | +| UNI | 05-19 14:00 | 05-20 06:00 | take_profit | 16 | +1.49 | +| OP | 05-19 22:00 | 05-20 12:00 | trailing_stop | 14 | -0.21 | +| SHIB | 05-19 14:00 | 05-20 12:00 | confirmed_bearish_exit | 22 | +0.76 | +| WIF | 05-19 11:00 | 05-20 12:00 | take_profit | 25 | +1.49 | +| ATOM | 05-20 00:00 | 05-20 13:00 | stop_loss | 13 | -1.49 | +| FIL | 05-19 14:00 | 05-20 13:00 | trailing_stop | 23 | -0.00 | +| PEPE | 05-19 14:00 | 05-20 13:00 | trailing_stop | 23 | -0.10 | +| AVAX | 05-19 11:00 | 05-20 14:00 | take_profit | 27 | +1.49 | +| ARB | 05-20 21:00 | 05-20 23:00 | stop_loss | 2 | -1.49 | +| INJ | 05-20 22:00 | 05-20 23:00 | stop_loss | 1 | -1.49 | +| ARB | 05-20 23:00 | 05-21 00:00 | trailing_stop | 1 | -0.09 | +| INJ | 05-20 23:00 | 05-21 03:00 | take_profit | 4 | +1.49 | +| TRX | 05-19 09:00 | 05-21 09:00 | take_profit | 48 | +1.49 | +| ETC | 05-21 06:00 | 05-21 10:00 | trailing_stop | 4 | -0.69 | +| KAS | 05-21 10:00 | 05-21 13:00 | stop_loss | 3 | -1.49 | +| TIA | 05-21 10:00 | 05-21 13:00 | take_profit | 3 | +1.49 | +| ARB | 05-21 10:00 | 05-21 14:00 | take_profit | 4 | +1.49 | +| UNI | 05-21 11:00 | 05-21 16:00 | stop_loss | 5 | -1.49 | +| ATOM | 05-21 15:00 | 05-21 17:00 | trailing_stop | 2 | -0.27 | +| ETC | 05-21 10:00 | 05-21 17:00 | trailing_stop | 7 | -0.59 | +| KAS | 05-21 13:00 | 05-21 17:00 | trailing_stop | 4 | -0.02 | +| ATOM | 05-21 18:00 | 05-22 01:00 | confirmed_bearish_exit | 7 | +0.64 | +| LTC | 05-21 10:00 | 05-22 07:00 | take_profit | 21 | +1.49 | +| TRX | 05-22 12:00 | 05-22 13:00 | stop_loss | 1 | -1.49 | +| PEPE | 05-22 14:00 | 05-22 18:00 | stop_loss | 4 | -1.49 | +| APT | 05-22 18:00 | 05-22 19:00 | stop_loss | 1 | -1.49 | +| ARB | 05-22 18:00 | 05-22 19:00 | stop_loss | 1 | -1.49 | +| AVAX | 05-22 18:00 | 05-22 19:00 | stop_loss | 1 | -1.49 | +| BONK | 05-22 18:00 | 05-22 19:00 | stop_loss | 1 | -1.49 | +| FIL | 05-22 18:00 | 05-22 19:00 | stop_loss | 1 | -1.49 | +| LTC | 05-22 14:00 | 05-22 19:00 | stop_loss | 5 | -1.49 | +| OP | 05-22 18:00 | 05-22 19:00 | stop_loss | 1 | -1.49 | +| PEPE | 05-22 18:00 | 05-22 19:00 | stop_loss | 1 | -1.49 | +| SEI | 05-22 18:00 | 05-22 19:00 | stop_loss | 1 | -1.49 | +| SHIB | 05-22 18:00 | 05-22 19:00 | stop_loss | 1 | -1.49 | +| WIF | 05-22 18:00 | 05-22 19:00 | stop_loss | 1 | -1.49 | +| NEAR | 05-22 21:00 | 05-22 22:00 | stop_loss | 1 | -1.49 | +| SEI | 05-22 19:00 | 05-22 22:00 | trailing_stop | 3 | -0.70 | +| APT | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| AVAX | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| BONK | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| ETC | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| FET | 05-22 21:00 | 05-22 23:00 | stop_loss | 2 | -1.49 | +| FIL | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| KAS | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| LTC | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| OP | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| PEPE | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| RENDER | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| SEI | 05-22 22:00 | 05-22 23:00 | stop_loss | 1 | -1.49 | +| SHIB | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| SUI | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| UNI | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| WIF | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| NEAR | 05-22 22:00 | 05-23 00:00 | trailing_stop | 2 | -0.51 | +| OP | 05-22 23:00 | 05-23 00:00 | stop_loss | 1 | -1.49 | +| TIA | 05-22 23:00 | 05-23 00:00 | stop_loss | 1 | -1.49 | +| UNI | 05-22 23:00 | 05-23 00:00 | stop_loss | 1 | -1.49 | +| ATOM | 05-22 19:00 | 05-23 01:00 | take_profit | 6 | +1.49 | +| BONK | 05-22 23:00 | 05-23 01:00 | confirmed_bearish_exit | 2 | -0.11 | +| FET | 05-22 23:00 | 05-23 01:00 | trailing_stop | 2 | -0.40 | +| APT | 05-22 23:00 | 05-23 02:00 | confirmed_bearish_exit | 3 | -0.01 | +| ARB | 05-22 19:00 | 05-23 02:00 | confirmed_bearish_exit | 7 | +0.14 | +| ARB | 05-23 03:00 | 05-23 05:00 | stop_loss | 2 | -1.49 | +| INJ | 05-23 04:00 | 05-23 05:00 | stop_loss | 1 | -1.49 | +| FET | 05-23 05:00 | 05-23 06:00 | stop_loss | 1 | -1.49 | +| SEI | 05-22 23:00 | 05-23 06:00 | stop_loss | 7 | -1.49 | +| WIF | 05-22 23:00 | 05-23 06:00 | stop_loss | 7 | -1.49 | +| ATOM | 05-23 05:00 | 05-23 07:00 | stop_loss | 2 | -1.49 | +| AVAX | 05-22 23:00 | 05-23 07:00 | stop_loss | 8 | -1.49 | +| ETC | 05-23 03:00 | 05-23 07:00 | stop_loss | 4 | -1.49 | +| FIL | 05-22 23:00 | 05-23 07:00 | stop_loss | 8 | -1.49 | +| INJ | 05-23 05:00 | 05-23 07:00 | stop_loss | 2 | -1.49 | +| KAS | 05-23 03:00 | 05-23 07:00 | stop_loss | 4 | -1.49 | +| LTC | 05-22 23:00 | 05-23 07:00 | stop_loss | 8 | -1.49 | +| PEPE | 05-22 23:00 | 05-23 07:00 | stop_loss | 8 | -1.49 | +| SHIB | 05-22 23:00 | 05-23 07:00 | stop_loss | 8 | -1.49 | +| UNI | 05-23 00:00 | 05-23 07:00 | stop_loss | 7 | -1.49 | +| INJ | 05-23 07:00 | 05-23 08:00 | trailing_stop | 1 | -0.14 | +| KAS | 05-23 07:00 | 05-23 08:00 | stop_loss | 1 | -1.49 | +| KAS | 05-23 08:00 | 05-23 09:00 | stop_loss | 1 | -1.49 | +| TRX | 05-22 13:00 | 05-23 10:00 | trailing_stop | 21 | -0.71 | +| ATOM | 05-23 07:00 | 05-23 12:00 | stop_loss | 5 | -1.49 | +| BONK | 05-23 07:00 | 05-23 13:00 | take_profit | 6 | +1.49 | +| INJ | 05-23 12:00 | 05-23 13:00 | take_profit | 1 | +1.49 | +| KAS | 05-23 09:00 | 05-23 13:00 | trailing_stop | 4 | -0.27 | +| PEPE | 05-23 07:00 | 05-23 13:00 | trailing_stop | 6 | -0.65 | +| SUI | 05-23 07:00 | 05-23 13:00 | take_profit | 6 | +1.49 | +| WIF | 05-23 07:00 | 05-23 13:00 | trailing_stop | 6 | -0.50 | +| APT | 05-23 07:00 | 05-23 14:00 | take_profit | 7 | +1.49 | +| ARB | 05-23 07:00 | 05-23 14:00 | take_profit | 7 | +1.49 | +| AVAX | 05-23 07:00 | 05-23 14:00 | take_profit | 7 | +1.49 | +| FIL | 05-23 07:00 | 05-23 14:00 | take_profit | 7 | +1.49 | +| LTC | 05-23 07:00 | 05-23 18:00 | take_profit | 11 | +1.49 | +| SHIB | 05-23 07:00 | 05-23 18:00 | take_profit | 11 | +1.49 | +| ATOM | 05-23 15:00 | 05-23 20:00 | take_profit | 5 | +1.49 | +| TIA | 05-24 09:00 | 05-24 10:00 | stop_loss | 1 | -1.49 | +| ARB | 05-24 10:00 | 05-24 12:00 | stop_loss | 2 | -1.49 | +| INJ | 05-24 10:00 | 05-24 12:00 | stop_loss | 2 | -1.49 | +| OP | 05-24 10:00 | 05-24 12:00 | stop_loss | 2 | -1.49 | +| SUI | 05-24 10:00 | 05-24 12:00 | stop_loss | 2 | -1.49 | +| TIA | 05-24 10:00 | 05-24 12:00 | stop_loss | 2 | -1.49 | +| WIF | 05-24 10:00 | 05-24 12:00 | stop_loss | 2 | -1.49 | +| APT | 05-24 10:00 | 05-24 13:00 | stop_loss | 3 | -1.49 | +| BONK | 05-24 10:00 | 05-24 13:00 | stop_loss | 3 | -1.49 | +| FIL | 05-24 10:00 | 05-24 13:00 | stop_loss | 3 | -1.49 | +| OP | 05-24 12:00 | 05-24 13:00 | stop_loss | 1 | -1.49 | +| PEPE | 05-24 10:00 | 05-24 13:00 | stop_loss | 3 | -1.49 | +| SEI | 05-24 10:00 | 05-24 13:00 | stop_loss | 3 | -1.49 | +| UNI | 05-24 10:00 | 05-24 13:00 | stop_loss | 3 | -1.49 | +| APT | 05-24 13:00 | 05-24 14:00 | stop_loss | 1 | -1.49 | +| ARB | 05-24 12:00 | 05-24 14:00 | stop_loss | 2 | -1.49 | +| AVAX | 05-24 10:00 | 05-24 14:00 | stop_loss | 4 | -1.49 | +| BONK | 05-24 13:00 | 05-24 14:00 | stop_loss | 1 | -1.49 | +| FIL | 05-24 13:00 | 05-24 14:00 | stop_loss | 1 | -1.49 | +| KAS | 05-24 13:00 | 05-24 14:00 | stop_loss | 1 | -1.49 | +| LTC | 05-24 10:00 | 05-24 14:00 | stop_loss | 4 | -1.49 | +| OP | 05-24 13:00 | 05-24 14:00 | stop_loss | 1 | -1.49 | +| PEPE | 05-24 13:00 | 05-24 14:00 | stop_loss | 1 | -1.49 | +| SHIB | 05-24 10:00 | 05-24 14:00 | stop_loss | 4 | -1.49 | +| TRX | 05-23 10:00 | 05-24 14:00 | take_profit | 28 | +1.49 | +| UNI | 05-24 13:00 | 05-24 14:00 | stop_loss | 1 | -1.49 | +| WIF | 05-24 12:00 | 05-24 14:00 | stop_loss | 2 | -1.49 | +| KAS | 05-24 14:00 | 05-24 18:00 | stop_loss | 4 | -1.49 | +| SUI | 05-24 14:00 | 05-24 20:00 | stop_loss | 6 | -1.49 | +| ATOM | 05-24 14:00 | 05-24 21:00 | stop_loss | 7 | -1.49 | +| AVAX | 05-24 14:00 | 05-24 21:00 | stop_loss | 7 | -1.49 | +| FIL | 05-24 14:00 | 05-24 21:00 | stop_loss | 7 | -1.49 | +| LTC | 05-24 14:00 | 05-24 21:00 | stop_loss | 7 | -1.49 | +| SEI | 05-24 14:00 | 05-24 21:00 | stop_loss | 7 | -1.49 | +| SHIB | 05-24 14:00 | 05-24 21:00 | stop_loss | 7 | -1.49 | +| SUI | 05-24 20:00 | 05-24 21:00 | stop_loss | 1 | -1.49 | +| UNI | 05-24 14:00 | 05-24 21:00 | stop_loss | 7 | -1.49 | +| WIF | 05-24 14:00 | 05-24 21:00 | stop_loss | 7 | -1.49 | +| ATOM | 05-24 21:00 | 05-24 22:00 | take_profit | 1 | +1.49 | +| FET | 05-24 21:00 | 05-24 22:00 | take_profit | 1 | +1.49 | +| RENDER | 05-24 21:00 | 05-24 22:00 | take_profit | 1 | +1.49 | +| SUI | 05-24 21:00 | 05-24 22:00 | take_profit | 1 | +1.49 | +| TIA | 05-24 21:00 | 05-24 22:00 | take_profit | 1 | +1.49 | +| WIF | 05-24 21:00 | 05-24 22:00 | trailing_stop | 1 | +0.02 | +| BONK | 05-24 21:00 | 05-24 23:00 | take_profit | 2 | +1.49 | +| ETC | 05-24 21:00 | 05-24 23:00 | confirmed_bearish_exit | 2 | +0.91 | +| FIL | 05-24 21:00 | 05-24 23:00 | take_profit | 2 | +1.49 | +| APT | 05-24 21:00 | 05-25 00:00 | take_profit | 3 | +1.49 | +| OP | 05-24 21:00 | 05-25 00:00 | take_profit | 3 | +1.49 | +| PEPE | 05-24 21:00 | 05-25 00:00 | take_profit | 3 | +1.49 | +| SEI | 05-24 21:00 | 05-25 00:00 | take_profit | 3 | +1.49 | +| UNI | 05-24 21:00 | 05-25 00:00 | take_profit | 3 | +1.49 | +| ARB | 05-24 21:00 | 05-25 01:00 | take_profit | 4 | +1.49 | +| KAS | 05-24 18:00 | 05-25 02:00 | take_profit | 8 | +1.49 | +| WIF | 05-25 01:00 | 05-25 04:00 | trailing_stop | 3 | -0.43 | +| AVAX | 05-24 21:00 | 05-25 05:00 | take_profit | 8 | +1.49 | +| NEAR | 05-25 04:00 | 05-25 05:00 | stop_loss | 1 | -1.49 | +| SHIB | 05-24 21:00 | 05-25 05:00 | take_profit | 8 | +1.49 | +| LTC | 05-24 21:00 | 05-25 07:00 | take_profit | 10 | +1.49 | +| UNI | 05-25 01:00 | 05-25 07:00 | take_profit | 6 | +1.49 | +| PEPE | 05-25 01:00 | 05-25 10:00 | take_profit | 9 | +1.49 | +| UNI | 05-25 20:00 | 05-26 00:00 | stop_loss | 4 | -1.49 | +| PEPE | 05-26 00:00 | 05-26 01:00 | stop_loss | 1 | -1.49 | +| BONK | 05-26 00:00 | 05-26 03:00 | stop_loss | 3 | -1.49 | +| SEI | 05-26 00:00 | 05-26 03:00 | trailing_stop | 3 | -0.70 | +| OP | 05-26 03:00 | 05-26 05:00 | take_profit | 2 | +1.49 | +| SUI | 05-26 01:00 | 05-26 05:00 | take_profit | 4 | +1.49 | +| AVAX | 05-26 00:00 | 05-26 10:00 | take_profit | 10 | +1.49 | +| BONK | 05-26 03:00 | 05-26 10:00 | take_profit | 7 | +1.49 | +| ETC | 05-26 00:00 | 05-26 10:00 | trailing_stop | 10 | -0.39 | +| INJ | 05-26 07:00 | 05-26 10:00 | take_profit | 3 | +1.49 | +| PEPE | 05-26 01:00 | 05-26 10:00 | take_profit | 9 | +1.49 | +| SHIB | 05-25 22:00 | 05-26 10:00 | trailing_stop | 12 | -0.29 | +| UNI | 05-26 00:00 | 05-26 10:00 | take_profit | 10 | +1.49 | +| LTC | 05-25 22:00 | 05-26 17:00 | stop_loss | 19 | -1.49 | +| NEAR | 05-26 18:00 | 05-26 19:00 | stop_loss | 1 | -1.49 | +| KAS | 05-26 18:00 | 05-27 00:00 | confirmed_bearish_exit | 6 | +0.11 | +| APT | 05-27 01:00 | 05-27 04:00 | stop_loss | 3 | -1.49 | +| ARB | 05-27 02:00 | 05-27 04:00 | stop_loss | 2 | -1.49 | +| AVAX | 05-27 02:00 | 05-27 04:00 | stop_loss | 2 | -1.49 | +| BONK | 05-27 02:00 | 05-27 04:00 | stop_loss | 2 | -1.49 | +| ETC | 05-26 17:00 | 05-27 04:00 | stop_loss | 11 | -1.49 | +| INJ | 05-27 03:00 | 05-27 04:00 | stop_loss | 1 | -1.49 | +| KAS | 05-27 01:00 | 05-27 04:00 | stop_loss | 3 | -1.49 | +| PEPE | 05-27 01:00 | 05-27 04:00 | stop_loss | 3 | -1.49 | +| SHIB | 05-27 02:00 | 05-27 04:00 | stop_loss | 2 | -1.49 | +| SUI | 05-27 02:00 | 05-27 04:00 | stop_loss | 2 | -1.49 | +| UNI | 05-27 01:00 | 05-27 04:00 | stop_loss | 3 | -1.49 | +| RENDER | 05-27 07:00 | 05-27 09:00 | trailing_stop | 2 | -0.62 | +| UNI | 05-27 04:00 | 05-27 09:00 | trailing_stop | 5 | -0.66 | +| TIA | 05-27 11:00 | 05-27 12:00 | take_profit | 1 | +1.49 | +| LTC | 05-26 18:00 | 05-27 15:00 | take_profit | 21 | +1.49 | +| TRX | 05-27 04:00 | 05-27 18:00 | stop_loss | 14 | -1.49 | +| ATOM | 05-27 16:00 | 05-27 21:00 | stop_loss | 5 | -1.49 | +| SEI | 05-27 20:00 | 05-27 21:00 | stop_loss | 1 | -1.49 | +| SUI | 05-27 17:00 | 05-27 21:00 | stop_loss | 4 | -1.49 | +| SEI | 05-27 21:00 | 05-27 22:00 | stop_loss | 1 | -1.49 | +| TIA | 05-27 21:00 | 05-27 22:00 | stop_loss | 1 | -1.49 | +| UNI | 05-27 21:00 | 05-27 23:00 | stop_loss | 2 | -1.49 | +| WIF | 05-27 21:00 | 05-27 23:00 | stop_loss | 2 | -1.49 | +| SEI | 05-27 22:00 | 05-28 00:00 | trailing_stop | 2 | +0.14 | +| ARB | 05-27 21:00 | 05-28 01:00 | stop_loss | 4 | -1.49 | +| BONK | 05-27 21:00 | 05-28 01:00 | stop_loss | 4 | -1.49 | +| ETC | 05-27 21:00 | 05-28 01:00 | stop_loss | 4 | -1.49 | +| INJ | 05-27 21:00 | 05-28 01:00 | trailing_stop | 4 | -0.68 | +| SUI | 05-27 21:00 | 05-28 01:00 | stop_loss | 4 | -1.49 | +| TIA | 05-27 22:00 | 05-28 01:00 | stop_loss | 3 | -1.49 | +| UNI | 05-27 23:00 | 05-28 01:00 | stop_loss | 2 | -1.49 | +| WIF | 05-27 23:00 | 05-28 01:00 | stop_loss | 2 | -1.49 | +| ATOM | 05-27 21:00 | 05-28 03:00 | stop_loss | 6 | -1.49 | +| AVAX | 05-27 21:00 | 05-28 03:00 | stop_loss | 6 | -1.49 | +| BONK | 05-28 01:00 | 05-28 03:00 | stop_loss | 2 | -1.49 | +| ETC | 05-28 01:00 | 05-28 03:00 | stop_loss | 2 | -1.49 | +| FET | 05-28 02:00 | 05-28 03:00 | stop_loss | 1 | -1.49 | +| KAS | 05-27 21:00 | 05-28 03:00 | stop_loss | 6 | -1.49 | +| LTC | 05-27 21:00 | 05-28 03:00 | stop_loss | 6 | -1.49 | +| PEPE | 05-27 21:00 | 05-28 03:00 | stop_loss | 6 | -1.49 | +| RENDER | 05-28 02:00 | 05-28 03:00 | stop_loss | 1 | -1.49 | +| SHIB | 05-27 21:00 | 05-28 03:00 | stop_loss | 6 | -1.49 | +| UNI | 05-28 01:00 | 05-28 03:00 | stop_loss | 2 | -1.49 | +| APT | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| ARB | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| AVAX | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| BONK | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| ETC | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| FET | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| FIL | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| KAS | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| LTC | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| NEAR | 05-28 03:00 | 05-28 04:00 | take_profit | 1 | +1.49 | +| OP | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| PEPE | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| RENDER | 05-28 03:00 | 05-28 04:00 | trailing_stop | 1 | -0.52 | +| SHIB | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| SUI | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| TIA | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| WIF | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| APT | 05-28 04:00 | 05-28 05:00 | stop_loss | 1 | -1.49 | +| AVAX | 05-28 04:00 | 05-28 05:00 | stop_loss | 1 | -1.49 | +| BONK | 05-28 04:00 | 05-28 05:00 | stop_loss | 1 | -1.49 | +| FET | 05-28 04:00 | 05-28 05:00 | stop_loss | 1 | -1.49 | +| FIL | 05-28 04:00 | 05-28 05:00 | stop_loss | 1 | -1.49 | +| KAS | 05-28 04:00 | 05-28 05:00 | stop_loss | 1 | -1.49 | +| OP | 05-28 04:00 | 05-28 05:00 | stop_loss | 1 | -1.49 | +| PEPE | 05-28 04:00 | 05-28 05:00 | stop_loss | 1 | -1.49 | +| SUI | 05-28 04:00 | 05-28 05:00 | stop_loss | 1 | -1.49 | +| TIA | 05-28 04:00 | 05-28 05:00 | stop_loss | 1 | -1.49 | +| WIF | 05-28 04:00 | 05-28 05:00 | stop_loss | 1 | -1.49 | +| ARB | 05-28 04:00 | 05-28 06:00 | stop_loss | 2 | -1.49 | +| FET | 05-28 05:00 | 05-28 06:00 | stop_loss | 1 | -1.49 | +| FIL | 05-28 05:00 | 05-28 06:00 | stop_loss | 1 | -1.49 | +| ARB | 05-28 06:00 | 05-28 07:00 | trailing_stop | 1 | -0.54 | +| SUI | 05-28 05:00 | 05-28 07:00 | trailing_stop | 2 | -0.32 | +| WIF | 05-28 05:00 | 05-28 07:00 | trailing_stop | 2 | -0.08 | +| APT | 05-28 05:00 | 05-28 09:00 | take_profit | 4 | +1.49 | +| TRX | 05-28 06:00 | 05-28 09:00 | stop_loss | 3 | -1.49 | +| UNI | 05-28 03:00 | 05-28 09:00 | stop_loss | 6 | -1.49 | +| BONK | 05-28 05:00 | 05-28 10:00 | stop_loss | 5 | -1.49 | +| ETC | 05-28 04:00 | 05-28 10:00 | stop_loss | 6 | -1.49 | +| FIL | 05-28 06:00 | 05-28 10:00 | stop_loss | 4 | -1.49 | +| TRX | 05-28 09:00 | 05-28 10:00 | stop_loss | 1 | -1.49 | +| INJ | 05-28 09:00 | 05-28 11:00 | stop_loss | 2 | -1.49 | +| KAS | 05-28 05:00 | 05-28 11:00 | trailing_stop | 6 | -0.55 | +| OP | 05-28 05:00 | 05-28 11:00 | trailing_stop | 6 | -0.26 | +| PEPE | 05-28 05:00 | 05-28 11:00 | trailing_stop | 6 | -0.42 | +| ATOM | 05-28 10:00 | 05-28 13:00 | stop_loss | 3 | -1.49 | +| AVAX | 05-28 05:00 | 05-28 14:00 | trailing_stop | 9 | -0.61 | +| APT | 05-28 14:00 | 05-28 16:00 | take_profit | 2 | +1.49 | +| LTC | 05-28 04:00 | 05-28 16:00 | take_profit | 12 | +1.49 | +| SHIB | 05-28 04:00 | 05-28 18:00 | take_profit | 14 | +1.49 | +| ETC | 05-28 16:00 | 05-28 20:00 | trailing_stop | 4 | +0.01 | +| ATOM | 05-28 19:00 | 05-28 21:00 | trailing_stop | 2 | +0.05 | +| SEI | 05-29 02:00 | 05-29 04:00 | trailing_stop | 2 | -0.69 | +| TRX | 05-28 10:00 | 05-29 07:00 | trailing_stop | 21 | -0.60 | +| TRX | 05-29 07:00 | 05-29 08:00 | stop_loss | 1 | -1.49 | +| OP | 05-29 08:00 | 05-29 11:00 | stop_loss | 3 | -1.49 | +| SEI | 05-29 10:00 | 05-29 11:00 | stop_loss | 1 | -1.49 | +| APT | 05-29 11:00 | 05-29 12:00 | stop_loss | 1 | -1.49 | +| ETC | 05-29 08:00 | 05-29 12:00 | stop_loss | 4 | -1.49 | +| FIL | 05-29 11:00 | 05-29 12:00 | stop_loss | 1 | -1.49 | +| SEI | 05-29 11:00 | 05-29 12:00 | stop_loss | 1 | -1.49 | +| FIL | 05-29 12:00 | 05-29 13:00 | stop_loss | 1 | -1.49 | +| OP | 05-29 12:00 | 05-29 13:00 | stop_loss | 1 | -1.49 | +| PEPE | 05-29 11:00 | 05-29 13:00 | stop_loss | 2 | -1.49 | +| SUI | 05-29 11:00 | 05-29 13:00 | stop_loss | 2 | -1.49 | +| APT | 05-29 12:00 | 05-29 14:00 | stop_loss | 2 | -1.49 | +| ARB | 05-29 12:00 | 05-29 14:00 | stop_loss | 2 | -1.49 | +| BONK | 05-29 12:00 | 05-29 14:00 | stop_loss | 2 | -1.49 | +| KAS | 05-29 12:00 | 05-29 14:00 | stop_loss | 2 | -1.49 | +| SEI | 05-29 13:00 | 05-29 14:00 | stop_loss | 1 | -1.49 | +| SUI | 05-29 13:00 | 05-29 14:00 | stop_loss | 1 | -1.49 | +| UNI | 05-29 08:00 | 05-29 14:00 | stop_loss | 6 | -1.49 | +| AVAX | 05-29 14:00 | 05-29 15:00 | take_profit | 1 | +1.49 | +| ETC | 05-29 12:00 | 05-29 15:00 | take_profit | 3 | +1.49 | +| SEI | 05-29 14:00 | 05-29 15:00 | take_profit | 1 | +1.49 | +| NEAR | 05-29 21:00 | 05-29 22:00 | take_profit | 1 | +1.49 | +| SUI | 05-29 21:00 | 05-30 01:00 | take_profit | 4 | +1.49 | +| TRX | 05-29 08:00 | 05-30 03:00 | trailing_stop | 19 | -0.40 | +| RENDER | 05-30 07:00 | 05-30 11:00 | take_profit | 4 | +1.49 | +| NEAR | 05-30 07:00 | 05-30 15:00 | stop_loss | 8 | -1.49 | +| KAS | 05-30 15:00 | 05-30 18:00 | confirmed_bearish_exit | 3 | +0.90 | +| FIL | 05-30 16:00 | 05-30 22:00 | stop_loss | 6 | -1.49 | +| APT | 05-30 16:00 | 05-30 23:00 | stop_loss | 7 | -1.49 | +| TIA | 05-30 22:00 | 05-31 02:00 | stop_loss | 4 | -1.49 | +| TIA | 05-31 02:00 | 05-31 05:00 | stop_loss | 3 | -1.49 | +| ARB | 05-30 22:00 | 05-31 06:00 | trailing_stop | 8 | -0.27 | +| ATOM | 05-30 22:00 | 05-31 07:00 | stop_loss | 9 | -1.49 | +| OP | 05-30 23:00 | 05-31 07:00 | trailing_stop | 8 | -0.22 | +| SEI | 05-31 08:00 | 05-31 09:00 | take_profit | 1 | +1.49 | +| TRX | 05-30 03:00 | 05-31 09:00 | take_profit | 30 | +1.49 | +| INJ | 05-31 06:00 | 05-31 11:00 | take_profit | 5 | +1.49 | +| ARB | 05-31 07:00 | 05-31 14:00 | stop_loss | 7 | -1.49 | +| ATOM | 05-31 07:00 | 05-31 14:00 | stop_loss | 7 | -1.49 | +| ETC | 05-30 15:00 | 05-31 14:00 | stop_loss | 23 | -1.49 | +| OP | 05-31 08:00 | 05-31 14:00 | stop_loss | 6 | -1.49 | +| TIA | 05-31 07:00 | 05-31 14:00 | stop_loss | 7 | -1.49 | +| UNI | 05-31 09:00 | 05-31 14:00 | stop_loss | 5 | -1.49 | +| ARB | 05-31 14:00 | 05-31 16:00 | stop_loss | 2 | -1.49 | +| ATOM | 05-31 14:00 | 05-31 16:00 | stop_loss | 2 | -1.49 | +| FIL | 05-31 14:00 | 05-31 16:00 | stop_loss | 2 | -1.49 | +| KAS | 05-31 14:00 | 05-31 16:00 | stop_loss | 2 | -1.49 | +| SUI | 05-31 14:00 | 05-31 16:00 | stop_loss | 2 | -1.49 | +| FET | 05-31 16:00 | 05-31 17:00 | stop_loss | 1 | -1.49 | +| LTC | 05-31 14:00 | 05-31 17:00 | stop_loss | 3 | -1.49 | +| OP | 05-31 14:00 | 05-31 17:00 | stop_loss | 3 | -1.49 | +| PEPE | 05-31 14:00 | 05-31 17:00 | stop_loss | 3 | -1.49 | +| FIL | 05-31 16:00 | 05-31 19:00 | stop_loss | 3 | -1.49 | +| OP | 05-31 17:00 | 05-31 19:00 | stop_loss | 2 | -1.49 | +| RENDER | 05-31 14:00 | 05-31 19:00 | trailing_stop | 5 | -0.24 | +| APT | 05-31 16:00 | 05-31 21:00 | take_profit | 5 | +1.49 | +| ARB | 05-31 16:00 | 05-31 21:00 | take_profit | 5 | +1.49 | +| SUI | 05-31 16:00 | 05-31 21:00 | take_profit | 5 | +1.49 | +| TIA | 05-31 16:00 | 05-31 21:00 | take_profit | 5 | +1.49 | +| WIF | 05-31 14:00 | 05-31 21:00 | take_profit | 7 | +1.49 | +| BONK | 05-31 14:00 | 05-31 22:00 | take_profit | 8 | +1.49 | +| ATOM | 05-31 16:00 | 06-01 00:00 | take_profit | 8 | +1.49 | +| AVAX | 05-31 14:00 | 06-01 00:00 | take_profit | 10 | +1.49 | +| ETC | 05-31 14:00 | 06-01 01:00 | trailing_stop | 11 | -0.18 | +| FIL | 05-31 23:00 | 06-01 01:00 | trailing_stop | 2 | -0.58 | +| LTC | 05-31 17:00 | 06-01 01:00 | trailing_stop | 8 | -0.69 | +| SHIB | 05-31 15:00 | 06-01 01:00 | trailing_stop | 10 | -0.03 | +| UNI | 05-31 14:00 | 06-01 01:00 | trailing_stop | 11 | -0.23 | +| FIL | 06-01 01:00 | 06-01 02:00 | take_profit | 1 | +1.49 | +| LTC | 06-01 01:00 | 06-01 06:00 | trailing_stop | 5 | -0.58 | +| RENDER | 06-01 13:00 | 06-01 14:00 | stop_loss | 1 | -1.49 | +| ARB | 06-01 13:00 | 06-01 16:00 | take_profit | 3 | +1.49 | +| ATOM | 06-01 13:00 | 06-01 16:00 | stop_loss | 3 | -1.49 | +| KAS | 06-01 13:00 | 06-01 16:00 | take_profit | 3 | +1.49 | +| RENDER | 06-01 14:00 | 06-01 16:00 | take_profit | 2 | +1.49 | +| SUI | 06-01 13:00 | 06-01 16:00 | trailing_stop | 3 | +0.00 | +| UNI | 06-01 13:00 | 06-01 16:00 | trailing_stop | 3 | -0.64 | +| TRX | 06-01 12:00 | 06-01 18:00 | stop_loss | 6 | -1.49 | +| ATOM | 06-01 19:00 | 06-01 21:00 | stop_loss | 2 | -1.49 | +| LTC | 06-02 02:00 | 06-02 05:00 | stop_loss | 3 | -1.49 | +| TRX | 06-01 18:00 | 06-02 06:00 | stop_loss | 12 | -1.49 | +| ATOM | 06-02 01:00 | 06-02 07:00 | stop_loss | 6 | -1.49 | +| KAS | 06-02 07:00 | 06-02 09:00 | stop_loss | 2 | -1.49 | +| SEI | 06-02 09:00 | 06-02 10:00 | trailing_stop | 1 | -0.24 | +| SUI | 06-02 09:00 | 06-02 10:00 | trailing_stop | 1 | -0.63 | +| WIF | 06-02 09:00 | 06-02 10:00 | trailing_stop | 1 | -0.11 | +| SEI | 06-02 10:00 | 06-02 12:00 | confirmed_bearish_exit | 2 | +0.53 | +| APT | 06-02 07:00 | 06-02 14:00 | stop_loss | 7 | -1.49 | +| FIL | 06-02 09:00 | 06-02 14:00 | stop_loss | 5 | -1.49 | +| LTC | 06-02 05:00 | 06-02 14:00 | stop_loss | 9 | -1.49 | +| SEI | 06-02 13:00 | 06-02 14:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-02 09:00 | 06-02 14:00 | stop_loss | 5 | -1.49 | +| APT | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| ARB | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| ATOM | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| AVAX | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| BONK | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| ETC | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| FIL | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| KAS | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| LTC | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| OP | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| SEI | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| TIA | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| UNI | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| WIF | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| APT | 06-02 15:00 | 06-02 16:00 | take_profit | 1 | +1.49 | +| ARB | 06-02 15:00 | 06-02 16:00 | take_profit | 1 | +1.49 | +| BONK | 06-02 15:00 | 06-02 16:00 | take_profit | 1 | +1.49 | +| FIL | 06-02 15:00 | 06-02 16:00 | take_profit | 1 | +1.49 | +| NEAR | 06-02 15:00 | 06-02 16:00 | stop_loss | 1 | -1.49 | +| OP | 06-02 15:00 | 06-02 16:00 | take_profit | 1 | +1.49 | +| RENDER | 06-02 15:00 | 06-02 16:00 | take_profit | 1 | +1.49 | +| SEI | 06-02 15:00 | 06-02 16:00 | take_profit | 1 | +1.49 | +| SUI | 06-02 15:00 | 06-02 16:00 | take_profit | 1 | +1.49 | +| TIA | 06-02 15:00 | 06-02 16:00 | take_profit | 1 | +1.49 | +| UNI | 06-02 15:00 | 06-02 16:00 | take_profit | 1 | +1.49 | +| WIF | 06-02 15:00 | 06-02 16:00 | take_profit | 1 | +1.49 | +| SEI | 06-02 16:00 | 06-02 17:00 | trailing_stop | 1 | -0.35 | +| APT | 06-02 16:00 | 06-02 18:00 | stop_loss | 2 | -1.49 | +| ATOM | 06-02 15:00 | 06-02 18:00 | take_profit | 3 | +1.49 | +| AVAX | 06-02 15:00 | 06-02 18:00 | trailing_stop | 3 | -0.64 | +| BONK | 06-02 16:00 | 06-02 18:00 | stop_loss | 2 | -1.49 | +| FIL | 06-02 16:00 | 06-02 18:00 | stop_loss | 2 | -1.49 | +| PEPE | 06-02 15:00 | 06-02 18:00 | trailing_stop | 3 | -0.34 | +| BONK | 06-02 18:00 | 06-02 19:00 | stop_loss | 1 | -1.49 | +| ETC | 06-02 15:00 | 06-02 19:00 | stop_loss | 4 | -1.49 | +| FET | 06-02 18:00 | 06-02 19:00 | stop_loss | 1 | -1.49 | +| FIL | 06-02 18:00 | 06-02 19:00 | stop_loss | 1 | -1.49 | +| LTC | 06-02 15:00 | 06-02 19:00 | trailing_stop | 4 | -0.48 | +| SHIB | 06-02 15:00 | 06-02 19:00 | stop_loss | 4 | -1.49 | +| FET | 06-02 19:00 | 06-02 20:00 | stop_loss | 1 | -1.49 | +| FIL | 06-02 19:00 | 06-02 20:00 | trailing_stop | 1 | -0.70 | +| WIF | 06-02 19:00 | 06-02 20:00 | stop_loss | 1 | -1.49 | +| FET | 06-02 20:00 | 06-02 21:00 | take_profit | 1 | +1.49 | +| ATOM | 06-02 19:00 | 06-02 22:00 | trailing_stop | 3 | -0.62 | +| SHIB | 06-02 19:00 | 06-02 22:00 | stop_loss | 3 | -1.49 | +| TRX | 06-02 14:00 | 06-02 22:00 | stop_loss | 8 | -1.49 | +| ARB | 06-02 22:00 | 06-02 23:00 | stop_loss | 1 | -1.49 | +| AVAX | 06-02 22:00 | 06-02 23:00 | stop_loss | 1 | -1.49 | +| ETC | 06-02 22:00 | 06-02 23:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-02 22:00 | 06-02 23:00 | stop_loss | 1 | -1.49 | +| SEI | 06-02 22:00 | 06-02 23:00 | stop_loss | 1 | -1.49 | +| SUI | 06-02 22:00 | 06-02 23:00 | stop_loss | 1 | -1.49 | +| TIA | 06-02 22:00 | 06-02 23:00 | stop_loss | 1 | -1.49 | +| UNI | 06-02 22:00 | 06-02 23:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-02 22:00 | 06-03 00:00 | take_profit | 2 | +1.49 | +| LTC | 06-02 22:00 | 06-03 02:00 | take_profit | 4 | +1.49 | +| SEI | 06-02 23:00 | 06-03 02:00 | stop_loss | 3 | -1.49 | +| FET | 06-03 02:00 | 06-03 03:00 | stop_loss | 1 | -1.49 | +| FIL | 06-03 02:00 | 06-03 03:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-03 02:00 | 06-03 03:00 | stop_loss | 1 | -1.49 | +| TRX | 06-02 22:00 | 06-03 03:00 | stop_loss | 5 | -1.49 | +| ARB | 06-03 03:00 | 06-03 04:00 | take_profit | 1 | +1.49 | +| FET | 06-03 03:00 | 06-03 04:00 | take_profit | 1 | +1.49 | +| SUI | 06-03 03:00 | 06-03 04:00 | take_profit | 1 | +1.49 | +| TRX | 06-03 03:00 | 06-03 06:00 | confirmed_bearish_exit | 3 | +0.77 | +| AVAX | 06-03 19:00 | 06-03 20:00 | stop_loss | 1 | -1.49 | +| BONK | 06-03 19:00 | 06-03 20:00 | stop_loss | 1 | -1.49 | +| ETC | 06-03 19:00 | 06-03 20:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-03 19:00 | 06-03 20:00 | stop_loss | 1 | -1.49 | +| APT | 06-03 20:00 | 06-03 21:00 | take_profit | 1 | +1.49 | +| ARB | 06-03 20:00 | 06-03 21:00 | take_profit | 1 | +1.49 | +| AVAX | 06-03 20:00 | 06-03 21:00 | take_profit | 1 | +1.49 | +| BONK | 06-03 20:00 | 06-03 21:00 | take_profit | 1 | +1.49 | +| ETC | 06-03 20:00 | 06-03 21:00 | take_profit | 1 | +1.49 | +| LTC | 06-03 19:00 | 06-03 21:00 | trailing_stop | 2 | -0.45 | +| PEPE | 06-03 20:00 | 06-03 21:00 | take_profit | 1 | +1.49 | +| SEI | 06-03 20:00 | 06-03 21:00 | trailing_stop | 1 | -0.56 | +| SHIB | 06-03 20:00 | 06-03 21:00 | take_profit | 1 | +1.49 | +| SUI | 06-03 20:00 | 06-03 21:00 | take_profit | 1 | +1.49 | +| FET | 06-03 23:00 | 06-04 00:00 | stop_loss | 1 | -1.49 | +| APT | 06-04 00:00 | 06-04 01:00 | stop_loss | 1 | -1.49 | +| ARB | 06-04 00:00 | 06-04 01:00 | stop_loss | 1 | -1.49 | +| BONK | 06-04 00:00 | 06-04 01:00 | stop_loss | 1 | -1.49 | +| ETC | 06-04 00:00 | 06-04 01:00 | stop_loss | 1 | -1.49 | +| FET | 06-04 00:00 | 06-04 01:00 | stop_loss | 1 | -1.49 | +| LTC | 06-04 00:00 | 06-04 01:00 | stop_loss | 1 | -1.49 | +| OP | 06-04 00:00 | 06-04 01:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-04 00:00 | 06-04 01:00 | stop_loss | 1 | -1.49 | +| SEI | 06-04 00:00 | 06-04 01:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-04 00:00 | 06-04 01:00 | stop_loss | 1 | -1.49 | +| TIA | 06-04 00:00 | 06-04 01:00 | stop_loss | 1 | -1.49 | +| UNI | 06-04 00:00 | 06-04 01:00 | stop_loss | 1 | -1.49 | +| APT | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| ARB | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| ATOM | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| AVAX | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| BONK | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| ETC | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| FET | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| FIL | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| INJ | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| LTC | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| OP | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| RENDER | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| SEI | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| SUI | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| TIA | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| UNI | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| WIF | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| APT | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| ARB | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| ATOM | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| BONK | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| ETC | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| FET | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| FIL | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| LTC | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| OP | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| PEPE | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| RENDER | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| SHIB | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| SUI | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| TIA | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| UNI | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| WIF | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| KAS | 06-04 04:00 | 06-04 05:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-04 04:00 | 06-04 05:00 | stop_loss | 1 | -1.49 | +| SEI | 06-04 02:00 | 06-04 05:00 | stop_loss | 3 | -1.49 | +| NEAR | 06-04 05:00 | 06-04 06:00 | stop_loss | 1 | -1.49 | +| KAS | 06-04 05:00 | 06-04 07:00 | stop_loss | 2 | -1.49 | +| NEAR | 06-04 06:00 | 06-04 07:00 | stop_loss | 1 | -1.49 | +| FET | 06-04 07:00 | 06-04 08:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-04 07:00 | 06-04 08:00 | stop_loss | 1 | -1.49 | +| RENDER | 06-04 07:00 | 06-04 08:00 | stop_loss | 1 | -1.49 | +| ATOM | 06-04 07:00 | 06-04 09:00 | stop_loss | 2 | -1.49 | +| FET | 06-04 08:00 | 06-04 09:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-04 08:00 | 06-04 09:00 | stop_loss | 1 | -1.49 | +| RENDER | 06-04 08:00 | 06-04 09:00 | stop_loss | 1 | -1.49 | +| ETC | 06-04 09:00 | 06-04 10:00 | stop_loss | 1 | -1.49 | +| RENDER | 06-04 09:00 | 06-04 10:00 | stop_loss | 1 | -1.49 | +| TRX | 06-04 01:00 | 06-04 10:00 | stop_loss | 9 | -1.49 | +| ARB | 06-04 10:00 | 06-04 11:00 | trailing_stop | 1 | +0.01 | +| FET | 06-04 10:00 | 06-04 11:00 | stop_loss | 1 | -1.49 | +| RENDER | 06-04 10:00 | 06-04 11:00 | stop_loss | 1 | -1.49 | +| ATOM | 06-04 09:00 | 06-04 12:00 | take_profit | 3 | +1.49 | +| ETC | 06-04 10:00 | 06-04 12:00 | take_profit | 2 | +1.49 | +| INJ | 06-04 11:00 | 06-04 12:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-04 14:00 | 06-04 15:00 | take_profit | 1 | +1.49 | +| OP | 06-04 13:00 | 06-04 15:00 | take_profit | 2 | +1.49 | +| RENDER | 06-04 14:00 | 06-04 15:00 | take_profit | 1 | +1.49 | +| SEI | 06-04 14:00 | 06-04 16:00 | stop_loss | 2 | -1.49 | +| FET | 06-04 16:00 | 06-04 17:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-04 16:00 | 06-04 17:00 | stop_loss | 1 | -1.49 | +| FET | 06-04 17:00 | 06-04 18:00 | stop_loss | 1 | -1.49 | +| KAS | 06-04 13:00 | 06-04 18:00 | trailing_stop | 5 | -0.67 | +| NEAR | 06-04 17:00 | 06-04 18:00 | stop_loss | 1 | -1.49 | +| RENDER | 06-04 17:00 | 06-04 18:00 | stop_loss | 1 | -1.49 | +| FET | 06-04 18:00 | 06-04 19:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-04 18:00 | 06-04 19:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-04 17:00 | 06-04 20:00 | stop_loss | 3 | -1.49 | +| AVAX | 06-04 17:00 | 06-04 21:00 | stop_loss | 4 | -1.49 | +| UNI | 06-04 17:00 | 06-04 21:00 | stop_loss | 4 | -1.49 | +| TRX | 06-04 10:00 | 06-05 00:00 | trailing_stop | 14 | -0.13 | +| ARB | 06-05 02:00 | 06-05 03:00 | stop_loss | 1 | -1.49 | +| AVAX | 06-05 02:00 | 06-05 03:00 | stop_loss | 1 | -1.49 | +| FET | 06-05 02:00 | 06-05 03:00 | take_profit | 1 | +1.49 | +| NEAR | 06-05 02:00 | 06-05 03:00 | stop_loss | 1 | -1.49 | +| APT | 06-05 02:00 | 06-05 04:00 | take_profit | 2 | +1.49 | +| ARB | 06-05 03:00 | 06-05 04:00 | trailing_stop | 1 | +0.14 | +| AVAX | 06-05 03:00 | 06-05 04:00 | take_profit | 1 | +1.49 | +| BONK | 06-05 02:00 | 06-05 04:00 | take_profit | 2 | +1.49 | +| ETC | 06-05 02:00 | 06-05 04:00 | trailing_stop | 2 | +0.18 | +| INJ | 06-05 03:00 | 06-05 04:00 | take_profit | 1 | +1.49 | +| LTC | 06-05 02:00 | 06-05 04:00 | trailing_stop | 2 | -0.60 | +| PEPE | 06-05 02:00 | 06-05 04:00 | trailing_stop | 2 | -0.39 | +| RENDER | 06-05 02:00 | 06-05 04:00 | take_profit | 2 | +1.49 | +| SEI | 06-05 02:00 | 06-05 04:00 | trailing_stop | 2 | -0.52 | +| SUI | 06-05 02:00 | 06-05 04:00 | stop_loss | 2 | -1.49 | +| UNI | 06-05 02:00 | 06-05 04:00 | trailing_stop | 2 | -0.04 | +| WIF | 06-05 02:00 | 06-05 04:00 | take_profit | 2 | +1.49 | +| APT | 06-05 05:00 | 06-05 06:00 | stop_loss | 1 | -1.49 | +| ARB | 06-05 05:00 | 06-05 06:00 | stop_loss | 1 | -1.49 | +| AVAX | 06-05 05:00 | 06-05 06:00 | stop_loss | 1 | -1.49 | +| ETC | 06-05 05:00 | 06-05 06:00 | stop_loss | 1 | -1.49 | +| LTC | 06-05 05:00 | 06-05 06:00 | stop_loss | 1 | -1.49 | +| OP | 06-05 05:00 | 06-05 06:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-05 05:00 | 06-05 06:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-05 02:00 | 06-05 06:00 | stop_loss | 4 | -1.49 | +| SUI | 06-05 05:00 | 06-05 06:00 | stop_loss | 1 | -1.49 | +| TIA | 06-05 05:00 | 06-05 06:00 | stop_loss | 1 | -1.49 | +| UNI | 06-05 05:00 | 06-05 06:00 | stop_loss | 1 | -1.49 | +| APT | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| ARB | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| ATOM | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| AVAX | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| BONK | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| ETC | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| FIL | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| LTC | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| OP | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| RENDER | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| SEI | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| SUI | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| TIA | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| UNI | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| FIL | 06-05 08:00 | 06-05 09:00 | take_profit | 1 | +1.49 | +| PEPE | 06-05 08:00 | 06-05 09:00 | take_profit | 1 | +1.49 | +| SEI | 06-05 08:00 | 06-05 11:00 | stop_loss | 3 | -1.49 | +| SEI | 06-05 13:00 | 06-05 14:00 | take_profit | 1 | +1.49 | +| UNI | 06-05 13:00 | 06-05 14:00 | take_profit | 1 | +1.49 | +| SHIB | 06-05 13:00 | 06-05 15:00 | stop_loss | 2 | -1.49 | +| TRX | 06-05 06:00 | 06-05 15:00 | stop_loss | 9 | -1.49 | +| FIL | 06-05 15:00 | 06-05 16:00 | stop_loss | 1 | -1.49 | +| SEI | 06-05 15:00 | 06-05 16:00 | stop_loss | 1 | -1.49 | +| APT | 06-05 18:00 | 06-05 19:00 | stop_loss | 1 | -1.49 | +| ATOM | 06-05 18:00 | 06-05 19:00 | take_profit | 1 | +1.49 | +| BONK | 06-05 18:00 | 06-05 19:00 | stop_loss | 1 | -1.49 | +| ETC | 06-05 18:00 | 06-05 19:00 | stop_loss | 1 | -1.49 | +| FET | 06-05 18:00 | 06-05 19:00 | stop_loss | 1 | -1.49 | +| OP | 06-05 18:00 | 06-05 19:00 | stop_loss | 1 | -1.49 | +| SEI | 06-05 18:00 | 06-05 19:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-05 18:00 | 06-05 19:00 | stop_loss | 1 | -1.49 | +| UNI | 06-05 18:00 | 06-05 19:00 | stop_loss | 1 | -1.49 | +| WIF | 06-05 18:00 | 06-05 19:00 | stop_loss | 1 | -1.49 | +| AVAX | 06-05 19:00 | 06-05 20:00 | stop_loss | 1 | -1.49 | +| OP | 06-05 23:00 | 06-06 00:00 | take_profit | 1 | +1.49 | +| FIL | 06-05 23:00 | 06-06 01:00 | trailing_stop | 2 | -0.54 | +| ATOM | 06-05 23:00 | 06-06 02:00 | stop_loss | 3 | -1.49 | +| APT | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| ARB | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| ATOM | 06-06 04:00 | 06-06 05:00 | take_profit | 1 | +1.49 | +| AVAX | 06-06 04:00 | 06-06 05:00 | take_profit | 1 | +1.49 | +| BONK | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| FIL | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| LTC | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| OP | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| TIA | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| WIF | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| INJ | 06-06 22:00 | 06-06 23:00 | trailing_stop | 1 | -0.56 | +| TRX | 06-05 15:00 | 06-07 07:00 | take_profit | 40 | +1.49 | +| APT | 06-07 19:00 | 06-07 20:00 | trailing_stop | 1 | -0.33 | +| ARB | 06-07 19:00 | 06-07 20:00 | trailing_stop | 1 | -0.58 | +| AVAX | 06-07 19:00 | 06-07 20:00 | trailing_stop | 1 | -0.64 | +| OP | 06-07 19:00 | 06-07 20:00 | take_profit | 1 | +1.49 | +| RENDER | 06-07 19:00 | 06-07 20:00 | trailing_stop | 1 | -0.41 | +| LTC | 06-07 19:00 | 06-07 22:00 | take_profit | 3 | +1.49 | +| UNI | 06-07 21:00 | 06-07 22:00 | take_profit | 1 | +1.49 | +| KAS | 06-08 23:00 | 06-09 01:00 | stop_loss | 2 | -1.49 | +| SUI | 06-09 00:00 | 06-09 01:00 | trailing_stop | 1 | -0.39 | +| APT | 06-09 00:00 | 06-09 02:00 | stop_loss | 2 | -1.49 | +| FET | 06-09 01:00 | 06-09 02:00 | stop_loss | 1 | -1.49 | +| KAS | 06-09 02:00 | 06-09 03:00 | take_profit | 1 | +1.49 | +| TIA | 06-09 00:00 | 06-09 03:00 | confirmed_bearish_exit | 3 | -0.11 | +| APT | 06-09 02:00 | 06-09 04:00 | take_profit | 2 | +1.49 | +| ARB | 06-09 00:00 | 06-09 04:00 | take_profit | 4 | +1.49 | +| BONK | 06-09 00:00 | 06-09 04:00 | take_profit | 4 | +1.49 | +| ETC | 06-09 00:00 | 06-09 04:00 | trailing_stop | 4 | -0.44 | +| FET | 06-09 02:00 | 06-09 04:00 | trailing_stop | 2 | -0.31 | +| FIL | 06-09 00:00 | 06-09 04:00 | take_profit | 4 | +1.49 | +| NEAR | 06-09 02:00 | 06-09 04:00 | trailing_stop | 2 | -0.31 | +| OP | 06-09 00:00 | 06-09 04:00 | take_profit | 4 | +1.49 | +| PEPE | 06-09 00:00 | 06-09 04:00 | take_profit | 4 | +1.49 | +| SEI | 06-09 00:00 | 06-09 04:00 | take_profit | 4 | +1.49 | +| SUI | 06-09 02:00 | 06-09 04:00 | take_profit | 2 | +1.49 | +| UNI | 06-09 00:00 | 06-09 04:00 | take_profit | 4 | +1.49 | +| WIF | 06-09 00:00 | 06-09 04:00 | take_profit | 4 | +1.49 | +| SHIB | 06-09 00:00 | 06-09 05:00 | take_profit | 5 | +1.49 | +| FET | 06-09 07:00 | 06-09 08:00 | stop_loss | 1 | -1.49 | +| SEI | 06-09 07:00 | 06-09 09:00 | stop_loss | 2 | -1.49 | +| ARB | 06-09 08:00 | 06-09 10:00 | stop_loss | 2 | -1.49 | +| TRX | 06-07 21:00 | 06-09 10:00 | stop_loss | 37 | -1.49 | +| UNI | 06-09 08:00 | 06-09 11:00 | stop_loss | 3 | -1.49 | +| FET | 06-09 08:00 | 06-09 12:00 | stop_loss | 4 | -1.49 | +| ATOM | 06-09 09:00 | 06-09 13:00 | trailing_stop | 4 | -0.34 | +| ETC | 06-09 09:00 | 06-09 14:00 | stop_loss | 5 | -1.49 | +| KAS | 06-09 09:00 | 06-09 14:00 | stop_loss | 5 | -1.49 | +| KAS | 06-09 14:00 | 06-09 15:00 | stop_loss | 1 | -1.49 | +| LTC | 06-09 09:00 | 06-09 15:00 | stop_loss | 6 | -1.49 | +| FET | 06-09 15:00 | 06-09 16:00 | stop_loss | 1 | -1.49 | +| KAS | 06-09 15:00 | 06-09 16:00 | trailing_stop | 1 | -0.35 | +| FET | 06-09 16:00 | 06-09 17:00 | take_profit | 1 | +1.49 | +| SEI | 06-09 15:00 | 06-09 17:00 | take_profit | 2 | +1.49 | +| FET | 06-09 21:00 | 06-10 00:00 | stop_loss | 3 | -1.49 | +| INJ | 06-10 02:00 | 06-10 05:00 | stop_loss | 3 | -1.49 | +| NEAR | 06-10 05:00 | 06-10 06:00 | stop_loss | 1 | -1.49 | +| WIF | 06-10 02:00 | 06-10 09:00 | stop_loss | 7 | -1.49 | +| INJ | 06-10 08:00 | 06-10 10:00 | stop_loss | 2 | -1.49 | +| APT | 06-10 11:00 | 06-10 12:00 | take_profit | 1 | +1.49 | +| ARB | 06-10 08:00 | 06-10 12:00 | stop_loss | 4 | -1.49 | +| AVAX | 06-10 08:00 | 06-10 12:00 | take_profit | 4 | +1.49 | +| FET | 06-10 11:00 | 06-10 12:00 | take_profit | 1 | +1.49 | +| RENDER | 06-10 11:00 | 06-10 12:00 | take_profit | 1 | +1.49 | +| WIF | 06-10 11:00 | 06-10 12:00 | take_profit | 1 | +1.49 | +| LTC | 06-10 08:00 | 06-10 16:00 | trailing_stop | 8 | -0.48 | +| APT | 06-10 14:00 | 06-10 17:00 | stop_loss | 3 | -1.49 | +| APT | 06-10 20:00 | 06-10 21:00 | stop_loss | 1 | -1.49 | +| FET | 06-10 19:00 | 06-10 21:00 | stop_loss | 2 | -1.49 | +| KAS | 06-10 20:00 | 06-10 21:00 | stop_loss | 1 | -1.49 | +| OP | 06-10 20:00 | 06-10 21:00 | stop_loss | 1 | -1.49 | +| RENDER | 06-10 20:00 | 06-10 21:00 | stop_loss | 1 | -1.49 | +| TIA | 06-10 20:00 | 06-10 21:00 | stop_loss | 1 | -1.49 | +| WIF | 06-10 20:00 | 06-10 21:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-10 21:00 | 06-10 22:00 | stop_loss | 1 | -1.49 | +| OP | 06-10 21:00 | 06-10 22:00 | stop_loss | 1 | -1.49 | +| TIA | 06-10 21:00 | 06-10 22:00 | take_profit | 1 | +1.49 | +| APT | 06-10 21:00 | 06-10 23:00 | trailing_stop | 2 | -0.02 | +| ARB | 06-10 21:00 | 06-10 23:00 | take_profit | 2 | +1.49 | +| BONK | 06-10 21:00 | 06-10 23:00 | trailing_stop | 2 | -0.39 | +| ETC | 06-10 21:00 | 06-10 23:00 | take_profit | 2 | +1.49 | +| FIL | 06-10 21:00 | 06-10 23:00 | trailing_stop | 2 | -0.05 | +| OP | 06-10 22:00 | 06-10 23:00 | trailing_stop | 1 | -0.38 | +| RENDER | 06-10 21:00 | 06-10 23:00 | take_profit | 2 | +1.49 | +| SUI | 06-10 21:00 | 06-10 23:00 | trailing_stop | 2 | -0.49 | +| WIF | 06-10 21:00 | 06-10 23:00 | trailing_stop | 2 | -0.07 | +| ATOM | 06-10 20:00 | 06-11 00:00 | take_profit | 4 | +1.49 | +| AVAX | 06-10 21:00 | 06-11 01:00 | take_profit | 4 | +1.49 | +| FET | 06-10 21:00 | 06-11 01:00 | trailing_stop | 4 | -0.04 | +| INJ | 06-10 21:00 | 06-11 01:00 | take_profit | 4 | +1.49 | +| KAS | 06-10 21:00 | 06-11 01:00 | take_profit | 4 | +1.49 | +| LTC | 06-10 21:00 | 06-11 01:00 | take_profit | 4 | +1.49 | +| SHIB | 06-10 21:00 | 06-11 01:00 | take_profit | 4 | +1.49 | +| UNI | 06-10 21:00 | 06-11 01:00 | take_profit | 4 | +1.49 | +| OP | 06-11 02:00 | 06-11 03:00 | trailing_stop | 1 | -0.19 | +| NEAR | 06-11 03:00 | 06-11 04:00 | trailing_stop | 1 | -0.24 | +| FET | 06-11 03:00 | 06-11 09:00 | trailing_stop | 6 | -0.61 | +| TRX | 06-10 02:00 | 06-11 16:00 | stop_loss | 38 | -1.49 | +| TRX | 06-11 16:00 | 06-11 18:00 | stop_loss | 2 | -1.49 | +| APT | 06-12 07:00 | 06-12 09:00 | take_profit | 2 | +1.49 | +| WIF | 06-12 07:00 | 06-12 09:00 | take_profit | 2 | +1.49 | +| ATOM | 06-12 12:00 | 06-12 13:00 | stop_loss | 1 | -1.49 | +| AVAX | 06-12 07:00 | 06-12 13:00 | trailing_stop | 6 | -0.50 | +| ETC | 06-12 07:00 | 06-12 13:00 | trailing_stop | 6 | -0.70 | +| FIL | 06-12 06:00 | 06-12 13:00 | trailing_stop | 7 | -0.08 | +| AVAX | 06-12 13:00 | 06-12 14:00 | take_profit | 1 | +1.49 | +| FET | 06-12 13:00 | 06-12 14:00 | take_profit | 1 | +1.49 | +| INJ | 06-12 13:00 | 06-12 14:00 | trailing_stop | 1 | -0.43 | +| KAS | 06-12 12:00 | 06-12 14:00 | trailing_stop | 2 | +0.04 | +| SUI | 06-12 07:00 | 06-12 14:00 | trailing_stop | 7 | -0.18 | +| INJ | 06-12 15:00 | 06-12 16:00 | stop_loss | 1 | -1.49 | +| ATOM | 06-12 13:00 | 06-12 17:00 | take_profit | 4 | +1.49 | +| NEAR | 06-12 19:00 | 06-12 20:00 | stop_loss | 1 | -1.49 | +| TRX | 06-11 18:00 | 06-12 20:00 | confirmed_bearish_exit | 26 | -0.25 | +| INJ | 06-12 16:00 | 06-12 23:00 | stop_loss | 7 | -1.49 | +| FET | 06-12 22:00 | 06-13 02:00 | trailing_stop | 4 | -0.21 | +| NEAR | 06-13 02:00 | 06-13 04:00 | stop_loss | 2 | -1.49 | +| NEAR | 06-13 04:00 | 06-13 06:00 | trailing_stop | 2 | -0.26 | +| BONK | 06-13 04:00 | 06-13 11:00 | take_profit | 7 | +1.49 | +| ATOM | 06-13 15:00 | 06-13 18:00 | stop_loss | 3 | -1.49 | +| SEI | 06-13 20:00 | 06-14 01:00 | stop_loss | 5 | -1.49 | +| ARB | 06-14 01:00 | 06-14 04:00 | stop_loss | 3 | -1.49 | +| ATOM | 06-13 18:00 | 06-14 04:00 | stop_loss | 10 | -1.49 | +| OP | 06-14 03:00 | 06-14 04:00 | stop_loss | 1 | -1.49 | +| WIF | 06-14 01:00 | 06-14 04:00 | stop_loss | 3 | -1.49 | +| RENDER | 06-14 04:00 | 06-14 05:00 | stop_loss | 1 | -1.49 | +| SEI | 06-14 01:00 | 06-14 05:00 | trailing_stop | 4 | -0.70 | +| TIA | 06-14 05:00 | 06-14 09:00 | stop_loss | 4 | -1.49 | +| OP | 06-14 04:00 | 06-14 10:00 | take_profit | 6 | +1.49 | +| APT | 06-14 04:00 | 06-14 12:00 | stop_loss | 8 | -1.49 | +| AVAX | 06-14 05:00 | 06-14 12:00 | stop_loss | 7 | -1.49 | +| SHIB | 06-14 10:00 | 06-14 12:00 | stop_loss | 2 | -1.49 | +| ARB | 06-14 04:00 | 06-14 13:00 | stop_loss | 9 | -1.49 | +| ETC | 06-14 04:00 | 06-14 13:00 | stop_loss | 9 | -1.49 | +| FET | 06-14 12:00 | 06-14 13:00 | stop_loss | 1 | -1.49 | +| FIL | 06-14 04:00 | 06-14 13:00 | stop_loss | 9 | -1.49 | +| PEPE | 06-14 05:00 | 06-14 13:00 | stop_loss | 8 | -1.49 | +| SUI | 06-14 05:00 | 06-14 13:00 | stop_loss | 8 | -1.49 | +| UNI | 06-14 05:00 | 06-14 13:00 | stop_loss | 8 | -1.49 | +| WIF | 06-14 04:00 | 06-14 13:00 | stop_loss | 9 | -1.49 | +| APT | 06-14 12:00 | 06-14 14:00 | stop_loss | 2 | -1.49 | +| AVAX | 06-14 12:00 | 06-14 14:00 | stop_loss | 2 | -1.49 | +| BONK | 06-14 12:00 | 06-14 14:00 | stop_loss | 2 | -1.49 | +| ETC | 06-14 13:00 | 06-14 14:00 | stop_loss | 1 | -1.49 | +| FET | 06-14 13:00 | 06-14 14:00 | stop_loss | 1 | -1.49 | +| SEI | 06-14 05:00 | 06-14 14:00 | stop_loss | 9 | -1.49 | +| TIA | 06-14 12:00 | 06-14 14:00 | stop_loss | 2 | -1.49 | +| ATOM | 06-14 04:00 | 06-14 15:00 | take_profit | 11 | +1.49 | +| FET | 06-14 14:00 | 06-14 16:00 | take_profit | 2 | +1.49 | +| ETC | 06-14 14:00 | 06-14 17:00 | stop_loss | 3 | -1.49 | +| INJ | 06-14 14:00 | 06-14 17:00 | stop_loss | 3 | -1.49 | +| AVAX | 06-14 14:00 | 06-14 18:00 | stop_loss | 4 | -1.49 | +| BONK | 06-14 14:00 | 06-14 18:00 | stop_loss | 4 | -1.49 | +| TIA | 06-14 14:00 | 06-14 19:00 | take_profit | 5 | +1.49 | +| NEAR | 06-14 15:00 | 06-14 20:00 | take_profit | 5 | +1.49 | +| APT | 06-14 14:00 | 06-14 21:00 | take_profit | 7 | +1.49 | +| AVAX | 06-14 18:00 | 06-14 21:00 | take_profit | 3 | +1.49 | +| ETC | 06-14 17:00 | 06-14 21:00 | take_profit | 4 | +1.49 | +| FIL | 06-14 14:00 | 06-14 21:00 | take_profit | 7 | +1.49 | +| INJ | 06-14 17:00 | 06-14 21:00 | take_profit | 4 | +1.49 | +| LTC | 06-14 12:00 | 06-14 21:00 | take_profit | 9 | +1.49 | +| PEPE | 06-14 14:00 | 06-14 21:00 | take_profit | 7 | +1.49 | +| RENDER | 06-14 14:00 | 06-14 21:00 | take_profit | 7 | +1.49 | +| SHIB | 06-14 12:00 | 06-14 21:00 | take_profit | 9 | +1.49 | +| SUI | 06-14 14:00 | 06-14 21:00 | take_profit | 7 | +1.49 | +| UNI | 06-14 14:00 | 06-14 21:00 | take_profit | 7 | +1.49 | +| WIF | 06-14 14:00 | 06-14 21:00 | take_profit | 7 | +1.49 | +| TRX | 06-14 04:00 | 06-14 23:00 | take_profit | 19 | +1.49 | +| SEI | 06-15 19:00 | 06-15 22:00 | stop_loss | 3 | -1.49 | +| RENDER | 06-15 19:00 | 06-15 23:00 | confirmed_bearish_exit | 4 | +0.45 | +| FET | 06-16 01:00 | 06-16 02:00 | stop_loss | 1 | -1.49 | +| OP | 06-15 22:00 | 06-16 02:00 | stop_loss | 4 | -1.49 | +| ARB | 06-16 02:00 | 06-16 03:00 | trailing_stop | 1 | -0.42 | +| BONK | 06-16 02:00 | 06-16 03:00 | trailing_stop | 1 | -0.39 | +| FET | 06-16 02:00 | 06-16 03:00 | trailing_stop | 1 | -0.38 | +| RENDER | 06-16 02:00 | 06-16 03:00 | take_profit | 1 | +1.49 | +| BONK | 06-16 03:00 | 06-16 04:00 | stop_loss | 1 | -1.49 | +| FIL | 06-15 22:00 | 06-16 04:00 | trailing_stop | 6 | -0.52 | +| WIF | 06-16 03:00 | 06-16 04:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-16 02:00 | 06-16 05:00 | take_profit | 3 | +1.49 | +| BONK | 06-16 04:00 | 06-16 06:00 | take_profit | 2 | +1.49 | +| ATOM | 06-16 05:00 | 06-16 07:00 | take_profit | 2 | +1.49 | +| AVAX | 06-16 02:00 | 06-16 07:00 | take_profit | 5 | +1.49 | +| KAS | 06-16 02:00 | 06-16 07:00 | take_profit | 5 | +1.49 | +| ARB | 06-16 07:00 | 06-16 08:00 | trailing_stop | 1 | -0.33 | +| BONK | 06-16 07:00 | 06-16 08:00 | trailing_stop | 1 | -0.30 | +| PEPE | 06-16 07:00 | 06-16 08:00 | trailing_stop | 1 | -0.50 | +| SEI | 06-15 22:00 | 06-16 08:00 | trailing_stop | 10 | -0.27 | +| SHIB | 06-16 02:00 | 06-16 08:00 | take_profit | 6 | +1.49 | +| WIF | 06-16 06:00 | 06-16 08:00 | take_profit | 2 | +1.49 | +| ETC | 06-16 05:00 | 06-16 11:00 | trailing_stop | 6 | -0.23 | +| TRX | 06-15 13:00 | 06-16 14:00 | stop_loss | 25 | -1.49 | +| FET | 06-16 14:00 | 06-16 17:00 | trailing_stop | 3 | -0.07 | +| INJ | 06-16 22:00 | 06-16 23:00 | stop_loss | 1 | -1.49 | +| FET | 06-16 22:00 | 06-17 00:00 | stop_loss | 2 | -1.49 | +| RENDER | 06-16 22:00 | 06-17 00:00 | stop_loss | 2 | -1.49 | +| KAS | 06-17 03:00 | 06-17 07:00 | stop_loss | 4 | -1.49 | +| NEAR | 06-16 22:00 | 06-17 07:00 | stop_loss | 9 | -1.49 | +| SHIB | 06-16 22:00 | 06-17 08:00 | stop_loss | 10 | -1.49 | +| BONK | 06-17 08:00 | 06-17 12:00 | stop_loss | 4 | -1.49 | +| INJ | 06-17 08:00 | 06-17 12:00 | stop_loss | 4 | -1.49 | +| NEAR | 06-17 10:00 | 06-17 12:00 | take_profit | 2 | +1.49 | +| RENDER | 06-17 10:00 | 06-17 12:00 | trailing_stop | 2 | -0.30 | +| ATOM | 06-17 08:00 | 06-17 14:00 | take_profit | 6 | +1.49 | +| OP | 06-17 10:00 | 06-17 14:00 | stop_loss | 4 | -1.49 | +| ATOM | 06-17 14:00 | 06-17 15:00 | trailing_stop | 1 | -0.62 | +| AVAX | 06-17 10:00 | 06-17 15:00 | take_profit | 5 | +1.49 | +| LTC | 06-17 10:00 | 06-17 15:00 | trailing_stop | 5 | -0.47 | +| SHIB | 06-17 08:00 | 06-17 15:00 | trailing_stop | 7 | -0.12 | +| KAS | 06-17 09:00 | 06-17 18:00 | stop_loss | 9 | -1.49 | +| WIF | 06-17 16:00 | 06-17 18:00 | stop_loss | 2 | -1.49 | +| KAS | 06-17 18:00 | 06-17 19:00 | stop_loss | 1 | -1.49 | +| ARB | 06-17 19:00 | 06-17 20:00 | trailing_stop | 1 | -0.18 | +| PEPE | 06-17 19:00 | 06-17 20:00 | trailing_stop | 1 | -0.57 | +| RENDER | 06-17 19:00 | 06-17 20:00 | trailing_stop | 1 | -0.57 | +| SHIB | 06-17 19:00 | 06-17 20:00 | trailing_stop | 1 | -0.65 | +| ATOM | 06-17 19:00 | 06-17 21:00 | stop_loss | 2 | -1.49 | +| FET | 06-17 19:00 | 06-17 21:00 | stop_loss | 2 | -1.49 | +| AVAX | 06-17 19:00 | 06-17 22:00 | stop_loss | 3 | -1.49 | +| BONK | 06-17 19:00 | 06-17 22:00 | stop_loss | 3 | -1.49 | +| SUI | 06-17 19:00 | 06-17 22:00 | stop_loss | 3 | -1.49 | +| WIF | 06-17 19:00 | 06-17 22:00 | stop_loss | 3 | -1.49 | +| KAS | 06-17 19:00 | 06-17 23:00 | take_profit | 4 | +1.49 | +| ATOM | 06-17 21:00 | 06-18 03:00 | stop_loss | 6 | -1.49 | +| ETC | 06-17 19:00 | 06-18 03:00 | trailing_stop | 8 | -0.21 | +| LTC | 06-17 19:00 | 06-18 04:00 | stop_loss | 9 | -1.49 | +| SUI | 06-18 04:00 | 06-18 05:00 | stop_loss | 1 | -1.49 | +| OP | 06-18 05:00 | 06-18 07:00 | take_profit | 2 | +1.49 | +| UNI | 06-18 06:00 | 06-18 08:00 | take_profit | 2 | +1.49 | +| FET | 06-18 08:00 | 06-18 11:00 | stop_loss | 3 | -1.49 | +| KAS | 06-18 03:00 | 06-18 12:00 | trailing_stop | 9 | -0.45 | +| ETC | 06-18 05:00 | 06-18 15:00 | stop_loss | 10 | -1.49 | +| INJ | 06-18 05:00 | 06-18 15:00 | stop_loss | 10 | -1.49 | +| SHIB | 06-18 13:00 | 06-18 15:00 | stop_loss | 2 | -1.49 | +| APT | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | +0.05 | +| ARB | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.49 | +| AVAX | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.24 | +| BONK | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | +0.09 | +| FIL | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.36 | +| INJ | 06-18 15:00 | 06-18 16:00 | take_profit | 1 | +1.49 | +| RENDER | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.48 | +| SEI | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.42 | +| SUI | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.61 | +| TIA | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.10 | +| UNI | 06-18 15:00 | 06-18 16:00 | stop_loss | 1 | -1.49 | +| WIF | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.16 | +| AVAX | 06-18 16:00 | 06-18 17:00 | stop_loss | 1 | -1.49 | +| SUI | 06-18 16:00 | 06-18 17:00 | stop_loss | 1 | -1.49 | +| ETC | 06-18 15:00 | 06-18 19:00 | take_profit | 4 | +1.49 | +| FET | 06-18 15:00 | 06-18 19:00 | trailing_stop | 4 | -0.04 | +| PEPE | 06-18 15:00 | 06-18 19:00 | take_profit | 4 | +1.49 | +| UNI | 06-18 16:00 | 06-18 19:00 | trailing_stop | 3 | -0.08 | +| KAS | 06-18 15:00 | 06-18 20:00 | take_profit | 5 | +1.49 | +| SHIB | 06-18 15:00 | 06-18 20:00 | take_profit | 5 | +1.49 | +| AVAX | 06-18 17:00 | 06-18 23:00 | trailing_stop | 6 | -0.68 | +| LTC | 06-18 15:00 | 06-19 01:00 | take_profit | 10 | +1.49 | +| ATOM | 06-18 15:00 | 06-19 03:00 | trailing_stop | 12 | -0.17 | +| SHIB | 06-18 21:00 | 06-19 03:00 | trailing_stop | 6 | -0.62 | +| SUI | 06-18 22:00 | 06-19 03:00 | stop_loss | 5 | -1.49 | +| KAS | 06-18 22:00 | 06-19 04:00 | stop_loss | 6 | -1.49 | +| NEAR | 06-19 03:00 | 06-19 04:00 | stop_loss | 1 | -1.49 | +| OP | 06-19 03:00 | 06-19 04:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-19 04:00 | 06-19 05:00 | trailing_stop | 1 | -0.29 | +| OP | 06-19 04:00 | 06-19 08:00 | trailing_stop | 4 | -0.33 | +| ARB | 06-19 10:00 | 06-19 12:00 | trailing_stop | 2 | -0.14 | +| SEI | 06-19 10:00 | 06-19 12:00 | trailing_stop | 2 | -0.61 | +| TIA | 06-19 10:00 | 06-19 12:00 | stop_loss | 2 | -1.49 | +| INJ | 06-19 14:00 | 06-19 16:00 | trailing_stop | 2 | -0.61 | +| OP | 06-19 14:00 | 06-19 16:00 | stop_loss | 2 | -1.49 | +| AVAX | 06-19 12:00 | 06-19 17:00 | stop_loss | 5 | -1.49 | +| KAS | 06-19 11:00 | 06-19 20:00 | trailing_stop | 9 | -0.07 | +| TRX | 06-18 11:00 | 06-19 21:00 | trailing_stop | 34 | -0.68 | +| AVAX | 06-20 02:00 | 06-20 06:00 | stop_loss | 4 | -1.49 | +| ATOM | 06-20 11:00 | 06-20 14:00 | stop_loss | 3 | -1.49 | +| FET | 06-20 13:00 | 06-20 14:00 | take_profit | 1 | +1.49 | +| INJ | 06-20 13:00 | 06-20 14:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-20 13:00 | 06-20 14:00 | stop_loss | 1 | -1.49 | +| OP | 06-20 13:00 | 06-20 14:00 | stop_loss | 1 | -1.49 | +| UNI | 06-20 13:00 | 06-20 14:00 | stop_loss | 1 | -1.49 | +| OP | 06-20 20:00 | 06-20 22:00 | take_profit | 2 | +1.49 | +| RENDER | 06-20 18:00 | 06-20 22:00 | trailing_stop | 4 | -0.31 | +| SEI | 06-20 20:00 | 06-20 22:00 | trailing_stop | 2 | -0.45 | +| WIF | 06-20 19:00 | 06-20 22:00 | trailing_stop | 3 | -0.22 | +| SEI | 06-20 23:00 | 06-21 00:00 | trailing_stop | 1 | -0.40 | +| SUI | 06-20 17:00 | 06-21 05:00 | trailing_stop | 12 | -0.28 | +| KAS | 06-20 22:00 | 06-21 08:00 | stop_loss | 10 | -1.49 | +| RENDER | 06-21 00:00 | 06-21 08:00 | stop_loss | 8 | -1.49 | +| TIA | 06-21 05:00 | 06-21 08:00 | take_profit | 3 | +1.49 | +| ETC | 06-20 18:00 | 06-21 11:00 | stop_loss | 17 | -1.49 | +| OP | 06-21 12:00 | 06-21 16:00 | stop_loss | 4 | -1.49 | +| ARB | 06-21 20:00 | 06-21 21:00 | stop_loss | 1 | -1.49 | +| AVAX | 06-21 20:00 | 06-21 21:00 | stop_loss | 1 | -1.49 | +| INJ | 06-21 17:00 | 06-21 21:00 | stop_loss | 4 | -1.49 | +| OP | 06-21 17:00 | 06-21 21:00 | stop_loss | 4 | -1.49 | +| SEI | 06-21 20:00 | 06-21 21:00 | stop_loss | 1 | -1.49 | +| FET | 06-21 21:00 | 06-21 22:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-21 20:00 | 06-21 22:00 | stop_loss | 2 | -1.49 | +| AVAX | 06-21 21:00 | 06-21 23:00 | stop_loss | 2 | -1.49 | +| BONK | 06-21 21:00 | 06-21 23:00 | stop_loss | 2 | -1.49 | +| FET | 06-21 22:00 | 06-21 23:00 | stop_loss | 1 | -1.49 | +| OP | 06-21 21:00 | 06-21 23:00 | stop_loss | 2 | -1.49 | +| SHIB | 06-21 08:00 | 06-21 23:00 | stop_loss | 15 | -1.49 | +| APT | 06-21 23:00 | 06-22 00:00 | take_profit | 1 | +1.49 | +| ARB | 06-21 23:00 | 06-22 00:00 | trailing_stop | 1 | +0.11 | +| AVAX | 06-21 23:00 | 06-22 00:00 | trailing_stop | 1 | -0.20 | +| BONK | 06-21 23:00 | 06-22 00:00 | trailing_stop | 1 | -0.20 | +| FET | 06-21 23:00 | 06-22 00:00 | trailing_stop | 1 | -0.16 | +| FIL | 06-21 23:00 | 06-22 00:00 | take_profit | 1 | +1.49 | +| OP | 06-21 23:00 | 06-22 00:00 | trailing_stop | 1 | +0.08 | +| PEPE | 06-21 23:00 | 06-22 00:00 | trailing_stop | 1 | -0.32 | +| SUI | 06-21 23:00 | 06-22 00:00 | trailing_stop | 1 | +0.02 | +| ATOM | 06-21 23:00 | 06-22 01:00 | take_profit | 2 | +1.49 | +| INJ | 06-21 21:00 | 06-22 01:00 | take_profit | 4 | +1.49 | +| KAS | 06-21 23:00 | 06-22 01:00 | take_profit | 2 | +1.49 | +| RENDER | 06-21 23:00 | 06-22 01:00 | take_profit | 2 | +1.49 | +| ETC | 06-21 23:00 | 06-22 04:00 | trailing_stop | 5 | -0.63 | +| OP | 06-22 03:00 | 06-22 07:00 | take_profit | 4 | +1.49 | +| SHIB | 06-21 23:00 | 06-22 12:00 | take_profit | 13 | +1.49 | +| LTC | 06-22 05:00 | 06-22 14:00 | trailing_stop | 9 | -0.12 | +| FIL | 06-22 19:00 | 06-22 22:00 | stop_loss | 3 | -1.49 | +| RENDER | 06-22 21:00 | 06-22 22:00 | stop_loss | 1 | -1.49 | +| FIL | 06-22 22:00 | 06-23 00:00 | trailing_stop | 2 | -0.39 | +| NEAR | 06-22 22:00 | 06-23 00:00 | stop_loss | 2 | -1.49 | +| RENDER | 06-22 22:00 | 06-23 00:00 | stop_loss | 2 | -1.49 | +| SUI | 06-23 01:00 | 06-23 02:00 | trailing_stop | 1 | -0.65 | +| RENDER | 06-23 00:00 | 06-23 03:00 | trailing_stop | 3 | -0.53 | +| WIF | 06-23 03:00 | 06-23 04:00 | stop_loss | 1 | -1.49 | +| AVAX | 06-23 03:00 | 06-23 05:00 | stop_loss | 2 | -1.49 | +| ETC | 06-22 22:00 | 06-23 05:00 | stop_loss | 7 | -1.49 | +| INJ | 06-23 04:00 | 06-23 06:00 | stop_loss | 2 | -1.49 | +| NEAR | 06-23 01:00 | 06-23 06:00 | stop_loss | 5 | -1.49 | +| OP | 06-22 22:00 | 06-23 06:00 | stop_loss | 8 | -1.49 | +| WIF | 06-23 04:00 | 06-23 06:00 | stop_loss | 2 | -1.49 | +| UNI | 06-23 06:00 | 06-23 07:00 | stop_loss | 1 | -1.49 | +| APT | 06-23 06:00 | 06-23 08:00 | stop_loss | 2 | -1.49 | +| ARB | 06-23 06:00 | 06-23 08:00 | stop_loss | 2 | -1.49 | +| ATOM | 06-23 06:00 | 06-23 08:00 | stop_loss | 2 | -1.49 | +| BONK | 06-23 06:00 | 06-23 08:00 | stop_loss | 2 | -1.49 | +| FET | 06-23 06:00 | 06-23 08:00 | stop_loss | 2 | -1.49 | +| FIL | 06-23 06:00 | 06-23 08:00 | stop_loss | 2 | -1.49 | +| INJ | 06-23 06:00 | 06-23 08:00 | stop_loss | 2 | -1.49 | +| LTC | 06-23 06:00 | 06-23 08:00 | stop_loss | 2 | -1.49 | +| OP | 06-23 06:00 | 06-23 08:00 | stop_loss | 2 | -1.49 | +| PEPE | 06-23 06:00 | 06-23 08:00 | stop_loss | 2 | -1.49 | +| SHIB | 06-23 06:00 | 06-23 08:00 | stop_loss | 2 | -1.49 | +| SUI | 06-23 06:00 | 06-23 08:00 | stop_loss | 2 | -1.49 | +| UNI | 06-23 07:00 | 06-23 08:00 | stop_loss | 1 | -1.49 | +| AVAX | 06-23 08:00 | 06-23 09:00 | trailing_stop | 1 | -0.33 | +| SUI | 06-23 08:00 | 06-23 10:00 | take_profit | 2 | +1.49 | +| TIA | 06-23 08:00 | 06-23 10:00 | stop_loss | 2 | -1.49 | +| ARB | 06-23 08:00 | 06-23 11:00 | take_profit | 3 | +1.49 | +| FET | 06-23 08:00 | 06-23 11:00 | trailing_stop | 3 | +0.03 | +| TIA | 06-23 10:00 | 06-23 11:00 | trailing_stop | 1 | -0.20 | +| UNI | 06-23 08:00 | 06-23 11:00 | take_profit | 3 | +1.49 | +| WIF | 06-23 08:00 | 06-23 11:00 | trailing_stop | 3 | -0.56 | +| ATOM | 06-23 08:00 | 06-23 12:00 | take_profit | 4 | +1.49 | +| SHIB | 06-23 08:00 | 06-23 12:00 | take_profit | 4 | +1.49 | +| APT | 06-23 08:00 | 06-23 13:00 | take_profit | 5 | +1.49 | +| BONK | 06-23 08:00 | 06-23 13:00 | trailing_stop | 5 | -0.38 | +| FIL | 06-23 08:00 | 06-23 13:00 | take_profit | 5 | +1.49 | +| OP | 06-23 08:00 | 06-23 13:00 | take_profit | 5 | +1.49 | +| PEPE | 06-23 08:00 | 06-23 13:00 | take_profit | 5 | +1.49 | +| RENDER | 06-23 08:00 | 06-23 13:00 | trailing_stop | 5 | -0.11 | +| SEI | 06-23 08:00 | 06-23 13:00 | trailing_stop | 5 | -0.25 | +| LTC | 06-23 08:00 | 06-23 14:00 | stop_loss | 6 | -1.49 | +| ARB | 06-23 14:00 | 06-23 15:00 | stop_loss | 1 | -1.49 | +| FET | 06-23 14:00 | 06-23 15:00 | stop_loss | 1 | -1.49 | +| LTC | 06-23 14:00 | 06-23 15:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-23 14:00 | 06-23 15:00 | stop_loss | 1 | -1.49 | +| FET | 06-23 15:00 | 06-23 17:00 | stop_loss | 2 | -1.49 | +| PEPE | 06-23 15:00 | 06-23 17:00 | stop_loss | 2 | -1.49 | +| TIA | 06-23 17:00 | 06-23 18:00 | trailing_stop | 1 | -0.55 | +| UNI | 06-23 14:00 | 06-23 18:00 | stop_loss | 4 | -1.49 | +| FIL | 06-23 15:00 | 06-23 20:00 | take_profit | 5 | +1.49 | +| APT | 06-23 14:00 | 06-23 21:00 | take_profit | 7 | +1.49 | +| FET | 06-23 17:00 | 06-23 22:00 | take_profit | 5 | +1.49 | +| RENDER | 06-23 15:00 | 06-24 00:00 | take_profit | 9 | +1.49 | +| KAS | 06-23 22:00 | 06-24 01:00 | take_profit | 3 | +1.49 | +| SUI | 06-23 17:00 | 06-24 01:00 | trailing_stop | 8 | -0.43 | +| ARB | 06-23 15:00 | 06-24 03:00 | stop_loss | 12 | -1.49 | +| ATOM | 06-23 15:00 | 06-24 03:00 | stop_loss | 12 | -1.49 | +| LTC | 06-23 15:00 | 06-24 04:00 | stop_loss | 13 | -1.49 | +| NEAR | 06-24 02:00 | 06-24 04:00 | stop_loss | 2 | -1.49 | +| PEPE | 06-24 03:00 | 06-24 04:00 | stop_loss | 1 | -1.49 | +| ATOM | 06-24 08:00 | 06-24 09:00 | stop_loss | 1 | -1.49 | +| ATOM | 06-24 09:00 | 06-24 11:00 | stop_loss | 2 | -1.49 | +| INJ | 06-24 10:00 | 06-24 11:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-24 09:00 | 06-24 11:00 | stop_loss | 2 | -1.49 | +| SHIB | 06-23 17:00 | 06-24 11:00 | trailing_stop | 18 | -0.61 | +| ATOM | 06-24 11:00 | 06-24 13:00 | stop_loss | 2 | -1.49 | +| FIL | 06-24 10:00 | 06-24 13:00 | stop_loss | 3 | -1.49 | +| INJ | 06-24 11:00 | 06-24 13:00 | stop_loss | 2 | -1.49 | +| WIF | 06-24 10:00 | 06-24 13:00 | stop_loss | 3 | -1.49 | +| FET | 06-24 13:00 | 06-24 14:00 | trailing_stop | 1 | -0.59 | +| INJ | 06-24 13:00 | 06-24 14:00 | trailing_stop | 1 | -0.46 | +| UNI | 06-24 13:00 | 06-24 14:00 | trailing_stop | 1 | -0.68 | +| APT | 06-24 13:00 | 06-24 15:00 | stop_loss | 2 | -1.49 | +| ARB | 06-24 13:00 | 06-24 15:00 | stop_loss | 2 | -1.49 | +| AVAX | 06-24 13:00 | 06-24 15:00 | stop_loss | 2 | -1.49 | +| BONK | 06-24 13:00 | 06-24 15:00 | stop_loss | 2 | -1.49 | +| ETC | 06-24 13:00 | 06-24 15:00 | stop_loss | 2 | -1.49 | +| FIL | 06-24 13:00 | 06-24 15:00 | stop_loss | 2 | -1.49 | +| KAS | 06-24 13:00 | 06-24 15:00 | stop_loss | 2 | -1.49 | +| PEPE | 06-24 13:00 | 06-24 15:00 | stop_loss | 2 | -1.49 | +| SHIB | 06-24 13:00 | 06-24 15:00 | stop_loss | 2 | -1.49 | +| SUI | 06-24 13:00 | 06-24 15:00 | stop_loss | 2 | -1.49 | +| WIF | 06-24 13:00 | 06-24 15:00 | stop_loss | 2 | -1.49 | +| APT | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| ARB | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| AVAX | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| BONK | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| ETC | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| FET | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| FIL | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| INJ | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| KAS | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| LTC | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| OP | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| RENDER | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| SUI | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| TIA | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| TRX | 06-23 08:00 | 06-24 16:00 | stop_loss | 32 | -1.49 | +| UNI | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| WIF | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| APT | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| ARB | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| AVAX | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| BONK | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| ETC | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| FET | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| FIL | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| INJ | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| KAS | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| LTC | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| OP | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| RENDER | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| SEI | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| SUI | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| TIA | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| UNI | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| WIF | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| APT | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| AVAX | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| BONK | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| ETC | 06-24 17:00 | 06-24 18:00 | stop_loss | 1 | -1.49 | +| FET | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| FIL | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| INJ | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| NEAR | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| OP | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| PEPE | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| RENDER | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| SEI | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| SUI | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| TIA | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| UNI | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| WIF | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| ARB | 06-24 17:00 | 06-24 19:00 | trailing_stop | 2 | +0.19 | +| FIL | 06-24 18:00 | 06-24 19:00 | trailing_stop | 1 | -0.23 | +| ATOM | 06-24 16:00 | 06-24 20:00 | take_profit | 4 | +1.49 | +| AVAX | 06-24 18:00 | 06-24 20:00 | take_profit | 2 | +1.49 | +| BONK | 06-24 18:00 | 06-24 20:00 | take_profit | 2 | +1.49 | +| KAS | 06-24 17:00 | 06-24 20:00 | take_profit | 3 | +1.49 | +| LTC | 06-24 17:00 | 06-24 20:00 | take_profit | 3 | +1.49 | +| SHIB | 06-24 17:00 | 06-24 20:00 | take_profit | 3 | +1.49 | +| INJ | 06-24 21:00 | 06-24 22:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-24 22:00 | 06-25 00:00 | take_profit | 2 | +1.49 | +| INJ | 06-24 22:00 | 06-25 02:00 | stop_loss | 4 | -1.49 | +| TRX | 06-24 16:00 | 06-25 05:00 | take_profit | 13 | +1.49 | +| SHIB | 06-25 01:00 | 06-25 07:00 | confirmed_bearish_exit | 6 | +0.27 | +| PEPE | 06-24 22:00 | 06-25 11:00 | stop_loss | 13 | -1.49 | +| ATOM | 06-25 11:00 | 06-25 12:00 | stop_loss | 1 | -1.49 | +| ATOM | 06-25 12:00 | 06-25 13:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-25 11:00 | 06-25 13:00 | stop_loss | 2 | -1.49 | +| APT | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| ARB | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| ATOM | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| AVAX | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| BONK | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| ETC | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| FET | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| FIL | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| KAS | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| LTC | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| NEAR | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| OP | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| PEPE | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| RENDER | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| SHIB | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| SUI | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| TIA | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| UNI | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| WIF | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| APT | 06-25 14:00 | 06-25 15:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-25 14:00 | 06-25 15:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-25 14:00 | 06-25 15:00 | stop_loss | 1 | -1.49 | +| APT | 06-25 15:00 | 06-25 17:00 | take_profit | 2 | +1.49 | +| AVAX | 06-25 15:00 | 06-25 17:00 | take_profit | 2 | +1.49 | +| PEPE | 06-25 16:00 | 06-25 17:00 | trailing_stop | 1 | +0.00 | +| TRX | 06-25 13:00 | 06-25 17:00 | take_profit | 4 | +1.49 | +| WIF | 06-25 16:00 | 06-25 17:00 | trailing_stop | 1 | +0.12 | +| FET | 06-25 15:00 | 06-25 19:00 | stop_loss | 4 | -1.49 | +| FET | 06-25 22:00 | 06-25 23:00 | trailing_stop | 1 | -0.33 | +| APT | 06-25 22:00 | 06-26 01:00 | stop_loss | 3 | -1.49 | +| PEPE | 06-25 22:00 | 06-26 01:00 | stop_loss | 3 | -1.49 | +| PEPE | 06-26 01:00 | 06-26 02:00 | stop_loss | 1 | -1.49 | +| SEI | 06-26 02:00 | 06-26 03:00 | take_profit | 1 | +1.49 | +| TRX | 06-25 22:00 | 06-26 12:00 | stop_loss | 14 | -1.49 | +| SEI | 06-26 17:00 | 06-26 22:00 | take_profit | 5 | +1.49 | +| NEAR | 06-26 21:00 | 06-27 02:00 | take_profit | 5 | +1.49 | +| UNI | 06-27 07:00 | 06-27 09:00 | stop_loss | 2 | -1.49 | +| OP | 06-27 10:00 | 06-27 15:00 | stop_loss | 5 | -1.49 | +| UNI | 06-27 09:00 | 06-27 15:00 | take_profit | 6 | +1.49 | +| FET | 06-27 16:00 | 06-27 17:00 | stop_loss | 1 | -1.49 | +| KAS | 06-27 05:00 | 06-27 18:00 | take_profit | 13 | +1.49 | +| APT | 06-27 17:00 | 06-27 19:00 | stop_loss | 2 | -1.49 | +| FET | 06-27 17:00 | 06-27 19:00 | stop_loss | 2 | -1.49 | +| OP | 06-27 17:00 | 06-27 19:00 | stop_loss | 2 | -1.49 | +| RENDER | 06-27 17:00 | 06-27 19:00 | stop_loss | 2 | -1.49 | +| SEI | 06-27 17:00 | 06-27 19:00 | stop_loss | 2 | -1.49 | +| ETC | 06-27 17:00 | 06-27 21:00 | stop_loss | 4 | -1.49 | +| APT | 06-27 19:00 | 06-27 22:00 | stop_loss | 3 | -1.49 | +| AVAX | 06-27 19:00 | 06-27 22:00 | stop_loss | 3 | -1.49 | +| FIL | 06-27 19:00 | 06-27 22:00 | stop_loss | 3 | -1.49 | +| INJ | 06-27 19:00 | 06-27 22:00 | stop_loss | 3 | -1.49 | +| RENDER | 06-27 19:00 | 06-27 22:00 | stop_loss | 3 | -1.49 | +| SEI | 06-27 19:00 | 06-27 22:00 | trailing_stop | 3 | -0.66 | +| SUI | 06-27 19:00 | 06-27 22:00 | stop_loss | 3 | -1.49 | +| INJ | 06-27 22:00 | 06-27 23:00 | stop_loss | 1 | -1.49 | +| ETC | 06-27 21:00 | 06-28 03:00 | confirmed_bearish_exit | 6 | -0.32 | +| INJ | 06-27 23:00 | 06-28 04:00 | take_profit | 5 | +1.49 | +| ATOM | 06-27 19:00 | 06-28 05:00 | stop_loss | 10 | -1.49 | +| BONK | 06-27 19:00 | 06-28 05:00 | stop_loss | 10 | -1.49 | +| FET | 06-27 19:00 | 06-28 05:00 | stop_loss | 10 | -1.49 | +| SHIB | 06-27 19:00 | 06-28 05:00 | stop_loss | 10 | -1.49 | +| PEPE | 06-27 21:00 | 06-28 06:00 | stop_loss | 9 | -1.49 | +| WIF | 06-28 05:00 | 06-28 06:00 | stop_loss | 1 | -1.49 | +| RENDER | 06-28 06:00 | 06-28 07:00 | trailing_stop | 1 | -0.09 | +| WIF | 06-28 06:00 | 06-28 07:00 | take_profit | 1 | +1.49 | +| LTC | 06-28 05:00 | 06-28 08:00 | take_profit | 3 | +1.49 | +| NEAR | 06-28 06:00 | 06-28 08:00 | take_profit | 2 | +1.49 | +| ETC | 06-28 05:00 | 06-28 09:00 | stop_loss | 4 | -1.49 | +| FIL | 06-27 23:00 | 06-28 09:00 | trailing_stop | 10 | -0.57 | +| OP | 06-27 19:00 | 06-28 09:00 | trailing_stop | 14 | +0.07 | +| KAS | 06-28 08:00 | 06-28 10:00 | stop_loss | 2 | -1.49 | +| ARB | 06-27 21:00 | 06-28 13:00 | trailing_stop | 16 | -0.22 | +| SEI | 06-28 05:00 | 06-28 13:00 | stop_loss | 8 | -1.49 | +| SHIB | 06-28 06:00 | 06-28 16:00 | trailing_stop | 10 | -0.42 | +| APT | 06-28 05:00 | 06-28 17:00 | stop_loss | 12 | -1.49 | +| SUI | 06-28 08:00 | 06-28 17:00 | stop_loss | 9 | -1.49 | +| SEI | 06-28 16:00 | 06-28 20:00 | trailing_stop | 4 | +0.02 | +| NEAR | 06-28 17:00 | 06-28 21:00 | trailing_stop | 4 | -0.46 | +| APT | 06-28 22:00 | 06-28 23:00 | trailing_stop | 1 | -0.36 | +| ARB | 06-28 21:00 | 06-28 23:00 | trailing_stop | 2 | -0.07 | +| PEPE | 06-28 22:00 | 06-28 23:00 | trailing_stop | 1 | -0.64 | +| SHIB | 06-28 22:00 | 06-28 23:00 | trailing_stop | 1 | -0.50 | +| SUI | 06-28 22:00 | 06-28 23:00 | trailing_stop | 1 | -0.60 | +| KAS | 06-28 21:00 | 06-29 00:00 | take_profit | 3 | +1.49 | +| LTC | 06-28 22:00 | 06-29 00:00 | take_profit | 2 | +1.49 | +| FIL | 06-28 21:00 | 06-29 02:00 | trailing_stop | 5 | -0.43 | +| ATOM | 06-28 21:00 | 06-29 03:00 | take_profit | 6 | +1.49 | +| ATOM | 06-29 13:00 | 06-29 16:00 | stop_loss | 3 | -1.49 | +| FET | 06-29 16:00 | 06-29 17:00 | take_profit | 1 | +1.49 | +| ATOM | 06-29 16:00 | 06-29 19:00 | take_profit | 3 | +1.49 | +| TRX | 06-26 12:00 | 06-30 00:00 | trailing_stop | 84 | -0.53 | +| UNI | 06-29 23:00 | 06-30 00:00 | stop_loss | 1 | -1.49 | +| WIF | 06-30 00:00 | 06-30 02:00 | stop_loss | 2 | -1.49 | +| TIA | 06-30 04:00 | 06-30 05:00 | stop_loss | 1 | -1.49 | +| APT | 06-30 00:00 | 06-30 08:00 | stop_loss | 8 | -1.49 | +| ARB | 06-30 07:00 | 06-30 08:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-30 07:00 | 06-30 08:00 | stop_loss | 1 | -1.49 | +| OP | 06-30 01:00 | 06-30 08:00 | stop_loss | 7 | -1.49 | +| TIA | 06-30 05:00 | 06-30 08:00 | stop_loss | 3 | -1.49 | +| UNI | 06-30 00:00 | 06-30 08:00 | stop_loss | 8 | -1.49 | +| WIF | 06-30 07:00 | 06-30 08:00 | stop_loss | 1 | -1.49 | +| ETC | 06-30 07:00 | 06-30 09:00 | stop_loss | 2 | -1.49 | +| TIA | 06-30 08:00 | 06-30 09:00 | stop_loss | 1 | -1.49 | +| FIL | 06-30 07:00 | 06-30 10:00 | take_profit | 3 | +1.49 | +| BONK | 06-30 07:00 | 06-30 11:00 | stop_loss | 4 | -1.49 | +| OP | 06-30 08:00 | 06-30 11:00 | stop_loss | 3 | -1.49 | +| TIA | 06-30 09:00 | 06-30 11:00 | stop_loss | 2 | -1.49 | +| ARB | 06-30 08:00 | 06-30 12:00 | stop_loss | 4 | -1.49 | +| AVAX | 06-30 07:00 | 06-30 12:00 | stop_loss | 5 | -1.49 | +| BONK | 06-30 11:00 | 06-30 12:00 | stop_loss | 1 | -1.49 | +| FIL | 06-30 11:00 | 06-30 12:00 | stop_loss | 1 | -1.49 | +| INJ | 06-30 11:00 | 06-30 12:00 | stop_loss | 1 | -1.49 | +| LTC | 06-30 08:00 | 06-30 12:00 | stop_loss | 4 | -1.49 | +| NEAR | 06-30 08:00 | 06-30 12:00 | stop_loss | 4 | -1.49 | +| RENDER | 06-30 11:00 | 06-30 12:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-30 07:00 | 06-30 12:00 | stop_loss | 5 | -1.49 | +| SUI | 06-30 08:00 | 06-30 12:00 | stop_loss | 4 | -1.49 | +| TIA | 06-30 11:00 | 06-30 12:00 | stop_loss | 1 | -1.49 | +| APT | 06-30 12:00 | 06-30 13:00 | take_profit | 1 | +1.49 | +| ARB | 06-30 12:00 | 06-30 13:00 | take_profit | 1 | +1.49 | +| AVAX | 06-30 12:00 | 06-30 13:00 | trailing_stop | 1 | -0.49 | +| BONK | 06-30 12:00 | 06-30 13:00 | trailing_stop | 1 | -0.17 | +| FIL | 06-30 12:00 | 06-30 13:00 | trailing_stop | 1 | -0.30 | +| INJ | 06-30 12:00 | 06-30 13:00 | trailing_stop | 1 | -0.36 | +| NEAR | 06-30 12:00 | 06-30 13:00 | trailing_stop | 1 | -0.70 | +| PEPE | 06-30 12:00 | 06-30 13:00 | trailing_stop | 1 | -0.20 | +| RENDER | 06-30 12:00 | 06-30 13:00 | trailing_stop | 1 | -0.31 | +| SEI | 06-30 12:00 | 06-30 13:00 | trailing_stop | 1 | -0.61 | +| SUI | 06-30 12:00 | 06-30 13:00 | trailing_stop | 1 | -0.29 | +| TIA | 06-30 12:00 | 06-30 13:00 | trailing_stop | 1 | -0.35 | +| TRX | 06-30 00:00 | 06-30 13:00 | stop_loss | 13 | -1.49 | +| WIF | 06-30 12:00 | 06-30 13:00 | trailing_stop | 1 | -0.34 | +| NEAR | 06-30 13:00 | 06-30 16:00 | stop_loss | 3 | -1.49 | +| TIA | 06-30 13:00 | 06-30 16:00 | stop_loss | 3 | -1.49 | +| SHIB | 06-30 12:00 | 06-30 18:00 | take_profit | 6 | +1.49 | +| KAS | 06-30 19:00 | 06-30 21:00 | stop_loss | 2 | -1.49 | +| BONK | 06-30 20:00 | 07-01 01:00 | stop_loss | 5 | -1.49 | +| ETC | 06-30 12:00 | 07-01 01:00 | stop_loss | 13 | -1.49 | +| LTC | 06-30 12:00 | 07-01 01:00 | stop_loss | 13 | -1.49 | +| NEAR | 06-30 21:00 | 07-01 01:00 | stop_loss | 4 | -1.49 | +| OP | 06-30 20:00 | 07-01 01:00 | stop_loss | 5 | -1.49 | +| UNI | 06-30 12:00 | 07-01 01:00 | trailing_stop | 13 | -0.49 | +| WIF | 07-01 01:00 | 07-01 02:00 | trailing_stop | 1 | -0.35 | +| SEI | 07-01 06:00 | 07-01 08:00 | trailing_stop | 2 | -0.62 | +| PEPE | 07-01 06:00 | 07-01 12:00 | trailing_stop | 6 | -0.69 | +| LTC | 07-01 12:00 | 07-01 13:00 | trailing_stop | 1 | -0.19 | +| ETC | 07-01 06:00 | 07-01 15:00 | take_profit | 9 | +1.49 | +| INJ | 07-01 23:00 | 07-02 00:00 | stop_loss | 1 | -1.49 | +| INJ | 07-02 00:00 | 07-02 02:00 | trailing_stop | 2 | -0.24 | +| TIA | 07-01 23:00 | 07-02 03:00 | take_profit | 4 | +1.49 | +| INJ | 07-02 05:00 | 07-02 06:00 | stop_loss | 1 | -1.49 | +| INJ | 07-02 06:00 | 07-02 07:00 | take_profit | 1 | +1.49 | +| INJ | 07-02 10:00 | 07-02 13:00 | take_profit | 3 | +1.49 | +| WIF | 07-03 00:00 | 07-03 01:00 | trailing_stop | 1 | -0.32 | +| WIF | 07-03 01:00 | 07-03 02:00 | stop_loss | 1 | -1.49 | +| TIA | 07-03 03:00 | 07-03 05:00 | stop_loss | 2 | -1.49 | +| WIF | 07-03 03:00 | 07-03 10:00 | take_profit | 7 | +1.49 | +| ETC | 07-03 03:00 | 07-03 11:00 | take_profit | 8 | +1.49 | +| SHIB | 07-03 03:00 | 07-03 11:00 | take_profit | 8 | +1.49 | +| LTC | 07-03 08:00 | 07-03 18:00 | take_profit | 10 | +1.49 | +| TRX | 06-30 16:00 | 07-03 20:00 | take_profit | 76 | +1.49 | +| NEAR | 07-04 03:00 | 07-04 04:00 | stop_loss | 1 | -1.49 | +| NEAR | 07-04 04:00 | 07-04 05:00 | stop_loss | 1 | -1.49 | +| INJ | 07-04 07:00 | 07-04 09:00 | stop_loss | 2 | -1.49 | +| ETC | 07-04 01:00 | 07-04 10:00 | take_profit | 9 | +1.49 | +| FET | 07-04 06:00 | 07-04 12:00 | take_profit | 6 | +1.49 | +| APT | 07-04 11:00 | 07-04 15:00 | take_profit | 4 | +1.49 | +| ARB | 07-04 10:00 | 07-04 15:00 | take_profit | 5 | +1.49 | +| AVAX | 07-04 10:00 | 07-04 15:00 | take_profit | 5 | +1.49 | +| LTC | 07-04 10:00 | 07-04 15:00 | take_profit | 5 | +1.49 | +| SEI | 07-04 09:00 | 07-04 15:00 | take_profit | 6 | +1.49 | +| SUI | 07-04 09:00 | 07-04 15:00 | take_profit | 6 | +1.49 | +| TIA | 07-04 08:00 | 07-04 15:00 | take_profit | 7 | +1.49 | +| UNI | 07-04 02:00 | 07-04 15:00 | take_profit | 13 | +1.49 | +| RENDER | 07-04 09:00 | 07-04 16:00 | take_profit | 7 | +1.49 | +| SHIB | 07-04 11:00 | 07-04 17:00 | take_profit | 6 | +1.49 | +| ATOM | 07-04 07:00 | 07-05 00:00 | trailing_stop | 17 | -0.35 | +| ETC | 07-05 01:00 | 07-05 02:00 | stop_loss | 1 | -1.49 | +| FET | 07-05 00:00 | 07-05 02:00 | stop_loss | 2 | -1.49 | +| ETC | 07-05 02:00 | 07-05 05:00 | stop_loss | 3 | -1.49 | +| NEAR | 07-05 04:00 | 07-05 05:00 | stop_loss | 1 | -1.49 | +| ATOM | 07-05 02:00 | 07-05 06:00 | stop_loss | 4 | -1.49 | +| AVAX | 07-05 05:00 | 07-05 07:00 | confirmed_bearish_exit | 2 | +0.16 | +| FIL | 07-05 02:00 | 07-05 09:00 | stop_loss | 7 | -1.49 | +| INJ | 07-05 05:00 | 07-05 09:00 | stop_loss | 4 | -1.49 | +| OP | 07-05 05:00 | 07-05 09:00 | stop_loss | 4 | -1.49 | +| RENDER | 07-05 07:00 | 07-05 09:00 | stop_loss | 2 | -1.49 | +| SEI | 07-05 05:00 | 07-05 09:00 | stop_loss | 4 | -1.49 | +| TIA | 07-05 08:00 | 07-05 09:00 | stop_loss | 1 | -1.49 | +| WIF | 07-05 02:00 | 07-05 09:00 | stop_loss | 7 | -1.49 | +| FET | 07-05 02:00 | 07-05 10:00 | stop_loss | 8 | -1.49 | +| PEPE | 07-05 05:00 | 07-05 10:00 | stop_loss | 5 | -1.49 | +| TIA | 07-05 09:00 | 07-05 10:00 | stop_loss | 1 | -1.49 | +| SHIB | 07-05 05:00 | 07-05 12:00 | confirmed_bearish_exit | 7 | +0.15 | +| SEI | 07-05 09:00 | 07-05 13:00 | confirmed_bearish_exit | 4 | +0.80 | +| LTC | 07-05 05:00 | 07-05 14:00 | take_profit | 9 | +1.49 | +| SUI | 07-05 01:00 | 07-05 15:00 | take_profit | 14 | +1.49 | +| KAS | 07-05 13:00 | 07-05 16:00 | stop_loss | 3 | -1.49 | +| APT | 07-05 02:00 | 07-05 17:00 | take_profit | 15 | +1.49 | +| SEI | 07-05 14:00 | 07-05 18:00 | take_profit | 4 | +1.49 | +| RENDER | 07-05 09:00 | 07-05 19:00 | take_profit | 10 | +1.49 | +| ARB | 07-05 12:00 | 07-05 21:00 | take_profit | 9 | +1.49 | +| ATOM | 07-05 14:00 | 07-05 22:00 | take_profit | 8 | +1.49 | +| AVAX | 07-05 10:00 | 07-05 22:00 | take_profit | 12 | +1.49 | +| ETC | 07-05 05:00 | 07-05 22:00 | take_profit | 17 | +1.49 | +| SHIB | 07-05 13:00 | 07-05 22:00 | take_profit | 9 | +1.49 | +| UNI | 07-05 11:00 | 07-05 22:00 | take_profit | 11 | +1.49 | +| KAS | 07-06 02:00 | 07-06 04:00 | stop_loss | 2 | -1.49 | +| SUI | 07-06 04:00 | 07-06 05:00 | stop_loss | 1 | -1.49 | +| OP | 07-06 08:00 | 07-06 09:00 | stop_loss | 1 | -1.49 | +| ARB | 07-06 11:00 | 07-06 12:00 | stop_loss | 1 | -1.49 | +| AVAX | 07-06 09:00 | 07-06 12:00 | stop_loss | 3 | -1.49 | +| BONK | 07-06 09:00 | 07-06 12:00 | stop_loss | 3 | -1.49 | +| KAS | 07-06 04:00 | 07-06 12:00 | stop_loss | 8 | -1.49 | +| LTC | 07-06 08:00 | 07-06 12:00 | stop_loss | 4 | -1.49 | +| OP | 07-06 10:00 | 07-06 12:00 | stop_loss | 2 | -1.49 | +| RENDER | 07-06 11:00 | 07-06 12:00 | stop_loss | 1 | -1.49 | +| SEI | 07-06 11:00 | 07-06 12:00 | stop_loss | 1 | -1.49 | +| SHIB | 07-06 11:00 | 07-06 12:00 | stop_loss | 1 | -1.49 | +| SUI | 07-06 05:00 | 07-06 12:00 | stop_loss | 7 | -1.49 | +| TIA | 07-06 08:00 | 07-06 12:00 | stop_loss | 4 | -1.49 | +| WIF | 07-06 11:00 | 07-06 12:00 | stop_loss | 1 | -1.49 | +| APT | 07-06 12:00 | 07-06 13:00 | trailing_stop | 1 | -0.62 | +| ATOM | 07-06 12:00 | 07-06 13:00 | trailing_stop | 1 | -0.57 | +| BONK | 07-06 12:00 | 07-06 13:00 | take_profit | 1 | +1.49 | +| NEAR | 07-06 12:00 | 07-06 13:00 | trailing_stop | 1 | -0.42 | +| TIA | 07-06 12:00 | 07-06 13:00 | stop_loss | 1 | -1.49 | +| WIF | 07-06 12:00 | 07-06 13:00 | trailing_stop | 1 | -0.70 | +| ARB | 07-06 12:00 | 07-06 15:00 | take_profit | 3 | +1.49 | +| AVAX | 07-06 12:00 | 07-06 15:00 | take_profit | 3 | +1.49 | +| FIL | 07-06 12:00 | 07-06 15:00 | take_profit | 3 | +1.49 | +| LTC | 07-06 12:00 | 07-06 15:00 | take_profit | 3 | +1.49 | +| OP | 07-06 12:00 | 07-06 15:00 | take_profit | 3 | +1.49 | +| PEPE | 07-06 12:00 | 07-06 15:00 | take_profit | 3 | +1.49 | +| RENDER | 07-06 12:00 | 07-06 15:00 | take_profit | 3 | +1.49 | +| SHIB | 07-06 12:00 | 07-06 15:00 | take_profit | 3 | +1.49 | +| SUI | 07-06 12:00 | 07-06 15:00 | take_profit | 3 | +1.49 | +| BONK | 07-06 17:00 | 07-06 18:00 | stop_loss | 1 | -1.49 | +| BONK | 07-06 18:00 | 07-06 19:00 | trailing_stop | 1 | -0.68 | +| TRX | 07-05 02:00 | 07-06 23:00 | confirmed_bearish_exit | 45 | +1.16 | +| KAS | 07-06 14:00 | 07-07 03:00 | stop_loss | 13 | -1.49 | +| KAS | 07-07 07:00 | 07-07 11:00 | confirmed_bearish_exit | 4 | -0.26 | +| NEAR | 07-07 05:00 | 07-07 11:00 | trailing_stop | 6 | -0.43 | +| ARB | 07-07 11:00 | 07-07 13:00 | stop_loss | 2 | -1.49 | +| ETC | 07-07 02:00 | 07-07 13:00 | stop_loss | 11 | -1.49 | +| PEPE | 07-07 11:00 | 07-07 13:00 | stop_loss | 2 | -1.49 | +| ARB | 07-07 13:00 | 07-07 14:00 | stop_loss | 1 | -1.49 | +| ATOM | 07-07 11:00 | 07-07 14:00 | stop_loss | 3 | -1.49 | +| AVAX | 07-07 05:00 | 07-07 14:00 | stop_loss | 9 | -1.49 | +| NEAR | 07-07 12:00 | 07-07 14:00 | stop_loss | 2 | -1.49 | +| SUI | 07-07 11:00 | 07-07 14:00 | stop_loss | 3 | -1.49 | +| WIF | 07-07 11:00 | 07-07 14:00 | stop_loss | 3 | -1.49 | +| FIL | 07-07 08:00 | 07-07 15:00 | take_profit | 7 | +1.49 | +| LTC | 07-07 05:00 | 07-07 15:00 | trailing_stop | 10 | -0.31 | +| KAS | 07-07 13:00 | 07-07 18:00 | trailing_stop | 5 | -0.36 | +| SEI | 07-07 18:00 | 07-07 21:00 | stop_loss | 3 | -1.49 | +| FET | 07-07 20:00 | 07-07 22:00 | stop_loss | 2 | -1.49 | +| FET | 07-08 00:00 | 07-08 01:00 | stop_loss | 1 | -1.49 | +| OP | 07-07 22:00 | 07-08 01:00 | stop_loss | 3 | -1.49 | +| RENDER | 07-07 21:00 | 07-08 01:00 | stop_loss | 4 | -1.49 | +| SEI | 07-07 21:00 | 07-08 01:00 | stop_loss | 4 | -1.49 | +| APT | 07-08 01:00 | 07-08 02:00 | stop_loss | 1 | -1.49 | +| ARB | 07-08 01:00 | 07-08 02:00 | stop_loss | 1 | -1.49 | +| AVAX | 07-08 01:00 | 07-08 02:00 | stop_loss | 1 | -1.49 | +| BONK | 07-08 01:00 | 07-08 02:00 | stop_loss | 1 | -1.49 | +| FET | 07-08 01:00 | 07-08 02:00 | stop_loss | 1 | -1.49 | +| NEAR | 07-08 01:00 | 07-08 02:00 | stop_loss | 1 | -1.49 | +| OP | 07-08 01:00 | 07-08 02:00 | stop_loss | 1 | -1.49 | +| PEPE | 07-08 01:00 | 07-08 02:00 | stop_loss | 1 | -1.49 | +| RENDER | 07-08 01:00 | 07-08 02:00 | stop_loss | 1 | -1.49 | +| SEI | 07-08 01:00 | 07-08 02:00 | stop_loss | 1 | -1.49 | +| WIF | 07-08 01:00 | 07-08 02:00 | stop_loss | 1 | -1.49 | +| BONK | 07-08 02:00 | 07-08 04:00 | stop_loss | 2 | -1.49 | +| ARB | 07-08 02:00 | 07-08 05:00 | take_profit | 3 | +1.49 | +| NEAR | 07-08 02:00 | 07-08 06:00 | stop_loss | 4 | -1.49 | +| OP | 07-08 02:00 | 07-08 06:00 | stop_loss | 4 | -1.49 | +| WIF | 07-08 02:00 | 07-08 06:00 | stop_loss | 4 | -1.49 | +| APT | 07-08 02:00 | 07-08 07:00 | take_profit | 5 | +1.49 | +| BONK | 07-08 04:00 | 07-08 07:00 | stop_loss | 3 | -1.49 | +| AVAX | 07-08 02:00 | 07-08 08:00 | stop_loss | 6 | -1.49 | +| PEPE | 07-08 02:00 | 07-08 08:00 | stop_loss | 6 | -1.49 | +| RENDER | 07-08 02:00 | 07-08 08:00 | stop_loss | 6 | -1.49 | +| SEI | 07-08 02:00 | 07-08 08:00 | stop_loss | 6 | -1.49 | +| SHIB | 07-08 04:00 | 07-08 08:00 | stop_loss | 4 | -1.49 | +| SUI | 07-08 02:00 | 07-08 08:00 | stop_loss | 6 | -1.49 | +| ATOM | 07-08 08:00 | 07-08 09:00 | stop_loss | 1 | -1.49 | +| SHIB | 07-08 08:00 | 07-08 09:00 | stop_loss | 1 | -1.49 | +| ATOM | 07-08 09:00 | 07-08 11:00 | take_profit | 2 | +1.49 | +| OP | 07-08 08:00 | 07-08 11:00 | trailing_stop | 3 | -0.38 | +| APT | 07-08 09:00 | 07-08 12:00 | stop_loss | 3 | -1.49 | +| AVAX | 07-08 11:00 | 07-08 13:00 | stop_loss | 2 | -1.49 | +| INJ | 07-08 12:00 | 07-08 13:00 | trailing_stop | 1 | -0.44 | +| AVAX | 07-08 13:00 | 07-08 14:00 | stop_loss | 1 | -1.49 | +| OP | 07-08 13:00 | 07-08 14:00 | stop_loss | 1 | -1.49 | +| BONK | 07-08 14:00 | 07-08 15:00 | stop_loss | 1 | -1.49 | +| FIL | 07-08 08:00 | 07-08 15:00 | trailing_stop | 7 | -0.14 | +| SHIB | 07-08 09:00 | 07-08 15:00 | trailing_stop | 6 | -0.14 | +| BONK | 07-08 15:00 | 07-08 21:00 | trailing_stop | 6 | -0.53 | +| ARB | 07-08 20:00 | 07-09 01:00 | take_profit | 5 | +1.49 | +| AVAX | 07-08 14:00 | 07-09 01:00 | take_profit | 11 | +1.49 | +| TRX | 07-08 04:00 | 07-09 08:00 | stop_loss | 28 | -1.49 | +| OP | 07-09 22:00 | 07-10 00:00 | stop_loss | 2 | -1.49 | +| APT | 07-09 20:00 | 07-10 01:00 | take_profit | 5 | +1.49 | +| OP | 07-10 00:00 | 07-10 01:00 | take_profit | 1 | +1.49 | +| WIF | 07-10 00:00 | 07-10 01:00 | take_profit | 1 | +1.49 | +| ATOM | 07-09 15:00 | 07-10 09:00 | take_profit | 18 | +1.49 | +| INJ | 07-10 06:00 | 07-10 09:00 | take_profit | 3 | +1.49 | +| WIF | 07-10 14:00 | 07-10 15:00 | stop_loss | 1 | -1.49 | +| WIF | 07-10 15:00 | 07-10 16:00 | trailing_stop | 1 | -0.08 | +| NEAR | 07-10 14:00 | 07-10 18:00 | stop_loss | 4 | -1.49 | +| NEAR | 07-10 18:00 | 07-11 00:00 | take_profit | 6 | +1.49 | +| TIA | 07-10 18:00 | 07-11 01:00 | take_profit | 7 | +1.49 | +| ARB | 07-11 00:00 | 07-11 02:00 | trailing_stop | 2 | -0.19 | +| WIF | 07-10 17:00 | 07-11 04:00 | trailing_stop | 11 | -0.60 | +| NEAR | 07-11 00:00 | 07-11 08:00 | stop_loss | 8 | -1.49 | +| OP | 07-10 22:00 | 07-11 08:00 | trailing_stop | 10 | -0.65 | +| UNI | 07-11 01:00 | 07-11 10:00 | take_profit | 9 | +1.49 | +| PEPE | 07-11 11:00 | 07-11 15:00 | trailing_stop | 4 | -0.56 | +| SEI | 07-11 09:00 | 07-11 20:00 | take_profit | 11 | +1.49 | +| BONK | 07-11 22:00 | 07-11 23:00 | stop_loss | 1 | -1.49 | +| ETC | 07-11 22:00 | 07-11 23:00 | stop_loss | 1 | -1.49 | +| FIL | 07-11 22:00 | 07-11 23:00 | stop_loss | 1 | -1.49 | +| INJ | 07-11 22:00 | 07-11 23:00 | stop_loss | 1 | -1.49 | +| RENDER | 07-11 19:00 | 07-11 23:00 | stop_loss | 4 | -1.49 | +| SHIB | 07-11 22:00 | 07-11 23:00 | stop_loss | 1 | -1.49 | +| ATOM | 07-11 14:00 | 07-12 00:00 | stop_loss | 10 | -1.49 | +| AVAX | 07-11 23:00 | 07-12 00:00 | stop_loss | 1 | -1.49 | +| ETC | 07-11 23:00 | 07-12 00:00 | stop_loss | 1 | -1.49 | +| INJ | 07-11 23:00 | 07-12 00:00 | stop_loss | 1 | -1.49 | +| OP | 07-11 23:00 | 07-12 00:00 | stop_loss | 1 | -1.49 | +| PEPE | 07-11 23:00 | 07-12 00:00 | stop_loss | 1 | -1.49 | +| RENDER | 07-11 23:00 | 07-12 00:00 | stop_loss | 1 | -1.49 | +| SUI | 07-11 23:00 | 07-12 00:00 | stop_loss | 1 | -1.49 | +| WIF | 07-11 23:00 | 07-12 00:00 | stop_loss | 1 | -1.49 | +| FET | 07-11 23:00 | 07-12 01:00 | trailing_stop | 2 | -0.64 | +| PEPE | 07-12 00:00 | 07-12 01:00 | trailing_stop | 1 | -0.16 | +| TIA | 07-12 00:00 | 07-12 01:00 | trailing_stop | 1 | -0.21 | +| FIL | 07-11 23:00 | 07-12 02:00 | confirmed_bearish_exit | 3 | +1.02 | +| AVAX | 07-12 00:00 | 07-12 04:00 | trailing_stop | 4 | -0.67 | +| ETC | 07-12 00:00 | 07-12 05:00 | confirmed_bearish_exit | 5 | +0.08 | +| KAS | 07-12 00:00 | 07-12 05:00 | stop_loss | 5 | -1.49 | +| AVAX | 07-12 04:00 | 07-12 06:00 | stop_loss | 2 | -1.49 | +| INJ | 07-12 00:00 | 07-12 06:00 | trailing_stop | 6 | +0.04 | +| NEAR | 07-11 23:00 | 07-12 06:00 | trailing_stop | 7 | -0.54 | +| OP | 07-12 00:00 | 07-12 06:00 | trailing_stop | 6 | -0.13 | +| SEI | 07-11 23:00 | 07-12 06:00 | trailing_stop | 7 | -0.53 | +| TIA | 07-12 03:00 | 07-12 06:00 | take_profit | 3 | +1.49 | +| UNI | 07-12 05:00 | 07-12 06:00 | stop_loss | 1 | -1.49 | +| SUI | 07-12 00:00 | 07-12 07:00 | take_profit | 7 | +1.49 | +| UNI | 07-12 08:00 | 07-12 10:00 | stop_loss | 2 | -1.49 | +| KAS | 07-12 05:00 | 07-12 11:00 | stop_loss | 6 | -1.49 | +| ATOM | 07-12 07:00 | 07-12 14:00 | trailing_stop | 7 | -0.03 | +| AVAX | 07-12 06:00 | 07-12 14:00 | take_profit | 8 | +1.49 | +| OP | 07-12 11:00 | 07-12 14:00 | stop_loss | 3 | -1.49 | +| BONK | 07-11 23:00 | 07-12 18:00 | trailing_stop | 19 | +0.06 | +| SHIB | 07-11 23:00 | 07-12 21:00 | stop_loss | 22 | -1.49 | +| LTC | 07-11 23:00 | 07-12 22:00 | stop_loss | 23 | -1.49 | +| RENDER | 07-12 00:00 | 07-12 22:00 | trailing_stop | 22 | -0.35 | +| SEI | 07-12 07:00 | 07-12 22:00 | stop_loss | 15 | -1.49 | +| KAS | 07-12 16:00 | 07-12 23:00 | stop_loss | 7 | -1.49 | +| FIL | 07-12 22:00 | 07-13 00:00 | take_profit | 2 | +1.49 | +| KAS | 07-12 23:00 | 07-13 00:00 | trailing_stop | 1 | -0.55 | +| APT | 07-12 22:00 | 07-13 01:00 | stop_loss | 3 | -1.49 | +| FET | 07-12 22:00 | 07-13 01:00 | trailing_stop | 3 | -0.70 | +| RENDER | 07-12 22:00 | 07-13 01:00 | stop_loss | 3 | -1.49 | +| SEI | 07-12 22:00 | 07-13 01:00 | stop_loss | 3 | -1.49 | +| SHIB | 07-12 21:00 | 07-13 01:00 | stop_loss | 4 | -1.49 | +| BONK | 07-12 22:00 | 07-13 02:00 | stop_loss | 4 | -1.49 | +| APT | 07-13 01:00 | 07-13 03:00 | stop_loss | 2 | -1.49 | +| ATOM | 07-13 01:00 | 07-13 03:00 | stop_loss | 2 | -1.49 | +| FET | 07-13 01:00 | 07-13 03:00 | stop_loss | 2 | -1.49 | +| FIL | 07-13 01:00 | 07-13 03:00 | stop_loss | 2 | -1.49 | +| LTC | 07-12 23:00 | 07-13 03:00 | stop_loss | 4 | -1.49 | +| OP | 07-12 22:00 | 07-13 03:00 | stop_loss | 5 | -1.49 | +| SEI | 07-13 01:00 | 07-13 03:00 | stop_loss | 2 | -1.49 | +| SHIB | 07-13 01:00 | 07-13 03:00 | stop_loss | 2 | -1.49 | +| SUI | 07-13 01:00 | 07-13 03:00 | stop_loss | 2 | -1.49 | +| TIA | 07-13 01:00 | 07-13 03:00 | stop_loss | 2 | -1.49 | +| UNI | 07-13 01:00 | 07-13 03:00 | stop_loss | 2 | -1.49 | +| APT | 07-13 03:00 | 07-13 05:00 | take_profit | 2 | +1.49 | +| ARB | 07-13 03:00 | 07-13 05:00 | take_profit | 2 | +1.49 | +| OP | 07-13 03:00 | 07-13 05:00 | take_profit | 2 | +1.49 | +| TIA | 07-13 03:00 | 07-13 05:00 | take_profit | 2 | +1.49 | +| UNI | 07-13 04:00 | 07-13 07:00 | trailing_stop | 3 | -0.48 | +| TRX | 07-10 07:00 | 07-13 10:00 | stop_loss | 75 | -1.49 | +| APT | 07-13 10:00 | 07-13 12:00 | stop_loss | 2 | -1.49 | +| SEI | 07-13 03:00 | 07-13 12:00 | trailing_stop | 9 | -0.09 | +| RENDER | 07-13 01:00 | 07-13 13:00 | stop_loss | 12 | -1.49 | +| UNI | 07-13 10:00 | 07-13 13:00 | stop_loss | 3 | -1.49 | +| BONK | 07-13 03:00 | 07-13 14:00 | stop_loss | 11 | -1.49 | +| FIL | 07-13 03:00 | 07-13 14:00 | stop_loss | 11 | -1.49 | +| INJ | 07-13 03:00 | 07-13 14:00 | trailing_stop | 11 | -0.23 | +| LTC | 07-13 03:00 | 07-13 14:00 | stop_loss | 11 | -1.49 | +| PEPE | 07-13 04:00 | 07-13 14:00 | trailing_stop | 10 | -0.25 | +| BONK | 07-13 15:00 | 07-13 16:00 | stop_loss | 1 | -1.49 | +| SHIB | 07-13 03:00 | 07-13 16:00 | stop_loss | 13 | -1.49 | +| RENDER | 07-13 16:00 | 07-13 17:00 | stop_loss | 1 | -1.49 | +| SHIB | 07-13 16:00 | 07-13 17:00 | stop_loss | 1 | -1.49 | +| SUI | 07-13 03:00 | 07-13 17:00 | stop_loss | 14 | -1.49 | +| BONK | 07-13 16:00 | 07-13 20:00 | trailing_stop | 4 | -0.09 | +| ATOM | 07-13 03:00 | 07-13 21:00 | stop_loss | 18 | -1.49 | +| PEPE | 07-13 17:00 | 07-13 21:00 | trailing_stop | 4 | -0.26 | +| RENDER | 07-13 17:00 | 07-13 21:00 | trailing_stop | 4 | -0.70 | +| TRX | 07-13 10:00 | 07-13 22:00 | stop_loss | 12 | -1.49 | +| FET | 07-13 21:00 | 07-14 00:00 | take_profit | 3 | +1.49 | +| FIL | 07-13 21:00 | 07-14 00:00 | take_profit | 3 | +1.49 | +| APT | 07-13 21:00 | 07-14 01:00 | take_profit | 4 | +1.49 | +| SUI | 07-13 21:00 | 07-14 01:00 | take_profit | 4 | +1.49 | +| BONK | 07-14 01:00 | 07-14 07:00 | take_profit | 6 | +1.49 | +| AVAX | 07-14 04:00 | 07-14 12:00 | take_profit | 8 | +1.49 | +| RENDER | 07-13 21:00 | 07-14 12:00 | take_profit | 15 | +1.49 | +| SHIB | 07-13 17:00 | 07-14 12:00 | trailing_stop | 19 | +0.08 | +| TRX | 07-14 04:00 | 07-15 03:00 | confirmed_bearish_exit | 23 | +0.08 | +| PEPE | 07-15 03:00 | 07-15 05:00 | stop_loss | 2 | -1.49 | +| UNI | 07-15 02:00 | 07-15 06:00 | trailing_stop | 4 | -0.17 | +| BONK | 07-15 02:00 | 07-15 07:00 | trailing_stop | 5 | -0.37 | +| INJ | 07-15 03:00 | 07-15 07:00 | stop_loss | 4 | -1.49 | +| PEPE | 07-15 05:00 | 07-15 07:00 | stop_loss | 2 | -1.49 | +| INJ | 07-15 07:00 | 07-15 10:00 | trailing_stop | 3 | -0.04 | +| NEAR | 07-15 07:00 | 07-15 10:00 | take_profit | 3 | +1.49 | +| ARB | 07-15 07:00 | 07-15 12:00 | take_profit | 5 | +1.49 | +| FET | 07-15 02:00 | 07-15 12:00 | trailing_stop | 10 | +0.02 | +| PEPE | 07-15 07:00 | 07-15 12:00 | take_profit | 5 | +1.49 | +| SUI | 07-15 04:00 | 07-15 12:00 | trailing_stop | 8 | -0.48 | +| UNI | 07-15 07:00 | 07-15 12:00 | trailing_stop | 5 | -0.27 | +| ARB | 07-15 14:00 | 07-15 15:00 | stop_loss | 1 | -1.49 | +| ARB | 07-15 15:00 | 07-15 16:00 | stop_loss | 1 | -1.49 | +| BONK | 07-15 19:00 | 07-15 23:00 | stop_loss | 4 | -1.49 | +| TRX | 07-15 16:00 | 07-16 02:00 | confirmed_bearish_exit | 10 | -0.41 | +| APT | 07-16 04:00 | 07-16 07:00 | stop_loss | 3 | -1.49 | +| SHIB | 07-16 03:00 | 07-16 07:00 | stop_loss | 4 | -1.49 | +| APT | 07-16 07:00 | 07-16 08:00 | stop_loss | 1 | -1.49 | +| ATOM | 07-16 07:00 | 07-16 08:00 | stop_loss | 1 | -1.49 | +| AVAX | 07-16 07:00 | 07-16 08:00 | stop_loss | 1 | -1.49 | +| TIA | 07-16 07:00 | 07-16 08:00 | stop_loss | 1 | -1.49 | +| KAS | 07-16 07:00 | 07-16 10:00 | stop_loss | 3 | -1.49 | +| APT | 07-16 08:00 | 07-16 12:00 | stop_loss | 4 | -1.49 | +| AVAX | 07-16 08:00 | 07-16 12:00 | stop_loss | 4 | -1.49 | +| INJ | 07-16 09:00 | 07-16 12:00 | stop_loss | 3 | -1.49 | +| OP | 07-16 08:00 | 07-16 12:00 | stop_loss | 4 | -1.49 | +| APT | 07-16 12:00 | 07-16 13:00 | trailing_stop | 1 | -0.51 | +| AVAX | 07-16 12:00 | 07-16 13:00 | trailing_stop | 1 | -0.38 | +| NEAR | 07-16 08:00 | 07-16 13:00 | take_profit | 5 | +1.49 | +| ATOM | 07-16 08:00 | 07-16 17:00 | stop_loss | 9 | -1.49 | +| AVAX | 07-16 16:00 | 07-16 17:00 | stop_loss | 1 | -1.49 | +| FET | 07-16 09:00 | 07-16 17:00 | trailing_stop | 8 | -0.07 | +| FIL | 07-16 08:00 | 07-16 17:00 | trailing_stop | 9 | -0.39 | +| OP | 07-16 16:00 | 07-16 17:00 | stop_loss | 1 | -1.49 | +| TIA | 07-16 08:00 | 07-16 17:00 | trailing_stop | 9 | -0.52 | +| RENDER | 07-16 07:00 | 07-16 20:00 | stop_loss | 13 | -1.49 | +| TIA | 07-16 19:00 | 07-16 20:00 | trailing_stop | 1 | -0.09 | +| ATOM | 07-16 20:00 | 07-16 22:00 | stop_loss | 2 | -1.49 | +| ETC | 07-16 08:00 | 07-16 22:00 | trailing_stop | 14 | -0.62 | +| SEI | 07-16 08:00 | 07-16 22:00 | stop_loss | 14 | -1.49 | +| AVAX | 07-16 17:00 | 07-16 23:00 | trailing_stop | 6 | -0.67 | +| KAS | 07-16 10:00 | 07-16 23:00 | stop_loss | 13 | -1.49 | +| PEPE | 07-16 16:00 | 07-16 23:00 | stop_loss | 7 | -1.49 | +| SHIB | 07-16 08:00 | 07-16 23:00 | stop_loss | 15 | -1.49 | +| BONK | 07-17 00:00 | 07-17 01:00 | stop_loss | 1 | -1.49 | +| LTC | 07-16 11:00 | 07-17 03:00 | take_profit | 16 | +1.49 | +| BONK | 07-17 01:00 | 07-17 04:00 | stop_loss | 3 | -1.49 | +| TIA | 07-17 02:00 | 07-17 04:00 | stop_loss | 2 | -1.49 | +| RENDER | 07-16 23:00 | 07-17 05:00 | stop_loss | 6 | -1.49 | +| TIA | 07-17 04:00 | 07-17 05:00 | stop_loss | 1 | -1.49 | +| UNI | 07-16 23:00 | 07-17 05:00 | stop_loss | 6 | -1.49 | +| INJ | 07-16 23:00 | 07-17 06:00 | trailing_stop | 7 | -0.52 | +| KAS | 07-17 02:00 | 07-17 08:00 | stop_loss | 6 | -1.49 | +| OP | 07-17 05:00 | 07-17 08:00 | stop_loss | 3 | -1.49 | +| SUI | 07-17 05:00 | 07-17 08:00 | stop_loss | 3 | -1.49 | +| TIA | 07-17 05:00 | 07-17 09:00 | take_profit | 4 | +1.49 | +| LTC | 07-17 08:00 | 07-17 10:00 | take_profit | 2 | +1.49 | +| FIL | 07-17 05:00 | 07-17 12:00 | trailing_stop | 7 | -0.41 | +| TIA | 07-17 10:00 | 07-17 12:00 | stop_loss | 2 | -1.49 | +| ATOM | 07-17 02:00 | 07-17 13:00 | stop_loss | 11 | -1.49 | +| AVAX | 07-17 11:00 | 07-17 13:00 | stop_loss | 2 | -1.49 | +| ETC | 07-17 05:00 | 07-17 13:00 | trailing_stop | 8 | -0.39 | +| NEAR | 07-17 08:00 | 07-17 13:00 | take_profit | 5 | +1.49 | +| OP | 07-17 12:00 | 07-17 13:00 | stop_loss | 1 | -1.49 | +| RENDER | 07-17 05:00 | 07-17 13:00 | stop_loss | 8 | -1.49 | +| SEI | 07-17 05:00 | 07-17 13:00 | trailing_stop | 8 | -0.68 | +| TIA | 07-17 12:00 | 07-17 13:00 | stop_loss | 1 | -1.49 | +| TIA | 07-17 13:00 | 07-17 15:00 | stop_loss | 2 | -1.49 | +| BONK | 07-17 21:00 | 07-17 22:00 | stop_loss | 1 | -1.49 | +| TIA | 07-18 01:00 | 07-18 04:00 | stop_loss | 3 | -1.49 | +| BONK | 07-18 04:00 | 07-18 07:00 | stop_loss | 3 | -1.49 | +| TIA | 07-18 04:00 | 07-18 07:00 | stop_loss | 3 | -1.49 | +| NEAR | 07-17 17:00 | 07-18 09:00 | stop_loss | 16 | -1.49 | +| BONK | 07-18 09:00 | 07-18 11:00 | stop_loss | 2 | -1.49 | +| FIL | 07-18 07:00 | 07-18 12:00 | stop_loss | 5 | -1.49 | +| FIL | 07-18 12:00 | 07-18 13:00 | stop_loss | 1 | -1.49 | +| FET | 07-18 07:00 | 07-18 15:00 | stop_loss | 8 | -1.49 | +| KAS | 07-18 12:00 | 07-18 15:00 | stop_loss | 3 | -1.49 | +| PEPE | 07-18 08:00 | 07-18 17:00 | take_profit | 9 | +1.49 | +| KAS | 07-18 15:00 | 07-18 18:00 | take_profit | 3 | +1.49 | +| NEAR | 07-18 09:00 | 07-18 18:00 | take_profit | 9 | +1.49 | +| BONK | 07-18 22:00 | 07-18 23:00 | stop_loss | 1 | -1.49 | +| ARB | 07-18 15:00 | 07-19 01:00 | stop_loss | 10 | -1.49 | +| UNI | 07-18 15:00 | 07-19 01:00 | trailing_stop | 10 | -0.23 | +| SUI | 07-18 13:00 | 07-19 02:00 | take_profit | 13 | +1.49 | +| FIL | 07-18 13:00 | 07-19 07:00 | trailing_stop | 18 | -0.40 | +| APT | 07-18 13:00 | 07-19 09:00 | trailing_stop | 20 | -0.65 | +| AVAX | 07-18 17:00 | 07-19 09:00 | stop_loss | 16 | -1.49 | +| ATOM | 07-18 05:00 | 07-19 11:00 | stop_loss | 30 | -1.49 | +| AVAX | 07-19 09:00 | 07-19 12:00 | stop_loss | 3 | -1.49 | +| FIL | 07-19 09:00 | 07-19 12:00 | stop_loss | 3 | -1.49 | +| INJ | 07-19 07:00 | 07-19 12:00 | stop_loss | 5 | -1.49 | +| OP | 07-18 18:00 | 07-19 12:00 | stop_loss | 18 | -1.49 | +| FIL | 07-19 12:00 | 07-19 14:00 | stop_loss | 2 | -1.49 | +| FIL | 07-19 14:00 | 07-19 16:00 | stop_loss | 2 | -1.49 | +| APT | 07-19 12:00 | 07-19 17:00 | stop_loss | 5 | -1.49 | +| ETC | 07-19 13:00 | 07-19 17:00 | stop_loss | 4 | -1.49 | +| RENDER | 07-18 08:00 | 07-19 17:00 | trailing_stop | 33 | -0.29 | +| SHIB | 07-18 17:00 | 07-19 17:00 | stop_loss | 24 | -1.49 | +| WIF | 07-19 06:00 | 07-19 17:00 | stop_loss | 11 | -1.49 | +| FIL | 07-19 16:00 | 07-19 23:00 | confirmed_bearish_exit | 7 | +0.04 | +| ATOM | 07-19 21:00 | 07-20 01:00 | stop_loss | 4 | -1.49 | +| AVAX | 07-19 12:00 | 07-20 01:00 | take_profit | 13 | +1.49 | +| BONK | 07-20 00:00 | 07-20 01:00 | stop_loss | 1 | -1.49 | +| FET | 07-20 01:00 | 07-20 02:00 | stop_loss | 1 | -1.49 | +| FET | 07-20 02:00 | 07-20 03:00 | stop_loss | 1 | -1.49 | +| APT | 07-19 17:00 | 07-20 04:00 | stop_loss | 11 | -1.49 | +| FIL | 07-20 00:00 | 07-20 05:00 | stop_loss | 5 | -1.49 | +| NEAR | 07-19 16:00 | 07-20 05:00 | trailing_stop | 13 | -0.69 | +| SHIB | 07-19 18:00 | 07-20 05:00 | trailing_stop | 11 | -0.12 | +| UNI | 07-19 16:00 | 07-20 05:00 | stop_loss | 13 | -1.49 | +| SEI | 07-20 04:00 | 07-20 06:00 | stop_loss | 2 | -1.49 | +| APT | 07-20 05:00 | 07-20 11:00 | take_profit | 6 | +1.49 | +| ARB | 07-20 05:00 | 07-20 11:00 | take_profit | 6 | +1.49 | +| ATOM | 07-20 01:00 | 07-20 11:00 | take_profit | 10 | +1.49 | +| LTC | 07-20 08:00 | 07-20 11:00 | take_profit | 3 | +1.49 | +| SEI | 07-20 06:00 | 07-20 11:00 | take_profit | 5 | +1.49 | +| SUI | 07-20 05:00 | 07-20 11:00 | trailing_stop | 6 | -0.01 | +| UNI | 07-20 05:00 | 07-20 11:00 | take_profit | 6 | +1.49 | +| RENDER | 07-20 05:00 | 07-20 14:00 | take_profit | 9 | +1.49 | +| ETC | 07-20 08:00 | 07-20 15:00 | take_profit | 7 | +1.49 | +| FET | 07-20 03:00 | 07-20 15:00 | take_profit | 12 | +1.49 | +| OP | 07-20 13:00 | 07-20 15:00 | take_profit | 2 | +1.49 | +| WIF | 07-20 13:00 | 07-20 15:00 | take_profit | 2 | +1.49 | +| BONK | 07-21 11:00 | 07-21 12:00 | take_profit | 1 | +1.49 | +| TRX | 07-17 02:00 | 07-21 13:00 | take_profit | 107 | +1.49 | +| NEAR | 07-21 16:00 | 07-21 19:00 | stop_loss | 3 | -1.49 | +| ARB | 07-21 17:00 | 07-22 00:00 | trailing_stop | 7 | +0.08 | +| NEAR | 07-22 00:00 | 07-22 02:00 | stop_loss | 2 | -1.49 | +| NEAR | 07-22 02:00 | 07-22 03:00 | stop_loss | 1 | -1.49 | +| RENDER | 07-21 23:00 | 07-22 03:00 | stop_loss | 4 | -1.49 | +| SEI | 07-21 19:00 | 07-22 03:00 | stop_loss | 8 | -1.49 | +| INJ | 07-21 14:00 | 07-22 04:00 | take_profit | 14 | +1.49 | +| AVAX | 07-21 20:00 | 07-22 05:00 | stop_loss | 9 | -1.49 | +| BONK | 07-22 03:00 | 07-22 05:00 | stop_loss | 2 | -1.49 | +| FET | 07-21 21:00 | 07-22 05:00 | stop_loss | 8 | -1.49 | +| LTC | 07-21 20:00 | 07-22 05:00 | stop_loss | 9 | -1.49 | +| PEPE | 07-21 17:00 | 07-22 05:00 | stop_loss | 12 | -1.49 | +| ETC | 07-21 23:00 | 07-22 06:00 | stop_loss | 7 | -1.49 | +| SEI | 07-22 03:00 | 07-22 06:00 | stop_loss | 3 | -1.49 | +| SUI | 07-21 19:00 | 07-22 06:00 | stop_loss | 11 | -1.49 | +| WIF | 07-21 22:00 | 07-22 06:00 | trailing_stop | 8 | -0.07 | +| ATOM | 07-21 21:00 | 07-22 07:00 | stop_loss | 10 | -1.49 | +| TIA | 07-22 05:00 | 07-22 12:00 | trailing_stop | 7 | -0.60 | +| SUI | 07-22 06:00 | 07-22 14:00 | take_profit | 8 | +1.49 | +| AVAX | 07-22 05:00 | 07-22 15:00 | take_profit | 10 | +1.49 | +| OP | 07-22 07:00 | 07-22 15:00 | take_profit | 8 | +1.49 | +| NEAR | 07-22 07:00 | 07-22 18:00 | stop_loss | 11 | -1.49 | +| SEI | 07-22 06:00 | 07-22 19:00 | trailing_stop | 13 | -0.07 | +| INJ | 07-22 06:00 | 07-22 20:00 | stop_loss | 14 | -1.49 | +| LTC | 07-22 11:00 | 07-22 21:00 | take_profit | 10 | +1.49 | +| KAS | 07-22 06:00 | 07-22 22:00 | trailing_stop | 16 | -0.54 | +| RENDER | 07-22 03:00 | 07-22 22:00 | trailing_stop | 19 | -0.20 | +| ATOM | 07-22 07:00 | 07-23 03:00 | stop_loss | 20 | -1.49 | +| BONK | 07-23 03:00 | 07-23 04:00 | trailing_stop | 1 | -0.17 | +| TIA | 07-23 03:00 | 07-23 06:00 | confirmed_bearish_exit | 3 | +0.67 | +| FET | 07-22 05:00 | 07-23 07:00 | stop_loss | 26 | -1.49 | +| FIL | 07-23 03:00 | 07-23 07:00 | stop_loss | 4 | -1.49 | +| OP | 07-23 04:00 | 07-23 08:00 | confirmed_bearish_exit | 4 | +0.02 | +| NEAR | 07-23 03:00 | 07-23 10:00 | take_profit | 7 | +1.49 | +| ARB | 07-23 07:00 | 07-23 12:00 | stop_loss | 5 | -1.49 | +| ATOM | 07-23 03:00 | 07-23 12:00 | trailing_stop | 9 | -0.20 | +| LTC | 07-23 10:00 | 07-23 12:00 | take_profit | 2 | +1.49 | +| SHIB | 07-22 03:00 | 07-23 12:00 | stop_loss | 33 | -1.49 | +| AVAX | 07-23 12:00 | 07-23 13:00 | stop_loss | 1 | -1.49 | +| WIF | 07-23 07:00 | 07-23 13:00 | stop_loss | 6 | -1.49 | +| APT | 07-23 13:00 | 07-23 14:00 | take_profit | 1 | +1.49 | +| ARB | 07-23 12:00 | 07-23 14:00 | stop_loss | 2 | -1.49 | +| PEPE | 07-23 12:00 | 07-23 14:00 | stop_loss | 2 | -1.49 | +| SHIB | 07-23 12:00 | 07-23 14:00 | stop_loss | 2 | -1.49 | +| TIA | 07-23 13:00 | 07-23 14:00 | stop_loss | 1 | -1.49 | +| ARB | 07-23 14:00 | 07-23 15:00 | stop_loss | 1 | -1.49 | +| FIL | 07-23 07:00 | 07-23 15:00 | stop_loss | 8 | -1.49 | +| INJ | 07-23 01:00 | 07-23 15:00 | trailing_stop | 14 | -0.31 | +| PEPE | 07-23 14:00 | 07-23 15:00 | stop_loss | 1 | -1.49 | +| RENDER | 07-23 03:00 | 07-23 15:00 | stop_loss | 12 | -1.49 | +| SUI | 07-23 13:00 | 07-23 15:00 | stop_loss | 2 | -1.49 | +| WIF | 07-23 13:00 | 07-23 15:00 | stop_loss | 2 | -1.49 | +| ATOM | 07-23 13:00 | 07-23 17:00 | stop_loss | 4 | -1.49 | +| AVAX | 07-23 13:00 | 07-23 17:00 | stop_loss | 4 | -1.49 | +| OP | 07-23 13:00 | 07-23 17:00 | stop_loss | 4 | -1.49 | +| RENDER | 07-23 15:00 | 07-23 17:00 | stop_loss | 2 | -1.49 | +| SUI | 07-23 15:00 | 07-23 17:00 | stop_loss | 2 | -1.49 | +| TIA | 07-23 14:00 | 07-23 17:00 | stop_loss | 3 | -1.49 | +| WIF | 07-23 15:00 | 07-23 17:00 | stop_loss | 2 | -1.49 | +| AVAX | 07-23 17:00 | 07-23 18:00 | stop_loss | 1 | -1.49 | +| WIF | 07-23 17:00 | 07-23 18:00 | stop_loss | 1 | -1.49 | +| SHIB | 07-23 14:00 | 07-23 19:00 | stop_loss | 5 | -1.49 | +| LTC | 07-23 14:00 | 07-23 20:00 | trailing_stop | 6 | -0.01 | +| WIF | 07-23 18:00 | 07-23 20:00 | trailing_stop | 2 | -0.19 | +| OP | 07-23 17:00 | 07-23 22:00 | confirmed_bearish_exit | 5 | -0.61 | +| TIA | 07-23 17:00 | 07-23 22:00 | trailing_stop | 5 | -0.39 | +| APT | 07-23 17:00 | 07-24 00:00 | take_profit | 7 | +1.49 | +| ARB | 07-23 21:00 | 07-24 00:00 | stop_loss | 3 | -1.49 | +| BONK | 07-23 23:00 | 07-24 00:00 | trailing_stop | 1 | -0.43 | +| SHIB | 07-23 22:00 | 07-24 00:00 | stop_loss | 2 | -1.49 | +| SUI | 07-23 17:00 | 07-24 00:00 | trailing_stop | 7 | -0.62 | +| ETC | 07-23 17:00 | 07-24 02:00 | stop_loss | 9 | -1.49 | +| FET | 07-23 13:00 | 07-24 07:00 | take_profit | 18 | +1.49 | +| ATOM | 07-23 17:00 | 07-24 09:00 | stop_loss | 16 | -1.49 | +| WIF | 07-24 05:00 | 07-24 09:00 | trailing_stop | 4 | -0.33 | +| FIL | 07-24 00:00 | 07-24 12:00 | trailing_stop | 12 | -0.71 | +| PEPE | 07-23 22:00 | 07-24 12:00 | stop_loss | 14 | -1.49 | +| RENDER | 07-23 17:00 | 07-24 12:00 | trailing_stop | 19 | -0.36 | +| SHIB | 07-24 00:00 | 07-24 12:00 | trailing_stop | 12 | +0.00 | +| ATOM | 07-24 10:00 | 07-24 13:00 | stop_loss | 3 | -1.49 | +| AVAX | 07-23 18:00 | 07-24 13:00 | stop_loss | 19 | -1.49 | +| ETC | 07-24 02:00 | 07-24 13:00 | stop_loss | 11 | -1.49 | +| NEAR | 07-24 12:00 | 07-24 13:00 | stop_loss | 1 | -1.49 | +| PEPE | 07-24 12:00 | 07-24 13:00 | stop_loss | 1 | -1.49 | +| SUI | 07-24 10:00 | 07-24 13:00 | stop_loss | 3 | -1.49 | +| NEAR | 07-24 13:00 | 07-24 14:00 | stop_loss | 1 | -1.49 | +| PEPE | 07-24 13:00 | 07-24 14:00 | stop_loss | 1 | -1.49 | +| SUI | 07-24 13:00 | 07-24 14:00 | stop_loss | 1 | -1.49 | +| APT | 07-24 12:00 | 07-24 17:00 | take_profit | 5 | +1.49 | +| SUI | 07-24 14:00 | 07-24 18:00 | stop_loss | 4 | -1.49 | +| ARB | 07-24 13:00 | 07-24 21:00 | stop_loss | 8 | -1.49 | +| ETC | 07-24 13:00 | 07-24 21:00 | stop_loss | 8 | -1.49 | +| SEI | 07-24 13:00 | 07-24 21:00 | stop_loss | 8 | -1.49 | +| FIL | 07-24 13:00 | 07-24 22:00 | trailing_stop | 9 | -0.10 | +| TIA | 07-24 19:00 | 07-24 22:00 | stop_loss | 3 | -1.49 | +| INJ | 07-24 17:00 | 07-25 00:00 | trailing_stop | 7 | -0.29 | +| NEAR | 07-24 14:00 | 07-25 02:00 | stop_loss | 12 | -1.49 | +| UNI | 07-24 21:00 | 07-25 02:00 | trailing_stop | 5 | -0.54 | +| ATOM | 07-24 13:00 | 07-25 03:00 | trailing_stop | 14 | +0.15 | +| OP | 07-24 13:00 | 07-25 03:00 | trailing_stop | 14 | -0.30 | +| UNI | 07-25 04:00 | 07-25 05:00 | stop_loss | 1 | -1.49 | +| APT | 07-24 19:00 | 07-25 06:00 | stop_loss | 11 | -1.49 | +| FET | 07-24 22:00 | 07-25 06:00 | stop_loss | 8 | -1.49 | +| PEPE | 07-24 14:00 | 07-25 06:00 | stop_loss | 16 | -1.49 | +| SUI | 07-25 03:00 | 07-25 06:00 | stop_loss | 3 | -1.49 | +| TIA | 07-24 22:00 | 07-25 06:00 | trailing_stop | 8 | +0.14 | +| RENDER | 07-24 14:00 | 07-25 08:00 | stop_loss | 18 | -1.49 | +| UNI | 07-25 05:00 | 07-25 09:00 | stop_loss | 4 | -1.49 | +| PEPE | 07-25 07:00 | 07-25 15:00 | take_profit | 8 | +1.49 | +| ETC | 07-24 21:00 | 07-25 16:00 | take_profit | 19 | +1.49 | +| INJ | 07-25 14:00 | 07-25 16:00 | stop_loss | 2 | -1.49 | +| RENDER | 07-25 08:00 | 07-25 17:00 | take_profit | 9 | +1.49 | +| TON | 07-25 15:00 | 07-25 18:00 | take_profit | 3 | +1.49 | +| INJ | 07-25 16:00 | 07-25 22:00 | confirmed_bearish_exit | 6 | +0.79 | +| TIA | 07-25 08:00 | 07-25 22:00 | take_profit | 14 | +1.49 | +| SEI | 07-25 08:00 | 07-25 23:00 | take_profit | 15 | +1.49 | +| KAS | 07-24 17:00 | 07-26 01:00 | take_profit | 32 | +1.49 | +| INJ | 07-25 23:00 | 07-26 05:00 | stop_loss | 6 | -1.49 | +| LTC | 07-24 10:00 | 07-26 09:00 | take_profit | 47 | +1.49 | +| UNI | 07-25 13:00 | 07-26 10:00 | trailing_stop | 21 | -0.39 | +| INJ | 07-26 07:00 | 07-26 15:00 | trailing_stop | 8 | -0.13 | +| INJ | 07-26 18:00 | 07-26 19:00 | stop_loss | 1 | -1.49 | +| SHIB | 07-26 19:00 | 07-26 21:00 | stop_loss | 2 | -1.49 | +| NEAR | 07-26 13:00 | 07-26 22:00 | take_profit | 9 | +1.49 | +| PEPE | 07-26 20:00 | 07-26 22:00 | take_profit | 2 | +1.49 | +| SHIB | 07-26 21:00 | 07-26 22:00 | take_profit | 1 | +1.49 | +| ARB | 07-25 07:00 | 07-27 01:00 | stop_loss | 42 | -1.49 | +| BONK | 07-26 21:00 | 07-27 01:00 | take_profit | 4 | +1.49 | +| FET | 07-26 12:00 | 07-27 01:00 | take_profit | 13 | +1.49 | +| SUI | 07-26 19:00 | 07-27 01:00 | trailing_stop | 6 | -0.09 | +| FIL | 07-26 21:00 | 07-27 02:00 | take_profit | 5 | +1.49 | +| SEI | 07-26 18:00 | 07-27 04:00 | take_profit | 10 | +1.49 | +| AVAX | 07-26 12:00 | 07-27 08:00 | stop_loss | 20 | -1.49 | +| LTC | 07-27 06:00 | 07-27 08:00 | stop_loss | 2 | -1.49 | +| WIF | 07-27 02:00 | 07-27 08:00 | stop_loss | 6 | -1.49 | +| SHIB | 07-27 09:00 | 07-27 11:00 | take_profit | 2 | +1.49 | +| ETC | 07-27 06:00 | 07-27 12:00 | stop_loss | 6 | -1.49 | +| FET | 07-27 12:00 | 07-27 13:00 | stop_loss | 1 | -1.49 | +| ATOM | 07-27 11:00 | 07-27 14:00 | stop_loss | 3 | -1.49 | +| AVAX | 07-27 09:00 | 07-27 14:00 | stop_loss | 5 | -1.49 | +| FET | 07-27 13:00 | 07-27 14:00 | stop_loss | 1 | -1.49 | +| LTC | 07-27 08:00 | 07-27 14:00 | stop_loss | 6 | -1.49 | +| RENDER | 07-26 18:00 | 07-27 14:00 | stop_loss | 20 | -1.49 | +| SUI | 07-27 12:00 | 07-27 14:00 | stop_loss | 2 | -1.49 | +| TON | 07-27 12:00 | 07-27 14:00 | stop_loss | 2 | -1.49 | +| TRX | 07-22 14:00 | 07-27 14:00 | trailing_stop | 120 | -0.32 | +| APT | 07-27 14:00 | 07-27 15:00 | stop_loss | 1 | -1.49 | +| ARB | 07-27 14:00 | 07-27 15:00 | stop_loss | 1 | -1.49 | +| ATOM | 07-27 14:00 | 07-27 15:00 | stop_loss | 1 | -1.49 | +| FET | 07-27 14:00 | 07-27 15:00 | stop_loss | 1 | -1.49 | +| OP | 07-27 14:00 | 07-27 15:00 | stop_loss | 1 | -1.49 | +| RENDER | 07-27 14:00 | 07-27 15:00 | stop_loss | 1 | -1.49 | +| AVAX | 07-27 14:00 | 07-27 16:00 | trailing_stop | 2 | -0.32 | +| NEAR | 07-27 14:00 | 07-27 16:00 | stop_loss | 2 | -1.49 | +| TON | 07-27 14:00 | 07-27 16:00 | trailing_stop | 2 | -0.66 | +| NEAR | 07-27 16:00 | 07-27 18:00 | stop_loss | 2 | -1.49 | +| RENDER | 07-27 15:00 | 07-27 18:00 | stop_loss | 3 | -1.49 | +| UNI | 07-27 14:00 | 07-27 18:00 | stop_loss | 4 | -1.49 | +| FIL | 07-27 14:00 | 07-27 19:00 | stop_loss | 5 | -1.49 | +| TIA | 07-27 14:00 | 07-27 19:00 | confirmed_bearish_exit | 5 | -0.21 | +| FET | 07-27 15:00 | 07-27 20:00 | stop_loss | 5 | -1.49 | +| APT | 07-27 15:00 | 07-27 22:00 | stop_loss | 7 | -1.49 | +| ARB | 07-27 15:00 | 07-27 22:00 | stop_loss | 7 | -1.49 | +| ATOM | 07-27 15:00 | 07-27 22:00 | stop_loss | 7 | -1.49 | +| BONK | 07-27 14:00 | 07-27 22:00 | stop_loss | 8 | -1.49 | +| ETC | 07-27 14:00 | 07-27 22:00 | stop_loss | 8 | -1.49 | +| INJ | 07-27 15:00 | 07-27 22:00 | stop_loss | 7 | -1.49 | +| NEAR | 07-27 18:00 | 07-27 22:00 | stop_loss | 4 | -1.49 | +| OP | 07-27 15:00 | 07-27 22:00 | stop_loss | 7 | -1.49 | +| RENDER | 07-27 18:00 | 07-27 22:00 | stop_loss | 4 | -1.49 | +| SEI | 07-27 15:00 | 07-27 22:00 | stop_loss | 7 | -1.49 | +| SUI | 07-27 14:00 | 07-27 22:00 | stop_loss | 8 | -1.49 | +| UNI | 07-27 21:00 | 07-27 22:00 | stop_loss | 1 | -1.49 | +| WIF | 07-27 14:00 | 07-27 22:00 | stop_loss | 8 | -1.49 | +| AVAX | 07-27 22:00 | 07-27 23:00 | stop_loss | 1 | -1.49 | +| FET | 07-27 22:00 | 07-27 23:00 | take_profit | 1 | +1.49 | +| LTC | 07-27 14:00 | 07-27 23:00 | stop_loss | 9 | -1.49 | +| NEAR | 07-27 22:00 | 07-27 23:00 | stop_loss | 1 | -1.49 | +| OP | 07-27 22:00 | 07-27 23:00 | stop_loss | 1 | -1.49 | +| SEI | 07-27 22:00 | 07-27 23:00 | stop_loss | 1 | -1.49 | +| TRX | 07-27 14:00 | 07-27 23:00 | stop_loss | 9 | -1.49 | +| KAS | 07-27 22:00 | 07-28 00:00 | stop_loss | 2 | -1.49 | +| PEPE | 07-27 22:00 | 07-28 00:00 | stop_loss | 2 | -1.49 | +| RENDER | 07-27 22:00 | 07-28 00:00 | stop_loss | 2 | -1.49 | +| WIF | 07-27 22:00 | 07-28 00:00 | trailing_stop | 2 | -0.16 | +| APT | 07-27 22:00 | 07-28 01:00 | stop_loss | 3 | -1.49 | +| ATOM | 07-27 22:00 | 07-28 01:00 | stop_loss | 3 | -1.49 | +| ETC | 07-27 22:00 | 07-28 01:00 | stop_loss | 3 | -1.49 | +| FIL | 07-27 22:00 | 07-28 01:00 | stop_loss | 3 | -1.49 | +| PEPE | 07-28 00:00 | 07-28 01:00 | stop_loss | 1 | -1.49 | +| SEI | 07-27 23:00 | 07-28 01:00 | stop_loss | 2 | -1.49 | +| SHIB | 07-28 00:00 | 07-28 01:00 | stop_loss | 1 | -1.49 | +| TON | 07-27 22:00 | 07-28 01:00 | stop_loss | 3 | -1.49 | +| SHIB | 07-28 01:00 | 07-28 02:00 | trailing_stop | 1 | -0.19 | +| ETC | 07-28 01:00 | 07-28 03:00 | confirmed_bearish_exit | 2 | +0.27 | +| TIA | 07-27 22:00 | 07-28 03:00 | take_profit | 5 | +1.49 | +| KAS | 07-28 00:00 | 07-28 04:00 | stop_loss | 4 | -1.49 | +| BONK | 07-27 22:00 | 07-28 05:00 | take_profit | 7 | +1.49 | +| INJ | 07-27 22:00 | 07-28 07:00 | stop_loss | 9 | -1.49 | +| UNI | 07-27 22:00 | 07-28 08:00 | trailing_stop | 10 | -0.41 | +| ATOM | 07-28 06:00 | 07-28 09:00 | stop_loss | 3 | -1.49 | +| FET | 07-28 08:00 | 07-28 09:00 | stop_loss | 1 | -1.49 | +| OP | 07-27 23:00 | 07-28 10:00 | take_profit | 11 | +1.49 | +| NEAR | 07-28 09:00 | 07-28 11:00 | stop_loss | 2 | -1.49 | +| SEI | 07-28 06:00 | 07-28 11:00 | stop_loss | 5 | -1.49 | +| ARB | 07-27 22:00 | 07-28 12:00 | take_profit | 14 | +1.49 | +| OP | 07-28 11:00 | 07-28 12:00 | stop_loss | 1 | -1.49 | +| APT | 07-28 01:00 | 07-28 13:00 | stop_loss | 12 | -1.49 | +| ATOM | 07-28 10:00 | 07-28 13:00 | stop_loss | 3 | -1.49 | +| AVAX | 07-27 23:00 | 07-28 13:00 | trailing_stop | 14 | -0.57 | +| FIL | 07-28 07:00 | 07-28 13:00 | trailing_stop | 6 | -0.60 | +| KAS | 07-28 08:00 | 07-28 13:00 | stop_loss | 5 | -1.49 | +| PEPE | 07-28 07:00 | 07-28 13:00 | stop_loss | 6 | -1.49 | +| RENDER | 07-28 00:00 | 07-28 13:00 | trailing_stop | 13 | -0.43 | +| SEI | 07-28 11:00 | 07-28 13:00 | stop_loss | 2 | -1.49 | +| TON | 07-28 11:00 | 07-28 13:00 | stop_loss | 2 | -1.49 | +| INJ | 07-28 17:00 | 07-28 19:00 | take_profit | 2 | +1.49 | +| SUI | 07-27 22:00 | 07-28 19:00 | take_profit | 21 | +1.49 | +| TIA | 07-28 22:00 | 07-29 02:00 | stop_loss | 4 | -1.49 | +| LTC | 07-28 22:00 | 07-29 03:00 | stop_loss | 5 | -1.49 | +| TON | 07-29 03:00 | 07-29 04:00 | stop_loss | 1 | -1.49 | +| UNI | 07-29 03:00 | 07-29 06:00 | take_profit | 3 | +1.49 | +| INJ | 07-29 04:00 | 07-29 07:00 | stop_loss | 3 | -1.49 | +| TON | 07-29 04:00 | 07-29 08:00 | take_profit | 4 | +1.49 | +| FET | 07-29 08:00 | 07-29 10:00 | trailing_stop | 2 | -0.13 | +| TIA | 07-29 03:00 | 07-29 10:00 | trailing_stop | 7 | -0.67 | +| APT | 07-29 04:00 | 07-29 12:00 | stop_loss | 8 | -1.49 | +| FIL | 07-29 03:00 | 07-29 12:00 | trailing_stop | 9 | -0.12 | +| SEI | 07-29 03:00 | 07-29 14:00 | trailing_stop | 11 | -0.59 | +| ARB | 07-29 05:00 | 07-29 17:00 | trailing_stop | 12 | -0.43 | +| FIL | 07-29 16:00 | 07-29 17:00 | trailing_stop | 1 | -0.58 | +| APT | 07-29 14:00 | 07-29 18:00 | take_profit | 4 | +1.49 | +| NEAR | 07-29 10:00 | 07-29 18:00 | take_profit | 8 | +1.49 | +| RENDER | 07-29 03:00 | 07-29 18:00 | trailing_stop | 15 | -0.42 | +| AVAX | 07-29 05:00 | 07-29 19:00 | stop_loss | 14 | -1.49 | +| BONK | 07-29 19:00 | 07-29 20:00 | stop_loss | 1 | -1.49 | +| FIL | 07-29 19:00 | 07-29 20:00 | stop_loss | 1 | -1.49 | +| LTC | 07-29 04:00 | 07-29 20:00 | stop_loss | 16 | -1.49 | +| BONK | 07-29 20:00 | 07-29 21:00 | trailing_stop | 1 | -0.48 | +| FIL | 07-29 20:00 | 07-29 21:00 | trailing_stop | 1 | -0.46 | +| APT | 07-29 20:00 | 07-29 23:00 | take_profit | 3 | +1.49 | +| PEPE | 07-29 20:00 | 07-29 23:00 | take_profit | 3 | +1.49 | +| SHIB | 07-30 01:00 | 07-30 04:00 | trailing_stop | 3 | -0.70 | +| KAS | 07-29 20:00 | 07-30 15:00 | trailing_stop | 19 | -0.18 | +| OP | 07-30 15:00 | 07-30 16:00 | stop_loss | 1 | -1.49 | +| BONK | 07-30 15:00 | 07-30 17:00 | stop_loss | 2 | -1.49 | +| OP | 07-30 16:00 | 07-30 23:00 | trailing_stop | 7 | -0.69 | +| ARB | 07-30 15:00 | 07-31 00:00 | stop_loss | 9 | -1.49 | +| WIF | 07-30 15:00 | 07-31 01:00 | take_profit | 10 | +1.49 | +| ATOM | 07-31 01:00 | 07-31 03:00 | stop_loss | 2 | -1.49 | +| ATOM | 07-31 03:00 | 07-31 04:00 | stop_loss | 1 | -1.49 | +| BONK | 07-31 04:00 | 07-31 07:00 | stop_loss | 3 | -1.49 | +| ARB | 07-31 06:00 | 07-31 09:00 | stop_loss | 3 | -1.49 | +| RENDER | 07-31 05:00 | 07-31 09:00 | stop_loss | 4 | -1.49 | +| SEI | 07-31 06:00 | 07-31 09:00 | stop_loss | 3 | -1.49 | +| TIA | 07-31 07:00 | 07-31 09:00 | stop_loss | 2 | -1.49 | +| BONK | 07-31 07:00 | 07-31 10:00 | stop_loss | 3 | -1.49 | +| FET | 07-31 09:00 | 07-31 10:00 | trailing_stop | 1 | -0.44 | +| SUI | 07-31 05:00 | 07-31 10:00 | stop_loss | 5 | -1.49 | +| TON | 07-31 02:00 | 07-31 10:00 | stop_loss | 8 | -1.49 | +| UNI | 07-31 09:00 | 07-31 10:00 | take_profit | 1 | +1.49 | +| OP | 07-31 09:00 | 07-31 11:00 | stop_loss | 2 | -1.49 | +| APT | 07-31 08:00 | 07-31 13:00 | stop_loss | 5 | -1.49 | +| ARB | 07-31 09:00 | 07-31 14:00 | trailing_stop | 5 | -0.40 | +| BONK | 07-31 10:00 | 07-31 14:00 | stop_loss | 4 | -1.49 | +| ETC | 07-31 02:00 | 07-31 14:00 | stop_loss | 12 | -1.49 | +| KAS | 07-31 13:00 | 07-31 14:00 | stop_loss | 1 | -1.49 | +| OP | 07-31 11:00 | 07-31 14:00 | stop_loss | 3 | -1.49 | +| PEPE | 07-31 14:00 | 07-31 16:00 | trailing_stop | 2 | -0.47 | +| SHIB | 07-31 14:00 | 07-31 16:00 | trailing_stop | 2 | -0.32 | +| KAS | 07-31 14:00 | 07-31 17:00 | confirmed_bearish_exit | 3 | -0.06 | +| BONK | 07-31 17:00 | 07-31 19:00 | stop_loss | 2 | -1.49 | +| INJ | 07-31 12:00 | 07-31 19:00 | stop_loss | 7 | -1.49 | +| LTC | 07-31 09:00 | 07-31 20:00 | stop_loss | 11 | -1.49 | +| BONK | 07-31 19:00 | 08-01 00:00 | take_profit | 5 | +1.49 | +| TIA | 07-31 15:00 | 08-01 06:00 | take_profit | 15 | +1.49 | +| NEAR | 08-01 07:00 | 08-01 09:00 | stop_loss | 2 | -1.49 | +| OP | 08-01 07:00 | 08-01 10:00 | stop_loss | 3 | -1.49 | +| RENDER | 07-31 15:00 | 08-01 10:00 | trailing_stop | 19 | +0.03 | +| UNI | 08-01 07:00 | 08-01 11:00 | stop_loss | 4 | -1.49 | +| KAS | 08-01 01:00 | 08-01 13:00 | stop_loss | 12 | -1.49 | +| LTC | 07-31 22:00 | 08-01 13:00 | trailing_stop | 15 | -0.56 | +| SUI | 07-31 19:00 | 08-01 16:00 | trailing_stop | 21 | -0.22 | +| BONK | 08-01 14:00 | 08-01 17:00 | stop_loss | 3 | -1.49 | +| KAS | 08-01 13:00 | 08-01 17:00 | stop_loss | 4 | -1.49 | +| SEI | 07-31 19:00 | 08-01 17:00 | stop_loss | 22 | -1.49 | +| ATOM | 07-31 04:00 | 08-01 18:00 | stop_loss | 38 | -1.49 | +| AVAX | 08-01 09:00 | 08-01 18:00 | stop_loss | 9 | -1.49 | +| FET | 08-01 17:00 | 08-01 18:00 | stop_loss | 1 | -1.49 | +| FIL | 08-01 17:00 | 08-01 18:00 | stop_loss | 1 | -1.49 | +| KAS | 08-01 17:00 | 08-01 18:00 | stop_loss | 1 | -1.49 | +| OP | 08-01 17:00 | 08-01 18:00 | stop_loss | 1 | -1.49 | +| RENDER | 08-01 15:00 | 08-01 18:00 | stop_loss | 3 | -1.49 | +| SEI | 08-01 17:00 | 08-01 18:00 | stop_loss | 1 | -1.49 | +| SUI | 08-01 17:00 | 08-01 18:00 | stop_loss | 1 | -1.49 | +| UNI | 08-01 15:00 | 08-01 18:00 | stop_loss | 3 | -1.49 | +| WIF | 08-01 17:00 | 08-01 18:00 | stop_loss | 1 | -1.49 | +| ETC | 08-01 18:00 | 08-01 21:00 | confirmed_bearish_exit | 3 | +0.29 | +| OP | 08-01 18:00 | 08-01 21:00 | confirmed_bearish_exit | 3 | +0.71 | +| WIF | 08-01 18:00 | 08-01 23:00 | stop_loss | 5 | -1.49 | +| BONK | 08-01 18:00 | 08-02 00:00 | take_profit | 6 | +1.49 | +| AVAX | 08-01 18:00 | 08-02 01:00 | take_profit | 7 | +1.49 | +| FET | 08-01 18:00 | 08-02 01:00 | take_profit | 7 | +1.49 | +| SUI | 08-01 18:00 | 08-02 01:00 | take_profit | 7 | +1.49 | +| TIA | 08-01 18:00 | 08-02 01:00 | take_profit | 7 | +1.49 | +| APT | 08-01 18:00 | 08-02 02:00 | take_profit | 8 | +1.49 | +| ATOM | 08-01 18:00 | 08-02 02:00 | take_profit | 8 | +1.49 | +| FIL | 08-01 18:00 | 08-02 02:00 | take_profit | 8 | +1.49 | +| LTC | 08-01 18:00 | 08-02 02:00 | take_profit | 8 | +1.49 | +| SEI | 08-01 18:00 | 08-02 02:00 | take_profit | 8 | +1.49 | +| ETC | 08-02 00:00 | 08-02 05:00 | take_profit | 5 | +1.49 | +| WIF | 08-02 02:00 | 08-02 09:00 | take_profit | 7 | +1.49 | +| KAS | 08-01 18:00 | 08-02 11:00 | trailing_stop | 17 | -0.37 | +| TON | 08-01 18:00 | 08-02 18:00 | take_profit | 24 | +1.49 | +| RENDER | 08-01 18:00 | 08-02 20:00 | take_profit | 26 | +1.49 | +| AVAX | 08-03 00:00 | 08-03 02:00 | stop_loss | 2 | -1.49 | +| AVAX | 08-03 02:00 | 08-03 03:00 | stop_loss | 1 | -1.49 | +| PEPE | 08-03 01:00 | 08-03 03:00 | stop_loss | 2 | -1.49 | +| UNI | 08-03 00:00 | 08-03 03:00 | stop_loss | 3 | -1.49 | +| BONK | 08-03 01:00 | 08-03 06:00 | stop_loss | 5 | -1.49 | +| PEPE | 08-03 04:00 | 08-03 07:00 | stop_loss | 3 | -1.49 | +| WIF | 08-03 00:00 | 08-03 07:00 | stop_loss | 7 | -1.49 | +| ETC | 08-03 01:00 | 08-03 08:00 | stop_loss | 7 | -1.49 | +| FET | 08-03 01:00 | 08-03 08:00 | stop_loss | 7 | -1.49 | +| LTC | 08-03 03:00 | 08-03 08:00 | stop_loss | 5 | -1.49 | +| UNI | 08-03 07:00 | 08-03 08:00 | stop_loss | 1 | -1.49 | +| NEAR | 08-02 20:00 | 08-03 12:00 | trailing_stop | 16 | -0.51 | +| APT | 08-03 01:00 | 08-03 13:00 | trailing_stop | 12 | +0.03 | +| AVAX | 08-03 03:00 | 08-03 13:00 | trailing_stop | 10 | +0.11 | +| FET | 08-03 11:00 | 08-03 13:00 | trailing_stop | 2 | -0.43 | +| FIL | 08-03 04:00 | 08-03 13:00 | take_profit | 9 | +1.49 | +| KAS | 08-03 07:00 | 08-03 13:00 | stop_loss | 6 | -1.49 | +| PEPE | 08-03 07:00 | 08-03 13:00 | take_profit | 6 | +1.49 | +| SEI | 08-02 16:00 | 08-03 13:00 | trailing_stop | 21 | -0.45 | +| SHIB | 08-03 00:00 | 08-03 16:00 | take_profit | 16 | +1.49 | +| UNI | 08-03 15:00 | 08-03 16:00 | stop_loss | 1 | -1.49 | +| INJ | 08-03 08:00 | 08-03 19:00 | take_profit | 11 | +1.49 | +| TON | 08-03 08:00 | 08-04 00:00 | stop_loss | 16 | -1.49 | +| TON | 08-04 00:00 | 08-04 01:00 | take_profit | 1 | +1.49 | +| KAS | 08-03 19:00 | 08-04 03:00 | stop_loss | 8 | -1.49 | +| UNI | 08-03 16:00 | 08-04 03:00 | stop_loss | 11 | -1.49 | +| BONK | 08-04 08:00 | 08-04 12:00 | stop_loss | 4 | -1.49 | +| ETC | 08-03 11:00 | 08-04 14:00 | trailing_stop | 27 | -0.50 | +| FIL | 08-04 08:00 | 08-04 14:00 | stop_loss | 6 | -1.49 | +| FET | 08-04 14:00 | 08-04 18:00 | take_profit | 4 | +1.49 | +| WIF | 08-04 16:00 | 08-04 18:00 | take_profit | 2 | +1.49 | +| LTC | 08-03 08:00 | 08-04 20:00 | take_profit | 36 | +1.49 | +| APT | 08-04 13:00 | 08-04 22:00 | take_profit | 9 | +1.49 | +| AVAX | 08-04 16:00 | 08-04 22:00 | stop_loss | 6 | -1.49 | +| TRX | 07-27 23:00 | 08-04 22:00 | trailing_stop | 191 | +0.18 | +| INJ | 08-04 20:00 | 08-04 23:00 | stop_loss | 3 | -1.49 | +| RENDER | 08-04 15:00 | 08-04 23:00 | trailing_stop | 8 | -0.37 | +| ARB | 08-04 15:00 | 08-05 00:00 | stop_loss | 9 | -1.49 | +| OP | 08-04 17:00 | 08-05 03:00 | trailing_stop | 10 | +0.10 | +| PEPE | 08-05 00:00 | 08-05 03:00 | trailing_stop | 3 | -0.59 | +| NEAR | 08-05 03:00 | 08-05 05:00 | trailing_stop | 2 | -0.30 | +| KAS | 08-05 04:00 | 08-05 06:00 | stop_loss | 2 | -1.49 | +| RENDER | 08-05 00:00 | 08-05 07:00 | take_profit | 7 | +1.49 | +| ARB | 08-05 10:00 | 08-05 13:00 | stop_loss | 3 | -1.49 | +| AVAX | 08-05 03:00 | 08-05 13:00 | stop_loss | 10 | -1.49 | +| INJ | 08-05 00:00 | 08-05 14:00 | take_profit | 14 | +1.49 | +| ETC | 08-05 00:00 | 08-05 15:00 | stop_loss | 15 | -1.49 | +| OP | 08-05 13:00 | 08-05 16:00 | take_profit | 3 | +1.49 | +| TON | 08-05 08:00 | 08-05 17:00 | confirmed_bearish_exit | 9 | +1.21 | +| FET | 08-05 19:00 | 08-05 21:00 | stop_loss | 2 | -1.49 | +| TIA | 08-05 15:00 | 08-05 22:00 | trailing_stop | 7 | -0.52 | +| FET | 08-05 21:00 | 08-06 01:00 | stop_loss | 4 | -1.49 | +| SHIB | 08-05 07:00 | 08-06 01:00 | stop_loss | 18 | -1.49 | +| INJ | 08-06 01:00 | 08-06 03:00 | stop_loss | 2 | -1.49 | +| SUI | 08-05 03:00 | 08-06 03:00 | stop_loss | 24 | -1.49 | +| ARB | 08-06 01:00 | 08-06 09:00 | stop_loss | 8 | -1.49 | +| FIL | 08-06 07:00 | 08-06 09:00 | stop_loss | 2 | -1.49 | +| INJ | 08-06 03:00 | 08-06 09:00 | stop_loss | 6 | -1.49 | +| KAS | 08-05 15:00 | 08-06 09:00 | trailing_stop | 18 | -0.64 | +| OP | 08-06 07:00 | 08-06 09:00 | stop_loss | 2 | -1.49 | +| PEPE | 08-06 03:00 | 08-06 09:00 | stop_loss | 6 | -1.49 | +| SHIB | 08-06 01:00 | 08-06 09:00 | stop_loss | 8 | -1.49 | +| ARB | 08-06 09:00 | 08-06 10:00 | stop_loss | 1 | -1.49 | +| AVAX | 08-06 09:00 | 08-06 10:00 | stop_loss | 1 | -1.49 | +| ETC | 08-06 09:00 | 08-06 10:00 | stop_loss | 1 | -1.49 | +| FIL | 08-06 09:00 | 08-06 10:00 | stop_loss | 1 | -1.49 | +| SUI | 08-06 09:00 | 08-06 10:00 | stop_loss | 1 | -1.49 | +| BONK | 08-06 09:00 | 08-06 13:00 | stop_loss | 4 | -1.49 | +| KAS | 08-06 12:00 | 08-06 13:00 | stop_loss | 1 | -1.49 | +| OP | 08-06 10:00 | 08-06 13:00 | stop_loss | 3 | -1.49 | +| SHIB | 08-06 09:00 | 08-06 13:00 | stop_loss | 4 | -1.49 | +| ARB | 08-06 10:00 | 08-06 15:00 | take_profit | 5 | +1.49 | +| FIL | 08-06 10:00 | 08-06 15:00 | take_profit | 5 | +1.49 | +| FET | 08-06 15:00 | 08-06 16:00 | take_profit | 1 | +1.49 | +| WIF | 08-06 09:00 | 08-06 16:00 | trailing_stop | 7 | +0.15 | +| ETC | 08-06 10:00 | 08-06 18:00 | take_profit | 8 | +1.49 | +| RENDER | 08-05 21:00 | 08-06 18:00 | trailing_stop | 21 | +0.01 | +| TIA | 08-06 10:00 | 08-06 18:00 | trailing_stop | 8 | +0.15 | +| AVAX | 08-06 10:00 | 08-06 23:00 | trailing_stop | 13 | -0.28 | +| INJ | 08-06 22:00 | 08-07 00:00 | stop_loss | 2 | -1.49 | +| SHIB | 08-06 21:00 | 08-07 01:00 | stop_loss | 4 | -1.49 | +| TON | 08-06 09:00 | 08-07 01:00 | stop_loss | 16 | -1.49 | +| KAS | 08-06 13:00 | 08-07 03:00 | trailing_stop | 14 | -0.18 | +| TON | 08-07 01:00 | 08-07 03:00 | stop_loss | 2 | -1.49 | +| INJ | 08-07 00:00 | 08-07 04:00 | stop_loss | 4 | -1.49 | +| PEPE | 08-06 09:00 | 08-07 04:00 | trailing_stop | 19 | -0.46 | +| TON | 08-07 03:00 | 08-07 06:00 | take_profit | 3 | +1.49 | +| BONK | 08-07 07:00 | 08-07 08:00 | stop_loss | 1 | -1.49 | +| FET | 08-07 07:00 | 08-07 08:00 | trailing_stop | 1 | -0.57 | +| LTC | 08-06 07:00 | 08-07 09:00 | take_profit | 26 | +1.49 | +| BONK | 08-07 08:00 | 08-07 10:00 | stop_loss | 2 | -1.49 | +| TRX | 08-05 06:00 | 08-07 11:00 | take_profit | 53 | +1.49 | +| BONK | 08-07 10:00 | 08-07 13:00 | stop_loss | 3 | -1.49 | +| ATOM | 08-07 05:00 | 08-07 14:00 | stop_loss | 9 | -1.49 | +| SUI | 08-06 10:00 | 08-07 14:00 | stop_loss | 28 | -1.49 | +| TIA | 08-07 11:00 | 08-07 14:00 | stop_loss | 3 | -1.49 | +| ATOM | 08-07 14:00 | 08-07 15:00 | take_profit | 1 | +1.49 | +| SHIB | 08-07 04:00 | 08-07 15:00 | trailing_stop | 11 | -0.34 | +| NEAR | 08-07 14:00 | 08-07 16:00 | stop_loss | 2 | -1.49 | +| UNI | 08-07 14:00 | 08-07 16:00 | take_profit | 2 | +1.49 | +| FIL | 08-07 14:00 | 08-07 17:00 | stop_loss | 3 | -1.49 | +| TON | 08-07 10:00 | 08-07 17:00 | stop_loss | 7 | -1.49 | +| NEAR | 08-07 16:00 | 08-07 20:00 | stop_loss | 4 | -1.49 | +| APT | 08-07 14:00 | 08-08 00:00 | stop_loss | 10 | -1.49 | +| OP | 08-07 19:00 | 08-08 00:00 | confirmed_bearish_exit | 5 | -0.84 | +| BONK | 08-07 20:00 | 08-08 02:00 | trailing_stop | 6 | -0.43 | +| APT | 08-08 00:00 | 08-08 03:00 | take_profit | 3 | +1.49 | +| FIL | 08-07 18:00 | 08-08 03:00 | take_profit | 9 | +1.49 | +| WIF | 08-07 14:00 | 08-08 03:00 | confirmed_bearish_exit | 13 | +1.24 | +| NEAR | 08-08 01:00 | 08-08 07:00 | stop_loss | 6 | -1.49 | +| OP | 08-08 01:00 | 08-08 10:00 | take_profit | 9 | +1.49 | +| INJ | 08-08 10:00 | 08-08 11:00 | stop_loss | 1 | -1.49 | +| INJ | 08-08 13:00 | 08-08 17:00 | trailing_stop | 4 | +0.03 | +| BONK | 08-08 22:00 | 08-09 01:00 | trailing_stop | 3 | -0.54 | +| RENDER | 08-07 14:00 | 08-09 04:00 | take_profit | 38 | +1.49 | +| APT | 08-09 04:00 | 08-09 05:00 | stop_loss | 1 | -1.49 | +| ARB | 08-09 00:00 | 08-09 08:00 | stop_loss | 8 | -1.49 | +| FET | 08-08 19:00 | 08-09 08:00 | stop_loss | 13 | -1.49 | +| TON | 08-09 01:00 | 08-09 08:00 | stop_loss | 7 | -1.49 | +| LTC | 08-08 05:00 | 08-09 14:00 | take_profit | 33 | +1.49 | +| INJ | 08-08 17:00 | 08-09 18:00 | trailing_stop | 25 | -0.33 | +| AVAX | 08-08 22:00 | 08-09 22:00 | trailing_stop | 24 | -0.28 | +| SUI | 08-09 04:00 | 08-09 22:00 | trailing_stop | 18 | -0.17 | +| TIA | 08-08 22:00 | 08-09 22:00 | stop_loss | 24 | -1.49 | +| APT | 08-09 05:00 | 08-09 23:00 | stop_loss | 18 | -1.49 | +| ATOM | 08-09 00:00 | 08-09 23:00 | stop_loss | 23 | -1.49 | +| INJ | 08-09 22:00 | 08-09 23:00 | stop_loss | 1 | -1.49 | +| TIA | 08-09 22:00 | 08-09 23:00 | stop_loss | 1 | -1.49 | +| TON | 08-09 08:00 | 08-09 23:00 | stop_loss | 15 | -1.49 | +| BONK | 08-09 23:00 | 08-10 00:00 | stop_loss | 1 | -1.49 | +| NEAR | 08-09 23:00 | 08-10 00:00 | trailing_stop | 1 | -0.67 | +| RENDER | 08-09 23:00 | 08-10 03:00 | stop_loss | 4 | -1.49 | +| LTC | 08-09 22:00 | 08-10 04:00 | stop_loss | 6 | -1.49 | +| TIA | 08-09 23:00 | 08-10 04:00 | trailing_stop | 5 | -0.53 | +| INJ | 08-09 23:00 | 08-10 05:00 | take_profit | 6 | +1.49 | +| FET | 08-09 23:00 | 08-10 07:00 | take_profit | 8 | +1.49 | +| RENDER | 08-10 03:00 | 08-10 07:00 | take_profit | 4 | +1.49 | +| TON | 08-09 23:00 | 08-10 07:00 | take_profit | 8 | +1.49 | +| APT | 08-09 23:00 | 08-10 09:00 | trailing_stop | 10 | +0.04 | +| FIL | 08-09 22:00 | 08-10 11:00 | stop_loss | 13 | -1.49 | +| LTC | 08-10 07:00 | 08-10 15:00 | stop_loss | 8 | -1.49 | +| RENDER | 08-10 09:00 | 08-10 15:00 | stop_loss | 6 | -1.49 | +| SUI | 08-09 23:00 | 08-10 15:00 | trailing_stop | 16 | -0.32 | +| WIF | 08-10 09:00 | 08-10 15:00 | stop_loss | 6 | -1.49 | +| ETC | 08-09 23:00 | 08-10 16:00 | trailing_stop | 17 | -0.05 | +| KAS | 08-09 23:00 | 08-10 18:00 | trailing_stop | 19 | -0.56 | +| BONK | 08-10 20:00 | 08-10 21:00 | stop_loss | 1 | -1.49 | +| ETC | 08-10 16:00 | 08-10 21:00 | stop_loss | 5 | -1.49 | +| SEI | 08-09 23:00 | 08-10 21:00 | trailing_stop | 22 | -0.41 | +| SHIB | 08-10 15:00 | 08-10 21:00 | stop_loss | 6 | -1.49 | +| TIA | 08-10 20:00 | 08-10 21:00 | stop_loss | 1 | -1.49 | +| NEAR | 08-10 19:00 | 08-10 22:00 | stop_loss | 3 | -1.49 | +| SEI | 08-10 21:00 | 08-10 23:00 | stop_loss | 2 | -1.49 | +| RENDER | 08-10 22:00 | 08-11 00:00 | stop_loss | 2 | -1.49 | +| SHIB | 08-10 21:00 | 08-11 01:00 | stop_loss | 4 | -1.49 | +| FIL | 08-10 16:00 | 08-11 02:00 | take_profit | 10 | +1.49 | +| AVAX | 08-10 21:00 | 08-11 03:00 | take_profit | 6 | +1.49 | +| TIA | 08-10 21:00 | 08-11 04:00 | stop_loss | 7 | -1.49 | +| UNI | 08-10 15:00 | 08-11 04:00 | take_profit | 13 | +1.49 | +| BONK | 08-10 21:00 | 08-11 05:00 | stop_loss | 8 | -1.49 | +| INJ | 08-11 00:00 | 08-11 05:00 | take_profit | 5 | +1.49 | +| BONK | 08-11 05:00 | 08-11 06:00 | stop_loss | 1 | -1.49 | +| TIA | 08-11 04:00 | 08-11 06:00 | stop_loss | 2 | -1.49 | +| BONK | 08-11 06:00 | 08-11 07:00 | stop_loss | 1 | -1.49 | +| WIF | 08-10 23:00 | 08-11 07:00 | trailing_stop | 8 | -0.58 | +| ATOM | 08-11 05:00 | 08-11 10:00 | take_profit | 5 | +1.49 | +| NEAR | 08-11 01:00 | 08-11 10:00 | stop_loss | 9 | -1.49 | +| RENDER | 08-11 00:00 | 08-11 10:00 | stop_loss | 10 | -1.49 | +| TON | 08-10 21:00 | 08-11 11:00 | take_profit | 14 | +1.49 | +| BONK | 08-11 07:00 | 08-11 14:00 | stop_loss | 7 | -1.49 | +| ETC | 08-11 02:00 | 08-11 14:00 | stop_loss | 12 | -1.49 | +| SEI | 08-10 23:00 | 08-11 14:00 | stop_loss | 15 | -1.49 | +| SHIB | 08-11 07:00 | 08-11 14:00 | stop_loss | 7 | -1.49 | +| SUI | 08-10 21:00 | 08-11 14:00 | stop_loss | 17 | -1.49 | +| UNI | 08-11 12:00 | 08-11 14:00 | stop_loss | 2 | -1.49 | +| APT | 08-11 10:00 | 08-11 15:00 | stop_loss | 5 | -1.49 | +| AVAX | 08-11 14:00 | 08-11 15:00 | stop_loss | 1 | -1.49 | +| FIL | 08-11 14:00 | 08-11 15:00 | stop_loss | 1 | -1.49 | +| OP | 08-11 14:00 | 08-11 15:00 | stop_loss | 1 | -1.49 | +| TIA | 08-11 14:00 | 08-11 15:00 | stop_loss | 1 | -1.49 | +| UNI | 08-11 14:00 | 08-11 15:00 | stop_loss | 1 | -1.49 | +| WIF | 08-11 14:00 | 08-11 15:00 | stop_loss | 1 | -1.49 | +| FIL | 08-11 15:00 | 08-11 19:00 | take_profit | 4 | +1.49 | +| KAS | 08-11 14:00 | 08-11 19:00 | confirmed_bearish_exit | 5 | -0.27 | +| NEAR | 08-11 14:00 | 08-11 19:00 | take_profit | 5 | +1.49 | +| OP | 08-11 15:00 | 08-11 19:00 | take_profit | 4 | +1.49 | +| TIA | 08-11 15:00 | 08-11 19:00 | confirmed_bearish_exit | 4 | +0.76 | +| WIF | 08-11 15:00 | 08-11 20:00 | take_profit | 5 | +1.49 | +| SUI | 08-11 14:00 | 08-11 21:00 | take_profit | 7 | +1.49 | +| APT | 08-11 15:00 | 08-11 22:00 | take_profit | 7 | +1.49 | +| PEPE | 08-11 14:00 | 08-11 22:00 | take_profit | 8 | +1.49 | +| ARB | 08-11 14:00 | 08-11 23:00 | take_profit | 9 | +1.49 | +| FET | 08-11 16:00 | 08-12 01:00 | take_profit | 9 | +1.49 | +| UNI | 08-11 15:00 | 08-12 01:00 | take_profit | 10 | +1.49 | +| TIA | 08-11 21:00 | 08-12 04:00 | stop_loss | 7 | -1.49 | +| AVAX | 08-11 15:00 | 08-12 05:00 | confirmed_bearish_exit | 14 | +0.78 | +| BONK | 08-11 14:00 | 08-12 05:00 | take_profit | 15 | +1.49 | +| UNI | 08-12 01:00 | 08-12 06:00 | stop_loss | 5 | -1.49 | +| ETC | 08-11 15:00 | 08-12 07:00 | trailing_stop | 16 | -0.23 | +| UNI | 08-12 07:00 | 08-12 08:00 | stop_loss | 1 | -1.49 | +| APT | 08-12 08:00 | 08-12 14:00 | trailing_stop | 6 | -0.69 | +| BONK | 08-12 13:00 | 08-12 14:00 | stop_loss | 1 | -1.49 | +| UNI | 08-12 08:00 | 08-12 14:00 | stop_loss | 6 | -1.49 | +| ATOM | 08-12 09:00 | 08-12 15:00 | stop_loss | 6 | -1.49 | +| KAS | 08-11 22:00 | 08-12 15:00 | stop_loss | 17 | -1.49 | +| FIL | 08-12 10:00 | 08-12 17:00 | stop_loss | 7 | -1.49 | +| ARB | 08-12 13:00 | 08-12 19:00 | stop_loss | 6 | -1.49 | +| BONK | 08-12 14:00 | 08-12 19:00 | take_profit | 5 | +1.49 | +| INJ | 08-12 13:00 | 08-12 19:00 | take_profit | 6 | +1.49 | +| KAS | 08-12 15:00 | 08-12 19:00 | stop_loss | 4 | -1.49 | +| ARB | 08-12 19:00 | 08-12 20:00 | stop_loss | 1 | -1.49 | +| ARB | 08-12 20:00 | 08-12 21:00 | stop_loss | 1 | -1.49 | +| FIL | 08-12 19:00 | 08-12 21:00 | stop_loss | 2 | -1.49 | +| OP | 08-12 14:00 | 08-12 21:00 | stop_loss | 7 | -1.49 | +| PEPE | 08-12 14:00 | 08-12 21:00 | stop_loss | 7 | -1.49 | +| SEI | 08-11 15:00 | 08-12 21:00 | stop_loss | 30 | -1.49 | +| WIF | 08-12 14:00 | 08-12 21:00 | stop_loss | 7 | -1.49 | +| ETC | 08-12 21:00 | 08-12 22:00 | stop_loss | 1 | -1.49 | +| OP | 08-12 21:00 | 08-12 22:00 | stop_loss | 1 | -1.49 | +| PEPE | 08-12 21:00 | 08-12 22:00 | stop_loss | 1 | -1.49 | +| SUI | 08-12 14:00 | 08-12 22:00 | stop_loss | 8 | -1.49 | +| WIF | 08-12 21:00 | 08-12 22:00 | stop_loss | 1 | -1.49 | +| ARB | 08-12 21:00 | 08-12 23:00 | stop_loss | 2 | -1.49 | +| PEPE | 08-12 22:00 | 08-12 23:00 | stop_loss | 1 | -1.49 | +| OP | 08-12 22:00 | 08-13 00:00 | stop_loss | 2 | -1.49 | +| PEPE | 08-12 23:00 | 08-13 02:00 | trailing_stop | 3 | -0.41 | +| SEI | 08-12 21:00 | 08-13 02:00 | take_profit | 5 | +1.49 | +| APT | 08-12 21:00 | 08-13 03:00 | take_profit | 6 | +1.49 | +| ARB | 08-12 23:00 | 08-13 03:00 | take_profit | 4 | +1.49 | +| OP | 08-13 00:00 | 08-13 03:00 | trailing_stop | 3 | +0.16 | +| TON | 08-12 18:00 | 08-13 03:00 | trailing_stop | 9 | -0.52 | +| SHIB | 08-12 21:00 | 08-13 04:00 | take_profit | 7 | +1.49 | +| KAS | 08-12 19:00 | 08-13 06:00 | trailing_stop | 11 | -0.57 | +| UNI | 08-12 18:00 | 08-13 07:00 | take_profit | 13 | +1.49 | +| ARB | 08-13 04:00 | 08-13 08:00 | stop_loss | 4 | -1.49 | +| FIL | 08-12 21:00 | 08-13 09:00 | trailing_stop | 12 | -0.05 | +| PEPE | 08-13 05:00 | 08-13 09:00 | stop_loss | 4 | -1.49 | +| ATOM | 08-12 17:00 | 08-13 11:00 | take_profit | 18 | +1.49 | +| OP | 08-13 07:00 | 08-13 13:00 | stop_loss | 6 | -1.49 | +| NEAR | 08-13 18:00 | 08-14 00:00 | stop_loss | 6 | -1.49 | +| PEPE | 08-13 16:00 | 08-14 01:00 | take_profit | 9 | +1.49 | +| ARB | 08-13 08:00 | 08-14 03:00 | trailing_stop | 19 | -0.51 | +| UNI | 08-13 13:00 | 08-14 03:00 | stop_loss | 14 | -1.49 | +| APT | 08-14 01:00 | 08-14 04:00 | stop_loss | 3 | -1.49 | +| ETC | 08-14 03:00 | 08-14 04:00 | stop_loss | 1 | -1.49 | +| NEAR | 08-14 00:00 | 08-14 04:00 | stop_loss | 4 | -1.49 | +| SEI | 08-13 18:00 | 08-14 06:00 | stop_loss | 12 | -1.49 | +| APT | 08-14 05:00 | 08-14 07:00 | stop_loss | 2 | -1.49 | +| SHIB | 08-13 20:00 | 08-14 07:00 | trailing_stop | 11 | -0.50 | +| LTC | 08-12 14:00 | 08-14 08:00 | stop_loss | 42 | -1.49 | +| KAS | 08-14 06:00 | 08-14 09:00 | stop_loss | 3 | -1.49 | +| WIF | 08-13 20:00 | 08-14 09:00 | stop_loss | 13 | -1.49 | +| INJ | 08-14 07:00 | 08-14 11:00 | stop_loss | 4 | -1.49 | +| TIA | 08-14 07:00 | 08-14 11:00 | stop_loss | 4 | -1.49 | +| APT | 08-14 07:00 | 08-14 12:00 | stop_loss | 5 | -1.49 | +| AVAX | 08-13 20:00 | 08-14 12:00 | stop_loss | 16 | -1.49 | +| UNI | 08-14 11:00 | 08-14 12:00 | trailing_stop | 1 | -0.35 | +| INJ | 08-14 11:00 | 08-14 14:00 | stop_loss | 3 | -1.49 | +| SEI | 08-14 07:00 | 08-14 14:00 | stop_loss | 7 | -1.49 | +| INJ | 08-14 14:00 | 08-14 15:00 | stop_loss | 1 | -1.49 | +| LTC | 08-14 12:00 | 08-14 15:00 | stop_loss | 3 | -1.49 | +| SUI | 08-14 07:00 | 08-14 15:00 | stop_loss | 8 | -1.49 | +| UNI | 08-14 12:00 | 08-14 15:00 | stop_loss | 3 | -1.49 | +| INJ | 08-14 15:00 | 08-14 16:00 | take_profit | 1 | +1.49 | +| WIF | 08-14 09:00 | 08-14 16:00 | take_profit | 7 | +1.49 | +| ATOM | 08-14 18:00 | 08-14 19:00 | stop_loss | 1 | -1.49 | +| LTC | 08-14 15:00 | 08-14 19:00 | stop_loss | 4 | -1.49 | +| ARB | 08-14 09:00 | 08-14 21:00 | stop_loss | 12 | -1.49 | +| OP | 08-14 17:00 | 08-14 22:00 | stop_loss | 5 | -1.49 | +| ARB | 08-14 22:00 | 08-14 23:00 | trailing_stop | 1 | -0.22 | +| TIA | 08-14 11:00 | 08-14 23:00 | trailing_stop | 12 | +0.09 | +| RENDER | 08-14 09:00 | 08-15 00:00 | take_profit | 15 | +1.49 | +| AVAX | 08-14 14:00 | 08-15 02:00 | take_profit | 12 | +1.49 | +| UNI | 08-15 00:00 | 08-15 04:00 | take_profit | 4 | +1.49 | +| ATOM | 08-14 19:00 | 08-15 05:00 | trailing_stop | 10 | -0.23 | +| INJ | 08-15 01:00 | 08-15 06:00 | stop_loss | 5 | -1.49 | +| FET | 08-14 21:00 | 08-15 07:00 | trailing_stop | 10 | -0.66 | +| TRX | 08-12 00:00 | 08-15 11:00 | stop_loss | 83 | -1.49 | +| TON | 08-13 10:00 | 08-15 15:00 | period_end | 53 | -0.01 | +| SEI | 08-14 18:00 | 08-15 15:00 | period_end | 21 | -0.28 | +| LTC | 08-15 01:00 | 08-15 15:00 | period_end | 14 | +0.09 | +| TRX | 08-15 11:00 | 08-15 15:00 | period_end | 4 | -0.44 | +| ATOM | 08-15 12:00 | 08-15 15:00 | period_end | 3 | -0.40 | +| SHIB | 08-15 13:00 | 08-15 15:00 | period_end | 2 | -0.17 | +| FET | 08-15 14:00 | 08-15 15:00 | period_end | 1 | -0.50 | + +## Допущения + +- Цены: реальные 1h-серии бирж (price-source=allowlist; kucoin: 32, bitstamp: 1). +- ML-модель обучена на данных, включающих тестовый месяц (in-sample только для ML-части; индикаторная часть честная). +- Funding/orderbook нейтральны (0 / BALANCED). +- TP/SL исполняются по уровням при пересечении high/low бара; SL приоритетнее TP. +- Свободный профиль: без лимита позиций / DD-kill / daily-kill; каждый вход — фиксированные $200, лимит кэша не применяется (синтетический учёт). diff --git a/docs/TRADING_BACKTEST_1Y_ALLOWLIST_NO_ML_2026-08-15_RU.md b/docs/TRADING_BACKTEST_1Y_ALLOWLIST_NO_ML_2026-08-15_RU.md new file mode 100644 index 000000000..3c4fc9122 --- /dev/null +++ b/docs/TRADING_BACKTEST_1Y_ALLOWLIST_NO_ML_2026-08-15_RU.md @@ -0,0 +1,79 @@ +# Тестовый замер: 12 мес. торговли по алгоритму БЕЗ ML gate (контроль) (Directional v2) + +**Период:** 2025-08-15 15:00 UTC → 2026-08-15 15:00 UTC (12 календарн. мес., 8761 баров 1h) +**Стартовый капитал:** $1,000.00 + +## Результат алгоритма + +- **Итоговый капитал: $997.01** +- **PnL портфеля: -0.30%** +- Сделок: 1 (win 0, 0.0%) +- Средняя сделка: -1.494% | Комиссии и проскальзывание: $0.90 + +## Реальная динамика валют (Buy&Hold за тот же месяц) + +- **Средняя по 33 валютам: -66.28%** (медиана -70.73%) +- Лучшая: **TRX -5.61%** +- Худшая: **BONK -89.81%** + +| Валюта | Buy&Hold % | +|---|---:| +| TRX | -5.61 | +| TON | -9.24 | +| BNB | -25.39 | +| NEAR | -38.33 | +| BTC | -46.25 | +| LINK | -56.03 | +| ETH | -57.48 | +| SOL | -59.32 | +| LTC | -62.49 | +| SHIB | -63.67 | +| ATOM | -66.32 | +| RENDER | -66.45 | +| XRP | -66.90 | +| POL | -67.32 | +| DOGE | -68.50 | +| UNI | -69.20 | +| INJ | -70.73 | +| ETC | -71.16 | +| KAS | -71.32 | +| FIL | -71.54 | +| AVAX | -72.34 | +| PEPE | -75.22 | +| DOT | -79.80 | +| ADA | -80.67 | +| FET | -80.78 | +| SUI | -81.31 | +| TIA | -82.15 | +| WIF | -83.96 | +| ARB | -84.52 | +| SEI | -87.33 | +| OP | -88.04 | +| APT | -88.13 | +| BONK | -89.81 | + +## Сравнение + +- Алгоритм -0.30% vs средняя валюта -66.28% → **+65.98 п.п.** +- Алгоритм -0.30% vs лучшая валюта (TRX -5.61%) +- Алгоритм -0.30% vs худшая валюта (BONK -89.81%) + +## Блокировки входов (как в продакшене) + +- global_drawdown_kill: 16854 +- rl_veto: 7843 +- OK: 1 + +## Сделки + +| Актив | Вход | Выход | Причина | Баров | PnL % | +|---|---|---|---|---:|---:| +| APT | 08-15 17:00 | 08-15 20:00 | stop_loss | 3 | -1.49 | + +## Допущения + +- Цены: реальные 1h-серии бирж (price-source=allowlist; kucoin: 32, bitstamp: 1). +- ML-модель обучена на данных, включающих тестовый месяц (in-sample только для ML-части; индикаторная часть честная). +- Funding/orderbook нейтральны (0 / BALANCED). +- TP/SL исполняются по уровням при пересечении high/low бара; SL приоритетнее TP. +- Все активы обрабатываются синхронно по барам; портфель единый ($1000), максимум 1 позиция (owner-профиль). diff --git a/docs/TRADING_BACKTEST_1Y_FREE_ML_2026-08-15_RU.md b/docs/TRADING_BACKTEST_1Y_FREE_ML_2026-08-15_RU.md new file mode 100644 index 000000000..360d220b7 --- /dev/null +++ b/docs/TRADING_BACKTEST_1Y_FREE_ML_2026-08-15_RU.md @@ -0,0 +1,479 @@ +# Тестовый замер: 12 мес. торговли по сигналам без портфельных kill-switch (свободный профиль, с ML gate) (Directional v2) + +**Период:** 2025-08-15 13:00 UTC → 2026-08-15 13:00 UTC (12 календарн. мес., 8761 баров 1h) +**Стартовый капитал:** $1,000.00 + +## Результат алгоритма + +- **Итоговый капитал: $804.13** +- **PnL портфеля: -19.59%** +- Сделок: 370 (win 140, 37.8%) +- Средняя сделка: -0.265% | Комиссии и проскальзывание: $332.87 + +## Реальная динамика валют (Buy&Hold за тот же месяц) + +- **Средняя по 33 валютам: -68.36%** (медиана -71.73%) +- Лучшая: **TRX -6.47%** +- Худшая: **BONK -90.28%** + +| Валюта | Buy&Hold % | +|---|---:| +| TRX | -6.47 | +| BNB | -26.69 | +| NEAR | -40.33 | +| BTC | -46.48 | +| TON | -53.97 | +| LINK | -57.42 | +| ETH | -58.52 | +| SOL | -60.37 | +| LTC | -63.01 | +| SHIB | -64.57 | +| ATOM | -66.89 | +| RENDER | -67.12 | +| XRP | -67.51 | +| POL | -68.14 | +| DOGE | -69.17 | +| UNI | -70.00 | +| ETC | -71.73 | +| INJ | -71.74 | +| FIL | -72.09 | +| KAS | -72.50 | +| AVAX | -72.81 | +| PEPE | -76.00 | +| DOT | -80.34 | +| ADA | -80.95 | +| FET | -81.18 | +| SUI | -81.92 | +| TIA | -82.80 | +| WIF | -84.87 | +| ARB | -85.32 | +| SEI | -87.89 | +| OP | -88.43 | +| APT | -88.53 | +| BONK | -90.28 | + +## Сравнение + +- Алгоритм -19.59% vs средняя валюта -68.36% → **+48.78 п.п.** +- Алгоритм -19.59% vs лучшая валюта (TRX -6.47%) +- Алгоритм -19.59% vs худшая валюта (BONK -90.28%) + +## Качество сигналов (per-asset) + +- Profit factor: 0.68 (gross +$414.52 / -$610.38) +- Максимум одновременных позиций: 22 + +| Актив | Сделок | PnL $ | +|---|---:|---:| +| RENDER | 16 | +11.89 | +| AVAX | 12 | +10.13 | +| NEAR | 15 | +1.77 | +| BONK | 24 | +0.61 | +| KAS | 12 | +0.37 | +| SUI | 18 | -2.42 | +| SHIB | 9 | -2.77 | +| TRX | 1 | -2.99 | +| WIF | 22 | -4.18 | +| FET | 14 | -4.29 | +| ETC | 9 | -5.42 | +| ATOM | 11 | -6.68 | +| ARB | 19 | -10.83 | +| LTC | 10 | -11.97 | +| PEPE | 18 | -15.69 | +| UNI | 25 | -15.94 | +| FIL | 26 | -15.96 | +| APT | 19 | -16.04 | +| TON | 12 | -16.14 | +| INJ | 19 | -18.53 | +| OP | 21 | -18.82 | +| SEI | 16 | -25.80 | +| TIA | 22 | -26.18 | + +## Блокировки входов (свободный профиль) + +- ml_not_confirmed: 24879 +- OK: 370 +- rl_veto: 80 + +## Сделки + +| Актив | Вход | Выход | Причина | Баров | PnL % | +|---|---|---|---|---:|---:| +| ARB | 08-15 15:00 | 08-15 16:00 | stop_loss | 1 | -1.49 | +| SEI | 08-15 15:00 | 08-15 16:00 | stop_loss | 1 | -1.49 | +| KAS | 08-25 20:00 | 08-25 22:00 | take_profit | 2 | +1.49 | +| PEPE | 08-25 20:00 | 08-25 22:00 | trailing_stop | 2 | -0.36 | +| TIA | 08-25 20:00 | 08-25 22:00 | trailing_stop | 2 | -0.71 | +| WIF | 08-25 20:00 | 08-25 22:00 | take_profit | 2 | +1.49 | +| BONK | 08-25 20:00 | 08-26 00:00 | take_profit | 4 | +1.49 | +| KAS | 09-06 08:00 | 09-06 09:00 | take_profit | 1 | +1.49 | +| TRX | 09-06 21:00 | 09-06 22:00 | stop_loss | 1 | -1.49 | +| ARB | 09-15 08:00 | 09-15 09:00 | trailing_stop | 1 | -0.66 | +| BONK | 09-15 08:00 | 09-15 09:00 | trailing_stop | 1 | -0.14 | +| KAS | 09-15 08:00 | 09-15 09:00 | trailing_stop | 1 | -0.60 | +| TIA | 09-15 08:00 | 09-15 09:00 | trailing_stop | 1 | -0.41 | +| WIF | 09-15 08:00 | 09-15 09:00 | trailing_stop | 1 | -0.57 | +| OP | 09-15 08:00 | 09-15 12:00 | trailing_stop | 4 | -0.68 | +| PEPE | 09-15 08:00 | 09-15 14:00 | stop_loss | 6 | -1.49 | +| SUI | 09-15 08:00 | 09-15 15:00 | stop_loss | 7 | -1.49 | +| SHIB | 09-15 08:00 | 09-16 13:00 | stop_loss | 29 | -1.49 | +| BONK | 09-22 00:00 | 09-22 02:00 | stop_loss | 2 | -1.49 | +| BONK | 09-22 06:00 | 09-22 07:00 | stop_loss | 1 | -1.49 | +| NEAR | 09-22 06:00 | 09-22 07:00 | stop_loss | 1 | -1.49 | +| OP | 09-22 06:00 | 09-22 07:00 | stop_loss | 1 | -1.49 | +| SEI | 09-22 06:00 | 09-22 07:00 | stop_loss | 1 | -1.49 | +| TON | 09-22 06:00 | 09-22 07:00 | stop_loss | 1 | -1.49 | +| UNI | 09-22 06:00 | 09-22 07:00 | stop_loss | 1 | -1.49 | +| WIF | 09-22 06:00 | 09-22 07:00 | stop_loss | 1 | -1.49 | +| FET | 09-22 06:00 | 09-22 08:00 | stop_loss | 2 | -1.49 | +| FIL | 09-22 06:00 | 09-22 08:00 | stop_loss | 2 | -1.49 | +| INJ | 09-22 06:00 | 09-22 08:00 | stop_loss | 2 | -1.49 | +| PEPE | 09-22 06:00 | 09-22 08:00 | stop_loss | 2 | -1.49 | +| TIA | 09-22 06:00 | 09-22 08:00 | stop_loss | 2 | -1.49 | +| ARB | 09-22 06:00 | 09-22 09:00 | stop_loss | 3 | -1.49 | +| ETC | 09-22 06:00 | 09-22 10:00 | stop_loss | 4 | -1.49 | +| INJ | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| PEPE | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| BONK | 10-10 15:00 | 10-10 17:00 | stop_loss | 2 | -1.49 | +| PEPE | 10-10 17:00 | 10-10 18:00 | take_profit | 1 | +1.49 | +| ATOM | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| FIL | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| TON | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| APT | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| ARB | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| BONK | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| ETC | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| FET | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| FIL | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| INJ | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| KAS | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| LTC | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| NEAR | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| SEI | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| SUI | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| TIA | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| TON | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| UNI | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| APT | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| ARB | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| BONK | 10-10 22:00 | 10-10 23:00 | take_profit | 1 | +1.49 | +| FIL | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| KAS | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| LTC | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| OP | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| SEI | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-10 22:00 | 10-10 23:00 | take_profit | 1 | +1.49 | +| SUI | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| TIA | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| TON | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| UNI | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| WIF | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| OP | 10-11 03:00 | 10-11 04:00 | trailing_stop | 1 | -0.25 | +| AVAX | 10-11 05:00 | 10-11 06:00 | take_profit | 1 | +1.49 | +| TON | 10-11 05:00 | 10-11 06:00 | take_profit | 1 | +1.49 | +| WIF | 10-11 05:00 | 10-11 06:00 | take_profit | 1 | +1.49 | +| NEAR | 10-11 05:00 | 10-11 07:00 | take_profit | 2 | +1.49 | +| SEI | 10-11 05:00 | 10-11 07:00 | stop_loss | 2 | -1.49 | +| LTC | 10-11 05:00 | 10-11 08:00 | stop_loss | 3 | -1.49 | +| PEPE | 10-11 07:00 | 10-11 08:00 | take_profit | 1 | +1.49 | +| SEI | 10-11 07:00 | 10-11 08:00 | take_profit | 1 | +1.49 | +| ETC | 10-11 09:00 | 10-11 10:00 | trailing_stop | 1 | -0.66 | +| FIL | 10-11 09:00 | 10-11 10:00 | stop_loss | 1 | -1.49 | +| APT | 10-11 10:00 | 10-11 11:00 | stop_loss | 1 | -1.49 | +| ARB | 10-11 09:00 | 10-11 11:00 | stop_loss | 2 | -1.49 | +| ATOM | 10-11 09:00 | 10-11 11:00 | stop_loss | 2 | -1.49 | +| INJ | 10-11 09:00 | 10-11 11:00 | stop_loss | 2 | -1.49 | +| OP | 10-11 09:00 | 10-11 11:00 | stop_loss | 2 | -1.49 | +| SEI | 10-11 09:00 | 10-11 11:00 | stop_loss | 2 | -1.49 | +| SUI | 10-11 09:00 | 10-11 11:00 | stop_loss | 2 | -1.49 | +| TIA | 10-11 10:00 | 10-11 11:00 | stop_loss | 1 | -1.49 | +| WIF | 10-11 09:00 | 10-11 11:00 | stop_loss | 2 | -1.49 | +| TON | 10-11 09:00 | 10-11 13:00 | stop_loss | 4 | -1.49 | +| UNI | 10-11 09:00 | 10-11 13:00 | stop_loss | 4 | -1.49 | +| NEAR | 10-12 02:00 | 10-12 03:00 | take_profit | 1 | +1.49 | +| KAS | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| OP | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| WIF | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-17 06:00 | 10-17 07:00 | stop_loss | 1 | -1.49 | +| SEI | 10-17 06:00 | 10-17 07:00 | stop_loss | 1 | -1.49 | +| ARB | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| ETC | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| INJ | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| LTC | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| OP | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| TIA | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| UNI | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| WIF | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| KAS | 10-30 13:00 | 10-30 14:00 | trailing_stop | 1 | +0.00 | +| APT | 10-30 13:00 | 10-30 15:00 | stop_loss | 2 | -1.49 | +| INJ | 11-03 03:00 | 11-03 04:00 | stop_loss | 1 | -1.49 | +| KAS | 11-03 03:00 | 11-03 04:00 | stop_loss | 1 | -1.49 | +| OP | 11-03 03:00 | 11-03 04:00 | stop_loss | 1 | -1.49 | +| TIA | 11-03 03:00 | 11-03 04:00 | stop_loss | 1 | -1.49 | +| UNI | 11-03 03:00 | 11-03 04:00 | stop_loss | 1 | -1.49 | +| WIF | 11-03 03:00 | 11-03 04:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-03 03:00 | 11-03 05:00 | take_profit | 2 | +1.49 | +| BONK | 11-03 03:00 | 11-03 06:00 | stop_loss | 3 | -1.49 | +| PEPE | 11-03 03:00 | 11-03 06:00 | stop_loss | 3 | -1.49 | +| ATOM | 11-03 15:00 | 11-03 16:00 | take_profit | 1 | +1.49 | +| AVAX | 11-03 15:00 | 11-03 16:00 | take_profit | 1 | +1.49 | +| BONK | 11-03 15:00 | 11-03 16:00 | take_profit | 1 | +1.49 | +| INJ | 11-03 15:00 | 11-03 16:00 | take_profit | 1 | +1.49 | +| RENDER | 11-03 15:00 | 11-03 16:00 | take_profit | 1 | +1.49 | +| SUI | 11-03 15:00 | 11-03 16:00 | take_profit | 1 | +1.49 | +| AVAX | 11-04 05:00 | 11-04 06:00 | take_profit | 1 | +1.49 | +| KAS | 11-04 05:00 | 11-04 06:00 | take_profit | 1 | +1.49 | +| SEI | 11-04 05:00 | 11-04 06:00 | take_profit | 1 | +1.49 | +| WIF | 11-04 05:00 | 11-04 06:00 | take_profit | 1 | +1.49 | +| FET | 11-08 15:00 | 11-08 16:00 | take_profit | 1 | +1.49 | +| FIL | 11-08 17:00 | 11-08 18:00 | stop_loss | 1 | -1.49 | +| FIL | 11-09 01:00 | 11-09 02:00 | stop_loss | 1 | -1.49 | +| FIL | 11-11 05:00 | 11-11 06:00 | take_profit | 1 | +1.49 | +| FIL | 11-12 15:00 | 11-12 16:00 | stop_loss | 1 | -1.49 | +| UNI | 11-12 15:00 | 11-12 16:00 | take_profit | 1 | +1.49 | +| TIA | 11-12 16:00 | 11-12 17:00 | stop_loss | 1 | -1.49 | +| INJ | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| WIF | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| FIL | 11-19 05:00 | 11-19 06:00 | stop_loss | 1 | -1.49 | +| TIA | 11-19 15:00 | 11-19 16:00 | stop_loss | 1 | -1.49 | +| UNI | 11-19 15:00 | 11-19 17:00 | take_profit | 2 | +1.49 | +| LTC | 11-20 16:00 | 11-20 17:00 | stop_loss | 1 | -1.49 | +| SEI | 11-20 16:00 | 11-20 17:00 | stop_loss | 1 | -1.49 | +| SUI | 11-20 16:00 | 11-20 17:00 | stop_loss | 1 | -1.49 | +| UNI | 11-20 16:00 | 11-20 17:00 | stop_loss | 1 | -1.49 | +| ARB | 11-20 18:00 | 11-20 19:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-21 07:00 | 11-21 08:00 | take_profit | 1 | +1.49 | +| APT | 11-21 07:00 | 11-21 09:00 | stop_loss | 2 | -1.49 | +| FIL | 11-21 07:00 | 11-21 09:00 | stop_loss | 2 | -1.49 | +| INJ | 11-21 07:00 | 11-21 09:00 | stop_loss | 2 | -1.49 | +| PEPE | 11-21 07:00 | 11-21 09:00 | stop_loss | 2 | -1.49 | +| SEI | 11-21 07:00 | 11-21 09:00 | stop_loss | 2 | -1.49 | +| UNI | 11-21 07:00 | 11-21 09:00 | stop_loss | 2 | -1.49 | +| ARB | 11-21 07:00 | 11-21 10:00 | stop_loss | 3 | -1.49 | +| FIL | 12-01 00:00 | 12-01 01:00 | take_profit | 1 | +1.49 | +| SHIB | 12-01 00:00 | 12-01 01:00 | trailing_stop | 1 | -0.71 | +| SUI | 12-01 00:00 | 12-01 01:00 | take_profit | 1 | +1.49 | +| ARB | 12-01 00:00 | 12-01 03:00 | stop_loss | 3 | -1.49 | +| AVAX | 12-01 00:00 | 12-01 03:00 | stop_loss | 3 | -1.49 | +| BONK | 12-01 00:00 | 12-01 03:00 | trailing_stop | 3 | -0.68 | +| FET | 12-01 00:00 | 12-01 03:00 | stop_loss | 3 | -1.49 | +| INJ | 12-01 00:00 | 12-01 03:00 | stop_loss | 3 | -1.49 | +| NEAR | 12-01 00:00 | 12-01 03:00 | stop_loss | 3 | -1.49 | +| OP | 12-01 00:00 | 12-01 03:00 | stop_loss | 3 | -1.49 | +| RENDER | 12-01 00:00 | 12-01 03:00 | stop_loss | 3 | -1.49 | +| UNI | 12-01 00:00 | 12-01 03:00 | stop_loss | 3 | -1.49 | +| LTC | 12-01 00:00 | 12-01 04:00 | stop_loss | 4 | -1.49 | +| APT | 12-01 00:00 | 12-01 06:00 | stop_loss | 6 | -1.49 | +| ATOM | 12-01 00:00 | 12-01 11:00 | trailing_stop | 11 | -0.34 | +| WIF | 12-01 00:00 | 12-01 11:00 | stop_loss | 11 | -1.49 | +| FIL | 12-11 01:00 | 12-11 02:00 | stop_loss | 1 | -1.49 | +| APT | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| INJ | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| NEAR | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| TIA | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| FET | 12-18 19:00 | 12-18 21:00 | take_profit | 2 | +1.49 | +| TIA | 12-18 19:00 | 12-18 21:00 | take_profit | 2 | +1.49 | +| SUI | 01-06 18:00 | 01-06 21:00 | take_profit | 3 | +1.49 | +| APT | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| BONK | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| FET | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| INJ | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| NEAR | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| TIA | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| WIF | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| APT | 01-19 00:00 | 01-19 01:00 | trailing_stop | 1 | -0.42 | +| FET | 01-19 00:00 | 01-19 01:00 | trailing_stop | 1 | -0.63 | +| FIL | 01-19 00:00 | 01-19 01:00 | stop_loss | 1 | -1.49 | +| PEPE | 01-19 00:00 | 01-19 01:00 | stop_loss | 1 | -1.49 | +| SEI | 01-19 00:00 | 01-19 01:00 | trailing_stop | 1 | -0.54 | +| SUI | 01-19 00:00 | 01-19 01:00 | stop_loss | 1 | -1.49 | +| WIF | 01-19 00:00 | 01-19 01:00 | take_profit | 1 | +1.49 | +| INJ | 01-19 00:00 | 01-19 02:00 | trailing_stop | 2 | -0.28 | +| OP | 01-19 00:00 | 01-19 02:00 | take_profit | 2 | +1.49 | +| RENDER | 01-19 00:00 | 01-19 03:00 | take_profit | 3 | +1.49 | +| UNI | 01-19 00:00 | 01-19 03:00 | take_profit | 3 | +1.49 | +| BONK | 01-19 00:00 | 01-19 04:00 | take_profit | 4 | +1.49 | +| TIA | 01-19 00:00 | 01-19 04:00 | stop_loss | 4 | -1.49 | +| NEAR | 01-19 00:00 | 01-19 05:00 | trailing_stop | 5 | -0.13 | +| SUI | 01-19 02:00 | 01-19 05:00 | stop_loss | 3 | -1.49 | +| TON | 01-19 00:00 | 01-19 05:00 | stop_loss | 5 | -1.49 | +| AVAX | 01-19 00:00 | 01-19 06:00 | trailing_stop | 6 | -0.60 | +| FIL | 01-19 02:00 | 01-19 06:00 | take_profit | 4 | +1.49 | +| LTC | 01-19 00:00 | 01-19 08:00 | take_profit | 8 | +1.49 | +| ATOM | 01-19 00:00 | 01-19 09:00 | take_profit | 9 | +1.49 | +| ETC | 01-19 00:00 | 01-19 11:00 | take_profit | 11 | +1.49 | +| SHIB | 01-19 00:00 | 01-19 16:00 | trailing_stop | 16 | -0.19 | +| BONK | 01-31 14:00 | 01-31 16:00 | stop_loss | 2 | -1.49 | +| APT | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| ARB | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| FET | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| INJ | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| NEAR | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| OP | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| PEPE | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| RENDER | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| SEI | 01-31 18:00 | 01-31 19:00 | trailing_stop | 1 | -0.40 | +| SHIB | 01-31 18:00 | 01-31 19:00 | trailing_stop | 1 | -0.48 | +| SUI | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| TIA | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| UNI | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| WIF | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| KAS | 01-31 18:00 | 01-31 20:00 | take_profit | 2 | +1.49 | +| AVAX | 01-31 18:00 | 01-31 21:00 | take_profit | 3 | +1.49 | +| BONK | 01-31 18:00 | 01-31 21:00 | take_profit | 3 | +1.49 | +| ETC | 01-31 18:00 | 01-31 21:00 | trailing_stop | 3 | -0.55 | +| FIL | 01-31 18:00 | 01-31 21:00 | take_profit | 3 | +1.49 | +| OP | 01-31 22:00 | 01-31 23:00 | take_profit | 1 | +1.49 | +| FIL | 02-01 01:00 | 02-01 09:00 | trailing_stop | 8 | -0.48 | +| OP | 02-03 16:00 | 02-03 17:00 | stop_loss | 1 | -1.49 | +| APT | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| ETC | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| FET | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| NEAR | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| RENDER | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| SUI | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| OP | 02-03 23:00 | 02-04 00:00 | trailing_stop | 1 | -0.49 | +| ARB | 02-05 15:00 | 02-05 16:00 | take_profit | 1 | +1.49 | +| UNI | 02-05 15:00 | 02-05 16:00 | take_profit | 1 | +1.49 | +| ATOM | 02-05 17:00 | 02-05 18:00 | take_profit | 1 | +1.49 | +| APT | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| ARB | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| ATOM | 02-06 00:00 | 02-06 01:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| BONK | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| ETC | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| FET | 02-06 00:00 | 02-06 01:00 | stop_loss | 1 | -1.49 | +| FIL | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| INJ | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| KAS | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| LTC | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| NEAR | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| OP | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| PEPE | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| RENDER | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| SEI | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| SHIB | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| SUI | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| TIA | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| TON | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| UNI | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| WIF | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| NEAR | 02-06 03:00 | 02-06 04:00 | trailing_stop | 1 | -0.46 | +| ARB | 02-06 04:00 | 02-06 05:00 | take_profit | 1 | +1.49 | +| RENDER | 02-06 04:00 | 02-06 05:00 | take_profit | 1 | +1.49 | +| UNI | 02-12 16:00 | 02-12 18:00 | stop_loss | 2 | -1.49 | +| OP | 02-20 02:00 | 02-20 03:00 | stop_loss | 1 | -1.49 | +| ARB | 02-23 01:00 | 02-23 02:00 | trailing_stop | 1 | -0.26 | +| BONK | 02-23 01:00 | 02-23 02:00 | trailing_stop | 1 | -0.33 | +| SUI | 02-23 01:00 | 02-23 02:00 | trailing_stop | 1 | -0.66 | +| OP | 02-23 01:00 | 02-23 04:00 | trailing_stop | 3 | -0.50 | +| TIA | 02-23 01:00 | 02-23 04:00 | stop_loss | 3 | -1.49 | +| AVAX | 02-23 01:00 | 02-23 06:00 | take_profit | 5 | +1.49 | +| FIL | 02-23 01:00 | 02-23 06:00 | take_profit | 5 | +1.49 | +| UNI | 02-23 01:00 | 02-23 06:00 | take_profit | 5 | +1.49 | +| WIF | 02-23 01:00 | 02-23 06:00 | take_profit | 5 | +1.49 | +| ARB | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| BONK | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| ETC | 02-28 06:00 | 02-28 07:00 | stop_loss | 1 | -1.49 | +| FET | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| FIL | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| INJ | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| OP | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| PEPE | 02-28 06:00 | 02-28 07:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| SUI | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| TIA | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| WIF | 02-28 06:00 | 02-28 07:00 | stop_loss | 1 | -1.49 | +| FIL | 03-10 18:00 | 03-10 19:00 | stop_loss | 1 | -1.49 | +| KAS | 03-29 14:00 | 03-29 18:00 | trailing_stop | 4 | -0.70 | +| UNI | 04-02 04:00 | 04-02 13:00 | stop_loss | 9 | -1.49 | +| UNI | 04-02 13:00 | 04-02 14:00 | take_profit | 1 | +1.49 | +| FIL | 05-10 20:00 | 05-10 22:00 | take_profit | 2 | +1.49 | +| TON | 05-11 03:00 | 05-11 04:00 | stop_loss | 1 | -1.49 | +| APT | 05-15 13:00 | 05-15 16:00 | take_profit | 3 | +1.49 | +| BONK | 05-15 13:00 | 05-15 16:00 | take_profit | 3 | +1.49 | +| TIA | 05-15 13:00 | 05-15 16:00 | take_profit | 3 | +1.49 | +| WIF | 05-15 13:00 | 05-15 16:00 | take_profit | 3 | +1.49 | +| INJ | 05-15 13:00 | 05-15 17:00 | take_profit | 4 | +1.49 | +| INJ | 05-23 05:00 | 05-23 07:00 | stop_loss | 2 | -1.49 | +| UNI | 05-27 23:00 | 05-28 01:00 | stop_loss | 2 | -1.49 | +| FET | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-02 15:00 | 06-02 16:00 | stop_loss | 1 | -1.49 | +| TON | 06-03 20:00 | 06-03 21:00 | take_profit | 1 | +1.49 | +| APT | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| BONK | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| INJ | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| OP | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| SUI | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| TIA | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| TON | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| UNI | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| APT | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| ARB | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| BONK | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| FET | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| OP | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| PEPE | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| SUI | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| TIA | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| UNI | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| WIF | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| TON | 06-04 02:00 | 06-04 04:00 | trailing_stop | 2 | -0.59 | +| SEI | 06-04 02:00 | 06-04 05:00 | stop_loss | 3 | -1.49 | +| RENDER | 06-04 07:00 | 06-04 08:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-04 14:00 | 06-04 15:00 | take_profit | 1 | +1.49 | +| FIL | 06-05 17:00 | 06-05 18:00 | stop_loss | 1 | -1.49 | +| APT | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| ARB | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| ATOM | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| AVAX | 06-06 04:00 | 06-06 05:00 | take_profit | 1 | +1.49 | +| BONK | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| FET | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| LTC | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| SEI | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| TIA | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| WIF | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| APT | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.11 | +| AVAX | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.29 | +| SUI | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.53 | +| UNI | 06-18 16:00 | 06-18 19:00 | trailing_stop | 3 | -0.13 | +| FIL | 06-23 08:00 | 06-23 13:00 | take_profit | 5 | +1.49 | +| FIL | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| LTC | 06-24 17:00 | 06-24 20:00 | take_profit | 3 | +1.49 | +| APT | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| ARB | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| ATOM | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| BONK | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| FIL | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| NEAR | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| RENDER | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| SHIB | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| WIF | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| APT | 06-25 14:00 | 06-25 15:00 | stop_loss | 1 | -1.49 | +| BONK | 07-06 17:00 | 07-06 18:00 | stop_loss | 1 | -1.49 | +| BONK | 07-06 18:00 | 07-06 21:00 | take_profit | 3 | +1.49 | +| OP | 07-27 22:00 | 07-27 23:00 | stop_loss | 1 | -1.49 | +| UNI | 08-12 07:00 | 08-12 08:00 | stop_loss | 1 | -1.49 | +| UNI | 08-14 11:00 | 08-14 12:00 | trailing_stop | 1 | -0.34 | + +## Допущения + +- Цены: binance 1h как прокси разрешённых бирж (kucoin/bitstamp/mexc — нет месяца локальной истории). +- ML-модель обучена на данных, включающих тестовый месяц (in-sample только для ML-части; индикаторная часть честная). +- Funding/orderbook нейтральны (0 / BALANCED). +- TP/SL исполняются по уровням при пересечении high/low бара; SL приоритетнее TP. +- Свободный профиль: без лимита позиций / DD-kill / daily-kill; каждый вход — фиксированные $200, лимит кэша не применяется (синтетический учёт). diff --git a/docs/TRADING_BACKTEST_1Y_FREE_NO_ML_2026-08-15_RU.md b/docs/TRADING_BACKTEST_1Y_FREE_NO_ML_2026-08-15_RU.md new file mode 100644 index 000000000..36c915b2a --- /dev/null +++ b/docs/TRADING_BACKTEST_1Y_FREE_NO_ML_2026-08-15_RU.md @@ -0,0 +1,11347 @@ +# Тестовый замер: 12 мес. торговли по сигналам без портфельных kill-switch (свободный профиль, БЕЗ ML gate) (Directional v2) + +**Период:** 2025-08-15 13:00 UTC → 2026-08-15 13:00 UTC (12 календарн. мес., 8761 баров 1h) +**Стартовый капитал:** $1,000.00 + +## Результат алгоритма + +- **Итоговый капитал: $-13,834.11** +- **PnL портфеля: -1483.41%** +- Сделок: 11239 (win 2661, 23.7%) +- Средняя сделка: -0.660% | Комиссии и проскальзывание: $10097.88 + +## Реальная динамика валют (Buy&Hold за тот же месяц) + +- **Средняя по 33 валютам: -68.36%** (медиана -71.73%) +- Лучшая: **TRX -6.47%** +- Худшая: **BONK -90.28%** + +| Валюта | Buy&Hold % | +|---|---:| +| TRX | -6.47 | +| BNB | -26.69 | +| NEAR | -40.33 | +| BTC | -46.48 | +| TON | -53.97 | +| LINK | -57.42 | +| ETH | -58.52 | +| SOL | -60.37 | +| LTC | -63.01 | +| SHIB | -64.57 | +| ATOM | -66.89 | +| RENDER | -67.12 | +| XRP | -67.51 | +| POL | -68.14 | +| DOGE | -69.17 | +| UNI | -70.00 | +| ETC | -71.73 | +| INJ | -71.74 | +| FIL | -72.09 | +| KAS | -72.50 | +| AVAX | -72.81 | +| PEPE | -76.00 | +| DOT | -80.34 | +| ADA | -80.95 | +| FET | -81.18 | +| SUI | -81.92 | +| TIA | -82.80 | +| WIF | -84.87 | +| ARB | -85.32 | +| SEI | -87.89 | +| OP | -88.43 | +| APT | -88.53 | +| BONK | -90.28 | + +## Сравнение + +- Алгоритм -1483.41% vs средняя валюта -68.36% → **-1415.05 п.п.** +- Алгоритм -1483.41% vs лучшая валюта (TRX -6.47%) +- Алгоритм -1483.41% vs худшая валюта (BONK -90.28%) + +## Качество сигналов (per-asset) + +- Profit factor: 0.33 (gross +$7460.80 / -$22294.90) +- Максимум одновременных позиций: 23 + +| Актив | Сделок | PnL $ | +|---|---:|---:| +| TRX | 214 | -187.97 | +| LTC | 429 | -514.59 | +| TON | 415 | -536.61 | +| SHIB | 446 | -568.07 | +| RENDER | 500 | -590.53 | +| SUI | 498 | -596.66 | +| NEAR | 445 | -616.53 | +| ATOM | 474 | -624.76 | +| KAS | 473 | -630.31 | +| ETC | 461 | -652.01 | +| AVAX | 503 | -663.19 | +| UNI | 517 | -663.27 | +| FET | 543 | -678.47 | +| PEPE | 527 | -682.30 | +| SEI | 504 | -693.13 | +| APT | 540 | -694.15 | +| WIF | 533 | -696.70 | +| BONK | 544 | -698.38 | +| TIA | 522 | -730.02 | +| INJ | 505 | -746.99 | +| OP | 546 | -749.35 | +| ARB | 532 | -770.08 | +| FIL | 568 | -850.04 | + +## Блокировки входов (свободный профиль) + +- OK: 11239 +- rl_veto: 7880 + +## Сделки + +| Актив | Вход | Выход | Причина | Баров | PnL % | +|---|---|---|---|---:|---:| +| APT | 08-15 14:00 | 08-15 15:00 | stop_loss | 1 | -1.49 | +| ARB | 08-15 14:00 | 08-15 15:00 | stop_loss | 1 | -1.49 | +| ATOM | 08-15 13:00 | 08-15 15:00 | stop_loss | 2 | -1.49 | +| FET | 08-15 14:00 | 08-15 15:00 | stop_loss | 1 | -1.49 | +| INJ | 08-15 14:00 | 08-15 15:00 | stop_loss | 1 | -1.49 | +| LTC | 08-15 13:00 | 08-15 15:00 | stop_loss | 2 | -1.49 | +| UNI | 08-15 14:00 | 08-15 15:00 | stop_loss | 1 | -1.49 | +| WIF | 08-15 14:00 | 08-15 15:00 | stop_loss | 1 | -1.49 | +| APT | 08-15 15:00 | 08-15 16:00 | stop_loss | 1 | -1.49 | +| ARB | 08-15 15:00 | 08-15 16:00 | stop_loss | 1 | -1.49 | +| BONK | 08-15 15:00 | 08-15 16:00 | stop_loss | 1 | -1.49 | +| FET | 08-15 15:00 | 08-15 16:00 | stop_loss | 1 | -1.49 | +| INJ | 08-15 15:00 | 08-15 16:00 | stop_loss | 1 | -1.49 | +| KAS | 08-15 15:00 | 08-15 16:00 | stop_loss | 1 | -1.49 | +| NEAR | 08-15 15:00 | 08-15 16:00 | stop_loss | 1 | -1.49 | +| OP | 08-15 15:00 | 08-15 16:00 | stop_loss | 1 | -1.49 | +| PEPE | 08-15 15:00 | 08-15 16:00 | stop_loss | 1 | -1.49 | +| SEI | 08-15 15:00 | 08-15 16:00 | stop_loss | 1 | -1.49 | +| TIA | 08-15 15:00 | 08-15 16:00 | stop_loss | 1 | -1.49 | +| TON | 08-15 15:00 | 08-15 16:00 | trailing_stop | 1 | -0.37 | +| UNI | 08-15 15:00 | 08-15 16:00 | stop_loss | 1 | -1.49 | +| WIF | 08-15 15:00 | 08-15 16:00 | stop_loss | 1 | -1.49 | +| ARB | 08-15 16:00 | 08-15 17:00 | trailing_stop | 1 | -0.35 | +| BONK | 08-15 16:00 | 08-15 17:00 | stop_loss | 1 | -1.49 | +| ETC | 08-15 15:00 | 08-15 17:00 | trailing_stop | 2 | -0.65 | +| INJ | 08-15 16:00 | 08-15 17:00 | stop_loss | 1 | -1.49 | +| SHIB | 08-15 15:00 | 08-15 17:00 | trailing_stop | 2 | -0.37 | +| SUI | 08-15 15:00 | 08-15 17:00 | trailing_stop | 2 | -0.55 | +| WIF | 08-15 16:00 | 08-15 17:00 | trailing_stop | 1 | -0.33 | +| KAS | 08-15 17:00 | 08-15 18:00 | stop_loss | 1 | -1.49 | +| PEPE | 08-15 16:00 | 08-15 18:00 | stop_loss | 2 | -1.49 | +| SEI | 08-15 17:00 | 08-15 18:00 | stop_loss | 1 | -1.49 | +| SUI | 08-15 17:00 | 08-15 18:00 | stop_loss | 1 | -1.49 | +| KAS | 08-15 18:00 | 08-15 20:00 | trailing_stop | 2 | -0.40 | +| RENDER | 08-15 18:00 | 08-15 20:00 | trailing_stop | 2 | -0.33 | +| FET | 08-15 16:00 | 08-15 21:00 | trailing_stop | 5 | +0.02 | +| FIL | 08-15 15:00 | 08-15 21:00 | confirmed_bearish_exit | 6 | +0.77 | +| APT | 08-15 16:00 | 08-15 22:00 | take_profit | 6 | +1.49 | +| ATOM | 08-15 15:00 | 08-15 22:00 | take_profit | 7 | +1.49 | +| AVAX | 08-15 19:00 | 08-15 22:00 | take_profit | 3 | +1.49 | +| OP | 08-15 16:00 | 08-15 22:00 | trailing_stop | 6 | +0.22 | +| PEPE | 08-15 18:00 | 08-15 22:00 | take_profit | 4 | +1.49 | +| RENDER | 08-15 21:00 | 08-15 22:00 | trailing_stop | 1 | +0.18 | +| UNI | 08-15 16:00 | 08-15 22:00 | take_profit | 6 | +1.49 | +| AVAX | 08-15 22:00 | 08-15 23:00 | stop_loss | 1 | -1.49 | +| INJ | 08-15 22:00 | 08-15 23:00 | stop_loss | 1 | -1.49 | +| SEI | 08-15 22:00 | 08-15 23:00 | stop_loss | 1 | -1.49 | +| WIF | 08-15 22:00 | 08-15 23:00 | stop_loss | 1 | -1.49 | +| AVAX | 08-15 23:00 | 08-16 00:00 | trailing_stop | 1 | -0.37 | +| INJ | 08-15 23:00 | 08-16 00:00 | trailing_stop | 1 | -0.46 | +| LTC | 08-15 15:00 | 08-16 00:00 | take_profit | 9 | +1.49 | +| OP | 08-15 23:00 | 08-16 00:00 | trailing_stop | 1 | -0.61 | +| SEI | 08-15 23:00 | 08-16 00:00 | trailing_stop | 1 | -0.59 | +| WIF | 08-15 23:00 | 08-16 00:00 | trailing_stop | 1 | -0.68 | +| SEI | 08-16 02:00 | 08-16 04:00 | stop_loss | 2 | -1.49 | +| ARB | 08-15 23:00 | 08-16 07:00 | trailing_stop | 8 | -0.53 | +| TRX | 08-15 15:00 | 08-16 11:00 | trailing_stop | 20 | -0.66 | +| TRX | 08-16 13:00 | 08-17 16:00 | take_profit | 27 | +1.49 | +| TON | 08-17 00:00 | 08-17 22:00 | take_profit | 22 | +1.49 | +| BONK | 08-17 18:00 | 08-18 00:00 | stop_loss | 6 | -1.49 | +| LTC | 08-17 21:00 | 08-18 01:00 | stop_loss | 4 | -1.49 | +| APT | 08-18 01:00 | 08-18 02:00 | stop_loss | 1 | -1.49 | +| ATOM | 08-18 01:00 | 08-18 02:00 | stop_loss | 1 | -1.49 | +| BONK | 08-18 01:00 | 08-18 02:00 | stop_loss | 1 | -1.49 | +| ETC | 08-18 01:00 | 08-18 02:00 | stop_loss | 1 | -1.49 | +| FET | 08-18 01:00 | 08-18 02:00 | stop_loss | 1 | -1.49 | +| FIL | 08-18 01:00 | 08-18 02:00 | stop_loss | 1 | -1.49 | +| KAS | 08-18 01:00 | 08-18 02:00 | stop_loss | 1 | -1.49 | +| LTC | 08-18 01:00 | 08-18 02:00 | stop_loss | 1 | -1.49 | +| NEAR | 08-18 01:00 | 08-18 02:00 | stop_loss | 1 | -1.49 | +| OP | 08-18 01:00 | 08-18 02:00 | stop_loss | 1 | -1.49 | +| RENDER | 08-18 01:00 | 08-18 02:00 | stop_loss | 1 | -1.49 | +| SEI | 08-18 01:00 | 08-18 02:00 | stop_loss | 1 | -1.49 | +| SHIB | 08-18 01:00 | 08-18 02:00 | stop_loss | 1 | -1.49 | +| SUI | 08-18 01:00 | 08-18 02:00 | stop_loss | 1 | -1.49 | +| TIA | 08-18 01:00 | 08-18 02:00 | stop_loss | 1 | -1.49 | +| TON | 08-18 01:00 | 08-18 02:00 | stop_loss | 1 | -1.49 | +| AVAX | 08-18 02:00 | 08-18 03:00 | stop_loss | 1 | -1.49 | +| BONK | 08-18 02:00 | 08-18 03:00 | stop_loss | 1 | -1.49 | +| ETC | 08-18 02:00 | 08-18 03:00 | stop_loss | 1 | -1.49 | +| FET | 08-18 02:00 | 08-18 03:00 | stop_loss | 1 | -1.49 | +| FIL | 08-18 02:00 | 08-18 03:00 | stop_loss | 1 | -1.49 | +| OP | 08-18 02:00 | 08-18 03:00 | stop_loss | 1 | -1.49 | +| PEPE | 08-18 02:00 | 08-18 03:00 | stop_loss | 1 | -1.49 | +| RENDER | 08-18 02:00 | 08-18 03:00 | stop_loss | 1 | -1.49 | +| SEI | 08-18 02:00 | 08-18 03:00 | stop_loss | 1 | -1.49 | +| TIA | 08-18 02:00 | 08-18 03:00 | stop_loss | 1 | -1.49 | +| UNI | 08-18 02:00 | 08-18 03:00 | stop_loss | 1 | -1.49 | +| WIF | 08-18 02:00 | 08-18 03:00 | stop_loss | 1 | -1.49 | +| SEI | 08-18 03:00 | 08-18 04:00 | take_profit | 1 | +1.49 | +| SUI | 08-18 02:00 | 08-18 05:00 | stop_loss | 3 | -1.49 | +| TIA | 08-18 03:00 | 08-18 05:00 | stop_loss | 2 | -1.49 | +| ARB | 08-18 05:00 | 08-18 06:00 | stop_loss | 1 | -1.49 | +| ATOM | 08-18 02:00 | 08-18 06:00 | stop_loss | 4 | -1.49 | +| AVAX | 08-18 03:00 | 08-18 06:00 | stop_loss | 3 | -1.49 | +| BONK | 08-18 03:00 | 08-18 06:00 | stop_loss | 3 | -1.49 | +| ETC | 08-18 03:00 | 08-18 06:00 | stop_loss | 3 | -1.49 | +| FET | 08-18 03:00 | 08-18 06:00 | stop_loss | 3 | -1.49 | +| FIL | 08-18 03:00 | 08-18 06:00 | stop_loss | 3 | -1.49 | +| INJ | 08-18 05:00 | 08-18 06:00 | stop_loss | 1 | -1.49 | +| KAS | 08-18 02:00 | 08-18 06:00 | stop_loss | 4 | -1.49 | +| LTC | 08-18 02:00 | 08-18 06:00 | trailing_stop | 4 | -0.62 | +| NEAR | 08-18 02:00 | 08-18 06:00 | stop_loss | 4 | -1.49 | +| PEPE | 08-18 03:00 | 08-18 06:00 | stop_loss | 3 | -1.49 | +| RENDER | 08-18 03:00 | 08-18 06:00 | stop_loss | 3 | -1.49 | +| SHIB | 08-18 02:00 | 08-18 06:00 | stop_loss | 4 | -1.49 | +| TON | 08-18 02:00 | 08-18 06:00 | stop_loss | 4 | -1.49 | +| UNI | 08-18 03:00 | 08-18 06:00 | stop_loss | 3 | -1.49 | +| UNI | 08-18 06:00 | 08-18 07:00 | stop_loss | 1 | -1.49 | +| APT | 08-18 02:00 | 08-18 09:00 | stop_loss | 7 | -1.49 | +| FIL | 08-18 06:00 | 08-18 09:00 | stop_loss | 3 | -1.49 | +| INJ | 08-18 06:00 | 08-18 09:00 | stop_loss | 3 | -1.49 | +| KAS | 08-18 06:00 | 08-18 09:00 | stop_loss | 3 | -1.49 | +| RENDER | 08-18 06:00 | 08-18 09:00 | stop_loss | 3 | -1.49 | +| SUI | 08-18 06:00 | 08-18 09:00 | stop_loss | 3 | -1.49 | +| TIA | 08-18 06:00 | 08-18 09:00 | trailing_stop | 3 | -0.50 | +| UNI | 08-18 07:00 | 08-18 09:00 | stop_loss | 2 | -1.49 | +| ATOM | 08-18 06:00 | 08-18 12:00 | take_profit | 6 | +1.49 | +| AVAX | 08-18 06:00 | 08-18 12:00 | take_profit | 6 | +1.49 | +| FET | 08-18 11:00 | 08-18 12:00 | trailing_stop | 1 | -0.54 | +| TIA | 08-18 11:00 | 08-18 12:00 | trailing_stop | 1 | -0.57 | +| TON | 08-18 06:00 | 08-18 12:00 | confirmed_bearish_exit | 6 | +0.30 | +| ATOM | 08-18 12:00 | 08-18 13:00 | stop_loss | 1 | -1.49 | +| AVAX | 08-18 12:00 | 08-18 13:00 | stop_loss | 1 | -1.49 | +| BONK | 08-18 12:00 | 08-18 13:00 | stop_loss | 1 | -1.49 | +| FET | 08-18 12:00 | 08-18 13:00 | stop_loss | 1 | -1.49 | +| NEAR | 08-18 12:00 | 08-18 13:00 | stop_loss | 1 | -1.49 | +| OP | 08-18 12:00 | 08-18 13:00 | stop_loss | 1 | -1.49 | +| PEPE | 08-18 12:00 | 08-18 13:00 | stop_loss | 1 | -1.49 | +| TIA | 08-18 12:00 | 08-18 13:00 | stop_loss | 1 | -1.49 | +| WIF | 08-18 12:00 | 08-18 13:00 | stop_loss | 1 | -1.49 | +| BONK | 08-18 13:00 | 08-18 14:00 | trailing_stop | 1 | -0.59 | +| ETC | 08-18 06:00 | 08-18 14:00 | trailing_stop | 8 | +0.02 | +| KAS | 08-18 12:00 | 08-18 14:00 | stop_loss | 2 | -1.49 | +| OP | 08-18 13:00 | 08-18 14:00 | stop_loss | 1 | -1.49 | +| WIF | 08-18 13:00 | 08-18 14:00 | trailing_stop | 1 | -0.55 | +| BONK | 08-18 14:00 | 08-18 15:00 | stop_loss | 1 | -1.49 | +| INJ | 08-18 13:00 | 08-18 15:00 | trailing_stop | 2 | -0.12 | +| OP | 08-18 14:00 | 08-18 15:00 | stop_loss | 1 | -1.49 | +| RENDER | 08-18 14:00 | 08-18 15:00 | stop_loss | 1 | -1.49 | +| TIA | 08-18 13:00 | 08-18 15:00 | trailing_stop | 2 | -0.56 | +| INJ | 08-18 15:00 | 08-18 16:00 | stop_loss | 1 | -1.49 | +| LTC | 08-18 11:00 | 08-18 16:00 | trailing_stop | 5 | -0.21 | +| PEPE | 08-18 14:00 | 08-18 16:00 | stop_loss | 2 | -1.49 | +| TON | 08-18 14:00 | 08-18 16:00 | stop_loss | 2 | -1.49 | +| SUI | 08-18 14:00 | 08-18 17:00 | take_profit | 3 | +1.49 | +| AVAX | 08-18 13:00 | 08-18 18:00 | trailing_stop | 5 | -0.48 | +| NEAR | 08-18 13:00 | 08-18 20:00 | trailing_stop | 7 | -0.66 | +| SHIB | 08-18 13:00 | 08-18 21:00 | take_profit | 8 | +1.49 | +| APT | 08-18 13:00 | 08-18 22:00 | take_profit | 9 | +1.49 | +| ATOM | 08-18 13:00 | 08-18 22:00 | take_profit | 9 | +1.49 | +| FIL | 08-18 13:00 | 08-18 22:00 | take_profit | 9 | +1.49 | +| FET | 08-18 13:00 | 08-18 23:00 | trailing_stop | 10 | -0.54 | +| UNI | 08-18 14:00 | 08-18 23:00 | trailing_stop | 9 | -0.34 | +| ETC | 08-18 14:00 | 08-19 00:00 | stop_loss | 10 | -1.49 | +| KAS | 08-18 14:00 | 08-19 00:00 | stop_loss | 10 | -1.49 | +| TON | 08-19 02:00 | 08-19 03:00 | stop_loss | 1 | -1.49 | +| TRX | 08-18 02:00 | 08-19 03:00 | trailing_stop | 25 | -0.53 | +| LTC | 08-19 03:00 | 08-19 04:00 | trailing_stop | 1 | -0.37 | +| SHIB | 08-19 03:00 | 08-19 04:00 | trailing_stop | 1 | -0.58 | +| APT | 08-19 04:00 | 08-19 06:00 | stop_loss | 2 | -1.49 | +| FET | 08-19 03:00 | 08-19 09:00 | take_profit | 6 | +1.49 | +| KAS | 08-19 03:00 | 08-19 09:00 | take_profit | 6 | +1.49 | +| SEI | 08-19 05:00 | 08-19 09:00 | take_profit | 4 | +1.49 | +| BONK | 08-19 03:00 | 08-19 11:00 | take_profit | 8 | +1.49 | +| SUI | 08-19 07:00 | 08-19 11:00 | take_profit | 4 | +1.49 | +| TON | 08-19 03:00 | 08-19 11:00 | take_profit | 8 | +1.49 | +| APT | 08-19 06:00 | 08-19 13:00 | stop_loss | 7 | -1.49 | +| ATOM | 08-19 03:00 | 08-19 13:00 | trailing_stop | 10 | -0.10 | +| AVAX | 08-19 12:00 | 08-19 13:00 | stop_loss | 1 | -1.49 | +| ETC | 08-19 03:00 | 08-19 13:00 | take_profit | 10 | +1.49 | +| FIL | 08-19 03:00 | 08-19 13:00 | trailing_stop | 10 | +0.14 | +| APT | 08-19 13:00 | 08-19 14:00 | stop_loss | 1 | -1.49 | +| BONK | 08-19 14:00 | 08-19 16:00 | stop_loss | 2 | -1.49 | +| ETC | 08-19 14:00 | 08-19 16:00 | stop_loss | 2 | -1.49 | +| PEPE | 08-19 14:00 | 08-19 16:00 | stop_loss | 2 | -1.49 | +| RENDER | 08-19 14:00 | 08-19 16:00 | stop_loss | 2 | -1.49 | +| SEI | 08-19 14:00 | 08-19 16:00 | stop_loss | 2 | -1.49 | +| SHIB | 08-19 14:00 | 08-19 16:00 | stop_loss | 2 | -1.49 | +| TIA | 08-19 14:00 | 08-19 16:00 | stop_loss | 2 | -1.49 | +| ARB | 08-19 14:00 | 08-19 17:00 | stop_loss | 3 | -1.49 | +| KAS | 08-19 14:00 | 08-19 17:00 | stop_loss | 3 | -1.49 | +| TON | 08-19 14:00 | 08-19 17:00 | stop_loss | 3 | -1.49 | +| UNI | 08-19 16:00 | 08-19 17:00 | stop_loss | 1 | -1.49 | +| BONK | 08-19 16:00 | 08-19 18:00 | stop_loss | 2 | -1.49 | +| LTC | 08-19 14:00 | 08-19 18:00 | stop_loss | 4 | -1.49 | +| TIA | 08-19 16:00 | 08-19 18:00 | stop_loss | 2 | -1.49 | +| WIF | 08-19 14:00 | 08-19 18:00 | stop_loss | 4 | -1.49 | +| ETC | 08-19 16:00 | 08-19 19:00 | stop_loss | 3 | -1.49 | +| OP | 08-19 16:00 | 08-19 19:00 | stop_loss | 3 | -1.49 | +| RENDER | 08-19 16:00 | 08-19 19:00 | stop_loss | 3 | -1.49 | +| SEI | 08-19 16:00 | 08-19 19:00 | stop_loss | 3 | -1.49 | +| SHIB | 08-19 16:00 | 08-19 19:00 | stop_loss | 3 | -1.49 | +| TIA | 08-19 18:00 | 08-19 19:00 | stop_loss | 1 | -1.49 | +| BONK | 08-19 18:00 | 08-19 20:00 | trailing_stop | 2 | -0.32 | +| PEPE | 08-19 18:00 | 08-19 20:00 | trailing_stop | 2 | -0.35 | +| UNI | 08-19 18:00 | 08-19 20:00 | trailing_stop | 2 | -0.67 | +| WIF | 08-19 18:00 | 08-19 20:00 | take_profit | 2 | +1.49 | +| INJ | 08-19 18:00 | 08-19 23:00 | stop_loss | 5 | -1.49 | +| NEAR | 08-19 18:00 | 08-19 23:00 | stop_loss | 5 | -1.49 | +| TIA | 08-19 19:00 | 08-19 23:00 | trailing_stop | 4 | -0.63 | +| ARB | 08-19 23:00 | 08-20 01:00 | trailing_stop | 2 | +0.07 | +| KAS | 08-19 23:00 | 08-20 01:00 | trailing_stop | 2 | -0.48 | +| LTC | 08-19 23:00 | 08-20 01:00 | trailing_stop | 2 | -0.69 | +| WIF | 08-19 23:00 | 08-20 06:00 | trailing_stop | 7 | -0.50 | +| BONK | 08-20 03:00 | 08-20 08:00 | stop_loss | 5 | -1.49 | +| RENDER | 08-20 02:00 | 08-20 08:00 | trailing_stop | 6 | -0.43 | +| SEI | 08-20 07:00 | 08-20 08:00 | trailing_stop | 1 | -0.28 | +| SUI | 08-20 02:00 | 08-20 08:00 | trailing_stop | 6 | +0.02 | +| TIA | 08-20 03:00 | 08-20 08:00 | take_profit | 5 | +1.49 | +| UNI | 08-20 02:00 | 08-20 08:00 | take_profit | 6 | +1.49 | +| PEPE | 08-20 03:00 | 08-20 11:00 | stop_loss | 8 | -1.49 | +| ARB | 08-21 09:00 | 08-21 12:00 | stop_loss | 3 | -1.49 | +| BONK | 08-21 09:00 | 08-21 12:00 | stop_loss | 3 | -1.49 | +| FET | 08-21 09:00 | 08-21 12:00 | stop_loss | 3 | -1.49 | +| FIL | 08-21 09:00 | 08-21 12:00 | stop_loss | 3 | -1.49 | +| INJ | 08-21 09:00 | 08-21 12:00 | stop_loss | 3 | -1.49 | +| NEAR | 08-21 09:00 | 08-21 12:00 | stop_loss | 3 | -1.49 | +| OP | 08-21 09:00 | 08-21 12:00 | stop_loss | 3 | -1.49 | +| PEPE | 08-21 09:00 | 08-21 12:00 | stop_loss | 3 | -1.49 | +| RENDER | 08-21 09:00 | 08-21 12:00 | stop_loss | 3 | -1.49 | +| SUI | 08-21 09:00 | 08-21 12:00 | stop_loss | 3 | -1.49 | +| TIA | 08-21 09:00 | 08-21 12:00 | stop_loss | 3 | -1.49 | +| TON | 08-21 09:00 | 08-21 13:00 | take_profit | 4 | +1.49 | +| APT | 08-21 09:00 | 08-21 14:00 | stop_loss | 5 | -1.49 | +| ARB | 08-21 12:00 | 08-21 14:00 | take_profit | 2 | +1.49 | +| TIA | 08-21 12:00 | 08-21 14:00 | stop_loss | 2 | -1.49 | +| WIF | 08-21 10:00 | 08-21 14:00 | stop_loss | 4 | -1.49 | +| ETC | 08-21 09:00 | 08-21 15:00 | stop_loss | 6 | -1.49 | +| LTC | 08-21 09:00 | 08-21 15:00 | stop_loss | 6 | -1.49 | +| PEPE | 08-21 12:00 | 08-21 15:00 | stop_loss | 3 | -1.49 | +| SEI | 08-21 09:00 | 08-21 15:00 | stop_loss | 6 | -1.49 | +| AVAX | 08-21 09:00 | 08-21 16:00 | stop_loss | 7 | -1.49 | +| NEAR | 08-21 12:00 | 08-21 16:00 | stop_loss | 4 | -1.49 | +| UNI | 08-21 12:00 | 08-21 16:00 | stop_loss | 4 | -1.49 | +| SUI | 08-21 12:00 | 08-21 17:00 | stop_loss | 5 | -1.49 | +| PEPE | 08-21 15:00 | 08-21 18:00 | trailing_stop | 3 | +0.13 | +| WIF | 08-21 15:00 | 08-21 18:00 | take_profit | 3 | +1.49 | +| KAS | 08-21 09:00 | 08-21 19:00 | trailing_stop | 10 | -0.68 | +| ATOM | 08-21 16:00 | 08-21 20:00 | trailing_stop | 4 | -0.58 | +| OP | 08-21 12:00 | 08-21 21:00 | trailing_stop | 9 | -0.09 | +| ARB | 08-21 20:00 | 08-21 22:00 | take_profit | 2 | +1.49 | +| FIL | 08-21 12:00 | 08-21 23:00 | trailing_stop | 11 | -0.62 | +| TIA | 08-21 15:00 | 08-21 23:00 | trailing_stop | 8 | -0.63 | +| APT | 08-21 14:00 | 08-22 01:00 | trailing_stop | 11 | -0.19 | +| FET | 08-21 19:00 | 08-22 01:00 | stop_loss | 6 | -1.49 | +| SUI | 08-21 20:00 | 08-22 01:00 | stop_loss | 5 | -1.49 | +| WIF | 08-21 19:00 | 08-22 01:00 | trailing_stop | 6 | -0.64 | +| LTC | 08-21 15:00 | 08-22 02:00 | take_profit | 11 | +1.49 | +| PEPE | 08-21 19:00 | 08-22 02:00 | take_profit | 7 | +1.49 | +| AVAX | 08-21 16:00 | 08-22 03:00 | trailing_stop | 11 | -0.57 | +| ETC | 08-21 15:00 | 08-22 08:00 | take_profit | 17 | +1.49 | +| BONK | 08-21 20:00 | 08-22 11:00 | stop_loss | 15 | -1.49 | +| RENDER | 08-21 15:00 | 08-22 11:00 | stop_loss | 20 | -1.49 | +| SHIB | 08-21 12:00 | 08-22 11:00 | stop_loss | 23 | -1.49 | +| TON | 08-22 08:00 | 08-22 11:00 | stop_loss | 3 | -1.49 | +| APT | 08-22 11:00 | 08-22 12:00 | stop_loss | 1 | -1.49 | +| ATOM | 08-22 11:00 | 08-22 12:00 | stop_loss | 1 | -1.49 | +| BONK | 08-22 11:00 | 08-22 12:00 | stop_loss | 1 | -1.49 | +| FET | 08-22 11:00 | 08-22 12:00 | stop_loss | 1 | -1.49 | +| FIL | 08-22 11:00 | 08-22 12:00 | stop_loss | 1 | -1.49 | +| NEAR | 08-22 11:00 | 08-22 12:00 | stop_loss | 1 | -1.49 | +| OP | 08-22 11:00 | 08-22 12:00 | stop_loss | 1 | -1.49 | +| PEPE | 08-22 11:00 | 08-22 12:00 | stop_loss | 1 | -1.49 | +| RENDER | 08-22 11:00 | 08-22 12:00 | stop_loss | 1 | -1.49 | +| SEI | 08-22 11:00 | 08-22 12:00 | stop_loss | 1 | -1.49 | +| SUI | 08-22 11:00 | 08-22 12:00 | stop_loss | 1 | -1.49 | +| TIA | 08-22 11:00 | 08-22 12:00 | stop_loss | 1 | -1.49 | +| TON | 08-22 11:00 | 08-22 12:00 | stop_loss | 1 | -1.49 | +| WIF | 08-22 10:00 | 08-22 12:00 | stop_loss | 2 | -1.49 | +| ARB | 08-22 12:00 | 08-22 13:00 | take_profit | 1 | +1.49 | +| BONK | 08-22 12:00 | 08-22 13:00 | take_profit | 1 | +1.49 | +| PEPE | 08-22 12:00 | 08-22 13:00 | stop_loss | 1 | -1.49 | +| TIA | 08-22 12:00 | 08-22 13:00 | take_profit | 1 | +1.49 | +| WIF | 08-22 12:00 | 08-22 13:00 | stop_loss | 1 | -1.49 | +| APT | 08-22 12:00 | 08-22 14:00 | take_profit | 2 | +1.49 | +| ATOM | 08-22 12:00 | 08-22 14:00 | take_profit | 2 | +1.49 | +| FET | 08-22 12:00 | 08-22 14:00 | take_profit | 2 | +1.49 | +| FIL | 08-22 12:00 | 08-22 14:00 | take_profit | 2 | +1.49 | +| LTC | 08-22 12:00 | 08-22 14:00 | take_profit | 2 | +1.49 | +| NEAR | 08-22 12:00 | 08-22 14:00 | take_profit | 2 | +1.49 | +| OP | 08-22 12:00 | 08-22 14:00 | take_profit | 2 | +1.49 | +| PEPE | 08-22 13:00 | 08-22 14:00 | take_profit | 1 | +1.49 | +| RENDER | 08-22 12:00 | 08-22 14:00 | take_profit | 2 | +1.49 | +| SEI | 08-22 12:00 | 08-22 14:00 | take_profit | 2 | +1.49 | +| SHIB | 08-22 12:00 | 08-22 14:00 | take_profit | 2 | +1.49 | +| SUI | 08-22 12:00 | 08-22 14:00 | take_profit | 2 | +1.49 | +| TON | 08-22 12:00 | 08-22 14:00 | take_profit | 2 | +1.49 | +| TRX | 08-21 12:00 | 08-22 14:00 | take_profit | 26 | +1.49 | +| UNI | 08-22 12:00 | 08-22 14:00 | take_profit | 2 | +1.49 | +| WIF | 08-22 13:00 | 08-22 14:00 | take_profit | 1 | +1.49 | +| WIF | 08-23 13:00 | 08-23 15:00 | trailing_stop | 2 | -0.03 | +| UNI | 08-23 10:00 | 08-23 17:00 | take_profit | 7 | +1.49 | +| INJ | 08-23 10:00 | 08-23 19:00 | take_profit | 9 | +1.49 | +| FIL | 08-23 11:00 | 08-24 01:00 | stop_loss | 14 | -1.49 | +| TIA | 08-23 20:00 | 08-24 01:00 | stop_loss | 5 | -1.49 | +| ETC | 08-23 07:00 | 08-24 02:00 | trailing_stop | 19 | -0.59 | +| PEPE | 08-23 19:00 | 08-24 03:00 | stop_loss | 8 | -1.49 | +| WIF | 08-23 19:00 | 08-24 05:00 | stop_loss | 10 | -1.49 | +| ATOM | 08-24 04:00 | 08-24 06:00 | stop_loss | 2 | -1.49 | +| FET | 08-23 07:00 | 08-24 06:00 | stop_loss | 23 | -1.49 | +| FIL | 08-24 05:00 | 08-24 06:00 | stop_loss | 1 | -1.49 | +| KAS | 08-24 05:00 | 08-24 06:00 | stop_loss | 1 | -1.49 | +| SHIB | 08-24 05:00 | 08-24 06:00 | stop_loss | 1 | -1.49 | +| LTC | 08-23 13:00 | 08-24 07:00 | stop_loss | 18 | -1.49 | +| RENDER | 08-24 06:00 | 08-24 08:00 | stop_loss | 2 | -1.49 | +| PEPE | 08-24 06:00 | 08-24 09:00 | stop_loss | 3 | -1.49 | +| APT | 08-24 06:00 | 08-24 10:00 | stop_loss | 4 | -1.49 | +| ARB | 08-24 06:00 | 08-24 10:00 | stop_loss | 4 | -1.49 | +| ATOM | 08-24 06:00 | 08-24 10:00 | stop_loss | 4 | -1.49 | +| BONK | 08-24 06:00 | 08-24 10:00 | stop_loss | 4 | -1.49 | +| ETC | 08-24 06:00 | 08-24 10:00 | stop_loss | 4 | -1.49 | +| FET | 08-24 06:00 | 08-24 10:00 | stop_loss | 4 | -1.49 | +| FIL | 08-24 06:00 | 08-24 10:00 | stop_loss | 4 | -1.49 | +| INJ | 08-24 07:00 | 08-24 10:00 | stop_loss | 3 | -1.49 | +| NEAR | 08-24 06:00 | 08-24 10:00 | stop_loss | 4 | -1.49 | +| PEPE | 08-24 09:00 | 08-24 10:00 | stop_loss | 1 | -1.49 | +| RENDER | 08-24 08:00 | 08-24 10:00 | stop_loss | 2 | -1.49 | +| SEI | 08-24 06:00 | 08-24 10:00 | stop_loss | 4 | -1.49 | +| SHIB | 08-24 07:00 | 08-24 10:00 | stop_loss | 3 | -1.49 | +| TIA | 08-24 06:00 | 08-24 10:00 | stop_loss | 4 | -1.49 | +| UNI | 08-24 06:00 | 08-24 10:00 | stop_loss | 4 | -1.49 | +| WIF | 08-24 06:00 | 08-24 10:00 | stop_loss | 4 | -1.49 | +| TON | 08-23 11:00 | 08-24 11:00 | stop_loss | 24 | -1.49 | +| ARB | 08-24 10:00 | 08-24 14:00 | take_profit | 4 | +1.49 | +| AVAX | 08-24 10:00 | 08-24 14:00 | trailing_stop | 4 | +0.19 | +| NEAR | 08-24 10:00 | 08-24 14:00 | trailing_stop | 4 | -0.29 | +| RENDER | 08-24 10:00 | 08-24 14:00 | trailing_stop | 4 | +0.08 | +| UNI | 08-24 10:00 | 08-24 14:00 | trailing_stop | 4 | -0.12 | +| BONK | 08-24 10:00 | 08-24 15:00 | take_profit | 5 | +1.49 | +| INJ | 08-24 10:00 | 08-24 15:00 | take_profit | 5 | +1.49 | +| SEI | 08-24 10:00 | 08-24 15:00 | take_profit | 5 | +1.49 | +| TIA | 08-24 10:00 | 08-24 15:00 | take_profit | 5 | +1.49 | +| WIF | 08-24 10:00 | 08-24 15:00 | take_profit | 5 | +1.49 | +| OP | 08-24 15:00 | 08-24 16:00 | stop_loss | 1 | -1.49 | +| APT | 08-24 10:00 | 08-24 17:00 | take_profit | 7 | +1.49 | +| ARB | 08-24 16:00 | 08-24 17:00 | take_profit | 1 | +1.49 | +| ATOM | 08-24 10:00 | 08-24 17:00 | take_profit | 7 | +1.49 | +| AVAX | 08-24 15:00 | 08-24 17:00 | take_profit | 2 | +1.49 | +| ETC | 08-24 10:00 | 08-24 17:00 | take_profit | 7 | +1.49 | +| FET | 08-24 10:00 | 08-24 17:00 | take_profit | 7 | +1.49 | +| FIL | 08-24 10:00 | 08-24 17:00 | take_profit | 7 | +1.49 | +| KAS | 08-24 06:00 | 08-24 17:00 | take_profit | 11 | +1.49 | +| LTC | 08-24 10:00 | 08-24 17:00 | take_profit | 7 | +1.49 | +| NEAR | 08-24 15:00 | 08-24 17:00 | take_profit | 2 | +1.49 | +| PEPE | 08-24 10:00 | 08-24 17:00 | take_profit | 7 | +1.49 | +| RENDER | 08-24 15:00 | 08-24 17:00 | take_profit | 2 | +1.49 | +| SHIB | 08-24 10:00 | 08-24 17:00 | take_profit | 7 | +1.49 | +| SUI | 08-24 10:00 | 08-24 17:00 | take_profit | 7 | +1.49 | +| TIA | 08-24 15:00 | 08-24 17:00 | take_profit | 2 | +1.49 | +| UNI | 08-24 15:00 | 08-24 17:00 | take_profit | 2 | +1.49 | +| WIF | 08-24 16:00 | 08-24 17:00 | take_profit | 1 | +1.49 | +| TON | 08-24 11:00 | 08-24 18:00 | take_profit | 7 | +1.49 | +| TRX | 08-23 07:00 | 08-24 18:00 | take_profit | 35 | +1.49 | +| TRX | 08-24 22:00 | 08-25 00:00 | stop_loss | 2 | -1.49 | +| AVAX | 08-25 06:00 | 08-25 07:00 | stop_loss | 1 | -1.49 | +| ETC | 08-25 06:00 | 08-25 07:00 | stop_loss | 1 | -1.49 | +| KAS | 08-25 06:00 | 08-25 07:00 | stop_loss | 1 | -1.49 | +| LTC | 08-25 06:00 | 08-25 07:00 | stop_loss | 1 | -1.49 | +| NEAR | 08-25 06:00 | 08-25 07:00 | stop_loss | 1 | -1.49 | +| TON | 08-25 06:00 | 08-25 07:00 | stop_loss | 1 | -1.49 | +| TRX | 08-25 00:00 | 08-25 07:00 | stop_loss | 7 | -1.49 | +| UNI | 08-25 06:00 | 08-25 07:00 | stop_loss | 1 | -1.49 | +| ARB | 08-25 07:00 | 08-25 08:00 | stop_loss | 1 | -1.49 | +| OP | 08-25 07:00 | 08-25 08:00 | stop_loss | 1 | -1.49 | +| RENDER | 08-25 07:00 | 08-25 08:00 | stop_loss | 1 | -1.49 | +| UNI | 08-25 07:00 | 08-25 08:00 | stop_loss | 1 | -1.49 | +| WIF | 08-25 07:00 | 08-25 08:00 | stop_loss | 1 | -1.49 | +| SUI | 08-25 07:00 | 08-25 09:00 | stop_loss | 2 | -1.49 | +| APT | 08-25 07:00 | 08-25 10:00 | stop_loss | 3 | -1.49 | +| ATOM | 08-25 07:00 | 08-25 10:00 | stop_loss | 3 | -1.49 | +| AVAX | 08-25 07:00 | 08-25 10:00 | stop_loss | 3 | -1.49 | +| BONK | 08-25 07:00 | 08-25 10:00 | stop_loss | 3 | -1.49 | +| ETC | 08-25 07:00 | 08-25 10:00 | stop_loss | 3 | -1.49 | +| FET | 08-25 07:00 | 08-25 10:00 | stop_loss | 3 | -1.49 | +| FIL | 08-25 07:00 | 08-25 10:00 | stop_loss | 3 | -1.49 | +| INJ | 08-25 07:00 | 08-25 10:00 | stop_loss | 3 | -1.49 | +| KAS | 08-25 07:00 | 08-25 10:00 | stop_loss | 3 | -1.49 | +| LTC | 08-25 07:00 | 08-25 10:00 | stop_loss | 3 | -1.49 | +| NEAR | 08-25 07:00 | 08-25 10:00 | stop_loss | 3 | -1.49 | +| PEPE | 08-25 07:00 | 08-25 10:00 | stop_loss | 3 | -1.49 | +| SEI | 08-25 07:00 | 08-25 10:00 | stop_loss | 3 | -1.49 | +| SHIB | 08-25 07:00 | 08-25 10:00 | stop_loss | 3 | -1.49 | +| TIA | 08-25 07:00 | 08-25 10:00 | stop_loss | 3 | -1.49 | +| TON | 08-25 07:00 | 08-25 10:00 | stop_loss | 3 | -1.49 | +| UNI | 08-25 08:00 | 08-25 10:00 | stop_loss | 2 | -1.49 | +| WIF | 08-25 10:00 | 08-25 11:00 | trailing_stop | 1 | -0.49 | +| ARB | 08-25 10:00 | 08-25 13:00 | trailing_stop | 3 | -0.39 | +| ATOM | 08-25 10:00 | 08-25 13:00 | take_profit | 3 | +1.49 | +| BONK | 08-25 10:00 | 08-25 13:00 | trailing_stop | 3 | -0.66 | +| OP | 08-25 10:00 | 08-25 13:00 | trailing_stop | 3 | -0.54 | +| RENDER | 08-25 10:00 | 08-25 13:00 | trailing_stop | 3 | -0.41 | +| FET | 08-25 10:00 | 08-25 14:00 | take_profit | 4 | +1.49 | +| INJ | 08-25 10:00 | 08-25 14:00 | trailing_stop | 4 | -0.07 | +| TIA | 08-25 10:00 | 08-25 14:00 | take_profit | 4 | +1.49 | +| PEPE | 08-25 10:00 | 08-25 15:00 | trailing_stop | 5 | -0.53 | +| APT | 08-25 10:00 | 08-25 17:00 | trailing_stop | 7 | -0.44 | +| FET | 08-25 15:00 | 08-25 18:00 | stop_loss | 3 | -1.49 | +| ATOM | 08-25 16:00 | 08-25 19:00 | stop_loss | 3 | -1.49 | +| KAS | 08-25 16:00 | 08-25 19:00 | stop_loss | 3 | -1.49 | +| TON | 08-25 10:00 | 08-25 19:00 | stop_loss | 9 | -1.49 | +| TRX | 08-25 14:00 | 08-25 19:00 | stop_loss | 5 | -1.49 | +| TIA | 08-25 19:00 | 08-25 20:00 | stop_loss | 1 | -1.49 | +| ARB | 08-25 20:00 | 08-25 22:00 | take_profit | 2 | +1.49 | +| FIL | 08-25 20:00 | 08-25 22:00 | trailing_stop | 2 | -0.42 | +| KAS | 08-25 20:00 | 08-25 22:00 | take_profit | 2 | +1.49 | +| NEAR | 08-25 20:00 | 08-25 22:00 | trailing_stop | 2 | -0.45 | +| OP | 08-25 20:00 | 08-25 22:00 | trailing_stop | 2 | -0.70 | +| PEPE | 08-25 20:00 | 08-25 22:00 | trailing_stop | 2 | -0.36 | +| TIA | 08-25 20:00 | 08-25 22:00 | trailing_stop | 2 | -0.71 | +| WIF | 08-25 20:00 | 08-25 22:00 | take_profit | 2 | +1.49 | +| LTC | 08-25 20:00 | 08-25 23:00 | take_profit | 3 | +1.49 | +| TRX | 08-25 19:00 | 08-25 23:00 | stop_loss | 4 | -1.49 | +| BONK | 08-25 20:00 | 08-26 00:00 | take_profit | 4 | +1.49 | +| APT | 08-25 20:00 | 08-26 01:00 | take_profit | 5 | +1.49 | +| ATOM | 08-25 20:00 | 08-26 01:00 | trailing_stop | 5 | +0.14 | +| ETC | 08-25 20:00 | 08-26 01:00 | take_profit | 5 | +1.49 | +| FET | 08-25 20:00 | 08-26 01:00 | take_profit | 5 | +1.49 | +| RENDER | 08-25 20:00 | 08-26 01:00 | take_profit | 5 | +1.49 | +| SEI | 08-25 20:00 | 08-26 01:00 | take_profit | 5 | +1.49 | +| SHIB | 08-25 20:00 | 08-26 01:00 | take_profit | 5 | +1.49 | +| TON | 08-25 20:00 | 08-26 01:00 | trailing_stop | 5 | -0.11 | +| SUI | 08-26 03:00 | 08-26 05:00 | take_profit | 2 | +1.49 | +| ATOM | 08-26 03:00 | 08-26 06:00 | stop_loss | 3 | -1.49 | +| ETC | 08-26 02:00 | 08-26 06:00 | stop_loss | 4 | -1.49 | +| BONK | 08-26 03:00 | 08-26 07:00 | take_profit | 4 | +1.49 | +| INJ | 08-26 03:00 | 08-26 07:00 | take_profit | 4 | +1.49 | +| OP | 08-26 02:00 | 08-26 07:00 | stop_loss | 5 | -1.49 | +| PEPE | 08-26 02:00 | 08-26 07:00 | trailing_stop | 5 | -0.49 | +| RENDER | 08-26 03:00 | 08-26 07:00 | take_profit | 4 | +1.49 | +| TIA | 08-26 03:00 | 08-26 07:00 | stop_loss | 4 | -1.49 | +| WIF | 08-26 03:00 | 08-26 07:00 | take_profit | 4 | +1.49 | +| FIL | 08-26 02:00 | 08-26 10:00 | take_profit | 8 | +1.49 | +| TON | 08-26 04:00 | 08-26 11:00 | stop_loss | 7 | -1.49 | +| UNI | 08-26 03:00 | 08-26 11:00 | stop_loss | 8 | -1.49 | +| APT | 08-26 03:00 | 08-26 12:00 | take_profit | 9 | +1.49 | +| ATOM | 08-26 06:00 | 08-26 12:00 | take_profit | 6 | +1.49 | +| AVAX | 08-26 03:00 | 08-26 12:00 | take_profit | 9 | +1.49 | +| ETC | 08-26 06:00 | 08-26 12:00 | take_profit | 6 | +1.49 | +| FET | 08-26 03:00 | 08-26 12:00 | take_profit | 9 | +1.49 | +| KAS | 08-26 04:00 | 08-26 12:00 | trailing_stop | 8 | -0.51 | +| NEAR | 08-26 02:00 | 08-26 12:00 | take_profit | 10 | +1.49 | +| SEI | 08-26 02:00 | 08-26 12:00 | take_profit | 10 | +1.49 | +| TIA | 08-26 07:00 | 08-26 12:00 | take_profit | 5 | +1.49 | +| TRX | 08-25 23:00 | 08-26 12:00 | take_profit | 13 | +1.49 | +| ARB | 08-27 00:00 | 08-27 03:00 | take_profit | 3 | +1.49 | +| ATOM | 08-27 09:00 | 08-27 19:00 | trailing_stop | 10 | -0.29 | +| BONK | 08-27 18:00 | 08-27 19:00 | stop_loss | 1 | -1.49 | +| LTC | 08-27 09:00 | 08-27 19:00 | trailing_stop | 10 | -0.42 | +| ARB | 08-27 19:00 | 08-27 20:00 | stop_loss | 1 | -1.49 | +| FIL | 08-27 09:00 | 08-27 20:00 | trailing_stop | 11 | +0.01 | +| TRX | 08-27 09:00 | 08-27 22:00 | stop_loss | 13 | -1.49 | +| TON | 08-27 22:00 | 08-28 01:00 | stop_loss | 3 | -1.49 | +| KAS | 08-28 00:00 | 08-28 04:00 | take_profit | 4 | +1.49 | +| SEI | 08-27 23:00 | 08-28 04:00 | trailing_stop | 5 | -0.05 | +| TRX | 08-27 22:00 | 08-28 16:00 | stop_loss | 18 | -1.49 | +| PEPE | 08-28 16:00 | 08-28 17:00 | trailing_stop | 1 | -0.41 | +| UNI | 08-28 16:00 | 08-28 17:00 | trailing_stop | 1 | -0.57 | +| ETC | 08-28 16:00 | 08-28 20:00 | trailing_stop | 4 | -0.54 | +| UNI | 08-28 19:00 | 08-28 21:00 | take_profit | 2 | +1.49 | +| AVAX | 08-28 19:00 | 08-28 22:00 | take_profit | 3 | +1.49 | +| FET | 08-28 19:00 | 08-28 22:00 | take_profit | 3 | +1.49 | +| LTC | 08-28 16:00 | 08-28 22:00 | take_profit | 6 | +1.49 | +| SUI | 08-28 16:00 | 08-28 22:00 | take_profit | 6 | +1.49 | +| SHIB | 08-28 16:00 | 08-28 23:00 | take_profit | 7 | +1.49 | +| TON | 08-29 01:00 | 08-29 05:00 | stop_loss | 4 | -1.49 | +| TRX | 08-28 22:00 | 08-29 07:00 | stop_loss | 9 | -1.49 | +| ETC | 08-29 07:00 | 08-29 08:00 | stop_loss | 1 | -1.49 | +| FIL | 08-29 07:00 | 08-29 08:00 | stop_loss | 1 | -1.49 | +| INJ | 08-29 07:00 | 08-29 08:00 | stop_loss | 1 | -1.49 | +| KAS | 08-29 07:00 | 08-29 08:00 | stop_loss | 1 | -1.49 | +| PEPE | 08-29 07:00 | 08-29 08:00 | stop_loss | 1 | -1.49 | +| RENDER | 08-29 07:00 | 08-29 08:00 | stop_loss | 1 | -1.49 | +| TIA | 08-29 07:00 | 08-29 08:00 | stop_loss | 1 | -1.49 | +| WIF | 08-29 07:00 | 08-29 08:00 | stop_loss | 1 | -1.49 | +| FET | 08-29 07:00 | 08-29 09:00 | stop_loss | 2 | -1.49 | +| FIL | 08-29 08:00 | 08-29 09:00 | trailing_stop | 1 | -0.69 | +| KAS | 08-29 08:00 | 08-29 09:00 | trailing_stop | 1 | -0.52 | +| SEI | 08-29 08:00 | 08-29 09:00 | stop_loss | 1 | -1.49 | +| SUI | 08-29 08:00 | 08-29 09:00 | stop_loss | 1 | -1.49 | +| TON | 08-29 07:00 | 08-29 09:00 | stop_loss | 2 | -1.49 | +| UNI | 08-29 08:00 | 08-29 09:00 | stop_loss | 1 | -1.49 | +| WIF | 08-29 08:00 | 08-29 09:00 | stop_loss | 1 | -1.49 | +| INJ | 08-29 08:00 | 08-29 10:00 | trailing_stop | 2 | -0.11 | +| APT | 08-29 08:00 | 08-29 12:00 | take_profit | 4 | +1.49 | +| ARB | 08-29 08:00 | 08-29 12:00 | take_profit | 4 | +1.49 | +| ATOM | 08-29 08:00 | 08-29 12:00 | take_profit | 4 | +1.49 | +| AVAX | 08-29 08:00 | 08-29 12:00 | take_profit | 4 | +1.49 | +| BONK | 08-29 08:00 | 08-29 12:00 | take_profit | 4 | +1.49 | +| ETC | 08-29 08:00 | 08-29 12:00 | take_profit | 4 | +1.49 | +| LTC | 08-29 08:00 | 08-29 12:00 | take_profit | 4 | +1.49 | +| NEAR | 08-29 08:00 | 08-29 12:00 | take_profit | 4 | +1.49 | +| OP | 08-29 08:00 | 08-29 12:00 | take_profit | 4 | +1.49 | +| PEPE | 08-29 08:00 | 08-29 12:00 | take_profit | 4 | +1.49 | +| RENDER | 08-29 08:00 | 08-29 12:00 | take_profit | 4 | +1.49 | +| SHIB | 08-29 08:00 | 08-29 12:00 | take_profit | 4 | +1.49 | +| SUI | 08-29 09:00 | 08-29 12:00 | take_profit | 3 | +1.49 | +| TIA | 08-29 08:00 | 08-29 12:00 | take_profit | 4 | +1.49 | +| TON | 08-29 09:00 | 08-29 13:00 | trailing_stop | 4 | -0.60 | +| TRX | 08-29 08:00 | 08-29 14:00 | stop_loss | 6 | -1.49 | +| NEAR | 08-29 14:00 | 08-29 17:00 | stop_loss | 3 | -1.49 | +| TON | 08-29 16:00 | 08-29 18:00 | stop_loss | 2 | -1.49 | +| INJ | 08-30 00:00 | 08-30 01:00 | stop_loss | 1 | -1.49 | +| ATOM | 08-30 21:00 | 08-31 00:00 | trailing_stop | 3 | +0.02 | +| PEPE | 08-30 17:00 | 08-31 00:00 | trailing_stop | 7 | -0.39 | +| UNI | 08-30 21:00 | 08-31 00:00 | take_profit | 3 | +1.49 | +| RENDER | 08-30 21:00 | 08-31 01:00 | take_profit | 4 | +1.49 | +| TIA | 08-30 21:00 | 08-31 01:00 | take_profit | 4 | +1.49 | +| TRX | 08-29 14:00 | 08-31 01:00 | take_profit | 35 | +1.49 | +| OP | 08-30 21:00 | 08-31 03:00 | take_profit | 6 | +1.49 | +| SUI | 08-30 21:00 | 08-31 06:00 | trailing_stop | 9 | +0.11 | +| SHIB | 08-30 21:00 | 08-31 10:00 | trailing_stop | 13 | -0.26 | +| WIF | 08-31 14:00 | 08-31 18:00 | trailing_stop | 4 | -0.47 | +| FET | 08-31 14:00 | 08-31 22:00 | trailing_stop | 8 | -0.58 | +| PEPE | 08-31 14:00 | 08-31 22:00 | trailing_stop | 8 | -0.69 | +| ATOM | 08-31 22:00 | 08-31 23:00 | stop_loss | 1 | -1.49 | +| AVAX | 08-31 22:00 | 08-31 23:00 | stop_loss | 1 | -1.49 | +| FIL | 08-31 17:00 | 08-31 23:00 | stop_loss | 6 | -1.49 | +| KAS | 08-31 14:00 | 08-31 23:00 | stop_loss | 9 | -1.49 | +| LTC | 08-31 14:00 | 08-31 23:00 | stop_loss | 9 | -1.49 | +| SUI | 08-31 14:00 | 08-31 23:00 | stop_loss | 9 | -1.49 | +| APT | 08-31 14:00 | 09-01 00:00 | stop_loss | 10 | -1.49 | +| ARB | 08-31 23:00 | 09-01 00:00 | stop_loss | 1 | -1.49 | +| ETC | 08-31 23:00 | 09-01 00:00 | stop_loss | 1 | -1.49 | +| FET | 08-31 23:00 | 09-01 00:00 | stop_loss | 1 | -1.49 | +| NEAR | 08-31 23:00 | 09-01 00:00 | stop_loss | 1 | -1.49 | +| PEPE | 08-31 23:00 | 09-01 00:00 | stop_loss | 1 | -1.49 | +| RENDER | 08-31 23:00 | 09-01 00:00 | stop_loss | 1 | -1.49 | +| SUI | 08-31 23:00 | 09-01 00:00 | stop_loss | 1 | -1.49 | +| TIA | 08-31 23:00 | 09-01 00:00 | stop_loss | 1 | -1.49 | +| UNI | 08-31 23:00 | 09-01 00:00 | stop_loss | 1 | -1.49 | +| WIF | 08-31 23:00 | 09-01 00:00 | stop_loss | 1 | -1.49 | +| APT | 09-01 00:00 | 09-01 02:00 | stop_loss | 2 | -1.49 | +| ARB | 09-01 00:00 | 09-01 02:00 | stop_loss | 2 | -1.49 | +| ATOM | 09-01 00:00 | 09-01 02:00 | stop_loss | 2 | -1.49 | +| AVAX | 08-31 23:00 | 09-01 02:00 | stop_loss | 3 | -1.49 | +| BONK | 09-01 01:00 | 09-01 02:00 | stop_loss | 1 | -1.49 | +| ETC | 09-01 00:00 | 09-01 02:00 | stop_loss | 2 | -1.49 | +| FET | 09-01 00:00 | 09-01 02:00 | stop_loss | 2 | -1.49 | +| FIL | 09-01 01:00 | 09-01 02:00 | stop_loss | 1 | -1.49 | +| KAS | 08-31 23:00 | 09-01 02:00 | stop_loss | 3 | -1.49 | +| LTC | 08-31 23:00 | 09-01 02:00 | stop_loss | 3 | -1.49 | +| NEAR | 09-01 00:00 | 09-01 02:00 | stop_loss | 2 | -1.49 | +| OP | 09-01 01:00 | 09-01 02:00 | stop_loss | 1 | -1.49 | +| PEPE | 09-01 00:00 | 09-01 02:00 | stop_loss | 2 | -1.49 | +| RENDER | 09-01 00:00 | 09-01 02:00 | stop_loss | 2 | -1.49 | +| SEI | 09-01 01:00 | 09-01 02:00 | stop_loss | 1 | -1.49 | +| SHIB | 08-31 23:00 | 09-01 02:00 | stop_loss | 3 | -1.49 | +| SUI | 09-01 00:00 | 09-01 02:00 | stop_loss | 2 | -1.49 | +| TIA | 09-01 00:00 | 09-01 02:00 | stop_loss | 2 | -1.49 | +| UNI | 09-01 00:00 | 09-01 02:00 | stop_loss | 2 | -1.49 | +| WIF | 09-01 00:00 | 09-01 02:00 | stop_loss | 2 | -1.49 | +| BONK | 09-01 02:00 | 09-01 03:00 | take_profit | 1 | +1.49 | +| ARB | 09-01 02:00 | 09-01 04:00 | stop_loss | 2 | -1.49 | +| FET | 09-01 02:00 | 09-01 04:00 | stop_loss | 2 | -1.49 | +| KAS | 09-01 02:00 | 09-01 04:00 | stop_loss | 2 | -1.49 | +| RENDER | 09-01 02:00 | 09-01 04:00 | stop_loss | 2 | -1.49 | +| SEI | 09-01 02:00 | 09-01 04:00 | stop_loss | 2 | -1.49 | +| SUI | 09-01 02:00 | 09-01 04:00 | stop_loss | 2 | -1.49 | +| WIF | 09-01 02:00 | 09-01 04:00 | stop_loss | 2 | -1.49 | +| AVAX | 09-01 02:00 | 09-01 05:00 | stop_loss | 3 | -1.49 | +| BONK | 09-01 04:00 | 09-01 05:00 | stop_loss | 1 | -1.49 | +| TRX | 09-01 00:00 | 09-01 05:00 | stop_loss | 5 | -1.49 | +| ARB | 09-01 04:00 | 09-01 06:00 | take_profit | 2 | +1.49 | +| APT | 09-01 02:00 | 09-01 07:00 | take_profit | 5 | +1.49 | +| ATOM | 09-01 02:00 | 09-01 07:00 | take_profit | 5 | +1.49 | +| BONK | 09-01 05:00 | 09-01 07:00 | stop_loss | 2 | -1.49 | +| ETC | 09-01 02:00 | 09-01 07:00 | take_profit | 5 | +1.49 | +| FET | 09-01 04:00 | 09-01 07:00 | take_profit | 3 | +1.49 | +| FIL | 09-01 02:00 | 09-01 07:00 | take_profit | 5 | +1.49 | +| INJ | 09-01 02:00 | 09-01 07:00 | take_profit | 5 | +1.49 | +| KAS | 09-01 04:00 | 09-01 07:00 | take_profit | 3 | +1.49 | +| LTC | 09-01 02:00 | 09-01 07:00 | take_profit | 5 | +1.49 | +| NEAR | 09-01 02:00 | 09-01 07:00 | take_profit | 5 | +1.49 | +| OP | 09-01 02:00 | 09-01 07:00 | take_profit | 5 | +1.49 | +| PEPE | 09-01 02:00 | 09-01 07:00 | take_profit | 5 | +1.49 | +| RENDER | 09-01 04:00 | 09-01 07:00 | take_profit | 3 | +1.49 | +| SEI | 09-01 04:00 | 09-01 07:00 | take_profit | 3 | +1.49 | +| SHIB | 09-01 02:00 | 09-01 07:00 | take_profit | 5 | +1.49 | +| SUI | 09-01 04:00 | 09-01 07:00 | take_profit | 3 | +1.49 | +| TIA | 09-01 02:00 | 09-01 07:00 | take_profit | 5 | +1.49 | +| TON | 09-01 02:00 | 09-01 07:00 | trailing_stop | 5 | -0.52 | +| UNI | 09-01 02:00 | 09-01 07:00 | take_profit | 5 | +1.49 | +| WIF | 09-01 04:00 | 09-01 07:00 | take_profit | 3 | +1.49 | +| BONK | 09-01 09:00 | 09-01 10:00 | stop_loss | 1 | -1.49 | +| TRX | 09-01 10:00 | 09-01 17:00 | stop_loss | 7 | -1.49 | +| AVAX | 09-01 21:00 | 09-01 23:00 | trailing_stop | 2 | -0.01 | +| FIL | 09-01 22:00 | 09-01 23:00 | trailing_stop | 1 | -0.43 | +| OP | 09-01 21:00 | 09-01 23:00 | take_profit | 2 | +1.49 | +| PEPE | 09-01 21:00 | 09-01 23:00 | take_profit | 2 | +1.49 | +| SEI | 09-01 21:00 | 09-01 23:00 | take_profit | 2 | +1.49 | +| TIA | 09-01 21:00 | 09-01 23:00 | take_profit | 2 | +1.49 | +| WIF | 09-01 21:00 | 09-01 23:00 | take_profit | 2 | +1.49 | +| KAS | 09-01 21:00 | 09-02 00:00 | take_profit | 3 | +1.49 | +| FET | 09-01 21:00 | 09-02 01:00 | take_profit | 4 | +1.49 | +| TRX | 09-01 21:00 | 09-02 12:00 | trailing_stop | 15 | +0.07 | +| BONK | 09-04 02:00 | 09-04 03:00 | stop_loss | 1 | -1.49 | +| ARB | 09-04 04:00 | 09-04 05:00 | stop_loss | 1 | -1.49 | +| BONK | 09-04 03:00 | 09-04 05:00 | stop_loss | 2 | -1.49 | +| FET | 09-04 02:00 | 09-04 05:00 | stop_loss | 3 | -1.49 | +| INJ | 09-04 03:00 | 09-04 05:00 | stop_loss | 2 | -1.49 | +| NEAR | 09-04 04:00 | 09-04 05:00 | stop_loss | 1 | -1.49 | +| PEPE | 09-04 04:00 | 09-04 05:00 | stop_loss | 1 | -1.49 | +| RENDER | 09-04 04:00 | 09-04 05:00 | stop_loss | 1 | -1.49 | +| SEI | 09-04 04:00 | 09-04 05:00 | stop_loss | 1 | -1.49 | +| TIA | 09-04 04:00 | 09-04 05:00 | stop_loss | 1 | -1.49 | +| TON | 09-03 10:00 | 09-04 05:00 | trailing_stop | 19 | -0.29 | +| APT | 09-04 04:00 | 09-04 06:00 | stop_loss | 2 | -1.49 | +| AVAX | 09-04 04:00 | 09-04 06:00 | stop_loss | 2 | -1.49 | +| ETC | 09-04 03:00 | 09-04 06:00 | stop_loss | 3 | -1.49 | +| OP | 09-04 03:00 | 09-04 06:00 | stop_loss | 3 | -1.49 | +| SHIB | 09-04 04:00 | 09-04 06:00 | stop_loss | 2 | -1.49 | +| SUI | 09-04 04:00 | 09-04 06:00 | stop_loss | 2 | -1.49 | +| UNI | 09-04 04:00 | 09-04 06:00 | stop_loss | 2 | -1.49 | +| FIL | 09-04 05:00 | 09-04 09:00 | confirmed_bearish_exit | 4 | -0.06 | +| SEI | 09-04 05:00 | 09-04 09:00 | confirmed_bearish_exit | 4 | +0.52 | +| INJ | 09-04 05:00 | 09-04 11:00 | stop_loss | 6 | -1.49 | +| WIF | 09-04 09:00 | 09-04 11:00 | stop_loss | 2 | -1.49 | +| BONK | 09-04 05:00 | 09-04 12:00 | stop_loss | 7 | -1.49 | +| KAS | 09-04 03:00 | 09-04 13:00 | stop_loss | 10 | -1.49 | +| LTC | 09-04 04:00 | 09-04 13:00 | stop_loss | 9 | -1.49 | +| PEPE | 09-04 05:00 | 09-04 13:00 | stop_loss | 8 | -1.49 | +| APT | 09-04 06:00 | 09-04 14:00 | stop_loss | 8 | -1.49 | +| ARB | 09-04 05:00 | 09-04 14:00 | stop_loss | 9 | -1.49 | +| ATOM | 09-04 04:00 | 09-04 14:00 | stop_loss | 10 | -1.49 | +| FET | 09-04 05:00 | 09-04 14:00 | stop_loss | 9 | -1.49 | +| FIL | 09-04 12:00 | 09-04 14:00 | stop_loss | 2 | -1.49 | +| NEAR | 09-04 05:00 | 09-04 14:00 | stop_loss | 9 | -1.49 | +| OP | 09-04 06:00 | 09-04 14:00 | stop_loss | 8 | -1.49 | +| RENDER | 09-04 05:00 | 09-04 14:00 | stop_loss | 9 | -1.49 | +| TIA | 09-04 05:00 | 09-04 14:00 | stop_loss | 9 | -1.49 | +| UNI | 09-04 06:00 | 09-04 14:00 | stop_loss | 8 | -1.49 | +| KAS | 09-04 13:00 | 09-04 15:00 | stop_loss | 2 | -1.49 | +| SEI | 09-04 11:00 | 09-04 15:00 | stop_loss | 4 | -1.49 | +| SHIB | 09-04 06:00 | 09-04 15:00 | stop_loss | 9 | -1.49 | +| SUI | 09-04 06:00 | 09-04 15:00 | stop_loss | 9 | -1.49 | +| TON | 09-04 09:00 | 09-04 15:00 | stop_loss | 6 | -1.49 | +| TRX | 09-04 04:00 | 09-04 15:00 | stop_loss | 11 | -1.49 | +| AVAX | 09-04 06:00 | 09-04 17:00 | stop_loss | 11 | -1.49 | +| ETC | 09-04 06:00 | 09-04 18:00 | stop_loss | 12 | -1.49 | +| KAS | 09-04 15:00 | 09-04 23:00 | trailing_stop | 8 | -0.68 | +| AVAX | 09-05 00:00 | 09-05 02:00 | trailing_stop | 2 | -0.17 | +| WIF | 09-04 23:00 | 09-05 03:00 | take_profit | 4 | +1.49 | +| SEI | 09-04 23:00 | 09-05 04:00 | take_profit | 5 | +1.49 | +| ARB | 09-04 23:00 | 09-05 07:00 | take_profit | 8 | +1.49 | +| BONK | 09-04 23:00 | 09-05 07:00 | take_profit | 8 | +1.49 | +| FET | 09-04 23:00 | 09-05 07:00 | take_profit | 8 | +1.49 | +| FIL | 09-04 14:00 | 09-05 07:00 | take_profit | 17 | +1.49 | +| INJ | 09-04 23:00 | 09-05 07:00 | take_profit | 8 | +1.49 | +| PEPE | 09-04 23:00 | 09-05 07:00 | take_profit | 8 | +1.49 | +| TRX | 09-04 15:00 | 09-05 14:00 | trailing_stop | 23 | -0.61 | +| KAS | 09-05 21:00 | 09-06 08:00 | stop_loss | 11 | -1.49 | +| TON | 09-04 15:00 | 09-06 08:00 | stop_loss | 41 | -1.49 | +| APT | 09-05 21:00 | 09-06 09:00 | stop_loss | 12 | -1.49 | +| AVAX | 09-06 02:00 | 09-06 09:00 | stop_loss | 7 | -1.49 | +| KAS | 09-06 08:00 | 09-06 09:00 | take_profit | 1 | +1.49 | +| NEAR | 09-06 02:00 | 09-06 09:00 | stop_loss | 7 | -1.49 | +| KAS | 09-06 09:00 | 09-06 11:00 | confirmed_bearish_exit | 2 | +0.83 | +| TON | 09-06 09:00 | 09-06 13:00 | stop_loss | 4 | -1.49 | +| TON | 09-06 13:00 | 09-06 14:00 | trailing_stop | 1 | -0.35 | +| TRX | 09-05 15:00 | 09-06 14:00 | stop_loss | 23 | -1.49 | +| ARB | 09-06 15:00 | 09-06 16:00 | trailing_stop | 1 | -0.60 | +| PEPE | 09-06 14:00 | 09-06 16:00 | stop_loss | 2 | -1.49 | +| UNI | 09-06 09:00 | 09-06 16:00 | trailing_stop | 7 | -0.60 | +| TRX | 09-06 14:00 | 09-06 20:00 | stop_loss | 6 | -1.49 | +| TRX | 09-06 20:00 | 09-06 21:00 | stop_loss | 1 | -1.49 | +| TRX | 09-06 21:00 | 09-06 22:00 | stop_loss | 1 | -1.49 | +| TRX | 09-06 22:00 | 09-06 23:00 | trailing_stop | 1 | -0.39 | +| KAS | 09-06 16:00 | 09-07 00:00 | stop_loss | 8 | -1.49 | +| BONK | 09-06 15:00 | 09-07 01:00 | trailing_stop | 10 | -0.16 | +| ATOM | 09-06 09:00 | 09-07 02:00 | confirmed_bearish_exit | 17 | +1.39 | +| SUI | 09-06 19:00 | 09-07 03:00 | take_profit | 8 | +1.49 | +| SEI | 09-07 18:00 | 09-07 19:00 | trailing_stop | 1 | -0.42 | +| ARB | 09-07 18:00 | 09-07 23:00 | take_profit | 5 | +1.49 | +| AVAX | 09-07 17:00 | 09-07 23:00 | take_profit | 6 | +1.49 | +| SHIB | 09-06 09:00 | 09-07 23:00 | take_profit | 38 | +1.49 | +| INJ | 09-07 19:00 | 09-08 02:00 | trailing_stop | 7 | -0.25 | +| OP | 09-07 19:00 | 09-08 02:00 | take_profit | 7 | +1.49 | +| UNI | 09-07 16:00 | 09-08 02:00 | trailing_stop | 10 | -0.27 | +| ETC | 09-06 11:00 | 09-08 03:00 | take_profit | 40 | +1.49 | +| LTC | 09-08 04:00 | 09-08 06:00 | stop_loss | 2 | -1.49 | +| SUI | 09-08 01:00 | 09-08 08:00 | take_profit | 7 | +1.49 | +| KAS | 09-09 02:00 | 09-09 06:00 | take_profit | 4 | +1.49 | +| TRX | 09-09 00:00 | 09-09 06:00 | take_profit | 6 | +1.49 | +| UNI | 09-09 02:00 | 09-09 06:00 | take_profit | 4 | +1.49 | +| TON | 09-09 01:00 | 09-09 07:00 | take_profit | 6 | +1.49 | +| LTC | 09-08 06:00 | 09-09 14:00 | trailing_stop | 32 | -0.14 | +| SEI | 09-09 15:00 | 09-09 20:00 | confirmed_bearish_exit | 5 | +0.65 | +| RENDER | 09-09 20:00 | 09-09 22:00 | take_profit | 2 | +1.49 | +| ARB | 09-09 20:00 | 09-10 00:00 | stop_loss | 4 | -1.49 | +| BONK | 09-09 21:00 | 09-10 00:00 | stop_loss | 3 | -1.49 | +| OP | 09-09 21:00 | 09-10 01:00 | take_profit | 4 | +1.49 | +| PEPE | 09-09 21:00 | 09-10 02:00 | take_profit | 5 | +1.49 | +| SEI | 09-09 23:00 | 09-10 02:00 | trailing_stop | 3 | -0.07 | +| SUI | 09-09 20:00 | 09-10 02:00 | take_profit | 6 | +1.49 | +| UNI | 09-09 20:00 | 09-10 02:00 | trailing_stop | 6 | +0.17 | +| WIF | 09-09 20:00 | 09-10 02:00 | take_profit | 6 | +1.49 | +| FET | 09-10 01:00 | 09-10 05:00 | trailing_stop | 4 | -0.63 | +| RENDER | 09-09 23:00 | 09-10 05:00 | trailing_stop | 6 | -0.22 | +| TIA | 09-10 01:00 | 09-10 10:00 | stop_loss | 9 | -1.49 | +| FIL | 09-09 20:00 | 09-10 11:00 | trailing_stop | 15 | -0.65 | +| APT | 09-09 20:00 | 09-10 12:00 | trailing_stop | 16 | -0.46 | +| ETC | 09-10 00:00 | 09-10 12:00 | take_profit | 12 | +1.49 | +| KAS | 09-10 00:00 | 09-10 12:00 | take_profit | 12 | +1.49 | +| LTC | 09-09 15:00 | 09-10 12:00 | take_profit | 21 | +1.49 | +| SHIB | 09-09 21:00 | 09-10 12:00 | take_profit | 15 | +1.49 | +| TON | 09-09 22:00 | 09-10 14:00 | take_profit | 16 | +1.49 | +| TIA | 09-10 19:00 | 09-11 00:00 | take_profit | 5 | +1.49 | +| TRX | 09-10 03:00 | 09-11 03:00 | take_profit | 24 | +1.49 | +| TIA | 09-11 02:00 | 09-11 12:00 | stop_loss | 10 | -1.49 | +| WIF | 09-11 15:00 | 09-11 21:00 | take_profit | 6 | +1.49 | +| PEPE | 09-11 15:00 | 09-11 22:00 | take_profit | 7 | +1.49 | +| ATOM | 09-11 11:00 | 09-12 00:00 | take_profit | 13 | +1.49 | +| ETC | 09-11 21:00 | 09-12 00:00 | take_profit | 3 | +1.49 | +| LTC | 09-11 14:00 | 09-12 00:00 | take_profit | 10 | +1.49 | +| NEAR | 09-11 14:00 | 09-12 00:00 | take_profit | 10 | +1.49 | +| OP | 09-11 17:00 | 09-12 00:00 | take_profit | 7 | +1.49 | +| SHIB | 09-11 17:00 | 09-12 00:00 | take_profit | 7 | +1.49 | +| AVAX | 09-12 04:00 | 09-12 05:00 | trailing_stop | 1 | -0.07 | +| RENDER | 09-12 11:00 | 09-12 12:00 | trailing_stop | 1 | -0.59 | +| PEPE | 09-12 13:00 | 09-12 16:00 | take_profit | 3 | +1.49 | +| FIL | 09-12 11:00 | 09-12 17:00 | take_profit | 6 | +1.49 | +| ATOM | 09-12 11:00 | 09-12 18:00 | take_profit | 7 | +1.49 | +| RENDER | 09-12 14:00 | 09-12 18:00 | take_profit | 4 | +1.49 | +| TON | 09-11 20:00 | 09-13 06:00 | take_profit | 34 | +1.49 | +| ARB | 09-13 23:00 | 09-14 00:00 | stop_loss | 1 | -1.49 | +| PEPE | 09-13 22:00 | 09-14 00:00 | stop_loss | 2 | -1.49 | +| SHIB | 09-13 23:00 | 09-14 00:00 | stop_loss | 1 | -1.49 | +| ETC | 09-13 22:00 | 09-14 01:00 | stop_loss | 3 | -1.49 | +| INJ | 09-13 22:00 | 09-14 01:00 | stop_loss | 3 | -1.49 | +| SEI | 09-13 19:00 | 09-14 01:00 | stop_loss | 6 | -1.49 | +| SHIB | 09-14 00:00 | 09-14 01:00 | stop_loss | 1 | -1.49 | +| UNI | 09-13 16:00 | 09-14 01:00 | trailing_stop | 9 | -0.68 | +| LTC | 09-14 01:00 | 09-14 02:00 | stop_loss | 1 | -1.49 | +| APT | 09-14 01:00 | 09-14 03:00 | stop_loss | 2 | -1.49 | +| ATOM | 09-14 01:00 | 09-14 03:00 | stop_loss | 2 | -1.49 | +| FET | 09-14 00:00 | 09-14 03:00 | stop_loss | 3 | -1.49 | +| KAS | 09-14 02:00 | 09-14 03:00 | stop_loss | 1 | -1.49 | +| LTC | 09-14 02:00 | 09-14 03:00 | stop_loss | 1 | -1.49 | +| OP | 09-14 01:00 | 09-14 03:00 | stop_loss | 2 | -1.49 | +| UNI | 09-14 01:00 | 09-14 03:00 | stop_loss | 2 | -1.49 | +| ATOM | 09-14 03:00 | 09-14 04:00 | stop_loss | 1 | -1.49 | +| AVAX | 09-13 18:00 | 09-14 04:00 | take_profit | 10 | +1.49 | +| RENDER | 09-14 03:00 | 09-14 04:00 | stop_loss | 1 | -1.49 | +| TIA | 09-14 03:00 | 09-14 04:00 | stop_loss | 1 | -1.49 | +| UNI | 09-14 03:00 | 09-14 04:00 | take_profit | 1 | +1.49 | +| UNI | 09-14 04:00 | 09-14 05:00 | trailing_stop | 1 | -0.16 | +| OP | 09-14 03:00 | 09-14 07:00 | trailing_stop | 4 | -0.59 | +| ATOM | 09-14 04:00 | 09-14 11:00 | stop_loss | 7 | -1.49 | +| ETC | 09-14 03:00 | 09-14 11:00 | stop_loss | 8 | -1.49 | +| FET | 09-14 03:00 | 09-14 11:00 | stop_loss | 8 | -1.49 | +| FIL | 09-14 03:00 | 09-14 11:00 | stop_loss | 8 | -1.49 | +| RENDER | 09-14 04:00 | 09-14 11:00 | stop_loss | 7 | -1.49 | +| SEI | 09-14 10:00 | 09-14 11:00 | stop_loss | 1 | -1.49 | +| TIA | 09-14 04:00 | 09-14 11:00 | stop_loss | 7 | -1.49 | +| TON | 09-14 02:00 | 09-14 11:00 | stop_loss | 9 | -1.49 | +| WIF | 09-14 03:00 | 09-14 11:00 | stop_loss | 8 | -1.49 | +| ARB | 09-14 11:00 | 09-14 12:00 | stop_loss | 1 | -1.49 | +| BONK | 09-14 11:00 | 09-14 12:00 | stop_loss | 1 | -1.49 | +| FIL | 09-14 11:00 | 09-14 12:00 | stop_loss | 1 | -1.49 | +| KAS | 09-14 11:00 | 09-14 12:00 | stop_loss | 1 | -1.49 | +| LTC | 09-14 03:00 | 09-14 12:00 | stop_loss | 9 | -1.49 | +| SUI | 09-14 11:00 | 09-14 12:00 | stop_loss | 1 | -1.49 | +| WIF | 09-14 11:00 | 09-14 12:00 | stop_loss | 1 | -1.49 | +| APT | 09-14 11:00 | 09-14 13:00 | stop_loss | 2 | -1.49 | +| ARB | 09-14 12:00 | 09-14 13:00 | stop_loss | 1 | -1.49 | +| ATOM | 09-14 11:00 | 09-14 13:00 | stop_loss | 2 | -1.49 | +| BONK | 09-14 12:00 | 09-14 13:00 | stop_loss | 1 | -1.49 | +| ETC | 09-14 11:00 | 09-14 13:00 | stop_loss | 2 | -1.49 | +| FET | 09-14 11:00 | 09-14 13:00 | stop_loss | 2 | -1.49 | +| FIL | 09-14 12:00 | 09-14 13:00 | stop_loss | 1 | -1.49 | +| INJ | 09-14 11:00 | 09-14 13:00 | stop_loss | 2 | -1.49 | +| KAS | 09-14 12:00 | 09-14 13:00 | stop_loss | 1 | -1.49 | +| OP | 09-14 11:00 | 09-14 13:00 | stop_loss | 2 | -1.49 | +| PEPE | 09-14 11:00 | 09-14 13:00 | stop_loss | 2 | -1.49 | +| RENDER | 09-14 11:00 | 09-14 13:00 | stop_loss | 2 | -1.49 | +| SEI | 09-14 11:00 | 09-14 13:00 | stop_loss | 2 | -1.49 | +| TIA | 09-14 11:00 | 09-14 13:00 | stop_loss | 2 | -1.49 | +| ARB | 09-14 13:00 | 09-14 14:00 | stop_loss | 1 | -1.49 | +| AVAX | 09-14 13:00 | 09-14 14:00 | stop_loss | 1 | -1.49 | +| BONK | 09-14 13:00 | 09-14 14:00 | stop_loss | 1 | -1.49 | +| ETC | 09-14 13:00 | 09-14 14:00 | stop_loss | 1 | -1.49 | +| FIL | 09-14 13:00 | 09-14 14:00 | stop_loss | 1 | -1.49 | +| NEAR | 09-14 11:00 | 09-14 14:00 | stop_loss | 3 | -1.49 | +| OP | 09-14 13:00 | 09-14 14:00 | stop_loss | 1 | -1.49 | +| PEPE | 09-14 13:00 | 09-14 14:00 | stop_loss | 1 | -1.49 | +| SHIB | 09-14 11:00 | 09-14 14:00 | stop_loss | 3 | -1.49 | +| SUI | 09-14 12:00 | 09-14 14:00 | stop_loss | 2 | -1.49 | +| WIF | 09-14 12:00 | 09-14 14:00 | stop_loss | 2 | -1.49 | +| BONK | 09-14 14:00 | 09-14 15:00 | stop_loss | 1 | -1.49 | +| INJ | 09-14 13:00 | 09-14 15:00 | stop_loss | 2 | -1.49 | +| PEPE | 09-14 14:00 | 09-14 15:00 | stop_loss | 1 | -1.49 | +| RENDER | 09-14 13:00 | 09-14 15:00 | stop_loss | 2 | -1.49 | +| TIA | 09-14 13:00 | 09-14 15:00 | stop_loss | 2 | -1.49 | +| TRX | 09-13 15:00 | 09-14 15:00 | stop_loss | 24 | -1.49 | +| AVAX | 09-14 14:00 | 09-14 16:00 | trailing_stop | 2 | -0.45 | +| BONK | 09-14 15:00 | 09-14 16:00 | trailing_stop | 1 | -0.61 | +| PEPE | 09-14 15:00 | 09-14 16:00 | trailing_stop | 1 | -0.28 | +| WIF | 09-14 14:00 | 09-14 17:00 | take_profit | 3 | +1.49 | +| OP | 09-14 14:00 | 09-14 21:00 | take_profit | 7 | +1.49 | +| SUI | 09-14 14:00 | 09-14 21:00 | take_profit | 7 | +1.49 | +| AVAX | 09-14 19:00 | 09-14 22:00 | take_profit | 3 | +1.49 | +| FIL | 09-14 14:00 | 09-14 22:00 | take_profit | 8 | +1.49 | +| KAS | 09-14 13:00 | 09-14 22:00 | take_profit | 9 | +1.49 | +| APT | 09-14 13:00 | 09-14 23:00 | trailing_stop | 10 | -0.23 | +| ARB | 09-14 14:00 | 09-14 23:00 | trailing_stop | 9 | -0.15 | +| FET | 09-14 13:00 | 09-14 23:00 | trailing_stop | 10 | -0.50 | +| INJ | 09-14 19:00 | 09-14 23:00 | trailing_stop | 4 | -0.44 | +| NEAR | 09-14 14:00 | 09-14 23:00 | trailing_stop | 9 | -0.05 | +| TIA | 09-14 21:00 | 09-14 23:00 | stop_loss | 2 | -1.49 | +| UNI | 09-14 21:00 | 09-14 23:00 | stop_loss | 2 | -1.49 | +| ETC | 09-14 14:00 | 09-15 00:00 | trailing_stop | 10 | -0.57 | +| ARB | 09-14 23:00 | 09-15 01:00 | stop_loss | 2 | -1.49 | +| ATOM | 09-14 13:00 | 09-15 01:00 | stop_loss | 12 | -1.49 | +| BONK | 09-14 23:00 | 09-15 01:00 | stop_loss | 2 | -1.49 | +| KAS | 09-14 23:00 | 09-15 01:00 | stop_loss | 2 | -1.49 | +| OP | 09-14 23:00 | 09-15 01:00 | stop_loss | 2 | -1.49 | +| SEI | 09-14 13:00 | 09-15 01:00 | stop_loss | 12 | -1.49 | +| SHIB | 09-14 14:00 | 09-15 01:00 | trailing_stop | 11 | -0.68 | +| SUI | 09-14 23:00 | 09-15 01:00 | stop_loss | 2 | -1.49 | +| WIF | 09-14 19:00 | 09-15 01:00 | stop_loss | 6 | -1.49 | +| APT | 09-14 23:00 | 09-15 06:00 | trailing_stop | 7 | -0.06 | +| ETC | 09-15 00:00 | 09-15 06:00 | trailing_stop | 6 | -0.53 | +| FET | 09-14 23:00 | 09-15 06:00 | trailing_stop | 7 | -0.05 | +| FIL | 09-14 23:00 | 09-15 06:00 | trailing_stop | 7 | -0.21 | +| RENDER | 09-14 23:00 | 09-15 06:00 | take_profit | 7 | +1.49 | +| TIA | 09-14 23:00 | 09-15 06:00 | trailing_stop | 7 | +0.20 | +| TON | 09-14 13:00 | 09-15 06:00 | trailing_stop | 17 | +0.08 | +| UNI | 09-14 23:00 | 09-15 06:00 | trailing_stop | 7 | -0.52 | +| LTC | 09-14 20:00 | 09-15 07:00 | trailing_stop | 11 | -0.53 | +| ATOM | 09-15 07:00 | 09-15 08:00 | stop_loss | 1 | -1.49 | +| BONK | 09-15 07:00 | 09-15 08:00 | stop_loss | 1 | -1.49 | +| INJ | 09-15 07:00 | 09-15 08:00 | stop_loss | 1 | -1.49 | +| KAS | 09-15 07:00 | 09-15 08:00 | stop_loss | 1 | -1.49 | +| PEPE | 09-15 07:00 | 09-15 08:00 | stop_loss | 1 | -1.49 | +| SEI | 09-15 07:00 | 09-15 08:00 | stop_loss | 1 | -1.49 | +| SHIB | 09-15 07:00 | 09-15 08:00 | stop_loss | 1 | -1.49 | +| SUI | 09-15 07:00 | 09-15 08:00 | stop_loss | 1 | -1.49 | +| TIA | 09-15 07:00 | 09-15 08:00 | stop_loss | 1 | -1.49 | +| TRX | 09-14 15:00 | 09-15 08:00 | trailing_stop | 17 | -0.53 | +| UNI | 09-15 07:00 | 09-15 08:00 | stop_loss | 1 | -1.49 | +| WIF | 09-15 07:00 | 09-15 08:00 | stop_loss | 1 | -1.49 | +| ARB | 09-15 08:00 | 09-15 09:00 | trailing_stop | 1 | -0.66 | +| BONK | 09-15 08:00 | 09-15 09:00 | trailing_stop | 1 | -0.14 | +| FET | 09-15 08:00 | 09-15 09:00 | trailing_stop | 1 | -0.61 | +| FIL | 09-15 08:00 | 09-15 09:00 | trailing_stop | 1 | -0.55 | +| INJ | 09-15 08:00 | 09-15 09:00 | trailing_stop | 1 | -0.53 | +| KAS | 09-15 08:00 | 09-15 09:00 | trailing_stop | 1 | -0.60 | +| RENDER | 09-15 08:00 | 09-15 09:00 | trailing_stop | 1 | -0.38 | +| TIA | 09-15 08:00 | 09-15 09:00 | trailing_stop | 1 | -0.41 | +| UNI | 09-15 08:00 | 09-15 09:00 | trailing_stop | 1 | -0.44 | +| WIF | 09-15 08:00 | 09-15 09:00 | trailing_stop | 1 | -0.57 | +| ARB | 09-15 09:00 | 09-15 10:00 | stop_loss | 1 | -1.49 | +| BONK | 09-15 09:00 | 09-15 10:00 | stop_loss | 1 | -1.49 | +| OP | 09-15 08:00 | 09-15 12:00 | trailing_stop | 4 | -0.68 | +| BONK | 09-15 10:00 | 09-15 13:00 | stop_loss | 3 | -1.49 | +| FIL | 09-15 10:00 | 09-15 13:00 | stop_loss | 3 | -1.49 | +| PEPE | 09-15 08:00 | 09-15 14:00 | stop_loss | 6 | -1.49 | +| TIA | 09-15 10:00 | 09-15 14:00 | stop_loss | 4 | -1.49 | +| WIF | 09-15 09:00 | 09-15 14:00 | stop_loss | 5 | -1.49 | +| APT | 09-15 08:00 | 09-15 15:00 | stop_loss | 7 | -1.49 | +| ETC | 09-15 08:00 | 09-15 15:00 | stop_loss | 7 | -1.49 | +| FET | 09-15 10:00 | 09-15 15:00 | stop_loss | 5 | -1.49 | +| NEAR | 09-15 08:00 | 09-15 15:00 | trailing_stop | 7 | -0.48 | +| SEI | 09-15 08:00 | 09-15 15:00 | stop_loss | 7 | -1.49 | +| SUI | 09-15 08:00 | 09-15 15:00 | stop_loss | 7 | -1.49 | +| KAS | 09-15 09:00 | 09-15 16:00 | stop_loss | 7 | -1.49 | +| TRX | 09-15 08:00 | 09-15 16:00 | stop_loss | 8 | -1.49 | +| BONK | 09-15 19:00 | 09-15 20:00 | trailing_stop | 1 | -0.67 | +| SEI | 09-15 21:00 | 09-16 01:00 | stop_loss | 4 | -1.49 | +| ARB | 09-15 21:00 | 09-16 02:00 | stop_loss | 5 | -1.49 | +| ATOM | 09-15 08:00 | 09-16 03:00 | stop_loss | 19 | -1.49 | +| NEAR | 09-15 20:00 | 09-16 03:00 | stop_loss | 7 | -1.49 | +| APT | 09-15 20:00 | 09-16 04:00 | stop_loss | 8 | -1.49 | +| FIL | 09-15 20:00 | 09-16 04:00 | stop_loss | 8 | -1.49 | +| OP | 09-15 21:00 | 09-16 04:00 | stop_loss | 7 | -1.49 | +| RENDER | 09-15 20:00 | 09-16 04:00 | stop_loss | 8 | -1.49 | +| SUI | 09-15 21:00 | 09-16 04:00 | stop_loss | 7 | -1.49 | +| LTC | 09-15 08:00 | 09-16 07:00 | take_profit | 23 | +1.49 | +| KAS | 09-15 19:00 | 09-16 08:00 | take_profit | 13 | +1.49 | +| SHIB | 09-15 08:00 | 09-16 13:00 | stop_loss | 29 | -1.49 | +| TRX | 09-15 20:00 | 09-16 15:00 | stop_loss | 19 | -1.49 | +| TON | 09-15 19:00 | 09-17 01:00 | trailing_stop | 30 | -0.35 | +| AVAX | 09-17 00:00 | 09-17 04:00 | stop_loss | 4 | -1.49 | +| SEI | 09-17 03:00 | 09-17 08:00 | stop_loss | 5 | -1.49 | +| FET | 09-17 03:00 | 09-17 09:00 | stop_loss | 6 | -1.49 | +| LTC | 09-17 04:00 | 09-17 12:00 | trailing_stop | 8 | -0.59 | +| FIL | 09-17 09:00 | 09-17 14:00 | stop_loss | 5 | -1.49 | +| TON | 09-17 01:00 | 09-17 14:00 | stop_loss | 13 | -1.49 | +| WIF | 09-17 12:00 | 09-17 14:00 | stop_loss | 2 | -1.49 | +| PEPE | 09-17 14:00 | 09-17 16:00 | stop_loss | 2 | -1.49 | +| SEI | 09-17 08:00 | 09-17 16:00 | stop_loss | 8 | -1.49 | +| TON | 09-17 15:00 | 09-17 16:00 | stop_loss | 1 | -1.49 | +| BONK | 09-17 09:00 | 09-17 17:00 | take_profit | 8 | +1.49 | +| FET | 09-17 10:00 | 09-17 17:00 | take_profit | 7 | +1.49 | +| PEPE | 09-17 16:00 | 09-17 17:00 | stop_loss | 1 | -1.49 | +| INJ | 09-17 14:00 | 09-17 18:00 | take_profit | 4 | +1.49 | +| ATOM | 09-17 09:00 | 09-17 19:00 | trailing_stop | 10 | -0.16 | +| TON | 09-17 16:00 | 09-17 23:00 | take_profit | 7 | +1.49 | +| TRX | 09-16 15:00 | 09-18 13:00 | take_profit | 46 | +1.49 | +| BONK | 09-18 12:00 | 09-18 14:00 | trailing_stop | 2 | -0.39 | +| KAS | 09-19 03:00 | 09-19 04:00 | stop_loss | 1 | -1.49 | +| BONK | 09-19 05:00 | 09-19 06:00 | stop_loss | 1 | -1.49 | +| KAS | 09-19 04:00 | 09-19 06:00 | stop_loss | 2 | -1.49 | +| SHIB | 09-19 03:00 | 09-19 06:00 | stop_loss | 3 | -1.49 | +| SUI | 09-19 05:00 | 09-19 06:00 | stop_loss | 1 | -1.49 | +| RENDER | 09-19 06:00 | 09-19 09:00 | take_profit | 3 | +1.49 | +| UNI | 09-19 03:00 | 09-19 09:00 | stop_loss | 6 | -1.49 | +| ARB | 09-19 08:00 | 09-19 10:00 | stop_loss | 2 | -1.49 | +| SUI | 09-19 06:00 | 09-19 10:00 | stop_loss | 4 | -1.49 | +| BONK | 09-19 06:00 | 09-19 11:00 | stop_loss | 5 | -1.49 | +| ETC | 09-19 06:00 | 09-19 11:00 | stop_loss | 5 | -1.49 | +| PEPE | 09-19 06:00 | 09-19 11:00 | stop_loss | 5 | -1.49 | +| SEI | 09-19 10:00 | 09-19 11:00 | stop_loss | 1 | -1.49 | +| SHIB | 09-19 06:00 | 09-19 11:00 | stop_loss | 5 | -1.49 | +| TIA | 09-19 10:00 | 09-19 11:00 | stop_loss | 1 | -1.49 | +| ARB | 09-19 11:00 | 09-19 14:00 | stop_loss | 3 | -1.49 | +| INJ | 09-19 11:00 | 09-19 14:00 | trailing_stop | 3 | -0.65 | +| KAS | 09-19 06:00 | 09-19 14:00 | stop_loss | 8 | -1.49 | +| LTC | 09-19 10:00 | 09-19 14:00 | stop_loss | 4 | -1.49 | +| OP | 09-19 11:00 | 09-19 14:00 | stop_loss | 3 | -1.49 | +| SUI | 09-19 11:00 | 09-19 14:00 | stop_loss | 3 | -1.49 | +| TIA | 09-19 11:00 | 09-19 14:00 | stop_loss | 3 | -1.49 | +| WIF | 09-19 12:00 | 09-19 14:00 | stop_loss | 2 | -1.49 | +| ATOM | 09-19 11:00 | 09-19 15:00 | stop_loss | 4 | -1.49 | +| AVAX | 09-19 11:00 | 09-19 15:00 | stop_loss | 4 | -1.49 | +| FET | 09-19 11:00 | 09-19 15:00 | stop_loss | 4 | -1.49 | +| FIL | 09-19 11:00 | 09-19 15:00 | stop_loss | 4 | -1.49 | +| TIA | 09-19 14:00 | 09-19 15:00 | stop_loss | 1 | -1.49 | +| TON | 09-19 09:00 | 09-19 15:00 | stop_loss | 6 | -1.49 | +| WIF | 09-19 14:00 | 09-19 15:00 | stop_loss | 1 | -1.49 | +| APT | 09-19 11:00 | 09-19 18:00 | stop_loss | 7 | -1.49 | +| TIA | 09-19 15:00 | 09-19 18:00 | stop_loss | 3 | -1.49 | +| WIF | 09-19 15:00 | 09-19 18:00 | stop_loss | 3 | -1.49 | +| NEAR | 09-19 17:00 | 09-19 21:00 | take_profit | 4 | +1.49 | +| ATOM | 09-19 17:00 | 09-19 23:00 | stop_loss | 6 | -1.49 | +| KAS | 09-19 18:00 | 09-19 23:00 | trailing_stop | 5 | -0.33 | +| NEAR | 09-19 22:00 | 09-19 23:00 | stop_loss | 1 | -1.49 | +| NEAR | 09-19 23:00 | 09-20 01:00 | stop_loss | 2 | -1.49 | +| KAS | 09-19 23:00 | 09-20 02:00 | stop_loss | 3 | -1.49 | +| SEI | 09-19 23:00 | 09-20 02:00 | stop_loss | 3 | -1.49 | +| SHIB | 09-20 00:00 | 09-20 02:00 | stop_loss | 2 | -1.49 | +| WIF | 09-19 23:00 | 09-20 02:00 | stop_loss | 3 | -1.49 | +| APT | 09-20 03:00 | 09-20 05:00 | trailing_stop | 2 | -0.03 | +| LTC | 09-19 18:00 | 09-20 09:00 | trailing_stop | 15 | -0.67 | +| AVAX | 09-20 11:00 | 09-20 14:00 | take_profit | 3 | +1.49 | +| PEPE | 09-20 10:00 | 09-20 14:00 | trailing_stop | 4 | -0.21 | +| BONK | 09-20 09:00 | 09-20 17:00 | stop_loss | 8 | -1.49 | +| KAS | 09-21 00:00 | 09-21 08:00 | stop_loss | 8 | -1.49 | +| AVAX | 09-21 08:00 | 09-21 09:00 | trailing_stop | 1 | -0.37 | +| ETC | 09-20 03:00 | 09-21 09:00 | stop_loss | 30 | -1.49 | +| UNI | 09-19 23:00 | 09-21 09:00 | stop_loss | 34 | -1.49 | +| NEAR | 09-21 06:00 | 09-21 10:00 | stop_loss | 4 | -1.49 | +| TRX | 09-19 06:00 | 09-21 12:00 | stop_loss | 54 | -1.49 | +| WIF | 09-21 09:00 | 09-21 12:00 | take_profit | 3 | +1.49 | +| BONK | 09-21 10:00 | 09-21 15:00 | trailing_stop | 5 | -0.53 | +| OP | 09-21 09:00 | 09-21 15:00 | stop_loss | 6 | -1.49 | +| ARB | 09-21 09:00 | 09-21 16:00 | stop_loss | 7 | -1.49 | +| FET | 09-21 10:00 | 09-21 16:00 | trailing_stop | 6 | -0.61 | +| FIL | 09-21 10:00 | 09-21 16:00 | stop_loss | 6 | -1.49 | +| INJ | 09-21 09:00 | 09-21 16:00 | stop_loss | 7 | -1.49 | +| KAS | 09-21 08:00 | 09-21 16:00 | stop_loss | 8 | -1.49 | +| PEPE | 09-21 09:00 | 09-21 16:00 | stop_loss | 7 | -1.49 | +| SUI | 09-21 10:00 | 09-21 16:00 | trailing_stop | 6 | -0.53 | +| TON | 09-20 08:00 | 09-21 16:00 | stop_loss | 32 | -1.49 | +| RENDER | 09-21 16:00 | 09-21 17:00 | trailing_stop | 1 | -0.64 | +| TIA | 09-21 09:00 | 09-21 17:00 | stop_loss | 8 | -1.49 | +| BONK | 09-21 16:00 | 09-21 22:00 | stop_loss | 6 | -1.49 | +| PEPE | 09-21 19:00 | 09-21 22:00 | stop_loss | 3 | -1.49 | +| UNI | 09-21 10:00 | 09-21 22:00 | trailing_stop | 12 | -0.66 | +| ATOM | 09-21 19:00 | 09-21 23:00 | stop_loss | 4 | -1.49 | +| ARB | 09-21 16:00 | 09-22 00:00 | stop_loss | 8 | -1.49 | +| BONK | 09-21 23:00 | 09-22 00:00 | stop_loss | 1 | -1.49 | +| ETC | 09-21 09:00 | 09-22 00:00 | stop_loss | 15 | -1.49 | +| FET | 09-21 16:00 | 09-22 00:00 | stop_loss | 8 | -1.49 | +| FIL | 09-21 16:00 | 09-22 00:00 | stop_loss | 8 | -1.49 | +| LTC | 09-21 23:00 | 09-22 00:00 | stop_loss | 1 | -1.49 | +| OP | 09-21 16:00 | 09-22 00:00 | stop_loss | 8 | -1.49 | +| SEI | 09-21 10:00 | 09-22 00:00 | stop_loss | 14 | -1.49 | +| SHIB | 09-21 16:00 | 09-22 00:00 | stop_loss | 8 | -1.49 | +| TON | 09-21 16:00 | 09-22 00:00 | stop_loss | 8 | -1.49 | +| TRX | 09-21 12:00 | 09-22 00:00 | stop_loss | 12 | -1.49 | +| APT | 09-22 00:00 | 09-22 02:00 | stop_loss | 2 | -1.49 | +| ARB | 09-22 00:00 | 09-22 02:00 | stop_loss | 2 | -1.49 | +| ATOM | 09-22 00:00 | 09-22 02:00 | stop_loss | 2 | -1.49 | +| AVAX | 09-22 00:00 | 09-22 02:00 | stop_loss | 2 | -1.49 | +| BONK | 09-22 00:00 | 09-22 02:00 | stop_loss | 2 | -1.49 | +| ETC | 09-22 00:00 | 09-22 02:00 | stop_loss | 2 | -1.49 | +| FET | 09-22 00:00 | 09-22 02:00 | stop_loss | 2 | -1.49 | +| FIL | 09-22 00:00 | 09-22 02:00 | stop_loss | 2 | -1.49 | +| INJ | 09-22 00:00 | 09-22 02:00 | stop_loss | 2 | -1.49 | +| KAS | 09-22 00:00 | 09-22 02:00 | stop_loss | 2 | -1.49 | +| LTC | 09-22 00:00 | 09-22 02:00 | stop_loss | 2 | -1.49 | +| OP | 09-22 00:00 | 09-22 02:00 | stop_loss | 2 | -1.49 | +| PEPE | 09-22 00:00 | 09-22 02:00 | stop_loss | 2 | -1.49 | +| SEI | 09-22 00:00 | 09-22 02:00 | stop_loss | 2 | -1.49 | +| SHIB | 09-22 00:00 | 09-22 02:00 | stop_loss | 2 | -1.49 | +| SUI | 09-22 00:00 | 09-22 02:00 | stop_loss | 2 | -1.49 | +| TIA | 09-22 00:00 | 09-22 02:00 | stop_loss | 2 | -1.49 | +| TON | 09-22 00:00 | 09-22 02:00 | stop_loss | 2 | -1.49 | +| UNI | 09-22 00:00 | 09-22 02:00 | stop_loss | 2 | -1.49 | +| WIF | 09-22 00:00 | 09-22 02:00 | stop_loss | 2 | -1.49 | +| KAS | 09-22 02:00 | 09-22 03:00 | stop_loss | 1 | -1.49 | +| APT | 09-22 02:00 | 09-22 05:00 | stop_loss | 3 | -1.49 | +| ARB | 09-22 02:00 | 09-22 05:00 | stop_loss | 3 | -1.49 | +| ATOM | 09-22 02:00 | 09-22 05:00 | stop_loss | 3 | -1.49 | +| AVAX | 09-22 02:00 | 09-22 05:00 | stop_loss | 3 | -1.49 | +| BONK | 09-22 02:00 | 09-22 05:00 | stop_loss | 3 | -1.49 | +| ETC | 09-22 02:00 | 09-22 05:00 | stop_loss | 3 | -1.49 | +| FET | 09-22 02:00 | 09-22 05:00 | stop_loss | 3 | -1.49 | +| FIL | 09-22 02:00 | 09-22 05:00 | stop_loss | 3 | -1.49 | +| INJ | 09-22 02:00 | 09-22 05:00 | stop_loss | 3 | -1.49 | +| KAS | 09-22 03:00 | 09-22 05:00 | stop_loss | 2 | -1.49 | +| LTC | 09-22 02:00 | 09-22 05:00 | stop_loss | 3 | -1.49 | +| NEAR | 09-22 02:00 | 09-22 05:00 | stop_loss | 3 | -1.49 | +| OP | 09-22 02:00 | 09-22 05:00 | stop_loss | 3 | -1.49 | +| PEPE | 09-22 02:00 | 09-22 05:00 | stop_loss | 3 | -1.49 | +| RENDER | 09-22 03:00 | 09-22 05:00 | stop_loss | 2 | -1.49 | +| SEI | 09-22 02:00 | 09-22 05:00 | stop_loss | 3 | -1.49 | +| SHIB | 09-22 02:00 | 09-22 05:00 | stop_loss | 3 | -1.49 | +| SUI | 09-22 02:00 | 09-22 05:00 | stop_loss | 3 | -1.49 | +| TIA | 09-22 02:00 | 09-22 05:00 | stop_loss | 3 | -1.49 | +| TON | 09-22 02:00 | 09-22 05:00 | stop_loss | 3 | -1.49 | +| UNI | 09-22 02:00 | 09-22 05:00 | stop_loss | 3 | -1.49 | +| WIF | 09-22 02:00 | 09-22 05:00 | stop_loss | 3 | -1.49 | +| APT | 09-22 05:00 | 09-22 06:00 | stop_loss | 1 | -1.49 | +| ARB | 09-22 05:00 | 09-22 06:00 | stop_loss | 1 | -1.49 | +| ATOM | 09-22 05:00 | 09-22 06:00 | stop_loss | 1 | -1.49 | +| AVAX | 09-22 05:00 | 09-22 06:00 | stop_loss | 1 | -1.49 | +| BONK | 09-22 05:00 | 09-22 06:00 | stop_loss | 1 | -1.49 | +| ETC | 09-22 05:00 | 09-22 06:00 | stop_loss | 1 | -1.49 | +| FET | 09-22 05:00 | 09-22 06:00 | stop_loss | 1 | -1.49 | +| FIL | 09-22 05:00 | 09-22 06:00 | stop_loss | 1 | -1.49 | +| INJ | 09-22 05:00 | 09-22 06:00 | stop_loss | 1 | -1.49 | +| KAS | 09-22 05:00 | 09-22 06:00 | stop_loss | 1 | -1.49 | +| LTC | 09-22 05:00 | 09-22 06:00 | stop_loss | 1 | -1.49 | +| NEAR | 09-22 05:00 | 09-22 06:00 | stop_loss | 1 | -1.49 | +| OP | 09-22 05:00 | 09-22 06:00 | stop_loss | 1 | -1.49 | +| PEPE | 09-22 05:00 | 09-22 06:00 | stop_loss | 1 | -1.49 | +| RENDER | 09-22 05:00 | 09-22 06:00 | stop_loss | 1 | -1.49 | +| SEI | 09-22 05:00 | 09-22 06:00 | stop_loss | 1 | -1.49 | +| SHIB | 09-22 05:00 | 09-22 06:00 | stop_loss | 1 | -1.49 | +| SUI | 09-22 05:00 | 09-22 06:00 | stop_loss | 1 | -1.49 | +| TIA | 09-22 05:00 | 09-22 06:00 | stop_loss | 1 | -1.49 | +| TON | 09-22 05:00 | 09-22 06:00 | stop_loss | 1 | -1.49 | +| TRX | 09-22 00:00 | 09-22 06:00 | stop_loss | 6 | -1.49 | +| UNI | 09-22 05:00 | 09-22 06:00 | stop_loss | 1 | -1.49 | +| WIF | 09-22 05:00 | 09-22 06:00 | stop_loss | 1 | -1.49 | +| AVAX | 09-22 06:00 | 09-22 07:00 | stop_loss | 1 | -1.49 | +| BONK | 09-22 06:00 | 09-22 07:00 | stop_loss | 1 | -1.49 | +| LTC | 09-22 06:00 | 09-22 07:00 | stop_loss | 1 | -1.49 | +| NEAR | 09-22 06:00 | 09-22 07:00 | stop_loss | 1 | -1.49 | +| OP | 09-22 06:00 | 09-22 07:00 | stop_loss | 1 | -1.49 | +| RENDER | 09-22 06:00 | 09-22 07:00 | stop_loss | 1 | -1.49 | +| SEI | 09-22 06:00 | 09-22 07:00 | stop_loss | 1 | -1.49 | +| SUI | 09-22 06:00 | 09-22 07:00 | stop_loss | 1 | -1.49 | +| TON | 09-22 06:00 | 09-22 07:00 | stop_loss | 1 | -1.49 | +| UNI | 09-22 06:00 | 09-22 07:00 | stop_loss | 1 | -1.49 | +| WIF | 09-22 06:00 | 09-22 07:00 | stop_loss | 1 | -1.49 | +| APT | 09-22 06:00 | 09-22 08:00 | stop_loss | 2 | -1.49 | +| ATOM | 09-22 06:00 | 09-22 08:00 | stop_loss | 2 | -1.49 | +| AVAX | 09-22 07:00 | 09-22 08:00 | trailing_stop | 1 | -0.37 | +| FET | 09-22 06:00 | 09-22 08:00 | stop_loss | 2 | -1.49 | +| FIL | 09-22 06:00 | 09-22 08:00 | stop_loss | 2 | -1.49 | +| INJ | 09-22 06:00 | 09-22 08:00 | stop_loss | 2 | -1.49 | +| NEAR | 09-22 07:00 | 09-22 08:00 | stop_loss | 1 | -1.49 | +| PEPE | 09-22 06:00 | 09-22 08:00 | stop_loss | 2 | -1.49 | +| RENDER | 09-22 07:00 | 09-22 08:00 | stop_loss | 1 | -1.49 | +| SEI | 09-22 07:00 | 09-22 08:00 | trailing_stop | 1 | -0.43 | +| SHIB | 09-22 06:00 | 09-22 08:00 | stop_loss | 2 | -1.49 | +| TIA | 09-22 06:00 | 09-22 08:00 | stop_loss | 2 | -1.49 | +| ARB | 09-22 06:00 | 09-22 09:00 | stop_loss | 3 | -1.49 | +| KAS | 09-22 06:00 | 09-22 09:00 | stop_loss | 3 | -1.49 | +| OP | 09-22 07:00 | 09-22 09:00 | stop_loss | 2 | -1.49 | +| RENDER | 09-22 08:00 | 09-22 09:00 | stop_loss | 1 | -1.49 | +| UNI | 09-22 07:00 | 09-22 09:00 | stop_loss | 2 | -1.49 | +| WIF | 09-22 07:00 | 09-22 09:00 | stop_loss | 2 | -1.49 | +| ETC | 09-22 06:00 | 09-22 10:00 | stop_loss | 4 | -1.49 | +| RENDER | 09-22 09:00 | 09-22 10:00 | take_profit | 1 | +1.49 | +| TRX | 09-22 06:00 | 09-22 11:00 | trailing_stop | 5 | -0.23 | +| AVAX | 09-22 12:00 | 09-22 13:00 | trailing_stop | 1 | -0.69 | +| TON | 09-22 07:00 | 09-22 13:00 | take_profit | 6 | +1.49 | +| NEAR | 09-22 13:00 | 09-22 14:00 | stop_loss | 1 | -1.49 | +| SEI | 09-22 13:00 | 09-22 14:00 | stop_loss | 1 | -1.49 | +| BONK | 09-22 14:00 | 09-22 15:00 | stop_loss | 1 | -1.49 | +| SUI | 09-22 07:00 | 09-22 15:00 | trailing_stop | 8 | -0.14 | +| ATOM | 09-22 08:00 | 09-22 16:00 | stop_loss | 8 | -1.49 | +| NEAR | 09-22 14:00 | 09-22 16:00 | stop_loss | 2 | -1.49 | +| SEI | 09-22 14:00 | 09-22 16:00 | stop_loss | 2 | -1.49 | +| TON | 09-22 14:00 | 09-22 16:00 | stop_loss | 2 | -1.49 | +| BONK | 09-22 15:00 | 09-22 17:00 | stop_loss | 2 | -1.49 | +| ETC | 09-22 14:00 | 09-22 17:00 | stop_loss | 3 | -1.49 | +| RENDER | 09-22 14:00 | 09-22 17:00 | stop_loss | 3 | -1.49 | +| SHIB | 09-22 14:00 | 09-22 19:00 | stop_loss | 5 | -1.49 | +| SUI | 09-22 15:00 | 09-22 19:00 | stop_loss | 4 | -1.49 | +| FET | 09-22 14:00 | 09-22 23:00 | take_profit | 9 | +1.49 | +| ARB | 09-23 02:00 | 09-23 03:00 | take_profit | 1 | +1.49 | +| LTC | 09-22 07:00 | 09-23 03:00 | stop_loss | 20 | -1.49 | +| SEI | 09-23 02:00 | 09-23 03:00 | take_profit | 1 | +1.49 | +| RENDER | 09-23 02:00 | 09-23 05:00 | take_profit | 3 | +1.49 | +| BONK | 09-23 20:00 | 09-23 23:00 | stop_loss | 3 | -1.49 | +| NEAR | 09-23 20:00 | 09-23 23:00 | stop_loss | 3 | -1.49 | +| AVAX | 09-23 22:00 | 09-24 00:00 | take_profit | 2 | +1.49 | +| OP | 09-23 23:00 | 09-24 01:00 | take_profit | 2 | +1.49 | +| SEI | 09-23 22:00 | 09-24 01:00 | trailing_stop | 3 | -0.57 | +| WIF | 09-23 20:00 | 09-24 01:00 | trailing_stop | 5 | -0.69 | +| ATOM | 09-23 23:00 | 09-24 03:00 | trailing_stop | 4 | -0.41 | +| UNI | 09-23 17:00 | 09-24 03:00 | stop_loss | 10 | -1.49 | +| APT | 09-24 03:00 | 09-24 04:00 | stop_loss | 1 | -1.49 | +| ARB | 09-24 03:00 | 09-24 04:00 | stop_loss | 1 | -1.49 | +| ATOM | 09-24 03:00 | 09-24 04:00 | stop_loss | 1 | -1.49 | +| BONK | 09-24 03:00 | 09-24 04:00 | stop_loss | 1 | -1.49 | +| ETC | 09-24 03:00 | 09-24 04:00 | stop_loss | 1 | -1.49 | +| SEI | 09-24 03:00 | 09-24 04:00 | stop_loss | 1 | -1.49 | +| UNI | 09-24 03:00 | 09-24 04:00 | stop_loss | 1 | -1.49 | +| WIF | 09-24 03:00 | 09-24 04:00 | stop_loss | 1 | -1.49 | +| SHIB | 09-24 03:00 | 09-24 14:00 | take_profit | 11 | +1.49 | +| ARB | 09-24 20:00 | 09-24 21:00 | stop_loss | 1 | -1.49 | +| AVAX | 09-24 20:00 | 09-24 21:00 | stop_loss | 1 | -1.49 | +| OP | 09-24 19:00 | 09-24 21:00 | stop_loss | 2 | -1.49 | +| AVAX | 09-24 21:00 | 09-24 22:00 | stop_loss | 1 | -1.49 | +| ETC | 09-24 20:00 | 09-24 23:00 | stop_loss | 3 | -1.49 | +| AVAX | 09-24 22:00 | 09-25 00:00 | stop_loss | 2 | -1.49 | +| UNI | 09-24 21:00 | 09-25 00:00 | stop_loss | 3 | -1.49 | +| ARB | 09-24 21:00 | 09-25 01:00 | stop_loss | 4 | -1.49 | +| OP | 09-24 21:00 | 09-25 01:00 | stop_loss | 4 | -1.49 | +| RENDER | 09-25 00:00 | 09-25 01:00 | stop_loss | 1 | -1.49 | +| WIF | 09-25 00:00 | 09-25 01:00 | stop_loss | 1 | -1.49 | +| ATOM | 09-24 23:00 | 09-25 02:00 | stop_loss | 3 | -1.49 | +| INJ | 09-25 00:00 | 09-25 02:00 | stop_loss | 2 | -1.49 | +| SUI | 09-25 00:00 | 09-25 02:00 | stop_loss | 2 | -1.49 | +| TIA | 09-25 00:00 | 09-25 02:00 | stop_loss | 2 | -1.49 | +| APT | 09-25 00:00 | 09-25 03:00 | stop_loss | 3 | -1.49 | +| AVAX | 09-25 00:00 | 09-25 03:00 | stop_loss | 3 | -1.49 | +| ETC | 09-24 23:00 | 09-25 03:00 | stop_loss | 4 | -1.49 | +| FET | 09-25 00:00 | 09-25 03:00 | stop_loss | 3 | -1.49 | +| FIL | 09-24 21:00 | 09-25 03:00 | stop_loss | 6 | -1.49 | +| KAS | 09-25 01:00 | 09-25 03:00 | stop_loss | 2 | -1.49 | +| LTC | 09-25 00:00 | 09-25 03:00 | stop_loss | 3 | -1.49 | +| PEPE | 09-25 01:00 | 09-25 03:00 | stop_loss | 2 | -1.49 | +| RENDER | 09-25 01:00 | 09-25 03:00 | stop_loss | 2 | -1.49 | +| SEI | 09-25 00:00 | 09-25 03:00 | stop_loss | 3 | -1.49 | +| SHIB | 09-25 00:00 | 09-25 03:00 | stop_loss | 3 | -1.49 | +| UNI | 09-25 00:00 | 09-25 03:00 | stop_loss | 3 | -1.49 | +| WIF | 09-25 01:00 | 09-25 03:00 | stop_loss | 2 | -1.49 | +| BONK | 09-25 01:00 | 09-25 04:00 | stop_loss | 3 | -1.49 | +| INJ | 09-25 03:00 | 09-25 04:00 | stop_loss | 1 | -1.49 | +| NEAR | 09-25 03:00 | 09-25 04:00 | stop_loss | 1 | -1.49 | +| TON | 09-25 00:00 | 09-25 04:00 | stop_loss | 4 | -1.49 | +| WIF | 09-25 03:00 | 09-25 04:00 | stop_loss | 1 | -1.49 | +| KAS | 09-25 04:00 | 09-25 05:00 | stop_loss | 1 | -1.49 | +| RENDER | 09-25 04:00 | 09-25 05:00 | trailing_stop | 1 | -0.70 | +| TIA | 09-25 04:00 | 09-25 05:00 | trailing_stop | 1 | -0.44 | +| UNI | 09-25 04:00 | 09-25 05:00 | trailing_stop | 1 | -0.71 | +| AVAX | 09-25 04:00 | 09-25 06:00 | stop_loss | 2 | -1.49 | +| KAS | 09-25 05:00 | 09-25 06:00 | stop_loss | 1 | -1.49 | +| NEAR | 09-25 04:00 | 09-25 06:00 | stop_loss | 2 | -1.49 | +| RENDER | 09-25 05:00 | 09-25 06:00 | stop_loss | 1 | -1.49 | +| INJ | 09-25 04:00 | 09-25 08:00 | stop_loss | 4 | -1.49 | +| BONK | 09-25 04:00 | 09-25 09:00 | stop_loss | 5 | -1.49 | +| KAS | 09-25 06:00 | 09-25 09:00 | take_profit | 3 | +1.49 | +| NEAR | 09-25 06:00 | 09-25 09:00 | take_profit | 3 | +1.49 | +| PEPE | 09-25 04:00 | 09-25 09:00 | stop_loss | 5 | -1.49 | +| SUI | 09-25 04:00 | 09-25 09:00 | stop_loss | 5 | -1.49 | +| TRX | 09-23 11:00 | 09-25 10:00 | stop_loss | 47 | -1.49 | +| APT | 09-25 04:00 | 09-25 11:00 | stop_loss | 7 | -1.49 | +| ARB | 09-25 04:00 | 09-25 11:00 | stop_loss | 7 | -1.49 | +| SEI | 09-25 04:00 | 09-25 11:00 | stop_loss | 7 | -1.49 | +| WIF | 09-25 04:00 | 09-25 11:00 | stop_loss | 7 | -1.49 | +| ATOM | 09-25 04:00 | 09-25 12:00 | stop_loss | 8 | -1.49 | +| ETC | 09-25 04:00 | 09-25 12:00 | stop_loss | 8 | -1.49 | +| FET | 09-25 04:00 | 09-25 12:00 | stop_loss | 8 | -1.49 | +| FIL | 09-25 04:00 | 09-25 12:00 | stop_loss | 8 | -1.49 | +| LTC | 09-25 04:00 | 09-25 12:00 | stop_loss | 8 | -1.49 | +| RENDER | 09-25 06:00 | 09-25 12:00 | stop_loss | 6 | -1.49 | +| SHIB | 09-25 04:00 | 09-25 12:00 | stop_loss | 8 | -1.49 | +| TON | 09-25 04:00 | 09-25 12:00 | stop_loss | 8 | -1.49 | +| KAS | 09-25 13:00 | 09-25 14:00 | trailing_stop | 1 | -0.43 | +| NEAR | 09-25 14:00 | 09-25 15:00 | stop_loss | 1 | -1.49 | +| NEAR | 09-25 15:00 | 09-25 16:00 | stop_loss | 1 | -1.49 | +| ARB | 09-25 16:00 | 09-25 17:00 | stop_loss | 1 | -1.49 | +| ATOM | 09-25 16:00 | 09-25 17:00 | stop_loss | 1 | -1.49 | +| FET | 09-25 16:00 | 09-25 17:00 | stop_loss | 1 | -1.49 | +| FIL | 09-25 16:00 | 09-25 17:00 | stop_loss | 1 | -1.49 | +| LTC | 09-25 16:00 | 09-25 17:00 | stop_loss | 1 | -1.49 | +| OP | 09-25 16:00 | 09-25 17:00 | stop_loss | 1 | -1.49 | +| PEPE | 09-25 16:00 | 09-25 17:00 | stop_loss | 1 | -1.49 | +| RENDER | 09-25 16:00 | 09-25 17:00 | stop_loss | 1 | -1.49 | +| SHIB | 09-25 16:00 | 09-25 17:00 | stop_loss | 1 | -1.49 | +| TIA | 09-25 16:00 | 09-25 17:00 | stop_loss | 1 | -1.49 | +| TON | 09-25 16:00 | 09-25 17:00 | stop_loss | 1 | -1.49 | +| UNI | 09-25 16:00 | 09-25 17:00 | stop_loss | 1 | -1.49 | +| APT | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| ARB | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| ATOM | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| BONK | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| ETC | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| FET | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| FIL | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| INJ | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| KAS | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| LTC | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| OP | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| PEPE | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| RENDER | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| SEI | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| SHIB | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| SUI | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| TIA | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| TON | 09-25 17:00 | 09-25 18:00 | stop_loss | 1 | -1.49 | +| TRX | 09-25 10:00 | 09-25 18:00 | trailing_stop | 8 | -0.45 | +| UNI | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| WIF | 09-25 17:00 | 09-25 18:00 | take_profit | 1 | +1.49 | +| NEAR | 09-25 23:00 | 09-26 00:00 | stop_loss | 1 | -1.49 | +| UNI | 09-26 14:00 | 09-26 16:00 | take_profit | 2 | +1.49 | +| AVAX | 09-27 07:00 | 09-27 09:00 | stop_loss | 2 | -1.49 | +| BONK | 09-27 07:00 | 09-27 09:00 | stop_loss | 2 | -1.49 | +| PEPE | 09-27 07:00 | 09-27 09:00 | stop_loss | 2 | -1.49 | +| RENDER | 09-27 07:00 | 09-27 09:00 | stop_loss | 2 | -1.49 | +| SUI | 09-27 07:00 | 09-27 09:00 | stop_loss | 2 | -1.49 | +| WIF | 09-27 07:00 | 09-27 09:00 | stop_loss | 2 | -1.49 | +| TON | 09-27 07:00 | 09-27 13:00 | stop_loss | 6 | -1.49 | +| AVAX | 09-27 13:00 | 09-27 14:00 | trailing_stop | 1 | -0.69 | +| TIA | 09-27 07:00 | 09-27 15:00 | trailing_stop | 8 | -0.43 | +| INJ | 09-27 07:00 | 09-27 17:00 | trailing_stop | 10 | -0.09 | +| KAS | 09-27 13:00 | 09-27 17:00 | stop_loss | 4 | -1.49 | +| NEAR | 09-27 07:00 | 09-27 17:00 | stop_loss | 10 | -1.49 | +| RENDER | 09-27 11:00 | 09-27 17:00 | stop_loss | 6 | -1.49 | +| SEI | 09-27 07:00 | 09-27 17:00 | stop_loss | 10 | -1.49 | +| WIF | 09-27 11:00 | 09-27 17:00 | stop_loss | 6 | -1.49 | +| BONK | 09-27 11:00 | 09-27 18:00 | stop_loss | 7 | -1.49 | +| ATOM | 09-27 08:00 | 09-27 22:00 | take_profit | 14 | +1.49 | +| PEPE | 09-27 09:00 | 09-28 00:00 | stop_loss | 15 | -1.49 | +| FET | 09-27 08:00 | 09-28 01:00 | stop_loss | 17 | -1.49 | +| LTC | 09-27 07:00 | 09-28 03:00 | trailing_stop | 20 | -0.59 | +| ETC | 09-27 07:00 | 09-28 06:00 | stop_loss | 23 | -1.49 | +| FIL | 09-28 02:00 | 09-28 06:00 | stop_loss | 4 | -1.49 | +| SHIB | 09-27 08:00 | 09-28 06:00 | stop_loss | 22 | -1.49 | +| OP | 09-28 01:00 | 09-28 07:00 | stop_loss | 6 | -1.49 | +| INJ | 09-28 05:00 | 09-28 08:00 | stop_loss | 3 | -1.49 | +| BONK | 09-28 01:00 | 09-28 09:00 | stop_loss | 8 | -1.49 | +| SEI | 09-28 02:00 | 09-28 09:00 | stop_loss | 7 | -1.49 | +| WIF | 09-28 01:00 | 09-28 09:00 | stop_loss | 8 | -1.49 | +| FET | 09-28 02:00 | 09-28 10:00 | stop_loss | 8 | -1.49 | +| RENDER | 09-28 01:00 | 09-28 10:00 | stop_loss | 9 | -1.49 | +| SUI | 09-28 01:00 | 09-28 11:00 | stop_loss | 10 | -1.49 | +| TON | 09-27 13:00 | 09-28 11:00 | stop_loss | 22 | -1.49 | +| ARB | 09-28 08:00 | 09-28 12:00 | stop_loss | 4 | -1.49 | +| FIL | 09-28 06:00 | 09-28 12:00 | stop_loss | 6 | -1.49 | +| LTC | 09-28 05:00 | 09-28 12:00 | stop_loss | 7 | -1.49 | +| PEPE | 09-28 01:00 | 09-28 12:00 | stop_loss | 11 | -1.49 | +| APT | 09-28 09:00 | 09-28 13:00 | trailing_stop | 4 | -0.34 | +| BONK | 09-28 09:00 | 09-28 13:00 | trailing_stop | 4 | -0.27 | +| OP | 09-28 07:00 | 09-28 13:00 | trailing_stop | 6 | -0.59 | +| RENDER | 09-28 11:00 | 09-28 13:00 | take_profit | 2 | +1.49 | +| UNI | 09-28 12:00 | 09-28 13:00 | trailing_stop | 1 | -0.36 | +| WIF | 09-28 12:00 | 09-28 13:00 | trailing_stop | 1 | -0.04 | +| KAS | 09-28 02:00 | 09-28 16:00 | take_profit | 14 | +1.49 | +| TRX | 09-27 18:00 | 09-28 20:00 | stop_loss | 26 | -1.49 | +| WIF | 09-29 09:00 | 09-29 11:00 | stop_loss | 2 | -1.49 | +| ARB | 09-29 12:00 | 09-29 13:00 | trailing_stop | 1 | -0.31 | +| ATOM | 09-29 12:00 | 09-29 13:00 | stop_loss | 1 | -1.49 | +| BONK | 09-29 12:00 | 09-29 13:00 | take_profit | 1 | +1.49 | +| ETC | 09-29 12:00 | 09-29 13:00 | trailing_stop | 1 | -0.45 | +| FET | 09-29 12:00 | 09-29 13:00 | take_profit | 1 | +1.49 | +| FIL | 09-29 12:00 | 09-29 13:00 | trailing_stop | 1 | -0.19 | +| INJ | 09-29 12:00 | 09-29 13:00 | take_profit | 1 | +1.49 | +| KAS | 09-29 12:00 | 09-29 13:00 | trailing_stop | 1 | -0.14 | +| NEAR | 09-29 12:00 | 09-29 13:00 | stop_loss | 1 | -1.49 | +| OP | 09-29 12:00 | 09-29 13:00 | take_profit | 1 | +1.49 | +| PEPE | 09-29 12:00 | 09-29 13:00 | take_profit | 1 | +1.49 | +| RENDER | 09-29 12:00 | 09-29 13:00 | take_profit | 1 | +1.49 | +| SEI | 09-29 12:00 | 09-29 13:00 | take_profit | 1 | +1.49 | +| SHIB | 09-29 12:00 | 09-29 13:00 | trailing_stop | 1 | -0.52 | +| SUI | 09-29 12:00 | 09-29 13:00 | take_profit | 1 | +1.49 | +| TIA | 09-29 12:00 | 09-29 13:00 | take_profit | 1 | +1.49 | +| UNI | 09-29 12:00 | 09-29 13:00 | take_profit | 1 | +1.49 | +| WIF | 09-29 11:00 | 09-29 13:00 | stop_loss | 2 | -1.49 | +| TON | 09-29 10:00 | 09-29 15:00 | trailing_stop | 5 | -0.19 | +| WIF | 09-29 16:00 | 09-29 17:00 | trailing_stop | 1 | -0.17 | +| AVAX | 09-30 05:00 | 09-30 07:00 | stop_loss | 2 | -1.49 | +| LTC | 09-29 12:00 | 09-30 07:00 | trailing_stop | 19 | -0.21 | +| AVAX | 09-30 07:00 | 09-30 09:00 | stop_loss | 2 | -1.49 | +| FET | 09-30 04:00 | 09-30 09:00 | stop_loss | 5 | -1.49 | +| NEAR | 09-30 07:00 | 09-30 09:00 | stop_loss | 2 | -1.49 | +| SHIB | 09-30 04:00 | 09-30 09:00 | stop_loss | 5 | -1.49 | +| ETC | 09-30 09:00 | 09-30 11:00 | confirmed_bearish_exit | 2 | +0.05 | +| INJ | 09-30 09:00 | 09-30 13:00 | trailing_stop | 4 | -0.68 | +| NEAR | 09-30 09:00 | 09-30 13:00 | stop_loss | 4 | -1.49 | +| ETC | 09-30 14:00 | 09-30 15:00 | stop_loss | 1 | -1.49 | +| LTC | 09-30 08:00 | 09-30 15:00 | stop_loss | 7 | -1.49 | +| SUI | 09-30 09:00 | 09-30 15:00 | stop_loss | 6 | -1.49 | +| WIF | 09-30 12:00 | 09-30 15:00 | stop_loss | 3 | -1.49 | +| TIA | 09-30 15:00 | 09-30 18:00 | trailing_stop | 3 | -0.53 | +| ETC | 09-30 17:00 | 09-30 19:00 | trailing_stop | 2 | -0.01 | +| LTC | 09-30 15:00 | 09-30 19:00 | take_profit | 4 | +1.49 | +| RENDER | 09-30 15:00 | 09-30 19:00 | take_profit | 4 | +1.49 | +| SUI | 09-30 15:00 | 09-30 19:00 | take_profit | 4 | +1.49 | +| TON | 09-30 10:00 | 09-30 19:00 | take_profit | 9 | +1.49 | +| FET | 09-30 17:00 | 09-30 20:00 | take_profit | 3 | +1.49 | +| FET | 10-01 00:00 | 10-01 03:00 | stop_loss | 3 | -1.49 | +| FET | 10-01 03:00 | 10-01 08:00 | take_profit | 5 | +1.49 | +| TRX | 09-28 20:00 | 10-01 18:00 | take_profit | 70 | +1.49 | +| ATOM | 10-01 22:00 | 10-02 01:00 | take_profit | 3 | +1.49 | +| BONK | 10-02 14:00 | 10-02 15:00 | take_profit | 1 | +1.49 | +| FET | 10-02 14:00 | 10-02 15:00 | trailing_stop | 1 | -0.34 | +| INJ | 10-02 14:00 | 10-02 15:00 | trailing_stop | 1 | -0.43 | +| SEI | 10-02 14:00 | 10-02 15:00 | trailing_stop | 1 | -0.62 | +| LTC | 10-03 00:00 | 10-03 06:00 | stop_loss | 6 | -1.49 | +| WIF | 10-03 09:00 | 10-03 11:00 | stop_loss | 2 | -1.49 | +| ARB | 10-03 09:00 | 10-03 12:00 | stop_loss | 3 | -1.49 | +| AVAX | 10-03 09:00 | 10-03 13:00 | stop_loss | 4 | -1.49 | +| FET | 10-03 09:00 | 10-03 13:00 | stop_loss | 4 | -1.49 | +| OP | 10-03 10:00 | 10-03 13:00 | stop_loss | 3 | -1.49 | +| ATOM | 10-03 10:00 | 10-03 14:00 | stop_loss | 4 | -1.49 | +| LTC | 10-03 11:00 | 10-03 14:00 | take_profit | 3 | +1.49 | +| FIL | 10-03 07:00 | 10-03 15:00 | take_profit | 8 | +1.49 | +| SEI | 10-03 14:00 | 10-03 15:00 | take_profit | 1 | +1.49 | +| KAS | 10-04 05:00 | 10-04 07:00 | stop_loss | 2 | -1.49 | +| ATOM | 10-04 05:00 | 10-04 08:00 | stop_loss | 3 | -1.49 | +| RENDER | 10-04 05:00 | 10-04 08:00 | stop_loss | 3 | -1.49 | +| TIA | 10-04 05:00 | 10-04 08:00 | stop_loss | 3 | -1.49 | +| ATOM | 10-04 08:00 | 10-04 10:00 | stop_loss | 2 | -1.49 | +| FIL | 10-04 08:00 | 10-04 10:00 | stop_loss | 2 | -1.49 | +| NEAR | 10-04 08:00 | 10-04 10:00 | stop_loss | 2 | -1.49 | +| OP | 10-04 08:00 | 10-04 10:00 | stop_loss | 2 | -1.49 | +| TON | 10-04 09:00 | 10-04 10:00 | take_profit | 1 | +1.49 | +| APT | 10-04 10:00 | 10-04 11:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-04 08:00 | 10-04 11:00 | stop_loss | 3 | -1.49 | +| KAS | 10-04 08:00 | 10-04 11:00 | stop_loss | 3 | -1.49 | +| SUI | 10-04 09:00 | 10-04 13:00 | take_profit | 4 | +1.49 | +| AVAX | 10-04 11:00 | 10-04 14:00 | stop_loss | 3 | -1.49 | +| FIL | 10-04 10:00 | 10-04 14:00 | trailing_stop | 4 | -0.67 | +| SEI | 10-04 08:00 | 10-04 14:00 | stop_loss | 6 | -1.49 | +| ARB | 10-04 09:00 | 10-04 15:00 | stop_loss | 6 | -1.49 | +| BONK | 10-04 14:00 | 10-04 15:00 | stop_loss | 1 | -1.49 | +| ETC | 10-04 09:00 | 10-04 15:00 | stop_loss | 6 | -1.49 | +| INJ | 10-04 10:00 | 10-04 15:00 | stop_loss | 5 | -1.49 | +| NEAR | 10-04 10:00 | 10-04 15:00 | stop_loss | 5 | -1.49 | +| OP | 10-04 10:00 | 10-04 15:00 | trailing_stop | 5 | -0.41 | +| SHIB | 10-04 10:00 | 10-04 15:00 | stop_loss | 5 | -1.49 | +| WIF | 10-04 14:00 | 10-04 15:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-04 10:00 | 10-04 16:00 | stop_loss | 6 | -1.49 | +| PEPE | 10-04 14:00 | 10-04 16:00 | stop_loss | 2 | -1.49 | +| APT | 10-04 11:00 | 10-04 19:00 | trailing_stop | 8 | -0.03 | +| APT | 10-04 19:00 | 10-04 23:00 | stop_loss | 4 | -1.49 | +| BONK | 10-04 22:00 | 10-05 00:00 | stop_loss | 2 | -1.49 | +| INJ | 10-04 18:00 | 10-05 00:00 | trailing_stop | 6 | -0.43 | +| KAS | 10-04 15:00 | 10-05 00:00 | trailing_stop | 9 | -0.04 | +| LTC | 10-04 07:00 | 10-05 00:00 | take_profit | 17 | +1.49 | +| SEI | 10-04 15:00 | 10-05 00:00 | take_profit | 9 | +1.49 | +| WIF | 10-04 15:00 | 10-05 01:00 | trailing_stop | 10 | -0.64 | +| ATOM | 10-04 21:00 | 10-05 02:00 | trailing_stop | 5 | -0.55 | +| AVAX | 10-04 14:00 | 10-05 02:00 | take_profit | 12 | +1.49 | +| ETC | 10-04 19:00 | 10-05 02:00 | trailing_stop | 7 | -0.07 | +| FIL | 10-04 21:00 | 10-05 02:00 | trailing_stop | 5 | -0.12 | +| OP | 10-04 20:00 | 10-05 02:00 | take_profit | 6 | +1.49 | +| PEPE | 10-04 16:00 | 10-05 02:00 | take_profit | 10 | +1.49 | +| RENDER | 10-04 19:00 | 10-05 02:00 | trailing_stop | 7 | +0.12 | +| SHIB | 10-04 15:00 | 10-05 02:00 | take_profit | 11 | +1.49 | +| UNI | 10-04 20:00 | 10-05 02:00 | take_profit | 6 | +1.49 | +| TON | 10-04 10:00 | 10-05 08:00 | take_profit | 22 | +1.49 | +| KAS | 10-05 16:00 | 10-05 17:00 | stop_loss | 1 | -1.49 | +| FET | 10-05 18:00 | 10-05 19:00 | stop_loss | 1 | -1.49 | +| KAS | 10-05 17:00 | 10-05 19:00 | stop_loss | 2 | -1.49 | +| LTC | 10-05 16:00 | 10-05 19:00 | stop_loss | 3 | -1.49 | +| OP | 10-05 18:00 | 10-05 19:00 | stop_loss | 1 | -1.49 | +| SUI | 10-05 17:00 | 10-05 19:00 | stop_loss | 2 | -1.49 | +| TIA | 10-05 17:00 | 10-05 19:00 | stop_loss | 2 | -1.49 | +| AVAX | 10-05 18:00 | 10-05 20:00 | stop_loss | 2 | -1.49 | +| KAS | 10-05 19:00 | 10-05 23:00 | take_profit | 4 | +1.49 | +| BONK | 10-05 19:00 | 10-06 00:00 | stop_loss | 5 | -1.49 | +| FET | 10-05 19:00 | 10-06 00:00 | stop_loss | 5 | -1.49 | +| INJ | 10-05 19:00 | 10-06 00:00 | take_profit | 5 | +1.49 | +| PEPE | 10-05 19:00 | 10-06 00:00 | take_profit | 5 | +1.49 | +| WIF | 10-05 21:00 | 10-06 00:00 | stop_loss | 3 | -1.49 | +| FIL | 10-05 19:00 | 10-06 01:00 | trailing_stop | 6 | -0.59 | +| OP | 10-05 19:00 | 10-06 01:00 | take_profit | 6 | +1.49 | +| RENDER | 10-05 19:00 | 10-06 01:00 | trailing_stop | 6 | -0.50 | +| SEI | 10-05 19:00 | 10-06 01:00 | take_profit | 6 | +1.49 | +| UNI | 10-05 19:00 | 10-06 01:00 | trailing_stop | 6 | -0.44 | +| TIA | 10-05 19:00 | 10-06 02:00 | trailing_stop | 7 | -0.29 | +| SHIB | 10-05 19:00 | 10-06 05:00 | trailing_stop | 10 | -0.43 | +| ARB | 10-05 19:00 | 10-06 06:00 | take_profit | 11 | +1.49 | +| ETC | 10-05 19:00 | 10-06 06:00 | take_profit | 11 | +1.49 | +| SUI | 10-05 19:00 | 10-06 06:00 | take_profit | 11 | +1.49 | +| PEPE | 10-06 05:00 | 10-06 07:00 | trailing_stop | 2 | -0.59 | +| BONK | 10-06 03:00 | 10-06 10:00 | take_profit | 7 | +1.49 | +| NEAR | 10-05 19:00 | 10-06 12:00 | take_profit | 17 | +1.49 | +| SEI | 10-06 05:00 | 10-06 12:00 | take_profit | 7 | +1.49 | +| ATOM | 10-05 21:00 | 10-06 13:00 | trailing_stop | 16 | +0.18 | +| FET | 10-06 03:00 | 10-06 15:00 | take_profit | 12 | +1.49 | +| LTC | 10-06 21:00 | 10-07 00:00 | stop_loss | 3 | -1.49 | +| AVAX | 10-07 05:00 | 10-07 06:00 | stop_loss | 1 | -1.49 | +| FIL | 10-07 03:00 | 10-07 06:00 | stop_loss | 3 | -1.49 | +| INJ | 10-07 03:00 | 10-07 06:00 | stop_loss | 3 | -1.49 | +| OP | 10-07 03:00 | 10-07 06:00 | stop_loss | 3 | -1.49 | +| RENDER | 10-07 03:00 | 10-07 07:00 | stop_loss | 4 | -1.49 | +| ARB | 10-07 06:00 | 10-07 08:00 | stop_loss | 2 | -1.49 | +| AVAX | 10-07 06:00 | 10-07 08:00 | stop_loss | 2 | -1.49 | +| BONK | 10-07 07:00 | 10-07 08:00 | stop_loss | 1 | -1.49 | +| ETC | 10-07 07:00 | 10-07 08:00 | stop_loss | 1 | -1.49 | +| FIL | 10-07 06:00 | 10-07 08:00 | stop_loss | 2 | -1.49 | +| INJ | 10-07 06:00 | 10-07 08:00 | stop_loss | 2 | -1.49 | +| OP | 10-07 06:00 | 10-07 08:00 | stop_loss | 2 | -1.49 | +| PEPE | 10-07 06:00 | 10-07 08:00 | stop_loss | 2 | -1.49 | +| RENDER | 10-07 07:00 | 10-07 08:00 | stop_loss | 1 | -1.49 | +| SEI | 10-07 06:00 | 10-07 08:00 | stop_loss | 2 | -1.49 | +| SHIB | 10-07 06:00 | 10-07 08:00 | stop_loss | 2 | -1.49 | +| UNI | 10-07 06:00 | 10-07 08:00 | stop_loss | 2 | -1.49 | +| WIF | 10-07 06:00 | 10-07 08:00 | stop_loss | 2 | -1.49 | +| APT | 10-07 08:00 | 10-07 09:00 | trailing_stop | 1 | -0.18 | +| ATOM | 10-07 06:00 | 10-07 10:00 | stop_loss | 4 | -1.49 | +| WIF | 10-07 08:00 | 10-07 11:00 | take_profit | 3 | +1.49 | +| ARB | 10-07 08:00 | 10-07 12:00 | trailing_stop | 4 | -0.20 | +| BONK | 10-07 08:00 | 10-07 12:00 | take_profit | 4 | +1.49 | +| INJ | 10-07 08:00 | 10-07 12:00 | trailing_stop | 4 | -0.00 | +| NEAR | 10-07 06:00 | 10-07 12:00 | take_profit | 6 | +1.49 | +| PEPE | 10-07 08:00 | 10-07 12:00 | take_profit | 4 | +1.49 | +| SEI | 10-07 08:00 | 10-07 12:00 | take_profit | 4 | +1.49 | +| UNI | 10-07 08:00 | 10-07 12:00 | trailing_stop | 4 | -0.07 | +| ATOM | 10-07 10:00 | 10-07 13:00 | trailing_stop | 3 | -0.56 | +| AVAX | 10-07 08:00 | 10-07 13:00 | stop_loss | 5 | -1.49 | +| ETC | 10-07 08:00 | 10-07 13:00 | take_profit | 5 | +1.49 | +| FIL | 10-07 08:00 | 10-07 13:00 | trailing_stop | 5 | -0.28 | +| OP | 10-07 08:00 | 10-07 13:00 | trailing_stop | 5 | -0.36 | +| RENDER | 10-07 08:00 | 10-07 13:00 | trailing_stop | 5 | -0.35 | +| SHIB | 10-07 08:00 | 10-07 13:00 | trailing_stop | 5 | -0.45 | +| TIA | 10-07 08:00 | 10-07 13:00 | trailing_stop | 5 | +0.00 | +| AVAX | 10-07 13:00 | 10-07 14:00 | stop_loss | 1 | -1.49 | +| FET | 10-07 13:00 | 10-07 14:00 | stop_loss | 1 | -1.49 | +| LTC | 10-07 01:00 | 10-07 14:00 | stop_loss | 13 | -1.49 | +| OP | 10-07 13:00 | 10-07 14:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-07 13:00 | 10-07 14:00 | stop_loss | 1 | -1.49 | +| TRX | 10-05 22:00 | 10-07 14:00 | trailing_stop | 40 | +0.04 | +| ARB | 10-07 14:00 | 10-07 15:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-07 14:00 | 10-07 15:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-07 14:00 | 10-07 15:00 | stop_loss | 1 | -1.49 | +| BONK | 10-07 14:00 | 10-07 15:00 | stop_loss | 1 | -1.49 | +| ETC | 10-07 14:00 | 10-07 15:00 | stop_loss | 1 | -1.49 | +| FIL | 10-07 14:00 | 10-07 15:00 | stop_loss | 1 | -1.49 | +| INJ | 10-07 14:00 | 10-07 15:00 | stop_loss | 1 | -1.49 | +| LTC | 10-07 14:00 | 10-07 15:00 | stop_loss | 1 | -1.49 | +| NEAR | 10-07 14:00 | 10-07 15:00 | stop_loss | 1 | -1.49 | +| OP | 10-07 14:00 | 10-07 15:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-07 14:00 | 10-07 15:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-07 14:00 | 10-07 15:00 | stop_loss | 1 | -1.49 | +| SEI | 10-07 14:00 | 10-07 15:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-07 14:00 | 10-07 15:00 | stop_loss | 1 | -1.49 | +| SUI | 10-07 14:00 | 10-07 15:00 | stop_loss | 1 | -1.49 | +| TIA | 10-07 14:00 | 10-07 15:00 | stop_loss | 1 | -1.49 | +| TON | 10-07 14:00 | 10-07 15:00 | stop_loss | 1 | -1.49 | +| UNI | 10-07 14:00 | 10-07 15:00 | stop_loss | 1 | -1.49 | +| WIF | 10-07 14:00 | 10-07 15:00 | stop_loss | 1 | -1.49 | +| ARB | 10-07 15:00 | 10-07 16:00 | stop_loss | 1 | -1.49 | +| BONK | 10-07 15:00 | 10-07 16:00 | stop_loss | 1 | -1.49 | +| INJ | 10-07 15:00 | 10-07 16:00 | trailing_stop | 1 | -0.67 | +| RENDER | 10-07 15:00 | 10-07 16:00 | stop_loss | 1 | -1.49 | +| SEI | 10-07 15:00 | 10-07 16:00 | stop_loss | 1 | -1.49 | +| TRX | 10-07 14:00 | 10-07 16:00 | stop_loss | 2 | -1.49 | +| WIF | 10-07 15:00 | 10-07 16:00 | take_profit | 1 | +1.49 | +| UNI | 10-07 15:00 | 10-07 17:00 | stop_loss | 2 | -1.49 | +| ARB | 10-07 16:00 | 10-07 18:00 | stop_loss | 2 | -1.49 | +| AVAX | 10-07 15:00 | 10-07 18:00 | stop_loss | 3 | -1.49 | +| FET | 10-07 14:00 | 10-07 18:00 | stop_loss | 4 | -1.49 | +| SEI | 10-07 16:00 | 10-07 18:00 | stop_loss | 2 | -1.49 | +| SUI | 10-07 15:00 | 10-07 18:00 | stop_loss | 3 | -1.49 | +| NEAR | 10-07 15:00 | 10-07 20:00 | trailing_stop | 5 | +0.06 | +| OP | 10-07 15:00 | 10-07 20:00 | trailing_stop | 5 | -0.43 | +| PEPE | 10-07 15:00 | 10-07 21:00 | stop_loss | 6 | -1.49 | +| TON | 10-07 15:00 | 10-07 23:00 | stop_loss | 8 | -1.49 | +| ARB | 10-08 02:00 | 10-08 03:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-07 15:00 | 10-08 03:00 | stop_loss | 12 | -1.49 | +| AVAX | 10-08 02:00 | 10-08 03:00 | stop_loss | 1 | -1.49 | +| BONK | 10-08 02:00 | 10-08 03:00 | stop_loss | 1 | -1.49 | +| ETC | 10-07 15:00 | 10-08 03:00 | stop_loss | 12 | -1.49 | +| FET | 10-07 18:00 | 10-08 03:00 | stop_loss | 9 | -1.49 | +| FIL | 10-07 15:00 | 10-08 03:00 | stop_loss | 12 | -1.49 | +| INJ | 10-07 17:00 | 10-08 03:00 | stop_loss | 10 | -1.49 | +| KAS | 10-07 14:00 | 10-08 03:00 | stop_loss | 13 | -1.49 | +| OP | 10-07 23:00 | 10-08 03:00 | stop_loss | 4 | -1.49 | +| SHIB | 10-07 15:00 | 10-08 03:00 | stop_loss | 12 | -1.49 | +| TIA | 10-07 15:00 | 10-08 03:00 | stop_loss | 12 | -1.49 | +| UNI | 10-07 17:00 | 10-08 03:00 | trailing_stop | 10 | -0.63 | +| LTC | 10-07 15:00 | 10-08 04:00 | trailing_stop | 13 | -0.32 | +| APT | 10-08 12:00 | 10-08 13:00 | trailing_stop | 1 | -0.44 | +| OP | 10-08 03:00 | 10-08 13:00 | trailing_stop | 10 | -0.08 | +| ETC | 10-08 03:00 | 10-08 14:00 | take_profit | 11 | +1.49 | +| UNI | 10-08 03:00 | 10-08 14:00 | take_profit | 11 | +1.49 | +| FET | 10-08 12:00 | 10-08 16:00 | trailing_stop | 4 | -0.08 | +| SUI | 10-07 18:00 | 10-08 16:00 | trailing_stop | 22 | -0.47 | +| TON | 10-08 14:00 | 10-08 17:00 | take_profit | 3 | +1.49 | +| KAS | 10-09 02:00 | 10-09 03:00 | trailing_stop | 1 | -0.45 | +| NEAR | 10-09 02:00 | 10-09 03:00 | trailing_stop | 1 | -0.36 | +| BONK | 10-09 02:00 | 10-09 04:00 | take_profit | 2 | +1.49 | +| FET | 10-09 02:00 | 10-09 06:00 | trailing_stop | 4 | -0.61 | +| FET | 10-09 06:00 | 10-09 07:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-09 02:00 | 10-09 07:00 | trailing_stop | 5 | -0.04 | +| APT | 10-09 03:00 | 10-09 08:00 | stop_loss | 5 | -1.49 | +| ARB | 10-09 07:00 | 10-09 08:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-09 07:00 | 10-09 08:00 | stop_loss | 1 | -1.49 | +| ETC | 10-09 07:00 | 10-09 08:00 | stop_loss | 1 | -1.49 | +| FET | 10-09 07:00 | 10-09 08:00 | stop_loss | 1 | -1.49 | +| FIL | 10-09 07:00 | 10-09 08:00 | stop_loss | 1 | -1.49 | +| INJ | 10-09 06:00 | 10-09 08:00 | stop_loss | 2 | -1.49 | +| OP | 10-09 07:00 | 10-09 08:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-09 07:00 | 10-09 08:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-09 07:00 | 10-09 08:00 | stop_loss | 1 | -1.49 | +| SUI | 10-09 07:00 | 10-09 08:00 | stop_loss | 1 | -1.49 | +| TIA | 10-09 07:00 | 10-09 08:00 | stop_loss | 1 | -1.49 | +| TRX | 10-07 16:00 | 10-09 08:00 | trailing_stop | 40 | -0.62 | +| UNI | 10-09 07:00 | 10-09 08:00 | stop_loss | 1 | -1.49 | +| WIF | 10-09 07:00 | 10-09 08:00 | stop_loss | 1 | -1.49 | +| SEI | 10-09 08:00 | 10-09 11:00 | take_profit | 3 | +1.49 | +| UNI | 10-09 08:00 | 10-09 11:00 | take_profit | 3 | +1.49 | +| APT | 10-09 08:00 | 10-09 12:00 | stop_loss | 4 | -1.49 | +| ARB | 10-09 08:00 | 10-09 12:00 | take_profit | 4 | +1.49 | +| BONK | 10-09 08:00 | 10-09 12:00 | take_profit | 4 | +1.49 | +| FIL | 10-09 08:00 | 10-09 12:00 | take_profit | 4 | +1.49 | +| LTC | 10-09 08:00 | 10-09 12:00 | take_profit | 4 | +1.49 | +| NEAR | 10-09 08:00 | 10-09 12:00 | take_profit | 4 | +1.49 | +| OP | 10-09 08:00 | 10-09 12:00 | take_profit | 4 | +1.49 | +| PEPE | 10-09 08:00 | 10-09 12:00 | take_profit | 4 | +1.49 | +| RENDER | 10-09 08:00 | 10-09 12:00 | take_profit | 4 | +1.49 | +| TIA | 10-09 08:00 | 10-09 12:00 | take_profit | 4 | +1.49 | +| WIF | 10-09 08:00 | 10-09 12:00 | trailing_stop | 4 | -0.01 | +| ETC | 10-09 08:00 | 10-09 13:00 | trailing_stop | 5 | +0.03 | +| FET | 10-09 08:00 | 10-09 13:00 | stop_loss | 5 | -1.49 | +| SHIB | 10-09 08:00 | 10-09 13:00 | trailing_stop | 5 | -0.04 | +| SUI | 10-09 08:00 | 10-09 13:00 | take_profit | 5 | +1.49 | +| APT | 10-09 13:00 | 10-09 14:00 | take_profit | 1 | +1.49 | +| ATOM | 10-09 08:00 | 10-09 14:00 | trailing_stop | 6 | -0.29 | +| INJ | 10-09 08:00 | 10-09 14:00 | trailing_stop | 6 | -0.23 | +| KAS | 10-09 08:00 | 10-09 14:00 | stop_loss | 6 | -1.49 | +| TON | 10-09 08:00 | 10-09 14:00 | trailing_stop | 6 | -0.53 | +| FET | 10-09 14:00 | 10-09 15:00 | stop_loss | 1 | -1.49 | +| FET | 10-09 15:00 | 10-09 16:00 | stop_loss | 1 | -1.49 | +| TON | 10-09 15:00 | 10-09 16:00 | stop_loss | 1 | -1.49 | +| FET | 10-09 16:00 | 10-09 17:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-09 16:00 | 10-09 17:00 | trailing_stop | 1 | -0.61 | +| TON | 10-09 16:00 | 10-09 17:00 | trailing_stop | 1 | -0.40 | +| FET | 10-10 01:00 | 10-10 02:00 | stop_loss | 1 | -1.49 | +| BONK | 10-10 02:00 | 10-10 03:00 | take_profit | 1 | +1.49 | +| FET | 10-10 02:00 | 10-10 05:00 | stop_loss | 3 | -1.49 | +| AVAX | 10-10 14:00 | 10-10 15:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-10 14:00 | 10-10 15:00 | stop_loss | 1 | -1.49 | +| TRX | 10-09 08:00 | 10-10 15:00 | stop_loss | 31 | -1.49 | +| KAS | 10-10 15:00 | 10-10 16:00 | take_profit | 1 | +1.49 | +| WIF | 10-10 15:00 | 10-10 16:00 | stop_loss | 1 | -1.49 | +| APT | 10-10 15:00 | 10-10 17:00 | stop_loss | 2 | -1.49 | +| ARB | 10-10 15:00 | 10-10 17:00 | stop_loss | 2 | -1.49 | +| AVAX | 10-10 15:00 | 10-10 17:00 | stop_loss | 2 | -1.49 | +| BONK | 10-10 15:00 | 10-10 17:00 | stop_loss | 2 | -1.49 | +| FET | 10-10 15:00 | 10-10 17:00 | stop_loss | 2 | -1.49 | +| INJ | 10-10 15:00 | 10-10 17:00 | stop_loss | 2 | -1.49 | +| OP | 10-10 15:00 | 10-10 17:00 | stop_loss | 2 | -1.49 | +| PEPE | 10-10 15:00 | 10-10 17:00 | stop_loss | 2 | -1.49 | +| RENDER | 10-10 15:00 | 10-10 17:00 | stop_loss | 2 | -1.49 | +| SHIB | 10-10 15:00 | 10-10 17:00 | stop_loss | 2 | -1.49 | +| SUI | 10-10 15:00 | 10-10 17:00 | stop_loss | 2 | -1.49 | +| TIA | 10-10 15:00 | 10-10 17:00 | stop_loss | 2 | -1.49 | +| WIF | 10-10 16:00 | 10-10 17:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-10 15:00 | 10-10 18:00 | stop_loss | 3 | -1.49 | +| AVAX | 10-10 17:00 | 10-10 18:00 | stop_loss | 1 | -1.49 | +| ETC | 10-10 17:00 | 10-10 18:00 | stop_loss | 1 | -1.49 | +| INJ | 10-10 17:00 | 10-10 18:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-10 17:00 | 10-10 18:00 | take_profit | 1 | +1.49 | +| APT | 10-10 17:00 | 10-10 19:00 | stop_loss | 2 | -1.49 | +| ARB | 10-10 17:00 | 10-10 19:00 | stop_loss | 2 | -1.49 | +| ATOM | 10-10 18:00 | 10-10 19:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-10 18:00 | 10-10 19:00 | stop_loss | 1 | -1.49 | +| BONK | 10-10 17:00 | 10-10 19:00 | stop_loss | 2 | -1.49 | +| ETC | 10-10 18:00 | 10-10 19:00 | stop_loss | 1 | -1.49 | +| FET | 10-10 17:00 | 10-10 19:00 | stop_loss | 2 | -1.49 | +| FIL | 10-10 18:00 | 10-10 19:00 | stop_loss | 1 | -1.49 | +| INJ | 10-10 18:00 | 10-10 19:00 | stop_loss | 1 | -1.49 | +| KAS | 10-10 16:00 | 10-10 19:00 | stop_loss | 3 | -1.49 | +| OP | 10-10 17:00 | 10-10 19:00 | stop_loss | 2 | -1.49 | +| RENDER | 10-10 17:00 | 10-10 19:00 | stop_loss | 2 | -1.49 | +| SEI | 10-10 15:00 | 10-10 19:00 | stop_loss | 4 | -1.49 | +| SHIB | 10-10 17:00 | 10-10 19:00 | stop_loss | 2 | -1.49 | +| SUI | 10-10 17:00 | 10-10 19:00 | stop_loss | 2 | -1.49 | +| TIA | 10-10 17:00 | 10-10 19:00 | stop_loss | 2 | -1.49 | +| TON | 10-10 15:00 | 10-10 19:00 | stop_loss | 4 | -1.49 | +| UNI | 10-10 17:00 | 10-10 19:00 | stop_loss | 2 | -1.49 | +| WIF | 10-10 17:00 | 10-10 19:00 | stop_loss | 2 | -1.49 | +| APT | 10-10 19:00 | 10-10 20:00 | stop_loss | 1 | -1.49 | +| ARB | 10-10 19:00 | 10-10 20:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-10 19:00 | 10-10 20:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-10 19:00 | 10-10 20:00 | stop_loss | 1 | -1.49 | +| BONK | 10-10 19:00 | 10-10 20:00 | stop_loss | 1 | -1.49 | +| ETC | 10-10 19:00 | 10-10 20:00 | stop_loss | 1 | -1.49 | +| FET | 10-10 19:00 | 10-10 20:00 | stop_loss | 1 | -1.49 | +| FIL | 10-10 19:00 | 10-10 20:00 | stop_loss | 1 | -1.49 | +| INJ | 10-10 19:00 | 10-10 20:00 | stop_loss | 1 | -1.49 | +| KAS | 10-10 19:00 | 10-10 20:00 | stop_loss | 1 | -1.49 | +| OP | 10-10 19:00 | 10-10 20:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-10 19:00 | 10-10 20:00 | stop_loss | 1 | -1.49 | +| SEI | 10-10 19:00 | 10-10 20:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-10 19:00 | 10-10 20:00 | stop_loss | 1 | -1.49 | +| SUI | 10-10 19:00 | 10-10 20:00 | stop_loss | 1 | -1.49 | +| TIA | 10-10 19:00 | 10-10 20:00 | stop_loss | 1 | -1.49 | +| TRX | 10-10 15:00 | 10-10 20:00 | stop_loss | 5 | -1.49 | +| UNI | 10-10 19:00 | 10-10 20:00 | stop_loss | 1 | -1.49 | +| WIF | 10-10 19:00 | 10-10 20:00 | stop_loss | 1 | -1.49 | +| APT | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| ARB | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| BONK | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| ETC | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| FET | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| FIL | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| INJ | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| KAS | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| LTC | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| NEAR | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| OP | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| SEI | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| SUI | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| TIA | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| TON | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| TRX | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| UNI | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| WIF | 10-10 20:00 | 10-10 21:00 | stop_loss | 1 | -1.49 | +| APT | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| ARB | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| BONK | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| ETC | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| FET | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| FIL | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| INJ | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| KAS | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| LTC | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| NEAR | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| OP | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| SEI | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| SUI | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| TIA | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| TON | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| UNI | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| WIF | 10-10 21:00 | 10-10 22:00 | stop_loss | 1 | -1.49 | +| APT | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| ARB | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| BONK | 10-10 22:00 | 10-10 23:00 | take_profit | 1 | +1.49 | +| ETC | 10-10 22:00 | 10-10 23:00 | take_profit | 1 | +1.49 | +| FET | 10-10 22:00 | 10-10 23:00 | take_profit | 1 | +1.49 | +| FIL | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| INJ | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| KAS | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| LTC | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| NEAR | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| OP | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| SEI | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-10 22:00 | 10-10 23:00 | take_profit | 1 | +1.49 | +| SUI | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| TIA | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| TON | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| UNI | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| WIF | 10-10 22:00 | 10-10 23:00 | stop_loss | 1 | -1.49 | +| APT | 10-10 23:00 | 10-11 00:00 | stop_loss | 1 | -1.49 | +| ARB | 10-10 23:00 | 10-11 00:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-10 23:00 | 10-11 00:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-10 23:00 | 10-11 00:00 | stop_loss | 1 | -1.49 | +| BONK | 10-10 23:00 | 10-11 00:00 | stop_loss | 1 | -1.49 | +| FET | 10-10 23:00 | 10-11 00:00 | take_profit | 1 | +1.49 | +| FIL | 10-10 23:00 | 10-11 00:00 | stop_loss | 1 | -1.49 | +| LTC | 10-10 23:00 | 10-11 00:00 | stop_loss | 1 | -1.49 | +| NEAR | 10-10 23:00 | 10-11 00:00 | stop_loss | 1 | -1.49 | +| OP | 10-10 23:00 | 10-11 00:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-10 23:00 | 10-11 00:00 | stop_loss | 1 | -1.49 | +| SUI | 10-10 23:00 | 10-11 00:00 | stop_loss | 1 | -1.49 | +| TIA | 10-10 23:00 | 10-11 00:00 | stop_loss | 1 | -1.49 | +| TON | 10-10 23:00 | 10-11 00:00 | stop_loss | 1 | -1.49 | +| UNI | 10-10 23:00 | 10-11 00:00 | stop_loss | 1 | -1.49 | +| WIF | 10-10 23:00 | 10-11 00:00 | stop_loss | 1 | -1.49 | +| APT | 10-11 00:00 | 10-11 01:00 | stop_loss | 1 | -1.49 | +| LTC | 10-11 00:00 | 10-11 01:00 | stop_loss | 1 | -1.49 | +| TRX | 10-10 21:00 | 10-11 03:00 | stop_loss | 6 | -1.49 | +| OP | 10-11 03:00 | 10-11 04:00 | trailing_stop | 1 | -0.25 | +| BONK | 10-11 04:00 | 10-11 05:00 | stop_loss | 1 | -1.49 | +| FET | 10-11 04:00 | 10-11 05:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-11 04:00 | 10-11 05:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-11 04:00 | 10-11 05:00 | stop_loss | 1 | -1.49 | +| APT | 10-11 05:00 | 10-11 06:00 | stop_loss | 1 | -1.49 | +| ARB | 10-11 05:00 | 10-11 06:00 | take_profit | 1 | +1.49 | +| ATOM | 10-11 05:00 | 10-11 06:00 | take_profit | 1 | +1.49 | +| AVAX | 10-11 05:00 | 10-11 06:00 | take_profit | 1 | +1.49 | +| BONK | 10-11 05:00 | 10-11 06:00 | take_profit | 1 | +1.49 | +| ETC | 10-11 05:00 | 10-11 06:00 | take_profit | 1 | +1.49 | +| FET | 10-11 05:00 | 10-11 06:00 | take_profit | 1 | +1.49 | +| SUI | 10-11 05:00 | 10-11 06:00 | take_profit | 1 | +1.49 | +| TON | 10-11 05:00 | 10-11 06:00 | take_profit | 1 | +1.49 | +| WIF | 10-11 05:00 | 10-11 06:00 | take_profit | 1 | +1.49 | +| ARB | 10-11 06:00 | 10-11 07:00 | take_profit | 1 | +1.49 | +| ATOM | 10-11 06:00 | 10-11 07:00 | stop_loss | 1 | -1.49 | +| BONK | 10-11 06:00 | 10-11 07:00 | take_profit | 1 | +1.49 | +| ETC | 10-11 06:00 | 10-11 07:00 | trailing_stop | 1 | -0.70 | +| NEAR | 10-11 05:00 | 10-11 07:00 | take_profit | 2 | +1.49 | +| RENDER | 10-11 05:00 | 10-11 07:00 | take_profit | 2 | +1.49 | +| SEI | 10-11 05:00 | 10-11 07:00 | stop_loss | 2 | -1.49 | +| SUI | 10-11 06:00 | 10-11 07:00 | stop_loss | 1 | -1.49 | +| TIA | 10-11 06:00 | 10-11 07:00 | take_profit | 1 | +1.49 | +| TON | 10-11 06:00 | 10-11 07:00 | stop_loss | 1 | -1.49 | +| APT | 10-11 06:00 | 10-11 08:00 | stop_loss | 2 | -1.49 | +| ARB | 10-11 07:00 | 10-11 08:00 | take_profit | 1 | +1.49 | +| ATOM | 10-11 07:00 | 10-11 08:00 | take_profit | 1 | +1.49 | +| AVAX | 10-11 06:00 | 10-11 08:00 | take_profit | 2 | +1.49 | +| BONK | 10-11 07:00 | 10-11 08:00 | take_profit | 1 | +1.49 | +| ETC | 10-11 07:00 | 10-11 08:00 | take_profit | 1 | +1.49 | +| FIL | 10-11 06:00 | 10-11 08:00 | stop_loss | 2 | -1.49 | +| INJ | 10-11 05:00 | 10-11 08:00 | take_profit | 3 | +1.49 | +| LTC | 10-11 05:00 | 10-11 08:00 | stop_loss | 3 | -1.49 | +| NEAR | 10-11 07:00 | 10-11 08:00 | take_profit | 1 | +1.49 | +| PEPE | 10-11 06:00 | 10-11 08:00 | take_profit | 2 | +1.49 | +| SEI | 10-11 07:00 | 10-11 08:00 | take_profit | 1 | +1.49 | +| SHIB | 10-11 05:00 | 10-11 08:00 | take_profit | 3 | +1.49 | +| SUI | 10-11 07:00 | 10-11 08:00 | take_profit | 1 | +1.49 | +| TIA | 10-11 07:00 | 10-11 08:00 | take_profit | 1 | +1.49 | +| TON | 10-11 07:00 | 10-11 08:00 | take_profit | 1 | +1.49 | +| UNI | 10-11 06:00 | 10-11 08:00 | take_profit | 2 | +1.49 | +| WIF | 10-11 06:00 | 10-11 08:00 | take_profit | 2 | +1.49 | +| APT | 10-11 08:00 | 10-11 09:00 | stop_loss | 1 | -1.49 | +| ARB | 10-11 08:00 | 10-11 09:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-11 08:00 | 10-11 09:00 | stop_loss | 1 | -1.49 | +| ETC | 10-11 08:00 | 10-11 09:00 | stop_loss | 1 | -1.49 | +| FIL | 10-11 08:00 | 10-11 09:00 | stop_loss | 1 | -1.49 | +| INJ | 10-11 08:00 | 10-11 09:00 | take_profit | 1 | +1.49 | +| LTC | 10-11 08:00 | 10-11 09:00 | stop_loss | 1 | -1.49 | +| NEAR | 10-11 08:00 | 10-11 09:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-11 08:00 | 10-11 09:00 | stop_loss | 1 | -1.49 | +| SEI | 10-11 08:00 | 10-11 09:00 | stop_loss | 1 | -1.49 | +| SUI | 10-11 08:00 | 10-11 09:00 | stop_loss | 1 | -1.49 | +| TIA | 10-11 08:00 | 10-11 09:00 | stop_loss | 1 | -1.49 | +| TON | 10-11 08:00 | 10-11 09:00 | take_profit | 1 | +1.49 | +| UNI | 10-11 08:00 | 10-11 09:00 | stop_loss | 1 | -1.49 | +| WIF | 10-11 08:00 | 10-11 09:00 | stop_loss | 1 | -1.49 | +| APT | 10-11 09:00 | 10-11 10:00 | stop_loss | 1 | -1.49 | +| ETC | 10-11 09:00 | 10-11 10:00 | trailing_stop | 1 | -0.66 | +| FIL | 10-11 09:00 | 10-11 10:00 | stop_loss | 1 | -1.49 | +| APT | 10-11 10:00 | 10-11 11:00 | stop_loss | 1 | -1.49 | +| ARB | 10-11 09:00 | 10-11 11:00 | stop_loss | 2 | -1.49 | +| ATOM | 10-11 08:00 | 10-11 11:00 | stop_loss | 3 | -1.49 | +| AVAX | 10-11 09:00 | 10-11 11:00 | stop_loss | 2 | -1.49 | +| FIL | 10-11 10:00 | 10-11 11:00 | stop_loss | 1 | -1.49 | +| INJ | 10-11 09:00 | 10-11 11:00 | stop_loss | 2 | -1.49 | +| NEAR | 10-11 09:00 | 10-11 11:00 | stop_loss | 2 | -1.49 | +| OP | 10-11 09:00 | 10-11 11:00 | stop_loss | 2 | -1.49 | +| PEPE | 10-11 09:00 | 10-11 11:00 | stop_loss | 2 | -1.49 | +| SEI | 10-11 09:00 | 10-11 11:00 | stop_loss | 2 | -1.49 | +| SUI | 10-11 09:00 | 10-11 11:00 | stop_loss | 2 | -1.49 | +| TIA | 10-11 09:00 | 10-11 11:00 | stop_loss | 2 | -1.49 | +| WIF | 10-11 09:00 | 10-11 11:00 | stop_loss | 2 | -1.49 | +| TON | 10-11 09:00 | 10-11 13:00 | stop_loss | 4 | -1.49 | +| UNI | 10-11 09:00 | 10-11 13:00 | stop_loss | 4 | -1.49 | +| FIL | 10-11 19:00 | 10-11 20:00 | stop_loss | 1 | -1.49 | +| INJ | 10-11 19:00 | 10-11 20:00 | stop_loss | 1 | -1.49 | +| LTC | 10-11 19:00 | 10-11 20:00 | stop_loss | 1 | -1.49 | +| SEI | 10-11 19:00 | 10-11 20:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-11 19:00 | 10-11 20:00 | stop_loss | 1 | -1.49 | +| SUI | 10-11 19:00 | 10-11 20:00 | stop_loss | 1 | -1.49 | +| TRX | 10-11 09:00 | 10-11 20:00 | stop_loss | 11 | -1.49 | +| BONK | 10-11 20:00 | 10-11 21:00 | stop_loss | 1 | -1.49 | +| FET | 10-11 20:00 | 10-11 21:00 | stop_loss | 1 | -1.49 | +| FIL | 10-11 20:00 | 10-11 21:00 | stop_loss | 1 | -1.49 | +| INJ | 10-11 20:00 | 10-11 21:00 | stop_loss | 1 | -1.49 | +| KAS | 10-11 20:00 | 10-11 21:00 | stop_loss | 1 | -1.49 | +| LTC | 10-11 20:00 | 10-11 21:00 | stop_loss | 1 | -1.49 | +| NEAR | 10-11 20:00 | 10-11 21:00 | stop_loss | 1 | -1.49 | +| OP | 10-11 20:00 | 10-11 21:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-11 20:00 | 10-11 21:00 | stop_loss | 1 | -1.49 | +| SEI | 10-11 20:00 | 10-11 21:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-11 20:00 | 10-11 21:00 | stop_loss | 1 | -1.49 | +| SUI | 10-11 20:00 | 10-11 21:00 | stop_loss | 1 | -1.49 | +| FIL | 10-11 21:00 | 10-11 22:00 | trailing_stop | 1 | -0.42 | +| FET | 10-11 22:00 | 10-11 23:00 | stop_loss | 1 | -1.49 | +| ARB | 10-11 22:00 | 10-12 00:00 | stop_loss | 2 | -1.49 | +| AVAX | 10-11 21:00 | 10-12 00:00 | stop_loss | 3 | -1.49 | +| BONK | 10-11 22:00 | 10-12 00:00 | stop_loss | 2 | -1.49 | +| KAS | 10-11 21:00 | 10-12 00:00 | stop_loss | 3 | -1.49 | +| PEPE | 10-11 22:00 | 10-12 00:00 | stop_loss | 2 | -1.49 | +| RENDER | 10-11 21:00 | 10-12 00:00 | stop_loss | 3 | -1.49 | +| SEI | 10-11 21:00 | 10-12 00:00 | stop_loss | 3 | -1.49 | +| SHIB | 10-11 22:00 | 10-12 00:00 | stop_loss | 2 | -1.49 | +| SUI | 10-11 21:00 | 10-12 00:00 | stop_loss | 3 | -1.49 | +| TIA | 10-11 22:00 | 10-12 00:00 | stop_loss | 2 | -1.49 | +| TON | 10-11 22:00 | 10-12 00:00 | stop_loss | 2 | -1.49 | +| WIF | 10-11 22:00 | 10-12 00:00 | stop_loss | 2 | -1.49 | +| FET | 10-11 23:00 | 10-12 01:00 | stop_loss | 2 | -1.49 | +| OP | 10-11 21:00 | 10-12 01:00 | stop_loss | 4 | -1.49 | +| SUI | 10-12 00:00 | 10-12 01:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-12 00:00 | 10-12 02:00 | stop_loss | 2 | -1.49 | +| SUI | 10-12 01:00 | 10-12 02:00 | take_profit | 1 | +1.49 | +| ATOM | 10-12 00:00 | 10-12 03:00 | take_profit | 3 | +1.49 | +| NEAR | 10-12 02:00 | 10-12 03:00 | take_profit | 1 | +1.49 | +| FET | 10-12 05:00 | 10-12 06:00 | take_profit | 1 | +1.49 | +| FIL | 10-12 05:00 | 10-12 06:00 | trailing_stop | 1 | -0.55 | +| OP | 10-12 05:00 | 10-12 06:00 | trailing_stop | 1 | -0.37 | +| PEPE | 10-12 04:00 | 10-12 06:00 | trailing_stop | 2 | -0.53 | +| SEI | 10-12 05:00 | 10-12 06:00 | trailing_stop | 1 | -0.41 | +| TIA | 10-12 04:00 | 10-12 06:00 | trailing_stop | 2 | -0.33 | +| TON | 10-12 04:00 | 10-12 06:00 | take_profit | 2 | +1.49 | +| APT | 10-12 06:00 | 10-12 07:00 | stop_loss | 1 | -1.49 | +| BONK | 10-12 05:00 | 10-12 07:00 | trailing_stop | 2 | -0.62 | +| APT | 10-12 07:00 | 10-12 08:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-12 05:00 | 10-12 08:00 | stop_loss | 3 | -1.49 | +| FET | 10-12 07:00 | 10-12 08:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-12 04:00 | 10-12 08:00 | take_profit | 4 | +1.49 | +| SUI | 10-12 05:00 | 10-12 08:00 | stop_loss | 3 | -1.49 | +| WIF | 10-12 07:00 | 10-12 08:00 | stop_loss | 1 | -1.49 | +| APT | 10-12 08:00 | 10-12 09:00 | trailing_stop | 1 | -0.45 | +| AVAX | 10-12 08:00 | 10-12 09:00 | stop_loss | 1 | -1.49 | +| FET | 10-12 08:00 | 10-12 09:00 | stop_loss | 1 | -1.49 | +| INJ | 10-12 04:00 | 10-12 09:00 | trailing_stop | 5 | -0.20 | +| SUI | 10-12 08:00 | 10-12 09:00 | stop_loss | 1 | -1.49 | +| WIF | 10-12 08:00 | 10-12 09:00 | stop_loss | 1 | -1.49 | +| TRX | 10-11 20:00 | 10-12 14:00 | take_profit | 18 | +1.49 | +| FET | 10-13 05:00 | 10-13 06:00 | take_profit | 1 | +1.49 | +| APT | 10-13 07:00 | 10-13 09:00 | trailing_stop | 2 | -0.61 | +| FET | 10-13 09:00 | 10-13 10:00 | stop_loss | 1 | -1.49 | +| APT | 10-13 09:00 | 10-13 11:00 | stop_loss | 2 | -1.49 | +| FET | 10-13 10:00 | 10-13 11:00 | stop_loss | 1 | -1.49 | +| APT | 10-13 11:00 | 10-13 13:00 | take_profit | 2 | +1.49 | +| LTC | 10-13 11:00 | 10-13 13:00 | take_profit | 2 | +1.49 | +| OP | 10-13 14:00 | 10-13 15:00 | take_profit | 1 | +1.49 | +| FET | 10-13 22:00 | 10-14 00:00 | stop_loss | 2 | -1.49 | +| TRX | 10-13 10:00 | 10-14 04:00 | stop_loss | 18 | -1.49 | +| FET | 10-14 04:00 | 10-14 05:00 | stop_loss | 1 | -1.49 | +| SEI | 10-14 04:00 | 10-14 05:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-14 05:00 | 10-14 06:00 | stop_loss | 1 | -1.49 | +| FET | 10-14 05:00 | 10-14 06:00 | stop_loss | 1 | -1.49 | +| KAS | 10-14 05:00 | 10-14 06:00 | stop_loss | 1 | -1.49 | +| SEI | 10-14 05:00 | 10-14 06:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-14 05:00 | 10-14 06:00 | stop_loss | 1 | -1.49 | +| TRX | 10-14 04:00 | 10-14 06:00 | stop_loss | 2 | -1.49 | +| APT | 10-14 06:00 | 10-14 07:00 | stop_loss | 1 | -1.49 | +| ARB | 10-14 06:00 | 10-14 07:00 | stop_loss | 1 | -1.49 | +| BONK | 10-14 06:00 | 10-14 07:00 | stop_loss | 1 | -1.49 | +| FET | 10-14 06:00 | 10-14 07:00 | stop_loss | 1 | -1.49 | +| INJ | 10-14 06:00 | 10-14 07:00 | stop_loss | 1 | -1.49 | +| OP | 10-14 06:00 | 10-14 07:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-14 06:00 | 10-14 07:00 | stop_loss | 1 | -1.49 | +| SEI | 10-14 06:00 | 10-14 07:00 | stop_loss | 1 | -1.49 | +| ARB | 10-14 07:00 | 10-14 08:00 | trailing_stop | 1 | -0.71 | +| AVAX | 10-14 07:00 | 10-14 08:00 | trailing_stop | 1 | -0.58 | +| BONK | 10-14 07:00 | 10-14 08:00 | stop_loss | 1 | -1.49 | +| ETC | 10-14 06:00 | 10-14 08:00 | stop_loss | 2 | -1.49 | +| FIL | 10-14 06:00 | 10-14 08:00 | stop_loss | 2 | -1.49 | +| NEAR | 10-14 06:00 | 10-14 08:00 | stop_loss | 2 | -1.49 | +| OP | 10-14 07:00 | 10-14 08:00 | take_profit | 1 | +1.49 | +| RENDER | 10-14 07:00 | 10-14 08:00 | stop_loss | 1 | -1.49 | +| SUI | 10-14 06:00 | 10-14 08:00 | stop_loss | 2 | -1.49 | +| UNI | 10-14 07:00 | 10-14 08:00 | trailing_stop | 1 | -0.49 | +| FET | 10-14 07:00 | 10-14 09:00 | take_profit | 2 | +1.49 | +| APT | 10-14 07:00 | 10-14 10:00 | stop_loss | 3 | -1.49 | +| ATOM | 10-14 06:00 | 10-14 10:00 | stop_loss | 4 | -1.49 | +| AVAX | 10-14 08:00 | 10-14 10:00 | stop_loss | 2 | -1.49 | +| BONK | 10-14 08:00 | 10-14 10:00 | stop_loss | 2 | -1.49 | +| FIL | 10-14 08:00 | 10-14 10:00 | stop_loss | 2 | -1.49 | +| INJ | 10-14 07:00 | 10-14 10:00 | stop_loss | 3 | -1.49 | +| KAS | 10-14 06:00 | 10-14 10:00 | stop_loss | 4 | -1.49 | +| LTC | 10-14 06:00 | 10-14 10:00 | stop_loss | 4 | -1.49 | +| PEPE | 10-14 07:00 | 10-14 10:00 | stop_loss | 3 | -1.49 | +| RENDER | 10-14 08:00 | 10-14 10:00 | stop_loss | 2 | -1.49 | +| SEI | 10-14 07:00 | 10-14 10:00 | stop_loss | 3 | -1.49 | +| SHIB | 10-14 06:00 | 10-14 10:00 | stop_loss | 4 | -1.49 | +| TIA | 10-14 09:00 | 10-14 10:00 | stop_loss | 1 | -1.49 | +| TON | 10-14 06:00 | 10-14 10:00 | trailing_stop | 4 | -0.67 | +| TRX | 10-14 06:00 | 10-14 10:00 | stop_loss | 4 | -1.49 | +| UNI | 10-14 08:00 | 10-14 10:00 | stop_loss | 2 | -1.49 | +| WIF | 10-14 07:00 | 10-14 10:00 | stop_loss | 3 | -1.49 | +| TIA | 10-14 10:00 | 10-14 13:00 | stop_loss | 3 | -1.49 | +| TON | 10-14 14:00 | 10-14 15:00 | trailing_stop | 1 | +0.18 | +| PEPE | 10-14 15:00 | 10-14 16:00 | stop_loss | 1 | -1.49 | +| TRX | 10-14 10:00 | 10-14 16:00 | take_profit | 6 | +1.49 | +| APT | 10-14 16:00 | 10-14 17:00 | stop_loss | 1 | -1.49 | +| LTC | 10-14 16:00 | 10-14 17:00 | stop_loss | 1 | -1.49 | +| NEAR | 10-14 15:00 | 10-14 17:00 | stop_loss | 2 | -1.49 | +| APT | 10-14 17:00 | 10-14 19:00 | stop_loss | 2 | -1.49 | +| ATOM | 10-14 15:00 | 10-14 19:00 | trailing_stop | 4 | -0.66 | +| FET | 10-15 05:00 | 10-15 06:00 | stop_loss | 1 | -1.49 | +| FET | 10-15 06:00 | 10-15 07:00 | stop_loss | 1 | -1.49 | +| TIA | 10-15 07:00 | 10-15 09:00 | stop_loss | 2 | -1.49 | +| INJ | 10-15 10:00 | 10-15 11:00 | stop_loss | 1 | -1.49 | +| NEAR | 10-15 10:00 | 10-15 11:00 | stop_loss | 1 | -1.49 | +| APT | 10-15 11:00 | 10-15 12:00 | stop_loss | 1 | -1.49 | +| ARB | 10-15 11:00 | 10-15 12:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-15 10:00 | 10-15 12:00 | stop_loss | 2 | -1.49 | +| INJ | 10-15 11:00 | 10-15 12:00 | stop_loss | 1 | -1.49 | +| NEAR | 10-15 11:00 | 10-15 12:00 | stop_loss | 1 | -1.49 | +| OP | 10-15 11:00 | 10-15 12:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-15 11:00 | 10-15 12:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-15 11:00 | 10-15 12:00 | stop_loss | 1 | -1.49 | +| TIA | 10-15 11:00 | 10-15 12:00 | stop_loss | 1 | -1.49 | +| APT | 10-15 12:00 | 10-15 13:00 | stop_loss | 1 | -1.49 | +| ARB | 10-15 12:00 | 10-15 13:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-15 12:00 | 10-15 13:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-15 12:00 | 10-15 13:00 | stop_loss | 1 | -1.49 | +| BONK | 10-15 12:00 | 10-15 13:00 | stop_loss | 1 | -1.49 | +| ETC | 10-15 12:00 | 10-15 13:00 | stop_loss | 1 | -1.49 | +| FIL | 10-15 12:00 | 10-15 13:00 | stop_loss | 1 | -1.49 | +| INJ | 10-15 12:00 | 10-15 13:00 | stop_loss | 1 | -1.49 | +| KAS | 10-15 12:00 | 10-15 13:00 | stop_loss | 1 | -1.49 | +| NEAR | 10-15 12:00 | 10-15 13:00 | stop_loss | 1 | -1.49 | +| OP | 10-15 12:00 | 10-15 13:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-15 12:00 | 10-15 13:00 | stop_loss | 1 | -1.49 | +| SEI | 10-15 11:00 | 10-15 13:00 | stop_loss | 2 | -1.49 | +| SHIB | 10-15 12:00 | 10-15 13:00 | stop_loss | 1 | -1.49 | +| TIA | 10-15 12:00 | 10-15 13:00 | stop_loss | 1 | -1.49 | +| TON | 10-15 12:00 | 10-15 13:00 | stop_loss | 1 | -1.49 | +| UNI | 10-15 12:00 | 10-15 13:00 | stop_loss | 1 | -1.49 | +| WIF | 10-15 12:00 | 10-15 13:00 | stop_loss | 1 | -1.49 | +| APT | 10-15 13:00 | 10-15 14:00 | stop_loss | 1 | -1.49 | +| ARB | 10-15 13:00 | 10-15 14:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-15 13:00 | 10-15 14:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-15 13:00 | 10-15 14:00 | stop_loss | 1 | -1.49 | +| BONK | 10-15 13:00 | 10-15 14:00 | stop_loss | 1 | -1.49 | +| ETC | 10-15 13:00 | 10-15 14:00 | stop_loss | 1 | -1.49 | +| FIL | 10-15 13:00 | 10-15 14:00 | stop_loss | 1 | -1.49 | +| INJ | 10-15 13:00 | 10-15 14:00 | stop_loss | 1 | -1.49 | +| NEAR | 10-15 13:00 | 10-15 14:00 | stop_loss | 1 | -1.49 | +| OP | 10-15 13:00 | 10-15 14:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-15 13:00 | 10-15 14:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-15 13:00 | 10-15 14:00 | stop_loss | 1 | -1.49 | +| SEI | 10-15 13:00 | 10-15 14:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-15 13:00 | 10-15 14:00 | stop_loss | 1 | -1.49 | +| SUI | 10-15 13:00 | 10-15 14:00 | stop_loss | 1 | -1.49 | +| TIA | 10-15 13:00 | 10-15 14:00 | stop_loss | 1 | -1.49 | +| TON | 10-15 13:00 | 10-15 14:00 | stop_loss | 1 | -1.49 | +| UNI | 10-15 13:00 | 10-15 14:00 | stop_loss | 1 | -1.49 | +| WIF | 10-15 13:00 | 10-15 14:00 | stop_loss | 1 | -1.49 | +| APT | 10-15 14:00 | 10-15 15:00 | stop_loss | 1 | -1.49 | +| ARB | 10-15 14:00 | 10-15 15:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-15 14:00 | 10-15 15:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-15 14:00 | 10-15 15:00 | stop_loss | 1 | -1.49 | +| BONK | 10-15 14:00 | 10-15 15:00 | stop_loss | 1 | -1.49 | +| ETC | 10-15 14:00 | 10-15 15:00 | stop_loss | 1 | -1.49 | +| FIL | 10-15 14:00 | 10-15 15:00 | stop_loss | 1 | -1.49 | +| INJ | 10-15 14:00 | 10-15 15:00 | stop_loss | 1 | -1.49 | +| LTC | 10-15 14:00 | 10-15 15:00 | stop_loss | 1 | -1.49 | +| NEAR | 10-15 14:00 | 10-15 15:00 | stop_loss | 1 | -1.49 | +| OP | 10-15 14:00 | 10-15 15:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-15 14:00 | 10-15 15:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-15 14:00 | 10-15 15:00 | stop_loss | 1 | -1.49 | +| SEI | 10-15 14:00 | 10-15 15:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-15 14:00 | 10-15 15:00 | stop_loss | 1 | -1.49 | +| SUI | 10-15 14:00 | 10-15 15:00 | stop_loss | 1 | -1.49 | +| TON | 10-15 14:00 | 10-15 15:00 | stop_loss | 1 | -1.49 | +| UNI | 10-15 14:00 | 10-15 15:00 | stop_loss | 1 | -1.49 | +| WIF | 10-15 14:00 | 10-15 15:00 | stop_loss | 1 | -1.49 | +| TIA | 10-15 14:00 | 10-15 16:00 | stop_loss | 2 | -1.49 | +| AVAX | 10-15 15:00 | 10-15 17:00 | stop_loss | 2 | -1.49 | +| BONK | 10-15 15:00 | 10-15 17:00 | trailing_stop | 2 | -0.60 | +| FIL | 10-15 15:00 | 10-15 17:00 | stop_loss | 2 | -1.49 | +| INJ | 10-15 15:00 | 10-15 17:00 | stop_loss | 2 | -1.49 | +| KAS | 10-15 15:00 | 10-15 17:00 | stop_loss | 2 | -1.49 | +| LTC | 10-15 15:00 | 10-15 17:00 | stop_loss | 2 | -1.49 | +| OP | 10-15 15:00 | 10-15 17:00 | stop_loss | 2 | -1.49 | +| RENDER | 10-15 15:00 | 10-15 17:00 | stop_loss | 2 | -1.49 | +| SEI | 10-15 15:00 | 10-15 17:00 | stop_loss | 2 | -1.49 | +| SUI | 10-15 15:00 | 10-15 17:00 | stop_loss | 2 | -1.49 | +| TIA | 10-15 16:00 | 10-15 17:00 | stop_loss | 1 | -1.49 | +| APT | 10-15 15:00 | 10-15 19:00 | trailing_stop | 4 | -0.54 | +| ARB | 10-15 15:00 | 10-15 19:00 | trailing_stop | 4 | -0.71 | +| ETC | 10-15 15:00 | 10-15 19:00 | trailing_stop | 4 | -0.67 | +| NEAR | 10-15 15:00 | 10-15 19:00 | stop_loss | 4 | -1.49 | +| UNI | 10-15 15:00 | 10-15 19:00 | trailing_stop | 4 | -0.69 | +| ATOM | 10-15 15:00 | 10-15 20:00 | stop_loss | 5 | -1.49 | +| PEPE | 10-15 15:00 | 10-15 20:00 | stop_loss | 5 | -1.49 | +| SHIB | 10-15 15:00 | 10-15 20:00 | stop_loss | 5 | -1.49 | +| TON | 10-15 15:00 | 10-15 20:00 | stop_loss | 5 | -1.49 | +| WIF | 10-15 15:00 | 10-15 20:00 | stop_loss | 5 | -1.49 | +| TIA | 10-15 20:00 | 10-15 21:00 | stop_loss | 1 | -1.49 | +| FET | 10-15 20:00 | 10-15 22:00 | stop_loss | 2 | -1.49 | +| FET | 10-15 22:00 | 10-16 00:00 | take_profit | 2 | +1.49 | +| APT | 10-16 00:00 | 10-16 01:00 | trailing_stop | 1 | +0.01 | +| TRX | 10-15 14:00 | 10-16 02:00 | take_profit | 12 | +1.49 | +| FET | 10-16 03:00 | 10-16 04:00 | take_profit | 1 | +1.49 | +| FIL | 10-16 02:00 | 10-16 04:00 | stop_loss | 2 | -1.49 | +| OP | 10-16 02:00 | 10-16 04:00 | stop_loss | 2 | -1.49 | +| SUI | 10-16 02:00 | 10-16 04:00 | stop_loss | 2 | -1.49 | +| LTC | 10-16 00:00 | 10-16 05:00 | stop_loss | 5 | -1.49 | +| PEPE | 10-16 01:00 | 10-16 05:00 | stop_loss | 4 | -1.49 | +| INJ | 10-16 03:00 | 10-16 06:00 | trailing_stop | 3 | +0.16 | +| KAS | 10-16 03:00 | 10-16 06:00 | take_profit | 3 | +1.49 | +| SEI | 10-16 03:00 | 10-16 07:00 | trailing_stop | 4 | -0.32 | +| SUI | 10-16 04:00 | 10-16 07:00 | trailing_stop | 3 | -0.67 | +| ETC | 10-16 03:00 | 10-16 08:00 | trailing_stop | 5 | -0.30 | +| FET | 10-16 07:00 | 10-16 08:00 | stop_loss | 1 | -1.49 | +| TIA | 10-16 03:00 | 10-16 08:00 | stop_loss | 5 | -1.49 | +| APT | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| ARB | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| BONK | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| ETC | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| FET | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| FIL | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| INJ | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| KAS | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| LTC | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| NEAR | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| OP | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| SEI | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| SUI | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| TIA | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| UNI | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| WIF | 10-16 15:00 | 10-16 16:00 | stop_loss | 1 | -1.49 | +| FIL | 10-16 17:00 | 10-16 18:00 | stop_loss | 1 | -1.49 | +| INJ | 10-16 17:00 | 10-16 18:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-16 17:00 | 10-16 18:00 | stop_loss | 1 | -1.49 | +| FET | 10-16 18:00 | 10-16 19:00 | stop_loss | 1 | -1.49 | +| FIL | 10-16 18:00 | 10-16 19:00 | stop_loss | 1 | -1.49 | +| APT | 10-16 19:00 | 10-16 20:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-16 19:00 | 10-16 20:00 | stop_loss | 1 | -1.49 | +| BONK | 10-16 19:00 | 10-16 20:00 | stop_loss | 1 | -1.49 | +| FET | 10-16 19:00 | 10-16 20:00 | stop_loss | 1 | -1.49 | +| FIL | 10-16 19:00 | 10-16 20:00 | stop_loss | 1 | -1.49 | +| NEAR | 10-16 19:00 | 10-16 20:00 | stop_loss | 1 | -1.49 | +| OP | 10-16 19:00 | 10-16 20:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-16 19:00 | 10-16 20:00 | stop_loss | 1 | -1.49 | +| SEI | 10-16 19:00 | 10-16 20:00 | stop_loss | 1 | -1.49 | +| SUI | 10-16 19:00 | 10-16 20:00 | stop_loss | 1 | -1.49 | +| TIA | 10-16 19:00 | 10-16 20:00 | stop_loss | 1 | -1.49 | +| TON | 10-16 19:00 | 10-16 20:00 | stop_loss | 1 | -1.49 | +| TRX | 10-16 18:00 | 10-16 20:00 | stop_loss | 2 | -1.49 | +| UNI | 10-16 19:00 | 10-16 20:00 | stop_loss | 1 | -1.49 | +| APT | 10-16 20:00 | 10-16 21:00 | trailing_stop | 1 | +0.15 | +| ARB | 10-16 20:00 | 10-16 21:00 | trailing_stop | 1 | -0.56 | +| ATOM | 10-16 20:00 | 10-16 21:00 | trailing_stop | 1 | -0.41 | +| BONK | 10-16 20:00 | 10-16 21:00 | trailing_stop | 1 | -0.59 | +| ETC | 10-16 20:00 | 10-16 21:00 | trailing_stop | 1 | -0.69 | +| FET | 10-16 20:00 | 10-16 21:00 | trailing_stop | 1 | +0.08 | +| FIL | 10-16 20:00 | 10-16 21:00 | trailing_stop | 1 | +0.18 | +| INJ | 10-16 20:00 | 10-16 21:00 | trailing_stop | 1 | -0.31 | +| KAS | 10-16 20:00 | 10-16 21:00 | trailing_stop | 1 | -0.21 | +| NEAR | 10-16 20:00 | 10-16 21:00 | trailing_stop | 1 | -0.62 | +| OP | 10-16 20:00 | 10-16 21:00 | trailing_stop | 1 | -0.44 | +| PEPE | 10-16 20:00 | 10-16 21:00 | trailing_stop | 1 | -0.25 | +| RENDER | 10-16 20:00 | 10-16 21:00 | trailing_stop | 1 | -0.36 | +| SUI | 10-16 20:00 | 10-16 21:00 | trailing_stop | 1 | -0.47 | +| TIA | 10-16 20:00 | 10-16 21:00 | trailing_stop | 1 | +0.15 | +| TON | 10-16 20:00 | 10-16 21:00 | trailing_stop | 1 | -0.56 | +| WIF | 10-16 20:00 | 10-16 21:00 | trailing_stop | 1 | -0.55 | +| LTC | 10-16 19:00 | 10-16 23:00 | trailing_stop | 4 | -0.34 | +| AVAX | 10-16 19:00 | 10-17 01:00 | take_profit | 6 | +1.49 | +| SEI | 10-16 20:00 | 10-17 01:00 | take_profit | 5 | +1.49 | +| UNI | 10-16 20:00 | 10-17 01:00 | take_profit | 5 | +1.49 | +| SUI | 10-16 22:00 | 10-17 02:00 | stop_loss | 4 | -1.49 | +| AVAX | 10-17 01:00 | 10-17 04:00 | stop_loss | 3 | -1.49 | +| ATOM | 10-17 02:00 | 10-17 05:00 | stop_loss | 3 | -1.49 | +| BONK | 10-17 02:00 | 10-17 05:00 | stop_loss | 3 | -1.49 | +| FIL | 10-17 03:00 | 10-17 05:00 | stop_loss | 2 | -1.49 | +| INJ | 10-17 02:00 | 10-17 05:00 | stop_loss | 3 | -1.49 | +| LTC | 10-17 01:00 | 10-17 05:00 | stop_loss | 4 | -1.49 | +| NEAR | 10-17 03:00 | 10-17 05:00 | stop_loss | 2 | -1.49 | +| OP | 10-17 03:00 | 10-17 05:00 | stop_loss | 2 | -1.49 | +| PEPE | 10-17 02:00 | 10-17 05:00 | stop_loss | 3 | -1.49 | +| RENDER | 10-17 03:00 | 10-17 05:00 | stop_loss | 2 | -1.49 | +| SEI | 10-17 02:00 | 10-17 05:00 | stop_loss | 3 | -1.49 | +| SHIB | 10-16 20:00 | 10-17 05:00 | trailing_stop | 9 | -0.21 | +| TON | 10-17 02:00 | 10-17 05:00 | stop_loss | 3 | -1.49 | +| FET | 10-17 02:00 | 10-17 06:00 | stop_loss | 4 | -1.49 | +| TIA | 10-17 02:00 | 10-17 06:00 | stop_loss | 4 | -1.49 | +| APT | 10-17 06:00 | 10-17 07:00 | stop_loss | 1 | -1.49 | +| ARB | 10-17 06:00 | 10-17 07:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-17 06:00 | 10-17 07:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-17 06:00 | 10-17 07:00 | stop_loss | 1 | -1.49 | +| ETC | 10-17 06:00 | 10-17 07:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-17 06:00 | 10-17 07:00 | stop_loss | 1 | -1.49 | +| SEI | 10-17 06:00 | 10-17 07:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-17 06:00 | 10-17 07:00 | stop_loss | 1 | -1.49 | +| TON | 10-17 06:00 | 10-17 07:00 | stop_loss | 1 | -1.49 | +| TRX | 10-16 20:00 | 10-17 07:00 | stop_loss | 11 | -1.49 | +| UNI | 10-17 06:00 | 10-17 07:00 | stop_loss | 1 | -1.49 | +| WIF | 10-17 06:00 | 10-17 07:00 | stop_loss | 1 | -1.49 | +| APT | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| ARB | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| BONK | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| ETC | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| FET | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| FIL | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| INJ | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| KAS | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| LTC | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| NEAR | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| OP | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| SEI | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| SUI | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| TIA | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| TON | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| UNI | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| WIF | 10-17 07:00 | 10-17 08:00 | stop_loss | 1 | -1.49 | +| APT | 10-17 08:00 | 10-17 09:00 | take_profit | 1 | +1.49 | +| ARB | 10-17 08:00 | 10-17 09:00 | take_profit | 1 | +1.49 | +| ATOM | 10-17 08:00 | 10-17 09:00 | take_profit | 1 | +1.49 | +| AVAX | 10-17 08:00 | 10-17 09:00 | take_profit | 1 | +1.49 | +| BONK | 10-17 08:00 | 10-17 09:00 | take_profit | 1 | +1.49 | +| ETC | 10-17 08:00 | 10-17 09:00 | take_profit | 1 | +1.49 | +| FET | 10-17 08:00 | 10-17 09:00 | take_profit | 1 | +1.49 | +| FIL | 10-17 08:00 | 10-17 09:00 | take_profit | 1 | +1.49 | +| INJ | 10-17 08:00 | 10-17 09:00 | take_profit | 1 | +1.49 | +| KAS | 10-17 08:00 | 10-17 09:00 | stop_loss | 1 | -1.49 | +| LTC | 10-17 08:00 | 10-17 09:00 | take_profit | 1 | +1.49 | +| NEAR | 10-17 08:00 | 10-17 09:00 | take_profit | 1 | +1.49 | +| OP | 10-17 08:00 | 10-17 09:00 | take_profit | 1 | +1.49 | +| PEPE | 10-17 08:00 | 10-17 09:00 | take_profit | 1 | +1.49 | +| RENDER | 10-17 08:00 | 10-17 09:00 | take_profit | 1 | +1.49 | +| SEI | 10-17 08:00 | 10-17 09:00 | take_profit | 1 | +1.49 | +| SHIB | 10-17 08:00 | 10-17 09:00 | take_profit | 1 | +1.49 | +| SUI | 10-17 08:00 | 10-17 09:00 | take_profit | 1 | +1.49 | +| TIA | 10-17 08:00 | 10-17 09:00 | take_profit | 1 | +1.49 | +| TON | 10-17 08:00 | 10-17 09:00 | take_profit | 1 | +1.49 | +| UNI | 10-17 08:00 | 10-17 09:00 | take_profit | 1 | +1.49 | +| WIF | 10-17 08:00 | 10-17 09:00 | take_profit | 1 | +1.49 | +| APT | 10-17 13:00 | 10-17 14:00 | stop_loss | 1 | -1.49 | +| ARB | 10-17 13:00 | 10-17 14:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-17 13:00 | 10-17 14:00 | stop_loss | 1 | -1.49 | +| TRX | 10-17 07:00 | 10-17 14:00 | stop_loss | 7 | -1.49 | +| APT | 10-17 14:00 | 10-17 15:00 | take_profit | 1 | +1.49 | +| ARB | 10-17 14:00 | 10-17 15:00 | trailing_stop | 1 | +0.06 | +| ATOM | 10-17 14:00 | 10-17 15:00 | trailing_stop | 1 | -0.35 | +| AVAX | 10-17 14:00 | 10-17 15:00 | trailing_stop | 1 | -0.09 | +| BONK | 10-17 14:00 | 10-17 15:00 | take_profit | 1 | +1.49 | +| ETC | 10-17 14:00 | 10-17 15:00 | trailing_stop | 1 | -0.07 | +| FIL | 10-17 14:00 | 10-17 15:00 | trailing_stop | 1 | -0.05 | +| INJ | 10-17 14:00 | 10-17 15:00 | take_profit | 1 | +1.49 | +| LTC | 10-17 14:00 | 10-17 15:00 | trailing_stop | 1 | -0.09 | +| PEPE | 10-17 14:00 | 10-17 15:00 | take_profit | 1 | +1.49 | +| RENDER | 10-17 14:00 | 10-17 15:00 | take_profit | 1 | +1.49 | +| SHIB | 10-17 14:00 | 10-17 15:00 | take_profit | 1 | +1.49 | +| SUI | 10-17 14:00 | 10-17 15:00 | take_profit | 1 | +1.49 | +| UNI | 10-17 14:00 | 10-17 15:00 | take_profit | 1 | +1.49 | +| WIF | 10-17 14:00 | 10-17 15:00 | take_profit | 1 | +1.49 | +| SEI | 10-17 15:00 | 10-17 16:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-17 15:00 | 10-17 23:00 | trailing_stop | 8 | -0.41 | +| UNI | 10-18 08:00 | 10-18 12:00 | stop_loss | 4 | -1.49 | +| FET | 10-18 04:00 | 10-18 13:00 | stop_loss | 9 | -1.49 | +| SEI | 10-17 16:00 | 10-18 13:00 | trailing_stop | 21 | -0.00 | +| UNI | 10-18 12:00 | 10-18 14:00 | stop_loss | 2 | -1.49 | +| KAS | 10-18 13:00 | 10-18 15:00 | stop_loss | 2 | -1.49 | +| FET | 10-18 13:00 | 10-18 16:00 | stop_loss | 3 | -1.49 | +| KAS | 10-18 15:00 | 10-18 17:00 | trailing_stop | 2 | +0.02 | +| NEAR | 10-18 15:00 | 10-18 22:00 | take_profit | 7 | +1.49 | +| TRX | 10-17 16:00 | 10-19 02:00 | take_profit | 34 | +1.49 | +| ETC | 10-19 00:00 | 10-19 08:00 | stop_loss | 8 | -1.49 | +| KAS | 10-19 00:00 | 10-19 08:00 | stop_loss | 8 | -1.49 | +| APT | 10-19 08:00 | 10-19 09:00 | trailing_stop | 1 | -0.32 | +| ATOM | 10-19 08:00 | 10-19 09:00 | trailing_stop | 1 | -0.63 | +| SUI | 10-19 08:00 | 10-19 09:00 | take_profit | 1 | +1.49 | +| SUI | 10-20 01:00 | 10-20 03:00 | take_profit | 2 | +1.49 | +| FET | 10-20 17:00 | 10-20 21:00 | stop_loss | 4 | -1.49 | +| RENDER | 10-20 20:00 | 10-20 22:00 | stop_loss | 2 | -1.49 | +| AVAX | 10-20 17:00 | 10-21 01:00 | stop_loss | 8 | -1.49 | +| BONK | 10-21 00:00 | 10-21 01:00 | stop_loss | 1 | -1.49 | +| FET | 10-20 21:00 | 10-21 01:00 | stop_loss | 4 | -1.49 | +| LTC | 10-20 23:00 | 10-21 01:00 | stop_loss | 2 | -1.49 | +| NEAR | 10-20 21:00 | 10-21 01:00 | stop_loss | 4 | -1.49 | +| RENDER | 10-20 22:00 | 10-21 01:00 | stop_loss | 3 | -1.49 | +| SUI | 10-20 17:00 | 10-21 01:00 | stop_loss | 8 | -1.49 | +| TIA | 10-20 17:00 | 10-21 01:00 | stop_loss | 8 | -1.49 | +| UNI | 10-20 20:00 | 10-21 01:00 | stop_loss | 5 | -1.49 | +| WIF | 10-20 21:00 | 10-21 01:00 | stop_loss | 4 | -1.49 | +| APT | 10-21 01:00 | 10-21 02:00 | stop_loss | 1 | -1.49 | +| OP | 10-21 01:00 | 10-21 02:00 | stop_loss | 1 | -1.49 | +| WIF | 10-21 01:00 | 10-21 02:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-21 01:00 | 10-21 03:00 | stop_loss | 2 | -1.49 | +| FIL | 10-21 01:00 | 10-21 03:00 | stop_loss | 2 | -1.49 | +| INJ | 10-21 01:00 | 10-21 03:00 | stop_loss | 2 | -1.49 | +| RENDER | 10-21 01:00 | 10-21 03:00 | stop_loss | 2 | -1.49 | +| SHIB | 10-20 18:00 | 10-21 03:00 | stop_loss | 9 | -1.49 | +| TON | 10-20 20:00 | 10-21 03:00 | stop_loss | 7 | -1.49 | +| APT | 10-21 02:00 | 10-21 04:00 | stop_loss | 2 | -1.49 | +| ARB | 10-21 02:00 | 10-21 04:00 | stop_loss | 2 | -1.49 | +| ATOM | 10-21 03:00 | 10-21 04:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-21 03:00 | 10-21 04:00 | stop_loss | 1 | -1.49 | +| ETC | 10-21 03:00 | 10-21 04:00 | stop_loss | 1 | -1.49 | +| FIL | 10-21 03:00 | 10-21 04:00 | stop_loss | 1 | -1.49 | +| INJ | 10-21 03:00 | 10-21 04:00 | stop_loss | 1 | -1.49 | +| LTC | 10-21 01:00 | 10-21 04:00 | stop_loss | 3 | -1.49 | +| NEAR | 10-21 02:00 | 10-21 04:00 | stop_loss | 2 | -1.49 | +| OP | 10-21 02:00 | 10-21 04:00 | stop_loss | 2 | -1.49 | +| PEPE | 10-21 02:00 | 10-21 04:00 | stop_loss | 2 | -1.49 | +| RENDER | 10-21 03:00 | 10-21 04:00 | stop_loss | 1 | -1.49 | +| SEI | 10-21 02:00 | 10-21 04:00 | stop_loss | 2 | -1.49 | +| SHIB | 10-21 03:00 | 10-21 04:00 | stop_loss | 1 | -1.49 | +| WIF | 10-21 02:00 | 10-21 04:00 | stop_loss | 2 | -1.49 | +| TRX | 10-21 02:00 | 10-21 05:00 | stop_loss | 3 | -1.49 | +| BONK | 10-21 04:00 | 10-21 07:00 | trailing_stop | 3 | -0.18 | +| RENDER | 10-21 04:00 | 10-21 07:00 | trailing_stop | 3 | -0.13 | +| SEI | 10-21 04:00 | 10-21 07:00 | trailing_stop | 3 | -0.25 | +| ARB | 10-21 04:00 | 10-21 08:00 | trailing_stop | 4 | +0.02 | +| ATOM | 10-21 04:00 | 10-21 08:00 | trailing_stop | 4 | -0.30 | +| INJ | 10-21 04:00 | 10-21 08:00 | stop_loss | 4 | -1.49 | +| KAS | 10-21 04:00 | 10-21 08:00 | stop_loss | 4 | -1.49 | +| NEAR | 10-21 04:00 | 10-21 08:00 | trailing_stop | 4 | -0.42 | +| OP | 10-21 04:00 | 10-21 08:00 | trailing_stop | 4 | -0.24 | +| FIL | 10-21 04:00 | 10-21 09:00 | take_profit | 5 | +1.49 | +| LTC | 10-21 04:00 | 10-21 09:00 | trailing_stop | 5 | -0.44 | +| AVAX | 10-21 04:00 | 10-21 10:00 | take_profit | 6 | +1.49 | +| ETC | 10-21 04:00 | 10-21 10:00 | take_profit | 6 | +1.49 | +| TIA | 10-21 04:00 | 10-21 10:00 | take_profit | 6 | +1.49 | +| PEPE | 10-21 04:00 | 10-21 11:00 | trailing_stop | 7 | -0.40 | +| APT | 10-21 04:00 | 10-21 12:00 | take_profit | 8 | +1.49 | +| SHIB | 10-21 04:00 | 10-21 12:00 | take_profit | 8 | +1.49 | +| UNI | 10-21 04:00 | 10-21 12:00 | take_profit | 8 | +1.49 | +| WIF | 10-21 04:00 | 10-21 12:00 | take_profit | 8 | +1.49 | +| TON | 10-21 04:00 | 10-21 13:00 | take_profit | 9 | +1.49 | +| APT | 10-21 12:00 | 10-21 14:00 | take_profit | 2 | +1.49 | +| ARB | 10-21 13:00 | 10-21 14:00 | take_profit | 1 | +1.49 | +| AVAX | 10-21 10:00 | 10-21 14:00 | take_profit | 4 | +1.49 | +| BONK | 10-21 11:00 | 10-21 14:00 | take_profit | 3 | +1.49 | +| FET | 10-21 12:00 | 10-21 14:00 | take_profit | 2 | +1.49 | +| INJ | 10-21 12:00 | 10-21 14:00 | take_profit | 2 | +1.49 | +| KAS | 10-21 13:00 | 10-21 14:00 | take_profit | 1 | +1.49 | +| LTC | 10-21 12:00 | 10-21 14:00 | take_profit | 2 | +1.49 | +| OP | 10-21 11:00 | 10-21 14:00 | take_profit | 3 | +1.49 | +| PEPE | 10-21 12:00 | 10-21 14:00 | take_profit | 2 | +1.49 | +| RENDER | 10-21 11:00 | 10-21 14:00 | take_profit | 3 | +1.49 | +| SEI | 10-21 11:00 | 10-21 14:00 | take_profit | 3 | +1.49 | +| SHIB | 10-21 12:00 | 10-21 14:00 | take_profit | 2 | +1.49 | +| SUI | 10-21 04:00 | 10-21 14:00 | take_profit | 10 | +1.49 | +| WIF | 10-21 12:00 | 10-21 14:00 | take_profit | 2 | +1.49 | +| TRX | 10-21 05:00 | 10-21 15:00 | take_profit | 10 | +1.49 | +| FET | 10-21 20:00 | 10-21 21:00 | stop_loss | 1 | -1.49 | +| FET | 10-21 21:00 | 10-21 22:00 | stop_loss | 1 | -1.49 | +| FET | 10-21 22:00 | 10-21 23:00 | stop_loss | 1 | -1.49 | +| ARB | 10-22 04:00 | 10-22 05:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-22 04:00 | 10-22 05:00 | stop_loss | 1 | -1.49 | +| BONK | 10-22 04:00 | 10-22 05:00 | stop_loss | 1 | -1.49 | +| ETC | 10-22 04:00 | 10-22 05:00 | stop_loss | 1 | -1.49 | +| FET | 10-21 23:00 | 10-22 05:00 | trailing_stop | 6 | +0.12 | +| INJ | 10-22 04:00 | 10-22 05:00 | stop_loss | 1 | -1.49 | +| KAS | 10-22 04:00 | 10-22 05:00 | stop_loss | 1 | -1.49 | +| LTC | 10-22 04:00 | 10-22 05:00 | stop_loss | 1 | -1.49 | +| NEAR | 10-22 04:00 | 10-22 05:00 | stop_loss | 1 | -1.49 | +| OP | 10-22 04:00 | 10-22 05:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-22 04:00 | 10-22 05:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-22 04:00 | 10-22 05:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-22 04:00 | 10-22 05:00 | stop_loss | 1 | -1.49 | +| SUI | 10-22 04:00 | 10-22 05:00 | stop_loss | 1 | -1.49 | +| TIA | 10-22 04:00 | 10-22 05:00 | stop_loss | 1 | -1.49 | +| UNI | 10-22 04:00 | 10-22 05:00 | stop_loss | 1 | -1.49 | +| WIF | 10-22 04:00 | 10-22 05:00 | stop_loss | 1 | -1.49 | +| FIL | 10-22 05:00 | 10-22 06:00 | stop_loss | 1 | -1.49 | +| APT | 10-22 06:00 | 10-22 07:00 | trailing_stop | 1 | -0.43 | +| PEPE | 10-22 05:00 | 10-22 07:00 | stop_loss | 2 | -1.49 | +| TIA | 10-22 05:00 | 10-22 07:00 | stop_loss | 2 | -1.49 | +| UNI | 10-22 05:00 | 10-22 07:00 | stop_loss | 2 | -1.49 | +| WIF | 10-22 05:00 | 10-22 07:00 | stop_loss | 2 | -1.49 | +| FET | 10-22 05:00 | 10-22 08:00 | stop_loss | 3 | -1.49 | +| APT | 10-22 08:00 | 10-22 09:00 | trailing_stop | 1 | -0.69 | +| AVAX | 10-22 08:00 | 10-22 09:00 | stop_loss | 1 | -1.49 | +| FET | 10-22 08:00 | 10-22 09:00 | stop_loss | 1 | -1.49 | +| NEAR | 10-22 05:00 | 10-22 09:00 | stop_loss | 4 | -1.49 | +| OP | 10-22 05:00 | 10-22 09:00 | stop_loss | 4 | -1.49 | +| SHIB | 10-22 05:00 | 10-22 09:00 | stop_loss | 4 | -1.49 | +| LTC | 10-22 05:00 | 10-22 10:00 | stop_loss | 5 | -1.49 | +| AVAX | 10-22 09:00 | 10-22 11:00 | stop_loss | 2 | -1.49 | +| TON | 10-22 07:00 | 10-22 11:00 | stop_loss | 4 | -1.49 | +| WIF | 10-22 14:00 | 10-22 15:00 | stop_loss | 1 | -1.49 | +| WIF | 10-22 15:00 | 10-22 16:00 | stop_loss | 1 | -1.49 | +| KAS | 10-22 15:00 | 10-22 17:00 | stop_loss | 2 | -1.49 | +| BONK | 10-22 18:00 | 10-22 19:00 | stop_loss | 1 | -1.49 | +| OP | 10-22 18:00 | 10-22 19:00 | stop_loss | 1 | -1.49 | +| TIA | 10-22 18:00 | 10-22 19:00 | stop_loss | 1 | -1.49 | +| SEI | 10-22 17:00 | 10-22 20:00 | stop_loss | 3 | -1.49 | +| ATOM | 10-22 20:00 | 10-22 21:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-22 20:00 | 10-22 21:00 | stop_loss | 1 | -1.49 | +| BONK | 10-22 20:00 | 10-22 21:00 | stop_loss | 1 | -1.49 | +| KAS | 10-22 18:00 | 10-22 21:00 | stop_loss | 3 | -1.49 | +| SEI | 10-22 20:00 | 10-22 21:00 | stop_loss | 1 | -1.49 | +| TIA | 10-22 20:00 | 10-22 21:00 | stop_loss | 1 | -1.49 | +| TON | 10-22 18:00 | 10-22 21:00 | stop_loss | 3 | -1.49 | +| UNI | 10-22 20:00 | 10-22 21:00 | stop_loss | 1 | -1.49 | +| WIF | 10-22 20:00 | 10-22 21:00 | stop_loss | 1 | -1.49 | +| APT | 10-22 21:00 | 10-22 22:00 | trailing_stop | 1 | -0.56 | +| WIF | 10-22 21:00 | 10-22 22:00 | stop_loss | 1 | -1.49 | +| ARB | 10-22 21:00 | 10-22 23:00 | trailing_stop | 2 | -0.13 | +| ATOM | 10-22 21:00 | 10-22 23:00 | trailing_stop | 2 | -0.45 | +| AVAX | 10-22 21:00 | 10-22 23:00 | trailing_stop | 2 | +0.04 | +| BONK | 10-22 21:00 | 10-22 23:00 | take_profit | 2 | +1.49 | +| ETC | 10-22 21:00 | 10-22 23:00 | trailing_stop | 2 | -0.14 | +| FET | 10-22 21:00 | 10-22 23:00 | take_profit | 2 | +1.49 | +| FIL | 10-22 21:00 | 10-22 23:00 | take_profit | 2 | +1.49 | +| KAS | 10-22 21:00 | 10-22 23:00 | take_profit | 2 | +1.49 | +| NEAR | 10-22 21:00 | 10-22 23:00 | trailing_stop | 2 | -0.22 | +| OP | 10-22 21:00 | 10-22 23:00 | take_profit | 2 | +1.49 | +| PEPE | 10-22 21:00 | 10-22 23:00 | take_profit | 2 | +1.49 | +| RENDER | 10-22 21:00 | 10-22 23:00 | take_profit | 2 | +1.49 | +| SEI | 10-22 21:00 | 10-22 23:00 | take_profit | 2 | +1.49 | +| SHIB | 10-22 21:00 | 10-22 23:00 | trailing_stop | 2 | -0.38 | +| TIA | 10-22 21:00 | 10-22 23:00 | take_profit | 2 | +1.49 | +| UNI | 10-22 21:00 | 10-22 23:00 | take_profit | 2 | +1.49 | +| WIF | 10-22 22:00 | 10-22 23:00 | take_profit | 1 | +1.49 | +| APT | 10-23 03:00 | 10-23 06:00 | take_profit | 3 | +1.49 | +| ARB | 10-23 03:00 | 10-23 06:00 | take_profit | 3 | +1.49 | +| AVAX | 10-23 03:00 | 10-23 06:00 | take_profit | 3 | +1.49 | +| BONK | 10-23 03:00 | 10-23 06:00 | trailing_stop | 3 | -0.36 | +| FET | 10-23 03:00 | 10-23 06:00 | take_profit | 3 | +1.49 | +| INJ | 10-23 04:00 | 10-23 06:00 | take_profit | 2 | +1.49 | +| OP | 10-23 03:00 | 10-23 06:00 | take_profit | 3 | +1.49 | +| PEPE | 10-23 03:00 | 10-23 06:00 | take_profit | 3 | +1.49 | +| RENDER | 10-23 04:00 | 10-23 06:00 | take_profit | 2 | +1.49 | +| SUI | 10-23 03:00 | 10-23 06:00 | take_profit | 3 | +1.49 | +| TIA | 10-23 03:00 | 10-23 06:00 | take_profit | 3 | +1.49 | +| TON | 10-22 21:00 | 10-23 10:00 | trailing_stop | 13 | +0.22 | +| ATOM | 10-23 03:00 | 10-23 13:00 | take_profit | 10 | +1.49 | +| TRX | 10-22 10:00 | 10-23 15:00 | trailing_stop | 29 | -0.30 | +| TRX | 10-23 15:00 | 10-23 23:00 | stop_loss | 8 | -1.49 | +| ATOM | 10-24 03:00 | 10-24 04:00 | trailing_stop | 1 | -0.34 | +| AVAX | 10-23 20:00 | 10-24 04:00 | take_profit | 8 | +1.49 | +| TRX | 10-24 07:00 | 10-24 10:00 | stop_loss | 3 | -1.49 | +| APT | 10-24 07:00 | 10-24 12:00 | take_profit | 5 | +1.49 | +| TRX | 10-24 10:00 | 10-24 15:00 | stop_loss | 5 | -1.49 | +| TRX | 10-24 15:00 | 10-24 16:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-24 16:00 | 10-24 19:00 | take_profit | 3 | +1.49 | +| TRX | 10-24 16:00 | 10-25 00:00 | stop_loss | 8 | -1.49 | +| UNI | 10-24 20:00 | 10-25 02:00 | stop_loss | 6 | -1.49 | +| TRX | 10-25 00:00 | 10-25 04:00 | stop_loss | 4 | -1.49 | +| SUI | 10-25 10:00 | 10-25 14:00 | take_profit | 4 | +1.49 | +| WIF | 10-25 10:00 | 10-25 14:00 | take_profit | 4 | +1.49 | +| TIA | 10-25 10:00 | 10-25 17:00 | take_profit | 7 | +1.49 | +| OP | 10-25 10:00 | 10-25 18:00 | take_profit | 8 | +1.49 | +| TRX | 10-25 09:00 | 10-25 19:00 | confirmed_bearish_exit | 10 | -0.10 | +| ETC | 10-25 10:00 | 10-26 03:00 | trailing_stop | 17 | -0.45 | +| INJ | 10-26 02:00 | 10-26 08:00 | take_profit | 6 | +1.49 | +| ARB | 10-26 02:00 | 10-26 09:00 | take_profit | 7 | +1.49 | +| PEPE | 10-26 01:00 | 10-26 09:00 | take_profit | 8 | +1.49 | +| TON | 10-25 07:00 | 10-26 11:00 | take_profit | 28 | +1.49 | +| TRX | 10-26 04:00 | 10-26 13:00 | take_profit | 9 | +1.49 | +| APT | 10-27 09:00 | 10-27 13:00 | stop_loss | 4 | -1.49 | +| BONK | 10-27 12:00 | 10-27 13:00 | stop_loss | 1 | -1.49 | +| FET | 10-27 09:00 | 10-27 13:00 | stop_loss | 4 | -1.49 | +| FIL | 10-27 12:00 | 10-27 13:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-27 12:00 | 10-27 13:00 | stop_loss | 1 | -1.49 | +| SEI | 10-27 12:00 | 10-27 13:00 | stop_loss | 1 | -1.49 | +| WIF | 10-27 12:00 | 10-27 13:00 | stop_loss | 1 | -1.49 | +| SEI | 10-27 13:00 | 10-27 14:00 | stop_loss | 1 | -1.49 | +| LTC | 10-27 12:00 | 10-27 15:00 | take_profit | 3 | +1.49 | +| AVAX | 10-27 15:00 | 10-27 16:00 | trailing_stop | 1 | -0.40 | +| ETC | 10-27 12:00 | 10-27 16:00 | take_profit | 4 | +1.49 | +| INJ | 10-27 12:00 | 10-27 16:00 | trailing_stop | 4 | +0.12 | +| OP | 10-27 12:00 | 10-27 16:00 | take_profit | 4 | +1.49 | +| PEPE | 10-27 08:00 | 10-27 16:00 | take_profit | 8 | +1.49 | +| SHIB | 10-27 12:00 | 10-27 16:00 | trailing_stop | 4 | +0.01 | +| TIA | 10-27 12:00 | 10-27 16:00 | take_profit | 4 | +1.49 | +| TON | 10-27 12:00 | 10-27 16:00 | take_profit | 4 | +1.49 | +| UNI | 10-27 14:00 | 10-27 16:00 | trailing_stop | 2 | +0.17 | +| ATOM | 10-27 12:00 | 10-27 19:00 | trailing_stop | 7 | -0.16 | +| APT | 10-27 18:00 | 10-27 20:00 | stop_loss | 2 | -1.49 | +| ARB | 10-27 19:00 | 10-27 20:00 | stop_loss | 1 | -1.49 | +| OP | 10-27 19:00 | 10-27 20:00 | stop_loss | 1 | -1.49 | +| UNI | 10-27 18:00 | 10-27 20:00 | stop_loss | 2 | -1.49 | +| INJ | 10-27 19:00 | 10-27 21:00 | stop_loss | 2 | -1.49 | +| TIA | 10-27 19:00 | 10-27 21:00 | stop_loss | 2 | -1.49 | +| AVAX | 10-27 20:00 | 10-27 23:00 | stop_loss | 3 | -1.49 | +| BONK | 10-27 20:00 | 10-27 23:00 | stop_loss | 3 | -1.49 | +| SEI | 10-27 19:00 | 10-27 23:00 | stop_loss | 4 | -1.49 | +| ATOM | 10-27 20:00 | 10-28 02:00 | stop_loss | 6 | -1.49 | +| FET | 10-27 22:00 | 10-28 02:00 | stop_loss | 4 | -1.49 | +| LTC | 10-28 05:00 | 10-28 06:00 | take_profit | 1 | +1.49 | +| FET | 10-28 06:00 | 10-28 13:00 | take_profit | 7 | +1.49 | +| PEPE | 10-28 07:00 | 10-28 13:00 | take_profit | 6 | +1.49 | +| RENDER | 10-28 07:00 | 10-28 13:00 | take_profit | 6 | +1.49 | +| BONK | 10-28 08:00 | 10-28 14:00 | stop_loss | 6 | -1.49 | +| FIL | 10-28 07:00 | 10-28 14:00 | stop_loss | 7 | -1.49 | +| SHIB | 10-28 08:00 | 10-28 14:00 | stop_loss | 6 | -1.49 | +| ATOM | 10-28 19:00 | 10-28 20:00 | stop_loss | 1 | -1.49 | +| INJ | 10-28 19:00 | 10-28 20:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-28 19:00 | 10-28 20:00 | stop_loss | 1 | -1.49 | +| SEI | 10-28 19:00 | 10-28 20:00 | stop_loss | 1 | -1.49 | +| TRX | 10-27 14:00 | 10-28 20:00 | stop_loss | 30 | -1.49 | +| UNI | 10-28 19:00 | 10-28 20:00 | stop_loss | 1 | -1.49 | +| APT | 10-28 20:00 | 10-28 21:00 | stop_loss | 1 | -1.49 | +| ARB | 10-28 20:00 | 10-28 21:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-28 20:00 | 10-28 21:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-28 20:00 | 10-28 21:00 | stop_loss | 1 | -1.49 | +| BONK | 10-28 20:00 | 10-28 21:00 | stop_loss | 1 | -1.49 | +| ETC | 10-28 20:00 | 10-28 21:00 | stop_loss | 1 | -1.49 | +| FET | 10-28 20:00 | 10-28 21:00 | stop_loss | 1 | -1.49 | +| FIL | 10-28 20:00 | 10-28 21:00 | stop_loss | 1 | -1.49 | +| INJ | 10-28 20:00 | 10-28 21:00 | stop_loss | 1 | -1.49 | +| LTC | 10-28 20:00 | 10-28 21:00 | stop_loss | 1 | -1.49 | +| NEAR | 10-28 20:00 | 10-28 21:00 | stop_loss | 1 | -1.49 | +| OP | 10-28 20:00 | 10-28 21:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-28 20:00 | 10-28 21:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-28 20:00 | 10-28 21:00 | stop_loss | 1 | -1.49 | +| SUI | 10-28 20:00 | 10-28 21:00 | stop_loss | 1 | -1.49 | +| TIA | 10-28 20:00 | 10-28 21:00 | stop_loss | 1 | -1.49 | +| UNI | 10-28 20:00 | 10-28 21:00 | stop_loss | 1 | -1.49 | +| WIF | 10-28 20:00 | 10-28 21:00 | stop_loss | 1 | -1.49 | +| ARB | 10-28 21:00 | 10-28 22:00 | trailing_stop | 1 | -0.65 | +| ATOM | 10-28 21:00 | 10-28 22:00 | trailing_stop | 1 | -0.54 | +| OP | 10-28 21:00 | 10-28 22:00 | trailing_stop | 1 | -0.49 | +| PEPE | 10-28 21:00 | 10-28 22:00 | trailing_stop | 1 | -0.56 | +| TIA | 10-28 21:00 | 10-28 22:00 | trailing_stop | 1 | -0.41 | +| SEI | 10-28 20:00 | 10-29 03:00 | stop_loss | 7 | -1.49 | +| KAS | 10-28 23:00 | 10-29 06:00 | take_profit | 7 | +1.49 | +| FET | 10-29 04:00 | 10-29 08:00 | stop_loss | 4 | -1.49 | +| INJ | 10-29 06:00 | 10-29 08:00 | stop_loss | 2 | -1.49 | +| ARB | 10-29 04:00 | 10-29 10:00 | trailing_stop | 6 | -0.36 | +| BONK | 10-28 21:00 | 10-29 10:00 | trailing_stop | 13 | -0.52 | +| FET | 10-29 08:00 | 10-29 10:00 | trailing_stop | 2 | -0.43 | +| FIL | 10-28 21:00 | 10-29 10:00 | take_profit | 13 | +1.49 | +| INJ | 10-29 08:00 | 10-29 10:00 | take_profit | 2 | +1.49 | +| NEAR | 10-28 21:00 | 10-29 10:00 | take_profit | 13 | +1.49 | +| OP | 10-29 05:00 | 10-29 10:00 | trailing_stop | 5 | -0.00 | +| WIF | 10-29 08:00 | 10-29 10:00 | stop_loss | 2 | -1.49 | +| APT | 10-28 21:00 | 10-29 11:00 | take_profit | 14 | +1.49 | +| SHIB | 10-28 20:00 | 10-29 11:00 | take_profit | 15 | +1.49 | +| ETC | 10-28 21:00 | 10-29 12:00 | take_profit | 15 | +1.49 | +| SUI | 10-28 21:00 | 10-29 12:00 | take_profit | 15 | +1.49 | +| AVAX | 10-28 21:00 | 10-29 13:00 | take_profit | 16 | +1.49 | +| PEPE | 10-29 06:00 | 10-29 13:00 | take_profit | 7 | +1.49 | +| RENDER | 10-28 21:00 | 10-29 13:00 | take_profit | 16 | +1.49 | +| SEI | 10-29 07:00 | 10-29 13:00 | take_profit | 6 | +1.49 | +| ATOM | 10-29 07:00 | 10-29 15:00 | stop_loss | 8 | -1.49 | +| UNI | 10-28 21:00 | 10-29 15:00 | stop_loss | 18 | -1.49 | +| UNI | 10-29 15:00 | 10-29 17:00 | take_profit | 2 | +1.49 | +| TON | 10-29 15:00 | 10-29 18:00 | stop_loss | 3 | -1.49 | +| TRX | 10-28 21:00 | 10-29 18:00 | stop_loss | 21 | -1.49 | +| TRX | 10-29 18:00 | 10-30 04:00 | trailing_stop | 10 | -0.42 | +| UNI | 10-30 03:00 | 10-30 04:00 | stop_loss | 1 | -1.49 | +| APT | 10-30 04:00 | 10-30 05:00 | take_profit | 1 | +1.49 | +| ARB | 10-30 04:00 | 10-30 05:00 | take_profit | 1 | +1.49 | +| ATOM | 10-30 04:00 | 10-30 05:00 | trailing_stop | 1 | -0.20 | +| AVAX | 10-30 04:00 | 10-30 05:00 | take_profit | 1 | +1.49 | +| BONK | 10-30 04:00 | 10-30 05:00 | take_profit | 1 | +1.49 | +| ETC | 10-30 04:00 | 10-30 05:00 | trailing_stop | 1 | -0.19 | +| FIL | 10-30 04:00 | 10-30 05:00 | trailing_stop | 1 | -0.03 | +| INJ | 10-30 04:00 | 10-30 05:00 | take_profit | 1 | +1.49 | +| KAS | 10-30 04:00 | 10-30 05:00 | stop_loss | 1 | -1.49 | +| LTC | 10-30 04:00 | 10-30 05:00 | trailing_stop | 1 | +0.10 | +| NEAR | 10-30 04:00 | 10-30 05:00 | trailing_stop | 1 | -0.27 | +| OP | 10-30 04:00 | 10-30 05:00 | trailing_stop | 1 | -0.18 | +| PEPE | 10-30 04:00 | 10-30 05:00 | take_profit | 1 | +1.49 | +| SHIB | 10-30 04:00 | 10-30 05:00 | trailing_stop | 1 | -0.31 | +| SUI | 10-30 04:00 | 10-30 05:00 | take_profit | 1 | +1.49 | +| TIA | 10-30 04:00 | 10-30 05:00 | take_profit | 1 | +1.49 | +| TON | 10-30 04:00 | 10-30 05:00 | trailing_stop | 1 | -0.15 | +| ARB | 10-30 12:00 | 10-30 13:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-30 12:00 | 10-30 13:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-30 12:00 | 10-30 13:00 | stop_loss | 1 | -1.49 | +| ETC | 10-30 12:00 | 10-30 13:00 | stop_loss | 1 | -1.49 | +| FET | 10-30 12:00 | 10-30 13:00 | stop_loss | 1 | -1.49 | +| KAS | 10-30 12:00 | 10-30 13:00 | stop_loss | 1 | -1.49 | +| LTC | 10-30 12:00 | 10-30 13:00 | stop_loss | 1 | -1.49 | +| NEAR | 10-30 12:00 | 10-30 13:00 | stop_loss | 1 | -1.49 | +| OP | 10-30 12:00 | 10-30 13:00 | stop_loss | 1 | -1.49 | +| PEPE | 10-30 12:00 | 10-30 13:00 | stop_loss | 1 | -1.49 | +| RENDER | 10-30 12:00 | 10-30 13:00 | stop_loss | 1 | -1.49 | +| SEI | 10-30 12:00 | 10-30 13:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-30 12:00 | 10-30 13:00 | stop_loss | 1 | -1.49 | +| SUI | 10-30 12:00 | 10-30 13:00 | stop_loss | 1 | -1.49 | +| KAS | 10-30 13:00 | 10-30 14:00 | trailing_stop | 1 | +0.00 | +| SUI | 10-30 13:00 | 10-30 14:00 | stop_loss | 1 | -1.49 | +| APT | 10-30 13:00 | 10-30 15:00 | stop_loss | 2 | -1.49 | +| ARB | 10-30 13:00 | 10-30 15:00 | stop_loss | 2 | -1.49 | +| ATOM | 10-30 13:00 | 10-30 15:00 | stop_loss | 2 | -1.49 | +| AVAX | 10-30 13:00 | 10-30 15:00 | stop_loss | 2 | -1.49 | +| BONK | 10-30 13:00 | 10-30 15:00 | stop_loss | 2 | -1.49 | +| FET | 10-30 13:00 | 10-30 15:00 | stop_loss | 2 | -1.49 | +| FIL | 10-30 13:00 | 10-30 15:00 | stop_loss | 2 | -1.49 | +| INJ | 10-30 13:00 | 10-30 15:00 | stop_loss | 2 | -1.49 | +| KAS | 10-30 14:00 | 10-30 15:00 | stop_loss | 1 | -1.49 | +| LTC | 10-30 13:00 | 10-30 15:00 | stop_loss | 2 | -1.49 | +| NEAR | 10-30 13:00 | 10-30 15:00 | stop_loss | 2 | -1.49 | +| OP | 10-30 13:00 | 10-30 15:00 | stop_loss | 2 | -1.49 | +| PEPE | 10-30 13:00 | 10-30 15:00 | stop_loss | 2 | -1.49 | +| RENDER | 10-30 13:00 | 10-30 15:00 | stop_loss | 2 | -1.49 | +| SEI | 10-30 13:00 | 10-30 15:00 | stop_loss | 2 | -1.49 | +| SHIB | 10-30 13:00 | 10-30 15:00 | stop_loss | 2 | -1.49 | +| SUI | 10-30 14:00 | 10-30 15:00 | stop_loss | 1 | -1.49 | +| TIA | 10-30 13:00 | 10-30 15:00 | stop_loss | 2 | -1.49 | +| TON | 10-30 13:00 | 10-30 15:00 | stop_loss | 2 | -1.49 | +| WIF | 10-30 13:00 | 10-30 15:00 | stop_loss | 2 | -1.49 | +| KAS | 10-30 15:00 | 10-30 16:00 | trailing_stop | 1 | -0.67 | +| APT | 10-30 15:00 | 10-30 17:00 | stop_loss | 2 | -1.49 | +| ARB | 10-30 15:00 | 10-30 17:00 | stop_loss | 2 | -1.49 | +| AVAX | 10-30 15:00 | 10-30 17:00 | stop_loss | 2 | -1.49 | +| ETC | 10-30 13:00 | 10-30 17:00 | stop_loss | 4 | -1.49 | +| FET | 10-30 15:00 | 10-30 17:00 | stop_loss | 2 | -1.49 | +| FIL | 10-30 15:00 | 10-30 17:00 | stop_loss | 2 | -1.49 | +| INJ | 10-30 15:00 | 10-30 17:00 | stop_loss | 2 | -1.49 | +| LTC | 10-30 15:00 | 10-30 17:00 | stop_loss | 2 | -1.49 | +| NEAR | 10-30 15:00 | 10-30 17:00 | stop_loss | 2 | -1.49 | +| OP | 10-30 15:00 | 10-30 17:00 | stop_loss | 2 | -1.49 | +| PEPE | 10-30 15:00 | 10-30 17:00 | stop_loss | 2 | -1.49 | +| RENDER | 10-30 15:00 | 10-30 17:00 | stop_loss | 2 | -1.49 | +| SEI | 10-30 15:00 | 10-30 17:00 | stop_loss | 2 | -1.49 | +| SHIB | 10-30 15:00 | 10-30 17:00 | stop_loss | 2 | -1.49 | +| SUI | 10-30 15:00 | 10-30 17:00 | stop_loss | 2 | -1.49 | +| TIA | 10-30 15:00 | 10-30 17:00 | stop_loss | 2 | -1.49 | +| TON | 10-30 15:00 | 10-30 17:00 | stop_loss | 2 | -1.49 | +| ATOM | 10-30 15:00 | 10-30 18:00 | stop_loss | 3 | -1.49 | +| FIL | 10-30 17:00 | 10-30 18:00 | stop_loss | 1 | -1.49 | +| TON | 10-30 17:00 | 10-30 18:00 | stop_loss | 1 | -1.49 | +| APT | 10-30 18:00 | 10-30 19:00 | stop_loss | 1 | -1.49 | +| ARB | 10-30 18:00 | 10-30 19:00 | stop_loss | 1 | -1.49 | +| ATOM | 10-30 18:00 | 10-30 19:00 | stop_loss | 1 | -1.49 | +| BONK | 10-30 18:00 | 10-30 19:00 | stop_loss | 1 | -1.49 | +| INJ | 10-30 18:00 | 10-30 19:00 | stop_loss | 1 | -1.49 | +| SEI | 10-30 18:00 | 10-30 19:00 | stop_loss | 1 | -1.49 | +| SHIB | 10-30 18:00 | 10-30 19:00 | stop_loss | 1 | -1.49 | +| TIA | 10-30 18:00 | 10-30 19:00 | stop_loss | 1 | -1.49 | +| AVAX | 10-30 19:00 | 10-30 20:00 | take_profit | 1 | +1.49 | +| BONK | 10-30 19:00 | 10-30 20:00 | trailing_stop | 1 | -0.00 | +| ETC | 10-30 18:00 | 10-30 20:00 | trailing_stop | 2 | -0.12 | +| SHIB | 10-30 19:00 | 10-30 20:00 | trailing_stop | 1 | -0.12 | +| TON | 10-30 18:00 | 10-30 20:00 | trailing_stop | 2 | -0.05 | +| FIL | 10-30 18:00 | 10-30 22:00 | take_profit | 4 | +1.49 | +| ETC | 10-30 22:00 | 10-30 23:00 | trailing_stop | 1 | -0.60 | +| ATOM | 10-30 22:00 | 10-31 00:00 | stop_loss | 2 | -1.49 | +| SUI | 10-30 23:00 | 10-31 00:00 | trailing_stop | 1 | -0.19 | +| APT | 10-30 23:00 | 10-31 01:00 | trailing_stop | 2 | -0.13 | +| ARB | 10-30 23:00 | 10-31 01:00 | trailing_stop | 2 | -0.24 | +| BONK | 10-31 00:00 | 10-31 01:00 | trailing_stop | 1 | -0.66 | +| FIL | 10-30 23:00 | 10-31 01:00 | trailing_stop | 2 | -0.48 | +| TIA | 10-31 00:00 | 10-31 01:00 | trailing_stop | 1 | -0.41 | +| WIF | 10-30 23:00 | 10-31 01:00 | take_profit | 2 | +1.49 | +| ARB | 10-31 01:00 | 10-31 02:00 | stop_loss | 1 | -1.49 | +| FET | 10-30 23:00 | 10-31 02:00 | trailing_stop | 3 | -0.34 | +| KAS | 10-30 22:00 | 10-31 02:00 | trailing_stop | 4 | -0.09 | +| NEAR | 10-30 23:00 | 10-31 02:00 | trailing_stop | 3 | -0.48 | +| SUI | 10-31 00:00 | 10-31 02:00 | stop_loss | 2 | -1.49 | +| TON | 10-30 22:00 | 10-31 03:00 | take_profit | 5 | +1.49 | +| INJ | 10-31 00:00 | 10-31 04:00 | trailing_stop | 4 | +0.09 | +| LTC | 10-30 22:00 | 10-31 04:00 | take_profit | 6 | +1.49 | +| PEPE | 10-31 00:00 | 10-31 04:00 | trailing_stop | 4 | +0.12 | +| RENDER | 10-30 22:00 | 10-31 05:00 | take_profit | 7 | +1.49 | +| OP | 10-31 00:00 | 10-31 06:00 | stop_loss | 6 | -1.49 | +| SEI | 10-30 23:00 | 10-31 06:00 | trailing_stop | 7 | -0.15 | +| UNI | 10-30 23:00 | 10-31 06:00 | trailing_stop | 7 | +0.04 | +| AVAX | 10-31 00:00 | 10-31 11:00 | trailing_stop | 11 | -0.35 | +| TRX | 10-30 13:00 | 10-31 14:00 | take_profit | 25 | +1.49 | +| KAS | 10-31 15:00 | 10-31 16:00 | stop_loss | 1 | -1.49 | +| UNI | 10-31 15:00 | 10-31 16:00 | stop_loss | 1 | -1.49 | +| FET | 10-31 16:00 | 10-31 17:00 | stop_loss | 1 | -1.49 | +| INJ | 10-31 16:00 | 10-31 17:00 | stop_loss | 1 | -1.49 | +| OP | 10-31 16:00 | 10-31 17:00 | stop_loss | 1 | -1.49 | +| TIA | 10-31 16:00 | 10-31 17:00 | stop_loss | 1 | -1.49 | +| INJ | 10-31 17:00 | 10-31 18:00 | trailing_stop | 1 | -0.51 | +| OP | 10-31 17:00 | 10-31 18:00 | trailing_stop | 1 | -0.69 | +| UNI | 10-31 16:00 | 10-31 18:00 | trailing_stop | 2 | -0.60 | +| AVAX | 10-31 16:00 | 10-31 19:00 | take_profit | 3 | +1.49 | +| FET | 10-31 17:00 | 10-31 19:00 | trailing_stop | 2 | -0.44 | +| KAS | 10-31 16:00 | 10-31 19:00 | take_profit | 3 | +1.49 | +| TIA | 10-31 17:00 | 10-31 19:00 | take_profit | 2 | +1.49 | +| ATOM | 11-01 04:00 | 11-01 07:00 | trailing_stop | 3 | -0.37 | +| TON | 11-01 22:00 | 11-02 03:00 | take_profit | 5 | +1.49 | +| FET | 11-02 13:00 | 11-02 14:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-02 13:00 | 11-02 14:00 | stop_loss | 1 | -1.49 | +| FET | 11-02 14:00 | 11-02 15:00 | take_profit | 1 | +1.49 | +| KAS | 11-02 14:00 | 11-02 15:00 | stop_loss | 1 | -1.49 | +| ARB | 11-02 14:00 | 11-02 16:00 | stop_loss | 2 | -1.49 | +| ETC | 11-02 14:00 | 11-02 16:00 | stop_loss | 2 | -1.49 | +| FIL | 11-02 14:00 | 11-02 16:00 | stop_loss | 2 | -1.49 | +| INJ | 11-02 14:00 | 11-02 16:00 | stop_loss | 2 | -1.49 | +| LTC | 11-02 14:00 | 11-02 16:00 | stop_loss | 2 | -1.49 | +| PEPE | 11-02 14:00 | 11-02 16:00 | stop_loss | 2 | -1.49 | +| RENDER | 11-02 14:00 | 11-02 16:00 | stop_loss | 2 | -1.49 | +| SHIB | 11-02 14:00 | 11-02 19:00 | stop_loss | 5 | -1.49 | +| KAS | 11-02 15:00 | 11-02 22:00 | trailing_stop | 7 | -0.43 | +| ATOM | 11-02 14:00 | 11-02 23:00 | take_profit | 9 | +1.49 | +| AVAX | 11-02 14:00 | 11-02 23:00 | take_profit | 9 | +1.49 | +| BONK | 11-02 22:00 | 11-02 23:00 | take_profit | 1 | +1.49 | +| INJ | 11-02 22:00 | 11-02 23:00 | take_profit | 1 | +1.49 | +| NEAR | 11-02 14:00 | 11-02 23:00 | take_profit | 9 | +1.49 | +| OP | 11-02 19:00 | 11-02 23:00 | take_profit | 4 | +1.49 | +| UNI | 11-02 14:00 | 11-02 23:00 | take_profit | 9 | +1.49 | +| TIA | 11-03 00:00 | 11-03 01:00 | stop_loss | 1 | -1.49 | +| TON | 11-02 14:00 | 11-03 01:00 | trailing_stop | 11 | -0.57 | +| APT | 11-03 01:00 | 11-03 02:00 | stop_loss | 1 | -1.49 | +| ARB | 11-03 01:00 | 11-03 02:00 | stop_loss | 1 | -1.49 | +| ATOM | 11-03 01:00 | 11-03 02:00 | stop_loss | 1 | -1.49 | +| FIL | 11-02 22:00 | 11-03 02:00 | stop_loss | 4 | -1.49 | +| INJ | 11-03 01:00 | 11-03 02:00 | stop_loss | 1 | -1.49 | +| LTC | 11-03 01:00 | 11-03 02:00 | stop_loss | 1 | -1.49 | +| OP | 11-03 01:00 | 11-03 02:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-03 01:00 | 11-03 02:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-03 01:00 | 11-03 02:00 | stop_loss | 1 | -1.49 | +| SEI | 11-03 01:00 | 11-03 02:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-03 01:00 | 11-03 02:00 | stop_loss | 1 | -1.49 | +| SUI | 11-03 01:00 | 11-03 02:00 | stop_loss | 1 | -1.49 | +| TIA | 11-03 01:00 | 11-03 02:00 | stop_loss | 1 | -1.49 | +| TON | 11-03 01:00 | 11-03 02:00 | stop_loss | 1 | -1.49 | +| UNI | 11-03 01:00 | 11-03 02:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-03 02:00 | 11-03 03:00 | stop_loss | 1 | -1.49 | +| SUI | 11-03 02:00 | 11-03 03:00 | stop_loss | 1 | -1.49 | +| TON | 11-03 02:00 | 11-03 03:00 | stop_loss | 1 | -1.49 | +| ARB | 11-03 03:00 | 11-03 04:00 | stop_loss | 1 | -1.49 | +| ETC | 11-03 03:00 | 11-03 04:00 | stop_loss | 1 | -1.49 | +| FIL | 11-03 03:00 | 11-03 04:00 | stop_loss | 1 | -1.49 | +| INJ | 11-03 03:00 | 11-03 04:00 | stop_loss | 1 | -1.49 | +| KAS | 11-03 03:00 | 11-03 04:00 | stop_loss | 1 | -1.49 | +| NEAR | 11-03 03:00 | 11-03 04:00 | stop_loss | 1 | -1.49 | +| OP | 11-03 03:00 | 11-03 04:00 | stop_loss | 1 | -1.49 | +| TIA | 11-03 03:00 | 11-03 04:00 | stop_loss | 1 | -1.49 | +| TRX | 11-02 02:00 | 11-03 04:00 | stop_loss | 26 | -1.49 | +| UNI | 11-03 03:00 | 11-03 04:00 | stop_loss | 1 | -1.49 | +| WIF | 11-03 03:00 | 11-03 04:00 | stop_loss | 1 | -1.49 | +| ARB | 11-03 04:00 | 11-03 05:00 | stop_loss | 1 | -1.49 | +| ETC | 11-03 04:00 | 11-03 05:00 | stop_loss | 1 | -1.49 | +| FIL | 11-03 04:00 | 11-03 05:00 | stop_loss | 1 | -1.49 | +| OP | 11-03 04:00 | 11-03 05:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-03 03:00 | 11-03 05:00 | take_profit | 2 | +1.49 | +| UNI | 11-03 04:00 | 11-03 05:00 | stop_loss | 1 | -1.49 | +| WIF | 11-03 04:00 | 11-03 05:00 | stop_loss | 1 | -1.49 | +| APT | 11-03 03:00 | 11-03 06:00 | stop_loss | 3 | -1.49 | +| ARB | 11-03 05:00 | 11-03 06:00 | stop_loss | 1 | -1.49 | +| ATOM | 11-03 03:00 | 11-03 06:00 | stop_loss | 3 | -1.49 | +| AVAX | 11-03 03:00 | 11-03 06:00 | stop_loss | 3 | -1.49 | +| BONK | 11-03 03:00 | 11-03 06:00 | stop_loss | 3 | -1.49 | +| ETC | 11-03 05:00 | 11-03 06:00 | stop_loss | 1 | -1.49 | +| FIL | 11-03 05:00 | 11-03 06:00 | stop_loss | 1 | -1.49 | +| KAS | 11-03 04:00 | 11-03 06:00 | stop_loss | 2 | -1.49 | +| LTC | 11-03 03:00 | 11-03 06:00 | stop_loss | 3 | -1.49 | +| NEAR | 11-03 05:00 | 11-03 06:00 | stop_loss | 1 | -1.49 | +| OP | 11-03 05:00 | 11-03 06:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-03 03:00 | 11-03 06:00 | stop_loss | 3 | -1.49 | +| SEI | 11-03 03:00 | 11-03 06:00 | stop_loss | 3 | -1.49 | +| SHIB | 11-03 03:00 | 11-03 06:00 | stop_loss | 3 | -1.49 | +| SUI | 11-03 03:00 | 11-03 06:00 | stop_loss | 3 | -1.49 | +| TIA | 11-03 04:00 | 11-03 06:00 | stop_loss | 2 | -1.49 | +| TON | 11-03 03:00 | 11-03 06:00 | stop_loss | 3 | -1.49 | +| WIF | 11-03 05:00 | 11-03 06:00 | stop_loss | 1 | -1.49 | +| WIF | 11-03 06:00 | 11-03 07:00 | trailing_stop | 1 | -0.69 | +| FIL | 11-03 06:00 | 11-03 08:00 | stop_loss | 2 | -1.49 | +| APT | 11-03 06:00 | 11-03 09:00 | stop_loss | 3 | -1.49 | +| BONK | 11-03 06:00 | 11-03 09:00 | take_profit | 3 | +1.49 | +| INJ | 11-03 06:00 | 11-03 09:00 | take_profit | 3 | +1.49 | +| LTC | 11-03 06:00 | 11-03 09:00 | stop_loss | 3 | -1.49 | +| SUI | 11-03 06:00 | 11-03 09:00 | take_profit | 3 | +1.49 | +| UNI | 11-03 05:00 | 11-03 09:00 | take_profit | 4 | +1.49 | +| ARB | 11-03 06:00 | 11-03 10:00 | stop_loss | 4 | -1.49 | +| AVAX | 11-03 06:00 | 11-03 10:00 | stop_loss | 4 | -1.49 | +| ETC | 11-03 06:00 | 11-03 10:00 | stop_loss | 4 | -1.49 | +| PEPE | 11-03 06:00 | 11-03 10:00 | stop_loss | 4 | -1.49 | +| SHIB | 11-03 06:00 | 11-03 10:00 | stop_loss | 4 | -1.49 | +| TON | 11-03 06:00 | 11-03 12:00 | stop_loss | 6 | -1.49 | +| TRX | 11-03 04:00 | 11-03 13:00 | stop_loss | 9 | -1.49 | +| FIL | 11-03 13:00 | 11-03 14:00 | trailing_stop | 1 | -0.22 | +| ARB | 11-03 14:00 | 11-03 15:00 | stop_loss | 1 | -1.49 | +| ATOM | 11-03 10:00 | 11-03 15:00 | stop_loss | 5 | -1.49 | +| AVAX | 11-03 13:00 | 11-03 15:00 | stop_loss | 2 | -1.49 | +| ETC | 11-03 14:00 | 11-03 15:00 | stop_loss | 1 | -1.49 | +| FIL | 11-03 14:00 | 11-03 15:00 | stop_loss | 1 | -1.49 | +| INJ | 11-03 13:00 | 11-03 15:00 | stop_loss | 2 | -1.49 | +| KAS | 11-03 12:00 | 11-03 15:00 | stop_loss | 3 | -1.49 | +| OP | 11-03 14:00 | 11-03 15:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-03 13:00 | 11-03 15:00 | stop_loss | 2 | -1.49 | +| SHIB | 11-03 14:00 | 11-03 15:00 | stop_loss | 1 | -1.49 | +| TIA | 11-03 14:00 | 11-03 15:00 | stop_loss | 1 | -1.49 | +| UNI | 11-03 12:00 | 11-03 15:00 | stop_loss | 3 | -1.49 | +| APT | 11-03 15:00 | 11-03 16:00 | take_profit | 1 | +1.49 | +| ARB | 11-03 15:00 | 11-03 16:00 | take_profit | 1 | +1.49 | +| ATOM | 11-03 15:00 | 11-03 16:00 | take_profit | 1 | +1.49 | +| AVAX | 11-03 15:00 | 11-03 16:00 | take_profit | 1 | +1.49 | +| BONK | 11-03 15:00 | 11-03 16:00 | take_profit | 1 | +1.49 | +| ETC | 11-03 15:00 | 11-03 16:00 | take_profit | 1 | +1.49 | +| FET | 11-03 15:00 | 11-03 16:00 | take_profit | 1 | +1.49 | +| FIL | 11-03 15:00 | 11-03 16:00 | stop_loss | 1 | -1.49 | +| INJ | 11-03 15:00 | 11-03 16:00 | take_profit | 1 | +1.49 | +| KAS | 11-03 15:00 | 11-03 16:00 | take_profit | 1 | +1.49 | +| NEAR | 11-03 15:00 | 11-03 16:00 | take_profit | 1 | +1.49 | +| OP | 11-03 15:00 | 11-03 16:00 | take_profit | 1 | +1.49 | +| PEPE | 11-03 15:00 | 11-03 16:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-03 15:00 | 11-03 16:00 | take_profit | 1 | +1.49 | +| SEI | 11-03 15:00 | 11-03 16:00 | take_profit | 1 | +1.49 | +| SHIB | 11-03 15:00 | 11-03 16:00 | trailing_stop | 1 | -0.10 | +| SUI | 11-03 15:00 | 11-03 16:00 | take_profit | 1 | +1.49 | +| TIA | 11-03 15:00 | 11-03 16:00 | take_profit | 1 | +1.49 | +| WIF | 11-03 15:00 | 11-03 16:00 | take_profit | 1 | +1.49 | +| FET | 11-03 16:00 | 11-03 17:00 | take_profit | 1 | +1.49 | +| LTC | 11-03 15:00 | 11-03 17:00 | take_profit | 2 | +1.49 | +| TON | 11-03 15:00 | 11-03 17:00 | take_profit | 2 | +1.49 | +| TRX | 11-03 15:00 | 11-03 18:00 | stop_loss | 3 | -1.49 | +| TRX | 11-03 18:00 | 11-03 20:00 | stop_loss | 2 | -1.49 | +| ATOM | 11-03 20:00 | 11-03 21:00 | stop_loss | 1 | -1.49 | +| FET | 11-03 20:00 | 11-03 21:00 | take_profit | 1 | +1.49 | +| OP | 11-03 20:00 | 11-03 21:00 | trailing_stop | 1 | -0.30 | +| RENDER | 11-03 20:00 | 11-03 21:00 | trailing_stop | 1 | -0.44 | +| TON | 11-03 20:00 | 11-03 21:00 | stop_loss | 1 | -1.49 | +| ATOM | 11-03 21:00 | 11-03 22:00 | stop_loss | 1 | -1.49 | +| APT | 11-03 20:00 | 11-04 00:00 | take_profit | 4 | +1.49 | +| FET | 11-04 01:00 | 11-04 03:00 | take_profit | 2 | +1.49 | +| ATOM | 11-04 04:00 | 11-04 05:00 | stop_loss | 1 | -1.49 | +| BONK | 11-04 04:00 | 11-04 05:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-04 04:00 | 11-04 05:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-03 20:00 | 11-04 05:00 | stop_loss | 9 | -1.49 | +| TIA | 11-04 04:00 | 11-04 05:00 | stop_loss | 1 | -1.49 | +| TRX | 11-03 20:00 | 11-04 05:00 | trailing_stop | 9 | -0.58 | +| AVAX | 11-04 05:00 | 11-04 06:00 | take_profit | 1 | +1.49 | +| INJ | 11-04 05:00 | 11-04 06:00 | take_profit | 1 | +1.49 | +| KAS | 11-04 05:00 | 11-04 06:00 | take_profit | 1 | +1.49 | +| SEI | 11-04 05:00 | 11-04 06:00 | take_profit | 1 | +1.49 | +| WIF | 11-04 05:00 | 11-04 06:00 | take_profit | 1 | +1.49 | +| SEI | 11-04 07:00 | 11-04 08:00 | take_profit | 1 | +1.49 | +| TRX | 11-04 05:00 | 11-04 08:00 | stop_loss | 3 | -1.49 | +| FIL | 11-04 17:00 | 11-04 18:00 | stop_loss | 1 | -1.49 | +| ETC | 11-04 18:00 | 11-04 19:00 | stop_loss | 1 | -1.49 | +| FIL | 11-04 18:00 | 11-04 19:00 | stop_loss | 1 | -1.49 | +| LTC | 11-04 18:00 | 11-04 19:00 | stop_loss | 1 | -1.49 | +| FIL | 11-04 19:00 | 11-04 20:00 | stop_loss | 1 | -1.49 | +| ARB | 11-04 20:00 | 11-04 21:00 | stop_loss | 1 | -1.49 | +| ETC | 11-04 20:00 | 11-04 21:00 | stop_loss | 1 | -1.49 | +| FIL | 11-04 20:00 | 11-04 21:00 | stop_loss | 1 | -1.49 | +| LTC | 11-04 20:00 | 11-04 21:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-04 20:00 | 11-04 21:00 | stop_loss | 1 | -1.49 | +| SUI | 11-04 20:00 | 11-04 21:00 | stop_loss | 1 | -1.49 | +| TON | 11-04 20:00 | 11-04 21:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-04 21:00 | 11-04 22:00 | take_profit | 1 | +1.49 | +| AVAX | 11-05 00:00 | 11-05 01:00 | stop_loss | 1 | -1.49 | +| SEI | 11-05 00:00 | 11-05 01:00 | stop_loss | 1 | -1.49 | +| TIA | 11-05 00:00 | 11-05 01:00 | stop_loss | 1 | -1.49 | +| ARB | 11-05 01:00 | 11-05 02:00 | take_profit | 1 | +1.49 | +| AVAX | 11-05 01:00 | 11-05 02:00 | take_profit | 1 | +1.49 | +| OP | 11-05 01:00 | 11-05 02:00 | take_profit | 1 | +1.49 | +| PEPE | 11-05 01:00 | 11-05 02:00 | take_profit | 1 | +1.49 | +| SUI | 11-05 01:00 | 11-05 02:00 | take_profit | 1 | +1.49 | +| TON | 11-05 01:00 | 11-05 02:00 | take_profit | 1 | +1.49 | +| TON | 11-05 04:00 | 11-05 05:00 | stop_loss | 1 | -1.49 | +| FIL | 11-05 04:00 | 11-05 06:00 | stop_loss | 2 | -1.49 | +| RENDER | 11-05 04:00 | 11-05 06:00 | trailing_stop | 2 | -0.58 | +| INJ | 11-06 03:00 | 11-06 05:00 | stop_loss | 2 | -1.49 | +| FIL | 11-06 05:00 | 11-06 06:00 | stop_loss | 1 | -1.49 | +| SEI | 11-06 05:00 | 11-06 06:00 | trailing_stop | 1 | -0.23 | +| INJ | 11-06 05:00 | 11-06 07:00 | stop_loss | 2 | -1.49 | +| RENDER | 11-06 06:00 | 11-06 08:00 | stop_loss | 2 | -1.49 | +| SEI | 11-06 06:00 | 11-06 08:00 | stop_loss | 2 | -1.49 | +| ARB | 11-06 06:00 | 11-06 10:00 | stop_loss | 4 | -1.49 | +| FIL | 11-06 06:00 | 11-06 10:00 | take_profit | 4 | +1.49 | +| KAS | 11-06 05:00 | 11-06 10:00 | trailing_stop | 5 | -0.50 | +| PEPE | 11-06 06:00 | 11-06 10:00 | stop_loss | 4 | -1.49 | +| SUI | 11-06 06:00 | 11-06 10:00 | stop_loss | 4 | -1.49 | +| AVAX | 11-06 05:00 | 11-06 12:00 | stop_loss | 7 | -1.49 | +| BONK | 11-06 09:00 | 11-06 12:00 | stop_loss | 3 | -1.49 | +| ETC | 11-06 06:00 | 11-06 12:00 | stop_loss | 6 | -1.49 | +| INJ | 11-06 07:00 | 11-06 12:00 | stop_loss | 5 | -1.49 | +| KAS | 11-06 10:00 | 11-06 12:00 | stop_loss | 2 | -1.49 | +| RENDER | 11-06 08:00 | 11-06 12:00 | stop_loss | 4 | -1.49 | +| TIA | 11-06 06:00 | 11-06 12:00 | stop_loss | 6 | -1.49 | +| ARB | 11-06 12:00 | 11-06 13:00 | take_profit | 1 | +1.49 | +| ATOM | 11-06 05:00 | 11-06 13:00 | trailing_stop | 8 | -0.59 | +| BONK | 11-06 12:00 | 11-06 13:00 | take_profit | 1 | +1.49 | +| ETC | 11-06 12:00 | 11-06 13:00 | take_profit | 1 | +1.49 | +| FET | 11-06 07:00 | 11-06 13:00 | take_profit | 6 | +1.49 | +| INJ | 11-06 12:00 | 11-06 13:00 | take_profit | 1 | +1.49 | +| KAS | 11-06 12:00 | 11-06 13:00 | take_profit | 1 | +1.49 | +| LTC | 11-06 06:00 | 11-06 13:00 | trailing_stop | 7 | -0.05 | +| NEAR | 11-06 08:00 | 11-06 13:00 | take_profit | 5 | +1.49 | +| OP | 11-06 07:00 | 11-06 13:00 | stop_loss | 6 | -1.49 | +| PEPE | 11-06 12:00 | 11-06 13:00 | trailing_stop | 1 | -0.63 | +| SEI | 11-06 12:00 | 11-06 13:00 | take_profit | 1 | +1.49 | +| SHIB | 11-06 05:00 | 11-06 13:00 | trailing_stop | 8 | -0.59 | +| SUI | 11-06 12:00 | 11-06 13:00 | take_profit | 1 | +1.49 | +| TRX | 11-06 08:00 | 11-06 14:00 | stop_loss | 6 | -1.49 | +| ATOM | 11-06 14:00 | 11-06 15:00 | stop_loss | 1 | -1.49 | +| BONK | 11-06 14:00 | 11-06 15:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-06 14:00 | 11-06 15:00 | stop_loss | 1 | -1.49 | +| SUI | 11-06 14:00 | 11-06 15:00 | stop_loss | 1 | -1.49 | +| TON | 11-06 06:00 | 11-06 15:00 | stop_loss | 9 | -1.49 | +| UNI | 11-06 06:00 | 11-06 15:00 | stop_loss | 9 | -1.49 | +| ATOM | 11-06 15:00 | 11-06 16:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-06 15:00 | 11-06 16:00 | stop_loss | 1 | -1.49 | +| BONK | 11-06 15:00 | 11-06 16:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-06 15:00 | 11-06 16:00 | stop_loss | 1 | -1.49 | +| SUI | 11-06 15:00 | 11-06 16:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-06 16:00 | 11-06 17:00 | trailing_stop | 1 | -0.64 | +| KAS | 11-06 16:00 | 11-06 17:00 | trailing_stop | 1 | -0.49 | +| PEPE | 11-06 16:00 | 11-06 17:00 | take_profit | 1 | +1.49 | +| SUI | 11-06 16:00 | 11-06 17:00 | trailing_stop | 1 | -0.30 | +| UNI | 11-06 16:00 | 11-06 17:00 | trailing_stop | 1 | -0.48 | +| BONK | 11-06 20:00 | 11-06 21:00 | take_profit | 1 | +1.49 | +| TRX | 11-06 14:00 | 11-07 11:00 | trailing_stop | 21 | -0.37 | +| KAS | 11-07 14:00 | 11-07 15:00 | stop_loss | 1 | -1.49 | +| KAS | 11-07 15:00 | 11-07 16:00 | take_profit | 1 | +1.49 | +| KAS | 11-08 07:00 | 11-08 08:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-08 08:00 | 11-08 09:00 | stop_loss | 1 | -1.49 | +| KAS | 11-08 08:00 | 11-08 10:00 | trailing_stop | 2 | -0.58 | +| RENDER | 11-08 09:00 | 11-08 10:00 | take_profit | 1 | +1.49 | +| WIF | 11-08 09:00 | 11-08 10:00 | trailing_stop | 1 | -0.23 | +| BONK | 11-08 08:00 | 11-08 13:00 | stop_loss | 5 | -1.49 | +| ETC | 11-08 06:00 | 11-08 13:00 | stop_loss | 7 | -1.49 | +| TIA | 11-08 12:00 | 11-08 13:00 | stop_loss | 1 | -1.49 | +| ARB | 11-08 13:00 | 11-08 14:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-08 13:00 | 11-08 14:00 | stop_loss | 1 | -1.49 | +| SUI | 11-08 13:00 | 11-08 14:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-08 13:00 | 11-08 15:00 | stop_loss | 2 | -1.49 | +| SUI | 11-08 14:00 | 11-08 15:00 | stop_loss | 1 | -1.49 | +| APT | 11-08 15:00 | 11-08 16:00 | stop_loss | 1 | -1.49 | +| FET | 11-08 15:00 | 11-08 16:00 | take_profit | 1 | +1.49 | +| FIL | 11-08 15:00 | 11-08 16:00 | stop_loss | 1 | -1.49 | +| INJ | 11-08 15:00 | 11-08 16:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-08 15:00 | 11-08 16:00 | stop_loss | 1 | -1.49 | +| TON | 11-08 15:00 | 11-08 16:00 | stop_loss | 1 | -1.49 | +| FIL | 11-08 16:00 | 11-08 17:00 | stop_loss | 1 | -1.49 | +| SUI | 11-08 15:00 | 11-08 17:00 | trailing_stop | 2 | -0.27 | +| FIL | 11-08 17:00 | 11-08 18:00 | stop_loss | 1 | -1.49 | +| ARB | 11-08 15:00 | 11-08 19:00 | trailing_stop | 4 | -0.61 | +| AVAX | 11-08 15:00 | 11-08 19:00 | trailing_stop | 4 | -0.55 | +| OP | 11-08 15:00 | 11-08 22:00 | take_profit | 7 | +1.49 | +| SHIB | 11-08 15:00 | 11-08 22:00 | take_profit | 7 | +1.49 | +| INJ | 11-08 23:00 | 11-09 00:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-08 21:00 | 11-09 01:00 | stop_loss | 4 | -1.49 | +| FIL | 11-09 00:00 | 11-09 01:00 | stop_loss | 1 | -1.49 | +| APT | 11-09 00:00 | 11-09 02:00 | stop_loss | 2 | -1.49 | +| ATOM | 11-09 00:00 | 11-09 02:00 | stop_loss | 2 | -1.49 | +| AVAX | 11-09 01:00 | 11-09 02:00 | stop_loss | 1 | -1.49 | +| BONK | 11-09 00:00 | 11-09 02:00 | stop_loss | 2 | -1.49 | +| ETC | 11-09 00:00 | 11-09 02:00 | stop_loss | 2 | -1.49 | +| FIL | 11-09 01:00 | 11-09 02:00 | stop_loss | 1 | -1.49 | +| OP | 11-09 00:00 | 11-09 02:00 | stop_loss | 2 | -1.49 | +| PEPE | 11-09 00:00 | 11-09 02:00 | stop_loss | 2 | -1.49 | +| RENDER | 11-09 00:00 | 11-09 02:00 | stop_loss | 2 | -1.49 | +| APT | 11-09 02:00 | 11-09 03:00 | stop_loss | 1 | -1.49 | +| ARB | 11-09 02:00 | 11-09 03:00 | stop_loss | 1 | -1.49 | +| ATOM | 11-09 02:00 | 11-09 03:00 | stop_loss | 1 | -1.49 | +| BONK | 11-09 02:00 | 11-09 03:00 | stop_loss | 1 | -1.49 | +| KAS | 11-09 02:00 | 11-09 03:00 | stop_loss | 1 | -1.49 | +| OP | 11-09 02:00 | 11-09 03:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-09 02:00 | 11-09 03:00 | stop_loss | 1 | -1.49 | +| WIF | 11-09 02:00 | 11-09 03:00 | stop_loss | 1 | -1.49 | +| KAS | 11-09 03:00 | 11-09 05:00 | confirmed_bearish_exit | 2 | +0.41 | +| PEPE | 11-09 03:00 | 11-09 06:00 | take_profit | 3 | +1.49 | +| APT | 11-09 03:00 | 11-09 07:00 | take_profit | 4 | +1.49 | +| BONK | 11-09 03:00 | 11-09 07:00 | trailing_stop | 4 | -0.04 | +| OP | 11-09 03:00 | 11-09 07:00 | take_profit | 4 | +1.49 | +| ATOM | 11-09 03:00 | 11-09 08:00 | trailing_stop | 5 | -0.11 | +| UNI | 11-09 02:00 | 11-09 10:00 | take_profit | 8 | +1.49 | +| FIL | 11-09 12:00 | 11-09 13:00 | stop_loss | 1 | -1.49 | +| SEI | 11-09 11:00 | 11-09 13:00 | take_profit | 2 | +1.49 | +| TON | 11-09 02:00 | 11-09 13:00 | take_profit | 11 | +1.49 | +| INJ | 11-09 09:00 | 11-09 14:00 | take_profit | 5 | +1.49 | +| TIA | 11-09 12:00 | 11-09 14:00 | take_profit | 2 | +1.49 | +| LTC | 11-10 10:00 | 11-10 14:00 | stop_loss | 4 | -1.49 | +| ARB | 11-10 14:00 | 11-10 17:00 | trailing_stop | 3 | -0.53 | +| SHIB | 11-10 16:00 | 11-10 17:00 | trailing_stop | 1 | -0.31 | +| LTC | 11-10 23:00 | 11-11 00:00 | stop_loss | 1 | -1.49 | +| TRX | 11-08 15:00 | 11-11 00:00 | take_profit | 57 | +1.49 | +| RENDER | 11-11 03:00 | 11-11 04:00 | stop_loss | 1 | -1.49 | +| FIL | 11-11 05:00 | 11-11 06:00 | take_profit | 1 | +1.49 | +| FIL | 11-11 07:00 | 11-11 08:00 | stop_loss | 1 | -1.49 | +| TIA | 11-11 07:00 | 11-11 08:00 | stop_loss | 1 | -1.49 | +| FIL | 11-11 08:00 | 11-11 09:00 | stop_loss | 1 | -1.49 | +| APT | 11-11 07:00 | 11-11 11:00 | take_profit | 4 | +1.49 | +| NEAR | 11-11 07:00 | 11-11 11:00 | stop_loss | 4 | -1.49 | +| INJ | 11-11 07:00 | 11-11 12:00 | trailing_stop | 5 | -0.67 | +| WIF | 11-11 07:00 | 11-11 12:00 | take_profit | 5 | +1.49 | +| ETC | 11-11 07:00 | 11-11 13:00 | trailing_stop | 6 | -0.58 | +| UNI | 11-11 12:00 | 11-11 13:00 | take_profit | 1 | +1.49 | +| ATOM | 11-11 07:00 | 11-11 14:00 | trailing_stop | 7 | +0.01 | +| AVAX | 11-11 07:00 | 11-11 14:00 | trailing_stop | 7 | -0.01 | +| BONK | 11-11 07:00 | 11-11 14:00 | stop_loss | 7 | -1.49 | +| FIL | 11-11 13:00 | 11-11 14:00 | stop_loss | 1 | -1.49 | +| LTC | 11-11 07:00 | 11-11 14:00 | stop_loss | 7 | -1.49 | +| PEPE | 11-11 07:00 | 11-11 14:00 | stop_loss | 7 | -1.49 | +| RENDER | 11-11 07:00 | 11-11 14:00 | stop_loss | 7 | -1.49 | +| UNI | 11-11 13:00 | 11-11 14:00 | stop_loss | 1 | -1.49 | +| FIL | 11-11 14:00 | 11-11 15:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-11 07:00 | 11-11 16:00 | stop_loss | 9 | -1.49 | +| APT | 11-11 16:00 | 11-11 17:00 | stop_loss | 1 | -1.49 | +| FIL | 11-11 16:00 | 11-11 17:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-11 16:00 | 11-11 17:00 | stop_loss | 1 | -1.49 | +| SUI | 11-11 16:00 | 11-11 17:00 | stop_loss | 1 | -1.49 | +| TIA | 11-11 16:00 | 11-11 17:00 | stop_loss | 1 | -1.49 | +| WIF | 11-11 16:00 | 11-11 17:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-11 16:00 | 11-11 18:00 | stop_loss | 2 | -1.49 | +| FIL | 11-11 17:00 | 11-11 18:00 | stop_loss | 1 | -1.49 | +| INJ | 11-11 16:00 | 11-11 18:00 | trailing_stop | 2 | -0.04 | +| KAS | 11-11 16:00 | 11-11 18:00 | stop_loss | 2 | -1.49 | +| OP | 11-11 16:00 | 11-11 18:00 | stop_loss | 2 | -1.49 | +| APT | 11-11 17:00 | 11-11 19:00 | stop_loss | 2 | -1.49 | +| ETC | 11-11 16:00 | 11-11 19:00 | stop_loss | 3 | -1.49 | +| NEAR | 11-11 17:00 | 11-11 19:00 | stop_loss | 2 | -1.49 | +| RENDER | 11-11 17:00 | 11-11 20:00 | stop_loss | 3 | -1.49 | +| BONK | 11-11 20:00 | 11-11 21:00 | stop_loss | 1 | -1.49 | +| FET | 11-11 20:00 | 11-11 21:00 | stop_loss | 1 | -1.49 | +| FIL | 11-11 20:00 | 11-11 21:00 | stop_loss | 1 | -1.49 | +| BONK | 11-11 21:00 | 11-11 22:00 | trailing_stop | 1 | -0.66 | +| RENDER | 11-11 23:00 | 11-12 00:00 | stop_loss | 1 | -1.49 | +| APT | 11-12 00:00 | 11-12 01:00 | take_profit | 1 | +1.49 | +| ATOM | 11-12 00:00 | 11-12 01:00 | trailing_stop | 1 | -0.11 | +| FIL | 11-12 00:00 | 11-12 01:00 | take_profit | 1 | +1.49 | +| RENDER | 11-12 00:00 | 11-12 01:00 | take_profit | 1 | +1.49 | +| WIF | 11-11 23:00 | 11-12 01:00 | trailing_stop | 2 | -0.62 | +| BONK | 11-11 23:00 | 11-12 05:00 | take_profit | 6 | +1.49 | +| KAS | 11-12 02:00 | 11-12 05:00 | take_profit | 3 | +1.49 | +| AVAX | 11-11 23:00 | 11-12 06:00 | take_profit | 7 | +1.49 | +| NEAR | 11-11 23:00 | 11-12 06:00 | take_profit | 7 | +1.49 | +| ARB | 11-12 06:00 | 11-12 07:00 | stop_loss | 1 | -1.49 | +| FET | 11-12 06:00 | 11-12 07:00 | take_profit | 1 | +1.49 | +| FIL | 11-12 03:00 | 11-12 07:00 | take_profit | 4 | +1.49 | +| NEAR | 11-12 06:00 | 11-12 07:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-12 04:00 | 11-12 07:00 | stop_loss | 3 | -1.49 | +| APT | 11-12 04:00 | 11-12 08:00 | trailing_stop | 4 | -0.43 | +| ATOM | 11-12 04:00 | 11-12 08:00 | take_profit | 4 | +1.49 | +| NEAR | 11-12 07:00 | 11-12 08:00 | take_profit | 1 | +1.49 | +| OP | 11-12 04:00 | 11-12 08:00 | take_profit | 4 | +1.49 | +| PEPE | 11-12 07:00 | 11-12 08:00 | take_profit | 1 | +1.49 | +| TON | 11-11 19:00 | 11-12 08:00 | trailing_stop | 13 | -0.58 | +| WIF | 11-12 04:00 | 11-12 08:00 | take_profit | 4 | +1.49 | +| SUI | 11-12 04:00 | 11-12 10:00 | take_profit | 6 | +1.49 | +| ETC | 11-12 04:00 | 11-12 14:00 | stop_loss | 10 | -1.49 | +| ARB | 11-12 15:00 | 11-12 16:00 | stop_loss | 1 | -1.49 | +| ETC | 11-12 15:00 | 11-12 16:00 | stop_loss | 1 | -1.49 | +| FIL | 11-12 15:00 | 11-12 16:00 | stop_loss | 1 | -1.49 | +| UNI | 11-12 15:00 | 11-12 16:00 | take_profit | 1 | +1.49 | +| ARB | 11-12 16:00 | 11-12 17:00 | stop_loss | 1 | -1.49 | +| FIL | 11-12 16:00 | 11-12 17:00 | stop_loss | 1 | -1.49 | +| INJ | 11-12 16:00 | 11-12 17:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-12 16:00 | 11-12 17:00 | stop_loss | 1 | -1.49 | +| TIA | 11-12 16:00 | 11-12 17:00 | stop_loss | 1 | -1.49 | +| UNI | 11-12 16:00 | 11-12 17:00 | stop_loss | 1 | -1.49 | +| ARB | 11-12 17:00 | 11-12 18:00 | stop_loss | 1 | -1.49 | +| LTC | 11-12 16:00 | 11-12 18:00 | take_profit | 2 | +1.49 | +| UNI | 11-12 17:00 | 11-12 18:00 | stop_loss | 1 | -1.49 | +| ARB | 11-12 18:00 | 11-12 19:00 | stop_loss | 1 | -1.49 | +| INJ | 11-12 18:00 | 11-12 19:00 | stop_loss | 1 | -1.49 | +| SUI | 11-12 16:00 | 11-12 19:00 | stop_loss | 3 | -1.49 | +| UNI | 11-12 18:00 | 11-12 19:00 | stop_loss | 1 | -1.49 | +| SEI | 11-12 16:00 | 11-12 20:00 | take_profit | 4 | +1.49 | +| ETC | 11-12 16:00 | 11-12 22:00 | confirmed_bearish_exit | 6 | +0.55 | +| FIL | 11-12 22:00 | 11-12 23:00 | stop_loss | 1 | -1.49 | +| OP | 11-13 00:00 | 11-13 01:00 | trailing_stop | 1 | -0.52 | +| SEI | 11-12 23:00 | 11-13 01:00 | take_profit | 2 | +1.49 | +| FIL | 11-12 23:00 | 11-13 02:00 | stop_loss | 3 | -1.49 | +| UNI | 11-13 01:00 | 11-13 02:00 | take_profit | 1 | +1.49 | +| APT | 11-12 23:00 | 11-13 03:00 | stop_loss | 4 | -1.49 | +| ARB | 11-13 01:00 | 11-13 03:00 | stop_loss | 2 | -1.49 | +| ATOM | 11-13 01:00 | 11-13 03:00 | stop_loss | 2 | -1.49 | +| AVAX | 11-13 00:00 | 11-13 03:00 | take_profit | 3 | +1.49 | +| ETC | 11-13 00:00 | 11-13 03:00 | take_profit | 3 | +1.49 | +| FIL | 11-13 02:00 | 11-13 03:00 | stop_loss | 1 | -1.49 | +| NEAR | 11-12 23:00 | 11-13 03:00 | stop_loss | 4 | -1.49 | +| OP | 11-13 01:00 | 11-13 03:00 | stop_loss | 2 | -1.49 | +| PEPE | 11-13 02:00 | 11-13 03:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-13 02:00 | 11-13 03:00 | stop_loss | 1 | -1.49 | +| SUI | 11-13 02:00 | 11-13 03:00 | stop_loss | 1 | -1.49 | +| TON | 11-13 00:00 | 11-13 03:00 | stop_loss | 3 | -1.49 | +| UNI | 11-13 02:00 | 11-13 03:00 | stop_loss | 1 | -1.49 | +| INJ | 11-13 03:00 | 11-13 04:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-13 03:00 | 11-13 04:00 | stop_loss | 1 | -1.49 | +| WIF | 11-13 03:00 | 11-13 04:00 | stop_loss | 1 | -1.49 | +| ARB | 11-13 03:00 | 11-13 05:00 | trailing_stop | 2 | -0.36 | +| BONK | 11-13 03:00 | 11-13 05:00 | trailing_stop | 2 | -0.50 | +| FET | 11-13 03:00 | 11-13 05:00 | take_profit | 2 | +1.49 | +| FIL | 11-13 03:00 | 11-13 05:00 | stop_loss | 2 | -1.49 | +| LTC | 11-13 03:00 | 11-13 05:00 | take_profit | 2 | +1.49 | +| OP | 11-13 03:00 | 11-13 05:00 | take_profit | 2 | +1.49 | +| PEPE | 11-13 03:00 | 11-13 05:00 | trailing_stop | 2 | -0.35 | +| RENDER | 11-13 04:00 | 11-13 05:00 | take_profit | 1 | +1.49 | +| SUI | 11-13 03:00 | 11-13 05:00 | trailing_stop | 2 | -0.67 | +| TON | 11-13 03:00 | 11-13 05:00 | trailing_stop | 2 | -0.29 | +| WIF | 11-13 04:00 | 11-13 05:00 | take_profit | 1 | +1.49 | +| ATOM | 11-13 03:00 | 11-13 08:00 | stop_loss | 5 | -1.49 | +| ETC | 11-13 03:00 | 11-13 13:00 | trailing_stop | 10 | -0.62 | +| SHIB | 11-13 03:00 | 11-13 14:00 | take_profit | 11 | +1.49 | +| TRX | 11-12 19:00 | 11-13 16:00 | trailing_stop | 21 | -0.19 | +| ARB | 11-13 16:00 | 11-13 17:00 | stop_loss | 1 | -1.49 | +| BONK | 11-13 16:00 | 11-13 17:00 | stop_loss | 1 | -1.49 | +| FET | 11-13 16:00 | 11-13 17:00 | stop_loss | 1 | -1.49 | +| KAS | 11-13 16:00 | 11-13 17:00 | stop_loss | 1 | -1.49 | +| NEAR | 11-13 16:00 | 11-13 17:00 | stop_loss | 1 | -1.49 | +| SEI | 11-13 16:00 | 11-13 17:00 | stop_loss | 1 | -1.49 | +| SUI | 11-13 16:00 | 11-13 17:00 | stop_loss | 1 | -1.49 | +| APT | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| ARB | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| ATOM | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| BONK | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| FET | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| FIL | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| INJ | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| KAS | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| LTC | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| NEAR | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| OP | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| SEI | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| SUI | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| TIA | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| WIF | 11-13 17:00 | 11-13 18:00 | stop_loss | 1 | -1.49 | +| APT | 11-13 18:00 | 11-13 19:00 | stop_loss | 1 | -1.49 | +| ARB | 11-13 18:00 | 11-13 19:00 | stop_loss | 1 | -1.49 | +| ATOM | 11-13 18:00 | 11-13 19:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-13 18:00 | 11-13 19:00 | stop_loss | 1 | -1.49 | +| BONK | 11-13 18:00 | 11-13 19:00 | stop_loss | 1 | -1.49 | +| ETC | 11-13 17:00 | 11-13 19:00 | stop_loss | 2 | -1.49 | +| FIL | 11-13 18:00 | 11-13 19:00 | stop_loss | 1 | -1.49 | +| INJ | 11-13 18:00 | 11-13 19:00 | stop_loss | 1 | -1.49 | +| OP | 11-13 18:00 | 11-13 19:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-13 18:00 | 11-13 19:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-13 18:00 | 11-13 19:00 | stop_loss | 1 | -1.49 | +| SEI | 11-13 18:00 | 11-13 19:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-13 18:00 | 11-13 19:00 | stop_loss | 1 | -1.49 | +| SUI | 11-13 18:00 | 11-13 19:00 | stop_loss | 1 | -1.49 | +| TON | 11-13 17:00 | 11-13 19:00 | stop_loss | 2 | -1.49 | +| WIF | 11-13 18:00 | 11-13 19:00 | stop_loss | 1 | -1.49 | +| ARB | 11-13 19:00 | 11-13 20:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-13 19:00 | 11-13 20:00 | stop_loss | 1 | -1.49 | +| BONK | 11-13 19:00 | 11-13 20:00 | stop_loss | 1 | -1.49 | +| FET | 11-13 18:00 | 11-13 20:00 | stop_loss | 2 | -1.49 | +| INJ | 11-13 19:00 | 11-13 20:00 | stop_loss | 1 | -1.49 | +| KAS | 11-13 18:00 | 11-13 20:00 | stop_loss | 2 | -1.49 | +| LTC | 11-13 18:00 | 11-13 20:00 | stop_loss | 2 | -1.49 | +| OP | 11-13 19:00 | 11-13 20:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-13 19:00 | 11-13 20:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-13 19:00 | 11-13 20:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-13 19:00 | 11-13 20:00 | stop_loss | 1 | -1.49 | +| SUI | 11-13 19:00 | 11-13 20:00 | stop_loss | 1 | -1.49 | +| WIF | 11-13 19:00 | 11-13 20:00 | stop_loss | 1 | -1.49 | +| FET | 11-13 20:00 | 11-13 21:00 | stop_loss | 1 | -1.49 | +| FIL | 11-13 19:00 | 11-13 21:00 | stop_loss | 2 | -1.49 | +| OP | 11-13 20:00 | 11-13 21:00 | stop_loss | 1 | -1.49 | +| SEI | 11-13 19:00 | 11-13 21:00 | stop_loss | 2 | -1.49 | +| APT | 11-13 19:00 | 11-13 22:00 | take_profit | 3 | +1.49 | +| ARB | 11-13 20:00 | 11-13 22:00 | trailing_stop | 2 | -0.47 | +| ATOM | 11-13 19:00 | 11-13 22:00 | take_profit | 3 | +1.49 | +| AVAX | 11-13 20:00 | 11-13 22:00 | trailing_stop | 2 | -0.21 | +| BONK | 11-13 20:00 | 11-13 22:00 | take_profit | 2 | +1.49 | +| ETC | 11-13 19:00 | 11-13 22:00 | trailing_stop | 3 | -0.23 | +| FET | 11-13 21:00 | 11-13 22:00 | take_profit | 1 | +1.49 | +| INJ | 11-13 20:00 | 11-13 22:00 | take_profit | 2 | +1.49 | +| NEAR | 11-13 18:00 | 11-13 22:00 | take_profit | 4 | +1.49 | +| PEPE | 11-13 20:00 | 11-13 22:00 | take_profit | 2 | +1.49 | +| SHIB | 11-13 20:00 | 11-13 22:00 | trailing_stop | 2 | +0.25 | +| SUI | 11-13 20:00 | 11-13 22:00 | take_profit | 2 | +1.49 | +| TON | 11-13 19:00 | 11-13 22:00 | trailing_stop | 3 | -0.38 | +| UNI | 11-13 20:00 | 11-13 22:00 | take_profit | 2 | +1.49 | +| WIF | 11-13 20:00 | 11-13 22:00 | take_profit | 2 | +1.49 | +| NEAR | 11-14 00:00 | 11-14 02:00 | stop_loss | 2 | -1.49 | +| APT | 11-14 01:00 | 11-14 03:00 | stop_loss | 2 | -1.49 | +| OP | 11-14 01:00 | 11-14 03:00 | stop_loss | 2 | -1.49 | +| TIA | 11-14 01:00 | 11-14 03:00 | stop_loss | 2 | -1.49 | +| TON | 11-14 01:00 | 11-14 03:00 | stop_loss | 2 | -1.49 | +| WIF | 11-14 01:00 | 11-14 03:00 | stop_loss | 2 | -1.49 | +| APT | 11-14 03:00 | 11-14 04:00 | stop_loss | 1 | -1.49 | +| ATOM | 11-14 03:00 | 11-14 04:00 | stop_loss | 1 | -1.49 | +| BONK | 11-14 01:00 | 11-14 04:00 | stop_loss | 3 | -1.49 | +| ETC | 11-14 00:00 | 11-14 04:00 | stop_loss | 4 | -1.49 | +| INJ | 11-14 01:00 | 11-14 04:00 | stop_loss | 3 | -1.49 | +| LTC | 11-14 01:00 | 11-14 04:00 | stop_loss | 3 | -1.49 | +| OP | 11-14 03:00 | 11-14 04:00 | stop_loss | 1 | -1.49 | +| SEI | 11-14 02:00 | 11-14 04:00 | stop_loss | 2 | -1.49 | +| SHIB | 11-14 02:00 | 11-14 04:00 | stop_loss | 2 | -1.49 | +| TIA | 11-14 03:00 | 11-14 04:00 | stop_loss | 1 | -1.49 | +| TON | 11-14 03:00 | 11-14 04:00 | stop_loss | 1 | -1.49 | +| TRX | 11-13 19:00 | 11-14 04:00 | stop_loss | 9 | -1.49 | +| WIF | 11-14 03:00 | 11-14 04:00 | stop_loss | 1 | -1.49 | +| ATOM | 11-14 04:00 | 11-14 05:00 | take_profit | 1 | +1.49 | +| ETC | 11-14 04:00 | 11-14 05:00 | take_profit | 1 | +1.49 | +| FIL | 11-14 04:00 | 11-14 05:00 | stop_loss | 1 | -1.49 | +| INJ | 11-14 04:00 | 11-14 05:00 | take_profit | 1 | +1.49 | +| LTC | 11-14 04:00 | 11-14 06:00 | take_profit | 2 | +1.49 | +| KAS | 11-14 11:00 | 11-14 12:00 | stop_loss | 1 | -1.49 | +| TON | 11-14 12:00 | 11-14 13:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-14 13:00 | 11-14 14:00 | stop_loss | 1 | -1.49 | +| KAS | 11-14 13:00 | 11-14 14:00 | take_profit | 1 | +1.49 | +| PEPE | 11-14 13:00 | 11-14 14:00 | stop_loss | 1 | -1.49 | +| SUI | 11-14 13:00 | 11-14 14:00 | stop_loss | 1 | -1.49 | +| TON | 11-14 13:00 | 11-14 14:00 | stop_loss | 1 | -1.49 | +| TON | 11-14 14:00 | 11-14 15:00 | stop_loss | 1 | -1.49 | +| FIL | 11-14 17:00 | 11-14 18:00 | take_profit | 1 | +1.49 | +| UNI | 11-14 17:00 | 11-14 18:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-14 17:00 | 11-14 19:00 | take_profit | 2 | +1.49 | +| TON | 11-14 17:00 | 11-14 19:00 | take_profit | 2 | +1.49 | +| FIL | 11-14 20:00 | 11-14 21:00 | take_profit | 1 | +1.49 | +| PEPE | 11-14 20:00 | 11-14 22:00 | stop_loss | 2 | -1.49 | +| WIF | 11-14 22:00 | 11-14 23:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-14 23:00 | 11-15 00:00 | take_profit | 1 | +1.49 | +| TIA | 11-14 23:00 | 11-15 00:00 | trailing_stop | 1 | -0.31 | +| WIF | 11-14 23:00 | 11-15 00:00 | trailing_stop | 1 | +0.25 | +| INJ | 11-14 23:00 | 11-15 01:00 | take_profit | 2 | +1.49 | +| APT | 11-15 06:00 | 11-15 07:00 | stop_loss | 1 | -1.49 | +| INJ | 11-15 06:00 | 11-15 07:00 | stop_loss | 1 | -1.49 | +| APT | 11-15 07:00 | 11-15 08:00 | stop_loss | 1 | -1.49 | +| INJ | 11-15 08:00 | 11-15 12:00 | trailing_stop | 4 | -0.37 | +| NEAR | 11-15 19:00 | 11-15 20:00 | stop_loss | 1 | -1.49 | +| NEAR | 11-15 20:00 | 11-15 21:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-15 21:00 | 11-15 22:00 | trailing_stop | 1 | -0.63 | +| APT | 11-15 20:00 | 11-16 00:00 | stop_loss | 4 | -1.49 | +| ATOM | 11-15 20:00 | 11-16 00:00 | stop_loss | 4 | -1.49 | +| NEAR | 11-15 21:00 | 11-16 00:00 | stop_loss | 3 | -1.49 | +| TIA | 11-15 21:00 | 11-16 00:00 | stop_loss | 3 | -1.49 | +| BONK | 11-15 20:00 | 11-16 01:00 | stop_loss | 5 | -1.49 | +| SHIB | 11-15 20:00 | 11-16 01:00 | stop_loss | 5 | -1.49 | +| ETC | 11-16 01:00 | 11-16 02:00 | trailing_stop | 1 | -0.59 | +| PEPE | 11-16 01:00 | 11-16 02:00 | trailing_stop | 1 | -0.08 | +| FET | 11-16 02:00 | 11-16 04:00 | stop_loss | 2 | -1.49 | +| FET | 11-16 04:00 | 11-16 06:00 | take_profit | 2 | +1.49 | +| ATOM | 11-16 04:00 | 11-16 11:00 | stop_loss | 7 | -1.49 | +| LTC | 11-16 04:00 | 11-16 11:00 | stop_loss | 7 | -1.49 | +| ETC | 11-16 11:00 | 11-16 13:00 | stop_loss | 2 | -1.49 | +| SUI | 11-16 12:00 | 11-16 13:00 | stop_loss | 1 | -1.49 | +| WIF | 11-16 11:00 | 11-16 13:00 | stop_loss | 2 | -1.49 | +| SUI | 11-16 13:00 | 11-16 14:00 | trailing_stop | 1 | -0.61 | +| APT | 11-16 11:00 | 11-16 15:00 | stop_loss | 4 | -1.49 | +| AVAX | 11-16 13:00 | 11-16 15:00 | stop_loss | 2 | -1.49 | +| OP | 11-16 13:00 | 11-16 15:00 | stop_loss | 2 | -1.49 | +| SEI | 11-16 13:00 | 11-16 15:00 | stop_loss | 2 | -1.49 | +| TON | 11-16 11:00 | 11-16 15:00 | stop_loss | 4 | -1.49 | +| ATOM | 11-16 15:00 | 11-16 16:00 | stop_loss | 1 | -1.49 | +| BONK | 11-16 15:00 | 11-16 16:00 | stop_loss | 1 | -1.49 | +| ETC | 11-16 15:00 | 11-16 16:00 | stop_loss | 1 | -1.49 | +| FET | 11-16 15:00 | 11-16 16:00 | stop_loss | 1 | -1.49 | +| FIL | 11-16 15:00 | 11-16 16:00 | stop_loss | 1 | -1.49 | +| KAS | 11-16 15:00 | 11-16 16:00 | stop_loss | 1 | -1.49 | +| NEAR | 11-16 15:00 | 11-16 16:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-16 15:00 | 11-16 16:00 | stop_loss | 1 | -1.49 | +| SEI | 11-16 15:00 | 11-16 16:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-16 15:00 | 11-16 16:00 | stop_loss | 1 | -1.49 | +| APT | 11-16 16:00 | 11-16 17:00 | stop_loss | 1 | -1.49 | +| ARB | 11-16 16:00 | 11-16 17:00 | stop_loss | 1 | -1.49 | +| ATOM | 11-16 16:00 | 11-16 17:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-16 16:00 | 11-16 17:00 | stop_loss | 1 | -1.49 | +| BONK | 11-16 16:00 | 11-16 17:00 | stop_loss | 1 | -1.49 | +| ETC | 11-16 16:00 | 11-16 17:00 | stop_loss | 1 | -1.49 | +| FET | 11-16 16:00 | 11-16 17:00 | stop_loss | 1 | -1.49 | +| FIL | 11-16 16:00 | 11-16 17:00 | stop_loss | 1 | -1.49 | +| INJ | 11-16 16:00 | 11-16 17:00 | stop_loss | 1 | -1.49 | +| KAS | 11-16 16:00 | 11-16 17:00 | stop_loss | 1 | -1.49 | +| LTC | 11-16 16:00 | 11-16 17:00 | stop_loss | 1 | -1.49 | +| NEAR | 11-16 16:00 | 11-16 17:00 | stop_loss | 1 | -1.49 | +| OP | 11-16 16:00 | 11-16 17:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-16 16:00 | 11-16 17:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-16 16:00 | 11-16 17:00 | stop_loss | 1 | -1.49 | +| SEI | 11-16 16:00 | 11-16 17:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-16 16:00 | 11-16 17:00 | stop_loss | 1 | -1.49 | +| SUI | 11-16 15:00 | 11-16 17:00 | stop_loss | 2 | -1.49 | +| TIA | 11-16 16:00 | 11-16 17:00 | stop_loss | 1 | -1.49 | +| WIF | 11-16 16:00 | 11-16 17:00 | stop_loss | 1 | -1.49 | +| APT | 11-16 17:00 | 11-16 18:00 | take_profit | 1 | +1.49 | +| ARB | 11-16 17:00 | 11-16 18:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-16 17:00 | 11-16 18:00 | take_profit | 1 | +1.49 | +| BONK | 11-16 17:00 | 11-16 18:00 | take_profit | 1 | +1.49 | +| FET | 11-16 17:00 | 11-16 18:00 | take_profit | 1 | +1.49 | +| INJ | 11-16 17:00 | 11-16 18:00 | stop_loss | 1 | -1.49 | +| KAS | 11-16 17:00 | 11-16 18:00 | stop_loss | 1 | -1.49 | +| NEAR | 11-16 17:00 | 11-16 18:00 | take_profit | 1 | +1.49 | +| OP | 11-16 17:00 | 11-16 18:00 | take_profit | 1 | +1.49 | +| RENDER | 11-16 17:00 | 11-16 18:00 | take_profit | 1 | +1.49 | +| SEI | 11-16 17:00 | 11-16 18:00 | take_profit | 1 | +1.49 | +| TON | 11-16 16:00 | 11-16 18:00 | take_profit | 2 | +1.49 | +| APT | 11-16 18:00 | 11-16 19:00 | take_profit | 1 | +1.49 | +| ARB | 11-16 18:00 | 11-16 19:00 | take_profit | 1 | +1.49 | +| INJ | 11-16 18:00 | 11-16 19:00 | take_profit | 1 | +1.49 | +| WIF | 11-16 17:00 | 11-16 19:00 | stop_loss | 2 | -1.49 | +| KAS | 11-16 18:00 | 11-16 20:00 | take_profit | 2 | +1.49 | +| TIA | 11-16 17:00 | 11-16 21:00 | stop_loss | 4 | -1.49 | +| UNI | 11-16 19:00 | 11-16 21:00 | stop_loss | 2 | -1.49 | +| AVAX | 11-16 18:00 | 11-16 22:00 | trailing_stop | 4 | -0.37 | +| ETC | 11-16 17:00 | 11-16 22:00 | take_profit | 5 | +1.49 | +| FIL | 11-16 17:00 | 11-16 22:00 | take_profit | 5 | +1.49 | +| SEI | 11-16 18:00 | 11-16 22:00 | take_profit | 4 | +1.49 | +| SHIB | 11-16 17:00 | 11-16 22:00 | trailing_stop | 5 | -0.12 | +| ATOM | 11-16 17:00 | 11-16 23:00 | stop_loss | 6 | -1.49 | +| LTC | 11-16 17:00 | 11-16 23:00 | stop_loss | 6 | -1.49 | +| APT | 11-16 23:00 | 11-17 00:00 | trailing_stop | 1 | -0.23 | +| ARB | 11-16 23:00 | 11-17 00:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-16 23:00 | 11-17 00:00 | stop_loss | 1 | -1.49 | +| ETC | 11-16 23:00 | 11-17 00:00 | trailing_stop | 1 | -0.43 | +| FIL | 11-16 23:00 | 11-17 00:00 | stop_loss | 1 | -1.49 | +| OP | 11-16 23:00 | 11-17 00:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-16 23:00 | 11-17 00:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-16 23:00 | 11-17 00:00 | stop_loss | 1 | -1.49 | +| SUI | 11-16 23:00 | 11-17 00:00 | stop_loss | 1 | -1.49 | +| KAS | 11-17 00:00 | 11-17 01:00 | stop_loss | 1 | -1.49 | +| LTC | 11-17 00:00 | 11-17 01:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-17 00:00 | 11-17 01:00 | stop_loss | 1 | -1.49 | +| SEI | 11-17 00:00 | 11-17 01:00 | stop_loss | 1 | -1.49 | +| UNI | 11-17 00:00 | 11-17 01:00 | stop_loss | 1 | -1.49 | +| KAS | 11-17 01:00 | 11-17 03:00 | trailing_stop | 2 | -0.50 | +| UNI | 11-17 01:00 | 11-17 03:00 | take_profit | 2 | +1.49 | +| SUI | 11-17 00:00 | 11-17 04:00 | take_profit | 4 | +1.49 | +| ATOM | 11-16 23:00 | 11-17 06:00 | trailing_stop | 7 | +0.16 | +| BONK | 11-17 00:00 | 11-17 06:00 | confirmed_bearish_exit | 6 | +0.06 | +| RENDER | 11-17 01:00 | 11-17 06:00 | trailing_stop | 5 | -0.42 | +| SHIB | 11-16 23:00 | 11-17 08:00 | take_profit | 9 | +1.49 | +| INJ | 11-17 00:00 | 11-17 09:00 | take_profit | 9 | +1.49 | +| LTC | 11-17 01:00 | 11-17 13:00 | stop_loss | 12 | -1.49 | +| NEAR | 11-17 00:00 | 11-17 13:00 | stop_loss | 13 | -1.49 | +| SEI | 11-17 01:00 | 11-17 13:00 | stop_loss | 12 | -1.49 | +| TIA | 11-17 00:00 | 11-17 13:00 | stop_loss | 13 | -1.49 | +| SEI | 11-17 13:00 | 11-17 14:00 | take_profit | 1 | +1.49 | +| TRX | 11-16 16:00 | 11-17 14:00 | trailing_stop | 22 | -0.24 | +| BONK | 11-17 15:00 | 11-17 16:00 | stop_loss | 1 | -1.49 | +| TON | 11-17 15:00 | 11-17 16:00 | stop_loss | 1 | -1.49 | +| APT | 11-17 17:00 | 11-17 18:00 | stop_loss | 1 | -1.49 | +| ARB | 11-17 17:00 | 11-17 18:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-17 17:00 | 11-17 18:00 | stop_loss | 1 | -1.49 | +| BONK | 11-17 17:00 | 11-17 18:00 | stop_loss | 1 | -1.49 | +| ETC | 11-17 17:00 | 11-17 18:00 | stop_loss | 1 | -1.49 | +| LTC | 11-17 17:00 | 11-17 18:00 | stop_loss | 1 | -1.49 | +| OP | 11-17 17:00 | 11-17 18:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-17 17:00 | 11-17 18:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-17 17:00 | 11-17 18:00 | stop_loss | 1 | -1.49 | +| SEI | 11-17 17:00 | 11-17 18:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-17 17:00 | 11-17 18:00 | stop_loss | 1 | -1.49 | +| TIA | 11-17 17:00 | 11-17 18:00 | stop_loss | 1 | -1.49 | +| WIF | 11-17 17:00 | 11-17 18:00 | stop_loss | 1 | -1.49 | +| APT | 11-17 18:00 | 11-17 19:00 | stop_loss | 1 | -1.49 | +| ARB | 11-17 18:00 | 11-17 19:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-17 18:00 | 11-17 19:00 | stop_loss | 1 | -1.49 | +| ETC | 11-17 18:00 | 11-17 19:00 | stop_loss | 1 | -1.49 | +| INJ | 11-17 18:00 | 11-17 19:00 | stop_loss | 1 | -1.49 | +| LTC | 11-17 18:00 | 11-17 19:00 | stop_loss | 1 | -1.49 | +| OP | 11-17 18:00 | 11-17 19:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-17 18:00 | 11-17 19:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-17 18:00 | 11-17 19:00 | stop_loss | 1 | -1.49 | +| SEI | 11-17 18:00 | 11-17 19:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-17 18:00 | 11-17 19:00 | stop_loss | 1 | -1.49 | +| SUI | 11-17 18:00 | 11-17 19:00 | stop_loss | 1 | -1.49 | +| TIA | 11-17 18:00 | 11-17 19:00 | stop_loss | 1 | -1.49 | +| TON | 11-17 17:00 | 11-17 19:00 | stop_loss | 2 | -1.49 | +| WIF | 11-17 18:00 | 11-17 19:00 | stop_loss | 1 | -1.49 | +| APT | 11-17 19:00 | 11-17 20:00 | stop_loss | 1 | -1.49 | +| BONK | 11-17 18:00 | 11-17 20:00 | stop_loss | 2 | -1.49 | +| INJ | 11-17 19:00 | 11-17 20:00 | stop_loss | 1 | -1.49 | +| OP | 11-17 19:00 | 11-17 20:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-17 19:00 | 11-17 20:00 | stop_loss | 1 | -1.49 | +| SUI | 11-17 19:00 | 11-17 20:00 | stop_loss | 1 | -1.49 | +| TIA | 11-17 19:00 | 11-17 20:00 | stop_loss | 1 | -1.49 | +| WIF | 11-17 19:00 | 11-17 20:00 | stop_loss | 1 | -1.49 | +| ATOM | 11-17 19:00 | 11-17 21:00 | stop_loss | 2 | -1.49 | +| FET | 11-17 20:00 | 11-17 21:00 | stop_loss | 1 | -1.49 | +| INJ | 11-17 20:00 | 11-17 21:00 | stop_loss | 1 | -1.49 | +| KAS | 11-17 19:00 | 11-17 21:00 | take_profit | 2 | +1.49 | +| LTC | 11-17 19:00 | 11-17 21:00 | stop_loss | 2 | -1.49 | +| NEAR | 11-17 19:00 | 11-17 21:00 | stop_loss | 2 | -1.49 | +| OP | 11-17 20:00 | 11-17 21:00 | stop_loss | 1 | -1.49 | +| SUI | 11-17 20:00 | 11-17 21:00 | stop_loss | 1 | -1.49 | +| TIA | 11-17 20:00 | 11-17 21:00 | stop_loss | 1 | -1.49 | +| WIF | 11-17 20:00 | 11-17 21:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-17 19:00 | 11-17 22:00 | take_profit | 3 | +1.49 | +| TON | 11-17 19:00 | 11-17 22:00 | take_profit | 3 | +1.49 | +| UNI | 11-17 21:00 | 11-17 22:00 | stop_loss | 1 | -1.49 | +| APT | 11-17 20:00 | 11-17 23:00 | trailing_stop | 3 | -0.54 | +| ARB | 11-17 19:00 | 11-18 00:00 | trailing_stop | 5 | -0.07 | +| ATOM | 11-17 21:00 | 11-18 00:00 | stop_loss | 3 | -1.49 | +| ETC | 11-17 19:00 | 11-18 00:00 | stop_loss | 5 | -1.49 | +| INJ | 11-17 21:00 | 11-18 00:00 | stop_loss | 3 | -1.49 | +| PEPE | 11-17 19:00 | 11-18 00:00 | stop_loss | 5 | -1.49 | +| SEI | 11-17 19:00 | 11-18 00:00 | stop_loss | 5 | -1.49 | +| SHIB | 11-17 20:00 | 11-18 00:00 | trailing_stop | 4 | -0.43 | +| TIA | 11-17 21:00 | 11-18 00:00 | stop_loss | 3 | -1.49 | +| KAS | 11-18 00:00 | 11-18 01:00 | stop_loss | 1 | -1.49 | +| ARB | 11-18 01:00 | 11-18 02:00 | stop_loss | 1 | -1.49 | +| BONK | 11-18 01:00 | 11-18 02:00 | stop_loss | 1 | -1.49 | +| KAS | 11-18 01:00 | 11-18 02:00 | stop_loss | 1 | -1.49 | +| OP | 11-18 01:00 | 11-18 02:00 | stop_loss | 1 | -1.49 | +| UNI | 11-18 01:00 | 11-18 02:00 | stop_loss | 1 | -1.49 | +| APT | 11-18 02:00 | 11-18 03:00 | trailing_stop | 1 | -0.31 | +| ARB | 11-18 02:00 | 11-18 03:00 | stop_loss | 1 | -1.49 | +| ATOM | 11-18 02:00 | 11-18 03:00 | stop_loss | 1 | -1.49 | +| ETC | 11-18 02:00 | 11-18 03:00 | stop_loss | 1 | -1.49 | +| INJ | 11-18 02:00 | 11-18 03:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-18 02:00 | 11-18 03:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-18 02:00 | 11-18 03:00 | stop_loss | 1 | -1.49 | +| SUI | 11-18 02:00 | 11-18 03:00 | stop_loss | 1 | -1.49 | +| UNI | 11-18 02:00 | 11-18 03:00 | stop_loss | 1 | -1.49 | +| UNI | 11-18 04:00 | 11-18 05:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-18 04:00 | 11-18 06:00 | stop_loss | 2 | -1.49 | +| SEI | 11-18 04:00 | 11-18 06:00 | stop_loss | 2 | -1.49 | +| TRX | 11-17 19:00 | 11-18 06:00 | stop_loss | 11 | -1.49 | +| UNI | 11-18 05:00 | 11-18 06:00 | stop_loss | 1 | -1.49 | +| ATOM | 11-18 06:00 | 11-18 07:00 | trailing_stop | 1 | -0.61 | +| AVAX | 11-18 06:00 | 11-18 07:00 | trailing_stop | 1 | -0.67 | +| FET | 11-18 06:00 | 11-18 07:00 | take_profit | 1 | +1.49 | +| BONK | 11-18 06:00 | 11-18 08:00 | take_profit | 2 | +1.49 | +| INJ | 11-18 06:00 | 11-18 08:00 | take_profit | 2 | +1.49 | +| PEPE | 11-18 06:00 | 11-18 08:00 | take_profit | 2 | +1.49 | +| RENDER | 11-18 06:00 | 11-18 08:00 | take_profit | 2 | +1.49 | +| SEI | 11-18 06:00 | 11-18 08:00 | take_profit | 2 | +1.49 | +| SUI | 11-18 06:00 | 11-18 08:00 | take_profit | 2 | +1.49 | +| ETC | 11-18 06:00 | 11-18 12:00 | trailing_stop | 6 | +0.16 | +| SHIB | 11-18 06:00 | 11-18 13:00 | trailing_stop | 7 | +0.01 | +| FIL | 11-18 18:00 | 11-18 19:00 | stop_loss | 1 | -1.49 | +| FIL | 11-18 19:00 | 11-18 21:00 | stop_loss | 2 | -1.49 | +| TIA | 11-18 21:00 | 11-19 00:00 | stop_loss | 3 | -1.49 | +| TRX | 11-18 06:00 | 11-19 00:00 | trailing_stop | 18 | +0.05 | +| AVAX | 11-19 04:00 | 11-19 05:00 | stop_loss | 1 | -1.49 | +| ETC | 11-19 04:00 | 11-19 05:00 | stop_loss | 1 | -1.49 | +| LTC | 11-19 04:00 | 11-19 05:00 | stop_loss | 1 | -1.49 | +| TIA | 11-19 04:00 | 11-19 05:00 | stop_loss | 1 | -1.49 | +| ARB | 11-19 05:00 | 11-19 06:00 | trailing_stop | 1 | -0.71 | +| AVAX | 11-19 05:00 | 11-19 06:00 | trailing_stop | 1 | -0.57 | +| FIL | 11-19 05:00 | 11-19 06:00 | stop_loss | 1 | -1.49 | +| KAS | 11-19 05:00 | 11-19 06:00 | take_profit | 1 | +1.49 | +| SEI | 11-19 05:00 | 11-19 06:00 | trailing_stop | 1 | -0.48 | +| ATOM | 11-19 05:00 | 11-19 07:00 | take_profit | 2 | +1.49 | +| ETC | 11-19 05:00 | 11-19 07:00 | take_profit | 2 | +1.49 | +| FET | 11-19 06:00 | 11-19 07:00 | stop_loss | 1 | -1.49 | +| FIL | 11-19 06:00 | 11-19 07:00 | trailing_stop | 1 | -0.31 | +| LTC | 11-19 05:00 | 11-19 07:00 | take_profit | 2 | +1.49 | +| OP | 11-19 05:00 | 11-19 07:00 | take_profit | 2 | +1.49 | +| PEPE | 11-19 05:00 | 11-19 07:00 | trailing_stop | 2 | -0.03 | +| SUI | 11-19 05:00 | 11-19 07:00 | take_profit | 2 | +1.49 | +| TIA | 11-19 05:00 | 11-19 07:00 | take_profit | 2 | +1.49 | +| UNI | 11-19 05:00 | 11-19 07:00 | trailing_stop | 2 | -0.05 | +| BONK | 11-19 05:00 | 11-19 08:00 | take_profit | 3 | +1.49 | +| FET | 11-19 07:00 | 11-19 08:00 | stop_loss | 1 | -1.49 | +| NEAR | 11-19 06:00 | 11-19 09:00 | take_profit | 3 | +1.49 | +| APT | 11-19 05:00 | 11-19 10:00 | take_profit | 5 | +1.49 | +| ARB | 11-19 06:00 | 11-19 13:00 | trailing_stop | 7 | -0.08 | +| FIL | 11-19 12:00 | 11-19 13:00 | stop_loss | 1 | -1.49 | +| KAS | 11-19 06:00 | 11-19 13:00 | trailing_stop | 7 | -0.28 | +| UNI | 11-19 12:00 | 11-19 13:00 | stop_loss | 1 | -1.49 | +| FIL | 11-19 13:00 | 11-19 14:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-19 05:00 | 11-19 14:00 | trailing_stop | 9 | -0.32 | +| TON | 11-19 04:00 | 11-19 14:00 | stop_loss | 10 | -1.49 | +| WIF | 11-19 13:00 | 11-19 14:00 | stop_loss | 1 | -1.49 | +| ETC | 11-19 13:00 | 11-19 15:00 | stop_loss | 2 | -1.49 | +| FIL | 11-19 14:00 | 11-19 15:00 | stop_loss | 1 | -1.49 | +| UNI | 11-19 14:00 | 11-19 15:00 | stop_loss | 1 | -1.49 | +| APT | 11-19 15:00 | 11-19 16:00 | stop_loss | 1 | -1.49 | +| ARB | 11-19 15:00 | 11-19 16:00 | stop_loss | 1 | -1.49 | +| BONK | 11-19 15:00 | 11-19 16:00 | stop_loss | 1 | -1.49 | +| LTC | 11-19 15:00 | 11-19 16:00 | stop_loss | 1 | -1.49 | +| OP | 11-19 15:00 | 11-19 16:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-19 15:00 | 11-19 16:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-19 15:00 | 11-19 16:00 | stop_loss | 1 | -1.49 | +| SEI | 11-19 15:00 | 11-19 16:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-19 15:00 | 11-19 16:00 | stop_loss | 1 | -1.49 | +| SUI | 11-19 15:00 | 11-19 16:00 | stop_loss | 1 | -1.49 | +| TIA | 11-19 15:00 | 11-19 16:00 | stop_loss | 1 | -1.49 | +| WIF | 11-19 15:00 | 11-19 16:00 | stop_loss | 1 | -1.49 | +| APT | 11-19 16:00 | 11-19 17:00 | stop_loss | 1 | -1.49 | +| ARB | 11-19 16:00 | 11-19 17:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-19 16:00 | 11-19 17:00 | stop_loss | 1 | -1.49 | +| BONK | 11-19 16:00 | 11-19 17:00 | stop_loss | 1 | -1.49 | +| ETC | 11-19 16:00 | 11-19 17:00 | stop_loss | 1 | -1.49 | +| LTC | 11-19 16:00 | 11-19 17:00 | stop_loss | 1 | -1.49 | +| OP | 11-19 16:00 | 11-19 17:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-19 16:00 | 11-19 17:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-19 16:00 | 11-19 17:00 | stop_loss | 1 | -1.49 | +| SEI | 11-19 16:00 | 11-19 17:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-19 16:00 | 11-19 17:00 | stop_loss | 1 | -1.49 | +| SUI | 11-19 16:00 | 11-19 17:00 | stop_loss | 1 | -1.49 | +| TIA | 11-19 16:00 | 11-19 17:00 | stop_loss | 1 | -1.49 | +| TON | 11-19 16:00 | 11-19 17:00 | stop_loss | 1 | -1.49 | +| UNI | 11-19 15:00 | 11-19 17:00 | take_profit | 2 | +1.49 | +| WIF | 11-19 16:00 | 11-19 17:00 | stop_loss | 1 | -1.49 | +| APT | 11-19 17:00 | 11-19 18:00 | stop_loss | 1 | -1.49 | +| ARB | 11-19 17:00 | 11-19 18:00 | stop_loss | 1 | -1.49 | +| BONK | 11-19 17:00 | 11-19 18:00 | stop_loss | 1 | -1.49 | +| ETC | 11-19 17:00 | 11-19 18:00 | stop_loss | 1 | -1.49 | +| LTC | 11-19 17:00 | 11-19 18:00 | stop_loss | 1 | -1.49 | +| OP | 11-19 17:00 | 11-19 18:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-19 17:00 | 11-19 18:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-19 17:00 | 11-19 18:00 | stop_loss | 1 | -1.49 | +| SEI | 11-19 17:00 | 11-19 18:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-19 17:00 | 11-19 18:00 | stop_loss | 1 | -1.49 | +| SUI | 11-19 17:00 | 11-19 18:00 | stop_loss | 1 | -1.49 | +| TIA | 11-19 17:00 | 11-19 18:00 | stop_loss | 1 | -1.49 | +| TON | 11-19 17:00 | 11-19 18:00 | stop_loss | 1 | -1.49 | +| WIF | 11-19 17:00 | 11-19 18:00 | stop_loss | 1 | -1.49 | +| ARB | 11-19 18:00 | 11-19 19:00 | stop_loss | 1 | -1.49 | +| SUI | 11-19 18:00 | 11-19 19:00 | stop_loss | 1 | -1.49 | +| TIA | 11-19 18:00 | 11-19 19:00 | stop_loss | 1 | -1.49 | +| WIF | 11-19 18:00 | 11-19 19:00 | stop_loss | 1 | -1.49 | +| APT | 11-19 18:00 | 11-19 20:00 | trailing_stop | 2 | -0.11 | +| ARB | 11-19 19:00 | 11-19 20:00 | take_profit | 1 | +1.49 | +| BONK | 11-19 18:00 | 11-19 20:00 | trailing_stop | 2 | -0.36 | +| ETC | 11-19 18:00 | 11-19 20:00 | take_profit | 2 | +1.49 | +| LTC | 11-19 18:00 | 11-19 20:00 | trailing_stop | 2 | -0.09 | +| OP | 11-19 18:00 | 11-19 20:00 | take_profit | 2 | +1.49 | +| PEPE | 11-19 18:00 | 11-19 20:00 | take_profit | 2 | +1.49 | +| RENDER | 11-19 18:00 | 11-19 20:00 | take_profit | 2 | +1.49 | +| SEI | 11-19 18:00 | 11-19 20:00 | trailing_stop | 2 | -0.09 | +| SUI | 11-19 19:00 | 11-19 20:00 | take_profit | 1 | +1.49 | +| WIF | 11-19 19:00 | 11-19 20:00 | trailing_stop | 1 | -0.40 | +| SHIB | 11-19 18:00 | 11-19 21:00 | take_profit | 3 | +1.49 | +| TON | 11-19 18:00 | 11-19 21:00 | take_profit | 3 | +1.49 | +| SUI | 11-19 22:00 | 11-19 23:00 | trailing_stop | 1 | -0.13 | +| UNI | 11-19 22:00 | 11-19 23:00 | take_profit | 1 | +1.49 | +| TRX | 11-19 05:00 | 11-20 14:00 | stop_loss | 33 | -1.49 | +| LTC | 11-20 15:00 | 11-20 16:00 | stop_loss | 1 | -1.49 | +| NEAR | 11-20 15:00 | 11-20 16:00 | stop_loss | 1 | -1.49 | +| TON | 11-20 15:00 | 11-20 16:00 | stop_loss | 1 | -1.49 | +| TRX | 11-20 14:00 | 11-20 16:00 | stop_loss | 2 | -1.49 | +| UNI | 11-20 15:00 | 11-20 16:00 | stop_loss | 1 | -1.49 | +| ARB | 11-20 16:00 | 11-20 17:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-20 16:00 | 11-20 17:00 | stop_loss | 1 | -1.49 | +| BONK | 11-20 16:00 | 11-20 17:00 | stop_loss | 1 | -1.49 | +| ETC | 11-20 16:00 | 11-20 17:00 | stop_loss | 1 | -1.49 | +| FET | 11-20 16:00 | 11-20 17:00 | stop_loss | 1 | -1.49 | +| FIL | 11-20 16:00 | 11-20 17:00 | stop_loss | 1 | -1.49 | +| INJ | 11-20 16:00 | 11-20 17:00 | stop_loss | 1 | -1.49 | +| KAS | 11-20 16:00 | 11-20 17:00 | stop_loss | 1 | -1.49 | +| LTC | 11-20 16:00 | 11-20 17:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-20 16:00 | 11-20 17:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-20 16:00 | 11-20 17:00 | stop_loss | 1 | -1.49 | +| SEI | 11-20 16:00 | 11-20 17:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-20 16:00 | 11-20 17:00 | stop_loss | 1 | -1.49 | +| SUI | 11-20 16:00 | 11-20 17:00 | stop_loss | 1 | -1.49 | +| TIA | 11-20 16:00 | 11-20 17:00 | stop_loss | 1 | -1.49 | +| TON | 11-20 16:00 | 11-20 17:00 | stop_loss | 1 | -1.49 | +| UNI | 11-20 16:00 | 11-20 17:00 | stop_loss | 1 | -1.49 | +| APT | 11-20 17:00 | 11-20 18:00 | stop_loss | 1 | -1.49 | +| ARB | 11-20 17:00 | 11-20 18:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-20 17:00 | 11-20 18:00 | stop_loss | 1 | -1.49 | +| BONK | 11-20 17:00 | 11-20 18:00 | stop_loss | 1 | -1.49 | +| FIL | 11-20 17:00 | 11-20 18:00 | stop_loss | 1 | -1.49 | +| INJ | 11-20 17:00 | 11-20 18:00 | stop_loss | 1 | -1.49 | +| NEAR | 11-20 16:00 | 11-20 18:00 | stop_loss | 2 | -1.49 | +| OP | 11-20 17:00 | 11-20 18:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-20 17:00 | 11-20 18:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-20 17:00 | 11-20 18:00 | stop_loss | 1 | -1.49 | +| SEI | 11-20 17:00 | 11-20 18:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-20 17:00 | 11-20 18:00 | stop_loss | 1 | -1.49 | +| TIA | 11-20 17:00 | 11-20 18:00 | stop_loss | 1 | -1.49 | +| UNI | 11-20 17:00 | 11-20 18:00 | stop_loss | 1 | -1.49 | +| WIF | 11-20 17:00 | 11-20 18:00 | stop_loss | 1 | -1.49 | +| ARB | 11-20 18:00 | 11-20 19:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-20 18:00 | 11-20 19:00 | trailing_stop | 1 | -0.61 | +| BONK | 11-20 18:00 | 11-20 19:00 | take_profit | 1 | +1.49 | +| ETC | 11-20 17:00 | 11-20 19:00 | stop_loss | 2 | -1.49 | +| FET | 11-20 17:00 | 11-20 19:00 | take_profit | 2 | +1.49 | +| FIL | 11-20 18:00 | 11-20 19:00 | stop_loss | 1 | -1.49 | +| INJ | 11-20 18:00 | 11-20 19:00 | stop_loss | 1 | -1.49 | +| KAS | 11-20 17:00 | 11-20 19:00 | stop_loss | 2 | -1.49 | +| LTC | 11-20 17:00 | 11-20 19:00 | stop_loss | 2 | -1.49 | +| OP | 11-20 18:00 | 11-20 19:00 | take_profit | 1 | +1.49 | +| PEPE | 11-20 18:00 | 11-20 19:00 | trailing_stop | 1 | -0.59 | +| RENDER | 11-20 18:00 | 11-20 19:00 | stop_loss | 1 | -1.49 | +| SEI | 11-20 18:00 | 11-20 19:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-20 18:00 | 11-20 19:00 | trailing_stop | 1 | -0.37 | +| SUI | 11-20 17:00 | 11-20 19:00 | stop_loss | 2 | -1.49 | +| TON | 11-20 17:00 | 11-20 19:00 | stop_loss | 2 | -1.49 | +| UNI | 11-20 18:00 | 11-20 19:00 | stop_loss | 1 | -1.49 | +| WIF | 11-20 18:00 | 11-20 19:00 | take_profit | 1 | +1.49 | +| APT | 11-20 18:00 | 11-20 20:00 | stop_loss | 2 | -1.49 | +| BONK | 11-20 19:00 | 11-20 20:00 | stop_loss | 1 | -1.49 | +| INJ | 11-20 19:00 | 11-20 20:00 | stop_loss | 1 | -1.49 | +| NEAR | 11-20 18:00 | 11-20 20:00 | stop_loss | 2 | -1.49 | +| PEPE | 11-20 19:00 | 11-20 20:00 | stop_loss | 1 | -1.49 | +| SEI | 11-20 19:00 | 11-20 20:00 | stop_loss | 1 | -1.49 | +| APT | 11-20 20:00 | 11-20 21:00 | take_profit | 1 | +1.49 | +| ARB | 11-20 19:00 | 11-20 21:00 | take_profit | 2 | +1.49 | +| INJ | 11-20 20:00 | 11-20 21:00 | take_profit | 1 | +1.49 | +| OP | 11-20 20:00 | 11-20 21:00 | take_profit | 1 | +1.49 | +| PEPE | 11-20 20:00 | 11-20 21:00 | take_profit | 1 | +1.49 | +| SUI | 11-20 19:00 | 11-20 21:00 | take_profit | 2 | +1.49 | +| TIA | 11-20 18:00 | 11-20 21:00 | take_profit | 3 | +1.49 | +| UNI | 11-20 19:00 | 11-20 21:00 | take_profit | 2 | +1.49 | +| WIF | 11-20 20:00 | 11-20 21:00 | take_profit | 1 | +1.49 | +| SHIB | 11-20 19:00 | 11-20 22:00 | take_profit | 3 | +1.49 | +| ATOM | 11-20 21:00 | 11-20 23:00 | stop_loss | 2 | -1.49 | +| TON | 11-20 19:00 | 11-20 23:00 | stop_loss | 4 | -1.49 | +| LTC | 11-21 00:00 | 11-21 02:00 | stop_loss | 2 | -1.49 | +| SEI | 11-21 01:00 | 11-21 02:00 | stop_loss | 1 | -1.49 | +| TON | 11-20 23:00 | 11-21 02:00 | stop_loss | 3 | -1.49 | +| BONK | 11-21 02:00 | 11-21 03:00 | take_profit | 1 | +1.49 | +| TIA | 11-21 02:00 | 11-21 03:00 | take_profit | 1 | +1.49 | +| AVAX | 11-21 02:00 | 11-21 04:00 | stop_loss | 2 | -1.49 | +| UNI | 11-21 02:00 | 11-21 06:00 | stop_loss | 4 | -1.49 | +| LTC | 11-21 02:00 | 11-21 07:00 | stop_loss | 5 | -1.49 | +| TRX | 11-20 16:00 | 11-21 07:00 | stop_loss | 15 | -1.49 | +| AVAX | 11-21 07:00 | 11-21 08:00 | trailing_stop | 1 | -0.65 | +| FET | 11-21 07:00 | 11-21 08:00 | take_profit | 1 | +1.49 | +| RENDER | 11-21 07:00 | 11-21 08:00 | take_profit | 1 | +1.49 | +| SUI | 11-21 07:00 | 11-21 08:00 | stop_loss | 1 | -1.49 | +| APT | 11-21 07:00 | 11-21 09:00 | stop_loss | 2 | -1.49 | +| FIL | 11-21 07:00 | 11-21 09:00 | stop_loss | 2 | -1.49 | +| INJ | 11-21 07:00 | 11-21 09:00 | stop_loss | 2 | -1.49 | +| PEPE | 11-21 07:00 | 11-21 09:00 | stop_loss | 2 | -1.49 | +| SEI | 11-21 07:00 | 11-21 09:00 | stop_loss | 2 | -1.49 | +| SUI | 11-21 08:00 | 11-21 09:00 | stop_loss | 1 | -1.49 | +| UNI | 11-21 07:00 | 11-21 09:00 | stop_loss | 2 | -1.49 | +| ARB | 11-21 07:00 | 11-21 10:00 | stop_loss | 3 | -1.49 | +| INJ | 11-21 09:00 | 11-21 10:00 | stop_loss | 1 | -1.49 | +| WIF | 11-21 09:00 | 11-21 10:00 | stop_loss | 1 | -1.49 | +| APT | 11-21 09:00 | 11-21 11:00 | stop_loss | 2 | -1.49 | +| AVAX | 11-21 09:00 | 11-21 11:00 | stop_loss | 2 | -1.49 | +| FIL | 11-21 09:00 | 11-21 11:00 | stop_loss | 2 | -1.49 | +| KAS | 11-21 09:00 | 11-21 11:00 | stop_loss | 2 | -1.49 | +| LTC | 11-21 09:00 | 11-21 11:00 | stop_loss | 2 | -1.49 | +| OP | 11-21 09:00 | 11-21 11:00 | stop_loss | 2 | -1.49 | +| RENDER | 11-21 09:00 | 11-21 11:00 | stop_loss | 2 | -1.49 | +| SHIB | 11-21 09:00 | 11-21 11:00 | stop_loss | 2 | -1.49 | +| SUI | 11-21 09:00 | 11-21 11:00 | stop_loss | 2 | -1.49 | +| WIF | 11-21 10:00 | 11-21 11:00 | stop_loss | 1 | -1.49 | +| ARB | 11-21 11:00 | 11-21 12:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-21 11:00 | 11-21 12:00 | stop_loss | 1 | -1.49 | +| BONK | 11-21 11:00 | 11-21 12:00 | stop_loss | 1 | -1.49 | +| ETC | 11-21 09:00 | 11-21 12:00 | stop_loss | 3 | -1.49 | +| FIL | 11-21 11:00 | 11-21 12:00 | stop_loss | 1 | -1.49 | +| INJ | 11-21 10:00 | 11-21 12:00 | stop_loss | 2 | -1.49 | +| KAS | 11-21 11:00 | 11-21 12:00 | stop_loss | 1 | -1.49 | +| LTC | 11-21 11:00 | 11-21 12:00 | stop_loss | 1 | -1.49 | +| OP | 11-21 11:00 | 11-21 12:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-21 11:00 | 11-21 12:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-21 11:00 | 11-21 12:00 | stop_loss | 1 | -1.49 | +| SEI | 11-21 09:00 | 11-21 12:00 | stop_loss | 3 | -1.49 | +| SHIB | 11-21 11:00 | 11-21 12:00 | stop_loss | 1 | -1.49 | +| SUI | 11-21 11:00 | 11-21 12:00 | stop_loss | 1 | -1.49 | +| UNI | 11-21 11:00 | 11-21 12:00 | stop_loss | 1 | -1.49 | +| WIF | 11-21 11:00 | 11-21 12:00 | stop_loss | 1 | -1.49 | +| ARB | 11-21 15:00 | 11-21 16:00 | stop_loss | 1 | -1.49 | +| BONK | 11-21 15:00 | 11-21 16:00 | stop_loss | 1 | -1.49 | +| FIL | 11-21 15:00 | 11-21 16:00 | stop_loss | 1 | -1.49 | +| INJ | 11-21 15:00 | 11-21 16:00 | stop_loss | 1 | -1.49 | +| KAS | 11-21 15:00 | 11-21 16:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-21 15:00 | 11-21 16:00 | stop_loss | 1 | -1.49 | +| SUI | 11-21 15:00 | 11-21 16:00 | stop_loss | 1 | -1.49 | +| TIA | 11-21 15:00 | 11-21 16:00 | stop_loss | 1 | -1.49 | +| TON | 11-21 15:00 | 11-21 16:00 | stop_loss | 1 | -1.49 | +| UNI | 11-21 15:00 | 11-21 16:00 | take_profit | 1 | +1.49 | +| RENDER | 11-21 16:00 | 11-21 17:00 | stop_loss | 1 | -1.49 | +| FIL | 11-21 17:00 | 11-21 18:00 | stop_loss | 1 | -1.49 | +| INJ | 11-21 17:00 | 11-21 18:00 | stop_loss | 1 | -1.49 | +| TIA | 11-21 17:00 | 11-21 18:00 | stop_loss | 1 | -1.49 | +| APT | 11-21 18:00 | 11-21 19:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-21 18:00 | 11-21 19:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-21 18:00 | 11-21 19:00 | stop_loss | 1 | -1.49 | +| SUI | 11-21 18:00 | 11-21 19:00 | stop_loss | 1 | -1.49 | +| TIA | 11-21 18:00 | 11-21 19:00 | stop_loss | 1 | -1.49 | +| ATOM | 11-21 19:00 | 11-21 20:00 | stop_loss | 1 | -1.49 | +| LTC | 11-21 18:00 | 11-21 20:00 | stop_loss | 2 | -1.49 | +| SUI | 11-21 19:00 | 11-21 20:00 | stop_loss | 1 | -1.49 | +| TIA | 11-21 19:00 | 11-21 20:00 | stop_loss | 1 | -1.49 | +| SUI | 11-21 20:00 | 11-21 21:00 | trailing_stop | 1 | -0.42 | +| ATOM | 11-21 20:00 | 11-21 22:00 | stop_loss | 2 | -1.49 | +| APT | 11-22 05:00 | 11-22 06:00 | trailing_stop | 1 | -0.16 | +| OP | 11-22 05:00 | 11-22 06:00 | take_profit | 1 | +1.49 | +| TRX | 11-21 18:00 | 11-22 10:00 | stop_loss | 16 | -1.49 | +| UNI | 11-22 08:00 | 11-22 10:00 | stop_loss | 2 | -1.49 | +| UNI | 11-22 10:00 | 11-22 12:00 | stop_loss | 2 | -1.49 | +| AVAX | 11-22 12:00 | 11-23 04:00 | take_profit | 16 | +1.49 | +| NEAR | 11-23 16:00 | 11-23 17:00 | stop_loss | 1 | -1.49 | +| TON | 11-23 11:00 | 11-23 17:00 | stop_loss | 6 | -1.49 | +| UNI | 11-23 17:00 | 11-23 18:00 | take_profit | 1 | +1.49 | +| NEAR | 11-23 17:00 | 11-23 19:00 | take_profit | 2 | +1.49 | +| TON | 11-23 17:00 | 11-23 20:00 | stop_loss | 3 | -1.49 | +| FIL | 11-23 17:00 | 11-23 21:00 | trailing_stop | 4 | +0.01 | +| FET | 11-23 23:00 | 11-24 00:00 | stop_loss | 1 | -1.49 | +| ATOM | 11-24 00:00 | 11-24 02:00 | take_profit | 2 | +1.49 | +| ETC | 11-23 23:00 | 11-24 02:00 | take_profit | 3 | +1.49 | +| OP | 11-23 23:00 | 11-24 02:00 | take_profit | 3 | +1.49 | +| SHIB | 11-23 23:00 | 11-24 02:00 | take_profit | 3 | +1.49 | +| APT | 11-24 09:00 | 11-24 12:00 | take_profit | 3 | +1.49 | +| ATOM | 11-24 09:00 | 11-24 14:00 | stop_loss | 5 | -1.49 | +| SEI | 11-24 12:00 | 11-24 15:00 | take_profit | 3 | +1.49 | +| APT | 11-24 16:00 | 11-24 17:00 | take_profit | 1 | +1.49 | +| TRX | 11-24 21:00 | 11-25 02:00 | stop_loss | 5 | -1.49 | +| NEAR | 11-25 06:00 | 11-25 07:00 | stop_loss | 1 | -1.49 | +| FET | 11-25 07:00 | 11-25 09:00 | stop_loss | 2 | -1.49 | +| INJ | 11-25 08:00 | 11-25 09:00 | trailing_stop | 1 | -0.65 | +| RENDER | 11-25 07:00 | 11-25 09:00 | trailing_stop | 2 | -0.53 | +| SEI | 11-25 07:00 | 11-25 09:00 | stop_loss | 2 | -1.49 | +| TIA | 11-25 07:00 | 11-25 09:00 | stop_loss | 2 | -1.49 | +| INJ | 11-25 10:00 | 11-25 11:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-25 10:00 | 11-25 11:00 | stop_loss | 1 | -1.49 | +| WIF | 11-25 10:00 | 11-25 11:00 | stop_loss | 1 | -1.49 | +| OP | 11-25 07:00 | 11-25 12:00 | take_profit | 5 | +1.49 | +| APT | 11-25 07:00 | 11-25 13:00 | stop_loss | 6 | -1.49 | +| FIL | 11-25 07:00 | 11-25 13:00 | stop_loss | 6 | -1.49 | +| RENDER | 11-25 10:00 | 11-25 13:00 | stop_loss | 3 | -1.49 | +| SHIB | 11-25 07:00 | 11-25 13:00 | stop_loss | 6 | -1.49 | +| TON | 11-25 08:00 | 11-25 13:00 | take_profit | 5 | +1.49 | +| UNI | 11-25 08:00 | 11-25 13:00 | stop_loss | 5 | -1.49 | +| WIF | 11-25 11:00 | 11-25 13:00 | stop_loss | 2 | -1.49 | +| ARB | 11-25 08:00 | 11-25 14:00 | stop_loss | 6 | -1.49 | +| ATOM | 11-25 11:00 | 11-25 14:00 | stop_loss | 3 | -1.49 | +| BONK | 11-25 13:00 | 11-25 14:00 | stop_loss | 1 | -1.49 | +| ETC | 11-25 07:00 | 11-25 14:00 | stop_loss | 7 | -1.49 | +| FET | 11-25 13:00 | 11-25 14:00 | stop_loss | 1 | -1.49 | +| INJ | 11-25 11:00 | 11-25 14:00 | stop_loss | 3 | -1.49 | +| LTC | 11-25 07:00 | 11-25 14:00 | stop_loss | 7 | -1.49 | +| NEAR | 11-25 07:00 | 11-25 14:00 | stop_loss | 7 | -1.49 | +| PEPE | 11-25 11:00 | 11-25 14:00 | stop_loss | 3 | -1.49 | +| SUI | 11-25 13:00 | 11-25 14:00 | stop_loss | 1 | -1.49 | +| TIA | 11-25 09:00 | 11-25 14:00 | stop_loss | 5 | -1.49 | +| UNI | 11-25 13:00 | 11-25 14:00 | stop_loss | 1 | -1.49 | +| ATOM | 11-25 14:00 | 11-25 15:00 | stop_loss | 1 | -1.49 | +| BONK | 11-25 14:00 | 11-25 15:00 | stop_loss | 1 | -1.49 | +| FET | 11-25 14:00 | 11-25 15:00 | trailing_stop | 1 | -0.39 | +| SUI | 11-25 14:00 | 11-25 15:00 | stop_loss | 1 | -1.49 | +| UNI | 11-25 14:00 | 11-25 15:00 | stop_loss | 1 | -1.49 | +| WIF | 11-25 14:00 | 11-25 15:00 | stop_loss | 1 | -1.49 | +| UNI | 11-25 15:00 | 11-25 16:00 | take_profit | 1 | +1.49 | +| BONK | 11-25 15:00 | 11-25 17:00 | take_profit | 2 | +1.49 | +| APT | 11-25 18:00 | 11-25 19:00 | stop_loss | 1 | -1.49 | +| ATOM | 11-25 15:00 | 11-25 19:00 | stop_loss | 4 | -1.49 | +| BONK | 11-25 18:00 | 11-25 19:00 | stop_loss | 1 | -1.49 | +| SUI | 11-25 15:00 | 11-25 19:00 | stop_loss | 4 | -1.49 | +| TIA | 11-25 18:00 | 11-25 19:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-25 14:00 | 11-25 20:00 | take_profit | 6 | +1.49 | +| TIA | 11-25 19:00 | 11-25 20:00 | trailing_stop | 1 | -0.42 | +| APT | 11-25 19:00 | 11-25 22:00 | take_profit | 3 | +1.49 | +| BONK | 11-25 19:00 | 11-25 22:00 | stop_loss | 3 | -1.49 | +| FIL | 11-26 07:00 | 11-26 08:00 | stop_loss | 1 | -1.49 | +| FIL | 11-26 08:00 | 11-26 11:00 | stop_loss | 3 | -1.49 | +| NEAR | 11-26 10:00 | 11-26 12:00 | stop_loss | 2 | -1.49 | +| TIA | 11-26 09:00 | 11-26 12:00 | stop_loss | 3 | -1.49 | +| INJ | 11-26 12:00 | 11-26 13:00 | trailing_stop | 1 | +0.18 | +| RENDER | 11-26 12:00 | 11-26 13:00 | trailing_stop | 1 | -0.52 | +| SEI | 11-26 12:00 | 11-26 13:00 | trailing_stop | 1 | -0.51 | +| TIA | 11-26 12:00 | 11-26 13:00 | trailing_stop | 1 | -0.23 | +| WIF | 11-26 12:00 | 11-26 13:00 | trailing_stop | 1 | -0.59 | +| APT | 11-26 12:00 | 11-26 14:00 | stop_loss | 2 | -1.49 | +| SHIB | 11-26 12:00 | 11-26 14:00 | stop_loss | 2 | -1.49 | +| SUI | 11-26 13:00 | 11-26 14:00 | stop_loss | 1 | -1.49 | +| UNI | 11-26 12:00 | 11-26 14:00 | trailing_stop | 2 | -0.66 | +| APT | 11-26 14:00 | 11-26 15:00 | stop_loss | 1 | -1.49 | +| BONK | 11-26 12:00 | 11-26 15:00 | stop_loss | 3 | -1.49 | +| FET | 11-26 12:00 | 11-26 15:00 | stop_loss | 3 | -1.49 | +| LTC | 11-26 11:00 | 11-26 15:00 | stop_loss | 4 | -1.49 | +| APT | 11-26 15:00 | 11-26 16:00 | take_profit | 1 | +1.49 | +| ETC | 11-26 11:00 | 11-26 16:00 | stop_loss | 5 | -1.49 | +| FET | 11-26 15:00 | 11-26 16:00 | take_profit | 1 | +1.49 | +| PEPE | 11-26 12:00 | 11-26 16:00 | take_profit | 4 | +1.49 | +| SHIB | 11-26 14:00 | 11-26 16:00 | take_profit | 2 | +1.49 | +| UNI | 11-26 14:00 | 11-26 16:00 | take_profit | 2 | +1.49 | +| WIF | 11-26 14:00 | 11-26 16:00 | take_profit | 2 | +1.49 | +| ARB | 11-26 14:00 | 11-26 17:00 | take_profit | 3 | +1.49 | +| NEAR | 11-26 15:00 | 11-26 17:00 | take_profit | 2 | +1.49 | +| OP | 11-26 14:00 | 11-26 17:00 | take_profit | 3 | +1.49 | +| RENDER | 11-26 14:00 | 11-26 17:00 | take_profit | 3 | +1.49 | +| TIA | 11-26 14:00 | 11-26 17:00 | take_profit | 3 | +1.49 | +| FIL | 11-27 07:00 | 11-27 12:00 | stop_loss | 5 | -1.49 | +| UNI | 11-27 08:00 | 11-27 12:00 | stop_loss | 4 | -1.49 | +| WIF | 11-27 11:00 | 11-27 14:00 | trailing_stop | 3 | -0.13 | +| BONK | 11-27 11:00 | 11-27 15:00 | trailing_stop | 4 | -0.19 | +| FIL | 11-27 12:00 | 11-27 15:00 | take_profit | 3 | +1.49 | +| SEI | 11-27 12:00 | 11-27 15:00 | take_profit | 3 | +1.49 | +| TRX | 11-25 02:00 | 11-27 15:00 | take_profit | 61 | +1.49 | +| RENDER | 11-27 10:00 | 11-27 16:00 | take_profit | 6 | +1.49 | +| UNI | 11-27 12:00 | 11-27 16:00 | take_profit | 4 | +1.49 | +| PEPE | 11-27 11:00 | 11-27 18:00 | take_profit | 7 | +1.49 | +| KAS | 11-27 22:00 | 11-27 23:00 | stop_loss | 1 | -1.49 | +| KAS | 11-27 23:00 | 11-28 00:00 | stop_loss | 1 | -1.49 | +| ETC | 11-27 11:00 | 11-28 01:00 | stop_loss | 14 | -1.49 | +| FET | 11-27 23:00 | 11-28 01:00 | stop_loss | 2 | -1.49 | +| FIL | 11-27 23:00 | 11-28 01:00 | stop_loss | 2 | -1.49 | +| KAS | 11-28 00:00 | 11-28 01:00 | stop_loss | 1 | -1.49 | +| FIL | 11-28 01:00 | 11-28 02:00 | stop_loss | 1 | -1.49 | +| KAS | 11-28 01:00 | 11-28 02:00 | stop_loss | 1 | -1.49 | +| APT | 11-28 01:00 | 11-28 04:00 | stop_loss | 3 | -1.49 | +| KAS | 11-28 03:00 | 11-28 06:00 | stop_loss | 3 | -1.49 | +| APT | 11-28 04:00 | 11-28 08:00 | take_profit | 4 | +1.49 | +| ARB | 11-28 06:00 | 11-28 08:00 | take_profit | 2 | +1.49 | +| ATOM | 11-28 01:00 | 11-28 08:00 | take_profit | 7 | +1.49 | +| BONK | 11-28 01:00 | 11-28 08:00 | take_profit | 7 | +1.49 | +| FET | 11-28 01:00 | 11-28 08:00 | take_profit | 7 | +1.49 | +| LTC | 11-28 01:00 | 11-28 08:00 | trailing_stop | 7 | -0.55 | +| NEAR | 11-28 01:00 | 11-28 08:00 | take_profit | 7 | +1.49 | +| OP | 11-28 05:00 | 11-28 08:00 | take_profit | 3 | +1.49 | +| RENDER | 11-28 01:00 | 11-28 08:00 | take_profit | 7 | +1.49 | +| WIF | 11-28 07:00 | 11-28 08:00 | take_profit | 1 | +1.49 | +| APT | 11-28 09:00 | 11-28 11:00 | stop_loss | 2 | -1.49 | +| LTC | 11-28 10:00 | 11-28 11:00 | stop_loss | 1 | -1.49 | +| TIA | 11-28 10:00 | 11-28 11:00 | stop_loss | 1 | -1.49 | +| LTC | 11-28 11:00 | 11-28 15:00 | take_profit | 4 | +1.49 | +| APT | 11-28 16:00 | 11-28 18:00 | stop_loss | 2 | -1.49 | +| AVAX | 11-28 16:00 | 11-29 00:00 | confirmed_bearish_exit | 8 | -0.23 | +| FET | 11-28 22:00 | 11-29 03:00 | take_profit | 5 | +1.49 | +| APT | 11-29 00:00 | 11-29 06:00 | stop_loss | 6 | -1.49 | +| ARB | 11-29 05:00 | 11-29 06:00 | stop_loss | 1 | -1.49 | +| KAS | 11-29 03:00 | 11-29 06:00 | stop_loss | 3 | -1.49 | +| AVAX | 11-29 04:00 | 11-29 07:00 | stop_loss | 3 | -1.49 | +| TON | 11-29 06:00 | 11-29 12:00 | take_profit | 6 | +1.49 | +| APT | 11-29 09:00 | 11-29 14:00 | stop_loss | 5 | -1.49 | +| APT | 11-29 14:00 | 11-29 17:00 | stop_loss | 3 | -1.49 | +| AVAX | 11-29 07:00 | 11-29 17:00 | trailing_stop | 10 | -0.42 | +| SEI | 11-29 12:00 | 11-29 17:00 | stop_loss | 5 | -1.49 | +| TIA | 11-29 14:00 | 11-29 17:00 | trailing_stop | 3 | -0.56 | +| APT | 11-29 17:00 | 11-29 18:00 | take_profit | 1 | +1.49 | +| AVAX | 11-29 18:00 | 11-29 19:00 | stop_loss | 1 | -1.49 | +| KAS | 11-29 18:00 | 11-29 19:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-29 19:00 | 11-29 20:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-29 20:00 | 11-29 23:00 | stop_loss | 3 | -1.49 | +| APT | 11-29 21:00 | 11-30 00:00 | stop_loss | 3 | -1.49 | +| SEI | 11-29 18:00 | 11-30 02:00 | take_profit | 8 | +1.49 | +| ARB | 11-29 17:00 | 11-30 03:00 | trailing_stop | 10 | -0.03 | +| BONK | 11-29 17:00 | 11-30 03:00 | trailing_stop | 10 | -0.36 | +| NEAR | 11-29 18:00 | 11-30 03:00 | stop_loss | 9 | -1.49 | +| PEPE | 11-29 17:00 | 11-30 03:00 | trailing_stop | 10 | -0.39 | +| UNI | 11-29 18:00 | 11-30 03:00 | trailing_stop | 9 | -0.19 | +| TIA | 11-29 21:00 | 11-30 04:00 | take_profit | 7 | +1.49 | +| AVAX | 11-29 23:00 | 11-30 05:00 | stop_loss | 6 | -1.49 | +| TON | 11-30 02:00 | 11-30 05:00 | stop_loss | 3 | -1.49 | +| BONK | 11-30 05:00 | 11-30 10:00 | take_profit | 5 | +1.49 | +| RENDER | 11-30 05:00 | 11-30 12:00 | trailing_stop | 7 | -0.40 | +| TON | 11-30 05:00 | 11-30 13:00 | take_profit | 8 | +1.49 | +| SHIB | 11-30 11:00 | 11-30 15:00 | trailing_stop | 4 | -0.07 | +| FET | 11-30 10:00 | 11-30 16:00 | take_profit | 6 | +1.49 | +| ATOM | 11-30 19:00 | 11-30 23:00 | stop_loss | 4 | -1.49 | +| FIL | 11-30 21:00 | 11-30 23:00 | stop_loss | 2 | -1.49 | +| OP | 11-30 15:00 | 11-30 23:00 | trailing_stop | 8 | -0.07 | +| APT | 11-30 23:00 | 12-01 00:00 | stop_loss | 1 | -1.49 | +| ATOM | 11-30 23:00 | 12-01 00:00 | stop_loss | 1 | -1.49 | +| AVAX | 11-30 23:00 | 12-01 00:00 | stop_loss | 1 | -1.49 | +| BONK | 11-30 23:00 | 12-01 00:00 | stop_loss | 1 | -1.49 | +| FIL | 11-30 23:00 | 12-01 00:00 | stop_loss | 1 | -1.49 | +| LTC | 11-30 23:00 | 12-01 00:00 | stop_loss | 1 | -1.49 | +| NEAR | 11-30 23:00 | 12-01 00:00 | stop_loss | 1 | -1.49 | +| PEPE | 11-30 23:00 | 12-01 00:00 | stop_loss | 1 | -1.49 | +| RENDER | 11-30 23:00 | 12-01 00:00 | stop_loss | 1 | -1.49 | +| SHIB | 11-30 23:00 | 12-01 00:00 | stop_loss | 1 | -1.49 | +| SUI | 11-30 23:00 | 12-01 00:00 | stop_loss | 1 | -1.49 | +| TRX | 11-30 00:00 | 12-01 00:00 | stop_loss | 24 | -1.49 | +| UNI | 11-30 23:00 | 12-01 00:00 | stop_loss | 1 | -1.49 | +| WIF | 11-30 23:00 | 12-01 00:00 | stop_loss | 1 | -1.49 | +| FIL | 12-01 00:00 | 12-01 01:00 | take_profit | 1 | +1.49 | +| KAS | 12-01 00:00 | 12-01 01:00 | take_profit | 1 | +1.49 | +| SHIB | 12-01 00:00 | 12-01 01:00 | trailing_stop | 1 | -0.71 | +| SUI | 12-01 00:00 | 12-01 01:00 | take_profit | 1 | +1.49 | +| TIA | 12-01 00:00 | 12-01 02:00 | stop_loss | 2 | -1.49 | +| ARB | 12-01 00:00 | 12-01 03:00 | stop_loss | 3 | -1.49 | +| AVAX | 12-01 00:00 | 12-01 03:00 | stop_loss | 3 | -1.49 | +| BONK | 12-01 00:00 | 12-01 03:00 | trailing_stop | 3 | -0.68 | +| FET | 12-01 00:00 | 12-01 03:00 | stop_loss | 3 | -1.49 | +| FIL | 12-01 01:00 | 12-01 03:00 | stop_loss | 2 | -1.49 | +| INJ | 12-01 00:00 | 12-01 03:00 | stop_loss | 3 | -1.49 | +| KAS | 12-01 02:00 | 12-01 03:00 | stop_loss | 1 | -1.49 | +| NEAR | 12-01 00:00 | 12-01 03:00 | stop_loss | 3 | -1.49 | +| OP | 12-01 00:00 | 12-01 03:00 | stop_loss | 3 | -1.49 | +| PEPE | 12-01 00:00 | 12-01 03:00 | stop_loss | 3 | -1.49 | +| RENDER | 12-01 00:00 | 12-01 03:00 | stop_loss | 3 | -1.49 | +| SEI | 12-01 00:00 | 12-01 03:00 | stop_loss | 3 | -1.49 | +| SHIB | 12-01 01:00 | 12-01 03:00 | stop_loss | 2 | -1.49 | +| SUI | 12-01 01:00 | 12-01 03:00 | stop_loss | 2 | -1.49 | +| TIA | 12-01 02:00 | 12-01 03:00 | stop_loss | 1 | -1.49 | +| UNI | 12-01 00:00 | 12-01 03:00 | stop_loss | 3 | -1.49 | +| ETC | 12-01 00:00 | 12-01 04:00 | stop_loss | 4 | -1.49 | +| FET | 12-01 03:00 | 12-01 04:00 | stop_loss | 1 | -1.49 | +| INJ | 12-01 03:00 | 12-01 04:00 | stop_loss | 1 | -1.49 | +| KAS | 12-01 03:00 | 12-01 04:00 | stop_loss | 1 | -1.49 | +| LTC | 12-01 00:00 | 12-01 04:00 | stop_loss | 4 | -1.49 | +| PEPE | 12-01 03:00 | 12-01 04:00 | stop_loss | 1 | -1.49 | +| SEI | 12-01 03:00 | 12-01 04:00 | stop_loss | 1 | -1.49 | +| TIA | 12-01 03:00 | 12-01 04:00 | stop_loss | 1 | -1.49 | +| TON | 12-01 00:00 | 12-01 04:00 | stop_loss | 4 | -1.49 | +| UNI | 12-01 03:00 | 12-01 04:00 | stop_loss | 1 | -1.49 | +| SUI | 12-01 03:00 | 12-01 05:00 | stop_loss | 2 | -1.49 | +| APT | 12-01 00:00 | 12-01 06:00 | stop_loss | 6 | -1.49 | +| KAS | 12-01 04:00 | 12-01 06:00 | stop_loss | 2 | -1.49 | +| ARB | 12-01 03:00 | 12-01 07:00 | trailing_stop | 4 | -0.08 | +| FIL | 12-01 03:00 | 12-01 07:00 | stop_loss | 4 | -1.49 | +| NEAR | 12-01 03:00 | 12-01 07:00 | stop_loss | 4 | -1.49 | +| TIA | 12-01 04:00 | 12-01 10:00 | take_profit | 6 | +1.49 | +| ATOM | 12-01 00:00 | 12-01 11:00 | trailing_stop | 11 | -0.34 | +| BONK | 12-01 03:00 | 12-01 11:00 | stop_loss | 8 | -1.49 | +| FET | 12-01 09:00 | 12-01 11:00 | stop_loss | 2 | -1.49 | +| OP | 12-01 03:00 | 12-01 11:00 | stop_loss | 8 | -1.49 | +| RENDER | 12-01 03:00 | 12-01 11:00 | trailing_stop | 8 | -0.45 | +| SEI | 12-01 09:00 | 12-01 11:00 | stop_loss | 2 | -1.49 | +| TON | 12-01 08:00 | 12-01 11:00 | stop_loss | 3 | -1.49 | +| WIF | 12-01 00:00 | 12-01 11:00 | stop_loss | 11 | -1.49 | +| ARB | 12-01 09:00 | 12-01 12:00 | stop_loss | 3 | -1.49 | +| ATOM | 12-01 11:00 | 12-01 12:00 | stop_loss | 1 | -1.49 | +| AVAX | 12-01 03:00 | 12-01 12:00 | stop_loss | 9 | -1.49 | +| FET | 12-01 11:00 | 12-01 12:00 | stop_loss | 1 | -1.49 | +| LTC | 12-01 04:00 | 12-01 12:00 | stop_loss | 8 | -1.49 | +| SHIB | 12-01 03:00 | 12-01 12:00 | stop_loss | 9 | -1.49 | +| TON | 12-01 11:00 | 12-01 12:00 | stop_loss | 1 | -1.49 | +| UNI | 12-01 10:00 | 12-01 12:00 | stop_loss | 2 | -1.49 | +| APT | 12-01 11:00 | 12-01 13:00 | take_profit | 2 | +1.49 | +| APT | 12-01 13:00 | 12-01 14:00 | stop_loss | 1 | -1.49 | +| BONK | 12-01 13:00 | 12-01 15:00 | stop_loss | 2 | -1.49 | +| ETC | 12-01 12:00 | 12-01 15:00 | stop_loss | 3 | -1.49 | +| SHIB | 12-01 12:00 | 12-01 15:00 | stop_loss | 3 | -1.49 | +| TON | 12-01 12:00 | 12-01 15:00 | stop_loss | 3 | -1.49 | +| UNI | 12-01 12:00 | 12-01 15:00 | stop_loss | 3 | -1.49 | +| SUI | 12-01 22:00 | 12-02 01:00 | take_profit | 3 | +1.49 | +| SEI | 12-01 22:00 | 12-02 02:00 | stop_loss | 4 | -1.49 | +| PEPE | 12-01 22:00 | 12-02 03:00 | stop_loss | 5 | -1.49 | +| AVAX | 12-01 22:00 | 12-02 05:00 | confirmed_bearish_exit | 7 | +0.67 | +| TRX | 12-01 00:00 | 12-02 16:00 | take_profit | 40 | +1.49 | +| WIF | 12-03 06:00 | 12-03 08:00 | stop_loss | 2 | -1.49 | +| ATOM | 12-03 12:00 | 12-03 14:00 | stop_loss | 2 | -1.49 | +| TIA | 12-03 05:00 | 12-03 14:00 | stop_loss | 9 | -1.49 | +| WIF | 12-03 12:00 | 12-03 14:00 | stop_loss | 2 | -1.49 | +| BONK | 12-03 14:00 | 12-03 15:00 | trailing_stop | 1 | -0.47 | +| WIF | 12-03 14:00 | 12-03 16:00 | take_profit | 2 | +1.49 | +| SEI | 12-03 14:00 | 12-03 17:00 | trailing_stop | 3 | +0.19 | +| SUI | 12-03 18:00 | 12-03 22:00 | take_profit | 4 | +1.49 | +| SUI | 12-03 22:00 | 12-04 00:00 | stop_loss | 2 | -1.49 | +| SHIB | 12-04 06:00 | 12-04 10:00 | stop_loss | 4 | -1.49 | +| APT | 12-04 11:00 | 12-04 13:00 | stop_loss | 2 | -1.49 | +| FET | 12-04 12:00 | 12-04 13:00 | stop_loss | 1 | -1.49 | +| SUI | 12-04 12:00 | 12-04 13:00 | stop_loss | 1 | -1.49 | +| TON | 12-04 10:00 | 12-04 13:00 | stop_loss | 3 | -1.49 | +| ARB | 12-04 13:00 | 12-04 14:00 | stop_loss | 1 | -1.49 | +| ATOM | 12-04 11:00 | 12-04 14:00 | stop_loss | 3 | -1.49 | +| BONK | 12-04 12:00 | 12-04 14:00 | stop_loss | 2 | -1.49 | +| ETC | 12-04 11:00 | 12-04 14:00 | stop_loss | 3 | -1.49 | +| FET | 12-04 13:00 | 12-04 14:00 | stop_loss | 1 | -1.49 | +| LTC | 12-04 10:00 | 12-04 14:00 | stop_loss | 4 | -1.49 | +| UNI | 12-04 12:00 | 12-04 14:00 | stop_loss | 2 | -1.49 | +| APT | 12-04 13:00 | 12-04 15:00 | take_profit | 2 | +1.49 | +| ARB | 12-04 14:00 | 12-04 15:00 | take_profit | 1 | +1.49 | +| ATOM | 12-04 14:00 | 12-04 15:00 | take_profit | 1 | +1.49 | +| BONK | 12-04 14:00 | 12-04 15:00 | take_profit | 1 | +1.49 | +| FET | 12-04 14:00 | 12-04 15:00 | take_profit | 1 | +1.49 | +| FIL | 12-04 14:00 | 12-04 15:00 | take_profit | 1 | +1.49 | +| INJ | 12-04 14:00 | 12-04 15:00 | take_profit | 1 | +1.49 | +| LTC | 12-04 14:00 | 12-04 15:00 | trailing_stop | 1 | -0.49 | +| OP | 12-04 12:00 | 12-04 15:00 | trailing_stop | 3 | -0.30 | +| SEI | 12-04 13:00 | 12-04 15:00 | take_profit | 2 | +1.49 | +| SUI | 12-04 13:00 | 12-04 15:00 | take_profit | 2 | +1.49 | +| UNI | 12-04 14:00 | 12-04 15:00 | take_profit | 1 | +1.49 | +| AVAX | 12-04 11:00 | 12-04 17:00 | stop_loss | 6 | -1.49 | +| NEAR | 12-04 16:00 | 12-04 17:00 | stop_loss | 1 | -1.49 | +| TIA | 12-04 11:00 | 12-04 17:00 | stop_loss | 6 | -1.49 | +| FIL | 12-04 17:00 | 12-04 18:00 | stop_loss | 1 | -1.49 | +| AVAX | 12-04 17:00 | 12-04 19:00 | stop_loss | 2 | -1.49 | +| ETC | 12-04 14:00 | 12-04 19:00 | stop_loss | 5 | -1.49 | +| FIL | 12-04 18:00 | 12-04 19:00 | stop_loss | 1 | -1.49 | +| INJ | 12-04 17:00 | 12-04 19:00 | stop_loss | 2 | -1.49 | +| NEAR | 12-04 17:00 | 12-04 19:00 | stop_loss | 2 | -1.49 | +| RENDER | 12-04 18:00 | 12-04 19:00 | stop_loss | 1 | -1.49 | +| TON | 12-04 13:00 | 12-04 19:00 | stop_loss | 6 | -1.49 | +| APT | 12-04 19:00 | 12-04 21:00 | stop_loss | 2 | -1.49 | +| TIA | 12-04 19:00 | 12-04 21:00 | stop_loss | 2 | -1.49 | +| WIF | 12-04 20:00 | 12-04 21:00 | stop_loss | 1 | -1.49 | +| WIF | 12-04 21:00 | 12-04 22:00 | take_profit | 1 | +1.49 | +| INJ | 12-04 20:00 | 12-04 23:00 | stop_loss | 3 | -1.49 | +| TRX | 12-03 05:00 | 12-05 00:00 | take_profit | 43 | +1.49 | +| FIL | 12-04 19:00 | 12-05 02:00 | take_profit | 7 | +1.49 | +| WIF | 12-04 23:00 | 12-05 02:00 | stop_loss | 3 | -1.49 | +| BONK | 12-04 21:00 | 12-05 03:00 | stop_loss | 6 | -1.49 | +| KAS | 12-04 21:00 | 12-05 03:00 | take_profit | 6 | +1.49 | +| APT | 12-04 21:00 | 12-05 04:00 | stop_loss | 7 | -1.49 | +| ARB | 12-04 21:00 | 12-05 04:00 | stop_loss | 7 | -1.49 | +| ATOM | 12-04 21:00 | 12-05 04:00 | trailing_stop | 7 | -0.67 | +| NEAR | 12-05 01:00 | 12-05 04:00 | stop_loss | 3 | -1.49 | +| OP | 12-04 21:00 | 12-05 04:00 | trailing_stop | 7 | -0.71 | +| SEI | 12-04 21:00 | 12-05 04:00 | stop_loss | 7 | -1.49 | +| AVAX | 12-04 19:00 | 12-05 08:00 | stop_loss | 13 | -1.49 | +| APT | 12-05 04:00 | 12-05 09:00 | stop_loss | 5 | -1.49 | +| SHIB | 12-05 05:00 | 12-05 09:00 | stop_loss | 4 | -1.49 | +| TIA | 12-04 21:00 | 12-05 09:00 | stop_loss | 12 | -1.49 | +| WIF | 12-05 06:00 | 12-05 09:00 | stop_loss | 3 | -1.49 | +| AVAX | 12-05 09:00 | 12-05 11:00 | stop_loss | 2 | -1.49 | +| ETC | 12-05 10:00 | 12-05 11:00 | stop_loss | 1 | -1.49 | +| FET | 12-05 09:00 | 12-05 11:00 | stop_loss | 2 | -1.49 | +| SEI | 12-05 09:00 | 12-05 11:00 | stop_loss | 2 | -1.49 | +| SHIB | 12-05 09:00 | 12-05 11:00 | stop_loss | 2 | -1.49 | +| AVAX | 12-05 11:00 | 12-05 12:00 | stop_loss | 1 | -1.49 | +| APT | 12-05 11:00 | 12-05 13:00 | stop_loss | 2 | -1.49 | +| ARB | 12-05 09:00 | 12-05 13:00 | stop_loss | 4 | -1.49 | +| ATOM | 12-05 09:00 | 12-05 13:00 | stop_loss | 4 | -1.49 | +| PEPE | 12-05 09:00 | 12-05 13:00 | stop_loss | 4 | -1.49 | +| UNI | 12-05 10:00 | 12-05 13:00 | stop_loss | 3 | -1.49 | +| APT | 12-05 13:00 | 12-05 14:00 | stop_loss | 1 | -1.49 | +| AVAX | 12-05 12:00 | 12-05 14:00 | stop_loss | 2 | -1.49 | +| ETC | 12-05 12:00 | 12-05 14:00 | stop_loss | 2 | -1.49 | +| FET | 12-05 13:00 | 12-05 14:00 | stop_loss | 1 | -1.49 | +| KAS | 12-05 09:00 | 12-05 14:00 | stop_loss | 5 | -1.49 | +| NEAR | 12-05 09:00 | 12-05 14:00 | stop_loss | 5 | -1.49 | +| PEPE | 12-05 13:00 | 12-05 14:00 | stop_loss | 1 | -1.49 | +| SHIB | 12-05 11:00 | 12-05 14:00 | stop_loss | 3 | -1.49 | +| UNI | 12-05 13:00 | 12-05 14:00 | stop_loss | 1 | -1.49 | +| APT | 12-05 14:00 | 12-05 15:00 | take_profit | 1 | +1.49 | +| ARB | 12-05 13:00 | 12-05 15:00 | take_profit | 2 | +1.49 | +| FET | 12-05 14:00 | 12-05 15:00 | take_profit | 1 | +1.49 | +| INJ | 12-05 13:00 | 12-05 15:00 | take_profit | 2 | +1.49 | +| NEAR | 12-05 14:00 | 12-05 15:00 | take_profit | 1 | +1.49 | +| PEPE | 12-05 14:00 | 12-05 15:00 | take_profit | 1 | +1.49 | +| RENDER | 12-05 09:00 | 12-05 15:00 | take_profit | 6 | +1.49 | +| SUI | 12-05 13:00 | 12-05 15:00 | take_profit | 2 | +1.49 | +| TIA | 12-05 13:00 | 12-05 15:00 | take_profit | 2 | +1.49 | +| UNI | 12-05 14:00 | 12-05 15:00 | take_profit | 1 | +1.49 | +| ATOM | 12-05 14:00 | 12-05 16:00 | stop_loss | 2 | -1.49 | +| AVAX | 12-05 14:00 | 12-05 16:00 | stop_loss | 2 | -1.49 | +| BONK | 12-05 13:00 | 12-05 16:00 | stop_loss | 3 | -1.49 | +| ETC | 12-05 14:00 | 12-05 16:00 | stop_loss | 2 | -1.49 | +| FET | 12-05 15:00 | 12-05 16:00 | stop_loss | 1 | -1.49 | +| FIL | 12-05 15:00 | 12-05 16:00 | stop_loss | 1 | -1.49 | +| LTC | 12-05 10:00 | 12-05 16:00 | stop_loss | 6 | -1.49 | +| TON | 12-05 14:00 | 12-05 16:00 | stop_loss | 2 | -1.49 | +| APT | 12-05 16:00 | 12-05 17:00 | stop_loss | 1 | -1.49 | +| AVAX | 12-05 16:00 | 12-05 17:00 | stop_loss | 1 | -1.49 | +| OP | 12-05 16:00 | 12-05 17:00 | stop_loss | 1 | -1.49 | +| SEI | 12-05 16:00 | 12-05 17:00 | stop_loss | 1 | -1.49 | +| SUI | 12-05 16:00 | 12-05 17:00 | stop_loss | 1 | -1.49 | +| APT | 12-05 17:00 | 12-05 18:00 | stop_loss | 1 | -1.49 | +| ARB | 12-05 16:00 | 12-05 18:00 | stop_loss | 2 | -1.49 | +| BONK | 12-05 16:00 | 12-05 18:00 | stop_loss | 2 | -1.49 | +| FET | 12-05 16:00 | 12-05 18:00 | stop_loss | 2 | -1.49 | +| INJ | 12-05 16:00 | 12-05 18:00 | stop_loss | 2 | -1.49 | +| KAS | 12-05 16:00 | 12-05 18:00 | stop_loss | 2 | -1.49 | +| OP | 12-05 17:00 | 12-05 18:00 | stop_loss | 1 | -1.49 | +| RENDER | 12-05 16:00 | 12-05 18:00 | stop_loss | 2 | -1.49 | +| SEI | 12-05 17:00 | 12-05 18:00 | stop_loss | 1 | -1.49 | +| SUI | 12-05 17:00 | 12-05 18:00 | stop_loss | 1 | -1.49 | +| TIA | 12-05 16:00 | 12-05 18:00 | stop_loss | 2 | -1.49 | +| UNI | 12-05 16:00 | 12-05 18:00 | stop_loss | 2 | -1.49 | +| ARB | 12-05 18:00 | 12-05 19:00 | trailing_stop | 1 | -0.61 | +| ATOM | 12-05 16:00 | 12-05 19:00 | stop_loss | 3 | -1.49 | +| FIL | 12-05 16:00 | 12-05 19:00 | stop_loss | 3 | -1.49 | +| INJ | 12-05 18:00 | 12-05 19:00 | trailing_stop | 1 | -0.41 | +| KAS | 12-05 18:00 | 12-05 19:00 | trailing_stop | 1 | -0.38 | +| LTC | 12-05 16:00 | 12-05 19:00 | stop_loss | 3 | -1.49 | +| OP | 12-05 18:00 | 12-05 19:00 | take_profit | 1 | +1.49 | +| PEPE | 12-05 16:00 | 12-05 19:00 | trailing_stop | 3 | -0.56 | +| SEI | 12-05 18:00 | 12-05 19:00 | trailing_stop | 1 | -0.59 | +| SUI | 12-05 18:00 | 12-05 19:00 | trailing_stop | 1 | -0.32 | +| UNI | 12-05 18:00 | 12-05 19:00 | trailing_stop | 1 | -0.59 | +| WIF | 12-05 18:00 | 12-05 19:00 | trailing_stop | 1 | -0.33 | +| FET | 12-05 18:00 | 12-05 22:00 | take_profit | 4 | +1.49 | +| BONK | 12-05 18:00 | 12-05 23:00 | trailing_stop | 5 | -0.04 | +| APT | 12-05 18:00 | 12-06 00:00 | trailing_stop | 6 | -0.33 | +| FET | 12-05 23:00 | 12-06 00:00 | stop_loss | 1 | -1.49 | +| TON | 12-05 16:00 | 12-06 00:00 | take_profit | 8 | +1.49 | +| TIA | 12-05 18:00 | 12-06 02:00 | trailing_stop | 8 | -0.31 | +| WIF | 12-06 00:00 | 12-06 02:00 | take_profit | 2 | +1.49 | +| RENDER | 12-05 18:00 | 12-06 03:00 | take_profit | 9 | +1.49 | +| FIL | 12-05 23:00 | 12-06 07:00 | stop_loss | 8 | -1.49 | +| INJ | 12-06 00:00 | 12-06 07:00 | stop_loss | 7 | -1.49 | +| PEPE | 12-06 00:00 | 12-06 07:00 | stop_loss | 7 | -1.49 | +| AVAX | 12-06 02:00 | 12-06 08:00 | stop_loss | 6 | -1.49 | +| BONK | 12-06 00:00 | 12-06 08:00 | stop_loss | 8 | -1.49 | +| UNI | 12-06 03:00 | 12-06 08:00 | stop_loss | 5 | -1.49 | +| FET | 12-06 00:00 | 12-06 09:00 | confirmed_bearish_exit | 9 | +0.48 | +| NEAR | 12-05 16:00 | 12-06 09:00 | take_profit | 17 | +1.49 | +| ETC | 12-05 16:00 | 12-06 10:00 | confirmed_bearish_exit | 18 | +0.49 | +| ARB | 12-06 01:00 | 12-06 14:00 | take_profit | 13 | +1.49 | +| LTC | 12-06 01:00 | 12-06 14:00 | take_profit | 13 | +1.49 | +| OP | 12-06 00:00 | 12-06 14:00 | take_profit | 14 | +1.49 | +| SEI | 12-06 03:00 | 12-06 14:00 | take_profit | 11 | +1.49 | +| ATOM | 12-06 00:00 | 12-06 17:00 | take_profit | 17 | +1.49 | +| KAS | 12-06 19:00 | 12-06 21:00 | take_profit | 2 | +1.49 | +| KAS | 12-07 04:00 | 12-07 07:00 | stop_loss | 3 | -1.49 | +| FET | 12-07 07:00 | 12-07 09:00 | stop_loss | 2 | -1.49 | +| RENDER | 12-06 05:00 | 12-07 09:00 | stop_loss | 28 | -1.49 | +| APT | 12-07 07:00 | 12-07 10:00 | stop_loss | 3 | -1.49 | +| ATOM | 12-07 07:00 | 12-07 11:00 | stop_loss | 4 | -1.49 | +| ETC | 12-07 08:00 | 12-07 13:00 | stop_loss | 5 | -1.49 | +| FET | 12-07 09:00 | 12-07 13:00 | trailing_stop | 4 | -0.62 | +| INJ | 12-07 09:00 | 12-07 13:00 | stop_loss | 4 | -1.49 | +| TIA | 12-07 09:00 | 12-07 13:00 | stop_loss | 4 | -1.49 | +| ATOM | 12-07 11:00 | 12-07 14:00 | stop_loss | 3 | -1.49 | +| ETC | 12-07 13:00 | 12-07 14:00 | stop_loss | 1 | -1.49 | +| FIL | 12-07 09:00 | 12-07 14:00 | stop_loss | 5 | -1.49 | +| NEAR | 12-07 11:00 | 12-07 14:00 | stop_loss | 3 | -1.49 | +| OP | 12-07 13:00 | 12-07 14:00 | stop_loss | 1 | -1.49 | +| TON | 12-07 09:00 | 12-07 14:00 | stop_loss | 5 | -1.49 | +| UNI | 12-07 09:00 | 12-07 14:00 | stop_loss | 5 | -1.49 | +| APT | 12-07 14:00 | 12-07 15:00 | take_profit | 1 | +1.49 | +| ARB | 12-07 14:00 | 12-07 15:00 | take_profit | 1 | +1.49 | +| ATOM | 12-07 14:00 | 12-07 15:00 | take_profit | 1 | +1.49 | +| AVAX | 12-07 14:00 | 12-07 15:00 | take_profit | 1 | +1.49 | +| BONK | 12-07 14:00 | 12-07 15:00 | take_profit | 1 | +1.49 | +| ETC | 12-07 14:00 | 12-07 15:00 | take_profit | 1 | +1.49 | +| FET | 12-07 14:00 | 12-07 15:00 | take_profit | 1 | +1.49 | +| FIL | 12-07 14:00 | 12-07 15:00 | take_profit | 1 | +1.49 | +| INJ | 12-07 14:00 | 12-07 15:00 | take_profit | 1 | +1.49 | +| LTC | 12-07 14:00 | 12-07 15:00 | take_profit | 1 | +1.49 | +| NEAR | 12-07 14:00 | 12-07 15:00 | take_profit | 1 | +1.49 | +| OP | 12-07 14:00 | 12-07 15:00 | take_profit | 1 | +1.49 | +| PEPE | 12-07 14:00 | 12-07 15:00 | take_profit | 1 | +1.49 | +| RENDER | 12-07 14:00 | 12-07 15:00 | take_profit | 1 | +1.49 | +| SEI | 12-07 14:00 | 12-07 15:00 | take_profit | 1 | +1.49 | +| SHIB | 12-07 14:00 | 12-07 15:00 | take_profit | 1 | +1.49 | +| SUI | 12-07 14:00 | 12-07 15:00 | take_profit | 1 | +1.49 | +| TIA | 12-07 14:00 | 12-07 15:00 | take_profit | 1 | +1.49 | +| TON | 12-07 14:00 | 12-07 15:00 | trailing_stop | 1 | -0.06 | +| UNI | 12-07 14:00 | 12-07 15:00 | take_profit | 1 | +1.49 | +| WIF | 12-07 14:00 | 12-07 15:00 | take_profit | 1 | +1.49 | +| TRX | 12-07 00:00 | 12-08 16:00 | stop_loss | 40 | -1.49 | +| KAS | 12-08 18:00 | 12-09 00:00 | trailing_stop | 6 | -0.07 | +| TRX | 12-08 16:00 | 12-09 00:00 | stop_loss | 8 | -1.49 | +| UNI | 12-08 23:00 | 12-09 00:00 | stop_loss | 1 | -1.49 | +| INJ | 12-08 23:00 | 12-09 01:00 | stop_loss | 2 | -1.49 | +| OP | 12-08 23:00 | 12-09 01:00 | stop_loss | 2 | -1.49 | +| NEAR | 12-09 00:00 | 12-09 03:00 | stop_loss | 3 | -1.49 | +| SEI | 12-09 00:00 | 12-09 03:00 | stop_loss | 3 | -1.49 | +| TON | 12-08 23:00 | 12-09 03:00 | stop_loss | 4 | -1.49 | +| UNI | 12-09 01:00 | 12-09 03:00 | stop_loss | 2 | -1.49 | +| BONK | 12-09 01:00 | 12-09 05:00 | stop_loss | 4 | -1.49 | +| PEPE | 12-09 04:00 | 12-09 06:00 | stop_loss | 2 | -1.49 | +| APT | 12-09 04:00 | 12-09 07:00 | take_profit | 3 | +1.49 | +| SUI | 12-09 01:00 | 12-09 07:00 | trailing_stop | 6 | -0.08 | +| WIF | 12-09 04:00 | 12-09 07:00 | trailing_stop | 3 | -0.66 | +| FIL | 12-09 01:00 | 12-09 09:00 | stop_loss | 8 | -1.49 | +| NEAR | 12-09 04:00 | 12-09 09:00 | trailing_stop | 5 | -0.31 | +| ETC | 12-09 02:00 | 12-09 12:00 | trailing_stop | 10 | -0.29 | +| INJ | 12-09 01:00 | 12-09 12:00 | take_profit | 11 | +1.49 | +| ATOM | 12-09 04:00 | 12-09 13:00 | take_profit | 9 | +1.49 | +| LTC | 12-09 11:00 | 12-09 14:00 | trailing_stop | 3 | -0.29 | +| PEPE | 12-09 12:00 | 12-09 14:00 | stop_loss | 2 | -1.49 | +| PEPE | 12-09 14:00 | 12-09 15:00 | take_profit | 1 | +1.49 | +| WIF | 12-09 11:00 | 12-09 15:00 | take_profit | 4 | +1.49 | +| FIL | 12-10 06:00 | 12-10 07:00 | stop_loss | 1 | -1.49 | +| PEPE | 12-10 06:00 | 12-10 07:00 | stop_loss | 1 | -1.49 | +| SUI | 12-10 06:00 | 12-10 07:00 | stop_loss | 1 | -1.49 | +| WIF | 12-10 06:00 | 12-10 07:00 | stop_loss | 1 | -1.49 | +| APT | 12-10 06:00 | 12-10 08:00 | stop_loss | 2 | -1.49 | +| BONK | 12-10 06:00 | 12-10 08:00 | stop_loss | 2 | -1.49 | +| FIL | 12-10 07:00 | 12-10 08:00 | stop_loss | 1 | -1.49 | +| KAS | 12-10 06:00 | 12-10 08:00 | stop_loss | 2 | -1.49 | +| NEAR | 12-10 06:00 | 12-10 08:00 | stop_loss | 2 | -1.49 | +| OP | 12-10 06:00 | 12-10 08:00 | stop_loss | 2 | -1.49 | +| PEPE | 12-10 07:00 | 12-10 08:00 | stop_loss | 1 | -1.49 | +| TIA | 12-10 06:00 | 12-10 08:00 | stop_loss | 2 | -1.49 | +| APT | 12-10 08:00 | 12-10 09:00 | trailing_stop | 1 | -0.65 | +| ARB | 12-10 06:00 | 12-10 09:00 | stop_loss | 3 | -1.49 | +| ATOM | 12-10 06:00 | 12-10 09:00 | stop_loss | 3 | -1.49 | +| FIL | 12-10 08:00 | 12-10 09:00 | trailing_stop | 1 | -0.70 | +| INJ | 12-10 06:00 | 12-10 09:00 | stop_loss | 3 | -1.49 | +| PEPE | 12-10 08:00 | 12-10 09:00 | stop_loss | 1 | -1.49 | +| RENDER | 12-10 06:00 | 12-10 09:00 | stop_loss | 3 | -1.49 | +| SHIB | 12-10 05:00 | 12-10 09:00 | stop_loss | 4 | -1.49 | +| UNI | 12-10 06:00 | 12-10 09:00 | stop_loss | 3 | -1.49 | +| WIF | 12-10 07:00 | 12-10 09:00 | stop_loss | 2 | -1.49 | +| APT | 12-10 09:00 | 12-10 10:00 | stop_loss | 1 | -1.49 | +| ARB | 12-10 09:00 | 12-10 10:00 | stop_loss | 1 | -1.49 | +| ATOM | 12-10 09:00 | 12-10 10:00 | stop_loss | 1 | -1.49 | +| BONK | 12-10 08:00 | 12-10 10:00 | stop_loss | 2 | -1.49 | +| PEPE | 12-10 09:00 | 12-10 10:00 | stop_loss | 1 | -1.49 | +| SEI | 12-10 07:00 | 12-10 10:00 | stop_loss | 3 | -1.49 | +| SUI | 12-10 07:00 | 12-10 10:00 | stop_loss | 3 | -1.49 | +| TIA | 12-10 08:00 | 12-10 10:00 | take_profit | 2 | +1.49 | +| UNI | 12-10 09:00 | 12-10 10:00 | stop_loss | 1 | -1.49 | +| WIF | 12-10 09:00 | 12-10 10:00 | stop_loss | 1 | -1.49 | +| AVAX | 12-10 10:00 | 12-10 11:00 | stop_loss | 1 | -1.49 | +| ETC | 12-10 06:00 | 12-10 11:00 | stop_loss | 5 | -1.49 | +| WIF | 12-10 10:00 | 12-10 11:00 | stop_loss | 1 | -1.49 | +| APT | 12-10 10:00 | 12-10 12:00 | stop_loss | 2 | -1.49 | +| BONK | 12-10 10:00 | 12-10 12:00 | stop_loss | 2 | -1.49 | +| NEAR | 12-10 08:00 | 12-10 12:00 | stop_loss | 4 | -1.49 | +| PEPE | 12-10 10:00 | 12-10 12:00 | stop_loss | 2 | -1.49 | +| TRX | 12-09 00:00 | 12-10 14:00 | stop_loss | 38 | -1.49 | +| KAS | 12-10 08:00 | 12-10 16:00 | take_profit | 8 | +1.49 | +| AVAX | 12-10 11:00 | 12-10 18:00 | take_profit | 7 | +1.49 | +| BONK | 12-10 17:00 | 12-10 18:00 | take_profit | 1 | +1.49 | +| INJ | 12-10 15:00 | 12-10 18:00 | take_profit | 3 | +1.49 | +| OP | 12-10 08:00 | 12-10 18:00 | take_profit | 10 | +1.49 | +| TIA | 12-10 10:00 | 12-10 18:00 | take_profit | 8 | +1.49 | +| TON | 12-10 06:00 | 12-10 18:00 | take_profit | 12 | +1.49 | +| WIF | 12-10 11:00 | 12-10 18:00 | take_profit | 7 | +1.49 | +| FIL | 12-10 16:00 | 12-10 19:00 | take_profit | 3 | +1.49 | +| LTC | 12-10 06:00 | 12-10 19:00 | trailing_stop | 13 | -0.15 | +| WIF | 12-10 18:00 | 12-10 19:00 | stop_loss | 1 | -1.49 | +| WIF | 12-10 19:00 | 12-10 20:00 | stop_loss | 1 | -1.49 | +| WIF | 12-10 20:00 | 12-10 21:00 | stop_loss | 1 | -1.49 | +| FET | 12-10 21:00 | 12-10 22:00 | stop_loss | 1 | -1.49 | +| KAS | 12-10 21:00 | 12-10 22:00 | stop_loss | 1 | -1.49 | +| OP | 12-10 21:00 | 12-10 22:00 | stop_loss | 1 | -1.49 | +| FET | 12-10 23:00 | 12-11 00:00 | stop_loss | 1 | -1.49 | +| KAS | 12-10 23:00 | 12-11 00:00 | stop_loss | 1 | -1.49 | +| OP | 12-10 23:00 | 12-11 00:00 | stop_loss | 1 | -1.49 | +| AVAX | 12-11 00:00 | 12-11 01:00 | stop_loss | 1 | -1.49 | +| ETC | 12-11 00:00 | 12-11 01:00 | stop_loss | 1 | -1.49 | +| FET | 12-11 00:00 | 12-11 01:00 | stop_loss | 1 | -1.49 | +| FIL | 12-11 00:00 | 12-11 01:00 | stop_loss | 1 | -1.49 | +| KAS | 12-11 00:00 | 12-11 01:00 | stop_loss | 1 | -1.49 | +| LTC | 12-11 00:00 | 12-11 01:00 | stop_loss | 1 | -1.49 | +| OP | 12-11 00:00 | 12-11 01:00 | stop_loss | 1 | -1.49 | +| ARB | 12-11 01:00 | 12-11 02:00 | stop_loss | 1 | -1.49 | +| AVAX | 12-11 01:00 | 12-11 02:00 | stop_loss | 1 | -1.49 | +| ETC | 12-11 01:00 | 12-11 02:00 | stop_loss | 1 | -1.49 | +| FET | 12-11 01:00 | 12-11 02:00 | stop_loss | 1 | -1.49 | +| FIL | 12-11 01:00 | 12-11 02:00 | stop_loss | 1 | -1.49 | +| INJ | 12-11 01:00 | 12-11 02:00 | stop_loss | 1 | -1.49 | +| NEAR | 12-11 01:00 | 12-11 02:00 | stop_loss | 1 | -1.49 | +| OP | 12-11 01:00 | 12-11 02:00 | stop_loss | 1 | -1.49 | +| PEPE | 12-11 01:00 | 12-11 02:00 | stop_loss | 1 | -1.49 | +| UNI | 12-11 01:00 | 12-11 02:00 | stop_loss | 1 | -1.49 | +| WIF | 12-11 00:00 | 12-11 02:00 | stop_loss | 2 | -1.49 | +| ARB | 12-11 02:00 | 12-11 03:00 | stop_loss | 1 | -1.49 | +| AVAX | 12-11 02:00 | 12-11 03:00 | stop_loss | 1 | -1.49 | +| ETC | 12-11 02:00 | 12-11 03:00 | stop_loss | 1 | -1.49 | +| FET | 12-11 02:00 | 12-11 03:00 | stop_loss | 1 | -1.49 | +| FIL | 12-11 02:00 | 12-11 03:00 | stop_loss | 1 | -1.49 | +| INJ | 12-11 02:00 | 12-11 03:00 | stop_loss | 1 | -1.49 | +| KAS | 12-11 01:00 | 12-11 03:00 | stop_loss | 2 | -1.49 | +| LTC | 12-11 01:00 | 12-11 03:00 | stop_loss | 2 | -1.49 | +| NEAR | 12-11 02:00 | 12-11 03:00 | stop_loss | 1 | -1.49 | +| OP | 12-11 02:00 | 12-11 03:00 | stop_loss | 1 | -1.49 | +| PEPE | 12-11 02:00 | 12-11 03:00 | stop_loss | 1 | -1.49 | +| RENDER | 12-11 01:00 | 12-11 03:00 | stop_loss | 2 | -1.49 | +| SUI | 12-11 02:00 | 12-11 03:00 | stop_loss | 1 | -1.49 | +| TIA | 12-11 02:00 | 12-11 03:00 | stop_loss | 1 | -1.49 | +| TON | 12-11 02:00 | 12-11 03:00 | stop_loss | 1 | -1.49 | +| UNI | 12-11 02:00 | 12-11 03:00 | stop_loss | 1 | -1.49 | +| WIF | 12-11 02:00 | 12-11 03:00 | stop_loss | 1 | -1.49 | +| APT | 12-11 03:00 | 12-11 04:00 | take_profit | 1 | +1.49 | +| ARB | 12-11 03:00 | 12-11 04:00 | trailing_stop | 1 | -0.06 | +| BONK | 12-11 03:00 | 12-11 04:00 | take_profit | 1 | +1.49 | +| FET | 12-11 03:00 | 12-11 04:00 | take_profit | 1 | +1.49 | +| FIL | 12-11 03:00 | 12-11 04:00 | trailing_stop | 1 | -0.55 | +| INJ | 12-11 03:00 | 12-11 04:00 | trailing_stop | 1 | -0.22 | +| KAS | 12-11 03:00 | 12-11 04:00 | trailing_stop | 1 | -0.22 | +| LTC | 12-11 03:00 | 12-11 04:00 | trailing_stop | 1 | -0.56 | +| NEAR | 12-11 03:00 | 12-11 04:00 | trailing_stop | 1 | -0.22 | +| OP | 12-11 03:00 | 12-11 04:00 | trailing_stop | 1 | -0.31 | +| PEPE | 12-11 03:00 | 12-11 04:00 | trailing_stop | 1 | -0.36 | +| RENDER | 12-11 03:00 | 12-11 04:00 | trailing_stop | 1 | -0.31 | +| SUI | 12-11 03:00 | 12-11 04:00 | trailing_stop | 1 | -0.11 | +| TIA | 12-11 03:00 | 12-11 04:00 | trailing_stop | 1 | -0.50 | +| TON | 12-11 03:00 | 12-11 04:00 | trailing_stop | 1 | -0.71 | +| UNI | 12-11 03:00 | 12-11 04:00 | trailing_stop | 1 | -0.51 | +| WIF | 12-11 03:00 | 12-11 04:00 | take_profit | 1 | +1.49 | +| SEI | 12-11 07:00 | 12-11 08:00 | stop_loss | 1 | -1.49 | +| WIF | 12-11 07:00 | 12-11 08:00 | stop_loss | 1 | -1.49 | +| KAS | 12-11 07:00 | 12-11 09:00 | stop_loss | 2 | -1.49 | +| SEI | 12-11 08:00 | 12-11 09:00 | stop_loss | 1 | -1.49 | +| WIF | 12-11 08:00 | 12-11 09:00 | stop_loss | 1 | -1.49 | +| AVAX | 12-11 03:00 | 12-11 10:00 | trailing_stop | 7 | -0.59 | +| WIF | 12-11 09:00 | 12-11 11:00 | trailing_stop | 2 | -0.39 | +| UNI | 12-11 11:00 | 12-11 13:00 | stop_loss | 2 | -1.49 | +| ARB | 12-11 13:00 | 12-11 14:00 | stop_loss | 1 | -1.49 | +| ATOM | 12-11 03:00 | 12-11 14:00 | trailing_stop | 11 | -0.65 | +| FET | 12-11 11:00 | 12-11 14:00 | stop_loss | 3 | -1.49 | +| INJ | 12-11 12:00 | 12-11 14:00 | stop_loss | 2 | -1.49 | +| RENDER | 12-11 12:00 | 12-11 14:00 | stop_loss | 2 | -1.49 | +| SHIB | 12-11 03:00 | 12-11 14:00 | stop_loss | 11 | -1.49 | +| UNI | 12-11 13:00 | 12-11 14:00 | stop_loss | 1 | -1.49 | +| ARB | 12-11 14:00 | 12-11 16:00 | stop_loss | 2 | -1.49 | +| RENDER | 12-11 14:00 | 12-11 16:00 | stop_loss | 2 | -1.49 | +| SEI | 12-11 09:00 | 12-11 16:00 | stop_loss | 7 | -1.49 | +| KAS | 12-11 15:00 | 12-11 18:00 | take_profit | 3 | +1.49 | +| APT | 12-11 19:00 | 12-11 21:00 | take_profit | 2 | +1.49 | +| ETC | 12-11 03:00 | 12-11 21:00 | take_profit | 18 | +1.49 | +| WIF | 12-12 11:00 | 12-12 12:00 | trailing_stop | 1 | -0.45 | +| BONK | 12-12 11:00 | 12-12 14:00 | stop_loss | 3 | -1.49 | +| BONK | 12-12 14:00 | 12-12 15:00 | stop_loss | 1 | -1.49 | +| TRX | 12-12 07:00 | 12-12 15:00 | stop_loss | 8 | -1.49 | +| APT | 12-12 15:00 | 12-12 16:00 | stop_loss | 1 | -1.49 | +| ARB | 12-12 15:00 | 12-12 16:00 | stop_loss | 1 | -1.49 | +| ATOM | 12-12 15:00 | 12-12 16:00 | stop_loss | 1 | -1.49 | +| BONK | 12-12 15:00 | 12-12 16:00 | stop_loss | 1 | -1.49 | +| FET | 12-12 15:00 | 12-12 16:00 | stop_loss | 1 | -1.49 | +| FIL | 12-12 15:00 | 12-12 16:00 | stop_loss | 1 | -1.49 | +| INJ | 12-12 15:00 | 12-12 16:00 | stop_loss | 1 | -1.49 | +| LTC | 12-12 15:00 | 12-12 16:00 | stop_loss | 1 | -1.49 | +| NEAR | 12-12 15:00 | 12-12 16:00 | stop_loss | 1 | -1.49 | +| OP | 12-12 15:00 | 12-12 16:00 | stop_loss | 1 | -1.49 | +| PEPE | 12-12 15:00 | 12-12 16:00 | stop_loss | 1 | -1.49 | +| RENDER | 12-12 15:00 | 12-12 16:00 | stop_loss | 1 | -1.49 | +| SEI | 12-12 15:00 | 12-12 16:00 | stop_loss | 1 | -1.49 | +| SHIB | 12-12 15:00 | 12-12 16:00 | stop_loss | 1 | -1.49 | +| SUI | 12-12 15:00 | 12-12 16:00 | stop_loss | 1 | -1.49 | +| TIA | 12-12 15:00 | 12-12 16:00 | stop_loss | 1 | -1.49 | +| TON | 12-12 15:00 | 12-12 16:00 | stop_loss | 1 | -1.49 | +| UNI | 12-12 15:00 | 12-12 16:00 | stop_loss | 1 | -1.49 | +| WIF | 12-12 15:00 | 12-12 16:00 | stop_loss | 1 | -1.49 | +| INJ | 12-12 16:00 | 12-12 17:00 | take_profit | 1 | +1.49 | +| APT | 12-12 16:00 | 12-12 18:00 | take_profit | 2 | +1.49 | +| ARB | 12-12 16:00 | 12-12 18:00 | take_profit | 2 | +1.49 | +| ATOM | 12-12 16:00 | 12-12 18:00 | take_profit | 2 | +1.49 | +| AVAX | 12-12 15:00 | 12-12 18:00 | take_profit | 3 | +1.49 | +| BONK | 12-12 16:00 | 12-12 18:00 | take_profit | 2 | +1.49 | +| FET | 12-12 16:00 | 12-12 18:00 | take_profit | 2 | +1.49 | +| OP | 12-12 16:00 | 12-12 18:00 | take_profit | 2 | +1.49 | +| PEPE | 12-12 16:00 | 12-12 18:00 | take_profit | 2 | +1.49 | +| SHIB | 12-12 16:00 | 12-12 18:00 | take_profit | 2 | +1.49 | +| TIA | 12-12 16:00 | 12-12 18:00 | take_profit | 2 | +1.49 | +| UNI | 12-12 16:00 | 12-12 18:00 | take_profit | 2 | +1.49 | +| WIF | 12-12 16:00 | 12-12 18:00 | take_profit | 2 | +1.49 | +| FIL | 12-12 16:00 | 12-12 22:00 | take_profit | 6 | +1.49 | +| INJ | 12-12 17:00 | 12-12 22:00 | take_profit | 5 | +1.49 | +| NEAR | 12-12 16:00 | 12-12 22:00 | take_profit | 6 | +1.49 | +| RENDER | 12-12 16:00 | 12-13 00:00 | take_profit | 8 | +1.49 | +| FIL | 12-12 23:00 | 12-13 01:00 | stop_loss | 2 | -1.49 | +| KAS | 12-12 15:00 | 12-13 01:00 | take_profit | 10 | +1.49 | +| SEI | 12-12 16:00 | 12-13 01:00 | take_profit | 9 | +1.49 | +| SUI | 12-12 16:00 | 12-13 02:00 | take_profit | 10 | +1.49 | +| APT | 12-12 23:00 | 12-13 03:00 | take_profit | 4 | +1.49 | +| ETC | 12-12 15:00 | 12-13 03:00 | take_profit | 12 | +1.49 | +| INJ | 12-12 23:00 | 12-13 03:00 | trailing_stop | 4 | -0.22 | +| TIA | 12-12 23:00 | 12-13 03:00 | trailing_stop | 4 | -0.15 | +| TON | 12-12 16:00 | 12-13 03:00 | take_profit | 11 | +1.49 | +| PEPE | 12-12 23:00 | 12-13 05:00 | take_profit | 6 | +1.49 | +| AVAX | 12-12 23:00 | 12-13 06:00 | take_profit | 7 | +1.49 | +| BONK | 12-12 23:00 | 12-13 06:00 | trailing_stop | 7 | -0.09 | +| FIL | 12-13 01:00 | 12-13 06:00 | confirmed_bearish_exit | 5 | +0.25 | +| SEI | 12-13 04:00 | 12-13 06:00 | stop_loss | 2 | -1.49 | +| ARB | 12-12 23:00 | 12-13 08:00 | take_profit | 9 | +1.49 | +| FET | 12-13 02:00 | 12-13 08:00 | take_profit | 6 | +1.49 | +| OP | 12-13 01:00 | 12-13 08:00 | take_profit | 7 | +1.49 | +| SUI | 12-13 02:00 | 12-13 08:00 | take_profit | 6 | +1.49 | +| NEAR | 12-12 23:00 | 12-13 09:00 | take_profit | 10 | +1.49 | +| TRX | 12-12 15:00 | 12-13 11:00 | stop_loss | 20 | -1.49 | +| LTC | 12-12 16:00 | 12-13 13:00 | trailing_stop | 21 | +0.01 | +| UNI | 12-12 23:00 | 12-13 14:00 | trailing_stop | 15 | -0.53 | +| LTC | 12-13 17:00 | 12-13 21:00 | stop_loss | 4 | -1.49 | +| RENDER | 12-13 00:00 | 12-14 04:00 | stop_loss | 28 | -1.49 | +| FET | 12-14 00:00 | 12-14 05:00 | stop_loss | 5 | -1.49 | +| FET | 12-14 05:00 | 12-14 06:00 | stop_loss | 1 | -1.49 | +| OP | 12-14 04:00 | 12-14 06:00 | stop_loss | 2 | -1.49 | +| WIF | 12-14 04:00 | 12-14 06:00 | stop_loss | 2 | -1.49 | +| AVAX | 12-14 05:00 | 12-14 10:00 | stop_loss | 5 | -1.49 | +| ETC | 12-14 05:00 | 12-14 10:00 | stop_loss | 5 | -1.49 | +| FIL | 12-14 05:00 | 12-14 10:00 | stop_loss | 5 | -1.49 | +| KAS | 12-14 09:00 | 12-14 10:00 | stop_loss | 1 | -1.49 | +| PEPE | 12-14 04:00 | 12-14 10:00 | stop_loss | 6 | -1.49 | +| TIA | 12-14 05:00 | 12-14 10:00 | stop_loss | 5 | -1.49 | +| APT | 12-14 06:00 | 12-14 11:00 | stop_loss | 5 | -1.49 | +| ARB | 12-14 10:00 | 12-14 11:00 | stop_loss | 1 | -1.49 | +| ATOM | 12-14 04:00 | 12-14 11:00 | stop_loss | 7 | -1.49 | +| ETC | 12-14 10:00 | 12-14 11:00 | stop_loss | 1 | -1.49 | +| FET | 12-14 06:00 | 12-14 11:00 | stop_loss | 5 | -1.49 | +| INJ | 12-14 10:00 | 12-14 11:00 | stop_loss | 1 | -1.49 | +| LTC | 12-14 06:00 | 12-14 11:00 | stop_loss | 5 | -1.49 | +| NEAR | 12-14 05:00 | 12-14 11:00 | stop_loss | 6 | -1.49 | +| OP | 12-14 06:00 | 12-14 11:00 | stop_loss | 5 | -1.49 | +| RENDER | 12-14 04:00 | 12-14 11:00 | stop_loss | 7 | -1.49 | +| SEI | 12-14 06:00 | 12-14 11:00 | stop_loss | 5 | -1.49 | +| SHIB | 12-14 08:00 | 12-14 11:00 | stop_loss | 3 | -1.49 | +| ARB | 12-14 11:00 | 12-14 14:00 | stop_loss | 3 | -1.49 | +| ATOM | 12-14 11:00 | 12-14 14:00 | stop_loss | 3 | -1.49 | +| ETC | 12-14 11:00 | 12-14 14:00 | stop_loss | 3 | -1.49 | +| FIL | 12-14 11:00 | 12-14 14:00 | stop_loss | 3 | -1.49 | +| LTC | 12-14 11:00 | 12-14 14:00 | stop_loss | 3 | -1.49 | +| PEPE | 12-14 11:00 | 12-14 14:00 | stop_loss | 3 | -1.49 | +| RENDER | 12-14 11:00 | 12-14 14:00 | stop_loss | 3 | -1.49 | +| PEPE | 12-14 14:00 | 12-14 15:00 | stop_loss | 1 | -1.49 | +| TIA | 12-14 14:00 | 12-14 15:00 | stop_loss | 1 | -1.49 | +| TON | 12-14 14:00 | 12-14 15:00 | stop_loss | 1 | -1.49 | +| TON | 12-14 15:00 | 12-14 16:00 | stop_loss | 1 | -1.49 | +| APT | 12-14 14:00 | 12-14 17:00 | stop_loss | 3 | -1.49 | +| ARB | 12-14 14:00 | 12-14 17:00 | stop_loss | 3 | -1.49 | +| AVAX | 12-14 11:00 | 12-14 17:00 | stop_loss | 6 | -1.49 | +| ETC | 12-14 14:00 | 12-14 17:00 | stop_loss | 3 | -1.49 | +| INJ | 12-14 11:00 | 12-14 17:00 | stop_loss | 6 | -1.49 | +| RENDER | 12-14 14:00 | 12-14 17:00 | stop_loss | 3 | -1.49 | +| SUI | 12-14 15:00 | 12-14 17:00 | stop_loss | 2 | -1.49 | +| TIA | 12-14 15:00 | 12-14 17:00 | stop_loss | 2 | -1.49 | +| WIF | 12-14 17:00 | 12-14 18:00 | trailing_stop | 1 | -0.41 | +| RENDER | 12-14 17:00 | 12-14 20:00 | stop_loss | 3 | -1.49 | +| APT | 12-14 17:00 | 12-14 21:00 | stop_loss | 4 | -1.49 | +| ATOM | 12-14 14:00 | 12-14 21:00 | stop_loss | 7 | -1.49 | +| FET | 12-14 17:00 | 12-14 21:00 | stop_loss | 4 | -1.49 | +| LTC | 12-14 14:00 | 12-14 21:00 | stop_loss | 7 | -1.49 | +| NEAR | 12-14 17:00 | 12-14 21:00 | stop_loss | 4 | -1.49 | +| PEPE | 12-14 15:00 | 12-14 21:00 | stop_loss | 6 | -1.49 | +| TON | 12-14 16:00 | 12-14 21:00 | stop_loss | 5 | -1.49 | +| SUI | 12-14 17:00 | 12-14 22:00 | stop_loss | 5 | -1.49 | +| TIA | 12-14 17:00 | 12-14 22:00 | stop_loss | 5 | -1.49 | +| ARB | 12-14 17:00 | 12-14 23:00 | stop_loss | 6 | -1.49 | +| INJ | 12-14 17:00 | 12-14 23:00 | stop_loss | 6 | -1.49 | +| KAS | 12-14 21:00 | 12-14 23:00 | stop_loss | 2 | -1.49 | +| SHIB | 12-14 14:00 | 12-14 23:00 | stop_loss | 9 | -1.49 | +| TON | 12-14 21:00 | 12-14 23:00 | stop_loss | 2 | -1.49 | +| UNI | 12-14 17:00 | 12-14 23:00 | stop_loss | 6 | -1.49 | +| WIF | 12-14 21:00 | 12-14 23:00 | stop_loss | 2 | -1.49 | +| FIL | 12-14 14:00 | 12-15 00:00 | take_profit | 10 | +1.49 | +| TRX | 12-13 11:00 | 12-15 00:00 | take_profit | 37 | +1.49 | +| ETC | 12-14 17:00 | 12-15 01:00 | take_profit | 8 | +1.49 | +| KAS | 12-14 23:00 | 12-15 02:00 | take_profit | 3 | +1.49 | +| SHIB | 12-15 00:00 | 12-15 09:00 | trailing_stop | 9 | -0.36 | +| TIA | 12-15 02:00 | 12-15 11:00 | trailing_stop | 9 | -0.62 | +| SUI | 12-15 03:00 | 12-15 13:00 | stop_loss | 10 | -1.49 | +| TON | 12-15 03:00 | 12-15 13:00 | trailing_stop | 10 | -0.43 | +| BONK | 12-15 14:00 | 12-15 15:00 | stop_loss | 1 | -1.49 | +| FIL | 12-15 14:00 | 12-15 15:00 | stop_loss | 1 | -1.49 | +| SEI | 12-15 14:00 | 12-15 15:00 | stop_loss | 1 | -1.49 | +| SUI | 12-15 14:00 | 12-15 15:00 | stop_loss | 1 | -1.49 | +| UNI | 12-15 14:00 | 12-15 15:00 | stop_loss | 1 | -1.49 | +| APT | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| ARB | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| AVAX | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| ETC | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| FET | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| FIL | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| INJ | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| KAS | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| LTC | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| NEAR | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| OP | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| PEPE | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| RENDER | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| SEI | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| SHIB | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| SUI | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| TIA | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| TON | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| UNI | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| WIF | 12-15 15:00 | 12-15 16:00 | stop_loss | 1 | -1.49 | +| ARB | 12-15 16:00 | 12-15 17:00 | stop_loss | 1 | -1.49 | +| ATOM | 12-15 15:00 | 12-15 17:00 | stop_loss | 2 | -1.49 | +| AVAX | 12-15 16:00 | 12-15 17:00 | stop_loss | 1 | -1.49 | +| BONK | 12-15 15:00 | 12-15 17:00 | stop_loss | 2 | -1.49 | +| ETC | 12-15 16:00 | 12-15 17:00 | stop_loss | 1 | -1.49 | +| FET | 12-15 16:00 | 12-15 17:00 | stop_loss | 1 | -1.49 | +| INJ | 12-15 16:00 | 12-15 17:00 | stop_loss | 1 | -1.49 | +| KAS | 12-15 16:00 | 12-15 17:00 | stop_loss | 1 | -1.49 | +| NEAR | 12-15 16:00 | 12-15 17:00 | stop_loss | 1 | -1.49 | +| OP | 12-15 16:00 | 12-15 17:00 | stop_loss | 1 | -1.49 | +| PEPE | 12-15 16:00 | 12-15 17:00 | stop_loss | 1 | -1.49 | +| RENDER | 12-15 16:00 | 12-15 17:00 | stop_loss | 1 | -1.49 | +| SEI | 12-15 16:00 | 12-15 17:00 | stop_loss | 1 | -1.49 | +| SHIB | 12-15 16:00 | 12-15 17:00 | stop_loss | 1 | -1.49 | +| SUI | 12-15 16:00 | 12-15 17:00 | stop_loss | 1 | -1.49 | +| TIA | 12-15 16:00 | 12-15 17:00 | stop_loss | 1 | -1.49 | +| APT | 12-15 16:00 | 12-15 18:00 | stop_loss | 2 | -1.49 | +| ARB | 12-15 17:00 | 12-15 18:00 | stop_loss | 1 | -1.49 | +| BONK | 12-15 17:00 | 12-15 18:00 | stop_loss | 1 | -1.49 | +| FET | 12-15 17:00 | 12-15 18:00 | stop_loss | 1 | -1.49 | +| FIL | 12-15 16:00 | 12-15 18:00 | stop_loss | 2 | -1.49 | +| INJ | 12-15 17:00 | 12-15 18:00 | stop_loss | 1 | -1.49 | +| LTC | 12-15 16:00 | 12-15 18:00 | stop_loss | 2 | -1.49 | +| NEAR | 12-15 17:00 | 12-15 18:00 | stop_loss | 1 | -1.49 | +| OP | 12-15 17:00 | 12-15 18:00 | stop_loss | 1 | -1.49 | +| PEPE | 12-15 17:00 | 12-15 18:00 | stop_loss | 1 | -1.49 | +| RENDER | 12-15 17:00 | 12-15 18:00 | stop_loss | 1 | -1.49 | +| SUI | 12-15 17:00 | 12-15 18:00 | stop_loss | 1 | -1.49 | +| TON | 12-15 16:00 | 12-15 18:00 | stop_loss | 2 | -1.49 | +| UNI | 12-15 16:00 | 12-15 18:00 | stop_loss | 2 | -1.49 | +| WIF | 12-15 17:00 | 12-15 18:00 | stop_loss | 1 | -1.49 | +| ARB | 12-15 18:00 | 12-15 19:00 | trailing_stop | 1 | -0.53 | +| KAS | 12-15 17:00 | 12-15 19:00 | trailing_stop | 2 | +0.07 | +| TIA | 12-15 17:00 | 12-15 19:00 | take_profit | 2 | +1.49 | +| FET | 12-15 18:00 | 12-15 20:00 | stop_loss | 2 | -1.49 | +| OP | 12-15 18:00 | 12-15 20:00 | stop_loss | 2 | -1.49 | +| RENDER | 12-15 18:00 | 12-15 20:00 | stop_loss | 2 | -1.49 | +| WIF | 12-15 18:00 | 12-15 20:00 | stop_loss | 2 | -1.49 | +| SEI | 12-15 17:00 | 12-15 21:00 | trailing_stop | 4 | -0.26 | +| PEPE | 12-15 18:00 | 12-15 23:00 | take_profit | 5 | +1.49 | +| APT | 12-15 23:00 | 12-16 00:00 | stop_loss | 1 | -1.49 | +| BONK | 12-15 23:00 | 12-16 00:00 | stop_loss | 1 | -1.49 | +| FIL | 12-15 23:00 | 12-16 00:00 | stop_loss | 1 | -1.49 | +| INJ | 12-15 23:00 | 12-16 00:00 | stop_loss | 1 | -1.49 | +| OP | 12-15 23:00 | 12-16 00:00 | stop_loss | 1 | -1.49 | +| PEPE | 12-15 23:00 | 12-16 00:00 | stop_loss | 1 | -1.49 | +| SHIB | 12-15 17:00 | 12-16 00:00 | take_profit | 7 | +1.49 | +| SUI | 12-15 18:00 | 12-16 00:00 | trailing_stop | 6 | -0.67 | +| AVAX | 12-15 17:00 | 12-16 01:00 | stop_loss | 8 | -1.49 | +| ETC | 12-15 17:00 | 12-16 01:00 | trailing_stop | 8 | -0.24 | +| APT | 12-16 00:00 | 12-16 02:00 | take_profit | 2 | +1.49 | +| WIF | 12-16 00:00 | 12-16 02:00 | stop_loss | 2 | -1.49 | +| APT | 12-16 02:00 | 12-16 03:00 | stop_loss | 1 | -1.49 | +| FIL | 12-16 00:00 | 12-16 03:00 | trailing_stop | 3 | -0.59 | +| KAS | 12-15 23:00 | 12-16 03:00 | stop_loss | 4 | -1.49 | +| SHIB | 12-16 00:00 | 12-16 03:00 | stop_loss | 3 | -1.49 | +| APT | 12-16 03:00 | 12-16 04:00 | stop_loss | 1 | -1.49 | +| ATOM | 12-15 17:00 | 12-16 04:00 | trailing_stop | 11 | -0.19 | +| BONK | 12-16 00:00 | 12-16 04:00 | stop_loss | 4 | -1.49 | +| FIL | 12-16 03:00 | 12-16 04:00 | stop_loss | 1 | -1.49 | +| INJ | 12-16 00:00 | 12-16 04:00 | stop_loss | 4 | -1.49 | +| LTC | 12-15 23:00 | 12-16 04:00 | stop_loss | 5 | -1.49 | +| NEAR | 12-15 23:00 | 12-16 04:00 | stop_loss | 5 | -1.49 | +| OP | 12-16 00:00 | 12-16 04:00 | stop_loss | 4 | -1.49 | +| PEPE | 12-16 00:00 | 12-16 04:00 | stop_loss | 4 | -1.49 | +| RENDER | 12-16 00:00 | 12-16 04:00 | trailing_stop | 4 | -0.35 | +| SEI | 12-15 23:00 | 12-16 04:00 | stop_loss | 5 | -1.49 | +| SUI | 12-16 01:00 | 12-16 04:00 | stop_loss | 3 | -1.49 | +| UNI | 12-16 03:00 | 12-16 04:00 | stop_loss | 1 | -1.49 | +| TIA | 12-16 04:00 | 12-16 05:00 | stop_loss | 1 | -1.49 | +| ARB | 12-16 04:00 | 12-16 07:00 | stop_loss | 3 | -1.49 | +| BONK | 12-16 04:00 | 12-16 07:00 | stop_loss | 3 | -1.49 | +| INJ | 12-16 04:00 | 12-16 07:00 | trailing_stop | 3 | -0.69 | +| NEAR | 12-16 04:00 | 12-16 07:00 | stop_loss | 3 | -1.49 | +| RENDER | 12-16 04:00 | 12-16 07:00 | stop_loss | 3 | -1.49 | +| SUI | 12-16 04:00 | 12-16 07:00 | trailing_stop | 3 | -0.70 | +| TON | 12-16 00:00 | 12-16 08:00 | trailing_stop | 8 | -0.31 | +| LTC | 12-16 04:00 | 12-16 10:00 | take_profit | 6 | +1.49 | +| ATOM | 12-16 04:00 | 12-16 13:00 | trailing_stop | 9 | -0.58 | +| SEI | 12-16 04:00 | 12-16 13:00 | take_profit | 9 | +1.49 | +| AVAX | 12-16 13:00 | 12-16 14:00 | take_profit | 1 | +1.49 | +| ATOM | 12-16 17:00 | 12-16 23:00 | trailing_stop | 6 | -0.52 | +| ARB | 12-17 06:00 | 12-17 08:00 | stop_loss | 2 | -1.49 | +| OP | 12-17 05:00 | 12-17 08:00 | stop_loss | 3 | -1.49 | +| KAS | 12-17 07:00 | 12-17 09:00 | stop_loss | 2 | -1.49 | +| TON | 12-17 08:00 | 12-17 09:00 | stop_loss | 1 | -1.49 | +| APT | 12-17 05:00 | 12-17 10:00 | stop_loss | 5 | -1.49 | +| BONK | 12-17 08:00 | 12-17 10:00 | stop_loss | 2 | -1.49 | +| SUI | 12-17 04:00 | 12-17 10:00 | stop_loss | 6 | -1.49 | +| APT | 12-17 10:00 | 12-17 13:00 | take_profit | 3 | +1.49 | +| AVAX | 12-17 08:00 | 12-17 13:00 | trailing_stop | 5 | -0.48 | +| BONK | 12-17 10:00 | 12-17 13:00 | take_profit | 3 | +1.49 | +| KAS | 12-17 09:00 | 12-17 13:00 | trailing_stop | 4 | +0.10 | +| LTC | 12-17 08:00 | 12-17 13:00 | trailing_stop | 5 | -0.58 | +| OP | 12-17 08:00 | 12-17 13:00 | trailing_stop | 5 | -0.02 | +| RENDER | 12-17 08:00 | 12-17 13:00 | take_profit | 5 | +1.49 | +| UNI | 12-17 05:00 | 12-17 13:00 | trailing_stop | 8 | -0.67 | +| WIF | 12-17 10:00 | 12-17 13:00 | trailing_stop | 3 | -0.10 | +| ARB | 12-17 08:00 | 12-17 14:00 | stop_loss | 6 | -1.49 | +| ETC | 12-17 08:00 | 12-17 14:00 | stop_loss | 6 | -1.49 | +| NEAR | 12-17 08:00 | 12-17 14:00 | stop_loss | 6 | -1.49 | +| PEPE | 12-17 08:00 | 12-17 14:00 | take_profit | 6 | +1.49 | +| SHIB | 12-17 08:00 | 12-17 14:00 | take_profit | 6 | +1.49 | +| TIA | 12-17 08:00 | 12-17 14:00 | stop_loss | 6 | -1.49 | +| TON | 12-17 09:00 | 12-17 14:00 | take_profit | 5 | +1.49 | +| ARB | 12-17 15:00 | 12-17 16:00 | stop_loss | 1 | -1.49 | +| ETC | 12-17 15:00 | 12-17 16:00 | stop_loss | 1 | -1.49 | +| KAS | 12-17 15:00 | 12-17 16:00 | stop_loss | 1 | -1.49 | +| TON | 12-17 15:00 | 12-17 16:00 | stop_loss | 1 | -1.49 | +| APT | 12-17 16:00 | 12-17 17:00 | stop_loss | 1 | -1.49 | +| ARB | 12-17 16:00 | 12-17 17:00 | stop_loss | 1 | -1.49 | +| ATOM | 12-17 16:00 | 12-17 17:00 | stop_loss | 1 | -1.49 | +| ETC | 12-17 16:00 | 12-17 17:00 | stop_loss | 1 | -1.49 | +| FIL | 12-17 16:00 | 12-17 17:00 | stop_loss | 1 | -1.49 | +| INJ | 12-17 16:00 | 12-17 17:00 | stop_loss | 1 | -1.49 | +| KAS | 12-17 16:00 | 12-17 17:00 | stop_loss | 1 | -1.49 | +| OP | 12-17 16:00 | 12-17 17:00 | stop_loss | 1 | -1.49 | +| PEPE | 12-17 16:00 | 12-17 17:00 | stop_loss | 1 | -1.49 | +| SHIB | 12-17 16:00 | 12-17 17:00 | stop_loss | 1 | -1.49 | +| ARB | 12-17 17:00 | 12-17 18:00 | stop_loss | 1 | -1.49 | +| AVAX | 12-17 16:00 | 12-17 18:00 | stop_loss | 2 | -1.49 | +| FET | 12-17 17:00 | 12-17 18:00 | stop_loss | 1 | -1.49 | +| FIL | 12-17 17:00 | 12-17 18:00 | stop_loss | 1 | -1.49 | +| INJ | 12-17 17:00 | 12-17 18:00 | stop_loss | 1 | -1.49 | +| KAS | 12-17 17:00 | 12-17 18:00 | stop_loss | 1 | -1.49 | +| LTC | 12-17 17:00 | 12-17 18:00 | stop_loss | 1 | -1.49 | +| NEAR | 12-17 17:00 | 12-17 18:00 | stop_loss | 1 | -1.49 | +| OP | 12-17 17:00 | 12-17 18:00 | stop_loss | 1 | -1.49 | +| RENDER | 12-17 17:00 | 12-17 18:00 | stop_loss | 1 | -1.49 | +| TIA | 12-17 17:00 | 12-17 18:00 | stop_loss | 1 | -1.49 | +| APT | 12-17 17:00 | 12-17 19:00 | stop_loss | 2 | -1.49 | +| BONK | 12-17 18:00 | 12-17 19:00 | trailing_stop | 1 | -0.60 | +| ETC | 12-17 17:00 | 12-17 19:00 | stop_loss | 2 | -1.49 | +| FET | 12-17 18:00 | 12-17 19:00 | trailing_stop | 1 | -0.69 | +| KAS | 12-17 18:00 | 12-17 19:00 | trailing_stop | 1 | -0.65 | +| PEPE | 12-17 17:00 | 12-17 19:00 | stop_loss | 2 | -1.49 | +| SHIB | 12-17 17:00 | 12-17 19:00 | stop_loss | 2 | -1.49 | +| TIA | 12-17 18:00 | 12-17 19:00 | trailing_stop | 1 | -0.47 | +| WIF | 12-17 18:00 | 12-17 19:00 | take_profit | 1 | +1.49 | +| ARB | 12-17 18:00 | 12-17 20:00 | take_profit | 2 | +1.49 | +| INJ | 12-17 18:00 | 12-17 20:00 | take_profit | 2 | +1.49 | +| OP | 12-17 18:00 | 12-17 20:00 | take_profit | 2 | +1.49 | +| SUI | 12-17 18:00 | 12-17 20:00 | take_profit | 2 | +1.49 | +| FIL | 12-17 18:00 | 12-17 21:00 | stop_loss | 3 | -1.49 | +| NEAR | 12-17 18:00 | 12-17 22:00 | trailing_stop | 4 | -0.63 | +| RENDER | 12-17 18:00 | 12-17 23:00 | stop_loss | 5 | -1.49 | +| ATOM | 12-17 18:00 | 12-18 01:00 | stop_loss | 7 | -1.49 | +| FIL | 12-18 02:00 | 12-18 03:00 | stop_loss | 1 | -1.49 | +| AVAX | 12-17 18:00 | 12-18 05:00 | stop_loss | 11 | -1.49 | +| UNI | 12-18 04:00 | 12-18 05:00 | stop_loss | 1 | -1.49 | +| LTC | 12-17 18:00 | 12-18 06:00 | stop_loss | 12 | -1.49 | +| ATOM | 12-18 09:00 | 12-18 13:00 | take_profit | 4 | +1.49 | +| SHIB | 12-18 12:00 | 12-18 13:00 | trailing_stop | 1 | -0.36 | +| TON | 12-17 18:00 | 12-18 13:00 | take_profit | 19 | +1.49 | +| ETC | 12-18 17:00 | 12-18 18:00 | stop_loss | 1 | -1.49 | +| PEPE | 12-18 17:00 | 12-18 18:00 | stop_loss | 1 | -1.49 | +| WIF | 12-18 17:00 | 12-18 18:00 | stop_loss | 1 | -1.49 | +| ARB | 12-18 18:00 | 12-18 19:00 | stop_loss | 1 | -1.49 | +| ETC | 12-18 18:00 | 12-18 19:00 | stop_loss | 1 | -1.49 | +| OP | 12-18 18:00 | 12-18 19:00 | stop_loss | 1 | -1.49 | +| SHIB | 12-18 18:00 | 12-18 19:00 | stop_loss | 1 | -1.49 | +| TON | 12-18 18:00 | 12-18 20:00 | stop_loss | 2 | -1.49 | +| APT | 12-18 19:00 | 12-18 21:00 | take_profit | 2 | +1.49 | +| ARB | 12-18 19:00 | 12-18 21:00 | take_profit | 2 | +1.49 | +| AVAX | 12-18 19:00 | 12-18 21:00 | take_profit | 2 | +1.49 | +| ETC | 12-18 19:00 | 12-18 21:00 | trailing_stop | 2 | +0.02 | +| FET | 12-18 19:00 | 12-18 21:00 | take_profit | 2 | +1.49 | +| FIL | 12-18 19:00 | 12-18 21:00 | take_profit | 2 | +1.49 | +| INJ | 12-18 19:00 | 12-18 21:00 | take_profit | 2 | +1.49 | +| KAS | 12-18 19:00 | 12-18 21:00 | take_profit | 2 | +1.49 | +| LTC | 12-18 19:00 | 12-18 21:00 | take_profit | 2 | +1.49 | +| OP | 12-18 19:00 | 12-18 21:00 | take_profit | 2 | +1.49 | +| PEPE | 12-18 20:00 | 12-18 21:00 | take_profit | 1 | +1.49 | +| RENDER | 12-18 19:00 | 12-18 21:00 | take_profit | 2 | +1.49 | +| SEI | 12-18 19:00 | 12-18 21:00 | trailing_stop | 2 | -0.23 | +| SHIB | 12-18 19:00 | 12-18 21:00 | trailing_stop | 2 | -0.57 | +| SUI | 12-18 19:00 | 12-18 21:00 | take_profit | 2 | +1.49 | +| TIA | 12-18 19:00 | 12-18 21:00 | take_profit | 2 | +1.49 | +| TON | 12-18 20:00 | 12-18 21:00 | trailing_stop | 1 | -0.31 | +| UNI | 12-18 23:00 | 12-19 01:00 | stop_loss | 2 | -1.49 | +| TON | 12-19 03:00 | 12-19 05:00 | stop_loss | 2 | -1.49 | +| ARB | 12-19 03:00 | 12-19 06:00 | trailing_stop | 3 | -0.44 | +| ATOM | 12-19 05:00 | 12-19 06:00 | stop_loss | 1 | -1.49 | +| SUI | 12-19 03:00 | 12-19 06:00 | take_profit | 3 | +1.49 | +| UNI | 12-19 03:00 | 12-19 06:00 | trailing_stop | 3 | -0.70 | +| BONK | 12-19 05:00 | 12-19 07:00 | take_profit | 2 | +1.49 | +| KAS | 12-19 03:00 | 12-19 07:00 | take_profit | 4 | +1.49 | +| NEAR | 12-19 05:00 | 12-19 07:00 | take_profit | 2 | +1.49 | +| OP | 12-19 03:00 | 12-19 07:00 | take_profit | 4 | +1.49 | +| RENDER | 12-19 04:00 | 12-19 07:00 | take_profit | 3 | +1.49 | +| TIA | 12-19 03:00 | 12-19 07:00 | take_profit | 4 | +1.49 | +| WIF | 12-19 05:00 | 12-19 07:00 | take_profit | 2 | +1.49 | +| TON | 12-19 05:00 | 12-19 08:00 | trailing_stop | 3 | -0.19 | +| ATOM | 12-19 06:00 | 12-19 14:00 | take_profit | 8 | +1.49 | +| RENDER | 12-20 09:00 | 12-20 10:00 | stop_loss | 1 | -1.49 | +| TIA | 12-20 09:00 | 12-20 10:00 | stop_loss | 1 | -1.49 | +| TIA | 12-20 10:00 | 12-20 14:00 | trailing_stop | 4 | -0.69 | +| APT | 12-20 22:00 | 12-21 00:00 | stop_loss | 2 | -1.49 | +| FET | 12-20 10:00 | 12-21 01:00 | trailing_stop | 15 | -0.14 | +| RENDER | 12-20 10:00 | 12-21 01:00 | trailing_stop | 15 | -0.70 | +| WIF | 12-20 10:00 | 12-21 01:00 | stop_loss | 15 | -1.49 | +| NEAR | 12-20 10:00 | 12-21 02:00 | stop_loss | 16 | -1.49 | +| PEPE | 12-20 10:00 | 12-21 02:00 | stop_loss | 16 | -1.49 | +| SHIB | 12-20 09:00 | 12-21 02:00 | stop_loss | 17 | -1.49 | +| KAS | 12-21 02:00 | 12-21 05:00 | take_profit | 3 | +1.49 | +| WIF | 12-21 01:00 | 12-21 05:00 | take_profit | 4 | +1.49 | +| APT | 12-21 00:00 | 12-21 08:00 | take_profit | 8 | +1.49 | +| TIA | 12-21 02:00 | 12-21 08:00 | take_profit | 6 | +1.49 | +| SUI | 12-21 01:00 | 12-21 09:00 | take_profit | 8 | +1.49 | +| TRX | 12-15 17:00 | 12-21 09:00 | take_profit | 136 | +1.49 | +| ARB | 12-21 01:00 | 12-21 11:00 | trailing_stop | 10 | -0.18 | +| INJ | 12-21 01:00 | 12-21 11:00 | stop_loss | 10 | -1.49 | +| BONK | 12-21 01:00 | 12-21 12:00 | stop_loss | 11 | -1.49 | +| OP | 12-21 01:00 | 12-21 12:00 | stop_loss | 11 | -1.49 | +| SEI | 12-21 02:00 | 12-21 12:00 | trailing_stop | 10 | -0.26 | +| SHIB | 12-21 02:00 | 12-21 12:00 | trailing_stop | 10 | -0.49 | +| ATOM | 12-21 02:00 | 12-21 13:00 | stop_loss | 11 | -1.49 | +| AVAX | 12-20 22:00 | 12-21 13:00 | stop_loss | 15 | -1.49 | +| BONK | 12-21 12:00 | 12-21 13:00 | stop_loss | 1 | -1.49 | +| ETC | 12-21 01:00 | 12-21 13:00 | stop_loss | 12 | -1.49 | +| INJ | 12-21 12:00 | 12-21 13:00 | stop_loss | 1 | -1.49 | +| LTC | 12-21 12:00 | 12-21 13:00 | stop_loss | 1 | -1.49 | +| OP | 12-21 12:00 | 12-21 13:00 | stop_loss | 1 | -1.49 | +| SHIB | 12-21 12:00 | 12-21 13:00 | stop_loss | 1 | -1.49 | +| TIA | 12-21 12:00 | 12-21 13:00 | stop_loss | 1 | -1.49 | +| TON | 12-21 02:00 | 12-21 13:00 | stop_loss | 11 | -1.49 | +| PEPE | 12-21 13:00 | 12-21 14:00 | trailing_stop | 1 | -0.70 | +| SEI | 12-21 13:00 | 12-21 14:00 | trailing_stop | 1 | -0.21 | +| APT | 12-21 13:00 | 12-21 16:00 | trailing_stop | 3 | -0.43 | +| FET | 12-21 13:00 | 12-21 16:00 | take_profit | 3 | +1.49 | +| INJ | 12-21 13:00 | 12-21 16:00 | trailing_stop | 3 | -0.61 | +| OP | 12-21 13:00 | 12-21 16:00 | take_profit | 3 | +1.49 | +| TIA | 12-21 13:00 | 12-21 16:00 | take_profit | 3 | +1.49 | +| WIF | 12-21 13:00 | 12-21 16:00 | take_profit | 3 | +1.49 | +| RENDER | 12-21 13:00 | 12-21 17:00 | take_profit | 4 | +1.49 | +| FIL | 12-21 13:00 | 12-21 18:00 | trailing_stop | 5 | -0.45 | +| NEAR | 12-21 13:00 | 12-21 18:00 | trailing_stop | 5 | -0.61 | +| SEI | 12-21 14:00 | 12-21 19:00 | take_profit | 5 | +1.49 | +| ARB | 12-21 13:00 | 12-21 21:00 | trailing_stop | 8 | -0.30 | +| ATOM | 12-21 13:00 | 12-21 22:00 | trailing_stop | 9 | -0.15 | +| BONK | 12-21 13:00 | 12-21 22:00 | take_profit | 9 | +1.49 | +| OP | 12-21 21:00 | 12-21 22:00 | trailing_stop | 1 | -0.30 | +| PEPE | 12-21 21:00 | 12-21 22:00 | trailing_stop | 1 | -0.20 | +| RENDER | 12-21 21:00 | 12-21 22:00 | trailing_stop | 1 | -0.04 | +| ETC | 12-21 13:00 | 12-22 00:00 | take_profit | 11 | +1.49 | +| LTC | 12-21 13:00 | 12-22 00:00 | take_profit | 11 | +1.49 | +| SHIB | 12-21 13:00 | 12-22 00:00 | take_profit | 11 | +1.49 | +| FIL | 12-21 22:00 | 12-22 02:00 | stop_loss | 4 | -1.49 | +| TON | 12-21 13:00 | 12-22 02:00 | stop_loss | 13 | -1.49 | +| UNI | 12-22 02:00 | 12-22 07:00 | take_profit | 5 | +1.49 | +| TON | 12-22 06:00 | 12-22 14:00 | take_profit | 8 | +1.49 | +| TIA | 12-22 18:00 | 12-22 19:00 | stop_loss | 1 | -1.49 | +| WIF | 12-22 17:00 | 12-22 19:00 | stop_loss | 2 | -1.49 | +| UNI | 12-22 19:00 | 12-22 20:00 | stop_loss | 1 | -1.49 | +| ARB | 12-22 19:00 | 12-22 22:00 | trailing_stop | 3 | -0.64 | +| BONK | 12-22 19:00 | 12-22 22:00 | trailing_stop | 3 | -0.35 | +| FET | 12-22 19:00 | 12-22 22:00 | trailing_stop | 3 | +0.10 | +| PEPE | 12-22 19:00 | 12-22 22:00 | take_profit | 3 | +1.49 | +| TIA | 12-22 19:00 | 12-22 22:00 | trailing_stop | 3 | -0.50 | +| UNI | 12-22 20:00 | 12-22 22:00 | trailing_stop | 2 | -0.28 | +| WIF | 12-22 19:00 | 12-22 22:00 | trailing_stop | 3 | +0.11 | +| NEAR | 12-22 22:00 | 12-22 23:00 | stop_loss | 1 | -1.49 | +| KAS | 12-23 00:00 | 12-23 01:00 | stop_loss | 1 | -1.49 | +| NEAR | 12-22 23:00 | 12-23 01:00 | trailing_stop | 2 | -0.58 | +| ETC | 12-22 20:00 | 12-23 02:00 | trailing_stop | 6 | -0.15 | +| OP | 12-22 19:00 | 12-23 02:00 | trailing_stop | 7 | -0.49 | +| RENDER | 12-23 01:00 | 12-23 03:00 | stop_loss | 2 | -1.49 | +| SHIB | 12-22 19:00 | 12-23 03:00 | trailing_stop | 8 | -0.46 | +| FIL | 12-23 02:00 | 12-23 06:00 | stop_loss | 4 | -1.49 | +| UNI | 12-23 02:00 | 12-23 06:00 | stop_loss | 4 | -1.49 | +| APT | 12-23 06:00 | 12-23 08:00 | stop_loss | 2 | -1.49 | +| APT | 12-23 08:00 | 12-23 09:00 | trailing_stop | 1 | -0.00 | +| OP | 12-23 12:00 | 12-23 13:00 | stop_loss | 1 | -1.49 | +| PEPE | 12-23 12:00 | 12-23 13:00 | stop_loss | 1 | -1.49 | +| RENDER | 12-23 12:00 | 12-23 13:00 | stop_loss | 1 | -1.49 | +| WIF | 12-23 05:00 | 12-23 13:00 | stop_loss | 8 | -1.49 | +| ARB | 12-23 12:00 | 12-23 14:00 | stop_loss | 2 | -1.49 | +| BONK | 12-23 12:00 | 12-23 14:00 | stop_loss | 2 | -1.49 | +| LTC | 12-22 20:00 | 12-23 14:00 | stop_loss | 18 | -1.49 | +| SUI | 12-23 13:00 | 12-23 14:00 | stop_loss | 1 | -1.49 | +| UNI | 12-23 12:00 | 12-23 14:00 | stop_loss | 2 | -1.49 | +| FET | 12-23 14:00 | 12-23 15:00 | trailing_stop | 1 | -0.06 | +| FIL | 12-23 12:00 | 12-23 15:00 | trailing_stop | 3 | -0.16 | +| TRX | 12-22 10:00 | 12-23 15:00 | stop_loss | 29 | -1.49 | +| ARB | 12-23 14:00 | 12-23 16:00 | take_profit | 2 | +1.49 | +| BONK | 12-23 14:00 | 12-23 16:00 | take_profit | 2 | +1.49 | +| LTC | 12-23 14:00 | 12-23 16:00 | take_profit | 2 | +1.49 | +| OP | 12-23 14:00 | 12-23 16:00 | take_profit | 2 | +1.49 | +| RENDER | 12-23 14:00 | 12-23 16:00 | take_profit | 2 | +1.49 | +| TIA | 12-23 14:00 | 12-23 16:00 | take_profit | 2 | +1.49 | +| UNI | 12-23 14:00 | 12-23 16:00 | take_profit | 2 | +1.49 | +| ETC | 12-23 14:00 | 12-23 17:00 | trailing_stop | 3 | -0.38 | +| SHIB | 12-23 14:00 | 12-23 17:00 | trailing_stop | 3 | -0.58 | +| AVAX | 12-23 14:00 | 12-23 18:00 | trailing_stop | 4 | -0.13 | +| KAS | 12-23 14:00 | 12-23 18:00 | take_profit | 4 | +1.49 | +| UNI | 12-23 20:00 | 12-24 02:00 | trailing_stop | 6 | -0.26 | +| NEAR | 12-24 02:00 | 12-24 06:00 | stop_loss | 4 | -1.49 | +| RENDER | 12-24 05:00 | 12-24 08:00 | stop_loss | 3 | -1.49 | +| UNI | 12-24 06:00 | 12-24 10:00 | take_profit | 4 | +1.49 | +| TON | 12-24 08:00 | 12-24 12:00 | trailing_stop | 4 | -0.21 | +| FET | 12-24 12:00 | 12-24 13:00 | stop_loss | 1 | -1.49 | +| ARB | 12-24 10:00 | 12-24 14:00 | stop_loss | 4 | -1.49 | +| BONK | 12-24 11:00 | 12-24 14:00 | stop_loss | 3 | -1.49 | +| FET | 12-24 13:00 | 12-24 14:00 | take_profit | 1 | +1.49 | +| NEAR | 12-24 13:00 | 12-24 14:00 | stop_loss | 1 | -1.49 | +| OP | 12-24 13:00 | 12-24 14:00 | stop_loss | 1 | -1.49 | +| RENDER | 12-24 08:00 | 12-24 14:00 | trailing_stop | 6 | -0.17 | +| TIA | 12-24 05:00 | 12-24 14:00 | stop_loss | 9 | -1.49 | +| WIF | 12-24 09:00 | 12-24 14:00 | stop_loss | 5 | -1.49 | +| ATOM | 12-24 06:00 | 12-24 15:00 | trailing_stop | 9 | -0.47 | +| BONK | 12-24 14:00 | 12-24 15:00 | trailing_stop | 1 | -0.05 | +| OP | 12-24 14:00 | 12-24 15:00 | trailing_stop | 1 | -0.65 | +| TIA | 12-24 14:00 | 12-24 15:00 | trailing_stop | 1 | -0.71 | +| INJ | 12-24 14:00 | 12-24 17:00 | trailing_stop | 3 | -0.53 | +| RENDER | 12-24 14:00 | 12-24 20:00 | take_profit | 6 | +1.49 | +| OP | 12-24 17:00 | 12-25 00:00 | trailing_stop | 7 | -0.42 | +| TRX | 12-24 15:00 | 12-25 09:00 | stop_loss | 18 | -1.49 | +| FIL | 12-24 06:00 | 12-25 10:00 | stop_loss | 28 | -1.49 | +| LTC | 12-24 05:00 | 12-25 10:00 | trailing_stop | 29 | -0.24 | +| OP | 12-25 10:00 | 12-25 14:00 | trailing_stop | 4 | -0.56 | +| FIL | 12-25 10:00 | 12-25 15:00 | take_profit | 5 | +1.49 | +| ETC | 12-25 10:00 | 12-25 22:00 | stop_loss | 12 | -1.49 | +| WIF | 12-25 10:00 | 12-25 22:00 | stop_loss | 12 | -1.49 | +| APT | 12-25 22:00 | 12-25 23:00 | stop_loss | 1 | -1.49 | +| ATOM | 12-25 22:00 | 12-25 23:00 | stop_loss | 1 | -1.49 | +| ETC | 12-25 22:00 | 12-25 23:00 | stop_loss | 1 | -1.49 | +| FET | 12-25 22:00 | 12-25 23:00 | stop_loss | 1 | -1.49 | +| FIL | 12-25 22:00 | 12-25 23:00 | stop_loss | 1 | -1.49 | +| INJ | 12-25 22:00 | 12-25 23:00 | stop_loss | 1 | -1.49 | +| NEAR | 12-25 22:00 | 12-25 23:00 | stop_loss | 1 | -1.49 | +| OP | 12-25 22:00 | 12-25 23:00 | stop_loss | 1 | -1.49 | +| PEPE | 12-25 22:00 | 12-25 23:00 | stop_loss | 1 | -1.49 | +| RENDER | 12-25 22:00 | 12-25 23:00 | stop_loss | 1 | -1.49 | +| SEI | 12-25 22:00 | 12-25 23:00 | stop_loss | 1 | -1.49 | +| SUI | 12-25 22:00 | 12-25 23:00 | stop_loss | 1 | -1.49 | +| TIA | 12-25 22:00 | 12-25 23:00 | stop_loss | 1 | -1.49 | +| APT | 12-25 23:00 | 12-26 00:00 | trailing_stop | 1 | -0.52 | +| SHIB | 12-25 22:00 | 12-26 00:00 | stop_loss | 2 | -1.49 | +| INJ | 12-25 23:00 | 12-26 01:00 | trailing_stop | 2 | -0.61 | +| KAS | 12-25 23:00 | 12-26 01:00 | take_profit | 2 | +1.49 | +| PEPE | 12-25 23:00 | 12-26 01:00 | trailing_stop | 2 | -0.43 | +| WIF | 12-25 22:00 | 12-26 01:00 | trailing_stop | 3 | -0.41 | +| ATOM | 12-25 23:00 | 12-26 02:00 | take_profit | 3 | +1.49 | +| BONK | 12-25 23:00 | 12-26 02:00 | take_profit | 3 | +1.49 | +| ETC | 12-25 23:00 | 12-26 02:00 | take_profit | 3 | +1.49 | +| FET | 12-25 23:00 | 12-26 02:00 | take_profit | 3 | +1.49 | +| FIL | 12-25 23:00 | 12-26 02:00 | take_profit | 3 | +1.49 | +| LTC | 12-25 23:00 | 12-26 02:00 | take_profit | 3 | +1.49 | +| NEAR | 12-25 23:00 | 12-26 02:00 | take_profit | 3 | +1.49 | +| OP | 12-25 23:00 | 12-26 02:00 | take_profit | 3 | +1.49 | +| RENDER | 12-25 23:00 | 12-26 02:00 | take_profit | 3 | +1.49 | +| SEI | 12-25 23:00 | 12-26 02:00 | take_profit | 3 | +1.49 | +| SHIB | 12-26 00:00 | 12-26 02:00 | take_profit | 2 | +1.49 | +| SUI | 12-25 23:00 | 12-26 02:00 | take_profit | 3 | +1.49 | +| TIA | 12-25 23:00 | 12-26 02:00 | take_profit | 3 | +1.49 | +| FIL | 12-26 05:00 | 12-26 08:00 | stop_loss | 3 | -1.49 | +| FIL | 12-26 08:00 | 12-26 11:00 | take_profit | 3 | +1.49 | +| PEPE | 12-26 16:00 | 12-26 17:00 | trailing_stop | 1 | -0.45 | +| SEI | 12-26 16:00 | 12-26 17:00 | trailing_stop | 1 | -0.33 | +| TIA | 12-26 16:00 | 12-26 17:00 | trailing_stop | 1 | -0.17 | +| ARB | 12-26 16:00 | 12-26 18:00 | take_profit | 2 | +1.49 | +| INJ | 12-26 16:00 | 12-26 18:00 | take_profit | 2 | +1.49 | +| ATOM | 12-26 16:00 | 12-26 19:00 | take_profit | 3 | +1.49 | +| BONK | 12-26 16:00 | 12-26 20:00 | take_profit | 4 | +1.49 | +| ETC | 12-26 16:00 | 12-26 20:00 | take_profit | 4 | +1.49 | +| WIF | 12-26 16:00 | 12-26 20:00 | take_profit | 4 | +1.49 | +| SUI | 12-26 16:00 | 12-27 03:00 | take_profit | 11 | +1.49 | +| AVAX | 12-26 16:00 | 12-27 05:00 | take_profit | 13 | +1.49 | +| KAS | 12-26 19:00 | 12-27 10:00 | stop_loss | 15 | -1.49 | +| TRX | 12-25 09:00 | 12-27 22:00 | take_profit | 61 | +1.49 | +| UNI | 12-27 22:00 | 12-27 23:00 | trailing_stop | 1 | -0.27 | +| WIF | 12-28 13:00 | 12-28 16:00 | stop_loss | 3 | -1.49 | +| OP | 12-28 13:00 | 12-28 18:00 | stop_loss | 5 | -1.49 | +| SEI | 12-28 17:00 | 12-28 18:00 | stop_loss | 1 | -1.49 | +| WIF | 12-28 16:00 | 12-28 18:00 | stop_loss | 2 | -1.49 | +| APT | 12-28 13:00 | 12-28 19:00 | stop_loss | 6 | -1.49 | +| LTC | 12-28 13:00 | 12-28 19:00 | stop_loss | 6 | -1.49 | +| SEI | 12-28 18:00 | 12-28 20:00 | stop_loss | 2 | -1.49 | +| SHIB | 12-28 18:00 | 12-28 22:00 | trailing_stop | 4 | -0.07 | +| NEAR | 12-28 18:00 | 12-28 23:00 | trailing_stop | 5 | -0.50 | +| UNI | 12-28 20:00 | 12-28 23:00 | trailing_stop | 3 | -0.12 | +| APT | 12-28 19:00 | 12-29 00:00 | take_profit | 5 | +1.49 | +| BONK | 12-28 18:00 | 12-29 00:00 | take_profit | 6 | +1.49 | +| ETC | 12-28 19:00 | 12-29 00:00 | take_profit | 5 | +1.49 | +| FET | 12-28 18:00 | 12-29 00:00 | take_profit | 6 | +1.49 | +| FIL | 12-28 21:00 | 12-29 00:00 | take_profit | 3 | +1.49 | +| INJ | 12-28 18:00 | 12-29 00:00 | take_profit | 6 | +1.49 | +| OP | 12-28 18:00 | 12-29 00:00 | take_profit | 6 | +1.49 | +| RENDER | 12-28 18:00 | 12-29 00:00 | take_profit | 6 | +1.49 | +| SEI | 12-28 20:00 | 12-29 00:00 | take_profit | 4 | +1.49 | +| TIA | 12-28 18:00 | 12-29 00:00 | take_profit | 6 | +1.49 | +| WIF | 12-28 18:00 | 12-29 00:00 | take_profit | 6 | +1.49 | +| ARB | 12-28 18:00 | 12-29 01:00 | take_profit | 7 | +1.49 | +| SUI | 12-28 19:00 | 12-29 01:00 | take_profit | 6 | +1.49 | +| ATOM | 12-28 19:00 | 12-29 02:00 | take_profit | 7 | +1.49 | +| AVAX | 12-28 18:00 | 12-29 02:00 | take_profit | 8 | +1.49 | +| LTC | 12-28 20:00 | 12-29 02:00 | take_profit | 6 | +1.49 | +| KAS | 12-28 12:00 | 12-29 03:00 | take_profit | 15 | +1.49 | +| NEAR | 12-29 09:00 | 12-29 12:00 | stop_loss | 3 | -1.49 | +| WIF | 12-29 12:00 | 12-29 13:00 | stop_loss | 1 | -1.49 | +| INJ | 12-29 12:00 | 12-29 14:00 | stop_loss | 2 | -1.49 | +| TIA | 12-29 12:00 | 12-29 14:00 | stop_loss | 2 | -1.49 | +| WIF | 12-29 13:00 | 12-29 14:00 | stop_loss | 1 | -1.49 | +| WIF | 12-29 14:00 | 12-29 16:00 | stop_loss | 2 | -1.49 | +| ATOM | 12-29 12:00 | 12-29 17:00 | stop_loss | 5 | -1.49 | +| WIF | 12-29 16:00 | 12-29 17:00 | trailing_stop | 1 | -0.68 | +| LTC | 12-29 17:00 | 12-29 18:00 | stop_loss | 1 | -1.49 | +| BONK | 12-29 14:00 | 12-29 19:00 | stop_loss | 5 | -1.49 | +| UNI | 12-29 13:00 | 12-29 19:00 | stop_loss | 6 | -1.49 | +| SHIB | 12-29 16:00 | 12-29 20:00 | stop_loss | 4 | -1.49 | +| ETC | 12-29 13:00 | 12-29 21:00 | confirmed_bearish_exit | 8 | -0.08 | +| TON | 12-29 20:00 | 12-29 22:00 | stop_loss | 2 | -1.49 | +| TON | 12-29 22:00 | 12-29 23:00 | stop_loss | 1 | -1.49 | +| TON | 12-29 23:00 | 12-30 00:00 | stop_loss | 1 | -1.49 | +| SEI | 12-29 18:00 | 12-30 02:00 | stop_loss | 8 | -1.49 | +| SUI | 12-29 16:00 | 12-30 02:00 | stop_loss | 10 | -1.49 | +| FIL | 12-30 00:00 | 12-30 03:00 | trailing_stop | 3 | -0.17 | +| KAS | 12-30 02:00 | 12-30 03:00 | trailing_stop | 1 | -0.66 | +| ARB | 12-29 13:00 | 12-30 08:00 | take_profit | 19 | +1.49 | +| NEAR | 12-29 12:00 | 12-30 08:00 | take_profit | 20 | +1.49 | +| TIA | 12-30 05:00 | 12-30 08:00 | take_profit | 3 | +1.49 | +| FIL | 12-30 07:00 | 12-30 11:00 | take_profit | 4 | +1.49 | +| TON | 12-30 06:00 | 12-30 11:00 | take_profit | 5 | +1.49 | +| SEI | 12-30 06:00 | 12-30 14:00 | take_profit | 8 | +1.49 | +| WIF | 12-30 14:00 | 12-30 15:00 | stop_loss | 1 | -1.49 | +| INJ | 12-30 07:00 | 12-30 17:00 | stop_loss | 10 | -1.49 | +| WIF | 12-30 17:00 | 12-30 18:00 | stop_loss | 1 | -1.49 | +| LTC | 12-30 12:00 | 12-30 19:00 | trailing_stop | 7 | -0.61 | +| WIF | 12-30 18:00 | 12-30 19:00 | trailing_stop | 1 | -0.64 | +| WIF | 12-30 20:00 | 12-30 23:00 | stop_loss | 3 | -1.49 | +| AVAX | 12-30 06:00 | 12-31 01:00 | take_profit | 19 | +1.49 | +| INJ | 12-30 20:00 | 12-31 06:00 | stop_loss | 10 | -1.49 | +| UNI | 12-30 20:00 | 12-31 07:00 | trailing_stop | 11 | -0.66 | +| ATOM | 12-30 03:00 | 12-31 09:00 | stop_loss | 30 | -1.49 | +| NEAR | 12-30 22:00 | 12-31 10:00 | stop_loss | 12 | -1.49 | +| TRX | 12-29 08:00 | 12-31 10:00 | trailing_stop | 50 | -0.48 | +| TON | 12-31 05:00 | 12-31 14:00 | take_profit | 9 | +1.49 | +| ARB | 12-30 22:00 | 12-31 15:00 | stop_loss | 17 | -1.49 | +| ETC | 12-30 20:00 | 12-31 15:00 | stop_loss | 19 | -1.49 | +| SHIB | 12-31 06:00 | 12-31 15:00 | stop_loss | 9 | -1.49 | +| ARB | 12-31 15:00 | 12-31 16:00 | stop_loss | 1 | -1.49 | +| ATOM | 12-31 15:00 | 12-31 16:00 | stop_loss | 1 | -1.49 | +| ETC | 12-31 15:00 | 12-31 16:00 | stop_loss | 1 | -1.49 | +| INJ | 12-31 10:00 | 12-31 16:00 | stop_loss | 6 | -1.49 | +| OP | 12-31 15:00 | 12-31 16:00 | stop_loss | 1 | -1.49 | +| PEPE | 12-31 05:00 | 12-31 16:00 | stop_loss | 11 | -1.49 | +| RENDER | 12-30 20:00 | 12-31 16:00 | stop_loss | 20 | -1.49 | +| SEI | 12-31 05:00 | 12-31 16:00 | stop_loss | 11 | -1.49 | +| SHIB | 12-31 15:00 | 12-31 16:00 | stop_loss | 1 | -1.49 | +| ETC | 12-31 16:00 | 12-31 17:00 | stop_loss | 1 | -1.49 | +| FIL | 12-31 16:00 | 12-31 17:00 | stop_loss | 1 | -1.49 | +| INJ | 12-31 16:00 | 12-31 17:00 | stop_loss | 1 | -1.49 | +| SHIB | 12-31 16:00 | 12-31 17:00 | stop_loss | 1 | -1.49 | +| WIF | 12-31 16:00 | 12-31 17:00 | stop_loss | 1 | -1.49 | +| ARB | 12-31 16:00 | 12-31 18:00 | stop_loss | 2 | -1.49 | +| ATOM | 12-31 16:00 | 12-31 18:00 | stop_loss | 2 | -1.49 | +| PEPE | 12-31 16:00 | 12-31 18:00 | stop_loss | 2 | -1.49 | +| SEI | 12-31 16:00 | 12-31 18:00 | stop_loss | 2 | -1.49 | +| UNI | 12-31 16:00 | 12-31 19:00 | stop_loss | 3 | -1.49 | +| WIF | 12-31 17:00 | 12-31 19:00 | trailing_stop | 2 | -0.58 | +| APT | 12-31 16:00 | 12-31 20:00 | stop_loss | 4 | -1.49 | +| ARB | 12-31 18:00 | 12-31 20:00 | trailing_stop | 2 | -0.52 | +| FIL | 12-31 17:00 | 12-31 20:00 | take_profit | 3 | +1.49 | +| INJ | 12-31 17:00 | 12-31 20:00 | stop_loss | 3 | -1.49 | +| LTC | 12-31 16:00 | 12-31 20:00 | stop_loss | 4 | -1.49 | +| OP | 12-31 16:00 | 12-31 20:00 | take_profit | 4 | +1.49 | +| SUI | 12-31 16:00 | 12-31 20:00 | stop_loss | 4 | -1.49 | +| TIA | 12-31 16:00 | 12-31 20:00 | take_profit | 4 | +1.49 | +| NEAR | 12-31 16:00 | 12-31 21:00 | take_profit | 5 | +1.49 | +| BONK | 12-31 16:00 | 01-01 04:00 | stop_loss | 12 | -1.49 | +| FET | 12-31 16:00 | 01-01 04:00 | stop_loss | 12 | -1.49 | +| KAS | 12-31 16:00 | 01-01 04:00 | stop_loss | 12 | -1.49 | +| UNI | 12-31 19:00 | 01-01 04:00 | stop_loss | 9 | -1.49 | +| PEPE | 12-31 18:00 | 01-01 06:00 | take_profit | 12 | +1.49 | +| SHIB | 12-31 17:00 | 01-01 07:00 | take_profit | 14 | +1.49 | +| APT | 01-01 01:00 | 01-01 09:00 | take_profit | 8 | +1.49 | +| ETC | 12-31 17:00 | 01-01 09:00 | take_profit | 16 | +1.49 | +| ATOM | 12-31 18:00 | 01-01 12:00 | take_profit | 18 | +1.49 | +| ARB | 01-01 01:00 | 01-01 13:00 | take_profit | 12 | +1.49 | +| SEI | 12-31 18:00 | 01-01 13:00 | take_profit | 19 | +1.49 | +| LTC | 01-01 00:00 | 01-01 15:00 | take_profit | 15 | +1.49 | +| SUI | 01-01 01:00 | 01-01 15:00 | take_profit | 14 | +1.49 | +| AVAX | 12-31 16:00 | 01-01 16:00 | take_profit | 24 | +1.49 | +| FIL | 01-02 06:00 | 01-02 11:00 | stop_loss | 5 | -1.49 | +| AVAX | 01-02 14:00 | 01-02 15:00 | stop_loss | 1 | -1.49 | +| APT | 01-02 14:00 | 01-02 16:00 | take_profit | 2 | +1.49 | +| AVAX | 01-02 15:00 | 01-02 16:00 | trailing_stop | 1 | -0.14 | +| FIL | 01-02 11:00 | 01-02 16:00 | take_profit | 5 | +1.49 | +| TRX | 12-31 10:00 | 01-03 00:00 | take_profit | 62 | +1.49 | +| KAS | 01-03 06:00 | 01-03 07:00 | stop_loss | 1 | -1.49 | +| SHIB | 01-03 06:00 | 01-03 07:00 | stop_loss | 1 | -1.49 | +| TON | 01-03 07:00 | 01-03 10:00 | take_profit | 3 | +1.49 | +| KAS | 01-03 07:00 | 01-03 13:00 | take_profit | 6 | +1.49 | +| ETC | 01-03 15:00 | 01-03 16:00 | trailing_stop | 1 | -0.27 | +| SHIB | 01-03 07:00 | 01-03 16:00 | take_profit | 9 | +1.49 | +| UNI | 01-03 07:00 | 01-03 16:00 | trailing_stop | 9 | -0.15 | +| UNI | 01-03 16:00 | 01-04 00:00 | take_profit | 8 | +1.49 | +| FIL | 01-03 18:00 | 01-04 01:00 | take_profit | 7 | +1.49 | +| LTC | 01-03 15:00 | 01-04 12:00 | take_profit | 21 | +1.49 | +| AVAX | 01-04 02:00 | 01-04 13:00 | take_profit | 11 | +1.49 | +| FIL | 01-04 22:00 | 01-05 01:00 | take_profit | 3 | +1.49 | +| BONK | 01-05 03:00 | 01-05 04:00 | stop_loss | 1 | -1.49 | +| BONK | 01-05 04:00 | 01-05 05:00 | take_profit | 1 | +1.49 | +| SUI | 01-05 04:00 | 01-05 06:00 | stop_loss | 2 | -1.49 | +| TON | 01-05 06:00 | 01-05 08:00 | take_profit | 2 | +1.49 | +| OP | 01-05 06:00 | 01-05 09:00 | stop_loss | 3 | -1.49 | +| SHIB | 01-05 06:00 | 01-05 09:00 | stop_loss | 3 | -1.49 | +| WIF | 01-05 09:00 | 01-05 10:00 | stop_loss | 1 | -1.49 | +| WIF | 01-05 11:00 | 01-05 13:00 | trailing_stop | 2 | -0.43 | +| APT | 01-05 06:00 | 01-05 14:00 | trailing_stop | 8 | -0.51 | +| ATOM | 01-05 09:00 | 01-05 14:00 | take_profit | 5 | +1.49 | +| PEPE | 01-05 09:00 | 01-05 14:00 | trailing_stop | 5 | -0.67 | +| SHIB | 01-05 13:00 | 01-05 14:00 | stop_loss | 1 | -1.49 | +| TIA | 01-05 06:00 | 01-05 14:00 | take_profit | 8 | +1.49 | +| ARB | 01-05 06:00 | 01-05 15:00 | take_profit | 9 | +1.49 | +| FIL | 01-06 05:00 | 01-06 07:00 | stop_loss | 2 | -1.49 | +| APT | 01-06 08:00 | 01-06 12:00 | take_profit | 4 | +1.49 | +| FIL | 01-06 07:00 | 01-06 13:00 | take_profit | 6 | +1.49 | +| ARB | 01-06 16:00 | 01-06 17:00 | stop_loss | 1 | -1.49 | +| OP | 01-06 16:00 | 01-06 17:00 | stop_loss | 1 | -1.49 | +| SUI | 01-06 16:00 | 01-06 17:00 | stop_loss | 1 | -1.49 | +| TON | 01-06 16:00 | 01-06 17:00 | stop_loss | 1 | -1.49 | +| UNI | 01-06 16:00 | 01-06 17:00 | stop_loss | 1 | -1.49 | +| APT | 01-06 17:00 | 01-06 18:00 | trailing_stop | 1 | +0.09 | +| ARB | 01-06 17:00 | 01-06 18:00 | trailing_stop | 1 | -0.44 | +| BONK | 01-06 17:00 | 01-06 18:00 | trailing_stop | 1 | -0.23 | +| ETC | 01-06 17:00 | 01-06 18:00 | trailing_stop | 1 | -0.54 | +| KAS | 01-06 17:00 | 01-06 18:00 | trailing_stop | 1 | -0.34 | +| LTC | 01-06 17:00 | 01-06 18:00 | trailing_stop | 1 | -0.35 | +| NEAR | 01-06 17:00 | 01-06 18:00 | trailing_stop | 1 | -0.67 | +| OP | 01-06 17:00 | 01-06 18:00 | trailing_stop | 1 | -0.29 | +| PEPE | 01-06 16:00 | 01-06 18:00 | take_profit | 2 | +1.49 | +| SEI | 01-06 17:00 | 01-06 18:00 | trailing_stop | 1 | -0.53 | +| SHIB | 01-06 17:00 | 01-06 18:00 | take_profit | 1 | +1.49 | +| SUI | 01-06 17:00 | 01-06 18:00 | take_profit | 1 | +1.49 | +| TIA | 01-06 17:00 | 01-06 18:00 | trailing_stop | 1 | -0.60 | +| FIL | 01-06 17:00 | 01-06 20:00 | take_profit | 3 | +1.49 | +| SUI | 01-06 18:00 | 01-06 21:00 | take_profit | 3 | +1.49 | +| TON | 01-06 17:00 | 01-06 21:00 | take_profit | 4 | +1.49 | +| UNI | 01-06 17:00 | 01-06 21:00 | take_profit | 4 | +1.49 | +| PEPE | 01-07 00:00 | 01-07 02:00 | trailing_stop | 2 | -0.64 | +| RENDER | 01-07 01:00 | 01-07 02:00 | trailing_stop | 1 | -0.25 | +| SUI | 01-07 01:00 | 01-07 02:00 | trailing_stop | 1 | -0.49 | +| UNI | 01-07 01:00 | 01-07 02:00 | trailing_stop | 1 | -0.47 | +| KAS | 01-07 01:00 | 01-07 07:00 | take_profit | 6 | +1.49 | +| SUI | 01-07 04:00 | 01-07 07:00 | take_profit | 3 | +1.49 | +| TON | 01-07 01:00 | 01-07 09:00 | stop_loss | 8 | -1.49 | +| AVAX | 01-07 13:00 | 01-07 14:00 | stop_loss | 1 | -1.49 | +| AVAX | 01-07 14:00 | 01-07 15:00 | stop_loss | 1 | -1.49 | +| UNI | 01-07 14:00 | 01-07 15:00 | stop_loss | 1 | -1.49 | +| FIL | 01-07 15:00 | 01-07 18:00 | take_profit | 3 | +1.49 | +| UNI | 01-07 15:00 | 01-07 19:00 | stop_loss | 4 | -1.49 | +| KAS | 01-07 15:00 | 01-07 22:00 | trailing_stop | 7 | -0.27 | +| APT | 01-08 01:00 | 01-08 02:00 | stop_loss | 1 | -1.49 | +| SEI | 01-08 01:00 | 01-08 02:00 | stop_loss | 1 | -1.49 | +| APT | 01-08 02:00 | 01-08 03:00 | stop_loss | 1 | -1.49 | +| ARB | 01-08 01:00 | 01-08 03:00 | stop_loss | 2 | -1.49 | +| AVAX | 01-07 15:00 | 01-08 03:00 | trailing_stop | 12 | -0.36 | +| BONK | 01-07 23:00 | 01-08 03:00 | stop_loss | 4 | -1.49 | +| INJ | 01-07 15:00 | 01-08 03:00 | stop_loss | 12 | -1.49 | +| KAS | 01-08 00:00 | 01-08 03:00 | stop_loss | 3 | -1.49 | +| NEAR | 01-08 01:00 | 01-08 03:00 | stop_loss | 2 | -1.49 | +| OP | 01-08 01:00 | 01-08 03:00 | stop_loss | 2 | -1.49 | +| UNI | 01-08 00:00 | 01-08 03:00 | stop_loss | 3 | -1.49 | +| WIF | 01-08 01:00 | 01-08 03:00 | stop_loss | 2 | -1.49 | +| AVAX | 01-08 03:00 | 01-08 06:00 | stop_loss | 3 | -1.49 | +| KAS | 01-08 03:00 | 01-08 06:00 | stop_loss | 3 | -1.49 | +| LTC | 01-07 16:00 | 01-08 06:00 | stop_loss | 14 | -1.49 | +| SEI | 01-08 02:00 | 01-08 06:00 | stop_loss | 4 | -1.49 | +| SHIB | 01-08 02:00 | 01-08 06:00 | stop_loss | 4 | -1.49 | +| UNI | 01-08 03:00 | 01-08 06:00 | stop_loss | 3 | -1.49 | +| APT | 01-08 06:00 | 01-08 07:00 | trailing_stop | 1 | -0.56 | +| ARB | 01-08 06:00 | 01-08 07:00 | trailing_stop | 1 | -0.03 | +| BONK | 01-08 06:00 | 01-08 07:00 | stop_loss | 1 | -1.49 | +| INJ | 01-08 06:00 | 01-08 07:00 | trailing_stop | 1 | -0.01 | +| KAS | 01-08 06:00 | 01-08 07:00 | stop_loss | 1 | -1.49 | +| NEAR | 01-08 06:00 | 01-08 07:00 | take_profit | 1 | +1.49 | +| OP | 01-08 06:00 | 01-08 07:00 | trailing_stop | 1 | -0.14 | +| PEPE | 01-08 06:00 | 01-08 07:00 | stop_loss | 1 | -1.49 | +| SEI | 01-08 06:00 | 01-08 07:00 | trailing_stop | 1 | -0.65 | +| SHIB | 01-08 06:00 | 01-08 07:00 | trailing_stop | 1 | -0.56 | +| TIA | 01-08 06:00 | 01-08 07:00 | take_profit | 1 | +1.49 | +| UNI | 01-08 06:00 | 01-08 07:00 | trailing_stop | 1 | -0.13 | +| PEPE | 01-08 08:00 | 01-08 09:00 | stop_loss | 1 | -1.49 | +| AVAX | 01-08 09:00 | 01-08 10:00 | trailing_stop | 1 | -0.55 | +| FIL | 01-08 08:00 | 01-08 10:00 | stop_loss | 2 | -1.49 | +| KAS | 01-08 08:00 | 01-08 10:00 | stop_loss | 2 | -1.49 | +| PEPE | 01-08 09:00 | 01-08 10:00 | stop_loss | 1 | -1.49 | +| TON | 01-08 06:00 | 01-08 10:00 | stop_loss | 4 | -1.49 | +| WIF | 01-08 09:00 | 01-08 10:00 | stop_loss | 1 | -1.49 | +| TIA | 01-08 09:00 | 01-08 11:00 | stop_loss | 2 | -1.49 | +| APT | 01-08 09:00 | 01-08 12:00 | stop_loss | 3 | -1.49 | +| INJ | 01-08 09:00 | 01-08 12:00 | stop_loss | 3 | -1.49 | +| OP | 01-08 09:00 | 01-08 12:00 | stop_loss | 3 | -1.49 | +| TIA | 01-08 11:00 | 01-08 12:00 | stop_loss | 1 | -1.49 | +| APT | 01-08 12:00 | 01-08 14:00 | stop_loss | 2 | -1.49 | +| BONK | 01-08 12:00 | 01-08 14:00 | trailing_stop | 2 | -0.50 | +| ETC | 01-08 09:00 | 01-08 14:00 | stop_loss | 5 | -1.49 | +| OP | 01-08 13:00 | 01-08 14:00 | take_profit | 1 | +1.49 | +| PEPE | 01-08 12:00 | 01-08 14:00 | stop_loss | 2 | -1.49 | +| RENDER | 01-08 12:00 | 01-08 14:00 | stop_loss | 2 | -1.49 | +| SEI | 01-08 09:00 | 01-08 14:00 | stop_loss | 5 | -1.49 | +| TIA | 01-08 12:00 | 01-08 14:00 | stop_loss | 2 | -1.49 | +| ARB | 01-08 13:00 | 01-08 15:00 | take_profit | 2 | +1.49 | +| INJ | 01-08 12:00 | 01-08 15:00 | take_profit | 3 | +1.49 | +| KAS | 01-08 15:00 | 01-08 16:00 | stop_loss | 1 | -1.49 | +| TRX | 01-05 08:00 | 01-08 16:00 | trailing_stop | 80 | +0.08 | +| UNI | 01-08 18:00 | 01-08 20:00 | stop_loss | 2 | -1.49 | +| FET | 01-09 05:00 | 01-09 06:00 | trailing_stop | 1 | -0.40 | +| TON | 01-09 05:00 | 01-09 08:00 | stop_loss | 3 | -1.49 | +| TON | 01-09 08:00 | 01-09 09:00 | stop_loss | 1 | -1.49 | +| TON | 01-09 09:00 | 01-09 12:00 | stop_loss | 3 | -1.49 | +| SEI | 01-09 08:00 | 01-09 13:00 | trailing_stop | 5 | -0.64 | +| SHIB | 01-09 12:00 | 01-09 13:00 | trailing_stop | 1 | -0.44 | +| SUI | 01-09 08:00 | 01-09 13:00 | take_profit | 5 | +1.49 | +| APT | 01-09 12:00 | 01-09 14:00 | trailing_stop | 2 | -0.70 | +| AVAX | 01-09 08:00 | 01-09 15:00 | take_profit | 7 | +1.49 | +| OP | 01-09 14:00 | 01-09 15:00 | take_profit | 1 | +1.49 | +| TON | 01-09 12:00 | 01-09 15:00 | take_profit | 3 | +1.49 | +| TON | 01-09 16:00 | 01-09 18:00 | stop_loss | 2 | -1.49 | +| TON | 01-09 18:00 | 01-09 19:00 | stop_loss | 1 | -1.49 | +| BONK | 01-10 05:00 | 01-10 06:00 | stop_loss | 1 | -1.49 | +| TRX | 01-09 03:00 | 01-10 18:00 | take_profit | 39 | +1.49 | +| PEPE | 01-10 11:00 | 01-10 22:00 | stop_loss | 11 | -1.49 | +| BONK | 01-11 04:00 | 01-11 06:00 | stop_loss | 2 | -1.49 | +| SEI | 01-10 22:00 | 01-11 09:00 | take_profit | 11 | +1.49 | +| INJ | 01-11 02:00 | 01-11 12:00 | take_profit | 10 | +1.49 | +| ATOM | 01-11 02:00 | 01-11 15:00 | trailing_stop | 13 | -0.56 | +| AVAX | 01-11 00:00 | 01-11 15:00 | trailing_stop | 15 | +0.03 | +| OP | 01-11 02:00 | 01-11 15:00 | trailing_stop | 13 | -0.12 | +| PEPE | 01-11 15:00 | 01-11 16:00 | trailing_stop | 1 | -0.69 | +| TON | 01-11 02:00 | 01-11 18:00 | take_profit | 16 | +1.49 | +| ARB | 01-11 19:00 | 01-11 20:00 | stop_loss | 1 | -1.49 | +| LTC | 01-11 15:00 | 01-11 20:00 | stop_loss | 5 | -1.49 | +| SHIB | 01-11 15:00 | 01-11 20:00 | stop_loss | 5 | -1.49 | +| PEPE | 01-11 20:00 | 01-11 21:00 | stop_loss | 1 | -1.49 | +| TIA | 01-11 20:00 | 01-11 21:00 | stop_loss | 1 | -1.49 | +| TRX | 01-11 14:00 | 01-11 21:00 | trailing_stop | 7 | -0.71 | +| APT | 01-11 20:00 | 01-11 22:00 | stop_loss | 2 | -1.49 | +| FIL | 01-11 20:00 | 01-11 22:00 | stop_loss | 2 | -1.49 | +| LTC | 01-11 20:00 | 01-11 22:00 | stop_loss | 2 | -1.49 | +| PEPE | 01-11 21:00 | 01-11 22:00 | stop_loss | 1 | -1.49 | +| SHIB | 01-11 20:00 | 01-11 22:00 | stop_loss | 2 | -1.49 | +| WIF | 01-11 20:00 | 01-11 22:00 | stop_loss | 2 | -1.49 | +| AVAX | 01-11 22:00 | 01-11 23:00 | stop_loss | 1 | -1.49 | +| BONK | 01-11 22:00 | 01-11 23:00 | stop_loss | 1 | -1.49 | +| FIL | 01-11 22:00 | 01-11 23:00 | stop_loss | 1 | -1.49 | +| INJ | 01-11 22:00 | 01-11 23:00 | stop_loss | 1 | -1.49 | +| OP | 01-11 20:00 | 01-11 23:00 | stop_loss | 3 | -1.49 | +| PEPE | 01-11 22:00 | 01-11 23:00 | trailing_stop | 1 | -0.49 | +| TIA | 01-11 22:00 | 01-11 23:00 | trailing_stop | 1 | -0.44 | +| WIF | 01-11 22:00 | 01-11 23:00 | stop_loss | 1 | -1.49 | +| ARB | 01-11 22:00 | 01-12 00:00 | trailing_stop | 2 | -0.62 | +| ATOM | 01-11 21:00 | 01-12 00:00 | stop_loss | 3 | -1.49 | +| ETC | 01-11 22:00 | 01-12 00:00 | trailing_stop | 2 | -0.65 | +| LTC | 01-11 22:00 | 01-12 00:00 | stop_loss | 2 | -1.49 | +| SUI | 01-11 22:00 | 01-12 00:00 | stop_loss | 2 | -1.49 | +| KAS | 01-11 22:00 | 01-12 01:00 | take_profit | 3 | +1.49 | +| SHIB | 01-11 22:00 | 01-12 01:00 | take_profit | 3 | +1.49 | +| ATOM | 01-12 00:00 | 01-12 02:00 | take_profit | 2 | +1.49 | +| SEI | 01-11 22:00 | 01-12 02:00 | take_profit | 4 | +1.49 | +| UNI | 01-11 22:00 | 01-12 02:00 | take_profit | 4 | +1.49 | +| LTC | 01-12 00:00 | 01-12 04:00 | take_profit | 4 | +1.49 | +| RENDER | 01-12 07:00 | 01-12 08:00 | stop_loss | 1 | -1.49 | +| RENDER | 01-12 08:00 | 01-12 09:00 | stop_loss | 1 | -1.49 | +| LTC | 01-12 07:00 | 01-12 10:00 | stop_loss | 3 | -1.49 | +| LTC | 01-12 10:00 | 01-12 12:00 | stop_loss | 2 | -1.49 | +| RENDER | 01-12 09:00 | 01-12 12:00 | stop_loss | 3 | -1.49 | +| TON | 01-12 07:00 | 01-12 12:00 | stop_loss | 5 | -1.49 | +| LTC | 01-12 12:00 | 01-12 13:00 | stop_loss | 1 | -1.49 | +| NEAR | 01-12 09:00 | 01-12 14:00 | stop_loss | 5 | -1.49 | +| RENDER | 01-12 13:00 | 01-12 14:00 | take_profit | 1 | +1.49 | +| LTC | 01-12 13:00 | 01-12 16:00 | take_profit | 3 | +1.49 | +| INJ | 01-12 16:00 | 01-12 17:00 | stop_loss | 1 | -1.49 | +| TON | 01-12 13:00 | 01-12 17:00 | take_profit | 4 | +1.49 | +| FET | 01-12 17:00 | 01-12 18:00 | stop_loss | 1 | -1.49 | +| FIL | 01-12 18:00 | 01-12 19:00 | trailing_stop | 1 | -0.61 | +| TIA | 01-12 18:00 | 01-12 20:00 | stop_loss | 2 | -1.49 | +| ARB | 01-12 18:00 | 01-12 21:00 | stop_loss | 3 | -1.49 | +| ATOM | 01-12 18:00 | 01-12 21:00 | stop_loss | 3 | -1.49 | +| AVAX | 01-12 18:00 | 01-12 21:00 | stop_loss | 3 | -1.49 | +| BONK | 01-12 18:00 | 01-12 21:00 | stop_loss | 3 | -1.49 | +| ETC | 01-12 18:00 | 01-12 21:00 | stop_loss | 3 | -1.49 | +| INJ | 01-12 17:00 | 01-12 21:00 | stop_loss | 4 | -1.49 | +| OP | 01-12 17:00 | 01-12 21:00 | stop_loss | 4 | -1.49 | +| RENDER | 01-12 17:00 | 01-12 21:00 | stop_loss | 4 | -1.49 | +| SEI | 01-12 18:00 | 01-12 21:00 | stop_loss | 3 | -1.49 | +| FET | 01-13 05:00 | 01-13 12:00 | stop_loss | 7 | -1.49 | +| RENDER | 01-13 09:00 | 01-13 13:00 | trailing_stop | 4 | -0.65 | +| APT | 01-14 12:00 | 01-14 13:00 | stop_loss | 1 | -1.49 | +| BONK | 01-14 12:00 | 01-14 13:00 | stop_loss | 1 | -1.49 | +| INJ | 01-14 12:00 | 01-14 13:00 | stop_loss | 1 | -1.49 | +| OP | 01-14 12:00 | 01-14 13:00 | stop_loss | 1 | -1.49 | +| SHIB | 01-14 12:00 | 01-14 13:00 | stop_loss | 1 | -1.49 | +| WIF | 01-14 12:00 | 01-14 13:00 | stop_loss | 1 | -1.49 | +| APT | 01-14 13:00 | 01-14 14:00 | trailing_stop | 1 | -0.25 | +| ETC | 01-14 12:00 | 01-14 14:00 | trailing_stop | 2 | -0.64 | +| FET | 01-14 12:00 | 01-14 14:00 | take_profit | 2 | +1.49 | +| INJ | 01-14 13:00 | 01-14 14:00 | take_profit | 1 | +1.49 | +| SEI | 01-14 12:00 | 01-14 14:00 | trailing_stop | 2 | -0.51 | +| AVAX | 01-14 12:00 | 01-14 15:00 | trailing_stop | 3 | -0.14 | +| NEAR | 01-14 12:00 | 01-14 16:00 | take_profit | 4 | +1.49 | +| SUI | 01-14 12:00 | 01-14 16:00 | take_profit | 4 | +1.49 | +| PEPE | 01-14 16:00 | 01-14 17:00 | stop_loss | 1 | -1.49 | +| TON | 01-14 12:00 | 01-14 17:00 | stop_loss | 5 | -1.49 | +| OP | 01-14 13:00 | 01-14 18:00 | stop_loss | 5 | -1.49 | +| PEPE | 01-14 17:00 | 01-14 18:00 | stop_loss | 1 | -1.49 | +| TIA | 01-14 17:00 | 01-14 18:00 | stop_loss | 1 | -1.49 | +| ATOM | 01-14 17:00 | 01-14 22:00 | stop_loss | 5 | -1.49 | +| LTC | 01-14 19:00 | 01-14 22:00 | stop_loss | 3 | -1.49 | +| LTC | 01-14 22:00 | 01-14 23:00 | stop_loss | 1 | -1.49 | +| RENDER | 01-14 22:00 | 01-14 23:00 | stop_loss | 1 | -1.49 | +| LTC | 01-14 23:00 | 01-15 00:00 | stop_loss | 1 | -1.49 | +| PEPE | 01-14 18:00 | 01-15 01:00 | stop_loss | 7 | -1.49 | +| RENDER | 01-14 23:00 | 01-15 01:00 | stop_loss | 2 | -1.49 | +| ARB | 01-14 18:00 | 01-15 02:00 | stop_loss | 8 | -1.49 | +| LTC | 01-15 00:00 | 01-15 02:00 | stop_loss | 2 | -1.49 | +| ARB | 01-15 02:00 | 01-15 03:00 | stop_loss | 1 | -1.49 | +| NEAR | 01-14 22:00 | 01-15 03:00 | stop_loss | 5 | -1.49 | +| OP | 01-14 18:00 | 01-15 03:00 | stop_loss | 9 | -1.49 | +| RENDER | 01-15 01:00 | 01-15 03:00 | stop_loss | 2 | -1.49 | +| UNI | 01-15 02:00 | 01-15 03:00 | stop_loss | 1 | -1.49 | +| ARB | 01-15 03:00 | 01-15 07:00 | take_profit | 4 | +1.49 | +| FET | 01-15 04:00 | 01-15 07:00 | take_profit | 3 | +1.49 | +| INJ | 01-15 03:00 | 01-15 07:00 | trailing_stop | 4 | -0.38 | +| NEAR | 01-15 03:00 | 01-15 07:00 | take_profit | 4 | +1.49 | +| RENDER | 01-15 03:00 | 01-15 07:00 | trailing_stop | 4 | -0.26 | +| TIA | 01-15 03:00 | 01-15 07:00 | take_profit | 4 | +1.49 | +| TON | 01-15 04:00 | 01-15 08:00 | take_profit | 4 | +1.49 | +| LTC | 01-15 03:00 | 01-15 09:00 | take_profit | 6 | +1.49 | +| TRX | 01-14 10:00 | 01-15 09:00 | trailing_stop | 23 | -0.23 | +| BONK | 01-15 09:00 | 01-15 11:00 | stop_loss | 2 | -1.49 | +| RENDER | 01-15 09:00 | 01-15 12:00 | take_profit | 3 | +1.49 | +| UNI | 01-15 03:00 | 01-15 12:00 | trailing_stop | 9 | -0.46 | +| AVAX | 01-15 11:00 | 01-15 14:00 | stop_loss | 3 | -1.49 | +| BONK | 01-15 11:00 | 01-15 14:00 | stop_loss | 3 | -1.49 | +| INJ | 01-15 10:00 | 01-15 14:00 | stop_loss | 4 | -1.49 | +| SHIB | 01-15 11:00 | 01-15 14:00 | stop_loss | 3 | -1.49 | +| UNI | 01-15 12:00 | 01-15 14:00 | stop_loss | 2 | -1.49 | +| WIF | 01-15 13:00 | 01-15 14:00 | stop_loss | 1 | -1.49 | +| ATOM | 01-15 14:00 | 01-15 15:00 | stop_loss | 1 | -1.49 | +| ETC | 01-15 10:00 | 01-15 15:00 | stop_loss | 5 | -1.49 | +| FIL | 01-15 14:00 | 01-15 15:00 | stop_loss | 1 | -1.49 | +| INJ | 01-15 14:00 | 01-15 15:00 | stop_loss | 1 | -1.49 | +| APT | 01-15 15:00 | 01-15 16:00 | stop_loss | 1 | -1.49 | +| APT | 01-15 16:00 | 01-15 17:00 | stop_loss | 1 | -1.49 | +| FIL | 01-15 16:00 | 01-15 17:00 | stop_loss | 1 | -1.49 | +| TIA | 01-15 15:00 | 01-15 17:00 | stop_loss | 2 | -1.49 | +| APT | 01-15 17:00 | 01-15 18:00 | stop_loss | 1 | -1.49 | +| ATOM | 01-15 15:00 | 01-15 18:00 | stop_loss | 3 | -1.49 | +| FIL | 01-15 17:00 | 01-15 18:00 | stop_loss | 1 | -1.49 | +| TON | 01-15 17:00 | 01-15 18:00 | stop_loss | 1 | -1.49 | +| APT | 01-15 18:00 | 01-15 19:00 | stop_loss | 1 | -1.49 | +| FIL | 01-15 18:00 | 01-15 19:00 | stop_loss | 1 | -1.49 | +| KAS | 01-15 18:00 | 01-15 19:00 | trailing_stop | 1 | -0.53 | +| AVAX | 01-15 18:00 | 01-15 20:00 | stop_loss | 2 | -1.49 | +| ETC | 01-15 18:00 | 01-15 20:00 | stop_loss | 2 | -1.49 | +| LTC | 01-15 15:00 | 01-15 20:00 | stop_loss | 5 | -1.49 | +| TON | 01-15 18:00 | 01-15 20:00 | stop_loss | 2 | -1.49 | +| UNI | 01-15 18:00 | 01-15 20:00 | stop_loss | 2 | -1.49 | +| TIA | 01-15 18:00 | 01-15 21:00 | trailing_stop | 3 | -0.63 | +| WIF | 01-15 18:00 | 01-15 22:00 | take_profit | 4 | +1.49 | +| ETC | 01-15 20:00 | 01-15 23:00 | confirmed_bearish_exit | 3 | +0.94 | +| FET | 01-15 19:00 | 01-15 23:00 | take_profit | 4 | +1.49 | +| UNI | 01-15 20:00 | 01-15 23:00 | take_profit | 3 | +1.49 | +| BONK | 01-15 18:00 | 01-16 00:00 | take_profit | 6 | +1.49 | +| OP | 01-15 20:00 | 01-16 01:00 | take_profit | 5 | +1.49 | +| APT | 01-15 19:00 | 01-16 02:00 | trailing_stop | 7 | -0.32 | +| ARB | 01-16 00:00 | 01-16 02:00 | stop_loss | 2 | -1.49 | +| ETC | 01-16 01:00 | 01-16 02:00 | stop_loss | 1 | -1.49 | +| FIL | 01-16 00:00 | 01-16 02:00 | take_profit | 2 | +1.49 | +| OP | 01-16 01:00 | 01-16 02:00 | stop_loss | 1 | -1.49 | +| TON | 01-15 20:00 | 01-16 02:00 | take_profit | 6 | +1.49 | +| OP | 01-16 02:00 | 01-16 03:00 | stop_loss | 1 | -1.49 | +| PEPE | 01-16 02:00 | 01-16 03:00 | stop_loss | 1 | -1.49 | +| ARB | 01-16 02:00 | 01-16 04:00 | stop_loss | 2 | -1.49 | +| ETC | 01-16 02:00 | 01-16 04:00 | stop_loss | 2 | -1.49 | +| FET | 01-16 01:00 | 01-16 04:00 | stop_loss | 3 | -1.49 | +| INJ | 01-15 18:00 | 01-16 04:00 | trailing_stop | 10 | -0.60 | +| LTC | 01-16 02:00 | 01-16 04:00 | stop_loss | 2 | -1.49 | +| NEAR | 01-16 02:00 | 01-16 04:00 | stop_loss | 2 | -1.49 | +| OP | 01-16 03:00 | 01-16 04:00 | stop_loss | 1 | -1.49 | +| RENDER | 01-16 02:00 | 01-16 04:00 | stop_loss | 2 | -1.49 | +| SEI | 01-16 02:00 | 01-16 04:00 | stop_loss | 2 | -1.49 | +| SHIB | 01-15 18:00 | 01-16 04:00 | trailing_stop | 10 | -0.40 | +| SUI | 01-16 01:00 | 01-16 04:00 | stop_loss | 3 | -1.49 | +| TIA | 01-16 00:00 | 01-16 04:00 | stop_loss | 4 | -1.49 | +| WIF | 01-16 03:00 | 01-16 04:00 | stop_loss | 1 | -1.49 | +| BONK | 01-16 04:00 | 01-16 05:00 | take_profit | 1 | +1.49 | +| FET | 01-16 04:00 | 01-16 05:00 | trailing_stop | 1 | -0.47 | +| NEAR | 01-16 04:00 | 01-16 05:00 | trailing_stop | 1 | -0.09 | +| PEPE | 01-16 04:00 | 01-16 05:00 | trailing_stop | 1 | -0.16 | +| SHIB | 01-16 04:00 | 01-16 08:00 | take_profit | 4 | +1.49 | +| TON | 01-16 03:00 | 01-16 11:00 | stop_loss | 8 | -1.49 | +| OP | 01-16 04:00 | 01-16 12:00 | trailing_stop | 8 | -0.59 | +| APT | 01-16 03:00 | 01-16 13:00 | stop_loss | 10 | -1.49 | +| KAS | 01-15 19:00 | 01-16 13:00 | stop_loss | 18 | -1.49 | +| SUI | 01-16 04:00 | 01-16 13:00 | trailing_stop | 9 | -0.69 | +| UNI | 01-16 01:00 | 01-16 13:00 | stop_loss | 12 | -1.49 | +| ATOM | 01-15 18:00 | 01-16 15:00 | stop_loss | 21 | -1.49 | +| AVAX | 01-15 20:00 | 01-16 15:00 | stop_loss | 19 | -1.49 | +| ETC | 01-16 04:00 | 01-16 15:00 | stop_loss | 11 | -1.49 | +| INJ | 01-16 04:00 | 01-16 15:00 | stop_loss | 11 | -1.49 | +| LTC | 01-16 04:00 | 01-16 15:00 | stop_loss | 11 | -1.49 | +| AVAX | 01-16 15:00 | 01-16 16:00 | stop_loss | 1 | -1.49 | +| BONK | 01-16 15:00 | 01-16 16:00 | trailing_stop | 1 | -0.65 | +| FET | 01-16 15:00 | 01-16 16:00 | take_profit | 1 | +1.49 | +| INJ | 01-16 15:00 | 01-16 16:00 | trailing_stop | 1 | -0.64 | +| SUI | 01-16 15:00 | 01-16 16:00 | trailing_stop | 1 | -0.42 | +| SHIB | 01-16 15:00 | 01-16 17:00 | trailing_stop | 2 | -0.49 | +| TIA | 01-16 15:00 | 01-16 17:00 | trailing_stop | 2 | -0.25 | +| WIF | 01-16 15:00 | 01-16 17:00 | take_profit | 2 | +1.49 | +| OP | 01-16 15:00 | 01-16 19:00 | trailing_stop | 4 | -0.16 | +| APT | 01-16 15:00 | 01-16 20:00 | take_profit | 5 | +1.49 | +| ARB | 01-16 16:00 | 01-16 20:00 | take_profit | 4 | +1.49 | +| ATOM | 01-16 15:00 | 01-16 20:00 | trailing_stop | 5 | -0.12 | +| AVAX | 01-16 16:00 | 01-16 20:00 | trailing_stop | 4 | -0.15 | +| ETC | 01-16 15:00 | 01-16 20:00 | take_profit | 5 | +1.49 | +| KAS | 01-16 15:00 | 01-16 20:00 | take_profit | 5 | +1.49 | +| NEAR | 01-16 15:00 | 01-16 20:00 | take_profit | 5 | +1.49 | +| SUI | 01-16 16:00 | 01-16 20:00 | take_profit | 4 | +1.49 | +| UNI | 01-16 15:00 | 01-16 20:00 | take_profit | 5 | +1.49 | +| FIL | 01-16 16:00 | 01-17 01:00 | take_profit | 9 | +1.49 | +| TRX | 01-16 10:00 | 01-17 13:00 | take_profit | 27 | +1.49 | +| KAS | 01-17 14:00 | 01-17 23:00 | stop_loss | 9 | -1.49 | +| WIF | 01-17 22:00 | 01-18 00:00 | take_profit | 2 | +1.49 | +| INJ | 01-17 22:00 | 01-18 01:00 | stop_loss | 3 | -1.49 | +| TIA | 01-18 02:00 | 01-18 04:00 | stop_loss | 2 | -1.49 | +| NEAR | 01-18 01:00 | 01-18 05:00 | stop_loss | 4 | -1.49 | +| ATOM | 01-18 03:00 | 01-18 06:00 | stop_loss | 3 | -1.49 | +| INJ | 01-18 02:00 | 01-18 07:00 | stop_loss | 5 | -1.49 | +| OP | 01-18 02:00 | 01-18 07:00 | stop_loss | 5 | -1.49 | +| LTC | 01-17 12:00 | 01-18 08:00 | take_profit | 20 | +1.49 | +| ATOM | 01-18 06:00 | 01-18 09:00 | stop_loss | 3 | -1.49 | +| APT | 01-18 04:00 | 01-18 12:00 | stop_loss | 8 | -1.49 | +| AVAX | 01-18 04:00 | 01-18 12:00 | stop_loss | 8 | -1.49 | +| BONK | 01-17 22:00 | 01-18 13:00 | stop_loss | 15 | -1.49 | +| SUI | 01-17 22:00 | 01-18 13:00 | stop_loss | 15 | -1.49 | +| ETC | 01-18 02:00 | 01-18 14:00 | stop_loss | 12 | -1.49 | +| FIL | 01-18 04:00 | 01-18 14:00 | stop_loss | 10 | -1.49 | +| PEPE | 01-18 10:00 | 01-18 14:00 | stop_loss | 4 | -1.49 | +| SEI | 01-18 04:00 | 01-18 14:00 | stop_loss | 10 | -1.49 | +| WIF | 01-18 01:00 | 01-18 14:00 | stop_loss | 13 | -1.49 | +| FIL | 01-18 14:00 | 01-18 15:00 | trailing_stop | 1 | +0.20 | +| RENDER | 01-18 12:00 | 01-18 15:00 | stop_loss | 3 | -1.49 | +| ARB | 01-18 04:00 | 01-18 18:00 | take_profit | 14 | +1.49 | +| ATOM | 01-18 16:00 | 01-18 23:00 | stop_loss | 7 | -1.49 | +| KAS | 01-18 10:00 | 01-18 23:00 | stop_loss | 13 | -1.49 | +| PEPE | 01-18 14:00 | 01-18 23:00 | stop_loss | 9 | -1.49 | +| SHIB | 01-18 02:00 | 01-18 23:00 | stop_loss | 21 | -1.49 | +| TON | 01-18 07:00 | 01-18 23:00 | stop_loss | 16 | -1.49 | +| UNI | 01-18 01:00 | 01-18 23:00 | stop_loss | 22 | -1.49 | +| APT | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| ARB | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| ATOM | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| AVAX | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| BONK | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| ETC | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| FET | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| FIL | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| INJ | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| KAS | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| LTC | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| NEAR | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| OP | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| PEPE | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| RENDER | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| SEI | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| SHIB | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| SUI | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| TIA | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| TON | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| UNI | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| WIF | 01-18 23:00 | 01-19 00:00 | stop_loss | 1 | -1.49 | +| APT | 01-19 00:00 | 01-19 01:00 | trailing_stop | 1 | -0.42 | +| FET | 01-19 00:00 | 01-19 01:00 | trailing_stop | 1 | -0.63 | +| FIL | 01-19 00:00 | 01-19 01:00 | stop_loss | 1 | -1.49 | +| PEPE | 01-19 00:00 | 01-19 01:00 | stop_loss | 1 | -1.49 | +| SEI | 01-19 00:00 | 01-19 01:00 | trailing_stop | 1 | -0.54 | +| SUI | 01-19 00:00 | 01-19 01:00 | stop_loss | 1 | -1.49 | +| WIF | 01-19 00:00 | 01-19 01:00 | take_profit | 1 | +1.49 | +| INJ | 01-19 00:00 | 01-19 02:00 | trailing_stop | 2 | -0.28 | +| OP | 01-19 00:00 | 01-19 02:00 | take_profit | 2 | +1.49 | +| PEPE | 01-19 01:00 | 01-19 02:00 | trailing_stop | 1 | -0.55 | +| SEI | 01-19 01:00 | 01-19 02:00 | stop_loss | 1 | -1.49 | +| RENDER | 01-19 00:00 | 01-19 03:00 | take_profit | 3 | +1.49 | +| UNI | 01-19 00:00 | 01-19 03:00 | take_profit | 3 | +1.49 | +| APT | 01-19 01:00 | 01-19 04:00 | stop_loss | 3 | -1.49 | +| ARB | 01-19 00:00 | 01-19 04:00 | stop_loss | 4 | -1.49 | +| BONK | 01-19 00:00 | 01-19 04:00 | take_profit | 4 | +1.49 | +| INJ | 01-19 02:00 | 01-19 04:00 | stop_loss | 2 | -1.49 | +| TIA | 01-19 00:00 | 01-19 04:00 | stop_loss | 4 | -1.49 | +| FIL | 01-19 01:00 | 01-19 05:00 | take_profit | 4 | +1.49 | +| NEAR | 01-19 00:00 | 01-19 05:00 | trailing_stop | 5 | -0.13 | +| SUI | 01-19 01:00 | 01-19 05:00 | stop_loss | 4 | -1.49 | +| TON | 01-19 00:00 | 01-19 05:00 | stop_loss | 5 | -1.49 | +| AVAX | 01-19 00:00 | 01-19 06:00 | trailing_stop | 6 | -0.60 | +| SEI | 01-19 02:00 | 01-19 06:00 | stop_loss | 4 | -1.49 | +| WIF | 01-19 01:00 | 01-19 07:00 | trailing_stop | 6 | +0.05 | +| FET | 01-19 01:00 | 01-19 08:00 | trailing_stop | 7 | -0.44 | +| KAS | 01-19 00:00 | 01-19 08:00 | take_profit | 8 | +1.49 | +| LTC | 01-19 00:00 | 01-19 08:00 | take_profit | 8 | +1.49 | +| PEPE | 01-19 02:00 | 01-19 08:00 | stop_loss | 6 | -1.49 | +| ATOM | 01-19 00:00 | 01-19 09:00 | take_profit | 9 | +1.49 | +| FIL | 01-19 08:00 | 01-19 10:00 | stop_loss | 2 | -1.49 | +| INJ | 01-19 09:00 | 01-19 10:00 | stop_loss | 1 | -1.49 | +| TON | 01-19 09:00 | 01-19 10:00 | stop_loss | 1 | -1.49 | +| WIF | 01-19 08:00 | 01-19 10:00 | stop_loss | 2 | -1.49 | +| ETC | 01-19 00:00 | 01-19 11:00 | take_profit | 11 | +1.49 | +| KAS | 01-19 08:00 | 01-19 11:00 | stop_loss | 3 | -1.49 | +| AVAX | 01-19 09:00 | 01-19 12:00 | stop_loss | 3 | -1.49 | +| FET | 01-19 09:00 | 01-19 12:00 | stop_loss | 3 | -1.49 | +| FIL | 01-19 10:00 | 01-19 12:00 | stop_loss | 2 | -1.49 | +| INJ | 01-19 10:00 | 01-19 12:00 | stop_loss | 2 | -1.49 | +| TON | 01-19 10:00 | 01-19 12:00 | stop_loss | 2 | -1.49 | +| LTC | 01-19 08:00 | 01-19 13:00 | stop_loss | 5 | -1.49 | +| OP | 01-19 02:00 | 01-19 13:00 | stop_loss | 11 | -1.49 | +| RENDER | 01-19 11:00 | 01-19 13:00 | stop_loss | 2 | -1.49 | +| FET | 01-19 12:00 | 01-19 15:00 | stop_loss | 3 | -1.49 | +| SHIB | 01-19 00:00 | 01-19 16:00 | trailing_stop | 16 | -0.19 | +| WIF | 01-19 10:00 | 01-19 16:00 | take_profit | 6 | +1.49 | +| ATOM | 01-19 09:00 | 01-19 19:00 | take_profit | 10 | +1.49 | +| ETC | 01-19 11:00 | 01-19 19:00 | confirmed_bearish_exit | 8 | +0.33 | +| KAS | 01-19 11:00 | 01-20 03:00 | stop_loss | 16 | -1.49 | +| UNI | 01-19 09:00 | 01-20 05:00 | stop_loss | 20 | -1.49 | +| AVAX | 01-19 12:00 | 01-20 06:00 | stop_loss | 18 | -1.49 | +| KAS | 01-20 03:00 | 01-20 06:00 | stop_loss | 3 | -1.49 | +| TRX | 01-19 15:00 | 01-20 07:00 | stop_loss | 16 | -1.49 | +| ETC | 01-20 06:00 | 01-20 08:00 | stop_loss | 2 | -1.49 | +| FIL | 01-20 06:00 | 01-20 08:00 | stop_loss | 2 | -1.49 | +| RENDER | 01-20 07:00 | 01-20 08:00 | stop_loss | 1 | -1.49 | +| SEI | 01-20 06:00 | 01-20 08:00 | stop_loss | 2 | -1.49 | +| SUI | 01-20 07:00 | 01-20 08:00 | stop_loss | 1 | -1.49 | +| UNI | 01-20 06:00 | 01-20 08:00 | stop_loss | 2 | -1.49 | +| ARB | 01-20 08:00 | 01-20 10:00 | take_profit | 2 | +1.49 | +| OP | 01-20 09:00 | 01-20 10:00 | take_profit | 1 | +1.49 | +| SUI | 01-20 08:00 | 01-20 10:00 | stop_loss | 2 | -1.49 | +| INJ | 01-20 09:00 | 01-20 11:00 | stop_loss | 2 | -1.49 | +| AVAX | 01-20 08:00 | 01-20 13:00 | stop_loss | 5 | -1.49 | +| FET | 01-20 08:00 | 01-20 13:00 | stop_loss | 5 | -1.49 | +| FIL | 01-20 08:00 | 01-20 13:00 | stop_loss | 5 | -1.49 | +| PEPE | 01-20 09:00 | 01-20 13:00 | stop_loss | 4 | -1.49 | +| RENDER | 01-20 08:00 | 01-20 13:00 | stop_loss | 5 | -1.49 | +| SUI | 01-20 10:00 | 01-20 13:00 | stop_loss | 3 | -1.49 | +| TIA | 01-20 11:00 | 01-20 13:00 | stop_loss | 2 | -1.49 | +| UNI | 01-20 08:00 | 01-20 13:00 | stop_loss | 5 | -1.49 | +| WIF | 01-20 09:00 | 01-20 13:00 | stop_loss | 4 | -1.49 | +| FIL | 01-20 13:00 | 01-20 14:00 | take_profit | 1 | +1.49 | +| OP | 01-20 11:00 | 01-20 14:00 | stop_loss | 3 | -1.49 | +| RENDER | 01-20 13:00 | 01-20 14:00 | take_profit | 1 | +1.49 | +| SUI | 01-20 13:00 | 01-20 14:00 | take_profit | 1 | +1.49 | +| TIA | 01-20 13:00 | 01-20 14:00 | take_profit | 1 | +1.49 | +| WIF | 01-20 13:00 | 01-20 14:00 | take_profit | 1 | +1.49 | +| ATOM | 01-20 13:00 | 01-20 15:00 | stop_loss | 2 | -1.49 | +| AVAX | 01-20 13:00 | 01-20 15:00 | trailing_stop | 2 | -0.66 | +| KAS | 01-20 06:00 | 01-20 15:00 | stop_loss | 9 | -1.49 | +| LTC | 01-20 07:00 | 01-20 15:00 | stop_loss | 8 | -1.49 | +| NEAR | 01-20 08:00 | 01-20 15:00 | stop_loss | 7 | -1.49 | +| TON | 01-20 13:00 | 01-20 15:00 | stop_loss | 2 | -1.49 | +| TRX | 01-20 09:00 | 01-20 15:00 | stop_loss | 6 | -1.49 | +| APT | 01-20 13:00 | 01-20 16:00 | stop_loss | 3 | -1.49 | +| ETC | 01-20 13:00 | 01-20 16:00 | stop_loss | 3 | -1.49 | +| INJ | 01-20 11:00 | 01-20 16:00 | stop_loss | 5 | -1.49 | +| SEI | 01-20 13:00 | 01-20 16:00 | stop_loss | 3 | -1.49 | +| SHIB | 01-20 10:00 | 01-20 16:00 | stop_loss | 6 | -1.49 | +| UNI | 01-20 13:00 | 01-20 16:00 | stop_loss | 3 | -1.49 | +| APT | 01-20 16:00 | 01-20 17:00 | stop_loss | 1 | -1.49 | +| ARB | 01-20 16:00 | 01-20 17:00 | stop_loss | 1 | -1.49 | +| AVAX | 01-20 16:00 | 01-20 17:00 | stop_loss | 1 | -1.49 | +| BONK | 01-20 16:00 | 01-20 17:00 | stop_loss | 1 | -1.49 | +| KAS | 01-20 16:00 | 01-20 17:00 | stop_loss | 1 | -1.49 | +| PEPE | 01-20 16:00 | 01-20 17:00 | stop_loss | 1 | -1.49 | +| LTC | 01-20 16:00 | 01-20 18:00 | stop_loss | 2 | -1.49 | +| OP | 01-20 16:00 | 01-20 18:00 | stop_loss | 2 | -1.49 | +| SEI | 01-20 16:00 | 01-20 18:00 | stop_loss | 2 | -1.49 | +| TON | 01-20 16:00 | 01-20 18:00 | stop_loss | 2 | -1.49 | +| UNI | 01-20 16:00 | 01-20 18:00 | stop_loss | 2 | -1.49 | +| KAS | 01-20 17:00 | 01-20 19:00 | stop_loss | 2 | -1.49 | +| APT | 01-20 17:00 | 01-20 20:00 | trailing_stop | 3 | -0.68 | +| ATOM | 01-20 16:00 | 01-20 20:00 | take_profit | 4 | +1.49 | +| PEPE | 01-20 18:00 | 01-20 20:00 | take_profit | 2 | +1.49 | +| TIA | 01-20 16:00 | 01-20 20:00 | take_profit | 4 | +1.49 | +| LTC | 01-20 18:00 | 01-20 21:00 | stop_loss | 3 | -1.49 | +| ARB | 01-20 17:00 | 01-20 22:00 | stop_loss | 5 | -1.49 | +| AVAX | 01-20 17:00 | 01-20 22:00 | stop_loss | 5 | -1.49 | +| ETC | 01-20 16:00 | 01-20 22:00 | stop_loss | 6 | -1.49 | +| SEI | 01-20 18:00 | 01-20 22:00 | stop_loss | 4 | -1.49 | +| BONK | 01-20 22:00 | 01-21 00:00 | take_profit | 2 | +1.49 | +| FIL | 01-20 18:00 | 01-21 00:00 | take_profit | 6 | +1.49 | +| TON | 01-20 18:00 | 01-21 00:00 | trailing_stop | 6 | -0.41 | +| PEPE | 01-21 13:00 | 01-21 14:00 | take_profit | 1 | +1.49 | +| AVAX | 01-21 16:00 | 01-21 17:00 | trailing_stop | 1 | -0.62 | +| FIL | 01-21 16:00 | 01-21 17:00 | trailing_stop | 1 | -0.48 | +| OP | 01-21 16:00 | 01-21 17:00 | stop_loss | 1 | -1.49 | +| TIA | 01-21 16:00 | 01-21 17:00 | stop_loss | 1 | -1.49 | +| LTC | 01-21 16:00 | 01-21 18:00 | trailing_stop | 2 | -0.60 | +| OP | 01-21 17:00 | 01-21 18:00 | trailing_stop | 1 | -0.58 | +| SUI | 01-21 16:00 | 01-21 18:00 | take_profit | 2 | +1.49 | +| APT | 01-21 16:00 | 01-21 19:00 | take_profit | 3 | +1.49 | +| ETC | 01-21 16:00 | 01-21 19:00 | take_profit | 3 | +1.49 | +| KAS | 01-21 17:00 | 01-21 19:00 | take_profit | 2 | +1.49 | +| NEAR | 01-21 16:00 | 01-21 19:00 | take_profit | 3 | +1.49 | +| PEPE | 01-21 16:00 | 01-21 19:00 | take_profit | 3 | +1.49 | +| SEI | 01-21 16:00 | 01-21 19:00 | take_profit | 3 | +1.49 | +| SHIB | 01-21 16:00 | 01-21 19:00 | take_profit | 3 | +1.49 | +| ETC | 01-22 09:00 | 01-22 12:00 | stop_loss | 3 | -1.49 | +| UNI | 01-22 09:00 | 01-22 12:00 | stop_loss | 3 | -1.49 | +| PEPE | 01-22 11:00 | 01-22 13:00 | stop_loss | 2 | -1.49 | +| SHIB | 01-22 11:00 | 01-22 13:00 | stop_loss | 2 | -1.49 | +| TIA | 01-22 11:00 | 01-22 13:00 | stop_loss | 2 | -1.49 | +| AVAX | 01-22 11:00 | 01-22 14:00 | stop_loss | 3 | -1.49 | +| BONK | 01-22 11:00 | 01-22 14:00 | stop_loss | 3 | -1.49 | +| FIL | 01-22 11:00 | 01-22 14:00 | stop_loss | 3 | -1.49 | +| INJ | 01-22 11:00 | 01-22 14:00 | stop_loss | 3 | -1.49 | +| KAS | 01-22 11:00 | 01-22 14:00 | stop_loss | 3 | -1.49 | +| PEPE | 01-22 13:00 | 01-22 14:00 | stop_loss | 1 | -1.49 | +| APT | 01-22 14:00 | 01-22 15:00 | stop_loss | 1 | -1.49 | +| FET | 01-22 14:00 | 01-22 15:00 | stop_loss | 1 | -1.49 | +| FIL | 01-22 14:00 | 01-22 15:00 | stop_loss | 1 | -1.49 | +| LTC | 01-22 14:00 | 01-22 15:00 | stop_loss | 1 | -1.49 | +| OP | 01-22 14:00 | 01-22 15:00 | stop_loss | 1 | -1.49 | +| SEI | 01-22 14:00 | 01-22 15:00 | stop_loss | 1 | -1.49 | +| UNI | 01-22 14:00 | 01-22 15:00 | stop_loss | 1 | -1.49 | +| WIF | 01-22 14:00 | 01-22 15:00 | stop_loss | 1 | -1.49 | +| APT | 01-22 15:00 | 01-22 16:00 | trailing_stop | 1 | -0.60 | +| BONK | 01-22 14:00 | 01-22 16:00 | take_profit | 2 | +1.49 | +| INJ | 01-22 14:00 | 01-22 16:00 | take_profit | 2 | +1.49 | +| OP | 01-22 15:00 | 01-22 16:00 | trailing_stop | 1 | -0.15 | +| PEPE | 01-22 14:00 | 01-22 16:00 | trailing_stop | 2 | -0.28 | +| SEI | 01-22 15:00 | 01-22 16:00 | trailing_stop | 1 | -0.22 | +| TIA | 01-22 14:00 | 01-22 16:00 | trailing_stop | 2 | -0.21 | +| WIF | 01-22 15:00 | 01-22 16:00 | take_profit | 1 | +1.49 | +| OP | 01-22 16:00 | 01-22 17:00 | stop_loss | 1 | -1.49 | +| FIL | 01-22 15:00 | 01-22 18:00 | stop_loss | 3 | -1.49 | +| NEAR | 01-22 14:00 | 01-22 19:00 | trailing_stop | 5 | -0.19 | +| TRX | 01-20 15:00 | 01-22 19:00 | take_profit | 52 | +1.49 | +| UNI | 01-22 15:00 | 01-22 20:00 | trailing_stop | 5 | -0.45 | +| SHIB | 01-22 14:00 | 01-22 23:00 | trailing_stop | 9 | -0.30 | +| SUI | 01-22 14:00 | 01-22 23:00 | trailing_stop | 9 | -0.56 | +| PEPE | 01-22 21:00 | 01-23 00:00 | stop_loss | 3 | -1.49 | +| RENDER | 01-22 23:00 | 01-23 00:00 | take_profit | 1 | +1.49 | +| FIL | 01-22 18:00 | 01-23 01:00 | take_profit | 7 | +1.49 | +| ATOM | 01-22 18:00 | 01-23 03:00 | take_profit | 9 | +1.49 | +| ETC | 01-22 14:00 | 01-23 03:00 | take_profit | 13 | +1.49 | +| PEPE | 01-23 00:00 | 01-23 04:00 | take_profit | 4 | +1.49 | +| AVAX | 01-22 14:00 | 01-23 07:00 | trailing_stop | 17 | +0.01 | +| TRX | 01-23 13:00 | 01-23 14:00 | stop_loss | 1 | -1.49 | +| INJ | 01-23 14:00 | 01-23 15:00 | stop_loss | 1 | -1.49 | +| LTC | 01-23 14:00 | 01-23 15:00 | trailing_stop | 1 | -0.48 | +| OP | 01-23 14:00 | 01-23 15:00 | take_profit | 1 | +1.49 | +| SEI | 01-23 14:00 | 01-23 15:00 | trailing_stop | 1 | -0.03 | +| TIA | 01-23 14:00 | 01-23 15:00 | take_profit | 1 | +1.49 | +| WIF | 01-23 14:00 | 01-23 15:00 | take_profit | 1 | +1.49 | +| FIL | 01-23 18:00 | 01-23 19:00 | stop_loss | 1 | -1.49 | +| TON | 01-23 14:00 | 01-23 19:00 | trailing_stop | 5 | -0.66 | +| TRX | 01-23 14:00 | 01-24 10:00 | stop_loss | 20 | -1.49 | +| RENDER | 01-24 08:00 | 01-24 12:00 | stop_loss | 4 | -1.49 | +| ATOM | 01-24 07:00 | 01-24 13:00 | stop_loss | 6 | -1.49 | +| FET | 01-24 07:00 | 01-24 13:00 | stop_loss | 6 | -1.49 | +| TIA | 01-24 07:00 | 01-24 14:00 | trailing_stop | 7 | -0.12 | +| APT | 01-23 20:00 | 01-24 15:00 | trailing_stop | 19 | -0.67 | +| RENDER | 01-24 12:00 | 01-24 15:00 | stop_loss | 3 | -1.49 | +| SEI | 01-24 07:00 | 01-24 15:00 | stop_loss | 8 | -1.49 | +| SHIB | 01-24 07:00 | 01-24 15:00 | stop_loss | 8 | -1.49 | +| PEPE | 01-24 07:00 | 01-24 16:00 | stop_loss | 9 | -1.49 | +| FIL | 01-23 19:00 | 01-24 19:00 | stop_loss | 24 | -1.49 | +| FIL | 01-24 19:00 | 01-25 01:00 | take_profit | 6 | +1.49 | +| ATOM | 01-24 13:00 | 01-25 03:00 | trailing_stop | 14 | -0.16 | +| AVAX | 01-24 15:00 | 01-25 03:00 | stop_loss | 12 | -1.49 | +| ETC | 01-24 16:00 | 01-25 03:00 | stop_loss | 11 | -1.49 | +| SHIB | 01-25 00:00 | 01-25 03:00 | stop_loss | 3 | -1.49 | +| FET | 01-25 02:00 | 01-25 04:00 | stop_loss | 2 | -1.49 | +| TIA | 01-25 01:00 | 01-25 04:00 | stop_loss | 3 | -1.49 | +| KAS | 01-25 07:00 | 01-25 09:00 | stop_loss | 2 | -1.49 | +| PEPE | 01-25 08:00 | 01-25 10:00 | take_profit | 2 | +1.49 | +| FET | 01-25 04:00 | 01-25 12:00 | trailing_stop | 8 | -0.43 | +| ARB | 01-25 04:00 | 01-25 14:00 | stop_loss | 10 | -1.49 | +| AVAX | 01-25 03:00 | 01-25 14:00 | stop_loss | 11 | -1.49 | +| BONK | 01-25 08:00 | 01-25 14:00 | trailing_stop | 6 | -0.56 | +| FIL | 01-25 12:00 | 01-25 14:00 | stop_loss | 2 | -1.49 | +| INJ | 01-25 08:00 | 01-25 14:00 | trailing_stop | 6 | -0.48 | +| TIA | 01-25 13:00 | 01-25 14:00 | stop_loss | 1 | -1.49 | +| TON | 01-25 02:00 | 01-25 14:00 | trailing_stop | 12 | -0.60 | +| ARB | 01-25 14:00 | 01-25 16:00 | stop_loss | 2 | -1.49 | +| ETC | 01-25 03:00 | 01-25 16:00 | stop_loss | 13 | -1.49 | +| FIL | 01-25 14:00 | 01-25 16:00 | stop_loss | 2 | -1.49 | +| KAS | 01-25 15:00 | 01-25 16:00 | stop_loss | 1 | -1.49 | +| NEAR | 01-25 14:00 | 01-25 16:00 | stop_loss | 2 | -1.49 | +| SHIB | 01-25 08:00 | 01-25 16:00 | stop_loss | 8 | -1.49 | +| SUI | 01-25 15:00 | 01-25 16:00 | stop_loss | 1 | -1.49 | +| WIF | 01-25 03:00 | 01-25 16:00 | stop_loss | 13 | -1.49 | +| FET | 01-25 16:00 | 01-25 17:00 | stop_loss | 1 | -1.49 | +| SEI | 01-25 16:00 | 01-25 17:00 | stop_loss | 1 | -1.49 | +| TIA | 01-25 16:00 | 01-25 17:00 | stop_loss | 1 | -1.49 | +| WIF | 01-25 16:00 | 01-25 17:00 | stop_loss | 1 | -1.49 | +| APT | 01-25 16:00 | 01-25 18:00 | stop_loss | 2 | -1.49 | +| ARB | 01-25 16:00 | 01-25 18:00 | stop_loss | 2 | -1.49 | +| AVAX | 01-25 16:00 | 01-25 18:00 | stop_loss | 2 | -1.49 | +| BONK | 01-25 16:00 | 01-25 18:00 | stop_loss | 2 | -1.49 | +| ETC | 01-25 16:00 | 01-25 18:00 | stop_loss | 2 | -1.49 | +| FET | 01-25 17:00 | 01-25 18:00 | stop_loss | 1 | -1.49 | +| FIL | 01-25 16:00 | 01-25 18:00 | stop_loss | 2 | -1.49 | +| INJ | 01-25 16:00 | 01-25 18:00 | stop_loss | 2 | -1.49 | +| NEAR | 01-25 16:00 | 01-25 18:00 | stop_loss | 2 | -1.49 | +| OP | 01-25 16:00 | 01-25 18:00 | stop_loss | 2 | -1.49 | +| PEPE | 01-25 16:00 | 01-25 18:00 | stop_loss | 2 | -1.49 | +| RENDER | 01-25 16:00 | 01-25 18:00 | stop_loss | 2 | -1.49 | +| SEI | 01-25 17:00 | 01-25 18:00 | stop_loss | 1 | -1.49 | +| SHIB | 01-25 16:00 | 01-25 18:00 | stop_loss | 2 | -1.49 | +| SUI | 01-25 16:00 | 01-25 18:00 | stop_loss | 2 | -1.49 | +| TIA | 01-25 17:00 | 01-25 18:00 | stop_loss | 1 | -1.49 | +| UNI | 01-25 16:00 | 01-25 18:00 | stop_loss | 2 | -1.49 | +| WIF | 01-25 17:00 | 01-25 18:00 | stop_loss | 1 | -1.49 | +| APT | 01-25 18:00 | 01-25 19:00 | stop_loss | 1 | -1.49 | +| ARB | 01-25 18:00 | 01-25 19:00 | stop_loss | 1 | -1.49 | +| ATOM | 01-25 18:00 | 01-25 19:00 | stop_loss | 1 | -1.49 | +| AVAX | 01-25 18:00 | 01-25 19:00 | stop_loss | 1 | -1.49 | +| BONK | 01-25 18:00 | 01-25 19:00 | stop_loss | 1 | -1.49 | +| ETC | 01-25 18:00 | 01-25 19:00 | stop_loss | 1 | -1.49 | +| FET | 01-25 18:00 | 01-25 19:00 | stop_loss | 1 | -1.49 | +| FIL | 01-25 18:00 | 01-25 19:00 | stop_loss | 1 | -1.49 | +| INJ | 01-25 18:00 | 01-25 19:00 | stop_loss | 1 | -1.49 | +| KAS | 01-25 16:00 | 01-25 19:00 | stop_loss | 3 | -1.49 | +| NEAR | 01-25 18:00 | 01-25 19:00 | stop_loss | 1 | -1.49 | +| OP | 01-25 18:00 | 01-25 19:00 | stop_loss | 1 | -1.49 | +| PEPE | 01-25 18:00 | 01-25 19:00 | stop_loss | 1 | -1.49 | +| RENDER | 01-25 18:00 | 01-25 19:00 | stop_loss | 1 | -1.49 | +| SEI | 01-25 18:00 | 01-25 19:00 | stop_loss | 1 | -1.49 | +| SHIB | 01-25 18:00 | 01-25 19:00 | stop_loss | 1 | -1.49 | +| SUI | 01-25 18:00 | 01-25 19:00 | stop_loss | 1 | -1.49 | +| TIA | 01-25 18:00 | 01-25 19:00 | stop_loss | 1 | -1.49 | +| TON | 01-25 18:00 | 01-25 19:00 | stop_loss | 1 | -1.49 | +| TRX | 01-24 10:00 | 01-25 19:00 | trailing_stop | 33 | -0.53 | +| UNI | 01-25 18:00 | 01-25 19:00 | stop_loss | 1 | -1.49 | +| WIF | 01-25 18:00 | 01-25 19:00 | stop_loss | 1 | -1.49 | +| FIL | 01-25 19:00 | 01-25 20:00 | trailing_stop | 1 | -0.65 | +| LTC | 01-25 19:00 | 01-25 20:00 | stop_loss | 1 | -1.49 | +| WIF | 01-25 19:00 | 01-25 20:00 | trailing_stop | 1 | -0.11 | +| BONK | 01-25 19:00 | 01-25 21:00 | take_profit | 2 | +1.49 | +| FET | 01-25 19:00 | 01-25 21:00 | take_profit | 2 | +1.49 | +| OP | 01-25 19:00 | 01-25 21:00 | take_profit | 2 | +1.49 | +| PEPE | 01-25 19:00 | 01-25 21:00 | take_profit | 2 | +1.49 | +| RENDER | 01-25 19:00 | 01-25 21:00 | take_profit | 2 | +1.49 | +| SEI | 01-25 19:00 | 01-25 22:00 | take_profit | 3 | +1.49 | +| UNI | 01-25 19:00 | 01-25 22:00 | trailing_stop | 3 | -0.49 | +| APT | 01-25 19:00 | 01-25 23:00 | take_profit | 4 | +1.49 | +| ARB | 01-25 19:00 | 01-25 23:00 | take_profit | 4 | +1.49 | +| AVAX | 01-25 19:00 | 01-25 23:00 | trailing_stop | 4 | -0.04 | +| INJ | 01-25 19:00 | 01-25 23:00 | take_profit | 4 | +1.49 | +| KAS | 01-25 19:00 | 01-25 23:00 | take_profit | 4 | +1.49 | +| LTC | 01-25 20:00 | 01-25 23:00 | take_profit | 3 | +1.49 | +| NEAR | 01-25 19:00 | 01-25 23:00 | trailing_stop | 4 | -0.52 | +| SUI | 01-25 19:00 | 01-25 23:00 | trailing_stop | 4 | -0.07 | +| TIA | 01-25 19:00 | 01-25 23:00 | take_profit | 4 | +1.49 | +| SHIB | 01-25 19:00 | 01-26 00:00 | take_profit | 5 | +1.49 | +| TON | 01-25 19:00 | 01-26 00:00 | take_profit | 5 | +1.49 | +| ETC | 01-25 19:00 | 01-26 01:00 | take_profit | 6 | +1.49 | +| FIL | 01-25 20:00 | 01-26 01:00 | take_profit | 5 | +1.49 | +| UNI | 01-26 03:00 | 01-26 05:00 | stop_loss | 2 | -1.49 | +| ARB | 01-26 03:00 | 01-26 06:00 | trailing_stop | 3 | -0.24 | +| OP | 01-26 03:00 | 01-26 06:00 | take_profit | 3 | +1.49 | +| AVAX | 01-26 03:00 | 01-26 08:00 | take_profit | 5 | +1.49 | +| LTC | 01-26 03:00 | 01-26 08:00 | take_profit | 5 | +1.49 | +| RENDER | 01-26 03:00 | 01-26 08:00 | take_profit | 5 | +1.49 | +| KAS | 01-26 02:00 | 01-26 09:00 | trailing_stop | 7 | -0.22 | +| KAS | 01-26 20:00 | 01-26 21:00 | trailing_stop | 1 | -0.65 | +| FET | 01-26 20:00 | 01-27 06:00 | trailing_stop | 10 | -0.27 | +| ATOM | 01-26 20:00 | 01-27 09:00 | stop_loss | 13 | -1.49 | +| RENDER | 01-27 09:00 | 01-27 10:00 | stop_loss | 1 | -1.49 | +| FIL | 01-27 11:00 | 01-27 14:00 | stop_loss | 3 | -1.49 | +| INJ | 01-27 09:00 | 01-27 14:00 | stop_loss | 5 | -1.49 | +| FIL | 01-27 14:00 | 01-27 15:00 | trailing_stop | 1 | -0.43 | +| PEPE | 01-27 14:00 | 01-27 15:00 | trailing_stop | 1 | -0.30 | +| SUI | 01-27 14:00 | 01-27 15:00 | trailing_stop | 1 | -0.15 | +| TIA | 01-27 06:00 | 01-27 15:00 | trailing_stop | 9 | -0.60 | +| UNI | 01-27 09:00 | 01-27 15:00 | trailing_stop | 6 | -0.45 | +| AVAX | 01-27 13:00 | 01-27 16:00 | take_profit | 3 | +1.49 | +| KAS | 01-27 09:00 | 01-27 16:00 | take_profit | 7 | +1.49 | +| LTC | 01-27 12:00 | 01-27 16:00 | take_profit | 4 | +1.49 | +| RENDER | 01-27 10:00 | 01-27 16:00 | take_profit | 6 | +1.49 | +| SHIB | 01-27 09:00 | 01-27 16:00 | take_profit | 7 | +1.49 | +| WIF | 01-27 06:00 | 01-27 16:00 | take_profit | 10 | +1.49 | +| ETC | 01-27 07:00 | 01-27 17:00 | trailing_stop | 10 | -0.48 | +| BONK | 01-27 17:00 | 01-27 18:00 | take_profit | 1 | +1.49 | +| PEPE | 01-27 17:00 | 01-27 18:00 | take_profit | 1 | +1.49 | +| TRX | 01-27 07:00 | 01-28 09:00 | stop_loss | 26 | -1.49 | +| ARB | 01-28 15:00 | 01-28 17:00 | stop_loss | 2 | -1.49 | +| PEPE | 01-28 15:00 | 01-28 17:00 | trailing_stop | 2 | -0.50 | +| OP | 01-28 15:00 | 01-28 21:00 | take_profit | 6 | +1.49 | +| ETC | 01-28 15:00 | 01-29 00:00 | trailing_stop | 9 | -0.58 | +| ATOM | 01-29 00:00 | 01-29 02:00 | stop_loss | 2 | -1.49 | +| AVAX | 01-29 01:00 | 01-29 02:00 | stop_loss | 1 | -1.49 | +| BONK | 01-29 01:00 | 01-29 02:00 | stop_loss | 1 | -1.49 | +| LTC | 01-29 01:00 | 01-29 02:00 | stop_loss | 1 | -1.49 | +| PEPE | 01-29 00:00 | 01-29 02:00 | stop_loss | 2 | -1.49 | +| SUI | 01-29 01:00 | 01-29 02:00 | stop_loss | 1 | -1.49 | +| UNI | 01-29 01:00 | 01-29 02:00 | stop_loss | 1 | -1.49 | +| BONK | 01-29 02:00 | 01-29 04:00 | stop_loss | 2 | -1.49 | +| FIL | 01-29 02:00 | 01-29 04:00 | stop_loss | 2 | -1.49 | +| OP | 01-29 02:00 | 01-29 04:00 | stop_loss | 2 | -1.49 | +| RENDER | 01-29 02:00 | 01-29 04:00 | stop_loss | 2 | -1.49 | +| TIA | 01-29 02:00 | 01-29 04:00 | stop_loss | 2 | -1.49 | +| ATOM | 01-29 02:00 | 01-29 06:00 | confirmed_bearish_exit | 4 | -0.18 | +| UNI | 01-29 02:00 | 01-29 06:00 | confirmed_bearish_exit | 4 | +0.22 | +| KAS | 01-29 02:00 | 01-29 07:00 | take_profit | 5 | +1.49 | +| RENDER | 01-29 04:00 | 01-29 08:00 | stop_loss | 4 | -1.49 | +| WIF | 01-29 02:00 | 01-29 08:00 | stop_loss | 6 | -1.49 | +| ARB | 01-29 02:00 | 01-29 10:00 | stop_loss | 8 | -1.49 | +| INJ | 01-29 03:00 | 01-29 10:00 | stop_loss | 7 | -1.49 | +| LTC | 01-29 02:00 | 01-29 10:00 | stop_loss | 8 | -1.49 | +| OP | 01-29 04:00 | 01-29 10:00 | stop_loss | 6 | -1.49 | +| TON | 01-29 02:00 | 01-29 10:00 | stop_loss | 8 | -1.49 | +| AVAX | 01-29 02:00 | 01-29 11:00 | stop_loss | 9 | -1.49 | +| ETC | 01-29 02:00 | 01-29 11:00 | stop_loss | 9 | -1.49 | +| SHIB | 01-29 02:00 | 01-29 11:00 | stop_loss | 9 | -1.49 | +| SUI | 01-29 02:00 | 01-29 11:00 | stop_loss | 9 | -1.49 | +| PEPE | 01-29 02:00 | 01-29 12:00 | stop_loss | 10 | -1.49 | +| TON | 01-29 10:00 | 01-29 12:00 | stop_loss | 2 | -1.49 | +| BONK | 01-29 04:00 | 01-29 14:00 | stop_loss | 10 | -1.49 | +| SEI | 01-29 02:00 | 01-29 14:00 | stop_loss | 12 | -1.49 | +| TON | 01-29 12:00 | 01-29 14:00 | stop_loss | 2 | -1.49 | +| APT | 01-29 14:00 | 01-29 15:00 | stop_loss | 1 | -1.49 | +| ARB | 01-29 14:00 | 01-29 15:00 | stop_loss | 1 | -1.49 | +| AVAX | 01-29 14:00 | 01-29 15:00 | stop_loss | 1 | -1.49 | +| BONK | 01-29 14:00 | 01-29 15:00 | stop_loss | 1 | -1.49 | +| ETC | 01-29 14:00 | 01-29 15:00 | stop_loss | 1 | -1.49 | +| FET | 01-29 14:00 | 01-29 15:00 | stop_loss | 1 | -1.49 | +| FIL | 01-29 14:00 | 01-29 15:00 | stop_loss | 1 | -1.49 | +| INJ | 01-29 14:00 | 01-29 15:00 | stop_loss | 1 | -1.49 | +| LTC | 01-29 14:00 | 01-29 15:00 | stop_loss | 1 | -1.49 | +| SEI | 01-29 14:00 | 01-29 15:00 | stop_loss | 1 | -1.49 | +| SHIB | 01-29 14:00 | 01-29 15:00 | stop_loss | 1 | -1.49 | +| SUI | 01-29 14:00 | 01-29 15:00 | stop_loss | 1 | -1.49 | +| TON | 01-29 14:00 | 01-29 15:00 | stop_loss | 1 | -1.49 | +| TRX | 01-28 09:00 | 01-29 15:00 | trailing_stop | 30 | -0.55 | +| UNI | 01-29 14:00 | 01-29 15:00 | stop_loss | 1 | -1.49 | +| APT | 01-29 15:00 | 01-29 16:00 | stop_loss | 1 | -1.49 | +| ARB | 01-29 15:00 | 01-29 16:00 | stop_loss | 1 | -1.49 | +| ATOM | 01-29 15:00 | 01-29 16:00 | trailing_stop | 1 | -0.29 | +| BONK | 01-29 15:00 | 01-29 16:00 | stop_loss | 1 | -1.49 | +| ETC | 01-29 15:00 | 01-29 16:00 | stop_loss | 1 | -1.49 | +| INJ | 01-29 15:00 | 01-29 16:00 | trailing_stop | 1 | -0.54 | +| KAS | 01-29 15:00 | 01-29 16:00 | trailing_stop | 1 | -0.42 | +| NEAR | 01-29 15:00 | 01-29 16:00 | trailing_stop | 1 | -0.62 | +| OP | 01-29 15:00 | 01-29 16:00 | stop_loss | 1 | -1.49 | +| PEPE | 01-29 15:00 | 01-29 16:00 | stop_loss | 1 | -1.49 | +| SEI | 01-29 15:00 | 01-29 16:00 | stop_loss | 1 | -1.49 | +| SUI | 01-29 15:00 | 01-29 16:00 | trailing_stop | 1 | -0.03 | +| TIA | 01-29 15:00 | 01-29 16:00 | stop_loss | 1 | -1.49 | +| UNI | 01-29 15:00 | 01-29 16:00 | stop_loss | 1 | -1.49 | +| SHIB | 01-29 15:00 | 01-29 17:00 | take_profit | 2 | +1.49 | +| TON | 01-29 15:00 | 01-29 17:00 | take_profit | 2 | +1.49 | +| APT | 01-29 17:00 | 01-29 18:00 | stop_loss | 1 | -1.49 | +| AVAX | 01-29 15:00 | 01-29 18:00 | stop_loss | 3 | -1.49 | +| LTC | 01-29 15:00 | 01-29 18:00 | stop_loss | 3 | -1.49 | +| NEAR | 01-29 17:00 | 01-29 18:00 | stop_loss | 1 | -1.49 | +| OP | 01-29 17:00 | 01-29 18:00 | stop_loss | 1 | -1.49 | +| SEI | 01-29 16:00 | 01-29 18:00 | stop_loss | 2 | -1.49 | +| UNI | 01-29 16:00 | 01-29 18:00 | stop_loss | 2 | -1.49 | +| APT | 01-29 18:00 | 01-29 19:00 | take_profit | 1 | +1.49 | +| ARB | 01-29 18:00 | 01-29 19:00 | trailing_stop | 1 | -0.68 | +| ATOM | 01-29 18:00 | 01-29 19:00 | trailing_stop | 1 | -0.32 | +| AVAX | 01-29 18:00 | 01-29 19:00 | trailing_stop | 1 | -0.15 | +| FIL | 01-29 18:00 | 01-29 19:00 | trailing_stop | 1 | -0.25 | +| INJ | 01-29 18:00 | 01-29 19:00 | trailing_stop | 1 | -0.20 | +| NEAR | 01-29 18:00 | 01-29 19:00 | trailing_stop | 1 | -0.52 | +| OP | 01-29 18:00 | 01-29 19:00 | trailing_stop | 1 | -0.68 | +| PEPE | 01-29 18:00 | 01-29 19:00 | trailing_stop | 1 | -0.63 | +| SUI | 01-29 18:00 | 01-29 19:00 | trailing_stop | 1 | -0.55 | +| TIA | 01-29 18:00 | 01-29 19:00 | take_profit | 1 | +1.49 | +| WIF | 01-29 18:00 | 01-29 19:00 | trailing_stop | 1 | -0.67 | +| BONK | 01-29 18:00 | 01-29 20:00 | take_profit | 2 | +1.49 | +| LTC | 01-29 18:00 | 01-29 20:00 | take_profit | 2 | +1.49 | +| SHIB | 01-29 18:00 | 01-29 20:00 | take_profit | 2 | +1.49 | +| UNI | 01-29 18:00 | 01-29 20:00 | trailing_stop | 2 | -0.37 | +| ETC | 01-29 18:00 | 01-29 21:00 | take_profit | 3 | +1.49 | +| FET | 01-29 22:00 | 01-30 00:00 | stop_loss | 2 | -1.49 | +| TON | 01-29 22:00 | 01-30 00:00 | stop_loss | 2 | -1.49 | +| ARB | 01-29 22:00 | 01-30 01:00 | stop_loss | 3 | -1.49 | +| AVAX | 01-29 23:00 | 01-30 01:00 | stop_loss | 2 | -1.49 | +| ETC | 01-29 23:00 | 01-30 01:00 | stop_loss | 2 | -1.49 | +| FET | 01-30 00:00 | 01-30 01:00 | stop_loss | 1 | -1.49 | +| NEAR | 01-29 23:00 | 01-30 01:00 | stop_loss | 2 | -1.49 | +| OP | 01-29 23:00 | 01-30 01:00 | stop_loss | 2 | -1.49 | +| SEI | 01-29 18:00 | 01-30 01:00 | stop_loss | 7 | -1.49 | +| SHIB | 01-29 22:00 | 01-30 01:00 | stop_loss | 3 | -1.49 | +| TIA | 01-30 00:00 | 01-30 01:00 | stop_loss | 1 | -1.49 | +| TON | 01-30 00:00 | 01-30 01:00 | stop_loss | 1 | -1.49 | +| APT | 01-30 01:00 | 01-30 02:00 | stop_loss | 1 | -1.49 | +| ARB | 01-30 01:00 | 01-30 02:00 | stop_loss | 1 | -1.49 | +| AVAX | 01-30 01:00 | 01-30 02:00 | stop_loss | 1 | -1.49 | +| ETC | 01-30 01:00 | 01-30 02:00 | stop_loss | 1 | -1.49 | +| LTC | 01-30 01:00 | 01-30 02:00 | stop_loss | 1 | -1.49 | +| OP | 01-30 01:00 | 01-30 02:00 | stop_loss | 1 | -1.49 | +| SHIB | 01-30 01:00 | 01-30 02:00 | stop_loss | 1 | -1.49 | +| APT | 01-30 02:00 | 01-30 06:00 | stop_loss | 4 | -1.49 | +| OP | 01-30 02:00 | 01-30 06:00 | stop_loss | 4 | -1.49 | +| RENDER | 01-30 02:00 | 01-30 06:00 | stop_loss | 4 | -1.49 | +| PEPE | 01-30 06:00 | 01-30 07:00 | trailing_stop | 1 | +0.04 | +| TRX | 01-29 15:00 | 01-30 10:00 | stop_loss | 19 | -1.49 | +| RENDER | 01-30 10:00 | 01-30 11:00 | take_profit | 1 | +1.49 | +| RENDER | 01-30 12:00 | 01-30 13:00 | stop_loss | 1 | -1.49 | +| BONK | 01-30 13:00 | 01-30 14:00 | take_profit | 1 | +1.49 | +| RENDER | 01-30 13:00 | 01-30 14:00 | stop_loss | 1 | -1.49 | +| APT | 01-30 13:00 | 01-30 15:00 | take_profit | 2 | +1.49 | +| INJ | 01-30 12:00 | 01-30 15:00 | stop_loss | 3 | -1.49 | +| NEAR | 01-30 12:00 | 01-30 15:00 | stop_loss | 3 | -1.49 | +| LTC | 01-30 13:00 | 01-30 17:00 | take_profit | 4 | +1.49 | +| TIA | 01-31 01:00 | 01-31 04:00 | stop_loss | 3 | -1.49 | +| SHIB | 01-31 01:00 | 01-31 05:00 | stop_loss | 4 | -1.49 | +| KAS | 01-31 05:00 | 01-31 06:00 | stop_loss | 1 | -1.49 | +| ATOM | 01-31 06:00 | 01-31 07:00 | stop_loss | 1 | -1.49 | +| AVAX | 01-31 06:00 | 01-31 07:00 | stop_loss | 1 | -1.49 | +| ETC | 01-31 06:00 | 01-31 07:00 | stop_loss | 1 | -1.49 | +| PEPE | 01-31 06:00 | 01-31 07:00 | stop_loss | 1 | -1.49 | +| APT | 01-31 07:00 | 01-31 08:00 | stop_loss | 1 | -1.49 | +| ATOM | 01-31 07:00 | 01-31 08:00 | stop_loss | 1 | -1.49 | +| AVAX | 01-31 07:00 | 01-31 08:00 | stop_loss | 1 | -1.49 | +| BONK | 01-31 07:00 | 01-31 08:00 | stop_loss | 1 | -1.49 | +| ETC | 01-31 07:00 | 01-31 08:00 | stop_loss | 1 | -1.49 | +| KAS | 01-31 06:00 | 01-31 08:00 | stop_loss | 2 | -1.49 | +| LTC | 01-31 07:00 | 01-31 08:00 | stop_loss | 1 | -1.49 | +| OP | 01-31 07:00 | 01-31 08:00 | stop_loss | 1 | -1.49 | +| PEPE | 01-31 07:00 | 01-31 08:00 | stop_loss | 1 | -1.49 | +| SUI | 01-31 07:00 | 01-31 08:00 | stop_loss | 1 | -1.49 | +| TIA | 01-31 06:00 | 01-31 08:00 | stop_loss | 2 | -1.49 | +| TRX | 01-30 14:00 | 01-31 08:00 | trailing_stop | 18 | -0.41 | +| UNI | 01-31 07:00 | 01-31 08:00 | stop_loss | 1 | -1.49 | +| APT | 01-31 08:00 | 01-31 09:00 | stop_loss | 1 | -1.49 | +| KAS | 01-31 08:00 | 01-31 09:00 | stop_loss | 1 | -1.49 | +| FIL | 01-31 08:00 | 01-31 10:00 | stop_loss | 2 | -1.49 | +| APT | 01-31 09:00 | 01-31 11:00 | stop_loss | 2 | -1.49 | +| INJ | 01-31 08:00 | 01-31 11:00 | stop_loss | 3 | -1.49 | +| KAS | 01-31 09:00 | 01-31 11:00 | stop_loss | 2 | -1.49 | +| NEAR | 01-31 08:00 | 01-31 11:00 | stop_loss | 3 | -1.49 | +| RENDER | 01-31 08:00 | 01-31 11:00 | stop_loss | 3 | -1.49 | +| ARB | 01-31 08:00 | 01-31 12:00 | stop_loss | 4 | -1.49 | +| OP | 01-31 08:00 | 01-31 12:00 | stop_loss | 4 | -1.49 | +| RENDER | 01-31 11:00 | 01-31 12:00 | stop_loss | 1 | -1.49 | +| TIA | 01-31 08:00 | 01-31 12:00 | stop_loss | 4 | -1.49 | +| UNI | 01-31 08:00 | 01-31 12:00 | stop_loss | 4 | -1.49 | +| WIF | 01-31 08:00 | 01-31 12:00 | stop_loss | 4 | -1.49 | +| APT | 01-31 11:00 | 01-31 13:00 | stop_loss | 2 | -1.49 | +| ARB | 01-31 12:00 | 01-31 13:00 | stop_loss | 1 | -1.49 | +| AVAX | 01-31 08:00 | 01-31 13:00 | stop_loss | 5 | -1.49 | +| BONK | 01-31 08:00 | 01-31 13:00 | stop_loss | 5 | -1.49 | +| ETC | 01-31 08:00 | 01-31 13:00 | stop_loss | 5 | -1.49 | +| FIL | 01-31 10:00 | 01-31 13:00 | stop_loss | 3 | -1.49 | +| INJ | 01-31 11:00 | 01-31 13:00 | stop_loss | 2 | -1.49 | +| LTC | 01-31 08:00 | 01-31 13:00 | stop_loss | 5 | -1.49 | +| PEPE | 01-31 08:00 | 01-31 13:00 | stop_loss | 5 | -1.49 | +| RENDER | 01-31 12:00 | 01-31 13:00 | stop_loss | 1 | -1.49 | +| SHIB | 01-31 08:00 | 01-31 13:00 | stop_loss | 5 | -1.49 | +| UNI | 01-31 12:00 | 01-31 13:00 | stop_loss | 1 | -1.49 | +| ARB | 01-31 13:00 | 01-31 14:00 | stop_loss | 1 | -1.49 | +| ATOM | 01-31 08:00 | 01-31 14:00 | stop_loss | 6 | -1.49 | +| BONK | 01-31 13:00 | 01-31 14:00 | stop_loss | 1 | -1.49 | +| FET | 01-31 08:00 | 01-31 14:00 | stop_loss | 6 | -1.49 | +| FIL | 01-31 13:00 | 01-31 14:00 | stop_loss | 1 | -1.49 | +| INJ | 01-31 13:00 | 01-31 14:00 | stop_loss | 1 | -1.49 | +| KAS | 01-31 11:00 | 01-31 14:00 | stop_loss | 3 | -1.49 | +| NEAR | 01-31 11:00 | 01-31 14:00 | stop_loss | 3 | -1.49 | +| RENDER | 01-31 13:00 | 01-31 14:00 | stop_loss | 1 | -1.49 | +| SEI | 01-31 08:00 | 01-31 14:00 | stop_loss | 6 | -1.49 | +| SUI | 01-31 08:00 | 01-31 14:00 | stop_loss | 6 | -1.49 | +| TRX | 01-31 08:00 | 01-31 14:00 | stop_loss | 6 | -1.49 | +| UNI | 01-31 13:00 | 01-31 14:00 | stop_loss | 1 | -1.49 | +| WIF | 01-31 13:00 | 01-31 14:00 | stop_loss | 1 | -1.49 | +| RENDER | 01-31 14:00 | 01-31 15:00 | stop_loss | 1 | -1.49 | +| TIA | 01-31 14:00 | 01-31 15:00 | take_profit | 1 | +1.49 | +| WIF | 01-31 14:00 | 01-31 15:00 | stop_loss | 1 | -1.49 | +| APT | 01-31 14:00 | 01-31 16:00 | stop_loss | 2 | -1.49 | +| ATOM | 01-31 14:00 | 01-31 16:00 | take_profit | 2 | +1.49 | +| BONK | 01-31 14:00 | 01-31 16:00 | stop_loss | 2 | -1.49 | +| FET | 01-31 14:00 | 01-31 16:00 | stop_loss | 2 | -1.49 | +| FIL | 01-31 14:00 | 01-31 16:00 | stop_loss | 2 | -1.49 | +| INJ | 01-31 14:00 | 01-31 16:00 | stop_loss | 2 | -1.49 | +| LTC | 01-31 14:00 | 01-31 16:00 | stop_loss | 2 | -1.49 | +| NEAR | 01-31 14:00 | 01-31 16:00 | take_profit | 2 | +1.49 | +| OP | 01-31 14:00 | 01-31 16:00 | stop_loss | 2 | -1.49 | +| RENDER | 01-31 15:00 | 01-31 16:00 | stop_loss | 1 | -1.49 | +| SEI | 01-31 14:00 | 01-31 16:00 | stop_loss | 2 | -1.49 | +| SHIB | 01-31 14:00 | 01-31 16:00 | stop_loss | 2 | -1.49 | +| SUI | 01-31 14:00 | 01-31 16:00 | stop_loss | 2 | -1.49 | +| TON | 01-31 14:00 | 01-31 16:00 | stop_loss | 2 | -1.49 | +| UNI | 01-31 14:00 | 01-31 16:00 | take_profit | 2 | +1.49 | +| WIF | 01-31 15:00 | 01-31 16:00 | stop_loss | 1 | -1.49 | +| APT | 01-31 16:00 | 01-31 17:00 | stop_loss | 1 | -1.49 | +| ARB | 01-31 14:00 | 01-31 17:00 | stop_loss | 3 | -1.49 | +| ATOM | 01-31 16:00 | 01-31 17:00 | stop_loss | 1 | -1.49 | +| AVAX | 01-31 14:00 | 01-31 17:00 | stop_loss | 3 | -1.49 | +| BONK | 01-31 16:00 | 01-31 17:00 | stop_loss | 1 | -1.49 | +| ETC | 01-31 14:00 | 01-31 17:00 | stop_loss | 3 | -1.49 | +| FET | 01-31 16:00 | 01-31 17:00 | stop_loss | 1 | -1.49 | +| FIL | 01-31 16:00 | 01-31 17:00 | stop_loss | 1 | -1.49 | +| INJ | 01-31 16:00 | 01-31 17:00 | stop_loss | 1 | -1.49 | +| KAS | 01-31 14:00 | 01-31 17:00 | stop_loss | 3 | -1.49 | +| LTC | 01-31 16:00 | 01-31 17:00 | stop_loss | 1 | -1.49 | +| NEAR | 01-31 16:00 | 01-31 17:00 | stop_loss | 1 | -1.49 | +| OP | 01-31 16:00 | 01-31 17:00 | stop_loss | 1 | -1.49 | +| PEPE | 01-31 14:00 | 01-31 17:00 | stop_loss | 3 | -1.49 | +| RENDER | 01-31 16:00 | 01-31 17:00 | stop_loss | 1 | -1.49 | +| SEI | 01-31 16:00 | 01-31 17:00 | stop_loss | 1 | -1.49 | +| SHIB | 01-31 16:00 | 01-31 17:00 | stop_loss | 1 | -1.49 | +| SUI | 01-31 16:00 | 01-31 17:00 | stop_loss | 1 | -1.49 | +| TIA | 01-31 15:00 | 01-31 17:00 | stop_loss | 2 | -1.49 | +| TON | 01-31 16:00 | 01-31 17:00 | stop_loss | 1 | -1.49 | +| UNI | 01-31 16:00 | 01-31 17:00 | stop_loss | 1 | -1.49 | +| WIF | 01-31 16:00 | 01-31 17:00 | stop_loss | 1 | -1.49 | +| APT | 01-31 17:00 | 01-31 18:00 | stop_loss | 1 | -1.49 | +| ARB | 01-31 17:00 | 01-31 18:00 | stop_loss | 1 | -1.49 | +| ATOM | 01-31 17:00 | 01-31 18:00 | stop_loss | 1 | -1.49 | +| AVAX | 01-31 17:00 | 01-31 18:00 | stop_loss | 1 | -1.49 | +| BONK | 01-31 17:00 | 01-31 18:00 | stop_loss | 1 | -1.49 | +| ETC | 01-31 17:00 | 01-31 18:00 | stop_loss | 1 | -1.49 | +| FET | 01-31 17:00 | 01-31 18:00 | stop_loss | 1 | -1.49 | +| FIL | 01-31 17:00 | 01-31 18:00 | stop_loss | 1 | -1.49 | +| INJ | 01-31 17:00 | 01-31 18:00 | stop_loss | 1 | -1.49 | +| KAS | 01-31 17:00 | 01-31 18:00 | stop_loss | 1 | -1.49 | +| LTC | 01-31 17:00 | 01-31 18:00 | stop_loss | 1 | -1.49 | +| NEAR | 01-31 17:00 | 01-31 18:00 | stop_loss | 1 | -1.49 | +| OP | 01-31 17:00 | 01-31 18:00 | stop_loss | 1 | -1.49 | +| PEPE | 01-31 17:00 | 01-31 18:00 | stop_loss | 1 | -1.49 | +| RENDER | 01-31 17:00 | 01-31 18:00 | stop_loss | 1 | -1.49 | +| SEI | 01-31 17:00 | 01-31 18:00 | stop_loss | 1 | -1.49 | +| SHIB | 01-31 17:00 | 01-31 18:00 | stop_loss | 1 | -1.49 | +| SUI | 01-31 17:00 | 01-31 18:00 | stop_loss | 1 | -1.49 | +| TIA | 01-31 17:00 | 01-31 18:00 | stop_loss | 1 | -1.49 | +| TON | 01-31 17:00 | 01-31 18:00 | stop_loss | 1 | -1.49 | +| TRX | 01-31 14:00 | 01-31 18:00 | stop_loss | 4 | -1.49 | +| UNI | 01-31 17:00 | 01-31 18:00 | stop_loss | 1 | -1.49 | +| WIF | 01-31 17:00 | 01-31 18:00 | stop_loss | 1 | -1.49 | +| APT | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| ARB | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| FET | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| INJ | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| NEAR | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| OP | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| PEPE | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| RENDER | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| SEI | 01-31 18:00 | 01-31 19:00 | trailing_stop | 1 | -0.40 | +| SHIB | 01-31 18:00 | 01-31 19:00 | trailing_stop | 1 | -0.48 | +| SUI | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| TIA | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| TON | 01-31 18:00 | 01-31 19:00 | trailing_stop | 1 | -0.48 | +| UNI | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| WIF | 01-31 18:00 | 01-31 19:00 | take_profit | 1 | +1.49 | +| ATOM | 01-31 18:00 | 01-31 20:00 | trailing_stop | 2 | -0.40 | +| KAS | 01-31 18:00 | 01-31 20:00 | take_profit | 2 | +1.49 | +| AVAX | 01-31 18:00 | 01-31 21:00 | take_profit | 3 | +1.49 | +| BONK | 01-31 18:00 | 01-31 21:00 | take_profit | 3 | +1.49 | +| ETC | 01-31 18:00 | 01-31 21:00 | trailing_stop | 3 | -0.55 | +| FIL | 01-31 18:00 | 01-31 21:00 | take_profit | 3 | +1.49 | +| LTC | 01-31 18:00 | 01-31 21:00 | take_profit | 3 | +1.49 | +| WIF | 01-31 19:00 | 01-31 21:00 | take_profit | 2 | +1.49 | +| OP | 01-31 22:00 | 01-31 23:00 | take_profit | 1 | +1.49 | +| RENDER | 01-31 23:00 | 02-01 00:00 | take_profit | 1 | +1.49 | +| APT | 01-31 23:00 | 02-01 01:00 | stop_loss | 2 | -1.49 | +| BONK | 02-01 00:00 | 02-01 01:00 | stop_loss | 1 | -1.49 | +| ETC | 02-01 00:00 | 02-01 01:00 | stop_loss | 1 | -1.49 | +| NEAR | 02-01 00:00 | 02-01 01:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-01 00:00 | 02-01 01:00 | stop_loss | 1 | -1.49 | +| TON | 01-31 23:00 | 02-01 01:00 | stop_loss | 2 | -1.49 | +| WIF | 02-01 00:00 | 02-01 01:00 | stop_loss | 1 | -1.49 | +| WIF | 02-01 01:00 | 02-01 02:00 | trailing_stop | 1 | -0.54 | +| SUI | 01-31 23:00 | 02-01 04:00 | stop_loss | 5 | -1.49 | +| BONK | 02-01 01:00 | 02-01 05:00 | stop_loss | 4 | -1.49 | +| INJ | 01-31 23:00 | 02-01 05:00 | take_profit | 6 | +1.49 | +| KAS | 01-31 23:00 | 02-01 05:00 | stop_loss | 6 | -1.49 | +| OP | 01-31 23:00 | 02-01 05:00 | take_profit | 6 | +1.49 | +| UNI | 01-31 23:00 | 02-01 05:00 | trailing_stop | 6 | -0.25 | +| WIF | 02-01 02:00 | 02-01 05:00 | stop_loss | 3 | -1.49 | +| NEAR | 02-01 01:00 | 02-01 06:00 | stop_loss | 5 | -1.49 | +| APT | 02-01 01:00 | 02-01 07:00 | take_profit | 6 | +1.49 | +| FET | 01-31 23:00 | 02-01 07:00 | take_profit | 8 | +1.49 | +| PEPE | 02-01 01:00 | 02-01 07:00 | take_profit | 6 | +1.49 | +| TON | 02-01 01:00 | 02-01 07:00 | take_profit | 6 | +1.49 | +| AVAX | 01-31 23:00 | 02-01 09:00 | confirmed_bearish_exit | 10 | +0.19 | +| FIL | 01-31 23:00 | 02-01 09:00 | trailing_stop | 10 | -0.20 | +| SEI | 01-31 23:00 | 02-01 09:00 | trailing_stop | 10 | -0.68 | +| ARB | 01-31 23:00 | 02-01 10:00 | stop_loss | 11 | -1.49 | +| ETC | 02-01 01:00 | 02-01 10:00 | trailing_stop | 9 | -0.38 | +| LTC | 01-31 23:00 | 02-01 10:00 | stop_loss | 11 | -1.49 | +| INJ | 02-01 14:00 | 02-01 15:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-01 14:00 | 02-01 15:00 | stop_loss | 1 | -1.49 | +| UNI | 02-01 14:00 | 02-01 15:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-01 15:00 | 02-01 16:00 | stop_loss | 1 | -1.49 | +| INJ | 02-01 15:00 | 02-01 16:00 | stop_loss | 1 | -1.49 | +| NEAR | 02-01 15:00 | 02-01 16:00 | stop_loss | 1 | -1.49 | +| SHIB | 02-01 15:00 | 02-01 16:00 | stop_loss | 1 | -1.49 | +| SUI | 02-01 15:00 | 02-01 16:00 | stop_loss | 1 | -1.49 | +| ATOM | 02-01 15:00 | 02-01 17:00 | stop_loss | 2 | -1.49 | +| ETC | 02-01 15:00 | 02-01 17:00 | stop_loss | 2 | -1.49 | +| FET | 02-01 16:00 | 02-01 17:00 | stop_loss | 1 | -1.49 | +| NEAR | 02-01 16:00 | 02-01 17:00 | stop_loss | 1 | -1.49 | +| TIA | 02-01 15:00 | 02-01 17:00 | stop_loss | 2 | -1.49 | +| WIF | 02-01 16:00 | 02-01 17:00 | stop_loss | 1 | -1.49 | +| APT | 02-01 16:00 | 02-01 18:00 | take_profit | 2 | +1.49 | +| ARB | 02-01 15:00 | 02-01 18:00 | take_profit | 3 | +1.49 | +| AVAX | 02-01 16:00 | 02-01 18:00 | take_profit | 2 | +1.49 | +| FET | 02-01 17:00 | 02-01 18:00 | take_profit | 1 | +1.49 | +| INJ | 02-01 16:00 | 02-01 18:00 | take_profit | 2 | +1.49 | +| LTC | 02-01 16:00 | 02-01 18:00 | take_profit | 2 | +1.49 | +| NEAR | 02-01 17:00 | 02-01 18:00 | take_profit | 1 | +1.49 | +| OP | 02-01 15:00 | 02-01 18:00 | take_profit | 3 | +1.49 | +| RENDER | 02-01 15:00 | 02-01 18:00 | take_profit | 3 | +1.49 | +| SHIB | 02-01 16:00 | 02-01 18:00 | take_profit | 2 | +1.49 | +| SUI | 02-01 16:00 | 02-01 18:00 | take_profit | 2 | +1.49 | +| TIA | 02-01 17:00 | 02-01 18:00 | take_profit | 1 | +1.49 | +| TON | 02-01 16:00 | 02-01 18:00 | take_profit | 2 | +1.49 | +| UNI | 02-01 15:00 | 02-01 18:00 | take_profit | 3 | +1.49 | +| WIF | 02-01 17:00 | 02-01 18:00 | take_profit | 1 | +1.49 | +| ATOM | 02-01 17:00 | 02-01 19:00 | trailing_stop | 2 | -0.66 | +| OP | 02-01 18:00 | 02-01 19:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-01 18:00 | 02-01 19:00 | stop_loss | 1 | -1.49 | +| TIA | 02-01 18:00 | 02-01 19:00 | stop_loss | 1 | -1.49 | +| INJ | 02-01 18:00 | 02-01 20:00 | stop_loss | 2 | -1.49 | +| ETC | 02-01 17:00 | 02-01 21:00 | stop_loss | 4 | -1.49 | +| FET | 02-01 19:00 | 02-01 21:00 | stop_loss | 2 | -1.49 | +| KAS | 02-01 15:00 | 02-01 21:00 | stop_loss | 6 | -1.49 | +| ETC | 02-01 21:00 | 02-01 22:00 | trailing_stop | 1 | -0.44 | +| ARB | 02-01 21:00 | 02-01 23:00 | stop_loss | 2 | -1.49 | +| FET | 02-01 21:00 | 02-01 23:00 | stop_loss | 2 | -1.49 | +| SEI | 02-01 15:00 | 02-01 23:00 | stop_loss | 8 | -1.49 | +| FET | 02-01 23:00 | 02-02 00:00 | stop_loss | 1 | -1.49 | +| ARB | 02-02 04:00 | 02-02 05:00 | stop_loss | 1 | -1.49 | +| ARB | 02-02 05:00 | 02-02 06:00 | stop_loss | 1 | -1.49 | +| KAS | 02-02 05:00 | 02-02 06:00 | stop_loss | 1 | -1.49 | +| TRX | 01-31 18:00 | 02-02 06:00 | stop_loss | 36 | -1.49 | +| OP | 02-03 02:00 | 02-03 03:00 | take_profit | 1 | +1.49 | +| UNI | 02-03 02:00 | 02-03 03:00 | take_profit | 1 | +1.49 | +| WIF | 02-03 05:00 | 02-03 06:00 | trailing_stop | 1 | -0.53 | +| OP | 02-03 05:00 | 02-03 09:00 | stop_loss | 4 | -1.49 | +| NEAR | 02-03 05:00 | 02-03 12:00 | trailing_stop | 7 | -0.54 | +| SHIB | 02-03 09:00 | 02-03 12:00 | trailing_stop | 3 | -0.39 | +| APT | 02-03 14:00 | 02-03 15:00 | take_profit | 1 | +1.49 | +| FET | 02-03 14:00 | 02-03 15:00 | take_profit | 1 | +1.49 | +| NEAR | 02-03 14:00 | 02-03 15:00 | take_profit | 1 | +1.49 | +| OP | 02-03 16:00 | 02-03 17:00 | stop_loss | 1 | -1.49 | +| ARB | 02-03 17:00 | 02-03 18:00 | stop_loss | 1 | -1.49 | +| ATOM | 02-03 17:00 | 02-03 18:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-03 17:00 | 02-03 18:00 | stop_loss | 1 | -1.49 | +| ETC | 02-03 17:00 | 02-03 18:00 | stop_loss | 1 | -1.49 | +| FET | 02-03 17:00 | 02-03 18:00 | stop_loss | 1 | -1.49 | +| KAS | 02-03 17:00 | 02-03 18:00 | stop_loss | 1 | -1.49 | +| NEAR | 02-03 17:00 | 02-03 18:00 | stop_loss | 1 | -1.49 | +| OP | 02-03 17:00 | 02-03 18:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-03 17:00 | 02-03 18:00 | stop_loss | 1 | -1.49 | +| SEI | 02-03 17:00 | 02-03 18:00 | stop_loss | 1 | -1.49 | +| APT | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| ARB | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| ATOM | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| AVAX | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| BONK | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| ETC | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| FET | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| FIL | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| INJ | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| KAS | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| LTC | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| NEAR | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| OP | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| RENDER | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| SEI | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| SHIB | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| SUI | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| TIA | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| UNI | 02-03 18:00 | 02-03 19:00 | take_profit | 1 | +1.49 | +| OP | 02-03 22:00 | 02-03 23:00 | stop_loss | 1 | -1.49 | +| OP | 02-03 23:00 | 02-04 00:00 | trailing_stop | 1 | -0.49 | +| INJ | 02-04 10:00 | 02-04 11:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-04 10:00 | 02-04 11:00 | stop_loss | 1 | -1.49 | +| SEI | 02-04 10:00 | 02-04 11:00 | stop_loss | 1 | -1.49 | +| UNI | 02-04 10:00 | 02-04 11:00 | stop_loss | 1 | -1.49 | +| WIF | 02-04 10:00 | 02-04 11:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-04 11:00 | 02-04 12:00 | stop_loss | 1 | -1.49 | +| TON | 02-04 10:00 | 02-04 13:00 | stop_loss | 3 | -1.49 | +| TRX | 02-02 09:00 | 02-04 14:00 | trailing_stop | 53 | -0.38 | +| APT | 02-04 14:00 | 02-04 15:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-04 14:00 | 02-04 15:00 | stop_loss | 1 | -1.49 | +| BONK | 02-04 14:00 | 02-04 15:00 | stop_loss | 1 | -1.49 | +| ETC | 02-04 14:00 | 02-04 15:00 | stop_loss | 1 | -1.49 | +| FET | 02-04 14:00 | 02-04 15:00 | take_profit | 1 | +1.49 | +| FIL | 02-04 14:00 | 02-04 15:00 | stop_loss | 1 | -1.49 | +| INJ | 02-04 14:00 | 02-04 15:00 | stop_loss | 1 | -1.49 | +| LTC | 02-04 14:00 | 02-04 15:00 | stop_loss | 1 | -1.49 | +| NEAR | 02-04 14:00 | 02-04 15:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-04 14:00 | 02-04 15:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-04 14:00 | 02-04 15:00 | stop_loss | 1 | -1.49 | +| TIA | 02-04 14:00 | 02-04 15:00 | stop_loss | 1 | -1.49 | +| UNI | 02-04 14:00 | 02-04 15:00 | stop_loss | 1 | -1.49 | +| APT | 02-04 15:00 | 02-04 16:00 | stop_loss | 1 | -1.49 | +| ATOM | 02-04 15:00 | 02-04 16:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-04 15:00 | 02-04 16:00 | stop_loss | 1 | -1.49 | +| BONK | 02-04 15:00 | 02-04 16:00 | stop_loss | 1 | -1.49 | +| ETC | 02-04 15:00 | 02-04 16:00 | stop_loss | 1 | -1.49 | +| FET | 02-04 15:00 | 02-04 16:00 | stop_loss | 1 | -1.49 | +| FIL | 02-04 15:00 | 02-04 16:00 | stop_loss | 1 | -1.49 | +| INJ | 02-04 15:00 | 02-04 16:00 | stop_loss | 1 | -1.49 | +| KAS | 02-04 14:00 | 02-04 16:00 | stop_loss | 2 | -1.49 | +| LTC | 02-04 15:00 | 02-04 16:00 | stop_loss | 1 | -1.49 | +| NEAR | 02-04 15:00 | 02-04 16:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-04 15:00 | 02-04 16:00 | stop_loss | 1 | -1.49 | +| SEI | 02-04 15:00 | 02-04 16:00 | stop_loss | 1 | -1.49 | +| SHIB | 02-04 15:00 | 02-04 16:00 | stop_loss | 1 | -1.49 | +| SUI | 02-04 15:00 | 02-04 16:00 | stop_loss | 1 | -1.49 | +| TIA | 02-04 15:00 | 02-04 16:00 | stop_loss | 1 | -1.49 | +| TON | 02-04 15:00 | 02-04 16:00 | stop_loss | 1 | -1.49 | +| UNI | 02-04 15:00 | 02-04 16:00 | stop_loss | 1 | -1.49 | +| APT | 02-04 16:00 | 02-04 17:00 | stop_loss | 1 | -1.49 | +| ATOM | 02-04 16:00 | 02-04 17:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-04 16:00 | 02-04 17:00 | stop_loss | 1 | -1.49 | +| BONK | 02-04 16:00 | 02-04 17:00 | stop_loss | 1 | -1.49 | +| ETC | 02-04 16:00 | 02-04 17:00 | stop_loss | 1 | -1.49 | +| FET | 02-04 16:00 | 02-04 17:00 | stop_loss | 1 | -1.49 | +| FIL | 02-04 16:00 | 02-04 17:00 | stop_loss | 1 | -1.49 | +| INJ | 02-04 16:00 | 02-04 17:00 | stop_loss | 1 | -1.49 | +| LTC | 02-04 16:00 | 02-04 17:00 | stop_loss | 1 | -1.49 | +| NEAR | 02-04 16:00 | 02-04 17:00 | stop_loss | 1 | -1.49 | +| SEI | 02-04 16:00 | 02-04 17:00 | stop_loss | 1 | -1.49 | +| SHIB | 02-04 16:00 | 02-04 17:00 | stop_loss | 1 | -1.49 | +| SUI | 02-04 16:00 | 02-04 17:00 | stop_loss | 1 | -1.49 | +| TIA | 02-04 16:00 | 02-04 17:00 | stop_loss | 1 | -1.49 | +| TON | 02-04 16:00 | 02-04 17:00 | take_profit | 1 | +1.49 | +| ATOM | 02-04 17:00 | 02-04 18:00 | stop_loss | 1 | -1.49 | +| ETC | 02-04 17:00 | 02-04 18:00 | stop_loss | 1 | -1.49 | +| FET | 02-04 17:00 | 02-04 18:00 | stop_loss | 1 | -1.49 | +| FIL | 02-04 17:00 | 02-04 18:00 | stop_loss | 1 | -1.49 | +| LTC | 02-04 17:00 | 02-04 18:00 | stop_loss | 1 | -1.49 | +| SHIB | 02-04 17:00 | 02-04 18:00 | stop_loss | 1 | -1.49 | +| SUI | 02-04 17:00 | 02-04 18:00 | stop_loss | 1 | -1.49 | +| UNI | 02-04 16:00 | 02-04 18:00 | stop_loss | 2 | -1.49 | +| ARB | 02-04 18:00 | 02-04 19:00 | trailing_stop | 1 | -0.19 | +| ATOM | 02-04 18:00 | 02-04 19:00 | trailing_stop | 1 | -0.62 | +| APT | 02-04 20:00 | 02-04 21:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-04 20:00 | 02-04 21:00 | stop_loss | 1 | -1.49 | +| INJ | 02-04 20:00 | 02-04 21:00 | stop_loss | 1 | -1.49 | +| APT | 02-04 21:00 | 02-04 22:00 | stop_loss | 1 | -1.49 | +| ARB | 02-04 21:00 | 02-04 22:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-04 21:00 | 02-04 22:00 | stop_loss | 1 | -1.49 | +| BONK | 02-04 21:00 | 02-04 22:00 | stop_loss | 1 | -1.49 | +| ETC | 02-04 21:00 | 02-04 22:00 | stop_loss | 1 | -1.49 | +| FET | 02-04 21:00 | 02-04 22:00 | stop_loss | 1 | -1.49 | +| FIL | 02-04 21:00 | 02-04 22:00 | stop_loss | 1 | -1.49 | +| INJ | 02-04 21:00 | 02-04 22:00 | stop_loss | 1 | -1.49 | +| KAS | 02-04 21:00 | 02-04 22:00 | stop_loss | 1 | -1.49 | +| LTC | 02-04 21:00 | 02-04 22:00 | stop_loss | 1 | -1.49 | +| SEI | 02-04 21:00 | 02-04 22:00 | stop_loss | 1 | -1.49 | +| SUI | 02-04 21:00 | 02-04 22:00 | stop_loss | 1 | -1.49 | +| TIA | 02-04 21:00 | 02-04 22:00 | stop_loss | 1 | -1.49 | +| UNI | 02-04 21:00 | 02-04 22:00 | stop_loss | 1 | -1.49 | +| BONK | 02-04 22:00 | 02-04 23:00 | trailing_stop | 1 | -0.70 | +| OP | 02-04 22:00 | 02-04 23:00 | take_profit | 1 | +1.49 | +| TIA | 02-04 22:00 | 02-04 23:00 | trailing_stop | 1 | -0.55 | +| ARB | 02-04 22:00 | 02-05 02:00 | stop_loss | 4 | -1.49 | +| LTC | 02-04 22:00 | 02-05 02:00 | trailing_stop | 4 | -0.46 | +| RENDER | 02-04 22:00 | 02-05 02:00 | stop_loss | 4 | -1.49 | +| SEI | 02-04 22:00 | 02-05 02:00 | stop_loss | 4 | -1.49 | +| NEAR | 02-04 22:00 | 02-05 03:00 | stop_loss | 5 | -1.49 | +| TRX | 02-04 14:00 | 02-05 04:00 | stop_loss | 14 | -1.49 | +| SEI | 02-05 06:00 | 02-05 09:00 | take_profit | 3 | +1.49 | +| KAS | 02-05 09:00 | 02-05 10:00 | stop_loss | 1 | -1.49 | +| APT | 02-05 10:00 | 02-05 11:00 | stop_loss | 1 | -1.49 | +| ARB | 02-05 10:00 | 02-05 11:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-05 10:00 | 02-05 11:00 | stop_loss | 1 | -1.49 | +| BONK | 02-05 10:00 | 02-05 11:00 | stop_loss | 1 | -1.49 | +| ETC | 02-05 10:00 | 02-05 11:00 | stop_loss | 1 | -1.49 | +| FET | 02-05 10:00 | 02-05 11:00 | stop_loss | 1 | -1.49 | +| FIL | 02-05 10:00 | 02-05 11:00 | stop_loss | 1 | -1.49 | +| INJ | 02-05 10:00 | 02-05 11:00 | stop_loss | 1 | -1.49 | +| LTC | 02-05 10:00 | 02-05 11:00 | stop_loss | 1 | -1.49 | +| NEAR | 02-05 10:00 | 02-05 11:00 | stop_loss | 1 | -1.49 | +| OP | 02-05 10:00 | 02-05 11:00 | stop_loss | 1 | -1.49 | +| SEI | 02-05 10:00 | 02-05 11:00 | stop_loss | 1 | -1.49 | +| SHIB | 02-05 10:00 | 02-05 11:00 | stop_loss | 1 | -1.49 | +| SUI | 02-05 10:00 | 02-05 11:00 | stop_loss | 1 | -1.49 | +| TIA | 02-05 10:00 | 02-05 11:00 | stop_loss | 1 | -1.49 | +| UNI | 02-05 10:00 | 02-05 11:00 | stop_loss | 1 | -1.49 | +| WIF | 02-05 10:00 | 02-05 11:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-05 11:00 | 02-05 12:00 | stop_loss | 1 | -1.49 | +| BONK | 02-05 11:00 | 02-05 12:00 | stop_loss | 1 | -1.49 | +| ETC | 02-05 11:00 | 02-05 12:00 | stop_loss | 1 | -1.49 | +| FIL | 02-05 11:00 | 02-05 12:00 | stop_loss | 1 | -1.49 | +| INJ | 02-05 11:00 | 02-05 12:00 | stop_loss | 1 | -1.49 | +| LTC | 02-05 11:00 | 02-05 12:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-05 11:00 | 02-05 12:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-05 11:00 | 02-05 12:00 | stop_loss | 1 | -1.49 | +| SEI | 02-05 11:00 | 02-05 12:00 | stop_loss | 1 | -1.49 | +| SHIB | 02-05 11:00 | 02-05 12:00 | stop_loss | 1 | -1.49 | +| SUI | 02-05 11:00 | 02-05 12:00 | stop_loss | 1 | -1.49 | +| TIA | 02-05 11:00 | 02-05 12:00 | stop_loss | 1 | -1.49 | +| UNI | 02-05 11:00 | 02-05 12:00 | stop_loss | 1 | -1.49 | +| WIF | 02-05 11:00 | 02-05 12:00 | stop_loss | 1 | -1.49 | +| KAS | 02-05 12:00 | 02-05 13:00 | stop_loss | 1 | -1.49 | +| SUI | 02-05 12:00 | 02-05 13:00 | stop_loss | 1 | -1.49 | +| TIA | 02-05 12:00 | 02-05 13:00 | stop_loss | 1 | -1.49 | +| UNI | 02-05 12:00 | 02-05 13:00 | stop_loss | 1 | -1.49 | +| APT | 02-05 11:00 | 02-05 14:00 | take_profit | 3 | +1.49 | +| AVAX | 02-05 12:00 | 02-05 14:00 | take_profit | 2 | +1.49 | +| BONK | 02-05 13:00 | 02-05 14:00 | take_profit | 1 | +1.49 | +| FET | 02-05 11:00 | 02-05 14:00 | take_profit | 3 | +1.49 | +| FIL | 02-05 12:00 | 02-05 14:00 | take_profit | 2 | +1.49 | +| KAS | 02-05 13:00 | 02-05 14:00 | take_profit | 1 | +1.49 | +| LTC | 02-05 12:00 | 02-05 14:00 | take_profit | 2 | +1.49 | +| SUI | 02-05 13:00 | 02-05 14:00 | take_profit | 1 | +1.49 | +| TIA | 02-05 13:00 | 02-05 14:00 | take_profit | 1 | +1.49 | +| INJ | 02-05 12:00 | 02-05 15:00 | stop_loss | 3 | -1.49 | +| KAS | 02-05 14:00 | 02-05 15:00 | stop_loss | 1 | -1.49 | +| OP | 02-05 11:00 | 02-05 15:00 | stop_loss | 4 | -1.49 | +| TON | 02-05 08:00 | 02-05 15:00 | stop_loss | 7 | -1.49 | +| APT | 02-05 15:00 | 02-05 16:00 | take_profit | 1 | +1.49 | +| ARB | 02-05 15:00 | 02-05 16:00 | take_profit | 1 | +1.49 | +| ATOM | 02-05 15:00 | 02-05 16:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-05 15:00 | 02-05 16:00 | take_profit | 1 | +1.49 | +| BONK | 02-05 15:00 | 02-05 16:00 | take_profit | 1 | +1.49 | +| ETC | 02-05 15:00 | 02-05 16:00 | take_profit | 1 | +1.49 | +| FET | 02-05 15:00 | 02-05 16:00 | stop_loss | 1 | -1.49 | +| FIL | 02-05 15:00 | 02-05 16:00 | stop_loss | 1 | -1.49 | +| INJ | 02-05 15:00 | 02-05 16:00 | stop_loss | 1 | -1.49 | +| KAS | 02-05 15:00 | 02-05 16:00 | stop_loss | 1 | -1.49 | +| NEAR | 02-05 15:00 | 02-05 16:00 | take_profit | 1 | +1.49 | +| OP | 02-05 15:00 | 02-05 16:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-05 15:00 | 02-05 16:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-05 15:00 | 02-05 16:00 | stop_loss | 1 | -1.49 | +| SEI | 02-05 15:00 | 02-05 16:00 | take_profit | 1 | +1.49 | +| SUI | 02-05 15:00 | 02-05 16:00 | stop_loss | 1 | -1.49 | +| TIA | 02-05 15:00 | 02-05 16:00 | stop_loss | 1 | -1.49 | +| TON | 02-05 15:00 | 02-05 16:00 | stop_loss | 1 | -1.49 | +| UNI | 02-05 15:00 | 02-05 16:00 | take_profit | 1 | +1.49 | +| WIF | 02-05 15:00 | 02-05 16:00 | stop_loss | 1 | -1.49 | +| APT | 02-05 16:00 | 02-05 17:00 | stop_loss | 1 | -1.49 | +| ARB | 02-05 16:00 | 02-05 17:00 | stop_loss | 1 | -1.49 | +| BONK | 02-05 16:00 | 02-05 17:00 | stop_loss | 1 | -1.49 | +| ETC | 02-05 16:00 | 02-05 17:00 | stop_loss | 1 | -1.49 | +| FET | 02-05 16:00 | 02-05 17:00 | stop_loss | 1 | -1.49 | +| FIL | 02-05 16:00 | 02-05 17:00 | stop_loss | 1 | -1.49 | +| INJ | 02-05 16:00 | 02-05 17:00 | stop_loss | 1 | -1.49 | +| LTC | 02-05 15:00 | 02-05 17:00 | stop_loss | 2 | -1.49 | +| NEAR | 02-05 16:00 | 02-05 17:00 | stop_loss | 1 | -1.49 | +| OP | 02-05 16:00 | 02-05 17:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-05 16:00 | 02-05 17:00 | stop_loss | 1 | -1.49 | +| SHIB | 02-05 15:00 | 02-05 17:00 | stop_loss | 2 | -1.49 | +| TIA | 02-05 16:00 | 02-05 17:00 | stop_loss | 1 | -1.49 | +| TON | 02-05 16:00 | 02-05 17:00 | stop_loss | 1 | -1.49 | +| UNI | 02-05 16:00 | 02-05 17:00 | stop_loss | 1 | -1.49 | +| WIF | 02-05 16:00 | 02-05 17:00 | stop_loss | 1 | -1.49 | +| APT | 02-05 17:00 | 02-05 18:00 | stop_loss | 1 | -1.49 | +| ARB | 02-05 17:00 | 02-05 18:00 | stop_loss | 1 | -1.49 | +| ATOM | 02-05 17:00 | 02-05 18:00 | take_profit | 1 | +1.49 | +| AVAX | 02-05 17:00 | 02-05 18:00 | stop_loss | 1 | -1.49 | +| BONK | 02-05 17:00 | 02-05 18:00 | stop_loss | 1 | -1.49 | +| ETC | 02-05 17:00 | 02-05 18:00 | stop_loss | 1 | -1.49 | +| FET | 02-05 17:00 | 02-05 18:00 | stop_loss | 1 | -1.49 | +| FIL | 02-05 17:00 | 02-05 18:00 | stop_loss | 1 | -1.49 | +| INJ | 02-05 17:00 | 02-05 18:00 | stop_loss | 1 | -1.49 | +| KAS | 02-05 17:00 | 02-05 18:00 | stop_loss | 1 | -1.49 | +| LTC | 02-05 17:00 | 02-05 18:00 | stop_loss | 1 | -1.49 | +| NEAR | 02-05 17:00 | 02-05 18:00 | stop_loss | 1 | -1.49 | +| OP | 02-05 17:00 | 02-05 18:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-05 17:00 | 02-05 18:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-05 17:00 | 02-05 18:00 | stop_loss | 1 | -1.49 | +| SEI | 02-05 17:00 | 02-05 18:00 | stop_loss | 1 | -1.49 | +| SHIB | 02-05 17:00 | 02-05 18:00 | stop_loss | 1 | -1.49 | +| SUI | 02-05 17:00 | 02-05 18:00 | stop_loss | 1 | -1.49 | +| TIA | 02-05 17:00 | 02-05 18:00 | stop_loss | 1 | -1.49 | +| TON | 02-05 17:00 | 02-05 18:00 | trailing_stop | 1 | +0.01 | +| TRX | 02-05 12:00 | 02-05 18:00 | stop_loss | 6 | -1.49 | +| UNI | 02-05 17:00 | 02-05 18:00 | stop_loss | 1 | -1.49 | +| WIF | 02-05 17:00 | 02-05 18:00 | stop_loss | 1 | -1.49 | +| ARB | 02-05 18:00 | 02-05 19:00 | stop_loss | 1 | -1.49 | +| FET | 02-05 18:00 | 02-05 19:00 | stop_loss | 1 | -1.49 | +| NEAR | 02-05 18:00 | 02-05 19:00 | stop_loss | 1 | -1.49 | +| UNI | 02-05 18:00 | 02-05 19:00 | stop_loss | 1 | -1.49 | +| ARB | 02-05 19:00 | 02-05 20:00 | stop_loss | 1 | -1.49 | +| ATOM | 02-05 19:00 | 02-05 20:00 | stop_loss | 1 | -1.49 | +| BONK | 02-05 19:00 | 02-05 20:00 | stop_loss | 1 | -1.49 | +| FET | 02-05 19:00 | 02-05 20:00 | stop_loss | 1 | -1.49 | +| INJ | 02-05 19:00 | 02-05 20:00 | stop_loss | 1 | -1.49 | +| LTC | 02-05 19:00 | 02-05 20:00 | stop_loss | 1 | -1.49 | +| NEAR | 02-05 19:00 | 02-05 20:00 | stop_loss | 1 | -1.49 | +| UNI | 02-05 19:00 | 02-05 20:00 | stop_loss | 1 | -1.49 | +| APT | 02-05 20:00 | 02-05 21:00 | stop_loss | 1 | -1.49 | +| ARB | 02-05 20:00 | 02-05 21:00 | stop_loss | 1 | -1.49 | +| ATOM | 02-05 20:00 | 02-05 21:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-05 20:00 | 02-05 21:00 | stop_loss | 1 | -1.49 | +| BONK | 02-05 20:00 | 02-05 21:00 | stop_loss | 1 | -1.49 | +| ETC | 02-05 20:00 | 02-05 21:00 | stop_loss | 1 | -1.49 | +| FET | 02-05 20:00 | 02-05 21:00 | stop_loss | 1 | -1.49 | +| FIL | 02-05 20:00 | 02-05 21:00 | stop_loss | 1 | -1.49 | +| INJ | 02-05 20:00 | 02-05 21:00 | stop_loss | 1 | -1.49 | +| KAS | 02-05 20:00 | 02-05 21:00 | take_profit | 1 | +1.49 | +| LTC | 02-05 20:00 | 02-05 21:00 | take_profit | 1 | +1.49 | +| NEAR | 02-05 20:00 | 02-05 21:00 | stop_loss | 1 | -1.49 | +| OP | 02-05 20:00 | 02-05 21:00 | take_profit | 1 | +1.49 | +| RENDER | 02-05 20:00 | 02-05 21:00 | stop_loss | 1 | -1.49 | +| SEI | 02-05 20:00 | 02-05 21:00 | take_profit | 1 | +1.49 | +| SHIB | 02-05 20:00 | 02-05 21:00 | stop_loss | 1 | -1.49 | +| SUI | 02-05 20:00 | 02-05 21:00 | take_profit | 1 | +1.49 | +| TIA | 02-05 20:00 | 02-05 21:00 | stop_loss | 1 | -1.49 | +| TON | 02-05 20:00 | 02-05 21:00 | stop_loss | 1 | -1.49 | +| TRX | 02-05 18:00 | 02-05 21:00 | stop_loss | 3 | -1.49 | +| UNI | 02-05 20:00 | 02-05 21:00 | stop_loss | 1 | -1.49 | +| WIF | 02-05 20:00 | 02-05 21:00 | take_profit | 1 | +1.49 | +| ARB | 02-05 21:00 | 02-05 22:00 | stop_loss | 1 | -1.49 | +| ATOM | 02-05 21:00 | 02-05 22:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-05 21:00 | 02-05 22:00 | stop_loss | 1 | -1.49 | +| ETC | 02-05 21:00 | 02-05 22:00 | stop_loss | 1 | -1.49 | +| NEAR | 02-05 21:00 | 02-05 22:00 | stop_loss | 1 | -1.49 | +| TON | 02-05 21:00 | 02-05 22:00 | stop_loss | 1 | -1.49 | +| TON | 02-05 23:00 | 02-06 00:00 | stop_loss | 1 | -1.49 | +| TRX | 02-05 21:00 | 02-06 00:00 | stop_loss | 3 | -1.49 | +| APT | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| ARB | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| ATOM | 02-06 00:00 | 02-06 01:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| BONK | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| ETC | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| FET | 02-06 00:00 | 02-06 01:00 | stop_loss | 1 | -1.49 | +| FIL | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| INJ | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| KAS | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| LTC | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| NEAR | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| OP | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| PEPE | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| RENDER | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| SEI | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| SHIB | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| SUI | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| TIA | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| TON | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| UNI | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| WIF | 02-06 00:00 | 02-06 01:00 | take_profit | 1 | +1.49 | +| NEAR | 02-06 03:00 | 02-06 04:00 | trailing_stop | 1 | -0.46 | +| SHIB | 02-06 03:00 | 02-06 04:00 | trailing_stop | 1 | -0.66 | +| ARB | 02-06 04:00 | 02-06 05:00 | take_profit | 1 | +1.49 | +| INJ | 02-06 03:00 | 02-06 05:00 | take_profit | 2 | +1.49 | +| RENDER | 02-06 04:00 | 02-06 05:00 | take_profit | 1 | +1.49 | +| SHIB | 02-06 04:00 | 02-06 05:00 | take_profit | 1 | +1.49 | +| TIA | 02-06 03:00 | 02-06 05:00 | take_profit | 2 | +1.49 | +| WIF | 02-06 04:00 | 02-06 05:00 | take_profit | 1 | +1.49 | +| ARB | 02-06 06:00 | 02-06 07:00 | stop_loss | 1 | -1.49 | +| NEAR | 02-06 06:00 | 02-06 07:00 | stop_loss | 1 | -1.49 | +| ATOM | 02-06 08:00 | 02-06 09:00 | take_profit | 1 | +1.49 | +| INJ | 02-07 06:00 | 02-07 07:00 | stop_loss | 1 | -1.49 | +| LTC | 02-07 06:00 | 02-07 07:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-07 06:00 | 02-07 07:00 | stop_loss | 1 | -1.49 | +| WIF | 02-07 06:00 | 02-07 07:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-07 07:00 | 02-07 08:00 | trailing_stop | 1 | -0.66 | +| APT | 02-07 07:00 | 02-07 10:00 | stop_loss | 3 | -1.49 | +| FET | 02-07 07:00 | 02-07 10:00 | stop_loss | 3 | -1.49 | +| LTC | 02-07 07:00 | 02-07 10:00 | stop_loss | 3 | -1.49 | +| NEAR | 02-07 07:00 | 02-07 10:00 | stop_loss | 3 | -1.49 | +| RENDER | 02-07 08:00 | 02-07 10:00 | stop_loss | 2 | -1.49 | +| SEI | 02-07 07:00 | 02-07 10:00 | stop_loss | 3 | -1.49 | +| SHIB | 02-07 07:00 | 02-07 10:00 | stop_loss | 3 | -1.49 | +| WIF | 02-07 07:00 | 02-07 10:00 | confirmed_bearish_exit | 3 | +0.39 | +| TON | 02-07 09:00 | 02-07 11:00 | trailing_stop | 2 | -0.09 | +| APT | 02-07 10:00 | 02-07 12:00 | take_profit | 2 | +1.49 | +| ARB | 02-07 07:00 | 02-07 12:00 | take_profit | 5 | +1.49 | +| AVAX | 02-07 07:00 | 02-07 12:00 | take_profit | 5 | +1.49 | +| BONK | 02-07 07:00 | 02-07 12:00 | take_profit | 5 | +1.49 | +| ETC | 02-07 07:00 | 02-07 12:00 | take_profit | 5 | +1.49 | +| INJ | 02-07 07:00 | 02-07 12:00 | take_profit | 5 | +1.49 | +| KAS | 02-07 07:00 | 02-07 12:00 | take_profit | 5 | +1.49 | +| LTC | 02-07 10:00 | 02-07 12:00 | take_profit | 2 | +1.49 | +| NEAR | 02-07 10:00 | 02-07 12:00 | take_profit | 2 | +1.49 | +| OP | 02-07 07:00 | 02-07 12:00 | take_profit | 5 | +1.49 | +| PEPE | 02-07 07:00 | 02-07 12:00 | take_profit | 5 | +1.49 | +| SEI | 02-07 10:00 | 02-07 12:00 | take_profit | 2 | +1.49 | +| SHIB | 02-07 10:00 | 02-07 12:00 | take_profit | 2 | +1.49 | +| SUI | 02-07 07:00 | 02-07 12:00 | take_profit | 5 | +1.49 | +| TIA | 02-07 07:00 | 02-07 12:00 | take_profit | 5 | +1.49 | +| UNI | 02-07 07:00 | 02-07 12:00 | take_profit | 5 | +1.49 | +| RENDER | 02-07 14:00 | 02-07 15:00 | take_profit | 1 | +1.49 | +| TON | 02-08 02:00 | 02-08 07:00 | stop_loss | 5 | -1.49 | +| ARB | 02-08 06:00 | 02-08 08:00 | trailing_stop | 2 | -0.36 | +| FIL | 02-08 06:00 | 02-08 08:00 | trailing_stop | 2 | -0.26 | +| INJ | 02-08 06:00 | 02-08 08:00 | trailing_stop | 2 | -0.11 | +| NEAR | 02-08 06:00 | 02-08 08:00 | trailing_stop | 2 | -0.11 | +| OP | 02-08 05:00 | 02-08 08:00 | trailing_stop | 3 | -0.52 | +| UNI | 02-08 07:00 | 02-08 08:00 | trailing_stop | 1 | -0.40 | +| WIF | 02-08 06:00 | 02-08 08:00 | take_profit | 2 | +1.49 | +| ATOM | 02-08 06:00 | 02-08 09:00 | trailing_stop | 3 | -0.54 | +| FIL | 02-08 08:00 | 02-08 09:00 | stop_loss | 1 | -1.49 | +| OP | 02-08 08:00 | 02-08 09:00 | stop_loss | 1 | -1.49 | +| APT | 02-08 09:00 | 02-08 10:00 | stop_loss | 1 | -1.49 | +| INJ | 02-08 09:00 | 02-08 10:00 | stop_loss | 1 | -1.49 | +| BONK | 02-08 10:00 | 02-08 11:00 | trailing_stop | 1 | +0.02 | +| ETC | 02-08 10:00 | 02-08 11:00 | trailing_stop | 1 | -0.32 | +| NEAR | 02-08 09:00 | 02-08 11:00 | trailing_stop | 2 | -0.68 | +| PEPE | 02-08 10:00 | 02-08 11:00 | take_profit | 1 | +1.49 | +| SEI | 02-08 10:00 | 02-08 11:00 | trailing_stop | 1 | -0.28 | +| SHIB | 02-08 10:00 | 02-08 11:00 | trailing_stop | 1 | +0.06 | +| SUI | 02-08 10:00 | 02-08 11:00 | trailing_stop | 1 | -0.30 | +| TIA | 02-08 06:00 | 02-08 11:00 | trailing_stop | 5 | -0.56 | +| WIF | 02-08 10:00 | 02-08 11:00 | take_profit | 1 | +1.49 | +| FIL | 02-08 10:00 | 02-08 12:00 | trailing_stop | 2 | -0.66 | +| APT | 02-08 10:00 | 02-08 15:00 | stop_loss | 5 | -1.49 | +| FIL | 02-08 15:00 | 02-08 16:00 | stop_loss | 1 | -1.49 | +| FIL | 02-08 16:00 | 02-08 17:00 | trailing_stop | 1 | -0.31 | +| OP | 02-08 16:00 | 02-08 17:00 | trailing_stop | 1 | -0.38 | +| TIA | 02-08 16:00 | 02-08 17:00 | trailing_stop | 1 | -0.46 | +| APT | 02-08 16:00 | 02-08 18:00 | take_profit | 2 | +1.49 | +| ARB | 02-08 16:00 | 02-08 18:00 | take_profit | 2 | +1.49 | +| BONK | 02-08 16:00 | 02-08 18:00 | take_profit | 2 | +1.49 | +| INJ | 02-08 16:00 | 02-08 18:00 | take_profit | 2 | +1.49 | +| TIA | 02-09 01:00 | 02-09 06:00 | trailing_stop | 5 | -0.33 | +| ARB | 02-09 08:00 | 02-09 09:00 | stop_loss | 1 | -1.49 | +| SUI | 02-09 08:00 | 02-09 09:00 | stop_loss | 1 | -1.49 | +| TON | 02-09 07:00 | 02-09 09:00 | stop_loss | 2 | -1.49 | +| APT | 02-09 08:00 | 02-09 10:00 | stop_loss | 2 | -1.49 | +| ARB | 02-09 09:00 | 02-09 10:00 | stop_loss | 1 | -1.49 | +| ATOM | 02-09 09:00 | 02-09 10:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-09 08:00 | 02-09 10:00 | stop_loss | 2 | -1.49 | +| BONK | 02-09 08:00 | 02-09 10:00 | stop_loss | 2 | -1.49 | +| ETC | 02-09 08:00 | 02-09 10:00 | stop_loss | 2 | -1.49 | +| FET | 02-09 08:00 | 02-09 10:00 | stop_loss | 2 | -1.49 | +| FIL | 02-09 08:00 | 02-09 10:00 | stop_loss | 2 | -1.49 | +| INJ | 02-09 09:00 | 02-09 10:00 | stop_loss | 1 | -1.49 | +| KAS | 02-09 08:00 | 02-09 10:00 | stop_loss | 2 | -1.49 | +| LTC | 02-09 08:00 | 02-09 10:00 | stop_loss | 2 | -1.49 | +| NEAR | 02-09 08:00 | 02-09 10:00 | stop_loss | 2 | -1.49 | +| OP | 02-09 08:00 | 02-09 10:00 | stop_loss | 2 | -1.49 | +| PEPE | 02-09 09:00 | 02-09 10:00 | stop_loss | 1 | -1.49 | +| SEI | 02-09 08:00 | 02-09 10:00 | stop_loss | 2 | -1.49 | +| SHIB | 02-09 08:00 | 02-09 10:00 | stop_loss | 2 | -1.49 | +| SUI | 02-09 09:00 | 02-09 10:00 | stop_loss | 1 | -1.49 | +| TIA | 02-09 08:00 | 02-09 10:00 | stop_loss | 2 | -1.49 | +| TON | 02-09 09:00 | 02-09 10:00 | stop_loss | 1 | -1.49 | +| UNI | 02-09 08:00 | 02-09 10:00 | stop_loss | 2 | -1.49 | +| WIF | 02-09 08:00 | 02-09 10:00 | stop_loss | 2 | -1.49 | +| INJ | 02-09 10:00 | 02-09 12:00 | take_profit | 2 | +1.49 | +| ATOM | 02-09 10:00 | 02-09 13:00 | take_profit | 3 | +1.49 | +| LTC | 02-09 10:00 | 02-09 13:00 | take_profit | 3 | +1.49 | +| OP | 02-09 10:00 | 02-09 13:00 | trailing_stop | 3 | -0.56 | +| RENDER | 02-09 10:00 | 02-09 13:00 | trailing_stop | 3 | -0.33 | +| SUI | 02-09 10:00 | 02-09 13:00 | trailing_stop | 3 | -0.55 | +| APT | 02-09 10:00 | 02-09 14:00 | take_profit | 4 | +1.49 | +| ARB | 02-09 10:00 | 02-09 14:00 | stop_loss | 4 | -1.49 | +| AVAX | 02-09 10:00 | 02-09 14:00 | take_profit | 4 | +1.49 | +| BONK | 02-09 10:00 | 02-09 14:00 | take_profit | 4 | +1.49 | +| ETC | 02-09 10:00 | 02-09 14:00 | take_profit | 4 | +1.49 | +| FET | 02-09 10:00 | 02-09 14:00 | take_profit | 4 | +1.49 | +| FIL | 02-09 10:00 | 02-09 14:00 | trailing_stop | 4 | -0.16 | +| KAS | 02-09 10:00 | 02-09 14:00 | take_profit | 4 | +1.49 | +| NEAR | 02-09 10:00 | 02-09 14:00 | take_profit | 4 | +1.49 | +| PEPE | 02-09 10:00 | 02-09 14:00 | take_profit | 4 | +1.49 | +| SEI | 02-09 10:00 | 02-09 14:00 | trailing_stop | 4 | -0.09 | +| SHIB | 02-09 10:00 | 02-09 14:00 | take_profit | 4 | +1.49 | +| SUI | 02-09 13:00 | 02-09 14:00 | take_profit | 1 | +1.49 | +| TIA | 02-09 10:00 | 02-09 14:00 | take_profit | 4 | +1.49 | +| UNI | 02-09 10:00 | 02-09 14:00 | trailing_stop | 4 | -0.63 | +| WIF | 02-09 10:00 | 02-09 14:00 | take_profit | 4 | +1.49 | +| TON | 02-09 10:00 | 02-09 17:00 | take_profit | 7 | +1.49 | +| KAS | 02-09 17:00 | 02-09 18:00 | stop_loss | 1 | -1.49 | +| KAS | 02-09 18:00 | 02-09 21:00 | stop_loss | 3 | -1.49 | +| ATOM | 02-10 05:00 | 02-10 06:00 | stop_loss | 1 | -1.49 | +| APT | 02-10 06:00 | 02-10 11:00 | stop_loss | 5 | -1.49 | +| OP | 02-10 06:00 | 02-10 11:00 | trailing_stop | 5 | -0.61 | +| PEPE | 02-10 06:00 | 02-10 11:00 | stop_loss | 5 | -1.49 | +| RENDER | 02-10 06:00 | 02-10 11:00 | trailing_stop | 5 | -0.34 | +| WIF | 02-10 10:00 | 02-10 11:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-10 06:00 | 02-10 12:00 | trailing_stop | 6 | -0.69 | +| FIL | 02-10 09:00 | 02-10 12:00 | stop_loss | 3 | -1.49 | +| NEAR | 02-10 07:00 | 02-10 12:00 | stop_loss | 5 | -1.49 | +| SUI | 02-10 07:00 | 02-10 12:00 | stop_loss | 5 | -1.49 | +| UNI | 02-10 06:00 | 02-10 12:00 | trailing_stop | 6 | -0.63 | +| FET | 02-10 07:00 | 02-10 14:00 | stop_loss | 7 | -1.49 | +| WIF | 02-10 11:00 | 02-10 14:00 | stop_loss | 3 | -1.49 | +| ATOM | 02-10 06:00 | 02-10 15:00 | take_profit | 9 | +1.49 | +| SHIB | 02-10 06:00 | 02-10 15:00 | take_profit | 9 | +1.49 | +| BONK | 02-10 06:00 | 02-10 16:00 | stop_loss | 10 | -1.49 | +| ETC | 02-10 06:00 | 02-10 18:00 | stop_loss | 12 | -1.49 | +| INJ | 02-10 06:00 | 02-10 18:00 | stop_loss | 12 | -1.49 | +| LTC | 02-10 06:00 | 02-10 18:00 | trailing_stop | 12 | -0.56 | +| RENDER | 02-10 15:00 | 02-10 18:00 | stop_loss | 3 | -1.49 | +| SEI | 02-10 06:00 | 02-10 18:00 | stop_loss | 12 | -1.49 | +| TIA | 02-10 06:00 | 02-10 18:00 | stop_loss | 12 | -1.49 | +| FIL | 02-10 18:00 | 02-10 19:00 | stop_loss | 1 | -1.49 | +| TON | 02-10 11:00 | 02-10 19:00 | stop_loss | 8 | -1.49 | +| FIL | 02-11 00:00 | 02-11 02:00 | stop_loss | 2 | -1.49 | +| OP | 02-10 18:00 | 02-11 02:00 | take_profit | 8 | +1.49 | +| PEPE | 02-10 18:00 | 02-11 02:00 | take_profit | 8 | +1.49 | +| FET | 02-10 18:00 | 02-11 03:00 | trailing_stop | 9 | -0.05 | +| BONK | 02-11 03:00 | 02-11 04:00 | stop_loss | 1 | -1.49 | +| FIL | 02-11 02:00 | 02-11 04:00 | stop_loss | 2 | -1.49 | +| UNI | 02-10 18:00 | 02-11 04:00 | stop_loss | 10 | -1.49 | +| WIF | 02-10 21:00 | 02-11 05:00 | stop_loss | 8 | -1.49 | +| BONK | 02-11 04:00 | 02-11 06:00 | stop_loss | 2 | -1.49 | +| ETC | 02-11 04:00 | 02-11 06:00 | stop_loss | 2 | -1.49 | +| LTC | 02-11 05:00 | 02-11 06:00 | stop_loss | 1 | -1.49 | +| NEAR | 02-11 05:00 | 02-11 06:00 | stop_loss | 1 | -1.49 | +| OP | 02-11 05:00 | 02-11 06:00 | stop_loss | 1 | -1.49 | +| SHIB | 02-11 04:00 | 02-11 06:00 | stop_loss | 2 | -1.49 | +| SUI | 02-11 05:00 | 02-11 06:00 | stop_loss | 1 | -1.49 | +| TIA | 02-11 04:00 | 02-11 06:00 | stop_loss | 2 | -1.49 | +| TON | 02-11 05:00 | 02-11 06:00 | stop_loss | 1 | -1.49 | +| TRX | 02-09 02:00 | 02-11 06:00 | stop_loss | 52 | -1.49 | +| UNI | 02-11 05:00 | 02-11 06:00 | stop_loss | 1 | -1.49 | +| SEI | 02-11 05:00 | 02-11 07:00 | stop_loss | 2 | -1.49 | +| TIA | 02-11 06:00 | 02-11 08:00 | stop_loss | 2 | -1.49 | +| NEAR | 02-11 06:00 | 02-11 09:00 | stop_loss | 3 | -1.49 | +| ARB | 02-11 06:00 | 02-11 10:00 | stop_loss | 4 | -1.49 | +| AVAX | 02-11 06:00 | 02-11 10:00 | stop_loss | 4 | -1.49 | +| OP | 02-11 06:00 | 02-11 10:00 | stop_loss | 4 | -1.49 | +| RENDER | 02-11 06:00 | 02-11 10:00 | stop_loss | 4 | -1.49 | +| SHIB | 02-11 06:00 | 02-11 10:00 | stop_loss | 4 | -1.49 | +| SUI | 02-11 06:00 | 02-11 10:00 | stop_loss | 4 | -1.49 | +| TIA | 02-11 08:00 | 02-11 10:00 | stop_loss | 2 | -1.49 | +| TON | 02-11 06:00 | 02-11 10:00 | stop_loss | 4 | -1.49 | +| ATOM | 02-11 06:00 | 02-11 13:00 | take_profit | 7 | +1.49 | +| BONK | 02-11 06:00 | 02-11 13:00 | take_profit | 7 | +1.49 | +| FET | 02-11 06:00 | 02-11 13:00 | trailing_stop | 7 | +0.12 | +| FIL | 02-11 06:00 | 02-11 13:00 | trailing_stop | 7 | +0.11 | +| INJ | 02-11 06:00 | 02-11 13:00 | trailing_stop | 7 | +0.19 | +| NEAR | 02-11 09:00 | 02-11 13:00 | take_profit | 4 | +1.49 | +| PEPE | 02-11 06:00 | 02-11 13:00 | take_profit | 7 | +1.49 | +| SHIB | 02-11 10:00 | 02-11 13:00 | trailing_stop | 3 | -0.33 | +| TIA | 02-11 10:00 | 02-11 13:00 | take_profit | 3 | +1.49 | +| UNI | 02-11 06:00 | 02-11 13:00 | take_profit | 7 | +1.49 | +| WIF | 02-11 09:00 | 02-11 13:00 | take_profit | 4 | +1.49 | +| ETC | 02-11 06:00 | 02-11 14:00 | take_profit | 8 | +1.49 | +| LTC | 02-11 06:00 | 02-11 14:00 | stop_loss | 8 | -1.49 | +| SEI | 02-11 07:00 | 02-11 14:00 | take_profit | 7 | +1.49 | +| SUI | 02-11 13:00 | 02-11 14:00 | stop_loss | 1 | -1.49 | +| TON | 02-11 10:00 | 02-11 14:00 | take_profit | 4 | +1.49 | +| ARB | 02-11 14:00 | 02-11 15:00 | stop_loss | 1 | -1.49 | +| BONK | 02-11 14:00 | 02-11 15:00 | stop_loss | 1 | -1.49 | +| ETC | 02-11 14:00 | 02-11 15:00 | stop_loss | 1 | -1.49 | +| FET | 02-11 14:00 | 02-11 15:00 | stop_loss | 1 | -1.49 | +| FIL | 02-11 14:00 | 02-11 15:00 | stop_loss | 1 | -1.49 | +| INJ | 02-11 14:00 | 02-11 15:00 | stop_loss | 1 | -1.49 | +| LTC | 02-11 14:00 | 02-11 15:00 | stop_loss | 1 | -1.49 | +| NEAR | 02-11 14:00 | 02-11 15:00 | stop_loss | 1 | -1.49 | +| OP | 02-11 14:00 | 02-11 15:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-11 14:00 | 02-11 15:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-11 14:00 | 02-11 15:00 | stop_loss | 1 | -1.49 | +| SEI | 02-11 14:00 | 02-11 15:00 | stop_loss | 1 | -1.49 | +| SUI | 02-11 14:00 | 02-11 15:00 | stop_loss | 1 | -1.49 | +| TIA | 02-11 14:00 | 02-11 15:00 | stop_loss | 1 | -1.49 | +| WIF | 02-11 14:00 | 02-11 15:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-11 15:00 | 02-11 16:00 | take_profit | 1 | +1.49 | +| TIA | 02-11 15:00 | 02-11 16:00 | take_profit | 1 | +1.49 | +| AVAX | 02-11 15:00 | 02-11 17:00 | trailing_stop | 2 | -0.42 | +| NEAR | 02-11 15:00 | 02-11 17:00 | take_profit | 2 | +1.49 | +| TON | 02-11 15:00 | 02-11 17:00 | take_profit | 2 | +1.49 | +| ARB | 02-11 15:00 | 02-11 18:00 | take_profit | 3 | +1.49 | +| ETC | 02-11 15:00 | 02-11 18:00 | trailing_stop | 3 | -0.11 | +| FET | 02-11 15:00 | 02-11 18:00 | take_profit | 3 | +1.49 | +| INJ | 02-11 15:00 | 02-11 18:00 | take_profit | 3 | +1.49 | +| OP | 02-11 15:00 | 02-11 18:00 | take_profit | 3 | +1.49 | +| SHIB | 02-11 15:00 | 02-11 18:00 | trailing_stop | 3 | -0.51 | +| APT | 02-11 15:00 | 02-11 20:00 | stop_loss | 5 | -1.49 | +| SEI | 02-11 15:00 | 02-11 23:00 | trailing_stop | 8 | -0.58 | +| UNI | 02-12 04:00 | 02-12 07:00 | stop_loss | 3 | -1.49 | +| APT | 02-12 15:00 | 02-12 16:00 | stop_loss | 1 | -1.49 | +| KAS | 02-12 16:00 | 02-12 18:00 | stop_loss | 2 | -1.49 | +| UNI | 02-12 16:00 | 02-12 18:00 | stop_loss | 2 | -1.49 | +| APT | 02-12 16:00 | 02-12 19:00 | take_profit | 3 | +1.49 | +| ETC | 02-12 16:00 | 02-12 19:00 | take_profit | 3 | +1.49 | +| LTC | 02-12 16:00 | 02-12 19:00 | take_profit | 3 | +1.49 | +| NEAR | 02-12 16:00 | 02-12 19:00 | take_profit | 3 | +1.49 | +| UNI | 02-12 18:00 | 02-12 19:00 | take_profit | 1 | +1.49 | +| KAS | 02-12 20:00 | 02-12 22:00 | stop_loss | 2 | -1.49 | +| TRX | 02-11 06:00 | 02-12 22:00 | take_profit | 40 | +1.49 | +| UNI | 02-12 20:00 | 02-12 22:00 | take_profit | 2 | +1.49 | +| INJ | 02-12 20:00 | 02-13 00:00 | take_profit | 4 | +1.49 | +| FIL | 02-13 00:00 | 02-13 04:00 | stop_loss | 4 | -1.49 | +| INJ | 02-13 00:00 | 02-13 04:00 | stop_loss | 4 | -1.49 | +| SUI | 02-13 00:00 | 02-13 04:00 | stop_loss | 4 | -1.49 | +| UNI | 02-13 00:00 | 02-13 04:00 | take_profit | 4 | +1.49 | +| APT | 02-13 00:00 | 02-13 05:00 | stop_loss | 5 | -1.49 | +| NEAR | 02-13 00:00 | 02-13 06:00 | take_profit | 6 | +1.49 | +| SHIB | 02-13 03:00 | 02-13 06:00 | stop_loss | 3 | -1.49 | +| TRX | 02-13 12:00 | 02-14 03:00 | take_profit | 15 | +1.49 | +| UNI | 02-14 06:00 | 02-14 08:00 | take_profit | 2 | +1.49 | +| SEI | 02-14 06:00 | 02-14 11:00 | take_profit | 5 | +1.49 | +| ARB | 02-15 09:00 | 02-15 10:00 | stop_loss | 1 | -1.49 | +| FIL | 02-15 09:00 | 02-15 10:00 | stop_loss | 1 | -1.49 | +| INJ | 02-15 09:00 | 02-15 10:00 | stop_loss | 1 | -1.49 | +| OP | 02-15 09:00 | 02-15 10:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-15 08:00 | 02-15 10:00 | stop_loss | 2 | -1.49 | +| ARB | 02-15 10:00 | 02-15 12:00 | stop_loss | 2 | -1.49 | +| BONK | 02-15 10:00 | 02-15 12:00 | stop_loss | 2 | -1.49 | +| FET | 02-15 11:00 | 02-15 12:00 | stop_loss | 1 | -1.49 | +| FIL | 02-15 10:00 | 02-15 12:00 | stop_loss | 2 | -1.49 | +| INJ | 02-15 10:00 | 02-15 12:00 | stop_loss | 2 | -1.49 | +| RENDER | 02-15 10:00 | 02-15 12:00 | stop_loss | 2 | -1.49 | +| SEI | 02-15 10:00 | 02-15 12:00 | stop_loss | 2 | -1.49 | +| SUI | 02-15 11:00 | 02-15 12:00 | stop_loss | 1 | -1.49 | +| UNI | 02-15 08:00 | 02-15 12:00 | stop_loss | 4 | -1.49 | +| WIF | 02-15 10:00 | 02-15 12:00 | stop_loss | 2 | -1.49 | +| APT | 02-15 12:00 | 02-15 13:00 | stop_loss | 1 | -1.49 | +| ARB | 02-15 12:00 | 02-15 13:00 | stop_loss | 1 | -1.49 | +| BONK | 02-15 12:00 | 02-15 13:00 | stop_loss | 1 | -1.49 | +| OP | 02-15 12:00 | 02-15 13:00 | stop_loss | 1 | -1.49 | +| SEI | 02-15 12:00 | 02-15 13:00 | stop_loss | 1 | -1.49 | +| TIA | 02-15 12:00 | 02-15 13:00 | stop_loss | 1 | -1.49 | +| TON | 02-15 05:00 | 02-15 13:00 | stop_loss | 8 | -1.49 | +| UNI | 02-15 12:00 | 02-15 13:00 | stop_loss | 1 | -1.49 | +| WIF | 02-15 12:00 | 02-15 13:00 | stop_loss | 1 | -1.49 | +| ARB | 02-15 13:00 | 02-15 14:00 | trailing_stop | 1 | -0.57 | +| BONK | 02-15 13:00 | 02-15 14:00 | trailing_stop | 1 | -0.64 | +| PEPE | 02-15 12:00 | 02-15 14:00 | take_profit | 2 | +1.49 | +| TIA | 02-15 13:00 | 02-15 14:00 | trailing_stop | 1 | -0.50 | +| UNI | 02-15 13:00 | 02-15 14:00 | trailing_stop | 1 | -0.45 | +| KAS | 02-15 12:00 | 02-15 16:00 | stop_loss | 4 | -1.49 | +| APT | 02-15 13:00 | 02-15 17:00 | stop_loss | 4 | -1.49 | +| ATOM | 02-15 12:00 | 02-15 17:00 | trailing_stop | 5 | -0.57 | +| AVAX | 02-15 12:00 | 02-15 17:00 | stop_loss | 5 | -1.49 | +| ETC | 02-15 12:00 | 02-15 17:00 | stop_loss | 5 | -1.49 | +| FET | 02-15 12:00 | 02-15 17:00 | stop_loss | 5 | -1.49 | +| FIL | 02-15 12:00 | 02-15 17:00 | stop_loss | 5 | -1.49 | +| INJ | 02-15 12:00 | 02-15 17:00 | stop_loss | 5 | -1.49 | +| KAS | 02-15 16:00 | 02-15 17:00 | stop_loss | 1 | -1.49 | +| NEAR | 02-15 12:00 | 02-15 17:00 | stop_loss | 5 | -1.49 | +| OP | 02-15 13:00 | 02-15 17:00 | stop_loss | 4 | -1.49 | +| RENDER | 02-15 12:00 | 02-15 17:00 | stop_loss | 5 | -1.49 | +| SEI | 02-15 13:00 | 02-15 17:00 | stop_loss | 4 | -1.49 | +| SHIB | 02-15 12:00 | 02-15 17:00 | stop_loss | 5 | -1.49 | +| SUI | 02-15 12:00 | 02-15 17:00 | stop_loss | 5 | -1.49 | +| WIF | 02-15 13:00 | 02-15 17:00 | stop_loss | 4 | -1.49 | +| KAS | 02-15 17:00 | 02-15 18:00 | stop_loss | 1 | -1.49 | +| UNI | 02-15 17:00 | 02-15 18:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-15 17:00 | 02-15 19:00 | stop_loss | 2 | -1.49 | +| LTC | 02-15 12:00 | 02-15 19:00 | stop_loss | 7 | -1.49 | +| PEPE | 02-15 18:00 | 02-15 19:00 | stop_loss | 1 | -1.49 | +| FET | 02-15 21:00 | 02-15 22:00 | trailing_stop | 1 | -0.26 | +| KAS | 02-15 18:00 | 02-15 22:00 | trailing_stop | 4 | +0.12 | +| APT | 02-15 22:00 | 02-15 23:00 | stop_loss | 1 | -1.49 | +| INJ | 02-15 22:00 | 02-15 23:00 | stop_loss | 1 | -1.49 | +| NEAR | 02-15 18:00 | 02-15 23:00 | trailing_stop | 5 | -0.08 | +| OP | 02-15 22:00 | 02-15 23:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-15 22:00 | 02-15 23:00 | stop_loss | 1 | -1.49 | +| UNI | 02-15 18:00 | 02-15 23:00 | trailing_stop | 5 | -0.23 | +| INJ | 02-15 23:00 | 02-16 01:00 | stop_loss | 2 | -1.49 | +| KAS | 02-15 23:00 | 02-16 01:00 | stop_loss | 2 | -1.49 | +| FIL | 02-16 00:00 | 02-16 02:00 | stop_loss | 2 | -1.49 | +| OP | 02-15 23:00 | 02-16 02:00 | stop_loss | 3 | -1.49 | +| SUI | 02-16 00:00 | 02-16 02:00 | stop_loss | 2 | -1.49 | +| APT | 02-15 23:00 | 02-16 03:00 | stop_loss | 4 | -1.49 | +| KAS | 02-16 01:00 | 02-16 03:00 | stop_loss | 2 | -1.49 | +| BONK | 02-16 00:00 | 02-16 04:00 | trailing_stop | 4 | -0.04 | +| SHIB | 02-16 00:00 | 02-16 04:00 | trailing_stop | 4 | -0.50 | +| UNI | 02-15 23:00 | 02-16 04:00 | take_profit | 5 | +1.49 | +| WIF | 02-16 00:00 | 02-16 04:00 | trailing_stop | 4 | -0.42 | +| ARB | 02-15 23:00 | 02-16 05:00 | stop_loss | 6 | -1.49 | +| ATOM | 02-15 21:00 | 02-16 05:00 | trailing_stop | 8 | -0.39 | +| AVAX | 02-16 00:00 | 02-16 05:00 | stop_loss | 5 | -1.49 | +| ETC | 02-15 23:00 | 02-16 05:00 | stop_loss | 6 | -1.49 | +| FET | 02-15 23:00 | 02-16 05:00 | stop_loss | 6 | -1.49 | +| NEAR | 02-16 01:00 | 02-16 05:00 | stop_loss | 4 | -1.49 | +| SEI | 02-15 22:00 | 02-16 07:00 | stop_loss | 9 | -1.49 | +| INJ | 02-16 01:00 | 02-16 11:00 | trailing_stop | 10 | +0.04 | +| LTC | 02-16 05:00 | 02-16 11:00 | trailing_stop | 6 | -0.51 | +| TIA | 02-16 00:00 | 02-16 11:00 | stop_loss | 11 | -1.49 | +| BONK | 02-16 15:00 | 02-16 20:00 | trailing_stop | 5 | +0.13 | +| OP | 02-16 15:00 | 02-16 20:00 | take_profit | 5 | +1.49 | +| TIA | 02-16 15:00 | 02-16 20:00 | take_profit | 5 | +1.49 | +| FET | 02-16 15:00 | 02-16 21:00 | take_profit | 6 | +1.49 | +| TRX | 02-15 00:00 | 02-17 10:00 | trailing_stop | 58 | -0.68 | +| ARB | 02-17 10:00 | 02-17 13:00 | trailing_stop | 3 | -0.65 | +| ATOM | 02-17 12:00 | 02-17 13:00 | take_profit | 1 | +1.49 | +| ETC | 02-17 10:00 | 02-17 14:00 | trailing_stop | 4 | -0.67 | +| FET | 02-17 10:00 | 02-17 14:00 | stop_loss | 4 | -1.49 | +| NEAR | 02-17 10:00 | 02-17 14:00 | stop_loss | 4 | -1.49 | +| SEI | 02-17 11:00 | 02-17 14:00 | stop_loss | 3 | -1.49 | +| SUI | 02-17 11:00 | 02-17 14:00 | stop_loss | 3 | -1.49 | +| TIA | 02-17 12:00 | 02-17 14:00 | stop_loss | 2 | -1.49 | +| UNI | 02-17 11:00 | 02-17 14:00 | stop_loss | 3 | -1.49 | +| APT | 02-17 14:00 | 02-17 15:00 | trailing_stop | 1 | -0.62 | +| ARB | 02-17 14:00 | 02-17 15:00 | trailing_stop | 1 | -0.28 | +| FET | 02-17 14:00 | 02-17 15:00 | trailing_stop | 1 | -0.35 | +| FIL | 02-17 14:00 | 02-17 15:00 | trailing_stop | 1 | -0.13 | +| KAS | 02-17 14:00 | 02-17 15:00 | trailing_stop | 1 | +0.15 | +| LTC | 02-17 14:00 | 02-17 15:00 | stop_loss | 1 | -1.49 | +| OP | 02-17 14:00 | 02-17 15:00 | trailing_stop | 1 | -0.63 | +| RENDER | 02-17 14:00 | 02-17 15:00 | take_profit | 1 | +1.49 | +| TIA | 02-17 14:00 | 02-17 15:00 | trailing_stop | 1 | -0.58 | +| TON | 02-17 10:00 | 02-17 15:00 | stop_loss | 5 | -1.49 | +| AVAX | 02-17 14:00 | 02-17 16:00 | take_profit | 2 | +1.49 | +| ETC | 02-17 14:00 | 02-17 16:00 | take_profit | 2 | +1.49 | +| UNI | 02-17 14:00 | 02-17 16:00 | take_profit | 2 | +1.49 | +| APT | 02-17 17:00 | 02-17 18:00 | take_profit | 1 | +1.49 | +| LTC | 02-17 15:00 | 02-17 18:00 | take_profit | 3 | +1.49 | +| NEAR | 02-17 14:00 | 02-17 18:00 | take_profit | 4 | +1.49 | +| AVAX | 02-18 08:00 | 02-18 11:00 | stop_loss | 3 | -1.49 | +| WIF | 02-18 08:00 | 02-18 11:00 | stop_loss | 3 | -1.49 | +| APT | 02-18 12:00 | 02-18 13:00 | stop_loss | 1 | -1.49 | +| BONK | 02-18 12:00 | 02-18 13:00 | stop_loss | 1 | -1.49 | +| SUI | 02-18 12:00 | 02-18 13:00 | stop_loss | 1 | -1.49 | +| APT | 02-18 13:00 | 02-18 15:00 | take_profit | 2 | +1.49 | +| ARB | 02-18 13:00 | 02-18 15:00 | take_profit | 2 | +1.49 | +| AVAX | 02-18 13:00 | 02-18 15:00 | take_profit | 2 | +1.49 | +| BONK | 02-18 13:00 | 02-18 15:00 | take_profit | 2 | +1.49 | +| FET | 02-18 13:00 | 02-18 15:00 | take_profit | 2 | +1.49 | +| NEAR | 02-18 13:00 | 02-18 15:00 | take_profit | 2 | +1.49 | +| OP | 02-18 13:00 | 02-18 15:00 | take_profit | 2 | +1.49 | +| PEPE | 02-18 13:00 | 02-18 15:00 | take_profit | 2 | +1.49 | +| SHIB | 02-18 13:00 | 02-18 15:00 | take_profit | 2 | +1.49 | +| SUI | 02-18 13:00 | 02-18 15:00 | take_profit | 2 | +1.49 | +| TIA | 02-18 13:00 | 02-18 15:00 | take_profit | 2 | +1.49 | +| ARB | 02-18 17:00 | 02-18 18:00 | stop_loss | 1 | -1.49 | +| BONK | 02-18 16:00 | 02-18 18:00 | stop_loss | 2 | -1.49 | +| ETC | 02-18 13:00 | 02-18 18:00 | stop_loss | 5 | -1.49 | +| INJ | 02-18 17:00 | 02-18 18:00 | stop_loss | 1 | -1.49 | +| KAS | 02-18 16:00 | 02-18 18:00 | stop_loss | 2 | -1.49 | +| OP | 02-18 17:00 | 02-18 18:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-18 16:00 | 02-18 18:00 | stop_loss | 2 | -1.49 | +| SEI | 02-18 16:00 | 02-18 18:00 | stop_loss | 2 | -1.49 | +| SHIB | 02-18 17:00 | 02-18 18:00 | stop_loss | 1 | -1.49 | +| APT | 02-18 18:00 | 02-18 19:00 | stop_loss | 1 | -1.49 | +| ARB | 02-18 18:00 | 02-18 19:00 | stop_loss | 1 | -1.49 | +| BONK | 02-18 18:00 | 02-18 19:00 | stop_loss | 1 | -1.49 | +| ETC | 02-18 18:00 | 02-18 19:00 | stop_loss | 1 | -1.49 | +| FET | 02-18 18:00 | 02-18 19:00 | stop_loss | 1 | -1.49 | +| FIL | 02-18 18:00 | 02-18 19:00 | stop_loss | 1 | -1.49 | +| INJ | 02-18 18:00 | 02-18 19:00 | stop_loss | 1 | -1.49 | +| NEAR | 02-18 18:00 | 02-18 19:00 | stop_loss | 1 | -1.49 | +| OP | 02-18 18:00 | 02-18 19:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-18 18:00 | 02-18 19:00 | stop_loss | 1 | -1.49 | +| SUI | 02-18 18:00 | 02-18 19:00 | stop_loss | 1 | -1.49 | +| TIA | 02-18 18:00 | 02-18 19:00 | stop_loss | 1 | -1.49 | +| TRX | 02-17 10:00 | 02-18 19:00 | stop_loss | 33 | -1.49 | +| UNI | 02-18 18:00 | 02-18 19:00 | stop_loss | 1 | -1.49 | +| WIF | 02-18 18:00 | 02-18 19:00 | stop_loss | 1 | -1.49 | +| OP | 02-18 19:00 | 02-18 20:00 | stop_loss | 1 | -1.49 | +| ARB | 02-18 19:00 | 02-18 21:00 | stop_loss | 2 | -1.49 | +| OP | 02-18 20:00 | 02-18 21:00 | stop_loss | 1 | -1.49 | +| FET | 02-18 19:00 | 02-18 22:00 | stop_loss | 3 | -1.49 | +| INJ | 02-18 19:00 | 02-18 22:00 | stop_loss | 3 | -1.49 | +| NEAR | 02-18 19:00 | 02-18 22:00 | stop_loss | 3 | -1.49 | +| OP | 02-18 21:00 | 02-18 22:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-18 19:00 | 02-18 22:00 | stop_loss | 3 | -1.49 | +| RENDER | 02-18 19:00 | 02-18 22:00 | stop_loss | 3 | -1.49 | +| SHIB | 02-18 18:00 | 02-18 22:00 | stop_loss | 4 | -1.49 | +| SUI | 02-18 19:00 | 02-18 22:00 | stop_loss | 3 | -1.49 | +| UNI | 02-18 19:00 | 02-18 22:00 | stop_loss | 3 | -1.49 | +| OP | 02-18 22:00 | 02-18 23:00 | stop_loss | 1 | -1.49 | +| TIA | 02-18 19:00 | 02-19 00:00 | stop_loss | 5 | -1.49 | +| APT | 02-18 19:00 | 02-19 01:00 | trailing_stop | 6 | -0.57 | +| SEI | 02-18 18:00 | 02-19 01:00 | stop_loss | 7 | -1.49 | +| UNI | 02-18 22:00 | 02-19 01:00 | take_profit | 3 | +1.49 | +| FET | 02-19 04:00 | 02-19 05:00 | stop_loss | 1 | -1.49 | +| KAS | 02-18 18:00 | 02-19 05:00 | stop_loss | 11 | -1.49 | +| PEPE | 02-19 03:00 | 02-19 05:00 | stop_loss | 2 | -1.49 | +| SHIB | 02-19 03:00 | 02-19 05:00 | stop_loss | 2 | -1.49 | +| UNI | 02-19 02:00 | 02-19 05:00 | stop_loss | 3 | -1.49 | +| ARB | 02-18 21:00 | 02-19 07:00 | stop_loss | 10 | -1.49 | +| ATOM | 02-19 05:00 | 02-19 08:00 | stop_loss | 3 | -1.49 | +| ETC | 02-18 19:00 | 02-19 08:00 | stop_loss | 13 | -1.49 | +| FET | 02-19 05:00 | 02-19 08:00 | stop_loss | 3 | -1.49 | +| FIL | 02-18 19:00 | 02-19 08:00 | trailing_stop | 13 | -0.42 | +| NEAR | 02-18 22:00 | 02-19 08:00 | stop_loss | 10 | -1.49 | +| SUI | 02-19 04:00 | 02-19 08:00 | stop_loss | 4 | -1.49 | +| TIA | 02-19 04:00 | 02-19 08:00 | stop_loss | 4 | -1.49 | +| WIF | 02-18 19:00 | 02-19 08:00 | stop_loss | 13 | -1.49 | +| SEI | 02-19 04:00 | 02-19 09:00 | stop_loss | 5 | -1.49 | +| LTC | 02-18 19:00 | 02-19 10:00 | stop_loss | 15 | -1.49 | +| AVAX | 02-18 20:00 | 02-19 11:00 | stop_loss | 15 | -1.49 | +| UNI | 02-19 05:00 | 02-19 12:00 | stop_loss | 7 | -1.49 | +| ARB | 02-19 08:00 | 02-19 13:00 | stop_loss | 5 | -1.49 | +| BONK | 02-18 19:00 | 02-19 13:00 | stop_loss | 18 | -1.49 | +| KAS | 02-19 11:00 | 02-19 13:00 | stop_loss | 2 | -1.49 | +| LTC | 02-19 12:00 | 02-19 13:00 | stop_loss | 1 | -1.49 | +| SEI | 02-19 11:00 | 02-19 13:00 | stop_loss | 2 | -1.49 | +| SUI | 02-19 08:00 | 02-19 13:00 | stop_loss | 5 | -1.49 | +| TON | 02-19 12:00 | 02-19 13:00 | stop_loss | 1 | -1.49 | +| ARB | 02-19 13:00 | 02-19 14:00 | stop_loss | 1 | -1.49 | +| KAS | 02-19 13:00 | 02-19 14:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-19 13:00 | 02-19 14:00 | take_profit | 1 | +1.49 | +| RENDER | 02-19 13:00 | 02-19 14:00 | take_profit | 1 | +1.49 | +| UNI | 02-19 13:00 | 02-19 14:00 | trailing_stop | 1 | -0.51 | +| ARB | 02-19 14:00 | 02-19 15:00 | stop_loss | 1 | -1.49 | +| SEI | 02-19 13:00 | 02-19 15:00 | stop_loss | 2 | -1.49 | +| APT | 02-19 13:00 | 02-19 16:00 | stop_loss | 3 | -1.49 | +| ARB | 02-19 15:00 | 02-19 16:00 | take_profit | 1 | +1.49 | +| AVAX | 02-19 13:00 | 02-19 16:00 | take_profit | 3 | +1.49 | +| FET | 02-19 15:00 | 02-19 16:00 | stop_loss | 1 | -1.49 | +| FIL | 02-19 13:00 | 02-19 16:00 | stop_loss | 3 | -1.49 | +| INJ | 02-19 15:00 | 02-19 16:00 | stop_loss | 1 | -1.49 | +| KAS | 02-19 14:00 | 02-19 16:00 | stop_loss | 2 | -1.49 | +| NEAR | 02-19 13:00 | 02-19 16:00 | stop_loss | 3 | -1.49 | +| TIA | 02-19 13:00 | 02-19 16:00 | stop_loss | 3 | -1.49 | +| TON | 02-19 13:00 | 02-19 16:00 | stop_loss | 3 | -1.49 | +| WIF | 02-19 13:00 | 02-19 16:00 | stop_loss | 3 | -1.49 | +| SEI | 02-19 15:00 | 02-19 17:00 | stop_loss | 2 | -1.49 | +| FIL | 02-19 16:00 | 02-19 18:00 | trailing_stop | 2 | -0.39 | +| LTC | 02-19 13:00 | 02-19 18:00 | trailing_stop | 5 | -0.29 | +| NEAR | 02-19 16:00 | 02-19 18:00 | trailing_stop | 2 | -0.60 | +| SEI | 02-19 17:00 | 02-19 18:00 | trailing_stop | 1 | -0.56 | +| TRX | 02-18 19:00 | 02-19 20:00 | take_profit | 25 | +1.49 | +| ATOM | 02-19 19:00 | 02-19 22:00 | confirmed_bearish_exit | 3 | +0.20 | +| SUI | 02-19 13:00 | 02-19 22:00 | take_profit | 9 | +1.49 | +| TIA | 02-19 16:00 | 02-19 23:00 | take_profit | 7 | +1.49 | +| FET | 02-19 20:00 | 02-20 00:00 | take_profit | 4 | +1.49 | +| RENDER | 02-19 19:00 | 02-20 00:00 | take_profit | 5 | +1.49 | +| WIF | 02-19 16:00 | 02-20 00:00 | trailing_stop | 8 | +0.14 | +| OP | 02-20 02:00 | 02-20 03:00 | stop_loss | 1 | -1.49 | +| APT | 02-19 21:00 | 02-20 04:00 | trailing_stop | 7 | -0.21 | +| BONK | 02-19 20:00 | 02-20 04:00 | trailing_stop | 8 | -0.57 | +| ETC | 02-19 13:00 | 02-20 04:00 | trailing_stop | 15 | -0.50 | +| OP | 02-20 03:00 | 02-20 04:00 | stop_loss | 1 | -1.49 | +| FIL | 02-19 20:00 | 02-20 05:00 | trailing_stop | 9 | -0.62 | +| LTC | 02-19 21:00 | 02-20 05:00 | take_profit | 8 | +1.49 | +| NEAR | 02-19 21:00 | 02-20 05:00 | take_profit | 8 | +1.49 | +| OP | 02-20 04:00 | 02-20 05:00 | take_profit | 1 | +1.49 | +| SHIB | 02-19 13:00 | 02-20 07:00 | take_profit | 18 | +1.49 | +| KAS | 02-19 20:00 | 02-20 10:00 | stop_loss | 14 | -1.49 | +| ARB | 02-20 10:00 | 02-20 11:00 | stop_loss | 1 | -1.49 | +| INJ | 02-20 08:00 | 02-20 11:00 | take_profit | 3 | +1.49 | +| ARB | 02-20 11:00 | 02-20 12:00 | stop_loss | 1 | -1.49 | +| TON | 02-19 16:00 | 02-20 12:00 | stop_loss | 20 | -1.49 | +| ARB | 02-20 12:00 | 02-20 13:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-20 12:00 | 02-20 13:00 | stop_loss | 1 | -1.49 | +| TON | 02-20 12:00 | 02-20 13:00 | stop_loss | 1 | -1.49 | +| APT | 02-20 13:00 | 02-20 14:00 | trailing_stop | 1 | -0.31 | +| ARB | 02-20 13:00 | 02-20 14:00 | take_profit | 1 | +1.49 | +| PEPE | 02-20 13:00 | 02-20 14:00 | take_profit | 1 | +1.49 | +| SEI | 02-20 13:00 | 02-20 14:00 | trailing_stop | 1 | -0.56 | +| UNI | 02-20 13:00 | 02-20 14:00 | trailing_stop | 1 | -0.40 | +| WIF | 02-20 13:00 | 02-20 14:00 | take_profit | 1 | +1.49 | +| TON | 02-20 13:00 | 02-20 15:00 | take_profit | 2 | +1.49 | +| FET | 02-21 06:00 | 02-21 08:00 | trailing_stop | 2 | -0.45 | +| KAS | 02-21 06:00 | 02-21 09:00 | take_profit | 3 | +1.49 | +| SUI | 02-21 06:00 | 02-21 14:00 | take_profit | 8 | +1.49 | +| SEI | 02-21 06:00 | 02-21 16:00 | trailing_stop | 10 | -0.45 | +| PEPE | 02-21 16:00 | 02-21 20:00 | stop_loss | 4 | -1.49 | +| RENDER | 02-21 07:00 | 02-21 20:00 | stop_loss | 13 | -1.49 | +| BONK | 02-21 16:00 | 02-21 23:00 | stop_loss | 7 | -1.49 | +| ARB | 02-21 22:00 | 02-22 00:00 | stop_loss | 2 | -1.49 | +| ETC | 02-21 22:00 | 02-22 00:00 | stop_loss | 2 | -1.49 | +| FET | 02-21 23:00 | 02-22 00:00 | stop_loss | 1 | -1.49 | +| FIL | 02-21 23:00 | 02-22 00:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-21 20:00 | 02-22 00:00 | stop_loss | 4 | -1.49 | +| TIA | 02-21 22:00 | 02-22 00:00 | stop_loss | 2 | -1.49 | +| WIF | 02-21 22:00 | 02-22 00:00 | stop_loss | 2 | -1.49 | +| APT | 02-22 00:00 | 02-22 02:00 | stop_loss | 2 | -1.49 | +| ETC | 02-22 00:00 | 02-22 02:00 | stop_loss | 2 | -1.49 | +| FIL | 02-22 00:00 | 02-22 02:00 | stop_loss | 2 | -1.49 | +| OP | 02-22 00:00 | 02-22 02:00 | stop_loss | 2 | -1.49 | +| PEPE | 02-21 20:00 | 02-22 02:00 | stop_loss | 6 | -1.49 | +| TIA | 02-22 00:00 | 02-22 02:00 | stop_loss | 2 | -1.49 | +| BONK | 02-22 00:00 | 02-22 03:00 | stop_loss | 3 | -1.49 | +| FET | 02-22 00:00 | 02-22 03:00 | stop_loss | 3 | -1.49 | +| SHIB | 02-22 00:00 | 02-22 03:00 | stop_loss | 3 | -1.49 | +| SUI | 02-22 00:00 | 02-22 03:00 | stop_loss | 3 | -1.49 | +| APT | 02-22 02:00 | 02-22 05:00 | stop_loss | 3 | -1.49 | +| AVAX | 02-22 00:00 | 02-22 06:00 | stop_loss | 6 | -1.49 | +| INJ | 02-22 03:00 | 02-22 06:00 | stop_loss | 3 | -1.49 | +| UNI | 02-22 00:00 | 02-22 06:00 | stop_loss | 6 | -1.49 | +| TIA | 02-22 02:00 | 02-22 08:00 | stop_loss | 6 | -1.49 | +| KAS | 02-22 00:00 | 02-22 09:00 | stop_loss | 9 | -1.49 | +| SHIB | 02-22 05:00 | 02-22 10:00 | confirmed_bearish_exit | 5 | -0.18 | +| TON | 02-22 04:00 | 02-22 11:00 | take_profit | 7 | +1.49 | +| ARB | 02-22 11:00 | 02-22 12:00 | stop_loss | 1 | -1.49 | +| ATOM | 02-22 08:00 | 02-22 12:00 | stop_loss | 4 | -1.49 | +| ETC | 02-22 11:00 | 02-22 12:00 | stop_loss | 1 | -1.49 | +| FET | 02-22 11:00 | 02-22 12:00 | stop_loss | 1 | -1.49 | +| LTC | 02-22 00:00 | 02-22 12:00 | stop_loss | 12 | -1.49 | +| PEPE | 02-22 11:00 | 02-22 12:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-22 00:00 | 02-22 12:00 | stop_loss | 12 | -1.49 | +| SUI | 02-22 11:00 | 02-22 12:00 | stop_loss | 1 | -1.49 | +| WIF | 02-22 02:00 | 02-22 12:00 | stop_loss | 10 | -1.49 | +| KAS | 02-22 12:00 | 02-22 13:00 | stop_loss | 1 | -1.49 | +| SEI | 02-22 11:00 | 02-22 13:00 | stop_loss | 2 | -1.49 | +| PEPE | 02-22 12:00 | 02-22 14:00 | stop_loss | 2 | -1.49 | +| SEI | 02-22 13:00 | 02-22 14:00 | stop_loss | 1 | -1.49 | +| UNI | 02-22 12:00 | 02-22 14:00 | stop_loss | 2 | -1.49 | +| APT | 02-22 13:00 | 02-22 15:00 | trailing_stop | 2 | -0.62 | +| FET | 02-22 13:00 | 02-22 15:00 | trailing_stop | 2 | -0.70 | +| LTC | 02-22 13:00 | 02-22 15:00 | stop_loss | 2 | -1.49 | +| OP | 02-22 12:00 | 02-22 15:00 | trailing_stop | 3 | -0.16 | +| TRX | 02-21 04:00 | 02-22 17:00 | take_profit | 37 | +1.49 | +| UNI | 02-22 14:00 | 02-22 20:00 | stop_loss | 6 | -1.49 | +| ETC | 02-22 19:00 | 02-22 21:00 | stop_loss | 2 | -1.49 | +| ATOM | 02-22 14:00 | 02-23 00:00 | stop_loss | 10 | -1.49 | +| ETC | 02-22 21:00 | 02-23 00:00 | stop_loss | 3 | -1.49 | +| FET | 02-22 23:00 | 02-23 00:00 | stop_loss | 1 | -1.49 | +| SEI | 02-22 14:00 | 02-23 00:00 | stop_loss | 10 | -1.49 | +| UNI | 02-22 23:00 | 02-23 00:00 | stop_loss | 1 | -1.49 | +| APT | 02-23 00:00 | 02-23 01:00 | stop_loss | 1 | -1.49 | +| ARB | 02-23 00:00 | 02-23 01:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-22 17:00 | 02-23 01:00 | stop_loss | 8 | -1.49 | +| ETC | 02-23 00:00 | 02-23 01:00 | stop_loss | 1 | -1.49 | +| FET | 02-23 00:00 | 02-23 01:00 | stop_loss | 1 | -1.49 | +| FIL | 02-23 00:00 | 02-23 01:00 | stop_loss | 1 | -1.49 | +| KAS | 02-22 13:00 | 02-23 01:00 | stop_loss | 12 | -1.49 | +| LTC | 02-22 15:00 | 02-23 01:00 | stop_loss | 10 | -1.49 | +| PEPE | 02-22 20:00 | 02-23 01:00 | stop_loss | 5 | -1.49 | +| RENDER | 02-23 00:00 | 02-23 01:00 | stop_loss | 1 | -1.49 | +| SHIB | 02-23 00:00 | 02-23 01:00 | stop_loss | 1 | -1.49 | +| SUI | 02-23 00:00 | 02-23 01:00 | stop_loss | 1 | -1.49 | +| UNI | 02-23 00:00 | 02-23 01:00 | stop_loss | 1 | -1.49 | +| WIF | 02-22 23:00 | 02-23 01:00 | stop_loss | 2 | -1.49 | +| APT | 02-23 01:00 | 02-23 02:00 | take_profit | 1 | +1.49 | +| ARB | 02-23 01:00 | 02-23 02:00 | trailing_stop | 1 | -0.26 | +| BONK | 02-23 01:00 | 02-23 02:00 | trailing_stop | 1 | -0.33 | +| FET | 02-23 01:00 | 02-23 02:00 | trailing_stop | 1 | -0.33 | +| INJ | 02-23 01:00 | 02-23 02:00 | trailing_stop | 1 | -0.56 | +| KAS | 02-23 01:00 | 02-23 02:00 | trailing_stop | 1 | -0.65 | +| SHIB | 02-23 01:00 | 02-23 02:00 | trailing_stop | 1 | -0.37 | +| SUI | 02-23 01:00 | 02-23 02:00 | trailing_stop | 1 | -0.66 | +| INJ | 02-23 02:00 | 02-23 04:00 | stop_loss | 2 | -1.49 | +| OP | 02-23 01:00 | 02-23 04:00 | trailing_stop | 3 | -0.50 | +| TIA | 02-23 01:00 | 02-23 04:00 | stop_loss | 3 | -1.49 | +| ARB | 02-23 02:00 | 02-23 05:00 | trailing_stop | 3 | -0.60 | +| KAS | 02-23 02:00 | 02-23 05:00 | take_profit | 3 | +1.49 | +| NEAR | 02-23 01:00 | 02-23 05:00 | take_profit | 4 | +1.49 | +| TON | 02-23 01:00 | 02-23 05:00 | take_profit | 4 | +1.49 | +| ATOM | 02-23 01:00 | 02-23 06:00 | take_profit | 5 | +1.49 | +| AVAX | 02-23 01:00 | 02-23 06:00 | take_profit | 5 | +1.49 | +| BONK | 02-23 02:00 | 02-23 06:00 | trailing_stop | 4 | -0.02 | +| ETC | 02-23 01:00 | 02-23 06:00 | take_profit | 5 | +1.49 | +| FET | 02-23 02:00 | 02-23 06:00 | take_profit | 4 | +1.49 | +| FIL | 02-23 01:00 | 02-23 06:00 | take_profit | 5 | +1.49 | +| LTC | 02-23 01:00 | 02-23 06:00 | take_profit | 5 | +1.49 | +| PEPE | 02-23 01:00 | 02-23 06:00 | take_profit | 5 | +1.49 | +| RENDER | 02-23 01:00 | 02-23 06:00 | take_profit | 5 | +1.49 | +| SEI | 02-23 01:00 | 02-23 06:00 | take_profit | 5 | +1.49 | +| SHIB | 02-23 02:00 | 02-23 06:00 | trailing_stop | 4 | -0.55 | +| SUI | 02-23 02:00 | 02-23 06:00 | take_profit | 4 | +1.49 | +| TIA | 02-23 04:00 | 02-23 06:00 | take_profit | 2 | +1.49 | +| UNI | 02-23 01:00 | 02-23 06:00 | take_profit | 5 | +1.49 | +| WIF | 02-23 01:00 | 02-23 06:00 | take_profit | 5 | +1.49 | +| AVAX | 02-23 08:00 | 02-23 09:00 | take_profit | 1 | +1.49 | +| ETC | 02-23 08:00 | 02-23 09:00 | trailing_stop | 1 | -0.39 | +| INJ | 02-23 04:00 | 02-23 09:00 | trailing_stop | 5 | -0.44 | +| TIA | 02-23 08:00 | 02-23 09:00 | take_profit | 1 | +1.49 | +| WIF | 02-23 08:00 | 02-23 09:00 | take_profit | 1 | +1.49 | +| TRX | 02-23 01:00 | 02-23 15:00 | stop_loss | 14 | -1.49 | +| APT | 02-23 20:00 | 02-24 01:00 | stop_loss | 5 | -1.49 | +| ETC | 02-24 00:00 | 02-24 01:00 | stop_loss | 1 | -1.49 | +| FET | 02-24 00:00 | 02-24 01:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-23 23:00 | 02-24 01:00 | stop_loss | 2 | -1.49 | +| APT | 02-24 02:00 | 02-24 03:00 | stop_loss | 1 | -1.49 | +| ETC | 02-24 01:00 | 02-24 03:00 | stop_loss | 2 | -1.49 | +| FET | 02-24 01:00 | 02-24 03:00 | stop_loss | 2 | -1.49 | +| INJ | 02-24 02:00 | 02-24 03:00 | stop_loss | 1 | -1.49 | +| KAS | 02-24 02:00 | 02-24 03:00 | stop_loss | 1 | -1.49 | +| LTC | 02-24 01:00 | 02-24 03:00 | stop_loss | 2 | -1.49 | +| SEI | 02-24 02:00 | 02-24 03:00 | stop_loss | 1 | -1.49 | +| SUI | 02-24 01:00 | 02-24 03:00 | stop_loss | 2 | -1.49 | +| TIA | 02-24 02:00 | 02-24 03:00 | stop_loss | 1 | -1.49 | +| TON | 02-24 02:00 | 02-24 03:00 | stop_loss | 1 | -1.49 | +| APT | 02-24 03:00 | 02-24 04:00 | stop_loss | 1 | -1.49 | +| FIL | 02-24 02:00 | 02-24 04:00 | stop_loss | 2 | -1.49 | +| NEAR | 02-24 01:00 | 02-24 04:00 | stop_loss | 3 | -1.49 | +| OP | 02-24 02:00 | 02-24 04:00 | stop_loss | 2 | -1.49 | +| RENDER | 02-24 02:00 | 02-24 04:00 | stop_loss | 2 | -1.49 | +| TON | 02-24 03:00 | 02-24 04:00 | stop_loss | 1 | -1.49 | +| ARB | 02-24 01:00 | 02-24 05:00 | stop_loss | 4 | -1.49 | +| INJ | 02-24 03:00 | 02-24 05:00 | stop_loss | 2 | -1.49 | +| APT | 02-24 04:00 | 02-24 06:00 | stop_loss | 2 | -1.49 | +| LTC | 02-24 05:00 | 02-24 11:00 | trailing_stop | 6 | -0.21 | +| ETC | 02-24 03:00 | 02-24 13:00 | stop_loss | 10 | -1.49 | +| FIL | 02-24 05:00 | 02-24 13:00 | stop_loss | 8 | -1.49 | +| OP | 02-24 12:00 | 02-24 13:00 | stop_loss | 1 | -1.49 | +| SUI | 02-24 03:00 | 02-24 13:00 | stop_loss | 10 | -1.49 | +| WIF | 02-24 12:00 | 02-24 13:00 | stop_loss | 1 | -1.49 | +| BONK | 02-24 12:00 | 02-24 14:00 | take_profit | 2 | +1.49 | +| NEAR | 02-24 13:00 | 02-24 14:00 | stop_loss | 1 | -1.49 | +| OP | 02-24 13:00 | 02-24 14:00 | stop_loss | 1 | -1.49 | +| TON | 02-24 06:00 | 02-24 14:00 | stop_loss | 8 | -1.49 | +| WIF | 02-24 13:00 | 02-24 14:00 | take_profit | 1 | +1.49 | +| INJ | 02-24 16:00 | 02-24 18:00 | stop_loss | 2 | -1.49 | +| ATOM | 02-24 20:00 | 02-25 00:00 | trailing_stop | 4 | +0.04 | +| FIL | 02-24 14:00 | 02-25 01:00 | take_profit | 11 | +1.49 | +| KAS | 02-24 23:00 | 02-25 01:00 | take_profit | 2 | +1.49 | +| SEI | 02-24 14:00 | 02-25 01:00 | take_profit | 11 | +1.49 | +| TON | 02-24 23:00 | 02-25 01:00 | take_profit | 2 | +1.49 | +| INJ | 02-25 05:00 | 02-25 07:00 | trailing_stop | 2 | -0.47 | +| TON | 02-25 05:00 | 02-25 14:00 | take_profit | 9 | +1.49 | +| ATOM | 02-25 20:00 | 02-25 21:00 | stop_loss | 1 | -1.49 | +| ATOM | 02-25 21:00 | 02-25 22:00 | stop_loss | 1 | -1.49 | +| ATOM | 02-25 22:00 | 02-25 23:00 | stop_loss | 1 | -1.49 | +| ATOM | 02-25 23:00 | 02-26 01:00 | take_profit | 2 | +1.49 | +| TRX | 02-23 17:00 | 02-26 05:00 | take_profit | 60 | +1.49 | +| PEPE | 02-26 06:00 | 02-26 07:00 | stop_loss | 1 | -1.49 | +| LTC | 02-26 05:00 | 02-26 08:00 | stop_loss | 3 | -1.49 | +| FET | 02-26 08:00 | 02-26 09:00 | trailing_stop | 1 | -0.62 | +| FIL | 02-26 05:00 | 02-26 09:00 | take_profit | 4 | +1.49 | +| RENDER | 02-26 06:00 | 02-26 09:00 | take_profit | 3 | +1.49 | +| SUI | 02-26 08:00 | 02-26 09:00 | trailing_stop | 1 | -0.42 | +| WIF | 02-26 08:00 | 02-26 09:00 | trailing_stop | 1 | -0.31 | +| APT | 02-26 09:00 | 02-26 10:00 | stop_loss | 1 | -1.49 | +| ARB | 02-26 09:00 | 02-26 10:00 | stop_loss | 1 | -1.49 | +| ETC | 02-26 06:00 | 02-26 10:00 | stop_loss | 4 | -1.49 | +| FET | 02-26 09:00 | 02-26 10:00 | stop_loss | 1 | -1.49 | +| FIL | 02-26 09:00 | 02-26 10:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-26 07:00 | 02-26 10:00 | stop_loss | 3 | -1.49 | +| SHIB | 02-26 06:00 | 02-26 10:00 | stop_loss | 4 | -1.49 | +| SUI | 02-26 09:00 | 02-26 10:00 | stop_loss | 1 | -1.49 | +| TIA | 02-26 06:00 | 02-26 10:00 | stop_loss | 4 | -1.49 | +| ARB | 02-26 10:00 | 02-26 11:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-26 06:00 | 02-26 11:00 | stop_loss | 5 | -1.49 | +| INJ | 02-26 05:00 | 02-26 11:00 | stop_loss | 6 | -1.49 | +| NEAR | 02-26 09:00 | 02-26 11:00 | stop_loss | 2 | -1.49 | +| APT | 02-26 10:00 | 02-26 12:00 | trailing_stop | 2 | -0.04 | +| NEAR | 02-26 11:00 | 02-26 12:00 | take_profit | 1 | +1.49 | +| SUI | 02-26 10:00 | 02-26 12:00 | stop_loss | 2 | -1.49 | +| WIF | 02-26 10:00 | 02-26 12:00 | trailing_stop | 2 | -0.30 | +| BONK | 02-26 10:00 | 02-26 14:00 | stop_loss | 4 | -1.49 | +| FET | 02-26 10:00 | 02-26 14:00 | stop_loss | 4 | -1.49 | +| RENDER | 02-26 11:00 | 02-26 14:00 | trailing_stop | 3 | -0.69 | +| AVAX | 02-26 14:00 | 02-26 15:00 | stop_loss | 1 | -1.49 | +| LTC | 02-26 08:00 | 02-26 15:00 | stop_loss | 7 | -1.49 | +| NEAR | 02-26 14:00 | 02-26 15:00 | stop_loss | 1 | -1.49 | +| SEI | 02-26 10:00 | 02-26 15:00 | stop_loss | 5 | -1.49 | +| UNI | 02-26 14:00 | 02-26 15:00 | stop_loss | 1 | -1.49 | +| ATOM | 02-26 15:00 | 02-26 16:00 | stop_loss | 1 | -1.49 | +| UNI | 02-26 15:00 | 02-26 16:00 | stop_loss | 1 | -1.49 | +| OP | 02-26 16:00 | 02-26 17:00 | stop_loss | 1 | -1.49 | +| ARB | 02-26 16:00 | 02-26 18:00 | take_profit | 2 | +1.49 | +| BONK | 02-26 16:00 | 02-26 18:00 | trailing_stop | 2 | -0.05 | +| ETC | 02-26 16:00 | 02-26 18:00 | trailing_stop | 2 | -0.45 | +| FET | 02-26 16:00 | 02-26 18:00 | trailing_stop | 2 | +0.05 | +| INJ | 02-26 16:00 | 02-26 18:00 | trailing_stop | 2 | -0.11 | +| LTC | 02-26 16:00 | 02-26 18:00 | trailing_stop | 2 | -0.34 | +| NEAR | 02-26 16:00 | 02-26 18:00 | take_profit | 2 | +1.49 | +| OP | 02-26 17:00 | 02-26 18:00 | stop_loss | 1 | -1.49 | +| SUI | 02-26 16:00 | 02-26 18:00 | trailing_stop | 2 | -0.23 | +| TIA | 02-26 16:00 | 02-26 18:00 | trailing_stop | 2 | -0.26 | +| WIF | 02-26 16:00 | 02-26 18:00 | trailing_stop | 2 | +0.23 | +| AVAX | 02-26 16:00 | 02-26 19:00 | take_profit | 3 | +1.49 | +| PEPE | 02-26 16:00 | 02-26 19:00 | take_profit | 3 | +1.49 | +| RENDER | 02-26 16:00 | 02-26 19:00 | take_profit | 3 | +1.49 | +| SEI | 02-26 16:00 | 02-26 19:00 | take_profit | 3 | +1.49 | +| UNI | 02-26 16:00 | 02-26 19:00 | take_profit | 3 | +1.49 | +| ATOM | 02-26 16:00 | 02-26 21:00 | take_profit | 5 | +1.49 | +| BONK | 02-26 23:00 | 02-27 00:00 | stop_loss | 1 | -1.49 | +| UNI | 02-26 22:00 | 02-27 01:00 | stop_loss | 3 | -1.49 | +| ATOM | 02-26 23:00 | 02-27 02:00 | take_profit | 3 | +1.49 | +| RENDER | 02-26 23:00 | 02-27 03:00 | take_profit | 4 | +1.49 | +| UNI | 02-27 01:00 | 02-27 03:00 | trailing_stop | 2 | -0.57 | +| BONK | 02-27 02:00 | 02-27 04:00 | take_profit | 2 | +1.49 | +| KAS | 02-27 03:00 | 02-27 04:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-27 00:00 | 02-27 04:00 | take_profit | 4 | +1.49 | +| SHIB | 02-26 16:00 | 02-27 04:00 | take_profit | 12 | +1.49 | +| KAS | 02-27 04:00 | 02-27 10:00 | stop_loss | 6 | -1.49 | +| AVAX | 02-27 10:00 | 02-27 11:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-27 11:00 | 02-27 13:00 | stop_loss | 2 | -1.49 | +| PEPE | 02-27 12:00 | 02-27 13:00 | stop_loss | 1 | -1.49 | +| UNI | 02-27 12:00 | 02-27 13:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-27 13:00 | 02-27 14:00 | stop_loss | 1 | -1.49 | +| SUI | 02-27 13:00 | 02-27 14:00 | stop_loss | 1 | -1.49 | +| KAS | 02-27 11:00 | 02-27 15:00 | stop_loss | 4 | -1.49 | +| TIA | 02-27 12:00 | 02-27 15:00 | stop_loss | 3 | -1.49 | +| AVAX | 02-27 13:00 | 02-27 16:00 | stop_loss | 3 | -1.49 | +| KAS | 02-27 15:00 | 02-27 16:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-27 14:00 | 02-27 16:00 | stop_loss | 2 | -1.49 | +| TIA | 02-27 15:00 | 02-27 16:00 | stop_loss | 1 | -1.49 | +| ATOM | 02-27 15:00 | 02-27 17:00 | stop_loss | 2 | -1.49 | +| INJ | 02-27 16:00 | 02-27 17:00 | stop_loss | 1 | -1.49 | +| LTC | 02-27 14:00 | 02-27 17:00 | stop_loss | 3 | -1.49 | +| NEAR | 02-27 14:00 | 02-27 17:00 | stop_loss | 3 | -1.49 | +| SHIB | 02-27 14:00 | 02-27 17:00 | stop_loss | 3 | -1.49 | +| SUI | 02-27 14:00 | 02-27 17:00 | stop_loss | 3 | -1.49 | +| TIA | 02-27 16:00 | 02-27 17:00 | trailing_stop | 1 | -0.50 | +| TRX | 02-26 18:00 | 02-27 17:00 | stop_loss | 23 | -1.49 | +| INJ | 02-27 17:00 | 02-27 18:00 | stop_loss | 1 | -1.49 | +| APT | 02-27 17:00 | 02-27 19:00 | stop_loss | 2 | -1.49 | +| ATOM | 02-27 17:00 | 02-27 19:00 | stop_loss | 2 | -1.49 | +| FET | 02-27 16:00 | 02-27 19:00 | stop_loss | 3 | -1.49 | +| KAS | 02-27 16:00 | 02-27 19:00 | stop_loss | 3 | -1.49 | +| RENDER | 02-27 17:00 | 02-27 19:00 | stop_loss | 2 | -1.49 | +| OP | 02-27 20:00 | 02-27 21:00 | stop_loss | 1 | -1.49 | +| ETC | 02-27 16:00 | 02-27 22:00 | stop_loss | 6 | -1.49 | +| FIL | 02-27 16:00 | 02-27 22:00 | stop_loss | 6 | -1.49 | +| SEI | 02-27 16:00 | 02-27 22:00 | stop_loss | 6 | -1.49 | +| TIA | 02-27 19:00 | 02-27 22:00 | stop_loss | 3 | -1.49 | +| KAS | 02-27 23:00 | 02-28 01:00 | stop_loss | 2 | -1.49 | +| AVAX | 02-28 00:00 | 02-28 03:00 | stop_loss | 3 | -1.49 | +| INJ | 02-28 01:00 | 02-28 04:00 | stop_loss | 3 | -1.49 | +| PEPE | 02-27 22:00 | 02-28 04:00 | stop_loss | 6 | -1.49 | +| TIA | 02-28 01:00 | 02-28 04:00 | stop_loss | 3 | -1.49 | +| ARB | 02-28 01:00 | 02-28 06:00 | stop_loss | 5 | -1.49 | +| OP | 02-28 03:00 | 02-28 06:00 | stop_loss | 3 | -1.49 | +| APT | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| ARB | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| ATOM | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| AVAX | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| BONK | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| ETC | 02-28 06:00 | 02-28 07:00 | stop_loss | 1 | -1.49 | +| FET | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| FIL | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| INJ | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| NEAR | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| OP | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| PEPE | 02-28 06:00 | 02-28 07:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| SUI | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| TIA | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| TON | 02-28 06:00 | 02-28 07:00 | trailing_stop | 1 | -0.34 | +| UNI | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| WIF | 02-28 06:00 | 02-28 07:00 | stop_loss | 1 | -1.49 | +| APT | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| ARB | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| BONK | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| ETC | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| FET | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| FIL | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| INJ | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| OP | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| SEI | 02-28 06:00 | 02-28 08:00 | stop_loss | 2 | -1.49 | +| SHIB | 02-28 06:00 | 02-28 08:00 | stop_loss | 2 | -1.49 | +| SUI | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| TIA | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| TON | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| TRX | 02-27 17:00 | 02-28 08:00 | stop_loss | 15 | -1.49 | +| WIF | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| APT | 02-28 08:00 | 02-28 09:00 | stop_loss | 1 | -1.49 | +| WIF | 02-28 08:00 | 02-28 09:00 | stop_loss | 1 | -1.49 | +| ARB | 02-28 08:00 | 02-28 10:00 | stop_loss | 2 | -1.49 | +| BONK | 02-28 08:00 | 02-28 10:00 | stop_loss | 2 | -1.49 | +| FET | 02-28 08:00 | 02-28 10:00 | stop_loss | 2 | -1.49 | +| INJ | 02-28 08:00 | 02-28 10:00 | take_profit | 2 | +1.49 | +| LTC | 02-28 06:00 | 02-28 10:00 | stop_loss | 4 | -1.49 | +| OP | 02-28 08:00 | 02-28 10:00 | stop_loss | 2 | -1.49 | +| RENDER | 02-28 08:00 | 02-28 10:00 | stop_loss | 2 | -1.49 | +| SEI | 02-28 08:00 | 02-28 10:00 | stop_loss | 2 | -1.49 | +| SUI | 02-28 08:00 | 02-28 10:00 | stop_loss | 2 | -1.49 | +| UNI | 02-28 08:00 | 02-28 10:00 | stop_loss | 2 | -1.49 | +| APT | 02-28 09:00 | 02-28 11:00 | stop_loss | 2 | -1.49 | +| WIF | 02-28 09:00 | 02-28 11:00 | stop_loss | 2 | -1.49 | +| APT | 02-28 11:00 | 02-28 12:00 | trailing_stop | 1 | -0.22 | +| ARB | 02-28 10:00 | 02-28 12:00 | stop_loss | 2 | -1.49 | +| SEI | 02-28 10:00 | 02-28 12:00 | stop_loss | 2 | -1.49 | +| ATOM | 02-28 08:00 | 02-28 13:00 | trailing_stop | 5 | -0.26 | +| AVAX | 02-28 08:00 | 02-28 13:00 | take_profit | 5 | +1.49 | +| ETC | 02-28 08:00 | 02-28 13:00 | take_profit | 5 | +1.49 | +| FIL | 02-28 08:00 | 02-28 13:00 | take_profit | 5 | +1.49 | +| KAS | 02-28 06:00 | 02-28 13:00 | take_profit | 7 | +1.49 | +| PEPE | 02-28 08:00 | 02-28 13:00 | take_profit | 5 | +1.49 | +| SHIB | 02-28 08:00 | 02-28 13:00 | take_profit | 5 | +1.49 | +| TIA | 02-28 08:00 | 02-28 13:00 | stop_loss | 5 | -1.49 | +| TON | 02-28 08:00 | 02-28 13:00 | take_profit | 5 | +1.49 | +| UNI | 02-28 10:00 | 02-28 13:00 | take_profit | 3 | +1.49 | +| OP | 02-28 14:00 | 02-28 15:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-28 14:00 | 02-28 15:00 | trailing_stop | 1 | -0.57 | +| ARB | 02-28 15:00 | 02-28 16:00 | stop_loss | 1 | -1.49 | +| BONK | 02-28 14:00 | 02-28 16:00 | stop_loss | 2 | -1.49 | +| INJ | 02-28 14:00 | 02-28 16:00 | stop_loss | 2 | -1.49 | +| OP | 02-28 15:00 | 02-28 16:00 | stop_loss | 1 | -1.49 | +| WIF | 02-28 15:00 | 02-28 16:00 | stop_loss | 1 | -1.49 | +| APT | 02-28 14:00 | 02-28 17:00 | take_profit | 3 | +1.49 | +| BONK | 02-28 16:00 | 02-28 17:00 | stop_loss | 1 | -1.49 | +| ETC | 02-28 14:00 | 02-28 17:00 | stop_loss | 3 | -1.49 | +| FIL | 02-28 14:00 | 02-28 17:00 | trailing_stop | 3 | -0.55 | +| INJ | 02-28 16:00 | 02-28 17:00 | stop_loss | 1 | -1.49 | +| KAS | 02-28 13:00 | 02-28 17:00 | stop_loss | 4 | -1.49 | +| SUI | 02-28 14:00 | 02-28 17:00 | trailing_stop | 3 | -0.39 | +| ARB | 02-28 16:00 | 02-28 18:00 | take_profit | 2 | +1.49 | +| ATOM | 02-28 16:00 | 02-28 18:00 | take_profit | 2 | +1.49 | +| AVAX | 02-28 14:00 | 02-28 18:00 | take_profit | 4 | +1.49 | +| BONK | 02-28 17:00 | 02-28 18:00 | take_profit | 1 | +1.49 | +| ETC | 02-28 17:00 | 02-28 18:00 | take_profit | 1 | +1.49 | +| FET | 02-28 14:00 | 02-28 18:00 | take_profit | 4 | +1.49 | +| LTC | 02-28 14:00 | 02-28 18:00 | take_profit | 4 | +1.49 | +| OP | 02-28 16:00 | 02-28 18:00 | take_profit | 2 | +1.49 | +| RENDER | 02-28 15:00 | 02-28 18:00 | take_profit | 3 | +1.49 | +| SHIB | 02-28 14:00 | 02-28 18:00 | take_profit | 4 | +1.49 | +| TIA | 02-28 14:00 | 02-28 18:00 | take_profit | 4 | +1.49 | +| TON | 02-28 14:00 | 02-28 18:00 | trailing_stop | 4 | -0.43 | +| SEI | 02-28 18:00 | 02-28 19:00 | trailing_stop | 1 | -0.34 | +| WIF | 02-28 18:00 | 02-28 19:00 | stop_loss | 1 | -1.49 | +| FIL | 03-01 12:00 | 03-01 13:00 | take_profit | 1 | +1.49 | +| PEPE | 03-01 12:00 | 03-01 13:00 | take_profit | 1 | +1.49 | +| RENDER | 03-01 12:00 | 03-01 13:00 | take_profit | 1 | +1.49 | +| SHIB | 03-01 12:00 | 03-01 13:00 | trailing_stop | 1 | -0.12 | +| TON | 03-01 10:00 | 03-01 13:00 | stop_loss | 3 | -1.49 | +| APT | 03-01 15:00 | 03-01 16:00 | stop_loss | 1 | -1.49 | +| ATOM | 03-01 15:00 | 03-01 16:00 | stop_loss | 1 | -1.49 | +| FIL | 03-01 15:00 | 03-01 16:00 | stop_loss | 1 | -1.49 | +| INJ | 03-01 15:00 | 03-01 16:00 | stop_loss | 1 | -1.49 | +| UNI | 03-01 15:00 | 03-01 16:00 | stop_loss | 1 | -1.49 | +| APT | 03-01 16:00 | 03-01 17:00 | stop_loss | 1 | -1.49 | +| BONK | 03-01 16:00 | 03-01 17:00 | stop_loss | 1 | -1.49 | +| ETC | 03-01 16:00 | 03-01 17:00 | stop_loss | 1 | -1.49 | +| FET | 03-01 16:00 | 03-01 17:00 | stop_loss | 1 | -1.49 | +| INJ | 03-01 16:00 | 03-01 17:00 | stop_loss | 1 | -1.49 | +| LTC | 03-01 16:00 | 03-01 17:00 | stop_loss | 1 | -1.49 | +| SEI | 03-01 16:00 | 03-01 17:00 | stop_loss | 1 | -1.49 | +| SUI | 03-01 16:00 | 03-01 17:00 | stop_loss | 1 | -1.49 | +| TIA | 03-01 16:00 | 03-01 17:00 | stop_loss | 1 | -1.49 | +| WIF | 03-01 16:00 | 03-01 17:00 | stop_loss | 1 | -1.49 | +| WIF | 03-01 17:00 | 03-01 18:00 | take_profit | 1 | +1.49 | +| SUI | 03-01 17:00 | 03-01 19:00 | stop_loss | 2 | -1.49 | +| ARB | 03-01 19:00 | 03-01 20:00 | stop_loss | 1 | -1.49 | +| ATOM | 03-01 17:00 | 03-01 20:00 | stop_loss | 3 | -1.49 | +| AVAX | 03-01 16:00 | 03-01 20:00 | stop_loss | 4 | -1.49 | +| ETC | 03-01 17:00 | 03-01 20:00 | stop_loss | 3 | -1.49 | +| FET | 03-01 17:00 | 03-01 20:00 | stop_loss | 3 | -1.49 | +| KAS | 03-01 16:00 | 03-01 20:00 | stop_loss | 4 | -1.49 | +| SEI | 03-01 17:00 | 03-01 20:00 | stop_loss | 3 | -1.49 | +| TON | 03-01 17:00 | 03-01 20:00 | stop_loss | 3 | -1.49 | +| APT | 03-01 20:00 | 03-01 21:00 | trailing_stop | 1 | -0.39 | +| ARB | 03-01 20:00 | 03-01 21:00 | trailing_stop | 1 | -0.06 | +| BONK | 03-01 20:00 | 03-01 21:00 | trailing_stop | 1 | -0.14 | +| FIL | 03-01 20:00 | 03-01 21:00 | trailing_stop | 1 | -0.44 | +| NEAR | 03-01 20:00 | 03-01 21:00 | trailing_stop | 1 | -0.28 | +| PEPE | 03-01 20:00 | 03-01 21:00 | trailing_stop | 1 | -0.24 | +| SUI | 03-01 20:00 | 03-01 21:00 | trailing_stop | 1 | -0.51 | +| TIA | 03-01 20:00 | 03-01 21:00 | take_profit | 1 | +1.49 | +| ATOM | 03-01 20:00 | 03-01 22:00 | take_profit | 2 | +1.49 | +| AVAX | 03-01 20:00 | 03-01 22:00 | take_profit | 2 | +1.49 | +| ETC | 03-01 20:00 | 03-01 22:00 | take_profit | 2 | +1.49 | +| FET | 03-01 20:00 | 03-01 22:00 | take_profit | 2 | +1.49 | +| INJ | 03-01 20:00 | 03-01 22:00 | take_profit | 2 | +1.49 | +| LTC | 03-01 20:00 | 03-01 22:00 | take_profit | 2 | +1.49 | +| SEI | 03-01 20:00 | 03-01 22:00 | take_profit | 2 | +1.49 | +| UNI | 03-01 20:00 | 03-01 22:00 | take_profit | 2 | +1.49 | +| WIF | 03-01 20:00 | 03-01 22:00 | take_profit | 2 | +1.49 | +| TON | 03-02 01:00 | 03-02 02:00 | stop_loss | 1 | -1.49 | +| TON | 03-02 02:00 | 03-02 06:00 | trailing_stop | 4 | -0.30 | +| ETC | 03-03 04:00 | 03-03 06:00 | stop_loss | 2 | -1.49 | +| FET | 03-03 05:00 | 03-03 06:00 | stop_loss | 1 | -1.49 | +| PEPE | 03-03 05:00 | 03-03 07:00 | take_profit | 2 | +1.49 | +| WIF | 03-03 05:00 | 03-03 07:00 | take_profit | 2 | +1.49 | +| ATOM | 03-03 07:00 | 03-03 08:00 | stop_loss | 1 | -1.49 | +| AVAX | 03-03 05:00 | 03-03 08:00 | stop_loss | 3 | -1.49 | +| BONK | 03-03 05:00 | 03-03 08:00 | stop_loss | 3 | -1.49 | +| ETC | 03-03 06:00 | 03-03 08:00 | stop_loss | 2 | -1.49 | +| FIL | 03-03 05:00 | 03-03 08:00 | stop_loss | 3 | -1.49 | +| INJ | 03-03 05:00 | 03-03 08:00 | stop_loss | 3 | -1.49 | +| OP | 03-03 05:00 | 03-03 08:00 | stop_loss | 3 | -1.49 | +| PEPE | 03-03 07:00 | 03-03 08:00 | stop_loss | 1 | -1.49 | +| SUI | 03-03 05:00 | 03-03 08:00 | stop_loss | 3 | -1.49 | +| UNI | 03-03 05:00 | 03-03 08:00 | stop_loss | 3 | -1.49 | +| ARB | 03-03 04:00 | 03-03 09:00 | stop_loss | 5 | -1.49 | +| LTC | 03-03 05:00 | 03-03 09:00 | stop_loss | 4 | -1.49 | +| TIA | 03-03 04:00 | 03-03 09:00 | stop_loss | 5 | -1.49 | +| OP | 03-03 08:00 | 03-03 10:00 | stop_loss | 2 | -1.49 | +| KAS | 03-03 08:00 | 03-03 11:00 | trailing_stop | 3 | +0.07 | +| ATOM | 03-03 08:00 | 03-03 12:00 | stop_loss | 4 | -1.49 | +| FIL | 03-03 08:00 | 03-03 12:00 | take_profit | 4 | +1.49 | +| OP | 03-03 10:00 | 03-03 12:00 | take_profit | 2 | +1.49 | +| INJ | 03-03 08:00 | 03-03 13:00 | stop_loss | 5 | -1.49 | +| SEI | 03-03 09:00 | 03-03 13:00 | stop_loss | 4 | -1.49 | +| SUI | 03-03 08:00 | 03-03 13:00 | stop_loss | 5 | -1.49 | +| UNI | 03-03 08:00 | 03-03 13:00 | stop_loss | 5 | -1.49 | +| AVAX | 03-03 08:00 | 03-03 14:00 | stop_loss | 6 | -1.49 | +| LTC | 03-03 09:00 | 03-03 14:00 | take_profit | 5 | +1.49 | +| PEPE | 03-03 14:00 | 03-03 15:00 | stop_loss | 1 | -1.49 | +| SEI | 03-03 13:00 | 03-03 15:00 | trailing_stop | 2 | -0.50 | +| LTC | 03-03 14:00 | 03-03 16:00 | take_profit | 2 | +1.49 | +| TRX | 02-28 08:00 | 03-04 00:00 | trailing_stop | 88 | -0.18 | +| ATOM | 03-03 17:00 | 03-04 03:00 | trailing_stop | 10 | -0.66 | +| ETC | 03-04 06:00 | 03-04 08:00 | take_profit | 2 | +1.49 | +| TRX | 03-04 00:00 | 03-04 12:00 | take_profit | 12 | +1.49 | +| NEAR | 03-05 00:00 | 03-05 01:00 | stop_loss | 1 | -1.49 | +| NEAR | 03-05 01:00 | 03-05 02:00 | take_profit | 1 | +1.49 | +| PEPE | 03-05 05:00 | 03-05 07:00 | stop_loss | 2 | -1.49 | +| SEI | 03-05 05:00 | 03-05 07:00 | stop_loss | 2 | -1.49 | +| WIF | 03-05 05:00 | 03-05 09:00 | take_profit | 4 | +1.49 | +| APT | 03-05 05:00 | 03-05 10:00 | take_profit | 5 | +1.49 | +| AVAX | 03-05 05:00 | 03-05 10:00 | trailing_stop | 5 | -0.13 | +| BONK | 03-05 05:00 | 03-05 10:00 | take_profit | 5 | +1.49 | +| FET | 03-05 05:00 | 03-05 10:00 | take_profit | 5 | +1.49 | +| INJ | 03-05 05:00 | 03-05 10:00 | take_profit | 5 | +1.49 | +| PEPE | 03-05 07:00 | 03-05 10:00 | take_profit | 3 | +1.49 | +| RENDER | 03-05 05:00 | 03-05 10:00 | take_profit | 5 | +1.49 | +| SEI | 03-05 07:00 | 03-05 10:00 | take_profit | 3 | +1.49 | +| SHIB | 03-05 05:00 | 03-05 10:00 | trailing_stop | 5 | -0.12 | +| SUI | 03-05 05:00 | 03-05 10:00 | take_profit | 5 | +1.49 | +| KAS | 03-05 05:00 | 03-05 12:00 | confirmed_bearish_exit | 7 | +0.98 | +| RENDER | 03-05 16:00 | 03-05 17:00 | stop_loss | 1 | -1.49 | +| FIL | 03-05 17:00 | 03-05 18:00 | trailing_stop | 1 | -0.51 | +| RENDER | 03-05 17:00 | 03-05 18:00 | trailing_stop | 1 | -0.22 | +| PEPE | 03-05 16:00 | 03-05 19:00 | take_profit | 3 | +1.49 | +| SEI | 03-05 17:00 | 03-05 19:00 | take_profit | 2 | +1.49 | +| TIA | 03-05 17:00 | 03-05 19:00 | take_profit | 2 | +1.49 | +| SEI | 03-06 00:00 | 03-06 03:00 | take_profit | 3 | +1.49 | +| ETC | 03-06 00:00 | 03-06 09:00 | stop_loss | 9 | -1.49 | +| WIF | 03-06 08:00 | 03-06 09:00 | stop_loss | 1 | -1.49 | +| WIF | 03-06 09:00 | 03-06 10:00 | stop_loss | 1 | -1.49 | +| ATOM | 03-06 04:00 | 03-06 11:00 | stop_loss | 7 | -1.49 | +| TON | 03-06 02:00 | 03-06 11:00 | stop_loss | 9 | -1.49 | +| FET | 03-06 11:00 | 03-06 12:00 | stop_loss | 1 | -1.49 | +| INJ | 03-06 11:00 | 03-06 12:00 | stop_loss | 1 | -1.49 | +| AVAX | 03-06 11:00 | 03-06 13:00 | stop_loss | 2 | -1.49 | +| ETC | 03-06 11:00 | 03-06 13:00 | stop_loss | 2 | -1.49 | +| FET | 03-06 12:00 | 03-06 13:00 | stop_loss | 1 | -1.49 | +| INJ | 03-06 12:00 | 03-06 13:00 | stop_loss | 1 | -1.49 | +| LTC | 03-06 11:00 | 03-06 13:00 | stop_loss | 2 | -1.49 | +| WIF | 03-06 10:00 | 03-06 13:00 | stop_loss | 3 | -1.49 | +| APT | 03-06 13:00 | 03-06 14:00 | stop_loss | 1 | -1.49 | +| ARB | 03-06 13:00 | 03-06 14:00 | stop_loss | 1 | -1.49 | +| ATOM | 03-06 11:00 | 03-06 14:00 | stop_loss | 3 | -1.49 | +| AVAX | 03-06 13:00 | 03-06 14:00 | stop_loss | 1 | -1.49 | +| BONK | 03-06 13:00 | 03-06 14:00 | stop_loss | 1 | -1.49 | +| ETC | 03-06 13:00 | 03-06 14:00 | stop_loss | 1 | -1.49 | +| FET | 03-06 13:00 | 03-06 14:00 | stop_loss | 1 | -1.49 | +| INJ | 03-06 13:00 | 03-06 14:00 | stop_loss | 1 | -1.49 | +| LTC | 03-06 13:00 | 03-06 14:00 | stop_loss | 1 | -1.49 | +| RENDER | 03-06 13:00 | 03-06 14:00 | stop_loss | 1 | -1.49 | +| SUI | 03-06 13:00 | 03-06 14:00 | stop_loss | 1 | -1.49 | +| TIA | 03-06 13:00 | 03-06 14:00 | stop_loss | 1 | -1.49 | +| TON | 03-06 11:00 | 03-06 14:00 | stop_loss | 3 | -1.49 | +| UNI | 03-06 13:00 | 03-06 14:00 | stop_loss | 1 | -1.49 | +| INJ | 03-06 14:00 | 03-06 15:00 | stop_loss | 1 | -1.49 | +| NEAR | 03-06 13:00 | 03-06 15:00 | stop_loss | 2 | -1.49 | +| SHIB | 03-06 14:00 | 03-06 15:00 | stop_loss | 1 | -1.49 | +| WIF | 03-06 14:00 | 03-06 15:00 | stop_loss | 1 | -1.49 | +| APT | 03-06 14:00 | 03-06 16:00 | stop_loss | 2 | -1.49 | +| OP | 03-06 14:00 | 03-06 16:00 | stop_loss | 2 | -1.49 | +| APT | 03-06 16:00 | 03-06 17:00 | stop_loss | 1 | -1.49 | +| ARB | 03-06 15:00 | 03-06 17:00 | stop_loss | 2 | -1.49 | +| BONK | 03-06 14:00 | 03-06 17:00 | stop_loss | 3 | -1.49 | +| ETC | 03-06 14:00 | 03-06 17:00 | stop_loss | 3 | -1.49 | +| FET | 03-06 14:00 | 03-06 17:00 | stop_loss | 3 | -1.49 | +| FIL | 03-06 14:00 | 03-06 17:00 | stop_loss | 3 | -1.49 | +| INJ | 03-06 15:00 | 03-06 17:00 | stop_loss | 2 | -1.49 | +| KAS | 03-06 15:00 | 03-06 17:00 | stop_loss | 2 | -1.49 | +| LTC | 03-06 14:00 | 03-06 17:00 | stop_loss | 3 | -1.49 | +| NEAR | 03-06 15:00 | 03-06 17:00 | stop_loss | 2 | -1.49 | +| OP | 03-06 16:00 | 03-06 17:00 | stop_loss | 1 | -1.49 | +| PEPE | 03-06 14:00 | 03-06 17:00 | stop_loss | 3 | -1.49 | +| SUI | 03-06 14:00 | 03-06 17:00 | stop_loss | 3 | -1.49 | +| TIA | 03-06 14:00 | 03-06 17:00 | stop_loss | 3 | -1.49 | +| WIF | 03-06 15:00 | 03-06 17:00 | stop_loss | 2 | -1.49 | +| APT | 03-06 17:00 | 03-06 18:00 | trailing_stop | 1 | -0.55 | +| ARB | 03-06 17:00 | 03-06 18:00 | trailing_stop | 1 | -0.10 | +| BONK | 03-06 17:00 | 03-06 18:00 | trailing_stop | 1 | -0.50 | +| NEAR | 03-06 17:00 | 03-06 18:00 | take_profit | 1 | +1.49 | +| OP | 03-06 17:00 | 03-06 18:00 | trailing_stop | 1 | -0.36 | +| RENDER | 03-06 14:00 | 03-06 18:00 | take_profit | 4 | +1.49 | +| TIA | 03-06 17:00 | 03-06 18:00 | trailing_stop | 1 | +0.04 | +| FIL | 03-06 17:00 | 03-06 20:00 | confirmed_bearish_exit | 3 | +0.43 | +| INJ | 03-06 17:00 | 03-06 22:00 | take_profit | 5 | +1.49 | +| PEPE | 03-06 17:00 | 03-06 22:00 | take_profit | 5 | +1.49 | +| TON | 03-06 14:00 | 03-06 22:00 | take_profit | 8 | +1.49 | +| NEAR | 03-06 22:00 | 03-06 23:00 | stop_loss | 1 | -1.49 | +| NEAR | 03-06 23:00 | 03-07 00:00 | trailing_stop | 1 | -0.49 | +| RENDER | 03-06 21:00 | 03-07 00:00 | stop_loss | 3 | -1.49 | +| WIF | 03-06 22:00 | 03-07 00:00 | stop_loss | 2 | -1.49 | +| OP | 03-06 22:00 | 03-07 01:00 | stop_loss | 3 | -1.49 | +| TIA | 03-06 22:00 | 03-07 01:00 | stop_loss | 3 | -1.49 | +| ATOM | 03-06 14:00 | 03-07 02:00 | take_profit | 12 | +1.49 | +| INJ | 03-06 22:00 | 03-07 02:00 | stop_loss | 4 | -1.49 | +| FIL | 03-06 22:00 | 03-07 03:00 | stop_loss | 5 | -1.49 | +| ARB | 03-06 22:00 | 03-07 04:00 | stop_loss | 6 | -1.49 | +| BONK | 03-06 22:00 | 03-07 04:00 | stop_loss | 6 | -1.49 | +| FET | 03-06 22:00 | 03-07 04:00 | stop_loss | 6 | -1.49 | +| WIF | 03-07 00:00 | 03-07 04:00 | stop_loss | 4 | -1.49 | +| ETC | 03-06 17:00 | 03-07 06:00 | trailing_stop | 13 | -0.24 | +| INJ | 03-07 02:00 | 03-07 06:00 | stop_loss | 4 | -1.49 | +| KAS | 03-06 17:00 | 03-07 06:00 | trailing_stop | 13 | -0.64 | +| PEPE | 03-06 22:00 | 03-07 06:00 | stop_loss | 8 | -1.49 | +| TIA | 03-07 01:00 | 03-07 06:00 | stop_loss | 5 | -1.49 | +| UNI | 03-06 14:00 | 03-07 06:00 | stop_loss | 16 | -1.49 | +| APT | 03-06 23:00 | 03-07 07:00 | stop_loss | 8 | -1.49 | +| OP | 03-07 01:00 | 03-07 07:00 | stop_loss | 6 | -1.49 | +| SUI | 03-06 23:00 | 03-07 09:00 | trailing_stop | 10 | -0.44 | +| WIF | 03-07 10:00 | 03-07 11:00 | stop_loss | 1 | -1.49 | +| WIF | 03-07 11:00 | 03-07 12:00 | stop_loss | 1 | -1.49 | +| WIF | 03-07 12:00 | 03-07 13:00 | trailing_stop | 1 | -0.59 | +| AVAX | 03-06 14:00 | 03-07 14:00 | trailing_stop | 24 | -0.60 | +| SEI | 03-06 14:00 | 03-07 14:00 | stop_loss | 24 | -1.49 | +| SHIB | 03-06 15:00 | 03-07 14:00 | trailing_stop | 23 | -0.41 | +| WIF | 03-07 13:00 | 03-07 14:00 | stop_loss | 1 | -1.49 | +| ARB | 03-07 14:00 | 03-07 15:00 | stop_loss | 1 | -1.49 | +| BONK | 03-07 12:00 | 03-07 15:00 | stop_loss | 3 | -1.49 | +| OP | 03-07 14:00 | 03-07 15:00 | stop_loss | 1 | -1.49 | +| TIA | 03-07 14:00 | 03-07 15:00 | stop_loss | 1 | -1.49 | +| PEPE | 03-07 14:00 | 03-07 16:00 | stop_loss | 2 | -1.49 | +| TON | 03-07 15:00 | 03-07 18:00 | stop_loss | 3 | -1.49 | +| APT | 03-07 14:00 | 03-07 19:00 | stop_loss | 5 | -1.49 | +| ARB | 03-07 15:00 | 03-07 19:00 | stop_loss | 4 | -1.49 | +| FIL | 03-07 15:00 | 03-07 19:00 | stop_loss | 4 | -1.49 | +| LTC | 03-06 17:00 | 03-07 19:00 | trailing_stop | 26 | -0.29 | +| OP | 03-07 15:00 | 03-07 19:00 | stop_loss | 4 | -1.49 | +| TIA | 03-07 15:00 | 03-07 19:00 | trailing_stop | 4 | -0.53 | +| ATOM | 03-07 15:00 | 03-07 22:00 | stop_loss | 7 | -1.49 | +| BONK | 03-07 15:00 | 03-07 22:00 | stop_loss | 7 | -1.49 | +| OP | 03-07 19:00 | 03-07 22:00 | stop_loss | 3 | -1.49 | +| PEPE | 03-07 16:00 | 03-07 22:00 | stop_loss | 6 | -1.49 | +| SEI | 03-07 18:00 | 03-07 22:00 | stop_loss | 4 | -1.49 | +| SHIB | 03-07 14:00 | 03-07 22:00 | stop_loss | 8 | -1.49 | +| WIF | 03-07 21:00 | 03-07 22:00 | stop_loss | 1 | -1.49 | +| TON | 03-07 18:00 | 03-08 01:00 | trailing_stop | 7 | -0.11 | +| APT | 03-07 19:00 | 03-08 02:00 | stop_loss | 7 | -1.49 | +| ARB | 03-07 19:00 | 03-08 02:00 | stop_loss | 7 | -1.49 | +| BONK | 03-07 22:00 | 03-08 02:00 | stop_loss | 4 | -1.49 | +| ETC | 03-07 19:00 | 03-08 02:00 | stop_loss | 7 | -1.49 | +| FET | 03-07 22:00 | 03-08 02:00 | stop_loss | 4 | -1.49 | +| FIL | 03-07 19:00 | 03-08 02:00 | stop_loss | 7 | -1.49 | +| INJ | 03-08 00:00 | 03-08 02:00 | stop_loss | 2 | -1.49 | +| KAS | 03-08 00:00 | 03-08 02:00 | stop_loss | 2 | -1.49 | +| SUI | 03-07 19:00 | 03-08 02:00 | stop_loss | 7 | -1.49 | +| TIA | 03-08 00:00 | 03-08 02:00 | stop_loss | 2 | -1.49 | +| UNI | 03-07 19:00 | 03-08 02:00 | stop_loss | 7 | -1.49 | +| NEAR | 03-08 02:00 | 03-08 03:00 | trailing_stop | 1 | -0.47 | +| TON | 03-08 01:00 | 03-08 03:00 | stop_loss | 2 | -1.49 | +| AVAX | 03-07 19:00 | 03-08 04:00 | stop_loss | 9 | -1.49 | +| LTC | 03-07 19:00 | 03-08 04:00 | stop_loss | 9 | -1.49 | +| SEI | 03-07 22:00 | 03-08 04:00 | stop_loss | 6 | -1.49 | +| SHIB | 03-07 22:00 | 03-08 04:00 | stop_loss | 6 | -1.49 | +| RENDER | 03-08 02:00 | 03-08 05:00 | take_profit | 3 | +1.49 | +| INJ | 03-08 02:00 | 03-08 06:00 | confirmed_bearish_exit | 4 | +0.82 | +| TIA | 03-08 02:00 | 03-08 07:00 | take_profit | 5 | +1.49 | +| APT | 03-08 02:00 | 03-08 09:00 | take_profit | 7 | +1.49 | +| SUI | 03-08 02:00 | 03-08 09:00 | take_profit | 7 | +1.49 | +| BONK | 03-08 02:00 | 03-08 10:00 | take_profit | 8 | +1.49 | +| FET | 03-08 02:00 | 03-08 10:00 | take_profit | 8 | +1.49 | +| FIL | 03-08 02:00 | 03-08 10:00 | take_profit | 8 | +1.49 | +| SHIB | 03-08 04:00 | 03-08 10:00 | take_profit | 6 | +1.49 | +| UNI | 03-08 02:00 | 03-08 10:00 | take_profit | 8 | +1.49 | +| ATOM | 03-08 02:00 | 03-08 12:00 | stop_loss | 10 | -1.49 | +| ETC | 03-08 02:00 | 03-08 12:00 | trailing_stop | 10 | +0.02 | +| OP | 03-08 02:00 | 03-08 12:00 | take_profit | 10 | +1.49 | +| LTC | 03-08 04:00 | 03-08 14:00 | trailing_stop | 10 | -0.39 | +| TRX | 03-05 07:00 | 03-08 16:00 | take_profit | 81 | +1.49 | +| KAS | 03-08 02:00 | 03-08 19:00 | take_profit | 17 | +1.49 | +| ATOM | 03-08 13:00 | 03-08 22:00 | stop_loss | 9 | -1.49 | +| ATOM | 03-08 23:00 | 03-09 01:00 | stop_loss | 2 | -1.49 | +| NEAR | 03-09 00:00 | 03-09 02:00 | trailing_stop | 2 | -0.57 | +| PEPE | 03-08 23:00 | 03-09 02:00 | trailing_stop | 3 | -0.46 | +| ATOM | 03-09 01:00 | 03-09 03:00 | take_profit | 2 | +1.49 | +| SEI | 03-08 23:00 | 03-09 03:00 | take_profit | 4 | +1.49 | +| TON | 03-09 01:00 | 03-09 05:00 | take_profit | 4 | +1.49 | +| TRX | 03-09 09:00 | 03-09 11:00 | stop_loss | 2 | -1.49 | +| SEI | 03-09 11:00 | 03-09 15:00 | trailing_stop | 4 | -0.58 | +| WIF | 03-10 05:00 | 03-10 08:00 | trailing_stop | 3 | +0.05 | +| FIL | 03-10 18:00 | 03-10 19:00 | stop_loss | 1 | -1.49 | +| FIL | 03-10 19:00 | 03-10 21:00 | stop_loss | 2 | -1.49 | +| FIL | 03-10 21:00 | 03-10 22:00 | stop_loss | 1 | -1.49 | +| WIF | 03-10 22:00 | 03-11 00:00 | trailing_stop | 2 | -0.49 | +| SEI | 03-10 22:00 | 03-11 01:00 | stop_loss | 3 | -1.49 | +| TON | 03-10 19:00 | 03-11 01:00 | stop_loss | 6 | -1.49 | +| APT | 03-10 23:00 | 03-11 02:00 | stop_loss | 3 | -1.49 | +| SEI | 03-11 01:00 | 03-11 02:00 | stop_loss | 1 | -1.49 | +| FIL | 03-10 22:00 | 03-11 04:00 | stop_loss | 6 | -1.49 | +| TON | 03-11 01:00 | 03-11 04:00 | stop_loss | 3 | -1.49 | +| NEAR | 03-11 04:00 | 03-11 05:00 | stop_loss | 1 | -1.49 | +| OP | 03-10 21:00 | 03-11 05:00 | stop_loss | 8 | -1.49 | +| SEI | 03-11 02:00 | 03-11 05:00 | trailing_stop | 3 | -0.59 | +| KAS | 03-11 02:00 | 03-11 07:00 | stop_loss | 5 | -1.49 | +| RENDER | 03-11 06:00 | 03-11 07:00 | stop_loss | 1 | -1.49 | +| ARB | 03-10 21:00 | 03-11 10:00 | take_profit | 13 | +1.49 | +| FIL | 03-11 07:00 | 03-11 10:00 | trailing_stop | 3 | -0.01 | +| SHIB | 03-11 06:00 | 03-11 12:00 | take_profit | 6 | +1.49 | +| LTC | 03-11 04:00 | 03-11 17:00 | take_profit | 13 | +1.49 | +| TRX | 03-09 11:00 | 03-11 17:00 | take_profit | 54 | +1.49 | +| FIL | 03-12 02:00 | 03-12 04:00 | stop_loss | 2 | -1.49 | +| BONK | 03-12 04:00 | 03-12 05:00 | stop_loss | 1 | -1.49 | +| FET | 03-12 01:00 | 03-12 05:00 | stop_loss | 4 | -1.49 | +| APT | 03-12 03:00 | 03-12 07:00 | stop_loss | 4 | -1.49 | +| SHIB | 03-12 04:00 | 03-12 07:00 | trailing_stop | 3 | -0.49 | +| TIA | 03-12 06:00 | 03-12 09:00 | take_profit | 3 | +1.49 | +| PEPE | 03-12 04:00 | 03-12 10:00 | take_profit | 6 | +1.49 | +| UNI | 03-12 03:00 | 03-12 10:00 | take_profit | 7 | +1.49 | +| ARB | 03-12 03:00 | 03-12 11:00 | trailing_stop | 8 | -0.60 | +| FIL | 03-12 09:00 | 03-12 11:00 | stop_loss | 2 | -1.49 | +| OP | 03-12 03:00 | 03-12 12:00 | stop_loss | 9 | -1.49 | +| ARB | 03-12 11:00 | 03-12 14:00 | stop_loss | 3 | -1.49 | +| AVAX | 03-12 03:00 | 03-12 14:00 | trailing_stop | 11 | -0.35 | +| ETC | 03-12 03:00 | 03-12 14:00 | stop_loss | 11 | -1.49 | +| FIL | 03-12 11:00 | 03-12 14:00 | stop_loss | 3 | -1.49 | +| KAS | 03-12 03:00 | 03-12 14:00 | trailing_stop | 11 | -0.55 | +| TIA | 03-12 12:00 | 03-12 14:00 | stop_loss | 2 | -1.49 | +| TON | 03-12 13:00 | 03-12 15:00 | stop_loss | 2 | -1.49 | +| OP | 03-12 14:00 | 03-12 19:00 | trailing_stop | 5 | +0.07 | +| APT | 03-12 14:00 | 03-13 00:00 | take_profit | 10 | +1.49 | +| ATOM | 03-12 14:00 | 03-13 00:00 | take_profit | 10 | +1.49 | +| LTC | 03-12 06:00 | 03-13 00:00 | take_profit | 18 | +1.49 | +| TON | 03-12 15:00 | 03-13 08:00 | stop_loss | 17 | -1.49 | +| TON | 03-13 08:00 | 03-13 12:00 | take_profit | 4 | +1.49 | +| NEAR | 03-13 15:00 | 03-13 16:00 | trailing_stop | 1 | -0.60 | +| FET | 03-13 17:00 | 03-13 18:00 | trailing_stop | 1 | -0.34 | +| FIL | 03-13 19:00 | 03-13 22:00 | stop_loss | 3 | -1.49 | +| SUI | 03-13 18:00 | 03-13 22:00 | stop_loss | 4 | -1.49 | +| ARB | 03-13 23:00 | 03-14 00:00 | stop_loss | 1 | -1.49 | +| FET | 03-13 18:00 | 03-14 02:00 | take_profit | 8 | +1.49 | +| OP | 03-14 00:00 | 03-14 03:00 | take_profit | 3 | +1.49 | +| BONK | 03-14 03:00 | 03-14 05:00 | stop_loss | 2 | -1.49 | +| NEAR | 03-14 00:00 | 03-14 05:00 | trailing_stop | 5 | -0.50 | +| PEPE | 03-14 03:00 | 03-14 05:00 | stop_loss | 2 | -1.49 | +| ARB | 03-14 00:00 | 03-14 06:00 | stop_loss | 6 | -1.49 | +| FIL | 03-14 03:00 | 03-14 06:00 | stop_loss | 3 | -1.49 | +| INJ | 03-13 22:00 | 03-14 06:00 | stop_loss | 8 | -1.49 | +| SHIB | 03-14 05:00 | 03-14 06:00 | stop_loss | 1 | -1.49 | +| TIA | 03-14 05:00 | 03-14 06:00 | stop_loss | 1 | -1.49 | +| UNI | 03-14 00:00 | 03-14 06:00 | stop_loss | 6 | -1.49 | +| ETC | 03-14 06:00 | 03-14 10:00 | stop_loss | 4 | -1.49 | +| TRX | 03-12 10:00 | 03-14 12:00 | take_profit | 50 | +1.49 | +| APT | 03-14 13:00 | 03-14 15:00 | stop_loss | 2 | -1.49 | +| ETC | 03-14 10:00 | 03-14 16:00 | confirmed_bearish_exit | 6 | -0.26 | +| FIL | 03-14 06:00 | 03-14 18:00 | take_profit | 12 | +1.49 | +| APT | 03-14 15:00 | 03-15 01:00 | trailing_stop | 10 | -0.29 | +| NEAR | 03-14 17:00 | 03-15 01:00 | take_profit | 8 | +1.49 | +| ARB | 03-14 15:00 | 03-15 02:00 | take_profit | 11 | +1.49 | +| AVAX | 03-14 17:00 | 03-15 02:00 | take_profit | 9 | +1.49 | +| SEI | 03-14 06:00 | 03-15 06:00 | trailing_stop | 24 | -0.20 | +| KAS | 03-13 17:00 | 03-15 11:00 | trailing_stop | 42 | +0.03 | +| UNI | 03-14 15:00 | 03-15 13:00 | trailing_stop | 22 | -0.12 | +| RENDER | 03-15 15:00 | 03-15 17:00 | trailing_stop | 2 | -0.63 | +| ARB | 03-15 16:00 | 03-15 21:00 | take_profit | 5 | +1.49 | +| LTC | 03-14 09:00 | 03-15 21:00 | take_profit | 36 | +1.49 | +| NEAR | 03-15 16:00 | 03-15 21:00 | take_profit | 5 | +1.49 | +| SUI | 03-15 16:00 | 03-15 21:00 | trailing_stop | 5 | -0.08 | +| APT | 03-15 16:00 | 03-15 22:00 | take_profit | 6 | +1.49 | +| SHIB | 03-15 16:00 | 03-15 22:00 | take_profit | 6 | +1.49 | +| TIA | 03-15 16:00 | 03-15 22:00 | take_profit | 6 | +1.49 | +| KAS | 03-15 13:00 | 03-15 23:00 | take_profit | 10 | +1.49 | +| TON | 03-15 06:00 | 03-16 01:00 | take_profit | 19 | +1.49 | +| ATOM | 03-15 00:00 | 03-16 03:00 | take_profit | 27 | +1.49 | +| AVAX | 03-16 19:00 | 03-16 22:00 | take_profit | 3 | +1.49 | +| PEPE | 03-17 04:00 | 03-17 05:00 | stop_loss | 1 | -1.49 | +| UNI | 03-17 04:00 | 03-17 05:00 | stop_loss | 1 | -1.49 | +| FET | 03-17 06:00 | 03-17 07:00 | take_profit | 1 | +1.49 | +| BONK | 03-17 05:00 | 03-17 08:00 | take_profit | 3 | +1.49 | +| FET | 03-17 07:00 | 03-17 08:00 | stop_loss | 1 | -1.49 | +| PEPE | 03-17 05:00 | 03-17 09:00 | stop_loss | 4 | -1.49 | +| TRX | 03-15 05:00 | 03-17 09:00 | take_profit | 52 | +1.49 | +| SUI | 03-17 04:00 | 03-17 10:00 | stop_loss | 6 | -1.49 | +| UNI | 03-17 05:00 | 03-17 10:00 | stop_loss | 5 | -1.49 | +| APT | 03-17 10:00 | 03-17 12:00 | stop_loss | 2 | -1.49 | +| ARB | 03-17 11:00 | 03-17 12:00 | stop_loss | 1 | -1.49 | +| ATOM | 03-17 09:00 | 03-17 12:00 | stop_loss | 3 | -1.49 | +| ETC | 03-17 08:00 | 03-17 12:00 | stop_loss | 4 | -1.49 | +| FIL | 03-17 10:00 | 03-17 12:00 | stop_loss | 2 | -1.49 | +| OP | 03-17 11:00 | 03-17 12:00 | stop_loss | 1 | -1.49 | +| TIA | 03-17 10:00 | 03-17 12:00 | stop_loss | 2 | -1.49 | +| FET | 03-17 12:00 | 03-17 13:00 | take_profit | 1 | +1.49 | +| INJ | 03-17 11:00 | 03-17 13:00 | stop_loss | 2 | -1.49 | +| PEPE | 03-17 12:00 | 03-17 14:00 | trailing_stop | 2 | -0.62 | +| RENDER | 03-17 13:00 | 03-17 14:00 | stop_loss | 1 | -1.49 | +| FIL | 03-17 12:00 | 03-17 17:00 | confirmed_bearish_exit | 5 | +0.54 | +| SHIB | 03-17 12:00 | 03-17 17:00 | take_profit | 5 | +1.49 | +| OP | 03-17 12:00 | 03-17 20:00 | take_profit | 8 | +1.49 | +| ATOM | 03-17 12:00 | 03-17 21:00 | confirmed_bearish_exit | 9 | +0.94 | +| PEPE | 03-17 19:00 | 03-17 22:00 | trailing_stop | 3 | -0.62 | +| RENDER | 03-17 21:00 | 03-17 22:00 | stop_loss | 1 | -1.49 | +| RENDER | 03-17 22:00 | 03-18 00:00 | stop_loss | 2 | -1.49 | +| SUI | 03-17 16:00 | 03-18 00:00 | trailing_stop | 8 | -0.36 | +| NEAR | 03-17 12:00 | 03-18 04:00 | trailing_stop | 16 | -0.26 | +| RENDER | 03-18 00:00 | 03-18 07:00 | stop_loss | 7 | -1.49 | +| SEI | 03-17 10:00 | 03-18 07:00 | trailing_stop | 21 | -0.40 | +| FET | 03-18 07:00 | 03-18 09:00 | trailing_stop | 2 | -0.29 | +| AVAX | 03-17 12:00 | 03-18 11:00 | stop_loss | 23 | -1.49 | +| ETC | 03-17 16:00 | 03-18 11:00 | stop_loss | 19 | -1.49 | +| LTC | 03-18 07:00 | 03-18 11:00 | stop_loss | 4 | -1.49 | +| NEAR | 03-18 06:00 | 03-18 11:00 | stop_loss | 5 | -1.49 | +| SEI | 03-18 10:00 | 03-18 11:00 | stop_loss | 1 | -1.49 | +| TON | 03-18 10:00 | 03-18 11:00 | stop_loss | 1 | -1.49 | +| UNI | 03-18 10:00 | 03-18 11:00 | stop_loss | 1 | -1.49 | +| APT | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| ARB | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| AVAX | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| ETC | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| FIL | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| INJ | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| LTC | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| OP | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| PEPE | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| RENDER | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| SEI | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| SHIB | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| SUI | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| TIA | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| TON | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| UNI | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| WIF | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| WIF | 03-18 12:00 | 03-18 13:00 | take_profit | 1 | +1.49 | +| APT | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| ARB | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| AVAX | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| BONK | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| ETC | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| FIL | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| INJ | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| NEAR | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| OP | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| PEPE | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| RENDER | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| SHIB | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| SUI | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| TIA | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| TON | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| UNI | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| WIF | 03-18 13:00 | 03-18 14:00 | stop_loss | 1 | -1.49 | +| FIL | 03-18 14:00 | 03-18 15:00 | stop_loss | 1 | -1.49 | +| LTC | 03-18 12:00 | 03-18 15:00 | stop_loss | 3 | -1.49 | +| SEI | 03-18 12:00 | 03-18 15:00 | stop_loss | 3 | -1.49 | +| TON | 03-18 14:00 | 03-18 15:00 | trailing_stop | 1 | -0.63 | +| UNI | 03-18 14:00 | 03-18 15:00 | stop_loss | 1 | -1.49 | +| OP | 03-18 14:00 | 03-18 16:00 | stop_loss | 2 | -1.49 | +| RENDER | 03-18 14:00 | 03-18 16:00 | stop_loss | 2 | -1.49 | +| UNI | 03-18 15:00 | 03-18 16:00 | stop_loss | 1 | -1.49 | +| WIF | 03-18 14:00 | 03-18 16:00 | stop_loss | 2 | -1.49 | +| FIL | 03-18 15:00 | 03-18 17:00 | stop_loss | 2 | -1.49 | +| RENDER | 03-18 16:00 | 03-18 17:00 | trailing_stop | 1 | -0.37 | +| TIA | 03-18 14:00 | 03-18 17:00 | stop_loss | 3 | -1.49 | +| APT | 03-18 14:00 | 03-18 18:00 | take_profit | 4 | +1.49 | +| ATOM | 03-18 14:00 | 03-18 18:00 | stop_loss | 4 | -1.49 | +| BONK | 03-18 14:00 | 03-18 18:00 | take_profit | 4 | +1.49 | +| PEPE | 03-18 14:00 | 03-18 18:00 | take_profit | 4 | +1.49 | +| ARB | 03-18 14:00 | 03-18 20:00 | trailing_stop | 6 | -0.53 | +| NEAR | 03-18 14:00 | 03-18 20:00 | trailing_stop | 6 | -0.70 | +| SHIB | 03-18 14:00 | 03-18 20:00 | trailing_stop | 6 | -0.49 | +| ETC | 03-18 14:00 | 03-18 21:00 | take_profit | 7 | +1.49 | +| PEPE | 03-18 21:00 | 03-18 22:00 | stop_loss | 1 | -1.49 | +| OP | 03-18 16:00 | 03-18 23:00 | trailing_stop | 7 | -0.36 | +| NEAR | 03-18 21:00 | 03-19 00:00 | stop_loss | 3 | -1.49 | +| SEI | 03-18 15:00 | 03-19 00:00 | stop_loss | 9 | -1.49 | +| OP | 03-18 23:00 | 03-19 01:00 | stop_loss | 2 | -1.49 | +| BONK | 03-18 21:00 | 03-19 02:00 | stop_loss | 5 | -1.49 | +| INJ | 03-18 14:00 | 03-19 02:00 | trailing_stop | 12 | -0.44 | +| RENDER | 03-18 21:00 | 03-19 02:00 | stop_loss | 5 | -1.49 | +| SUI | 03-18 14:00 | 03-19 02:00 | trailing_stop | 12 | -0.33 | +| UNI | 03-18 16:00 | 03-19 03:00 | take_profit | 11 | +1.49 | +| PEPE | 03-18 22:00 | 03-19 04:00 | stop_loss | 6 | -1.49 | +| SHIB | 03-18 21:00 | 03-19 04:00 | confirmed_bearish_exit | 7 | -0.67 | +| TON | 03-18 23:00 | 03-19 04:00 | stop_loss | 5 | -1.49 | +| ARB | 03-18 21:00 | 03-19 05:00 | stop_loss | 8 | -1.49 | +| AVAX | 03-18 14:00 | 03-19 05:00 | trailing_stop | 15 | -0.15 | +| LTC | 03-18 15:00 | 03-19 05:00 | trailing_stop | 14 | -0.44 | +| TIA | 03-18 22:00 | 03-19 05:00 | stop_loss | 7 | -1.49 | +| ATOM | 03-18 22:00 | 03-19 06:00 | stop_loss | 8 | -1.49 | +| FIL | 03-18 21:00 | 03-19 06:00 | stop_loss | 9 | -1.49 | +| ETC | 03-18 21:00 | 03-19 07:00 | stop_loss | 10 | -1.49 | +| FET | 03-19 08:00 | 03-19 09:00 | take_profit | 1 | +1.49 | +| RENDER | 03-19 08:00 | 03-19 10:00 | stop_loss | 2 | -1.49 | +| TON | 03-19 06:00 | 03-19 10:00 | stop_loss | 4 | -1.49 | +| RENDER | 03-19 10:00 | 03-19 11:00 | stop_loss | 1 | -1.49 | +| FET | 03-19 11:00 | 03-19 12:00 | stop_loss | 1 | -1.49 | +| INJ | 03-19 07:00 | 03-19 12:00 | stop_loss | 5 | -1.49 | +| NEAR | 03-19 07:00 | 03-19 12:00 | stop_loss | 5 | -1.49 | +| OP | 03-19 07:00 | 03-19 12:00 | trailing_stop | 5 | -0.48 | +| TIA | 03-19 07:00 | 03-19 12:00 | stop_loss | 5 | -1.49 | +| APT | 03-19 12:00 | 03-19 13:00 | stop_loss | 1 | -1.49 | +| ATOM | 03-19 10:00 | 03-19 13:00 | stop_loss | 3 | -1.49 | +| FET | 03-19 12:00 | 03-19 13:00 | stop_loss | 1 | -1.49 | +| FIL | 03-19 12:00 | 03-19 13:00 | stop_loss | 1 | -1.49 | +| RENDER | 03-19 11:00 | 03-19 13:00 | stop_loss | 2 | -1.49 | +| SEI | 03-19 08:00 | 03-19 13:00 | stop_loss | 5 | -1.49 | +| TON | 03-19 10:00 | 03-19 13:00 | stop_loss | 3 | -1.49 | +| WIF | 03-19 12:00 | 03-19 13:00 | take_profit | 1 | +1.49 | +| APT | 03-19 13:00 | 03-19 14:00 | stop_loss | 1 | -1.49 | +| APT | 03-19 14:00 | 03-19 15:00 | stop_loss | 1 | -1.49 | +| ARB | 03-19 12:00 | 03-19 15:00 | stop_loss | 3 | -1.49 | +| AVAX | 03-19 12:00 | 03-19 15:00 | stop_loss | 3 | -1.49 | +| BONK | 03-19 12:00 | 03-19 15:00 | stop_loss | 3 | -1.49 | +| FET | 03-19 14:00 | 03-19 15:00 | stop_loss | 1 | -1.49 | +| FIL | 03-19 13:00 | 03-19 15:00 | stop_loss | 2 | -1.49 | +| NEAR | 03-19 12:00 | 03-19 15:00 | stop_loss | 3 | -1.49 | +| SUI | 03-19 12:00 | 03-19 15:00 | stop_loss | 3 | -1.49 | +| TRX | 03-18 12:00 | 03-19 15:00 | trailing_stop | 27 | -0.22 | +| UNI | 03-19 12:00 | 03-19 15:00 | stop_loss | 3 | -1.49 | +| FET | 03-19 15:00 | 03-19 16:00 | trailing_stop | 1 | -0.53 | +| PEPE | 03-19 12:00 | 03-19 16:00 | stop_loss | 4 | -1.49 | +| SHIB | 03-19 12:00 | 03-19 16:00 | stop_loss | 4 | -1.49 | +| TIA | 03-19 12:00 | 03-19 16:00 | stop_loss | 4 | -1.49 | +| BONK | 03-19 16:00 | 03-19 17:00 | trailing_stop | 1 | -0.69 | +| FIL | 03-19 15:00 | 03-19 17:00 | stop_loss | 2 | -1.49 | +| PEPE | 03-19 16:00 | 03-19 19:00 | take_profit | 3 | +1.49 | +| RENDER | 03-19 13:00 | 03-19 19:00 | take_profit | 6 | +1.49 | +| SHIB | 03-19 16:00 | 03-19 19:00 | take_profit | 3 | +1.49 | +| INJ | 03-19 12:00 | 03-19 20:00 | take_profit | 8 | +1.49 | +| ATOM | 03-19 20:00 | 03-19 22:00 | stop_loss | 2 | -1.49 | +| KAS | 03-19 21:00 | 03-19 22:00 | stop_loss | 1 | -1.49 | +| TIA | 03-19 16:00 | 03-19 22:00 | trailing_stop | 6 | -0.48 | +| APT | 03-19 15:00 | 03-20 01:00 | take_profit | 10 | +1.49 | +| SEI | 03-19 15:00 | 03-20 01:00 | take_profit | 10 | +1.49 | +| LTC | 03-19 12:00 | 03-20 04:00 | take_profit | 16 | +1.49 | +| ATOM | 03-19 22:00 | 03-20 05:00 | trailing_stop | 7 | -0.11 | +| BONK | 03-19 23:00 | 03-20 05:00 | take_profit | 6 | +1.49 | +| FIL | 03-19 22:00 | 03-20 05:00 | take_profit | 7 | +1.49 | +| TRX | 03-19 15:00 | 03-20 10:00 | take_profit | 19 | +1.49 | +| KAS | 03-20 16:00 | 03-20 17:00 | stop_loss | 1 | -1.49 | +| KAS | 03-20 17:00 | 03-20 18:00 | take_profit | 1 | +1.49 | +| NEAR | 03-20 15:00 | 03-20 18:00 | stop_loss | 3 | -1.49 | +| FET | 03-20 18:00 | 03-20 19:00 | stop_loss | 1 | -1.49 | +| INJ | 03-20 17:00 | 03-20 19:00 | stop_loss | 2 | -1.49 | +| FET | 03-20 19:00 | 03-20 20:00 | stop_loss | 1 | -1.49 | +| INJ | 03-20 19:00 | 03-20 20:00 | stop_loss | 1 | -1.49 | +| FET | 03-20 20:00 | 03-20 21:00 | take_profit | 1 | +1.49 | +| RENDER | 03-20 18:00 | 03-20 21:00 | trailing_stop | 3 | -0.59 | +| PEPE | 03-20 18:00 | 03-20 22:00 | take_profit | 4 | +1.49 | +| LTC | 03-20 14:00 | 03-21 01:00 | take_profit | 11 | +1.49 | +| TIA | 03-20 18:00 | 03-21 12:00 | trailing_stop | 18 | -0.45 | +| KAS | 03-21 11:00 | 03-21 13:00 | stop_loss | 2 | -1.49 | +| UNI | 03-20 15:00 | 03-21 13:00 | trailing_stop | 22 | -0.06 | +| ARB | 03-20 18:00 | 03-21 15:00 | trailing_stop | 21 | -0.21 | +| NEAR | 03-20 18:00 | 03-21 15:00 | trailing_stop | 21 | -0.65 | +| KAS | 03-21 13:00 | 03-21 16:00 | trailing_stop | 3 | -0.44 | +| APT | 03-21 22:00 | 03-21 23:00 | stop_loss | 1 | -1.49 | +| ATOM | 03-21 19:00 | 03-21 23:00 | stop_loss | 4 | -1.49 | +| AVAX | 03-21 14:00 | 03-21 23:00 | stop_loss | 9 | -1.49 | +| FET | 03-21 21:00 | 03-21 23:00 | stop_loss | 2 | -1.49 | +| LTC | 03-21 14:00 | 03-21 23:00 | stop_loss | 9 | -1.49 | +| SEI | 03-20 14:00 | 03-21 23:00 | stop_loss | 33 | -1.49 | +| SUI | 03-20 18:00 | 03-21 23:00 | stop_loss | 29 | -1.49 | +| UNI | 03-21 14:00 | 03-21 23:00 | stop_loss | 9 | -1.49 | +| APT | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| ARB | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| ATOM | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| AVAX | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| BONK | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| ETC | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| INJ | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| KAS | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| LTC | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| NEAR | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| OP | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| PEPE | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| RENDER | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| SHIB | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| SUI | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| TIA | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| UNI | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| WIF | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| APT | 03-22 00:00 | 03-22 01:00 | stop_loss | 1 | -1.49 | +| WIF | 03-22 00:00 | 03-22 02:00 | take_profit | 2 | +1.49 | +| INJ | 03-22 00:00 | 03-22 06:00 | stop_loss | 6 | -1.49 | +| SHIB | 03-22 00:00 | 03-22 06:00 | stop_loss | 6 | -1.49 | +| ARB | 03-22 00:00 | 03-22 07:00 | stop_loss | 7 | -1.49 | +| BONK | 03-22 00:00 | 03-22 07:00 | trailing_stop | 7 | -0.33 | +| OP | 03-22 00:00 | 03-22 07:00 | trailing_stop | 7 | -0.53 | +| SUI | 03-22 00:00 | 03-22 07:00 | trailing_stop | 7 | -0.64 | +| APT | 03-22 01:00 | 03-22 08:00 | stop_loss | 7 | -1.49 | +| ATOM | 03-22 00:00 | 03-22 08:00 | stop_loss | 8 | -1.49 | +| AVAX | 03-22 00:00 | 03-22 08:00 | stop_loss | 8 | -1.49 | +| LTC | 03-22 00:00 | 03-22 08:00 | stop_loss | 8 | -1.49 | +| PEPE | 03-22 00:00 | 03-22 08:00 | stop_loss | 8 | -1.49 | +| SEI | 03-22 00:00 | 03-22 08:00 | stop_loss | 8 | -1.49 | +| TIA | 03-22 00:00 | 03-22 08:00 | stop_loss | 8 | -1.49 | +| UNI | 03-22 00:00 | 03-22 08:00 | stop_loss | 8 | -1.49 | +| KAS | 03-22 05:00 | 03-22 09:00 | take_profit | 4 | +1.49 | +| FET | 03-22 09:00 | 03-22 10:00 | stop_loss | 1 | -1.49 | +| NEAR | 03-22 07:00 | 03-22 11:00 | stop_loss | 4 | -1.49 | +| FET | 03-22 11:00 | 03-22 12:00 | stop_loss | 1 | -1.49 | +| FET | 03-22 12:00 | 03-22 13:00 | trailing_stop | 1 | -0.18 | +| TRX | 03-22 07:00 | 03-22 14:00 | take_profit | 7 | +1.49 | +| APT | 03-22 11:00 | 03-22 15:00 | stop_loss | 4 | -1.49 | +| ETC | 03-22 00:00 | 03-22 18:00 | stop_loss | 18 | -1.49 | +| INJ | 03-22 16:00 | 03-22 18:00 | stop_loss | 2 | -1.49 | +| RENDER | 03-22 10:00 | 03-22 18:00 | trailing_stop | 8 | -0.30 | +| SUI | 03-22 17:00 | 03-22 18:00 | stop_loss | 1 | -1.49 | +| PEPE | 03-22 18:00 | 03-22 19:00 | stop_loss | 1 | -1.49 | +| UNI | 03-22 18:00 | 03-22 19:00 | stop_loss | 1 | -1.49 | +| LTC | 03-22 16:00 | 03-22 20:00 | stop_loss | 4 | -1.49 | +| FIL | 03-22 19:00 | 03-22 21:00 | stop_loss | 2 | -1.49 | +| LTC | 03-22 20:00 | 03-22 21:00 | stop_loss | 1 | -1.49 | +| NEAR | 03-22 18:00 | 03-22 21:00 | stop_loss | 3 | -1.49 | +| PEPE | 03-22 19:00 | 03-22 21:00 | stop_loss | 2 | -1.49 | +| RENDER | 03-22 18:00 | 03-22 21:00 | stop_loss | 3 | -1.49 | +| SUI | 03-22 19:00 | 03-22 21:00 | stop_loss | 2 | -1.49 | +| TIA | 03-22 19:00 | 03-22 21:00 | stop_loss | 2 | -1.49 | +| PEPE | 03-22 21:00 | 03-22 22:00 | trailing_stop | 1 | -0.48 | +| SUI | 03-22 21:00 | 03-22 22:00 | trailing_stop | 1 | -0.60 | +| APT | 03-22 23:00 | 03-23 00:00 | trailing_stop | 1 | -0.11 | +| FIL | 03-22 21:00 | 03-23 00:00 | stop_loss | 3 | -1.49 | +| SHIB | 03-22 20:00 | 03-23 00:00 | trailing_stop | 4 | -0.66 | +| FIL | 03-23 03:00 | 03-23 06:00 | stop_loss | 3 | -1.49 | +| KAS | 03-23 03:00 | 03-23 06:00 | stop_loss | 3 | -1.49 | +| LTC | 03-22 21:00 | 03-23 06:00 | trailing_stop | 9 | -0.24 | +| ATOM | 03-23 06:00 | 03-23 07:00 | stop_loss | 1 | -1.49 | +| FIL | 03-23 06:00 | 03-23 07:00 | stop_loss | 1 | -1.49 | +| KAS | 03-23 06:00 | 03-23 07:00 | stop_loss | 1 | -1.49 | +| SUI | 03-23 06:00 | 03-23 07:00 | stop_loss | 1 | -1.49 | +| TRX | 03-23 03:00 | 03-23 07:00 | stop_loss | 4 | -1.49 | +| KAS | 03-23 07:00 | 03-23 08:00 | stop_loss | 1 | -1.49 | +| NEAR | 03-23 06:00 | 03-23 09:00 | stop_loss | 3 | -1.49 | +| RENDER | 03-23 07:00 | 03-23 09:00 | stop_loss | 2 | -1.49 | +| ATOM | 03-23 07:00 | 03-23 11:00 | take_profit | 4 | +1.49 | +| KAS | 03-23 08:00 | 03-23 11:00 | take_profit | 3 | +1.49 | +| RENDER | 03-23 09:00 | 03-23 11:00 | take_profit | 2 | +1.49 | +| SUI | 03-24 04:00 | 03-24 07:00 | trailing_stop | 3 | +0.06 | +| TRX | 03-23 15:00 | 03-24 12:00 | take_profit | 21 | +1.49 | +| INJ | 03-24 11:00 | 03-24 14:00 | stop_loss | 3 | -1.49 | +| APT | 03-24 15:00 | 03-24 16:00 | trailing_stop | 1 | -0.36 | +| FIL | 03-24 10:00 | 03-24 16:00 | stop_loss | 6 | -1.49 | +| AVAX | 03-24 13:00 | 03-24 17:00 | stop_loss | 4 | -1.49 | +| INJ | 03-24 16:00 | 03-24 17:00 | stop_loss | 1 | -1.49 | +| ARB | 03-24 17:00 | 03-24 20:00 | take_profit | 3 | +1.49 | +| AVAX | 03-24 17:00 | 03-24 20:00 | take_profit | 3 | +1.49 | +| ETC | 03-24 11:00 | 03-24 20:00 | take_profit | 9 | +1.49 | +| FIL | 03-24 17:00 | 03-24 20:00 | take_profit | 3 | +1.49 | +| INJ | 03-24 17:00 | 03-24 20:00 | take_profit | 3 | +1.49 | +| SEI | 03-24 19:00 | 03-24 20:00 | take_profit | 1 | +1.49 | +| TIA | 03-24 17:00 | 03-24 20:00 | take_profit | 3 | +1.49 | +| UNI | 03-24 17:00 | 03-24 20:00 | take_profit | 3 | +1.49 | +| NEAR | 03-24 22:00 | 03-25 06:00 | stop_loss | 8 | -1.49 | +| KAS | 03-25 02:00 | 03-25 07:00 | take_profit | 5 | +1.49 | +| ATOM | 03-24 03:00 | 03-25 13:00 | trailing_stop | 34 | +0.03 | +| TRX | 03-24 21:00 | 03-25 17:00 | take_profit | 20 | +1.49 | +| APT | 03-25 13:00 | 03-25 21:00 | stop_loss | 8 | -1.49 | +| WIF | 03-25 22:00 | 03-25 23:00 | stop_loss | 1 | -1.49 | +| ATOM | 03-25 15:00 | 03-26 02:00 | stop_loss | 11 | -1.49 | +| BONK | 03-25 22:00 | 03-26 02:00 | stop_loss | 4 | -1.49 | +| LTC | 03-25 15:00 | 03-26 02:00 | trailing_stop | 11 | -0.53 | +| OP | 03-26 01:00 | 03-26 02:00 | stop_loss | 1 | -1.49 | +| PEPE | 03-25 20:00 | 03-26 02:00 | stop_loss | 6 | -1.49 | +| WIF | 03-25 23:00 | 03-26 02:00 | confirmed_bearish_exit | 3 | +0.03 | +| ARB | 03-26 02:00 | 03-26 03:00 | stop_loss | 1 | -1.49 | +| FIL | 03-26 01:00 | 03-26 03:00 | stop_loss | 2 | -1.49 | +| KAS | 03-26 01:00 | 03-26 03:00 | stop_loss | 2 | -1.49 | +| SHIB | 03-25 18:00 | 03-26 03:00 | stop_loss | 9 | -1.49 | +| APT | 03-26 02:00 | 03-26 05:00 | stop_loss | 3 | -1.49 | +| ARB | 03-26 03:00 | 03-26 05:00 | stop_loss | 2 | -1.49 | +| AVAX | 03-26 02:00 | 03-26 05:00 | stop_loss | 3 | -1.49 | +| BONK | 03-26 03:00 | 03-26 05:00 | stop_loss | 2 | -1.49 | +| ETC | 03-26 03:00 | 03-26 05:00 | stop_loss | 2 | -1.49 | +| INJ | 03-26 03:00 | 03-26 05:00 | stop_loss | 2 | -1.49 | +| LTC | 03-26 03:00 | 03-26 05:00 | stop_loss | 2 | -1.49 | +| NEAR | 03-26 03:00 | 03-26 05:00 | stop_loss | 2 | -1.49 | +| OP | 03-26 03:00 | 03-26 05:00 | stop_loss | 2 | -1.49 | +| PEPE | 03-26 02:00 | 03-26 05:00 | stop_loss | 3 | -1.49 | +| RENDER | 03-26 03:00 | 03-26 05:00 | stop_loss | 2 | -1.49 | +| SHIB | 03-26 03:00 | 03-26 05:00 | stop_loss | 2 | -1.49 | +| SUI | 03-26 03:00 | 03-26 05:00 | stop_loss | 2 | -1.49 | +| TIA | 03-26 03:00 | 03-26 05:00 | stop_loss | 2 | -1.49 | +| TON | 03-26 00:00 | 03-26 05:00 | stop_loss | 5 | -1.49 | +| UNI | 03-26 02:00 | 03-26 05:00 | stop_loss | 3 | -1.49 | +| FET | 03-26 05:00 | 03-26 06:00 | stop_loss | 1 | -1.49 | +| FIL | 03-26 03:00 | 03-26 06:00 | stop_loss | 3 | -1.49 | +| RENDER | 03-26 05:00 | 03-26 06:00 | stop_loss | 1 | -1.49 | +| SEI | 03-26 03:00 | 03-26 06:00 | stop_loss | 3 | -1.49 | +| ARB | 03-26 05:00 | 03-26 08:00 | stop_loss | 3 | -1.49 | +| KAS | 03-26 07:00 | 03-26 08:00 | stop_loss | 1 | -1.49 | +| OP | 03-26 05:00 | 03-26 08:00 | stop_loss | 3 | -1.49 | +| ARB | 03-26 08:00 | 03-26 09:00 | stop_loss | 1 | -1.49 | +| ATOM | 03-26 04:00 | 03-26 09:00 | stop_loss | 5 | -1.49 | +| AVAX | 03-26 05:00 | 03-26 09:00 | stop_loss | 4 | -1.49 | +| BONK | 03-26 05:00 | 03-26 09:00 | stop_loss | 4 | -1.49 | +| ETC | 03-26 05:00 | 03-26 09:00 | stop_loss | 4 | -1.49 | +| FET | 03-26 06:00 | 03-26 09:00 | stop_loss | 3 | -1.49 | +| FIL | 03-26 06:00 | 03-26 09:00 | stop_loss | 3 | -1.49 | +| INJ | 03-26 05:00 | 03-26 09:00 | stop_loss | 4 | -1.49 | +| KAS | 03-26 08:00 | 03-26 09:00 | stop_loss | 1 | -1.49 | +| LTC | 03-26 05:00 | 03-26 09:00 | stop_loss | 4 | -1.49 | +| NEAR | 03-26 05:00 | 03-26 09:00 | stop_loss | 4 | -1.49 | +| PEPE | 03-26 05:00 | 03-26 09:00 | stop_loss | 4 | -1.49 | +| RENDER | 03-26 06:00 | 03-26 09:00 | stop_loss | 3 | -1.49 | +| SEI | 03-26 06:00 | 03-26 09:00 | stop_loss | 3 | -1.49 | +| SHIB | 03-26 05:00 | 03-26 09:00 | stop_loss | 4 | -1.49 | +| SUI | 03-26 06:00 | 03-26 09:00 | stop_loss | 3 | -1.49 | +| TIA | 03-26 05:00 | 03-26 09:00 | stop_loss | 4 | -1.49 | +| UNI | 03-26 05:00 | 03-26 09:00 | stop_loss | 4 | -1.49 | +| OP | 03-26 08:00 | 03-26 10:00 | stop_loss | 2 | -1.49 | +| TON | 03-26 05:00 | 03-26 10:00 | stop_loss | 5 | -1.49 | +| FIL | 03-26 09:00 | 03-26 11:00 | stop_loss | 2 | -1.49 | +| ETC | 03-26 09:00 | 03-26 12:00 | stop_loss | 3 | -1.49 | +| FET | 03-26 10:00 | 03-26 12:00 | take_profit | 2 | +1.49 | +| UNI | 03-26 09:00 | 03-26 12:00 | stop_loss | 3 | -1.49 | +| APT | 03-26 05:00 | 03-26 13:00 | take_profit | 8 | +1.49 | +| AVAX | 03-26 09:00 | 03-26 15:00 | stop_loss | 6 | -1.49 | +| BONK | 03-26 09:00 | 03-26 15:00 | trailing_stop | 6 | -0.70 | +| FET | 03-26 14:00 | 03-26 15:00 | stop_loss | 1 | -1.49 | +| INJ | 03-26 09:00 | 03-26 15:00 | stop_loss | 6 | -1.49 | +| KAS | 03-26 09:00 | 03-26 15:00 | stop_loss | 6 | -1.49 | +| NEAR | 03-26 14:00 | 03-26 15:00 | stop_loss | 1 | -1.49 | +| RENDER | 03-26 14:00 | 03-26 15:00 | stop_loss | 1 | -1.49 | +| SEI | 03-26 09:00 | 03-26 15:00 | stop_loss | 6 | -1.49 | +| SUI | 03-26 09:00 | 03-26 15:00 | stop_loss | 6 | -1.49 | +| ARB | 03-26 09:00 | 03-26 16:00 | trailing_stop | 7 | -0.54 | +| TIA | 03-26 09:00 | 03-26 16:00 | stop_loss | 7 | -1.49 | +| BONK | 03-26 15:00 | 03-26 17:00 | stop_loss | 2 | -1.49 | +| LTC | 03-26 09:00 | 03-26 17:00 | stop_loss | 8 | -1.49 | +| OP | 03-26 16:00 | 03-26 17:00 | take_profit | 1 | +1.49 | +| PEPE | 03-26 09:00 | 03-26 17:00 | stop_loss | 8 | -1.49 | +| TON | 03-26 10:00 | 03-26 17:00 | stop_loss | 7 | -1.49 | +| FET | 03-26 15:00 | 03-26 18:00 | stop_loss | 3 | -1.49 | +| KAS | 03-26 17:00 | 03-26 18:00 | trailing_stop | 1 | -0.69 | +| NEAR | 03-26 15:00 | 03-26 18:00 | stop_loss | 3 | -1.49 | +| RENDER | 03-26 15:00 | 03-26 18:00 | stop_loss | 3 | -1.49 | +| OP | 03-26 18:00 | 03-26 19:00 | stop_loss | 1 | -1.49 | +| WIF | 03-26 17:00 | 03-26 20:00 | take_profit | 3 | +1.49 | +| AVAX | 03-26 23:00 | 03-27 04:00 | stop_loss | 5 | -1.49 | +| FET | 03-27 03:00 | 03-27 04:00 | stop_loss | 1 | -1.49 | +| FIL | 03-26 19:00 | 03-27 04:00 | trailing_stop | 9 | -0.33 | +| TON | 03-27 00:00 | 03-27 06:00 | stop_loss | 6 | -1.49 | +| WIF | 03-27 05:00 | 03-27 06:00 | stop_loss | 1 | -1.49 | +| WIF | 03-27 06:00 | 03-27 07:00 | trailing_stop | 1 | -0.62 | +| ATOM | 03-26 23:00 | 03-27 08:00 | trailing_stop | 9 | -0.01 | +| FIL | 03-27 04:00 | 03-27 08:00 | stop_loss | 4 | -1.49 | +| KAS | 03-26 23:00 | 03-27 08:00 | trailing_stop | 9 | -0.22 | +| SEI | 03-27 04:00 | 03-27 08:00 | stop_loss | 4 | -1.49 | +| TIA | 03-27 03:00 | 03-27 08:00 | stop_loss | 5 | -1.49 | +| UNI | 03-26 22:00 | 03-27 08:00 | stop_loss | 10 | -1.49 | +| APT | 03-27 04:00 | 03-27 09:00 | stop_loss | 5 | -1.49 | +| ETC | 03-27 03:00 | 03-27 09:00 | stop_loss | 6 | -1.49 | +| SEI | 03-27 08:00 | 03-27 09:00 | stop_loss | 1 | -1.49 | +| TON | 03-27 08:00 | 03-27 09:00 | stop_loss | 1 | -1.49 | +| APT | 03-27 09:00 | 03-27 10:00 | stop_loss | 1 | -1.49 | +| INJ | 03-27 09:00 | 03-27 10:00 | stop_loss | 1 | -1.49 | +| SEI | 03-27 09:00 | 03-27 10:00 | stop_loss | 1 | -1.49 | +| TON | 03-27 09:00 | 03-27 10:00 | stop_loss | 1 | -1.49 | +| TRX | 03-26 10:00 | 03-27 10:00 | trailing_stop | 24 | -0.02 | +| WIF | 03-27 09:00 | 03-27 10:00 | stop_loss | 1 | -1.49 | +| ATOM | 03-27 10:00 | 03-27 11:00 | stop_loss | 1 | -1.49 | +| FET | 03-27 10:00 | 03-27 12:00 | stop_loss | 2 | -1.49 | +| KAS | 03-27 10:00 | 03-27 12:00 | stop_loss | 2 | -1.49 | +| NEAR | 03-27 10:00 | 03-27 12:00 | stop_loss | 2 | -1.49 | +| RENDER | 03-27 10:00 | 03-27 12:00 | stop_loss | 2 | -1.49 | +| RENDER | 03-27 12:00 | 03-27 13:00 | stop_loss | 1 | -1.49 | +| OP | 03-27 10:00 | 03-27 14:00 | stop_loss | 4 | -1.49 | +| TON | 03-27 10:00 | 03-27 14:00 | stop_loss | 4 | -1.49 | +| WIF | 03-27 10:00 | 03-27 14:00 | stop_loss | 4 | -1.49 | +| ETC | 03-27 10:00 | 03-27 15:00 | take_profit | 5 | +1.49 | +| KAS | 03-27 13:00 | 03-27 15:00 | take_profit | 2 | +1.49 | +| PEPE | 03-27 10:00 | 03-27 15:00 | trailing_stop | 5 | -0.49 | +| RENDER | 03-27 13:00 | 03-27 15:00 | take_profit | 2 | +1.49 | +| TIA | 03-27 10:00 | 03-27 15:00 | stop_loss | 5 | -1.49 | +| UNI | 03-27 10:00 | 03-27 15:00 | take_profit | 5 | +1.49 | +| SEI | 03-27 10:00 | 03-27 16:00 | stop_loss | 6 | -1.49 | +| APT | 03-27 10:00 | 03-27 18:00 | stop_loss | 8 | -1.49 | +| ARB | 03-27 10:00 | 03-27 18:00 | stop_loss | 8 | -1.49 | +| LTC | 03-27 10:00 | 03-27 18:00 | trailing_stop | 8 | -0.39 | +| SUI | 03-27 10:00 | 03-27 18:00 | stop_loss | 8 | -1.49 | +| ATOM | 03-27 21:00 | 03-28 01:00 | stop_loss | 4 | -1.49 | +| FIL | 03-27 10:00 | 03-28 01:00 | stop_loss | 15 | -1.49 | +| INJ | 03-27 10:00 | 03-28 01:00 | stop_loss | 15 | -1.49 | +| KAS | 03-27 21:00 | 03-28 01:00 | stop_loss | 4 | -1.49 | +| NEAR | 03-27 12:00 | 03-28 01:00 | stop_loss | 13 | -1.49 | +| TON | 03-27 22:00 | 03-28 01:00 | stop_loss | 3 | -1.49 | +| BONK | 03-27 10:00 | 03-28 04:00 | stop_loss | 18 | -1.49 | +| AVAX | 03-27 10:00 | 03-28 07:00 | confirmed_bearish_exit | 21 | +0.76 | +| OP | 03-28 01:00 | 03-28 08:00 | take_profit | 7 | +1.49 | +| BONK | 03-28 04:00 | 03-28 10:00 | take_profit | 6 | +1.49 | +| SHIB | 03-27 10:00 | 03-28 10:00 | take_profit | 24 | +1.49 | +| LTC | 03-28 05:00 | 03-28 13:00 | take_profit | 8 | +1.49 | +| NEAR | 03-28 09:00 | 03-28 13:00 | take_profit | 4 | +1.49 | +| TRX | 03-27 21:00 | 03-28 14:00 | take_profit | 17 | +1.49 | +| APT | 03-28 02:00 | 03-28 17:00 | stop_loss | 15 | -1.49 | +| APT | 03-28 21:00 | 03-28 23:00 | stop_loss | 2 | -1.49 | +| FIL | 03-28 21:00 | 03-28 23:00 | stop_loss | 2 | -1.49 | +| ATOM | 03-28 22:00 | 03-29 00:00 | stop_loss | 2 | -1.49 | +| KAS | 03-28 21:00 | 03-29 03:00 | take_profit | 6 | +1.49 | +| SUI | 03-28 23:00 | 03-29 09:00 | trailing_stop | 10 | -0.46 | +| BONK | 03-29 03:00 | 03-29 10:00 | stop_loss | 7 | -1.49 | +| NEAR | 03-29 05:00 | 03-29 10:00 | stop_loss | 5 | -1.49 | +| OP | 03-28 23:00 | 03-29 10:00 | stop_loss | 11 | -1.49 | +| PEPE | 03-29 05:00 | 03-29 10:00 | stop_loss | 5 | -1.49 | +| RENDER | 03-29 05:00 | 03-29 10:00 | stop_loss | 5 | -1.49 | +| SEI | 03-28 23:00 | 03-29 10:00 | trailing_stop | 11 | -0.22 | +| SHIB | 03-29 05:00 | 03-29 10:00 | stop_loss | 5 | -1.49 | +| TIA | 03-28 23:00 | 03-29 10:00 | stop_loss | 11 | -1.49 | +| WIF | 03-29 03:00 | 03-29 10:00 | stop_loss | 7 | -1.49 | +| LTC | 03-29 06:00 | 03-29 11:00 | stop_loss | 5 | -1.49 | +| APT | 03-28 23:00 | 03-29 12:00 | stop_loss | 13 | -1.49 | +| ATOM | 03-29 00:00 | 03-29 13:00 | stop_loss | 13 | -1.49 | +| ETC | 03-28 23:00 | 03-29 13:00 | stop_loss | 14 | -1.49 | +| INJ | 03-28 23:00 | 03-29 13:00 | stop_loss | 14 | -1.49 | +| WIF | 03-29 12:00 | 03-29 13:00 | stop_loss | 1 | -1.49 | +| KAS | 03-29 13:00 | 03-29 14:00 | stop_loss | 1 | -1.49 | +| TON | 03-29 07:00 | 03-29 16:00 | stop_loss | 9 | -1.49 | +| KAS | 03-29 14:00 | 03-29 18:00 | trailing_stop | 4 | -0.70 | +| SEI | 03-29 17:00 | 03-29 19:00 | stop_loss | 2 | -1.49 | +| PEPE | 03-29 16:00 | 03-29 20:00 | take_profit | 4 | +1.49 | +| ARB | 03-29 19:00 | 03-29 22:00 | stop_loss | 3 | -1.49 | +| AVAX | 03-29 16:00 | 03-29 22:00 | stop_loss | 6 | -1.49 | +| ETC | 03-29 16:00 | 03-29 22:00 | stop_loss | 6 | -1.49 | +| LTC | 03-29 16:00 | 03-29 22:00 | stop_loss | 6 | -1.49 | +| SEI | 03-29 19:00 | 03-29 22:00 | stop_loss | 3 | -1.49 | +| TIA | 03-29 17:00 | 03-29 22:00 | stop_loss | 5 | -1.49 | +| APT | 03-29 22:00 | 03-30 00:00 | take_profit | 2 | +1.49 | +| ARB | 03-29 22:00 | 03-30 00:00 | take_profit | 2 | +1.49 | +| ATOM | 03-29 22:00 | 03-30 00:00 | take_profit | 2 | +1.49 | +| AVAX | 03-29 22:00 | 03-30 00:00 | take_profit | 2 | +1.49 | +| BONK | 03-29 22:00 | 03-30 00:00 | take_profit | 2 | +1.49 | +| FIL | 03-29 22:00 | 03-30 00:00 | take_profit | 2 | +1.49 | +| WIF | 03-29 22:00 | 03-30 00:00 | take_profit | 2 | +1.49 | +| FET | 03-30 01:00 | 03-30 02:00 | take_profit | 1 | +1.49 | +| LTC | 03-29 22:00 | 03-30 02:00 | take_profit | 4 | +1.49 | +| SEI | 03-29 22:00 | 03-30 02:00 | take_profit | 4 | +1.49 | +| TON | 03-29 18:00 | 03-30 04:00 | take_profit | 10 | +1.49 | +| APT | 03-30 16:00 | 03-30 17:00 | stop_loss | 1 | -1.49 | +| APT | 03-30 17:00 | 03-30 18:00 | stop_loss | 1 | -1.49 | +| KAS | 03-30 16:00 | 03-30 18:00 | stop_loss | 2 | -1.49 | +| SEI | 03-30 17:00 | 03-30 18:00 | stop_loss | 1 | -1.49 | +| APT | 03-30 18:00 | 03-30 19:00 | stop_loss | 1 | -1.49 | +| NEAR | 03-30 18:00 | 03-30 19:00 | stop_loss | 1 | -1.49 | +| SEI | 03-30 18:00 | 03-30 21:00 | take_profit | 3 | +1.49 | +| APT | 03-30 19:00 | 03-30 23:00 | stop_loss | 4 | -1.49 | +| FET | 03-30 18:00 | 03-30 23:00 | stop_loss | 5 | -1.49 | +| INJ | 03-30 21:00 | 03-30 23:00 | stop_loss | 2 | -1.49 | +| RENDER | 03-30 21:00 | 03-30 23:00 | stop_loss | 2 | -1.49 | +| SHIB | 03-30 21:00 | 03-30 23:00 | stop_loss | 2 | -1.49 | +| TON | 03-30 18:00 | 03-31 00:00 | take_profit | 6 | +1.49 | +| ARB | 03-30 22:00 | 03-31 01:00 | take_profit | 3 | +1.49 | +| AVAX | 03-30 22:00 | 03-31 01:00 | take_profit | 3 | +1.49 | +| FIL | 03-30 19:00 | 03-31 01:00 | take_profit | 6 | +1.49 | +| INJ | 03-30 23:00 | 03-31 01:00 | take_profit | 2 | +1.49 | +| LTC | 03-30 18:00 | 03-31 01:00 | trailing_stop | 7 | -0.59 | +| NEAR | 03-30 19:00 | 03-31 01:00 | take_profit | 6 | +1.49 | +| PEPE | 03-30 19:00 | 03-31 01:00 | take_profit | 6 | +1.49 | +| SUI | 03-30 22:00 | 03-31 01:00 | take_profit | 3 | +1.49 | +| TIA | 03-30 18:00 | 03-31 01:00 | take_profit | 7 | +1.49 | +| UNI | 03-30 22:00 | 03-31 01:00 | take_profit | 3 | +1.49 | +| FET | 03-31 01:00 | 03-31 05:00 | stop_loss | 4 | -1.49 | +| FIL | 03-31 01:00 | 03-31 08:00 | trailing_stop | 7 | -0.15 | +| APT | 03-31 02:00 | 03-31 09:00 | stop_loss | 7 | -1.49 | +| ETC | 03-30 21:00 | 03-31 09:00 | stop_loss | 12 | -1.49 | +| KAS | 03-30 18:00 | 03-31 09:00 | stop_loss | 15 | -1.49 | +| KAS | 03-31 10:00 | 03-31 11:00 | trailing_stop | 1 | -0.00 | +| TRX | 03-30 12:00 | 03-31 11:00 | stop_loss | 23 | -1.49 | +| WIF | 03-31 09:00 | 03-31 11:00 | stop_loss | 2 | -1.49 | +| SEI | 03-31 12:00 | 03-31 14:00 | stop_loss | 2 | -1.49 | +| SEI | 03-31 14:00 | 03-31 15:00 | stop_loss | 1 | -1.49 | +| TRX | 03-31 11:00 | 03-31 15:00 | stop_loss | 4 | -1.49 | +| APT | 03-31 15:00 | 03-31 16:00 | trailing_stop | 1 | -0.25 | +| SUI | 03-31 15:00 | 03-31 16:00 | take_profit | 1 | +1.49 | +| SEI | 03-31 15:00 | 03-31 17:00 | take_profit | 2 | +1.49 | +| KAS | 04-01 10:00 | 04-01 11:00 | stop_loss | 1 | -1.49 | +| APT | 04-01 20:00 | 04-01 23:00 | stop_loss | 3 | -1.49 | +| NEAR | 04-01 20:00 | 04-01 23:00 | stop_loss | 3 | -1.49 | +| RENDER | 04-01 22:00 | 04-02 00:00 | take_profit | 2 | +1.49 | +| SEI | 04-01 23:00 | 04-02 00:00 | stop_loss | 1 | -1.49 | +| TON | 03-31 14:00 | 04-02 00:00 | take_profit | 34 | +1.49 | +| APT | 04-01 23:00 | 04-02 01:00 | stop_loss | 2 | -1.49 | +| AVAX | 04-01 20:00 | 04-02 01:00 | stop_loss | 5 | -1.49 | +| ETC | 04-01 20:00 | 04-02 01:00 | stop_loss | 5 | -1.49 | +| INJ | 04-01 20:00 | 04-02 01:00 | stop_loss | 5 | -1.49 | +| LTC | 04-01 23:00 | 04-02 01:00 | stop_loss | 2 | -1.49 | +| UNI | 04-01 23:00 | 04-02 01:00 | stop_loss | 2 | -1.49 | +| APT | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| ARB | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| AVAX | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| BONK | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| ETC | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| FET | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| FIL | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| INJ | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| KAS | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| NEAR | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| SEI | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| SHIB | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| SUI | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| TIA | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| UNI | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| WIF | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| FET | 04-02 02:00 | 04-02 03:00 | stop_loss | 1 | -1.49 | +| FIL | 04-02 02:00 | 04-02 03:00 | stop_loss | 1 | -1.49 | +| NEAR | 04-02 02:00 | 04-02 03:00 | stop_loss | 1 | -1.49 | +| RENDER | 04-02 02:00 | 04-02 03:00 | stop_loss | 1 | -1.49 | +| UNI | 04-02 02:00 | 04-02 03:00 | stop_loss | 1 | -1.49 | +| WIF | 04-02 02:00 | 04-02 03:00 | stop_loss | 1 | -1.49 | +| ATOM | 04-02 02:00 | 04-02 04:00 | stop_loss | 2 | -1.49 | +| AVAX | 04-02 02:00 | 04-02 04:00 | stop_loss | 2 | -1.49 | +| BONK | 04-02 02:00 | 04-02 04:00 | stop_loss | 2 | -1.49 | +| FET | 04-02 03:00 | 04-02 04:00 | trailing_stop | 1 | -0.39 | +| TIA | 04-02 02:00 | 04-02 04:00 | stop_loss | 2 | -1.49 | +| UNI | 04-02 03:00 | 04-02 04:00 | stop_loss | 1 | -1.49 | +| APT | 04-02 02:00 | 04-02 05:00 | stop_loss | 3 | -1.49 | +| ARB | 04-02 02:00 | 04-02 05:00 | stop_loss | 3 | -1.49 | +| BONK | 04-02 04:00 | 04-02 05:00 | trailing_stop | 1 | -0.48 | +| ETC | 04-02 02:00 | 04-02 05:00 | stop_loss | 3 | -1.49 | +| LTC | 04-02 02:00 | 04-02 05:00 | stop_loss | 3 | -1.49 | +| NEAR | 04-02 03:00 | 04-02 05:00 | stop_loss | 2 | -1.49 | +| SHIB | 04-02 02:00 | 04-02 05:00 | stop_loss | 3 | -1.49 | +| WIF | 04-02 03:00 | 04-02 05:00 | trailing_stop | 2 | -0.01 | +| PEPE | 04-02 04:00 | 04-02 06:00 | trailing_stop | 2 | -0.50 | +| ATOM | 04-02 04:00 | 04-02 07:00 | confirmed_bearish_exit | 3 | +0.66 | +| RENDER | 04-02 03:00 | 04-02 07:00 | take_profit | 4 | +1.49 | +| SEI | 04-02 02:00 | 04-02 08:00 | stop_loss | 6 | -1.49 | +| SUI | 04-02 02:00 | 04-02 08:00 | stop_loss | 6 | -1.49 | +| KAS | 04-02 02:00 | 04-02 10:00 | stop_loss | 8 | -1.49 | +| LTC | 04-02 05:00 | 04-02 11:00 | stop_loss | 6 | -1.49 | +| OP | 04-02 02:00 | 04-02 11:00 | stop_loss | 9 | -1.49 | +| FIL | 04-02 03:00 | 04-02 13:00 | stop_loss | 10 | -1.49 | +| INJ | 04-02 02:00 | 04-02 13:00 | stop_loss | 11 | -1.49 | +| TIA | 04-02 04:00 | 04-02 13:00 | stop_loss | 9 | -1.49 | +| UNI | 04-02 04:00 | 04-02 13:00 | stop_loss | 9 | -1.49 | +| AVAX | 04-02 04:00 | 04-02 14:00 | trailing_stop | 10 | -0.11 | +| TON | 04-02 05:00 | 04-02 14:00 | take_profit | 9 | +1.49 | +| UNI | 04-02 13:00 | 04-02 14:00 | take_profit | 1 | +1.49 | +| AVAX | 04-02 14:00 | 04-02 15:00 | stop_loss | 1 | -1.49 | +| SHIB | 04-02 14:00 | 04-02 16:00 | stop_loss | 2 | -1.49 | +| INJ | 04-02 21:00 | 04-03 03:00 | take_profit | 6 | +1.49 | +| LTC | 04-02 17:00 | 04-03 04:00 | take_profit | 11 | +1.49 | +| ETC | 04-02 21:00 | 04-03 05:00 | take_profit | 8 | +1.49 | +| UNI | 04-03 00:00 | 04-03 05:00 | take_profit | 5 | +1.49 | +| KAS | 04-03 04:00 | 04-03 06:00 | trailing_stop | 2 | -0.38 | +| PEPE | 04-03 23:00 | 04-04 00:00 | stop_loss | 1 | -1.49 | +| SHIB | 04-03 23:00 | 04-04 00:00 | stop_loss | 1 | -1.49 | +| APT | 04-03 15:00 | 04-04 02:00 | stop_loss | 11 | -1.49 | +| ATOM | 04-03 20:00 | 04-04 02:00 | stop_loss | 6 | -1.49 | +| PEPE | 04-04 00:00 | 04-04 02:00 | stop_loss | 2 | -1.49 | +| TIA | 04-03 23:00 | 04-04 04:00 | stop_loss | 5 | -1.49 | +| TON | 04-03 21:00 | 04-04 08:00 | stop_loss | 11 | -1.49 | +| UNI | 04-03 19:00 | 04-04 08:00 | stop_loss | 13 | -1.49 | +| WIF | 04-04 01:00 | 04-04 08:00 | trailing_stop | 7 | -0.59 | +| SHIB | 04-04 00:00 | 04-04 09:00 | stop_loss | 9 | -1.49 | +| BONK | 04-03 22:00 | 04-04 14:00 | stop_loss | 16 | -1.49 | +| PEPE | 04-04 02:00 | 04-04 14:00 | trailing_stop | 12 | -0.52 | +| FET | 04-05 01:00 | 04-05 02:00 | stop_loss | 1 | -1.49 | +| RENDER | 04-04 16:00 | 04-05 03:00 | trailing_stop | 11 | -0.01 | +| ARB | 04-03 22:00 | 04-05 05:00 | stop_loss | 31 | -1.49 | +| FIL | 04-05 02:00 | 04-05 05:00 | stop_loss | 3 | -1.49 | +| INJ | 04-03 23:00 | 04-05 05:00 | trailing_stop | 30 | -0.60 | +| TIA | 04-05 02:00 | 04-05 05:00 | stop_loss | 3 | -1.49 | +| UNI | 04-04 09:00 | 04-05 05:00 | stop_loss | 20 | -1.49 | +| APT | 04-05 05:00 | 04-05 06:00 | stop_loss | 1 | -1.49 | +| BONK | 04-05 05:00 | 04-05 06:00 | stop_loss | 1 | -1.49 | +| FET | 04-05 02:00 | 04-05 06:00 | stop_loss | 4 | -1.49 | +| INJ | 04-05 05:00 | 04-05 06:00 | stop_loss | 1 | -1.49 | +| OP | 04-05 05:00 | 04-05 06:00 | stop_loss | 1 | -1.49 | +| SUI | 04-05 05:00 | 04-05 06:00 | stop_loss | 1 | -1.49 | +| BONK | 04-05 06:00 | 04-05 07:00 | stop_loss | 1 | -1.49 | +| KAS | 04-05 03:00 | 04-05 07:00 | stop_loss | 4 | -1.49 | +| FET | 04-05 06:00 | 04-05 09:00 | stop_loss | 3 | -1.49 | +| SEI | 04-05 05:00 | 04-05 10:00 | stop_loss | 5 | -1.49 | +| FIL | 04-05 05:00 | 04-05 11:00 | stop_loss | 6 | -1.49 | +| WIF | 04-05 07:00 | 04-05 11:00 | confirmed_bearish_exit | 4 | -0.50 | +| APT | 04-05 06:00 | 04-05 12:00 | stop_loss | 6 | -1.49 | +| ARB | 04-05 05:00 | 04-05 12:00 | stop_loss | 7 | -1.49 | +| BONK | 04-05 07:00 | 04-05 12:00 | stop_loss | 5 | -1.49 | +| OP | 04-05 06:00 | 04-05 12:00 | stop_loss | 6 | -1.49 | +| PEPE | 04-05 06:00 | 04-05 12:00 | stop_loss | 6 | -1.49 | +| RENDER | 04-05 07:00 | 04-05 12:00 | stop_loss | 5 | -1.49 | +| SEI | 04-05 10:00 | 04-05 12:00 | stop_loss | 2 | -1.49 | +| SUI | 04-05 06:00 | 04-05 12:00 | stop_loss | 6 | -1.49 | +| TRX | 03-31 15:00 | 04-05 12:00 | take_profit | 117 | +1.49 | +| ATOM | 04-05 07:00 | 04-05 13:00 | stop_loss | 6 | -1.49 | +| TIA | 04-05 05:00 | 04-05 13:00 | stop_loss | 8 | -1.49 | +| ETC | 04-05 07:00 | 04-05 15:00 | take_profit | 8 | +1.49 | +| TIA | 04-05 15:00 | 04-05 17:00 | stop_loss | 2 | -1.49 | +| NEAR | 04-05 07:00 | 04-05 19:00 | stop_loss | 12 | -1.49 | +| ARB | 04-05 15:00 | 04-05 22:00 | trailing_stop | 7 | +0.04 | +| AVAX | 04-05 06:00 | 04-05 22:00 | trailing_stop | 16 | -0.13 | +| FIL | 04-05 14:00 | 04-05 22:00 | trailing_stop | 8 | +0.10 | +| INJ | 04-05 06:00 | 04-05 22:00 | trailing_stop | 16 | -0.52 | +| PEPE | 04-05 16:00 | 04-05 22:00 | take_profit | 6 | +1.49 | +| RENDER | 04-05 12:00 | 04-05 22:00 | trailing_stop | 10 | -0.14 | +| SHIB | 04-05 07:00 | 04-05 22:00 | trailing_stop | 15 | -0.17 | +| SUI | 04-05 12:00 | 04-05 22:00 | trailing_stop | 10 | -0.26 | +| UNI | 04-05 05:00 | 04-05 22:00 | trailing_stop | 17 | -0.58 | +| LTC | 04-05 05:00 | 04-05 23:00 | take_profit | 18 | +1.49 | +| SEI | 04-05 19:00 | 04-05 23:00 | take_profit | 4 | +1.49 | +| APT | 04-05 14:00 | 04-06 00:00 | take_profit | 10 | +1.49 | +| PEPE | 04-06 16:00 | 04-06 17:00 | stop_loss | 1 | -1.49 | +| FET | 04-06 15:00 | 04-06 18:00 | stop_loss | 3 | -1.49 | +| KAS | 04-06 16:00 | 04-06 20:00 | take_profit | 4 | +1.49 | +| FET | 04-06 19:00 | 04-06 21:00 | stop_loss | 2 | -1.49 | +| AVAX | 04-06 16:00 | 04-06 22:00 | stop_loss | 6 | -1.49 | +| ETC | 04-06 14:00 | 04-06 22:00 | stop_loss | 8 | -1.49 | +| PEPE | 04-06 21:00 | 04-06 22:00 | stop_loss | 1 | -1.49 | +| RENDER | 04-06 18:00 | 04-06 22:00 | stop_loss | 4 | -1.49 | +| SHIB | 04-06 21:00 | 04-06 22:00 | stop_loss | 1 | -1.49 | +| AVAX | 04-06 22:00 | 04-06 23:00 | stop_loss | 1 | -1.49 | +| BONK | 04-06 22:00 | 04-06 23:00 | stop_loss | 1 | -1.49 | +| FET | 04-06 21:00 | 04-06 23:00 | stop_loss | 2 | -1.49 | +| LTC | 04-06 21:00 | 04-06 23:00 | stop_loss | 2 | -1.49 | +| NEAR | 04-06 21:00 | 04-06 23:00 | stop_loss | 2 | -1.49 | +| WIF | 04-06 22:00 | 04-06 23:00 | stop_loss | 1 | -1.49 | +| AVAX | 04-06 23:00 | 04-07 00:00 | stop_loss | 1 | -1.49 | +| ARB | 04-06 22:00 | 04-07 01:00 | stop_loss | 3 | -1.49 | +| AVAX | 04-07 00:00 | 04-07 01:00 | stop_loss | 1 | -1.49 | +| ETC | 04-06 22:00 | 04-07 01:00 | stop_loss | 3 | -1.49 | +| NEAR | 04-06 23:00 | 04-07 01:00 | stop_loss | 2 | -1.49 | +| SUI | 04-06 22:00 | 04-07 01:00 | stop_loss | 3 | -1.49 | +| APT | 04-06 22:00 | 04-07 02:00 | stop_loss | 4 | -1.49 | +| INJ | 04-06 23:00 | 04-07 02:00 | stop_loss | 3 | -1.49 | +| OP | 04-06 22:00 | 04-07 02:00 | stop_loss | 4 | -1.49 | +| UNI | 04-06 22:00 | 04-07 02:00 | stop_loss | 4 | -1.49 | +| FET | 04-06 23:00 | 04-07 03:00 | trailing_stop | 4 | -0.13 | +| PEPE | 04-06 22:00 | 04-07 03:00 | confirmed_bearish_exit | 5 | +0.40 | +| ETC | 04-07 01:00 | 04-07 04:00 | stop_loss | 3 | -1.49 | +| ATOM | 04-06 22:00 | 04-07 05:00 | stop_loss | 7 | -1.49 | +| AVAX | 04-07 01:00 | 04-07 05:00 | stop_loss | 4 | -1.49 | +| SEI | 04-06 23:00 | 04-07 05:00 | stop_loss | 6 | -1.49 | +| ETC | 04-07 04:00 | 04-07 06:00 | stop_loss | 2 | -1.49 | +| WIF | 04-06 23:00 | 04-07 07:00 | trailing_stop | 8 | -0.04 | +| FET | 04-07 04:00 | 04-07 08:00 | take_profit | 4 | +1.49 | +| RENDER | 04-06 22:00 | 04-07 08:00 | take_profit | 10 | +1.49 | +| FIL | 04-07 01:00 | 04-07 09:00 | take_profit | 8 | +1.49 | +| PEPE | 04-07 06:00 | 04-07 09:00 | trailing_stop | 3 | -0.53 | +| SUI | 04-07 01:00 | 04-07 09:00 | take_profit | 8 | +1.49 | +| ARB | 04-07 06:00 | 04-07 10:00 | trailing_stop | 4 | -0.65 | +| AVAX | 04-07 09:00 | 04-07 10:00 | stop_loss | 1 | -1.49 | +| TRX | 04-06 06:00 | 04-07 10:00 | stop_loss | 28 | -1.49 | +| UNI | 04-07 09:00 | 04-07 10:00 | stop_loss | 1 | -1.49 | +| WIF | 04-07 07:00 | 04-07 10:00 | stop_loss | 3 | -1.49 | +| APT | 04-07 09:00 | 04-07 11:00 | stop_loss | 2 | -1.49 | +| INJ | 04-07 07:00 | 04-07 11:00 | stop_loss | 4 | -1.49 | +| NEAR | 04-07 01:00 | 04-07 11:00 | trailing_stop | 10 | -0.58 | +| OP | 04-07 07:00 | 04-07 11:00 | stop_loss | 4 | -1.49 | +| TIA | 04-06 22:00 | 04-07 11:00 | stop_loss | 13 | -1.49 | +| BONK | 04-06 23:00 | 04-07 12:00 | stop_loss | 13 | -1.49 | +| LTC | 04-06 23:00 | 04-07 12:00 | stop_loss | 13 | -1.49 | +| SHIB | 04-06 22:00 | 04-07 12:00 | trailing_stop | 14 | -0.68 | +| SUI | 04-07 10:00 | 04-07 12:00 | stop_loss | 2 | -1.49 | +| TON | 04-06 13:00 | 04-07 12:00 | stop_loss | 23 | -1.49 | +| UNI | 04-07 10:00 | 04-07 12:00 | stop_loss | 2 | -1.49 | +| AVAX | 04-07 10:00 | 04-07 14:00 | stop_loss | 4 | -1.49 | +| TON | 04-07 13:00 | 04-07 23:00 | take_profit | 10 | +1.49 | +| APT | 04-08 12:00 | 04-08 14:00 | stop_loss | 2 | -1.49 | +| BONK | 04-08 12:00 | 04-08 14:00 | stop_loss | 2 | -1.49 | +| ETC | 04-08 12:00 | 04-08 14:00 | stop_loss | 2 | -1.49 | +| PEPE | 04-08 12:00 | 04-08 14:00 | stop_loss | 2 | -1.49 | +| SHIB | 04-08 12:00 | 04-08 14:00 | stop_loss | 2 | -1.49 | +| UNI | 04-08 13:00 | 04-08 14:00 | stop_loss | 1 | -1.49 | +| WIF | 04-08 12:00 | 04-08 14:00 | stop_loss | 2 | -1.49 | +| ATOM | 04-08 13:00 | 04-08 15:00 | trailing_stop | 2 | -0.08 | +| SUI | 04-08 14:00 | 04-08 15:00 | trailing_stop | 1 | -0.38 | +| BONK | 04-08 14:00 | 04-08 18:00 | trailing_stop | 4 | -0.52 | +| INJ | 04-08 14:00 | 04-08 18:00 | stop_loss | 4 | -1.49 | +| PEPE | 04-08 14:00 | 04-08 18:00 | stop_loss | 4 | -1.49 | +| SUI | 04-08 15:00 | 04-08 18:00 | stop_loss | 3 | -1.49 | +| ARB | 04-08 18:00 | 04-08 19:00 | trailing_stop | 1 | -0.42 | +| LTC | 04-08 14:00 | 04-08 19:00 | stop_loss | 5 | -1.49 | +| ETC | 04-08 14:00 | 04-08 20:00 | stop_loss | 6 | -1.49 | +| WIF | 04-08 18:00 | 04-08 21:00 | take_profit | 3 | +1.49 | +| FET | 04-08 18:00 | 04-08 22:00 | stop_loss | 4 | -1.49 | +| UNI | 04-08 14:00 | 04-08 22:00 | stop_loss | 8 | -1.49 | +| APT | 04-08 14:00 | 04-08 23:00 | stop_loss | 9 | -1.49 | +| AVAX | 04-08 14:00 | 04-08 23:00 | stop_loss | 9 | -1.49 | +| BONK | 04-08 18:00 | 04-08 23:00 | stop_loss | 5 | -1.49 | +| FIL | 04-08 18:00 | 04-08 23:00 | stop_loss | 5 | -1.49 | +| INJ | 04-08 18:00 | 04-08 23:00 | trailing_stop | 5 | -0.65 | +| OP | 04-08 14:00 | 04-08 23:00 | stop_loss | 9 | -1.49 | +| PEPE | 04-08 18:00 | 04-08 23:00 | trailing_stop | 5 | -0.58 | +| SHIB | 04-08 14:00 | 04-08 23:00 | stop_loss | 9 | -1.49 | +| SUI | 04-08 18:00 | 04-08 23:00 | stop_loss | 5 | -1.49 | +| TON | 04-08 20:00 | 04-08 23:00 | stop_loss | 3 | -1.49 | +| LTC | 04-08 19:00 | 04-09 00:00 | stop_loss | 5 | -1.49 | +| TIA | 04-08 18:00 | 04-09 00:00 | stop_loss | 6 | -1.49 | +| TON | 04-08 23:00 | 04-09 00:00 | stop_loss | 1 | -1.49 | +| FIL | 04-08 23:00 | 04-09 01:00 | stop_loss | 2 | -1.49 | +| AVAX | 04-09 00:00 | 04-09 08:00 | take_profit | 8 | +1.49 | +| NEAR | 04-08 23:00 | 04-09 09:00 | trailing_stop | 10 | -0.21 | +| SEI | 04-09 07:00 | 04-09 12:00 | stop_loss | 5 | -1.49 | +| UNI | 04-09 09:00 | 04-09 13:00 | stop_loss | 4 | -1.49 | +| TON | 04-09 00:00 | 04-09 14:00 | take_profit | 14 | +1.49 | +| APT | 04-09 07:00 | 04-09 15:00 | take_profit | 8 | +1.49 | +| BONK | 04-09 08:00 | 04-09 15:00 | take_profit | 7 | +1.49 | +| ETC | 04-09 07:00 | 04-09 15:00 | stop_loss | 8 | -1.49 | +| FIL | 04-09 08:00 | 04-09 15:00 | take_profit | 7 | +1.49 | +| SUI | 04-09 11:00 | 04-09 15:00 | take_profit | 4 | +1.49 | +| TIA | 04-09 11:00 | 04-09 15:00 | take_profit | 4 | +1.49 | +| KAS | 04-08 23:00 | 04-09 16:00 | take_profit | 17 | +1.49 | +| TRX | 04-07 11:00 | 04-10 01:00 | take_profit | 62 | +1.49 | +| TON | 04-10 05:00 | 04-10 06:00 | trailing_stop | 1 | -0.52 | +| FET | 04-10 07:00 | 04-10 11:00 | stop_loss | 4 | -1.49 | +| KAS | 04-10 07:00 | 04-10 12:00 | take_profit | 5 | +1.49 | +| APT | 04-10 07:00 | 04-10 14:00 | take_profit | 7 | +1.49 | +| SHIB | 04-10 07:00 | 04-10 14:00 | trailing_stop | 7 | -0.02 | +| WIF | 04-10 10:00 | 04-10 14:00 | take_profit | 4 | +1.49 | +| LTC | 04-10 10:00 | 04-11 01:00 | trailing_stop | 15 | -0.12 | +| ETC | 04-11 04:00 | 04-11 05:00 | stop_loss | 1 | -1.49 | +| RENDER | 04-11 00:00 | 04-11 10:00 | take_profit | 10 | +1.49 | +| KAS | 04-11 10:00 | 04-11 11:00 | stop_loss | 1 | -1.49 | +| OP | 04-11 00:00 | 04-11 12:00 | stop_loss | 12 | -1.49 | +| PEPE | 04-11 09:00 | 04-11 12:00 | stop_loss | 3 | -1.49 | +| AVAX | 04-11 04:00 | 04-11 13:00 | stop_loss | 9 | -1.49 | +| BONK | 04-11 08:00 | 04-11 13:00 | stop_loss | 5 | -1.49 | +| FIL | 04-11 04:00 | 04-11 13:00 | stop_loss | 9 | -1.49 | +| KAS | 04-11 11:00 | 04-11 13:00 | stop_loss | 2 | -1.49 | +| WIF | 04-11 05:00 | 04-11 13:00 | stop_loss | 8 | -1.49 | +| NEAR | 04-11 05:00 | 04-11 15:00 | take_profit | 10 | +1.49 | +| APT | 04-11 06:00 | 04-11 16:00 | take_profit | 10 | +1.49 | +| FET | 04-11 07:00 | 04-11 16:00 | take_profit | 9 | +1.49 | +| SEI | 04-11 14:00 | 04-11 16:00 | trailing_stop | 2 | -0.28 | +| SUI | 04-11 06:00 | 04-11 16:00 | take_profit | 10 | +1.49 | +| TIA | 04-11 13:00 | 04-11 16:00 | take_profit | 3 | +1.49 | +| ETC | 04-11 05:00 | 04-11 18:00 | take_profit | 13 | +1.49 | +| INJ | 04-11 06:00 | 04-11 18:00 | take_profit | 12 | +1.49 | +| SHIB | 04-11 08:00 | 04-11 18:00 | take_profit | 10 | +1.49 | +| UNI | 04-11 08:00 | 04-11 18:00 | take_profit | 10 | +1.49 | +| ARB | 04-11 17:00 | 04-11 20:00 | trailing_stop | 3 | -0.34 | +| LTC | 04-11 04:00 | 04-11 23:00 | trailing_stop | 19 | +0.05 | +| ARB | 04-12 01:00 | 04-12 04:00 | stop_loss | 3 | -1.49 | +| RENDER | 04-12 01:00 | 04-12 04:00 | stop_loss | 3 | -1.49 | +| SEI | 04-12 01:00 | 04-12 06:00 | stop_loss | 5 | -1.49 | +| INJ | 04-12 01:00 | 04-12 07:00 | stop_loss | 6 | -1.49 | +| APT | 04-12 01:00 | 04-12 08:00 | stop_loss | 7 | -1.49 | +| ARB | 04-12 04:00 | 04-12 08:00 | stop_loss | 4 | -1.49 | +| RENDER | 04-12 04:00 | 04-12 09:00 | stop_loss | 5 | -1.49 | +| ATOM | 04-12 03:00 | 04-12 10:00 | stop_loss | 7 | -1.49 | +| AVAX | 04-12 01:00 | 04-12 10:00 | stop_loss | 9 | -1.49 | +| FET | 04-12 09:00 | 04-12 10:00 | stop_loss | 1 | -1.49 | +| FIL | 04-12 01:00 | 04-12 10:00 | stop_loss | 9 | -1.49 | +| TIA | 04-12 01:00 | 04-12 10:00 | stop_loss | 9 | -1.49 | +| TON | 04-12 08:00 | 04-12 10:00 | take_profit | 2 | +1.49 | +| UNI | 04-12 01:00 | 04-12 10:00 | stop_loss | 9 | -1.49 | +| WIF | 04-12 06:00 | 04-12 10:00 | stop_loss | 4 | -1.49 | +| SUI | 04-12 01:00 | 04-12 13:00 | stop_loss | 12 | -1.49 | +| BONK | 04-12 01:00 | 04-12 14:00 | stop_loss | 13 | -1.49 | +| ETC | 04-12 01:00 | 04-12 14:00 | stop_loss | 13 | -1.49 | +| ARB | 04-12 12:00 | 04-12 15:00 | stop_loss | 3 | -1.49 | +| SHIB | 04-12 01:00 | 04-12 15:00 | stop_loss | 14 | -1.49 | +| FET | 04-12 10:00 | 04-12 17:00 | trailing_stop | 7 | -0.26 | +| NEAR | 04-12 06:00 | 04-12 18:00 | take_profit | 12 | +1.49 | +| LTC | 04-12 01:00 | 04-12 22:00 | stop_loss | 21 | -1.49 | +| ETC | 04-12 19:00 | 04-13 00:00 | trailing_stop | 5 | -0.49 | +| TON | 04-13 04:00 | 04-13 08:00 | stop_loss | 4 | -1.49 | +| UNI | 04-12 19:00 | 04-13 09:00 | trailing_stop | 14 | -0.69 | +| KAS | 04-12 22:00 | 04-13 13:00 | take_profit | 15 | +1.49 | +| RENDER | 04-13 07:00 | 04-13 13:00 | take_profit | 6 | +1.49 | +| TON | 04-13 08:00 | 04-13 13:00 | trailing_stop | 5 | -0.44 | +| ATOM | 04-13 07:00 | 04-13 15:00 | trailing_stop | 8 | +0.02 | +| SHIB | 04-12 22:00 | 04-13 16:00 | trailing_stop | 18 | -0.67 | +| LTC | 04-13 07:00 | 04-13 19:00 | trailing_stop | 12 | -0.68 | +| WIF | 04-13 15:00 | 04-13 19:00 | take_profit | 4 | +1.49 | +| AVAX | 04-14 12:00 | 04-14 13:00 | trailing_stop | 1 | -0.54 | +| INJ | 04-14 12:00 | 04-14 13:00 | trailing_stop | 1 | -0.42 | +| OP | 04-14 12:00 | 04-14 13:00 | trailing_stop | 1 | -0.56 | +| RENDER | 04-14 12:00 | 04-14 13:00 | trailing_stop | 1 | -0.12 | +| SEI | 04-14 12:00 | 04-14 13:00 | trailing_stop | 1 | -0.38 | +| AVAX | 04-14 13:00 | 04-14 14:00 | stop_loss | 1 | -1.49 | +| OP | 04-14 13:00 | 04-14 14:00 | take_profit | 1 | +1.49 | +| APT | 04-14 12:00 | 04-14 15:00 | trailing_stop | 3 | +0.02 | +| ARB | 04-14 13:00 | 04-14 15:00 | stop_loss | 2 | -1.49 | +| FET | 04-14 12:00 | 04-14 15:00 | stop_loss | 3 | -1.49 | +| ARB | 04-14 15:00 | 04-14 16:00 | trailing_stop | 1 | -0.35 | +| NEAR | 04-14 14:00 | 04-14 16:00 | stop_loss | 2 | -1.49 | +| TON | 04-14 15:00 | 04-14 16:00 | stop_loss | 1 | -1.49 | +| FIL | 04-14 12:00 | 04-14 17:00 | stop_loss | 5 | -1.49 | +| INJ | 04-14 17:00 | 04-14 18:00 | stop_loss | 1 | -1.49 | +| RENDER | 04-14 16:00 | 04-14 18:00 | stop_loss | 2 | -1.49 | +| TON | 04-14 16:00 | 04-14 18:00 | stop_loss | 2 | -1.49 | +| UNI | 04-14 16:00 | 04-14 18:00 | stop_loss | 2 | -1.49 | +| FET | 04-14 15:00 | 04-14 19:00 | stop_loss | 4 | -1.49 | +| INJ | 04-14 18:00 | 04-14 21:00 | confirmed_bearish_exit | 3 | +0.38 | +| WIF | 04-14 18:00 | 04-14 21:00 | take_profit | 3 | +1.49 | +| KAS | 04-14 16:00 | 04-14 22:00 | stop_loss | 6 | -1.49 | +| NEAR | 04-14 16:00 | 04-14 22:00 | stop_loss | 6 | -1.49 | +| BONK | 04-14 18:00 | 04-15 00:00 | take_profit | 6 | +1.49 | +| FIL | 04-14 18:00 | 04-15 01:00 | take_profit | 7 | +1.49 | +| OP | 04-14 18:00 | 04-15 01:00 | take_profit | 7 | +1.49 | +| RENDER | 04-14 18:00 | 04-15 01:00 | take_profit | 7 | +1.49 | +| TIA | 04-14 18:00 | 04-15 01:00 | take_profit | 7 | +1.49 | +| TRX | 04-10 12:00 | 04-15 01:00 | take_profit | 109 | +1.49 | +| UNI | 04-14 18:00 | 04-15 01:00 | take_profit | 7 | +1.49 | +| PEPE | 04-14 18:00 | 04-15 02:00 | trailing_stop | 8 | -0.59 | +| AVAX | 04-14 18:00 | 04-15 04:00 | take_profit | 10 | +1.49 | +| FET | 04-15 03:00 | 04-15 05:00 | stop_loss | 2 | -1.49 | +| PEPE | 04-15 03:00 | 04-15 05:00 | stop_loss | 2 | -1.49 | +| TON | 04-14 18:00 | 04-15 05:00 | stop_loss | 11 | -1.49 | +| NEAR | 04-15 02:00 | 04-15 06:00 | stop_loss | 4 | -1.49 | +| PEPE | 04-15 05:00 | 04-15 06:00 | stop_loss | 1 | -1.49 | +| SEI | 04-14 18:00 | 04-15 06:00 | stop_loss | 12 | -1.49 | +| SUI | 04-14 18:00 | 04-15 06:00 | trailing_stop | 12 | -0.08 | +| TRX | 04-15 11:00 | 04-15 12:00 | trailing_stop | 1 | -0.20 | +| ETC | 04-14 18:00 | 04-15 14:00 | take_profit | 20 | +1.49 | +| SHIB | 04-14 18:00 | 04-15 14:00 | take_profit | 20 | +1.49 | +| ATOM | 04-14 18:00 | 04-15 15:00 | trailing_stop | 21 | -0.56 | +| TON | 04-15 15:00 | 04-15 18:00 | take_profit | 3 | +1.49 | +| NEAR | 04-16 13:00 | 04-16 14:00 | stop_loss | 1 | -1.49 | +| NEAR | 04-16 14:00 | 04-16 15:00 | take_profit | 1 | +1.49 | +| RENDER | 04-16 14:00 | 04-16 15:00 | trailing_stop | 1 | -0.13 | +| FIL | 04-17 05:00 | 04-17 06:00 | trailing_stop | 1 | -0.68 | +| BONK | 04-17 08:00 | 04-17 10:00 | stop_loss | 2 | -1.49 | +| WIF | 04-17 09:00 | 04-17 10:00 | stop_loss | 1 | -1.49 | +| BONK | 04-17 10:00 | 04-17 12:00 | take_profit | 2 | +1.49 | +| SHIB | 04-17 08:00 | 04-17 12:00 | take_profit | 4 | +1.49 | +| NEAR | 04-17 10:00 | 04-17 13:00 | take_profit | 3 | +1.49 | +| BONK | 04-18 03:00 | 04-18 05:00 | confirmed_bearish_exit | 2 | +0.44 | +| ARB | 04-18 02:00 | 04-18 06:00 | take_profit | 4 | +1.49 | +| KAS | 04-18 03:00 | 04-18 07:00 | stop_loss | 4 | -1.49 | +| APT | 04-18 04:00 | 04-18 08:00 | stop_loss | 4 | -1.49 | +| AVAX | 04-18 03:00 | 04-18 08:00 | stop_loss | 5 | -1.49 | +| BONK | 04-18 07:00 | 04-18 08:00 | stop_loss | 1 | -1.49 | +| FET | 04-18 03:00 | 04-18 08:00 | trailing_stop | 5 | -0.32 | +| INJ | 04-18 06:00 | 04-18 08:00 | stop_loss | 2 | -1.49 | +| NEAR | 04-18 03:00 | 04-18 08:00 | trailing_stop | 5 | -0.29 | +| OP | 04-18 03:00 | 04-18 08:00 | trailing_stop | 5 | -0.28 | +| PEPE | 04-18 03:00 | 04-18 08:00 | stop_loss | 5 | -1.49 | +| RENDER | 04-18 03:00 | 04-18 08:00 | stop_loss | 5 | -1.49 | +| SEI | 04-18 03:00 | 04-18 08:00 | stop_loss | 5 | -1.49 | +| SHIB | 04-18 03:00 | 04-18 08:00 | stop_loss | 5 | -1.49 | +| SUI | 04-18 03:00 | 04-18 08:00 | stop_loss | 5 | -1.49 | +| UNI | 04-18 03:00 | 04-18 08:00 | stop_loss | 5 | -1.49 | +| WIF | 04-18 03:00 | 04-18 08:00 | stop_loss | 5 | -1.49 | +| ETC | 04-18 03:00 | 04-18 09:00 | stop_loss | 6 | -1.49 | +| FIL | 04-18 08:00 | 04-18 09:00 | stop_loss | 1 | -1.49 | +| KAS | 04-18 08:00 | 04-18 09:00 | stop_loss | 1 | -1.49 | +| RENDER | 04-18 08:00 | 04-18 09:00 | stop_loss | 1 | -1.49 | +| APT | 04-18 08:00 | 04-18 10:00 | stop_loss | 2 | -1.49 | +| AVAX | 04-18 08:00 | 04-18 10:00 | stop_loss | 2 | -1.49 | +| FET | 04-18 08:00 | 04-18 10:00 | stop_loss | 2 | -1.49 | +| INJ | 04-18 08:00 | 04-18 10:00 | stop_loss | 2 | -1.49 | +| KAS | 04-18 09:00 | 04-18 10:00 | stop_loss | 1 | -1.49 | +| OP | 04-18 09:00 | 04-18 10:00 | stop_loss | 1 | -1.49 | +| SUI | 04-18 08:00 | 04-18 10:00 | stop_loss | 2 | -1.49 | +| ARB | 04-18 10:00 | 04-18 11:00 | stop_loss | 1 | -1.49 | +| ATOM | 04-18 09:00 | 04-18 11:00 | stop_loss | 2 | -1.49 | +| BONK | 04-18 10:00 | 04-18 11:00 | stop_loss | 1 | -1.49 | +| FIL | 04-18 10:00 | 04-18 11:00 | stop_loss | 1 | -1.49 | +| OP | 04-18 10:00 | 04-18 11:00 | stop_loss | 1 | -1.49 | +| SEI | 04-18 10:00 | 04-18 11:00 | stop_loss | 1 | -1.49 | +| SHIB | 04-18 10:00 | 04-18 11:00 | stop_loss | 1 | -1.49 | +| SUI | 04-18 10:00 | 04-18 11:00 | stop_loss | 1 | -1.49 | +| UNI | 04-18 10:00 | 04-18 11:00 | stop_loss | 1 | -1.49 | +| WIF | 04-18 10:00 | 04-18 11:00 | stop_loss | 1 | -1.49 | +| TON | 04-18 11:00 | 04-18 12:00 | stop_loss | 1 | -1.49 | +| WIF | 04-18 11:00 | 04-18 12:00 | stop_loss | 1 | -1.49 | +| APT | 04-18 10:00 | 04-18 13:00 | stop_loss | 3 | -1.49 | +| AVAX | 04-18 10:00 | 04-18 13:00 | stop_loss | 3 | -1.49 | +| BONK | 04-18 11:00 | 04-18 13:00 | stop_loss | 2 | -1.49 | +| LTC | 04-18 03:00 | 04-18 13:00 | stop_loss | 10 | -1.49 | +| OP | 04-18 11:00 | 04-18 13:00 | stop_loss | 2 | -1.49 | +| TIA | 04-18 12:00 | 04-18 13:00 | stop_loss | 1 | -1.49 | +| TON | 04-18 12:00 | 04-18 13:00 | stop_loss | 1 | -1.49 | +| WIF | 04-18 12:00 | 04-18 16:00 | stop_loss | 4 | -1.49 | +| ETC | 04-18 10:00 | 04-18 17:00 | stop_loss | 7 | -1.49 | +| FET | 04-18 16:00 | 04-18 17:00 | stop_loss | 1 | -1.49 | +| INJ | 04-18 11:00 | 04-18 17:00 | stop_loss | 6 | -1.49 | +| NEAR | 04-18 13:00 | 04-18 17:00 | stop_loss | 4 | -1.49 | +| SHIB | 04-18 11:00 | 04-18 17:00 | stop_loss | 6 | -1.49 | +| ARB | 04-18 11:00 | 04-18 18:00 | stop_loss | 7 | -1.49 | +| ATOM | 04-18 11:00 | 04-18 18:00 | stop_loss | 7 | -1.49 | +| FET | 04-18 17:00 | 04-18 18:00 | stop_loss | 1 | -1.49 | +| FIL | 04-18 11:00 | 04-18 18:00 | stop_loss | 7 | -1.49 | +| KAS | 04-18 10:00 | 04-18 18:00 | stop_loss | 8 | -1.49 | +| LTC | 04-18 13:00 | 04-18 18:00 | stop_loss | 5 | -1.49 | +| SEI | 04-18 11:00 | 04-18 18:00 | stop_loss | 7 | -1.49 | +| SUI | 04-18 11:00 | 04-18 18:00 | stop_loss | 7 | -1.49 | +| UNI | 04-18 11:00 | 04-18 18:00 | stop_loss | 7 | -1.49 | +| TON | 04-18 13:00 | 04-18 19:00 | stop_loss | 6 | -1.49 | +| TON | 04-18 19:00 | 04-18 20:00 | stop_loss | 1 | -1.49 | +| ETC | 04-18 18:00 | 04-18 21:00 | confirmed_bearish_exit | 3 | +0.68 | +| NEAR | 04-18 17:00 | 04-18 22:00 | stop_loss | 5 | -1.49 | +| FET | 04-18 18:00 | 04-18 23:00 | stop_loss | 5 | -1.49 | +| TON | 04-18 20:00 | 04-18 23:00 | stop_loss | 3 | -1.49 | +| ATOM | 04-18 23:00 | 04-19 00:00 | stop_loss | 1 | -1.49 | +| AVAX | 04-18 22:00 | 04-19 00:00 | stop_loss | 2 | -1.49 | +| ETC | 04-18 23:00 | 04-19 00:00 | stop_loss | 1 | -1.49 | +| TON | 04-18 23:00 | 04-19 00:00 | stop_loss | 1 | -1.49 | +| INJ | 04-18 18:00 | 04-19 01:00 | stop_loss | 7 | -1.49 | +| TON | 04-19 00:00 | 04-19 01:00 | stop_loss | 1 | -1.49 | +| UNI | 04-18 22:00 | 04-19 01:00 | stop_loss | 3 | -1.49 | +| SHIB | 04-18 23:00 | 04-19 02:00 | stop_loss | 3 | -1.49 | +| WIF | 04-18 18:00 | 04-19 02:00 | stop_loss | 8 | -1.49 | +| TON | 04-19 01:00 | 04-19 04:00 | stop_loss | 3 | -1.49 | +| LTC | 04-18 18:00 | 04-19 07:00 | stop_loss | 13 | -1.49 | +| UNI | 04-19 02:00 | 04-19 07:00 | stop_loss | 5 | -1.49 | +| TRX | 04-16 07:00 | 04-19 08:00 | take_profit | 73 | +1.49 | +| FET | 04-19 09:00 | 04-19 11:00 | trailing_stop | 2 | -0.32 | +| PEPE | 04-19 10:00 | 04-19 12:00 | take_profit | 2 | +1.49 | +| ARB | 04-19 07:00 | 04-19 13:00 | take_profit | 6 | +1.49 | +| TON | 04-19 08:00 | 04-19 13:00 | trailing_stop | 5 | -0.48 | +| AVAX | 04-19 07:00 | 04-19 15:00 | trailing_stop | 8 | -0.63 | +| OP | 04-19 11:00 | 04-19 15:00 | trailing_stop | 4 | -0.67 | +| FIL | 04-19 12:00 | 04-19 17:00 | stop_loss | 5 | -1.49 | +| UNI | 04-19 11:00 | 04-19 17:00 | stop_loss | 6 | -1.49 | +| LTC | 04-19 07:00 | 04-19 18:00 | stop_loss | 11 | -1.49 | +| AVAX | 04-19 17:00 | 04-19 22:00 | stop_loss | 5 | -1.49 | +| LTC | 04-19 18:00 | 04-19 22:00 | stop_loss | 4 | -1.49 | +| TIA | 04-19 17:00 | 04-19 22:00 | stop_loss | 5 | -1.49 | +| APT | 04-19 22:00 | 04-20 00:00 | trailing_stop | 2 | -0.62 | +| TIA | 04-19 23:00 | 04-20 00:00 | trailing_stop | 1 | -0.63 | +| FET | 04-19 23:00 | 04-20 02:00 | stop_loss | 3 | -1.49 | +| WIF | 04-20 03:00 | 04-20 04:00 | trailing_stop | 1 | -0.20 | +| OP | 04-20 03:00 | 04-20 05:00 | stop_loss | 2 | -1.49 | +| RENDER | 04-20 02:00 | 04-20 05:00 | stop_loss | 3 | -1.49 | +| SUI | 04-20 03:00 | 04-20 05:00 | stop_loss | 2 | -1.49 | +| ATOM | 04-19 22:00 | 04-20 07:00 | take_profit | 9 | +1.49 | +| AVAX | 04-19 22:00 | 04-20 07:00 | take_profit | 9 | +1.49 | +| LTC | 04-19 22:00 | 04-20 07:00 | take_profit | 9 | +1.49 | +| OP | 04-20 05:00 | 04-20 07:00 | take_profit | 2 | +1.49 | +| RENDER | 04-20 05:00 | 04-20 07:00 | take_profit | 2 | +1.49 | +| SUI | 04-20 05:00 | 04-20 07:00 | take_profit | 2 | +1.49 | +| UNI | 04-20 05:00 | 04-20 07:00 | take_profit | 2 | +1.49 | +| APT | 04-20 02:00 | 04-20 10:00 | take_profit | 8 | +1.49 | +| KAS | 04-20 05:00 | 04-20 12:00 | take_profit | 7 | +1.49 | +| SEI | 04-20 05:00 | 04-20 12:00 | take_profit | 7 | +1.49 | +| TRX | 04-20 06:00 | 04-20 12:00 | stop_loss | 6 | -1.49 | +| TIA | 04-21 00:00 | 04-21 02:00 | stop_loss | 2 | -1.49 | +| ARB | 04-21 02:00 | 04-21 11:00 | trailing_stop | 9 | -0.68 | +| OP | 04-21 08:00 | 04-21 11:00 | take_profit | 3 | +1.49 | +| APT | 04-21 08:00 | 04-21 12:00 | trailing_stop | 4 | -0.64 | +| TIA | 04-21 11:00 | 04-21 12:00 | stop_loss | 1 | -1.49 | +| WIF | 04-21 08:00 | 04-21 12:00 | stop_loss | 4 | -1.49 | +| ATOM | 04-21 05:00 | 04-21 13:00 | stop_loss | 8 | -1.49 | +| ARB | 04-21 11:00 | 04-21 16:00 | take_profit | 5 | +1.49 | +| KAS | 04-21 17:00 | 04-21 18:00 | stop_loss | 1 | -1.49 | +| WIF | 04-21 17:00 | 04-21 18:00 | stop_loss | 1 | -1.49 | +| ARB | 04-21 17:00 | 04-21 19:00 | stop_loss | 2 | -1.49 | +| FIL | 04-21 17:00 | 04-21 19:00 | stop_loss | 2 | -1.49 | +| KAS | 04-21 18:00 | 04-21 19:00 | stop_loss | 1 | -1.49 | +| WIF | 04-21 18:00 | 04-21 19:00 | stop_loss | 1 | -1.49 | +| FET | 04-21 19:00 | 04-21 20:00 | take_profit | 1 | +1.49 | +| OP | 04-21 19:00 | 04-21 20:00 | trailing_stop | 1 | -0.63 | +| TIA | 04-21 19:00 | 04-21 20:00 | trailing_stop | 1 | -0.36 | +| TRX | 04-20 20:00 | 04-21 20:00 | take_profit | 24 | +1.49 | +| AVAX | 04-21 19:00 | 04-21 23:00 | take_profit | 4 | +1.49 | +| BONK | 04-21 19:00 | 04-21 23:00 | take_profit | 4 | +1.49 | +| FIL | 04-21 19:00 | 04-21 23:00 | take_profit | 4 | +1.49 | +| INJ | 04-21 19:00 | 04-21 23:00 | take_profit | 4 | +1.49 | +| RENDER | 04-21 19:00 | 04-21 23:00 | take_profit | 4 | +1.49 | +| SUI | 04-21 19:00 | 04-21 23:00 | take_profit | 4 | +1.49 | +| UNI | 04-21 19:00 | 04-21 23:00 | take_profit | 4 | +1.49 | +| WIF | 04-21 19:00 | 04-21 23:00 | take_profit | 4 | +1.49 | +| ETC | 04-21 19:00 | 04-22 00:00 | take_profit | 5 | +1.49 | +| KAS | 04-21 19:00 | 04-22 02:00 | take_profit | 7 | +1.49 | +| TON | 04-21 19:00 | 04-22 08:00 | take_profit | 13 | +1.49 | +| WIF | 04-22 19:00 | 04-22 20:00 | stop_loss | 1 | -1.49 | +| WIF | 04-22 20:00 | 04-22 21:00 | trailing_stop | 1 | -0.16 | +| OP | 04-22 20:00 | 04-22 22:00 | stop_loss | 2 | -1.49 | +| ATOM | 04-22 17:00 | 04-22 23:00 | stop_loss | 6 | -1.49 | +| AVAX | 04-22 19:00 | 04-22 23:00 | stop_loss | 4 | -1.49 | +| ETC | 04-22 22:00 | 04-22 23:00 | stop_loss | 1 | -1.49 | +| FET | 04-22 19:00 | 04-22 23:00 | stop_loss | 4 | -1.49 | +| FIL | 04-22 20:00 | 04-22 23:00 | stop_loss | 3 | -1.49 | +| OP | 04-22 22:00 | 04-22 23:00 | stop_loss | 1 | -1.49 | +| TIA | 04-22 20:00 | 04-22 23:00 | stop_loss | 3 | -1.49 | +| WIF | 04-22 22:00 | 04-22 23:00 | stop_loss | 1 | -1.49 | +| APT | 04-22 23:00 | 04-23 00:00 | stop_loss | 1 | -1.49 | +| AVAX | 04-22 23:00 | 04-23 00:00 | stop_loss | 1 | -1.49 | +| ETC | 04-22 23:00 | 04-23 00:00 | stop_loss | 1 | -1.49 | +| FET | 04-22 23:00 | 04-23 00:00 | stop_loss | 1 | -1.49 | +| FIL | 04-22 23:00 | 04-23 00:00 | stop_loss | 1 | -1.49 | +| INJ | 04-22 23:00 | 04-23 00:00 | stop_loss | 1 | -1.49 | +| OP | 04-22 23:00 | 04-23 00:00 | stop_loss | 1 | -1.49 | +| PEPE | 04-22 23:00 | 04-23 00:00 | stop_loss | 1 | -1.49 | +| RENDER | 04-22 20:00 | 04-23 00:00 | stop_loss | 4 | -1.49 | +| SUI | 04-22 20:00 | 04-23 00:00 | stop_loss | 4 | -1.49 | +| TIA | 04-22 23:00 | 04-23 00:00 | stop_loss | 1 | -1.49 | +| UNI | 04-22 23:00 | 04-23 00:00 | stop_loss | 1 | -1.49 | +| WIF | 04-22 23:00 | 04-23 00:00 | stop_loss | 1 | -1.49 | +| BONK | 04-23 00:00 | 04-23 01:00 | stop_loss | 1 | -1.49 | +| WIF | 04-23 00:00 | 04-23 01:00 | stop_loss | 1 | -1.49 | +| APT | 04-23 00:00 | 04-23 02:00 | stop_loss | 2 | -1.49 | +| BONK | 04-23 01:00 | 04-23 02:00 | stop_loss | 1 | -1.49 | +| FET | 04-23 00:00 | 04-23 02:00 | stop_loss | 2 | -1.49 | +| FIL | 04-23 00:00 | 04-23 02:00 | stop_loss | 2 | -1.49 | +| NEAR | 04-22 23:00 | 04-23 02:00 | stop_loss | 3 | -1.49 | +| OP | 04-23 00:00 | 04-23 02:00 | stop_loss | 2 | -1.49 | +| RENDER | 04-23 00:00 | 04-23 02:00 | stop_loss | 2 | -1.49 | +| SUI | 04-23 00:00 | 04-23 02:00 | stop_loss | 2 | -1.49 | +| TIA | 04-23 00:00 | 04-23 02:00 | stop_loss | 2 | -1.49 | +| TON | 04-22 23:00 | 04-23 02:00 | stop_loss | 3 | -1.49 | +| UNI | 04-23 00:00 | 04-23 02:00 | stop_loss | 2 | -1.49 | +| WIF | 04-23 01:00 | 04-23 02:00 | stop_loss | 1 | -1.49 | +| AVAX | 04-23 00:00 | 04-23 03:00 | stop_loss | 3 | -1.49 | +| BONK | 04-23 02:00 | 04-23 03:00 | stop_loss | 1 | -1.49 | +| LTC | 04-22 23:00 | 04-23 03:00 | stop_loss | 4 | -1.49 | +| NEAR | 04-23 02:00 | 04-23 03:00 | stop_loss | 1 | -1.49 | +| SHIB | 04-22 23:00 | 04-23 03:00 | stop_loss | 4 | -1.49 | +| TIA | 04-23 02:00 | 04-23 03:00 | stop_loss | 1 | -1.49 | +| TON | 04-23 02:00 | 04-23 03:00 | stop_loss | 1 | -1.49 | +| WIF | 04-23 02:00 | 04-23 03:00 | stop_loss | 1 | -1.49 | +| WIF | 04-23 03:00 | 04-23 04:00 | trailing_stop | 1 | -0.60 | +| BONK | 04-23 03:00 | 04-23 06:00 | take_profit | 3 | +1.49 | +| ARB | 04-23 08:00 | 04-23 09:00 | stop_loss | 1 | -1.49 | +| KAS | 04-23 07:00 | 04-23 09:00 | stop_loss | 2 | -1.49 | +| PEPE | 04-23 07:00 | 04-23 09:00 | stop_loss | 2 | -1.49 | +| SEI | 04-23 07:00 | 04-23 09:00 | stop_loss | 2 | -1.49 | +| UNI | 04-23 02:00 | 04-23 09:00 | stop_loss | 7 | -1.49 | +| ARB | 04-23 09:00 | 04-23 10:00 | stop_loss | 1 | -1.49 | +| INJ | 04-23 03:00 | 04-23 10:00 | trailing_stop | 7 | -0.55 | +| TON | 04-23 03:00 | 04-23 10:00 | stop_loss | 7 | -1.49 | +| ATOM | 04-23 03:00 | 04-23 12:00 | take_profit | 9 | +1.49 | +| KAS | 04-23 09:00 | 04-23 13:00 | take_profit | 4 | +1.49 | +| BONK | 04-23 08:00 | 04-23 14:00 | trailing_stop | 6 | -0.13 | +| OP | 04-23 02:00 | 04-23 14:00 | take_profit | 12 | +1.49 | +| PEPE | 04-23 09:00 | 04-23 14:00 | trailing_stop | 5 | -0.12 | +| NEAR | 04-23 03:00 | 04-23 15:00 | take_profit | 12 | +1.49 | +| SUI | 04-23 02:00 | 04-23 15:00 | take_profit | 13 | +1.49 | +| TIA | 04-23 03:00 | 04-23 15:00 | take_profit | 12 | +1.49 | +| AVAX | 04-23 03:00 | 04-23 17:00 | stop_loss | 14 | -1.49 | +| ETC | 04-23 02:00 | 04-23 17:00 | trailing_stop | 15 | -0.05 | +| FIL | 04-23 02:00 | 04-23 17:00 | stop_loss | 15 | -1.49 | +| LTC | 04-23 03:00 | 04-23 17:00 | trailing_stop | 14 | -0.39 | +| RENDER | 04-23 02:00 | 04-23 17:00 | stop_loss | 15 | -1.49 | +| SHIB | 04-23 07:00 | 04-23 17:00 | trailing_stop | 10 | -0.40 | +| TON | 04-23 10:00 | 04-23 17:00 | take_profit | 7 | +1.49 | +| KAS | 04-23 18:00 | 04-24 04:00 | trailing_stop | 10 | -0.27 | +| TON | 04-24 08:00 | 04-24 10:00 | stop_loss | 2 | -1.49 | +| TRX | 04-22 14:00 | 04-24 15:00 | stop_loss | 49 | -1.49 | +| TRX | 04-24 15:00 | 04-24 16:00 | stop_loss | 1 | -1.49 | +| SEI | 04-24 22:00 | 04-25 05:00 | trailing_stop | 7 | +0.20 | +| RENDER | 04-24 22:00 | 04-25 09:00 | take_profit | 11 | +1.49 | +| WIF | 04-24 22:00 | 04-25 11:00 | trailing_stop | 13 | -0.59 | +| TIA | 04-25 11:00 | 04-25 14:00 | stop_loss | 3 | -1.49 | +| FET | 04-24 22:00 | 04-25 15:00 | trailing_stop | 17 | -0.46 | +| APT | 04-25 13:00 | 04-25 16:00 | stop_loss | 3 | -1.49 | +| BONK | 04-25 11:00 | 04-25 16:00 | stop_loss | 5 | -1.49 | +| PEPE | 04-25 11:00 | 04-25 16:00 | stop_loss | 5 | -1.49 | +| TIA | 04-25 14:00 | 04-25 16:00 | stop_loss | 2 | -1.49 | +| ARB | 04-25 15:00 | 04-25 17:00 | stop_loss | 2 | -1.49 | +| TON | 04-25 15:00 | 04-25 17:00 | stop_loss | 2 | -1.49 | +| PEPE | 04-25 17:00 | 04-25 19:00 | confirmed_bearish_exit | 2 | -0.24 | +| ETC | 04-25 16:00 | 04-25 20:00 | confirmed_bearish_exit | 4 | -0.62 | +| SEI | 04-25 16:00 | 04-26 00:00 | stop_loss | 8 | -1.49 | +| ARB | 04-25 23:00 | 04-26 01:00 | stop_loss | 2 | -1.49 | +| OP | 04-25 18:00 | 04-26 03:00 | stop_loss | 9 | -1.49 | +| ARB | 04-26 01:00 | 04-26 05:00 | take_profit | 4 | +1.49 | +| FET | 04-25 17:00 | 04-26 05:00 | take_profit | 12 | +1.49 | +| FIL | 04-25 17:00 | 04-26 05:00 | take_profit | 12 | +1.49 | +| KAS | 04-25 17:00 | 04-26 05:00 | take_profit | 12 | +1.49 | +| TIA | 04-25 16:00 | 04-26 05:00 | take_profit | 13 | +1.49 | +| BONK | 04-25 16:00 | 04-26 06:00 | take_profit | 14 | +1.49 | +| TON | 04-25 17:00 | 04-26 08:00 | trailing_stop | 15 | -0.49 | +| APT | 04-25 22:00 | 04-26 09:00 | take_profit | 11 | +1.49 | +| WIF | 04-25 16:00 | 04-26 10:00 | take_profit | 18 | +1.49 | +| AVAX | 04-25 15:00 | 04-26 11:00 | take_profit | 20 | +1.49 | +| UNI | 04-25 17:00 | 04-26 11:00 | take_profit | 18 | +1.49 | +| NEAR | 04-25 16:00 | 04-26 17:00 | stop_loss | 25 | -1.49 | +| SHIB | 04-25 16:00 | 04-27 01:00 | take_profit | 33 | +1.49 | +| SUI | 04-25 16:00 | 04-27 01:00 | take_profit | 33 | +1.49 | +| ARB | 04-26 22:00 | 04-27 02:00 | take_profit | 4 | +1.49 | +| ATOM | 04-26 00:00 | 04-27 03:00 | stop_loss | 27 | -1.49 | +| NEAR | 04-26 21:00 | 04-27 04:00 | trailing_stop | 7 | -0.57 | +| ATOM | 04-27 04:00 | 04-27 05:00 | stop_loss | 1 | -1.49 | +| LTC | 04-25 11:00 | 04-27 05:00 | stop_loss | 42 | -1.49 | +| APT | 04-27 05:00 | 04-27 06:00 | stop_loss | 1 | -1.49 | +| ARB | 04-27 05:00 | 04-27 06:00 | stop_loss | 1 | -1.49 | +| OP | 04-27 05:00 | 04-27 06:00 | stop_loss | 1 | -1.49 | +| SEI | 04-27 05:00 | 04-27 06:00 | stop_loss | 1 | -1.49 | +| TIA | 04-27 05:00 | 04-27 06:00 | stop_loss | 1 | -1.49 | +| SUI | 04-27 05:00 | 04-27 07:00 | stop_loss | 2 | -1.49 | +| APT | 04-27 06:00 | 04-27 08:00 | stop_loss | 2 | -1.49 | +| SEI | 04-27 06:00 | 04-27 08:00 | stop_loss | 2 | -1.49 | +| OP | 04-27 06:00 | 04-27 11:00 | stop_loss | 5 | -1.49 | +| ARB | 04-27 06:00 | 04-27 13:00 | stop_loss | 7 | -1.49 | +| AVAX | 04-27 05:00 | 04-27 13:00 | stop_loss | 8 | -1.49 | +| PEPE | 04-27 06:00 | 04-27 14:00 | take_profit | 8 | +1.49 | +| APT | 04-27 08:00 | 04-27 15:00 | stop_loss | 7 | -1.49 | +| FIL | 04-27 07:00 | 04-27 15:00 | stop_loss | 8 | -1.49 | +| INJ | 04-27 12:00 | 04-27 15:00 | stop_loss | 3 | -1.49 | +| LTC | 04-27 05:00 | 04-27 15:00 | stop_loss | 10 | -1.49 | +| SEI | 04-27 08:00 | 04-27 15:00 | stop_loss | 7 | -1.49 | +| SHIB | 04-27 06:00 | 04-27 15:00 | stop_loss | 9 | -1.49 | +| SUI | 04-27 07:00 | 04-27 15:00 | stop_loss | 8 | -1.49 | +| TIA | 04-27 06:00 | 04-27 15:00 | stop_loss | 9 | -1.49 | +| PEPE | 04-27 15:00 | 04-27 22:00 | take_profit | 7 | +1.49 | +| RENDER | 04-27 15:00 | 04-27 22:00 | trailing_stop | 7 | +0.04 | +| ATOM | 04-27 05:00 | 04-28 01:00 | trailing_stop | 20 | -0.04 | +| KAS | 04-27 15:00 | 04-28 02:00 | trailing_stop | 11 | -0.53 | +| NEAR | 04-27 15:00 | 04-28 07:00 | trailing_stop | 16 | -0.53 | +| FET | 04-28 02:00 | 04-28 09:00 | stop_loss | 7 | -1.49 | +| ATOM | 04-28 02:00 | 04-28 11:00 | stop_loss | 9 | -1.49 | +| TON | 04-27 07:00 | 04-28 12:00 | trailing_stop | 29 | -0.56 | +| FET | 04-28 11:00 | 04-28 13:00 | stop_loss | 2 | -1.49 | +| ATOM | 04-28 11:00 | 04-28 14:00 | stop_loss | 3 | -1.49 | +| KAS | 04-28 02:00 | 04-28 14:00 | stop_loss | 12 | -1.49 | +| INJ | 04-28 14:00 | 04-28 15:00 | stop_loss | 1 | -1.49 | +| FET | 04-28 14:00 | 04-28 17:00 | stop_loss | 3 | -1.49 | +| INJ | 04-28 15:00 | 04-28 17:00 | stop_loss | 2 | -1.49 | +| INJ | 04-28 17:00 | 04-28 18:00 | trailing_stop | 1 | -0.48 | +| FET | 04-28 20:00 | 04-28 22:00 | stop_loss | 2 | -1.49 | +| ATOM | 04-28 14:00 | 04-29 02:00 | take_profit | 12 | +1.49 | +| FET | 04-28 22:00 | 04-29 03:00 | take_profit | 5 | +1.49 | +| NEAR | 04-28 15:00 | 04-29 03:00 | take_profit | 12 | +1.49 | +| PEPE | 04-28 13:00 | 04-29 04:00 | take_profit | 15 | +1.49 | +| TON | 04-28 13:00 | 04-29 04:00 | take_profit | 15 | +1.49 | +| LTC | 04-27 15:00 | 04-29 09:00 | take_profit | 42 | +1.49 | +| KAS | 04-28 15:00 | 04-29 10:00 | take_profit | 19 | +1.49 | +| INJ | 04-29 14:00 | 04-29 15:00 | stop_loss | 1 | -1.49 | +| SEI | 04-29 13:00 | 04-29 15:00 | stop_loss | 2 | -1.49 | +| SUI | 04-29 13:00 | 04-29 15:00 | stop_loss | 2 | -1.49 | +| FIL | 04-29 16:00 | 04-29 17:00 | trailing_stop | 1 | -0.27 | +| ATOM | 04-29 15:00 | 04-29 18:00 | stop_loss | 3 | -1.49 | +| ETC | 04-29 15:00 | 04-29 18:00 | stop_loss | 3 | -1.49 | +| INJ | 04-29 15:00 | 04-29 18:00 | stop_loss | 3 | -1.49 | +| KAS | 04-29 15:00 | 04-29 18:00 | stop_loss | 3 | -1.49 | +| NEAR | 04-29 15:00 | 04-29 18:00 | stop_loss | 3 | -1.49 | +| OP | 04-29 15:00 | 04-29 18:00 | stop_loss | 3 | -1.49 | +| RENDER | 04-29 15:00 | 04-29 18:00 | stop_loss | 3 | -1.49 | +| SEI | 04-29 15:00 | 04-29 18:00 | stop_loss | 3 | -1.49 | +| SUI | 04-29 15:00 | 04-29 18:00 | stop_loss | 3 | -1.49 | +| TIA | 04-29 15:00 | 04-29 18:00 | stop_loss | 3 | -1.49 | +| UNI | 04-29 15:00 | 04-29 18:00 | stop_loss | 3 | -1.49 | +| FIL | 04-29 18:00 | 04-29 20:00 | trailing_stop | 2 | -0.04 | +| FET | 04-29 18:00 | 04-29 21:00 | take_profit | 3 | +1.49 | +| OP | 04-29 18:00 | 04-29 21:00 | take_profit | 3 | +1.49 | +| ARB | 04-29 23:00 | 04-30 00:00 | take_profit | 1 | +1.49 | +| BONK | 04-29 18:00 | 04-30 00:00 | take_profit | 6 | +1.49 | +| OP | 04-29 23:00 | 04-30 00:00 | trailing_stop | 1 | -0.38 | +| PEPE | 04-29 23:00 | 04-30 00:00 | take_profit | 1 | +1.49 | +| SHIB | 04-29 23:00 | 04-30 00:00 | trailing_stop | 1 | -0.10 | +| SUI | 04-29 18:00 | 04-30 00:00 | take_profit | 6 | +1.49 | +| UNI | 04-29 18:00 | 04-30 00:00 | take_profit | 6 | +1.49 | +| WIF | 04-29 23:00 | 04-30 00:00 | trailing_stop | 1 | -0.59 | +| NEAR | 04-29 18:00 | 04-30 01:00 | take_profit | 7 | +1.49 | +| PEPE | 04-30 00:00 | 04-30 01:00 | stop_loss | 1 | -1.49 | +| SEI | 04-29 18:00 | 04-30 01:00 | take_profit | 7 | +1.49 | +| ATOM | 04-29 18:00 | 04-30 02:00 | trailing_stop | 8 | -0.51 | +| AVAX | 04-29 18:00 | 04-30 02:00 | trailing_stop | 8 | -0.18 | +| ETC | 04-29 18:00 | 04-30 02:00 | trailing_stop | 8 | +0.09 | +| PEPE | 04-30 01:00 | 04-30 02:00 | stop_loss | 1 | -1.49 | +| RENDER | 04-29 23:00 | 04-30 02:00 | stop_loss | 3 | -1.49 | +| TIA | 04-29 18:00 | 04-30 02:00 | trailing_stop | 8 | -0.59 | +| UNI | 04-30 00:00 | 04-30 02:00 | stop_loss | 2 | -1.49 | +| INJ | 04-29 23:00 | 04-30 03:00 | stop_loss | 4 | -1.49 | +| TIA | 04-30 02:00 | 04-30 03:00 | take_profit | 1 | +1.49 | +| KAS | 04-29 18:00 | 04-30 04:00 | trailing_stop | 10 | -0.29 | +| UNI | 04-30 02:00 | 04-30 05:00 | stop_loss | 3 | -1.49 | +| SEI | 04-30 02:00 | 04-30 13:00 | stop_loss | 11 | -1.49 | +| RENDER | 04-30 02:00 | 04-30 15:00 | stop_loss | 13 | -1.49 | +| ATOM | 04-30 02:00 | 04-30 16:00 | stop_loss | 14 | -1.49 | +| APT | 04-30 17:00 | 05-01 01:00 | take_profit | 8 | +1.49 | +| BONK | 04-30 22:00 | 05-01 01:00 | trailing_stop | 3 | -0.09 | +| TIA | 04-30 21:00 | 05-01 01:00 | trailing_stop | 4 | -0.29 | +| RENDER | 04-30 21:00 | 05-01 03:00 | take_profit | 6 | +1.49 | +| SHIB | 04-30 22:00 | 05-01 03:00 | take_profit | 5 | +1.49 | +| ETC | 04-30 23:00 | 05-01 13:00 | take_profit | 14 | +1.49 | +| NEAR | 04-30 18:00 | 05-01 15:00 | stop_loss | 21 | -1.49 | +| ATOM | 04-30 17:00 | 05-01 19:00 | take_profit | 26 | +1.49 | +| APT | 05-01 17:00 | 05-01 20:00 | stop_loss | 3 | -1.49 | +| TIA | 05-01 20:00 | 05-02 03:00 | stop_loss | 7 | -1.49 | +| ARB | 05-01 23:00 | 05-02 04:00 | stop_loss | 5 | -1.49 | +| PEPE | 05-02 03:00 | 05-02 04:00 | stop_loss | 1 | -1.49 | +| BONK | 05-02 03:00 | 05-02 05:00 | stop_loss | 2 | -1.49 | +| KAS | 05-02 03:00 | 05-02 06:00 | stop_loss | 3 | -1.49 | +| TON | 05-02 00:00 | 05-02 10:00 | take_profit | 10 | +1.49 | +| TRX | 04-24 16:00 | 05-02 10:00 | take_profit | 186 | +1.49 | +| APT | 05-02 05:00 | 05-02 11:00 | trailing_stop | 6 | -0.60 | +| LTC | 04-29 23:00 | 05-02 11:00 | trailing_stop | 60 | -0.64 | +| ATOM | 05-02 05:00 | 05-02 12:00 | stop_loss | 7 | -1.49 | +| WIF | 05-02 05:00 | 05-02 12:00 | take_profit | 7 | +1.49 | +| FET | 05-02 03:00 | 05-02 14:00 | take_profit | 11 | +1.49 | +| SEI | 05-02 05:00 | 05-02 15:00 | take_profit | 10 | +1.49 | +| PEPE | 05-02 04:00 | 05-02 16:00 | take_profit | 12 | +1.49 | +| ARB | 05-02 04:00 | 05-02 17:00 | trailing_stop | 13 | -0.17 | +| ETC | 05-02 04:00 | 05-02 21:00 | take_profit | 17 | +1.49 | +| UNI | 05-02 05:00 | 05-02 21:00 | take_profit | 16 | +1.49 | +| ATOM | 05-02 12:00 | 05-03 00:00 | trailing_stop | 12 | -0.32 | +| SUI | 05-02 05:00 | 05-03 01:00 | trailing_stop | 20 | -0.30 | +| AVAX | 05-02 03:00 | 05-03 03:00 | stop_loss | 24 | -1.49 | +| ARB | 05-03 01:00 | 05-03 05:00 | stop_loss | 4 | -1.49 | +| NEAR | 05-01 17:00 | 05-03 05:00 | stop_loss | 36 | -1.49 | +| ARB | 05-03 09:00 | 05-03 10:00 | stop_loss | 1 | -1.49 | +| ARB | 05-03 10:00 | 05-03 11:00 | stop_loss | 1 | -1.49 | +| TIA | 05-03 05:00 | 05-03 13:00 | stop_loss | 8 | -1.49 | +| WIF | 05-03 04:00 | 05-03 19:00 | take_profit | 15 | +1.49 | +| APT | 05-03 01:00 | 05-03 20:00 | take_profit | 19 | +1.49 | +| OP | 05-03 08:00 | 05-03 20:00 | take_profit | 12 | +1.49 | +| PEPE | 05-03 06:00 | 05-03 21:00 | trailing_stop | 15 | -0.44 | +| FIL | 05-03 05:00 | 05-03 22:00 | take_profit | 17 | +1.49 | +| SEI | 05-03 06:00 | 05-03 22:00 | take_profit | 16 | +1.49 | +| ARB | 05-03 23:00 | 05-04 00:00 | stop_loss | 1 | -1.49 | +| AVAX | 05-03 04:00 | 05-04 00:00 | trailing_stop | 20 | -0.06 | +| BONK | 05-03 06:00 | 05-04 00:00 | trailing_stop | 18 | -0.59 | +| SHIB | 05-03 01:00 | 05-04 00:00 | stop_loss | 23 | -1.49 | +| SUI | 05-03 05:00 | 05-04 00:00 | trailing_stop | 19 | -0.57 | +| UNI | 05-03 06:00 | 05-04 00:00 | trailing_stop | 18 | -0.23 | +| ETC | 05-03 06:00 | 05-04 01:00 | trailing_stop | 19 | -0.18 | +| LTC | 05-02 17:00 | 05-04 04:00 | take_profit | 35 | +1.49 | +| APT | 05-04 10:00 | 05-04 14:00 | take_profit | 4 | +1.49 | +| ARB | 05-04 10:00 | 05-04 14:00 | take_profit | 4 | +1.49 | +| FET | 05-04 10:00 | 05-04 14:00 | take_profit | 4 | +1.49 | +| INJ | 05-04 10:00 | 05-04 14:00 | trailing_stop | 4 | -0.39 | +| NEAR | 05-04 10:00 | 05-04 14:00 | take_profit | 4 | +1.49 | +| FIL | 05-04 16:00 | 05-04 20:00 | trailing_stop | 4 | -0.43 | +| UNI | 05-04 18:00 | 05-04 20:00 | stop_loss | 2 | -1.49 | +| ATOM | 05-04 15:00 | 05-05 05:00 | take_profit | 14 | +1.49 | +| KAS | 05-04 16:00 | 05-05 12:00 | trailing_stop | 20 | +0.18 | +| ATOM | 05-05 15:00 | 05-05 16:00 | stop_loss | 1 | -1.49 | +| TIA | 05-05 15:00 | 05-05 20:00 | take_profit | 5 | +1.49 | +| ATOM | 05-05 16:00 | 05-05 21:00 | take_profit | 5 | +1.49 | +| WIF | 05-06 19:00 | 05-06 20:00 | stop_loss | 1 | -1.49 | +| FIL | 05-06 18:00 | 05-06 21:00 | take_profit | 3 | +1.49 | +| WIF | 05-06 20:00 | 05-06 21:00 | stop_loss | 1 | -1.49 | +| WIF | 05-06 21:00 | 05-06 22:00 | stop_loss | 1 | -1.49 | +| APT | 05-06 23:00 | 05-07 00:00 | stop_loss | 1 | -1.49 | +| BONK | 05-06 22:00 | 05-07 00:00 | stop_loss | 2 | -1.49 | +| PEPE | 05-06 19:00 | 05-07 00:00 | stop_loss | 5 | -1.49 | +| SHIB | 05-06 23:00 | 05-07 00:00 | stop_loss | 1 | -1.49 | +| SUI | 05-06 23:00 | 05-07 00:00 | stop_loss | 1 | -1.49 | +| WIF | 05-06 22:00 | 05-07 00:00 | stop_loss | 2 | -1.49 | +| ATOM | 05-06 22:00 | 05-07 01:00 | stop_loss | 3 | -1.49 | +| UNI | 05-07 00:00 | 05-07 02:00 | stop_loss | 2 | -1.49 | +| BONK | 05-07 00:00 | 05-07 04:00 | take_profit | 4 | +1.49 | +| RENDER | 05-07 01:00 | 05-07 04:00 | trailing_stop | 3 | -0.20 | +| UNI | 05-07 02:00 | 05-07 04:00 | stop_loss | 2 | -1.49 | +| WIF | 05-07 03:00 | 05-07 04:00 | stop_loss | 1 | -1.49 | +| AVAX | 05-07 00:00 | 05-07 06:00 | trailing_stop | 6 | -0.46 | +| SEI | 05-07 01:00 | 05-07 06:00 | take_profit | 5 | +1.49 | +| WIF | 05-07 09:00 | 05-07 12:00 | take_profit | 3 | +1.49 | +| LTC | 05-06 22:00 | 05-07 14:00 | trailing_stop | 16 | -0.57 | +| SHIB | 05-07 11:00 | 05-07 14:00 | stop_loss | 3 | -1.49 | +| TRX | 05-06 08:00 | 05-07 17:00 | take_profit | 33 | +1.49 | +| KAS | 05-07 15:00 | 05-07 19:00 | stop_loss | 4 | -1.49 | +| KAS | 05-07 20:00 | 05-07 23:00 | confirmed_bearish_exit | 3 | +0.52 | +| FET | 05-08 00:00 | 05-08 02:00 | stop_loss | 2 | -1.49 | +| FET | 05-08 02:00 | 05-08 03:00 | trailing_stop | 1 | -0.54 | +| RENDER | 05-07 21:00 | 05-08 05:00 | take_profit | 8 | +1.49 | +| SEI | 05-08 02:00 | 05-08 07:00 | trailing_stop | 5 | -0.22 | +| BONK | 05-08 02:00 | 05-08 08:00 | take_profit | 6 | +1.49 | +| PEPE | 05-07 21:00 | 05-08 09:00 | take_profit | 12 | +1.49 | +| UNI | 05-08 02:00 | 05-08 09:00 | take_profit | 7 | +1.49 | +| AVAX | 05-08 02:00 | 05-08 14:00 | take_profit | 12 | +1.49 | +| TON | 05-08 20:00 | 05-08 21:00 | take_profit | 1 | +1.49 | +| TIA | 05-09 10:00 | 05-09 11:00 | take_profit | 1 | +1.49 | +| ETC | 05-09 09:00 | 05-09 13:00 | stop_loss | 4 | -1.49 | +| FIL | 05-09 12:00 | 05-09 14:00 | stop_loss | 2 | -1.49 | +| PEPE | 05-09 13:00 | 05-09 14:00 | stop_loss | 1 | -1.49 | +| SHIB | 05-09 12:00 | 05-09 14:00 | stop_loss | 2 | -1.49 | +| TIA | 05-09 13:00 | 05-09 14:00 | stop_loss | 1 | -1.49 | +| FET | 05-09 14:00 | 05-09 15:00 | stop_loss | 1 | -1.49 | +| FIL | 05-09 14:00 | 05-09 15:00 | stop_loss | 1 | -1.49 | +| TON | 05-09 14:00 | 05-09 15:00 | stop_loss | 1 | -1.49 | +| APT | 05-09 10:00 | 05-09 16:00 | stop_loss | 6 | -1.49 | +| ARB | 05-09 15:00 | 05-09 16:00 | stop_loss | 1 | -1.49 | +| UNI | 05-09 13:00 | 05-09 17:00 | trailing_stop | 4 | -0.40 | +| SUI | 05-09 14:00 | 05-09 18:00 | take_profit | 4 | +1.49 | +| TIA | 05-09 14:00 | 05-09 18:00 | take_profit | 4 | +1.49 | +| WIF | 05-09 15:00 | 05-09 18:00 | confirmed_bearish_exit | 3 | +1.29 | +| FET | 05-09 16:00 | 05-09 21:00 | trailing_stop | 5 | -0.42 | +| BONK | 05-09 15:00 | 05-09 22:00 | take_profit | 7 | +1.49 | +| FIL | 05-09 15:00 | 05-09 23:00 | trailing_stop | 8 | -0.39 | +| OP | 05-09 11:00 | 05-09 23:00 | stop_loss | 12 | -1.49 | +| ARB | 05-09 20:00 | 05-10 00:00 | stop_loss | 4 | -1.49 | +| ATOM | 05-09 14:00 | 05-10 00:00 | stop_loss | 10 | -1.49 | +| AVAX | 05-09 14:00 | 05-10 01:00 | trailing_stop | 11 | -0.20 | +| INJ | 05-09 15:00 | 05-10 01:00 | stop_loss | 10 | -1.49 | +| PEPE | 05-09 14:00 | 05-10 01:00 | stop_loss | 11 | -1.49 | +| ETC | 05-09 13:00 | 05-10 02:00 | take_profit | 13 | +1.49 | +| OP | 05-10 01:00 | 05-10 10:00 | trailing_stop | 9 | -0.60 | +| ATOM | 05-10 00:00 | 05-10 12:00 | take_profit | 12 | +1.49 | +| SHIB | 05-09 14:00 | 05-10 12:00 | take_profit | 22 | +1.49 | +| INJ | 05-10 01:00 | 05-10 13:00 | take_profit | 12 | +1.49 | +| LTC | 05-09 14:00 | 05-10 15:00 | take_profit | 25 | +1.49 | +| PEPE | 05-10 01:00 | 05-10 15:00 | take_profit | 14 | +1.49 | +| SEI | 05-10 12:00 | 05-10 15:00 | take_profit | 3 | +1.49 | +| TON | 05-10 17:00 | 05-10 18:00 | stop_loss | 1 | -1.49 | +| FIL | 05-10 16:00 | 05-10 20:00 | stop_loss | 4 | -1.49 | +| FIL | 05-10 20:00 | 05-10 22:00 | take_profit | 2 | +1.49 | +| TON | 05-11 03:00 | 05-11 04:00 | stop_loss | 1 | -1.49 | +| UNI | 05-11 03:00 | 05-11 04:00 | stop_loss | 1 | -1.49 | +| UNI | 05-11 04:00 | 05-11 07:00 | stop_loss | 3 | -1.49 | +| FIL | 05-11 07:00 | 05-11 08:00 | stop_loss | 1 | -1.49 | +| SUI | 05-11 08:00 | 05-11 09:00 | trailing_stop | 1 | -0.62 | +| APT | 05-11 09:00 | 05-11 11:00 | stop_loss | 2 | -1.49 | +| NEAR | 05-11 09:00 | 05-11 12:00 | stop_loss | 3 | -1.49 | +| BONK | 05-11 08:00 | 05-11 13:00 | stop_loss | 5 | -1.49 | +| NEAR | 05-11 12:00 | 05-11 13:00 | stop_loss | 1 | -1.49 | +| RENDER | 05-11 09:00 | 05-11 13:00 | stop_loss | 4 | -1.49 | +| SUI | 05-11 09:00 | 05-11 13:00 | take_profit | 4 | +1.49 | +| FET | 05-11 12:00 | 05-11 14:00 | stop_loss | 2 | -1.49 | +| PEPE | 05-11 08:00 | 05-11 14:00 | stop_loss | 6 | -1.49 | +| SUI | 05-11 13:00 | 05-11 14:00 | stop_loss | 1 | -1.49 | +| AVAX | 05-11 12:00 | 05-11 15:00 | trailing_stop | 3 | -0.03 | +| SUI | 05-11 14:00 | 05-11 16:00 | take_profit | 2 | +1.49 | +| ARB | 05-11 12:00 | 05-11 17:00 | trailing_stop | 5 | -0.58 | +| RENDER | 05-12 00:00 | 05-12 01:00 | stop_loss | 1 | -1.49 | +| SEI | 05-12 01:00 | 05-12 06:00 | trailing_stop | 5 | -0.34 | +| APT | 05-12 01:00 | 05-12 07:00 | trailing_stop | 6 | -0.18 | +| FET | 05-12 01:00 | 05-12 07:00 | trailing_stop | 6 | -0.58 | +| RENDER | 05-12 01:00 | 05-12 07:00 | trailing_stop | 6 | -0.25 | +| BONK | 05-12 01:00 | 05-12 08:00 | stop_loss | 7 | -1.49 | +| PEPE | 05-12 01:00 | 05-12 08:00 | stop_loss | 7 | -1.49 | +| ARB | 05-12 03:00 | 05-12 09:00 | stop_loss | 6 | -1.49 | +| AVAX | 05-12 01:00 | 05-12 09:00 | stop_loss | 8 | -1.49 | +| ETC | 05-12 01:00 | 05-12 09:00 | stop_loss | 8 | -1.49 | +| KAS | 05-12 08:00 | 05-12 09:00 | stop_loss | 1 | -1.49 | +| BONK | 05-12 08:00 | 05-12 10:00 | stop_loss | 2 | -1.49 | +| WIF | 05-12 09:00 | 05-12 10:00 | stop_loss | 1 | -1.49 | +| AVAX | 05-12 09:00 | 05-12 11:00 | stop_loss | 2 | -1.49 | +| BONK | 05-12 10:00 | 05-12 11:00 | stop_loss | 1 | -1.49 | +| OP | 05-12 01:00 | 05-12 11:00 | stop_loss | 10 | -1.49 | +| PEPE | 05-12 08:00 | 05-12 11:00 | stop_loss | 3 | -1.49 | +| RENDER | 05-12 09:00 | 05-12 11:00 | stop_loss | 2 | -1.49 | +| SEI | 05-12 08:00 | 05-12 11:00 | stop_loss | 3 | -1.49 | +| FIL | 05-12 03:00 | 05-12 12:00 | stop_loss | 9 | -1.49 | +| OP | 05-12 11:00 | 05-12 12:00 | stop_loss | 1 | -1.49 | +| SHIB | 05-12 10:00 | 05-12 12:00 | stop_loss | 2 | -1.49 | +| SUI | 05-12 11:00 | 05-12 12:00 | take_profit | 1 | +1.49 | +| WIF | 05-12 10:00 | 05-12 12:00 | stop_loss | 2 | -1.49 | +| BONK | 05-12 11:00 | 05-12 13:00 | stop_loss | 2 | -1.49 | +| KAS | 05-12 10:00 | 05-12 13:00 | trailing_stop | 3 | -0.53 | +| LTC | 05-12 01:00 | 05-12 13:00 | stop_loss | 12 | -1.49 | +| OP | 05-12 12:00 | 05-12 13:00 | stop_loss | 1 | -1.49 | +| SHIB | 05-12 12:00 | 05-12 13:00 | stop_loss | 1 | -1.49 | +| TIA | 05-12 12:00 | 05-12 13:00 | stop_loss | 1 | -1.49 | +| TON | 05-12 12:00 | 05-12 13:00 | stop_loss | 1 | -1.49 | +| AVAX | 05-12 13:00 | 05-12 14:00 | stop_loss | 1 | -1.49 | +| OP | 05-12 13:00 | 05-12 14:00 | stop_loss | 1 | -1.49 | +| PEPE | 05-12 13:00 | 05-12 14:00 | stop_loss | 1 | -1.49 | +| TIA | 05-12 13:00 | 05-12 14:00 | stop_loss | 1 | -1.49 | +| TON | 05-12 13:00 | 05-12 14:00 | take_profit | 1 | +1.49 | +| WIF | 05-12 13:00 | 05-12 14:00 | stop_loss | 1 | -1.49 | +| ATOM | 05-12 14:00 | 05-12 15:00 | trailing_stop | 1 | -0.46 | +| BONK | 05-12 13:00 | 05-12 15:00 | stop_loss | 2 | -1.49 | +| SUI | 05-12 14:00 | 05-12 15:00 | stop_loss | 1 | -1.49 | +| TIA | 05-12 14:00 | 05-12 15:00 | take_profit | 1 | +1.49 | +| APT | 05-12 13:00 | 05-12 16:00 | stop_loss | 3 | -1.49 | +| FET | 05-12 14:00 | 05-12 16:00 | stop_loss | 2 | -1.49 | +| FIL | 05-12 14:00 | 05-12 16:00 | stop_loss | 2 | -1.49 | +| OP | 05-12 14:00 | 05-12 16:00 | stop_loss | 2 | -1.49 | +| PEPE | 05-12 14:00 | 05-12 16:00 | stop_loss | 2 | -1.49 | +| OP | 05-12 16:00 | 05-12 17:00 | trailing_stop | 1 | -0.18 | +| FIL | 05-12 16:00 | 05-12 18:00 | take_profit | 2 | +1.49 | +| FET | 05-12 16:00 | 05-12 19:00 | take_profit | 3 | +1.49 | +| RENDER | 05-12 15:00 | 05-12 19:00 | take_profit | 4 | +1.49 | +| WIF | 05-12 14:00 | 05-12 19:00 | take_profit | 5 | +1.49 | +| PEPE | 05-12 16:00 | 05-12 20:00 | take_profit | 4 | +1.49 | +| FET | 05-12 21:00 | 05-12 23:00 | stop_loss | 2 | -1.49 | +| SEI | 05-12 21:00 | 05-12 23:00 | stop_loss | 2 | -1.49 | +| APT | 05-12 19:00 | 05-13 01:00 | trailing_stop | 6 | -0.70 | +| ARB | 05-12 14:00 | 05-13 01:00 | take_profit | 11 | +1.49 | +| AVAX | 05-12 14:00 | 05-13 01:00 | take_profit | 11 | +1.49 | +| WIF | 05-12 20:00 | 05-13 01:00 | trailing_stop | 5 | +0.09 | +| FET | 05-12 23:00 | 05-13 02:00 | take_profit | 3 | +1.49 | +| OP | 05-12 20:00 | 05-13 02:00 | trailing_stop | 6 | -0.21 | +| LTC | 05-12 13:00 | 05-13 03:00 | take_profit | 14 | +1.49 | +| SHIB | 05-12 13:00 | 05-13 03:00 | confirmed_bearish_exit | 14 | +1.37 | +| BONK | 05-12 20:00 | 05-13 04:00 | take_profit | 8 | +1.49 | +| UNI | 05-12 19:00 | 05-13 04:00 | take_profit | 9 | +1.49 | +| PEPE | 05-12 20:00 | 05-13 05:00 | trailing_stop | 9 | -0.28 | +| SEI | 05-12 23:00 | 05-13 06:00 | take_profit | 7 | +1.49 | +| TON | 05-13 10:00 | 05-13 12:00 | stop_loss | 2 | -1.49 | +| BONK | 05-13 12:00 | 05-13 13:00 | stop_loss | 1 | -1.49 | +| FET | 05-13 12:00 | 05-13 13:00 | stop_loss | 1 | -1.49 | +| FIL | 05-13 12:00 | 05-13 13:00 | stop_loss | 1 | -1.49 | +| OP | 05-13 12:00 | 05-13 13:00 | stop_loss | 1 | -1.49 | +| SEI | 05-13 12:00 | 05-13 13:00 | stop_loss | 1 | -1.49 | +| SHIB | 05-13 12:00 | 05-13 13:00 | stop_loss | 1 | -1.49 | +| TON | 05-13 12:00 | 05-13 13:00 | stop_loss | 1 | -1.49 | +| UNI | 05-13 12:00 | 05-13 13:00 | stop_loss | 1 | -1.49 | +| APT | 05-13 13:00 | 05-13 15:00 | stop_loss | 2 | -1.49 | +| ARB | 05-13 13:00 | 05-13 15:00 | stop_loss | 2 | -1.49 | +| ATOM | 05-13 13:00 | 05-13 15:00 | stop_loss | 2 | -1.49 | +| BONK | 05-13 13:00 | 05-13 15:00 | stop_loss | 2 | -1.49 | +| ETC | 05-13 13:00 | 05-13 15:00 | stop_loss | 2 | -1.49 | +| FET | 05-13 13:00 | 05-13 15:00 | stop_loss | 2 | -1.49 | +| FIL | 05-13 13:00 | 05-13 15:00 | stop_loss | 2 | -1.49 | +| LTC | 05-13 13:00 | 05-13 15:00 | stop_loss | 2 | -1.49 | +| OP | 05-13 13:00 | 05-13 15:00 | stop_loss | 2 | -1.49 | +| PEPE | 05-13 13:00 | 05-13 15:00 | stop_loss | 2 | -1.49 | +| SEI | 05-13 13:00 | 05-13 15:00 | stop_loss | 2 | -1.49 | +| SHIB | 05-13 13:00 | 05-13 15:00 | stop_loss | 2 | -1.49 | +| TON | 05-13 13:00 | 05-13 15:00 | stop_loss | 2 | -1.49 | +| UNI | 05-13 13:00 | 05-13 15:00 | stop_loss | 2 | -1.49 | +| ATOM | 05-13 15:00 | 05-13 16:00 | trailing_stop | 1 | -0.53 | +| FIL | 05-13 15:00 | 05-13 16:00 | take_profit | 1 | +1.49 | +| NEAR | 05-13 15:00 | 05-13 16:00 | take_profit | 1 | +1.49 | +| OP | 05-13 15:00 | 05-13 16:00 | trailing_stop | 1 | -0.47 | +| PEPE | 05-13 15:00 | 05-13 16:00 | take_profit | 1 | +1.49 | +| SUI | 05-13 15:00 | 05-13 16:00 | take_profit | 1 | +1.49 | +| TON | 05-13 15:00 | 05-13 16:00 | take_profit | 1 | +1.49 | +| WIF | 05-13 15:00 | 05-13 16:00 | take_profit | 1 | +1.49 | +| APT | 05-13 15:00 | 05-13 18:00 | take_profit | 3 | +1.49 | +| ARB | 05-13 15:00 | 05-13 18:00 | take_profit | 3 | +1.49 | +| BONK | 05-13 15:00 | 05-13 18:00 | take_profit | 3 | +1.49 | +| RENDER | 05-13 15:00 | 05-13 18:00 | take_profit | 3 | +1.49 | +| FET | 05-13 15:00 | 05-13 21:00 | trailing_stop | 6 | -0.40 | +| KAS | 05-13 15:00 | 05-13 21:00 | trailing_stop | 6 | -0.55 | +| NEAR | 05-13 19:00 | 05-13 21:00 | stop_loss | 2 | -1.49 | +| ATOM | 05-13 21:00 | 05-14 00:00 | stop_loss | 3 | -1.49 | +| INJ | 05-13 23:00 | 05-14 00:00 | stop_loss | 1 | -1.49 | +| APT | 05-14 00:00 | 05-14 02:00 | stop_loss | 2 | -1.49 | +| BONK | 05-14 00:00 | 05-14 02:00 | stop_loss | 2 | -1.49 | +| SEI | 05-13 15:00 | 05-14 02:00 | trailing_stop | 11 | +0.02 | +| AVAX | 05-13 15:00 | 05-14 03:00 | trailing_stop | 12 | -0.06 | +| ETC | 05-13 15:00 | 05-14 03:00 | trailing_stop | 12 | -0.19 | +| FIL | 05-14 00:00 | 05-14 03:00 | stop_loss | 3 | -1.49 | +| RENDER | 05-13 22:00 | 05-14 03:00 | stop_loss | 5 | -1.49 | +| SHIB | 05-13 15:00 | 05-14 03:00 | trailing_stop | 12 | +0.05 | +| UNI | 05-13 15:00 | 05-14 03:00 | trailing_stop | 12 | -0.19 | +| TIA | 05-14 07:00 | 05-14 09:00 | stop_loss | 2 | -1.49 | +| FET | 05-14 11:00 | 05-14 12:00 | trailing_stop | 1 | -0.32 | +| LTC | 05-13 15:00 | 05-14 13:00 | take_profit | 22 | +1.49 | +| SEI | 05-14 11:00 | 05-14 14:00 | take_profit | 3 | +1.49 | +| SUI | 05-15 03:00 | 05-15 04:00 | stop_loss | 1 | -1.49 | +| APT | 05-15 04:00 | 05-15 05:00 | stop_loss | 1 | -1.49 | +| ARB | 05-15 04:00 | 05-15 05:00 | stop_loss | 1 | -1.49 | +| ATOM | 05-15 04:00 | 05-15 05:00 | stop_loss | 1 | -1.49 | +| AVAX | 05-15 04:00 | 05-15 05:00 | stop_loss | 1 | -1.49 | +| FET | 05-15 04:00 | 05-15 05:00 | stop_loss | 1 | -1.49 | +| FIL | 05-15 04:00 | 05-15 05:00 | stop_loss | 1 | -1.49 | +| NEAR | 05-15 04:00 | 05-15 05:00 | stop_loss | 1 | -1.49 | +| OP | 05-15 04:00 | 05-15 05:00 | stop_loss | 1 | -1.49 | +| SUI | 05-15 04:00 | 05-15 05:00 | stop_loss | 1 | -1.49 | +| TIA | 05-15 04:00 | 05-15 05:00 | stop_loss | 1 | -1.49 | +| TON | 05-15 04:00 | 05-15 05:00 | stop_loss | 1 | -1.49 | +| INJ | 05-15 05:00 | 05-15 06:00 | take_profit | 1 | +1.49 | +| UNI | 05-15 05:00 | 05-15 06:00 | trailing_stop | 1 | -0.21 | +| BONK | 05-15 05:00 | 05-15 07:00 | take_profit | 2 | +1.49 | +| FET | 05-15 05:00 | 05-15 07:00 | take_profit | 2 | +1.49 | +| PEPE | 05-15 05:00 | 05-15 07:00 | take_profit | 2 | +1.49 | +| TIA | 05-15 05:00 | 05-15 07:00 | take_profit | 2 | +1.49 | +| TON | 05-15 05:00 | 05-15 07:00 | take_profit | 2 | +1.49 | +| WIF | 05-15 05:00 | 05-15 07:00 | take_profit | 2 | +1.49 | +| SUI | 05-15 05:00 | 05-15 08:00 | stop_loss | 3 | -1.49 | +| KAS | 05-15 05:00 | 05-15 09:00 | stop_loss | 4 | -1.49 | +| OP | 05-15 05:00 | 05-15 10:00 | take_profit | 5 | +1.49 | +| RENDER | 05-15 05:00 | 05-15 11:00 | take_profit | 6 | +1.49 | +| ARB | 05-15 05:00 | 05-15 12:00 | trailing_stop | 7 | -0.15 | +| APT | 05-15 05:00 | 05-15 13:00 | stop_loss | 8 | -1.49 | +| ATOM | 05-15 05:00 | 05-15 13:00 | stop_loss | 8 | -1.49 | +| AVAX | 05-15 05:00 | 05-15 13:00 | stop_loss | 8 | -1.49 | +| ETC | 05-15 08:00 | 05-15 13:00 | stop_loss | 5 | -1.49 | +| FIL | 05-15 05:00 | 05-15 13:00 | stop_loss | 8 | -1.49 | +| KAS | 05-15 09:00 | 05-15 13:00 | stop_loss | 4 | -1.49 | +| OP | 05-15 12:00 | 05-15 13:00 | stop_loss | 1 | -1.49 | +| SEI | 05-15 05:00 | 05-15 13:00 | stop_loss | 8 | -1.49 | +| SHIB | 05-15 05:00 | 05-15 13:00 | stop_loss | 8 | -1.49 | +| TON | 05-15 12:00 | 05-15 13:00 | stop_loss | 1 | -1.49 | +| TRX | 05-10 04:00 | 05-15 13:00 | trailing_stop | 129 | -0.40 | +| KAS | 05-15 13:00 | 05-15 14:00 | trailing_stop | 1 | -0.49 | +| SUI | 05-15 13:00 | 05-15 15:00 | stop_loss | 2 | -1.49 | +| TON | 05-15 13:00 | 05-15 15:00 | stop_loss | 2 | -1.49 | +| UNI | 05-15 13:00 | 05-15 15:00 | take_profit | 2 | +1.49 | +| APT | 05-15 13:00 | 05-15 16:00 | take_profit | 3 | +1.49 | +| ARB | 05-15 13:00 | 05-15 16:00 | trailing_stop | 3 | -0.02 | +| BONK | 05-15 13:00 | 05-15 16:00 | take_profit | 3 | +1.49 | +| NEAR | 05-15 13:00 | 05-15 16:00 | take_profit | 3 | +1.49 | +| OP | 05-15 13:00 | 05-15 16:00 | trailing_stop | 3 | -0.31 | +| PEPE | 05-15 13:00 | 05-15 16:00 | take_profit | 3 | +1.49 | +| RENDER | 05-15 13:00 | 05-15 16:00 | take_profit | 3 | +1.49 | +| TIA | 05-15 13:00 | 05-15 16:00 | take_profit | 3 | +1.49 | +| WIF | 05-15 13:00 | 05-15 16:00 | take_profit | 3 | +1.49 | +| ETC | 05-15 13:00 | 05-15 17:00 | take_profit | 4 | +1.49 | +| FIL | 05-15 13:00 | 05-15 17:00 | take_profit | 4 | +1.49 | +| INJ | 05-15 13:00 | 05-15 17:00 | take_profit | 4 | +1.49 | +| FET | 05-15 13:00 | 05-15 18:00 | take_profit | 5 | +1.49 | +| ATOM | 05-15 13:00 | 05-15 21:00 | stop_loss | 8 | -1.49 | +| TON | 05-15 15:00 | 05-15 21:00 | stop_loss | 6 | -1.49 | +| LTC | 05-15 13:00 | 05-16 01:00 | take_profit | 12 | +1.49 | +| AVAX | 05-15 13:00 | 05-16 04:00 | trailing_stop | 15 | -0.34 | +| OP | 05-15 22:00 | 05-16 04:00 | stop_loss | 6 | -1.49 | +| PEPE | 05-16 00:00 | 05-16 04:00 | stop_loss | 4 | -1.49 | +| SEI | 05-15 13:00 | 05-16 04:00 | stop_loss | 15 | -1.49 | +| SHIB | 05-15 13:00 | 05-16 04:00 | trailing_stop | 15 | -0.24 | +| TON | 05-16 02:00 | 05-16 04:00 | stop_loss | 2 | -1.49 | +| WIF | 05-15 20:00 | 05-16 04:00 | stop_loss | 8 | -1.49 | +| APT | 05-16 06:00 | 05-16 07:00 | stop_loss | 1 | -1.49 | +| ARB | 05-16 06:00 | 05-16 07:00 | stop_loss | 1 | -1.49 | +| FET | 05-16 06:00 | 05-16 07:00 | stop_loss | 1 | -1.49 | +| LTC | 05-16 06:00 | 05-16 07:00 | stop_loss | 1 | -1.49 | +| NEAR | 05-16 06:00 | 05-16 07:00 | stop_loss | 1 | -1.49 | +| SUI | 05-16 06:00 | 05-16 07:00 | stop_loss | 1 | -1.49 | +| TON | 05-16 06:00 | 05-16 07:00 | stop_loss | 1 | -1.49 | +| UNI | 05-16 06:00 | 05-16 07:00 | stop_loss | 1 | -1.49 | +| WIF | 05-16 06:00 | 05-16 07:00 | stop_loss | 1 | -1.49 | +| APT | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| ARB | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| AVAX | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| BONK | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| FET | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| FIL | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| INJ | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| KAS | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| NEAR | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| OP | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| PEPE | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| SEI | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| SHIB | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| SUI | 05-16 08:00 | 05-16 09:00 | stop_loss | 1 | -1.49 | +| TIA | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| WIF | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| ETC | 05-16 07:00 | 05-16 10:00 | stop_loss | 3 | -1.49 | +| KAS | 05-16 09:00 | 05-16 10:00 | stop_loss | 1 | -1.49 | +| PEPE | 05-16 09:00 | 05-16 10:00 | stop_loss | 1 | -1.49 | +| SHIB | 05-16 09:00 | 05-16 10:00 | stop_loss | 1 | -1.49 | +| SUI | 05-16 09:00 | 05-16 10:00 | stop_loss | 1 | -1.49 | +| WIF | 05-16 09:00 | 05-16 10:00 | stop_loss | 1 | -1.49 | +| WIF | 05-16 10:00 | 05-16 11:00 | trailing_stop | 1 | -0.69 | +| INJ | 05-16 09:00 | 05-16 12:00 | trailing_stop | 3 | -0.19 | +| ARB | 05-16 09:00 | 05-16 15:00 | take_profit | 6 | +1.49 | +| ETC | 05-16 10:00 | 05-16 15:00 | take_profit | 5 | +1.49 | +| SEI | 05-16 09:00 | 05-16 15:00 | take_profit | 6 | +1.49 | +| SUI | 05-16 10:00 | 05-16 15:00 | take_profit | 5 | +1.49 | +| FIL | 05-16 09:00 | 05-16 16:00 | take_profit | 7 | +1.49 | +| INJ | 05-16 15:00 | 05-16 16:00 | trailing_stop | 1 | +0.15 | +| OP | 05-16 09:00 | 05-16 16:00 | take_profit | 7 | +1.49 | +| TON | 05-16 14:00 | 05-16 16:00 | take_profit | 2 | +1.49 | +| APT | 05-16 09:00 | 05-16 22:00 | trailing_stop | 13 | -0.66 | +| FET | 05-16 09:00 | 05-16 22:00 | trailing_stop | 13 | -0.23 | +| OP | 05-16 16:00 | 05-16 22:00 | stop_loss | 6 | -1.49 | +| FIL | 05-16 16:00 | 05-16 23:00 | confirmed_bearish_exit | 7 | -0.81 | +| TIA | 05-16 09:00 | 05-16 23:00 | stop_loss | 14 | -1.49 | +| ARB | 05-16 15:00 | 05-17 00:00 | stop_loss | 9 | -1.49 | +| AVAX | 05-16 09:00 | 05-17 00:00 | trailing_stop | 15 | -0.63 | +| BONK | 05-16 09:00 | 05-17 00:00 | trailing_stop | 15 | -0.43 | +| ETC | 05-16 15:00 | 05-17 00:00 | trailing_stop | 9 | -0.60 | +| KAS | 05-16 15:00 | 05-17 00:00 | stop_loss | 9 | -1.49 | +| PEPE | 05-16 10:00 | 05-17 00:00 | trailing_stop | 14 | -0.11 | +| RENDER | 05-16 14:00 | 05-17 00:00 | stop_loss | 10 | -1.49 | +| SHIB | 05-16 10:00 | 05-17 00:00 | stop_loss | 14 | -1.49 | +| WIF | 05-16 15:00 | 05-17 00:00 | stop_loss | 9 | -1.49 | +| NEAR | 05-16 18:00 | 05-17 01:00 | stop_loss | 7 | -1.49 | +| SUI | 05-16 16:00 | 05-17 01:00 | stop_loss | 9 | -1.49 | +| UNI | 05-16 09:00 | 05-17 01:00 | stop_loss | 16 | -1.49 | +| APT | 05-17 01:00 | 05-17 05:00 | take_profit | 4 | +1.49 | +| WIF | 05-17 01:00 | 05-17 05:00 | take_profit | 4 | +1.49 | +| OP | 05-17 07:00 | 05-17 13:00 | stop_loss | 6 | -1.49 | +| TRX | 05-15 13:00 | 05-17 14:00 | take_profit | 49 | +1.49 | +| SHIB | 05-17 01:00 | 05-17 17:00 | trailing_stop | 16 | -0.50 | +| INJ | 05-17 18:00 | 05-17 22:00 | stop_loss | 4 | -1.49 | +| SEI | 05-17 19:00 | 05-17 22:00 | stop_loss | 3 | -1.49 | +| TIA | 05-17 17:00 | 05-17 22:00 | trailing_stop | 5 | -0.37 | +| ATOM | 05-17 22:00 | 05-17 23:00 | stop_loss | 1 | -1.49 | +| BONK | 05-17 22:00 | 05-17 23:00 | stop_loss | 1 | -1.49 | +| ETC | 05-17 22:00 | 05-17 23:00 | stop_loss | 1 | -1.49 | +| LTC | 05-16 07:00 | 05-17 23:00 | stop_loss | 40 | -1.49 | +| SEI | 05-17 22:00 | 05-17 23:00 | stop_loss | 1 | -1.49 | +| TIA | 05-17 22:00 | 05-17 23:00 | stop_loss | 1 | -1.49 | +| ARB | 05-17 23:00 | 05-18 00:00 | stop_loss | 1 | -1.49 | +| ATOM | 05-17 23:00 | 05-18 00:00 | stop_loss | 1 | -1.49 | +| KAS | 05-17 23:00 | 05-18 00:00 | stop_loss | 1 | -1.49 | +| NEAR | 05-17 23:00 | 05-18 00:00 | stop_loss | 1 | -1.49 | +| OP | 05-17 23:00 | 05-18 00:00 | stop_loss | 1 | -1.49 | +| PEPE | 05-17 23:00 | 05-18 00:00 | stop_loss | 1 | -1.49 | +| RENDER | 05-17 23:00 | 05-18 00:00 | stop_loss | 1 | -1.49 | +| SEI | 05-17 23:00 | 05-18 00:00 | stop_loss | 1 | -1.49 | +| SUI | 05-17 23:00 | 05-18 00:00 | stop_loss | 1 | -1.49 | +| TIA | 05-17 23:00 | 05-18 00:00 | stop_loss | 1 | -1.49 | +| WIF | 05-17 23:00 | 05-18 00:00 | stop_loss | 1 | -1.49 | +| BONK | 05-17 23:00 | 05-18 01:00 | stop_loss | 2 | -1.49 | +| FET | 05-17 23:00 | 05-18 01:00 | stop_loss | 2 | -1.49 | +| INJ | 05-17 23:00 | 05-18 01:00 | trailing_stop | 2 | -0.18 | +| LTC | 05-17 23:00 | 05-18 01:00 | stop_loss | 2 | -1.49 | +| NEAR | 05-18 00:00 | 05-18 01:00 | stop_loss | 1 | -1.49 | +| PEPE | 05-18 00:00 | 05-18 01:00 | stop_loss | 1 | -1.49 | +| RENDER | 05-18 00:00 | 05-18 01:00 | stop_loss | 1 | -1.49 | +| UNI | 05-17 23:00 | 05-18 01:00 | stop_loss | 2 | -1.49 | +| WIF | 05-18 00:00 | 05-18 01:00 | stop_loss | 1 | -1.49 | +| ATOM | 05-18 00:00 | 05-18 04:00 | take_profit | 4 | +1.49 | +| FET | 05-18 01:00 | 05-18 05:00 | trailing_stop | 4 | -0.65 | +| SEI | 05-18 00:00 | 05-18 05:00 | stop_loss | 5 | -1.49 | +| AVAX | 05-17 23:00 | 05-18 06:00 | stop_loss | 7 | -1.49 | +| BONK | 05-18 01:00 | 05-18 06:00 | stop_loss | 5 | -1.49 | +| LTC | 05-18 01:00 | 05-18 06:00 | stop_loss | 5 | -1.49 | +| OP | 05-18 00:00 | 05-18 06:00 | stop_loss | 6 | -1.49 | +| PEPE | 05-18 01:00 | 05-18 06:00 | stop_loss | 5 | -1.49 | +| RENDER | 05-18 01:00 | 05-18 06:00 | stop_loss | 5 | -1.49 | +| SHIB | 05-17 23:00 | 05-18 06:00 | stop_loss | 7 | -1.49 | +| SUI | 05-18 00:00 | 05-18 06:00 | stop_loss | 6 | -1.49 | +| UNI | 05-18 01:00 | 05-18 06:00 | stop_loss | 5 | -1.49 | +| WIF | 05-18 01:00 | 05-18 06:00 | stop_loss | 5 | -1.49 | +| ETC | 05-17 23:00 | 05-18 07:00 | stop_loss | 8 | -1.49 | +| FIL | 05-17 23:00 | 05-18 07:00 | stop_loss | 8 | -1.49 | +| ARB | 05-18 00:00 | 05-18 10:00 | stop_loss | 10 | -1.49 | +| NEAR | 05-18 07:00 | 05-18 10:00 | take_profit | 3 | +1.49 | +| ETC | 05-18 10:00 | 05-18 14:00 | trailing_stop | 4 | -0.22 | +| LTC | 05-18 13:00 | 05-18 15:00 | stop_loss | 2 | -1.49 | +| RENDER | 05-18 14:00 | 05-18 17:00 | take_profit | 3 | +1.49 | +| SEI | 05-18 14:00 | 05-18 18:00 | trailing_stop | 4 | -0.56 | +| ATOM | 05-18 18:00 | 05-18 19:00 | trailing_stop | 1 | -0.52 | +| AVAX | 05-18 18:00 | 05-18 19:00 | trailing_stop | 1 | +0.05 | +| BONK | 05-18 14:00 | 05-18 19:00 | take_profit | 5 | +1.49 | +| PEPE | 05-18 18:00 | 05-18 19:00 | take_profit | 1 | +1.49 | +| KAS | 05-19 13:00 | 05-19 14:00 | stop_loss | 1 | -1.49 | +| OP | 05-19 11:00 | 05-19 14:00 | stop_loss | 3 | -1.49 | +| UNI | 05-19 13:00 | 05-19 14:00 | stop_loss | 1 | -1.49 | +| ATOM | 05-19 14:00 | 05-19 16:00 | take_profit | 2 | +1.49 | +| BONK | 05-19 14:00 | 05-19 16:00 | trailing_stop | 2 | -0.53 | +| ETC | 05-19 14:00 | 05-19 16:00 | trailing_stop | 2 | -0.13 | +| FET | 05-19 14:00 | 05-19 16:00 | trailing_stop | 2 | -0.29 | +| INJ | 05-19 14:00 | 05-19 16:00 | take_profit | 2 | +1.49 | +| WIF | 05-19 14:00 | 05-19 16:00 | trailing_stop | 2 | -0.65 | +| KAS | 05-19 14:00 | 05-19 19:00 | trailing_stop | 5 | -0.16 | +| ARB | 05-19 11:00 | 05-19 22:00 | stop_loss | 11 | -1.49 | +| FIL | 05-19 14:00 | 05-19 22:00 | stop_loss | 8 | -1.49 | +| OP | 05-19 14:00 | 05-19 22:00 | stop_loss | 8 | -1.49 | +| LTC | 05-19 11:00 | 05-20 00:00 | trailing_stop | 13 | -0.69 | +| SEI | 05-19 14:00 | 05-20 00:00 | stop_loss | 10 | -1.49 | +| ARB | 05-19 22:00 | 05-20 03:00 | stop_loss | 5 | -1.49 | +| SUI | 05-20 00:00 | 05-20 05:00 | trailing_stop | 5 | -0.12 | +| UNI | 05-19 14:00 | 05-20 06:00 | take_profit | 16 | +1.49 | +| FET | 05-19 22:00 | 05-20 11:00 | trailing_stop | 13 | -0.44 | +| ATOM | 05-20 00:00 | 05-20 13:00 | stop_loss | 13 | -1.49 | +| PEPE | 05-19 14:00 | 05-20 13:00 | trailing_stop | 23 | -0.08 | +| AVAX | 05-19 11:00 | 05-20 14:00 | take_profit | 27 | +1.49 | +| SHIB | 05-19 14:00 | 05-20 14:00 | trailing_stop | 24 | -0.32 | +| ARB | 05-20 21:00 | 05-20 23:00 | stop_loss | 2 | -1.49 | +| INJ | 05-20 22:00 | 05-20 23:00 | stop_loss | 1 | -1.49 | +| ARB | 05-20 23:00 | 05-21 00:00 | trailing_stop | 1 | -0.09 | +| ATOM | 05-20 22:00 | 05-21 00:00 | trailing_stop | 2 | -0.21 | +| INJ | 05-20 23:00 | 05-21 03:00 | take_profit | 4 | +1.49 | +| TRX | 05-18 01:00 | 05-21 10:00 | take_profit | 81 | +1.49 | +| ARB | 05-21 10:00 | 05-21 13:00 | trailing_stop | 3 | -0.43 | +| KAS | 05-21 10:00 | 05-21 13:00 | stop_loss | 3 | -1.49 | +| TIA | 05-21 10:00 | 05-21 13:00 | take_profit | 3 | +1.49 | +| TON | 05-21 10:00 | 05-21 13:00 | trailing_stop | 3 | +0.18 | +| UNI | 05-21 11:00 | 05-21 16:00 | stop_loss | 5 | -1.49 | +| ATOM | 05-21 15:00 | 05-21 17:00 | trailing_stop | 2 | -0.17 | +| ETC | 05-21 10:00 | 05-21 17:00 | trailing_stop | 7 | -0.59 | +| KAS | 05-21 13:00 | 05-21 17:00 | take_profit | 4 | +1.49 | +| WIF | 05-21 10:00 | 05-21 17:00 | take_profit | 7 | +1.49 | +| LTC | 05-21 10:00 | 05-22 04:00 | take_profit | 18 | +1.49 | +| TON | 05-22 09:00 | 05-22 13:00 | trailing_stop | 4 | -0.25 | +| TRX | 05-22 12:00 | 05-22 13:00 | stop_loss | 1 | -1.49 | +| PEPE | 05-22 09:00 | 05-22 14:00 | stop_loss | 5 | -1.49 | +| LTC | 05-22 14:00 | 05-22 18:00 | stop_loss | 4 | -1.49 | +| PEPE | 05-22 14:00 | 05-22 18:00 | stop_loss | 4 | -1.49 | +| APT | 05-22 18:00 | 05-22 19:00 | stop_loss | 1 | -1.49 | +| ARB | 05-22 18:00 | 05-22 19:00 | stop_loss | 1 | -1.49 | +| AVAX | 05-22 18:00 | 05-22 19:00 | stop_loss | 1 | -1.49 | +| BONK | 05-22 18:00 | 05-22 19:00 | stop_loss | 1 | -1.49 | +| FIL | 05-22 18:00 | 05-22 19:00 | stop_loss | 1 | -1.49 | +| OP | 05-22 18:00 | 05-22 19:00 | stop_loss | 1 | -1.49 | +| PEPE | 05-22 18:00 | 05-22 19:00 | stop_loss | 1 | -1.49 | +| SEI | 05-22 18:00 | 05-22 19:00 | stop_loss | 1 | -1.49 | +| SHIB | 05-22 18:00 | 05-22 19:00 | stop_loss | 1 | -1.49 | +| TON | 05-22 18:00 | 05-22 19:00 | stop_loss | 1 | -1.49 | +| WIF | 05-22 18:00 | 05-22 19:00 | stop_loss | 1 | -1.49 | +| NEAR | 05-22 21:00 | 05-22 22:00 | stop_loss | 1 | -1.49 | +| TON | 05-22 19:00 | 05-22 22:00 | stop_loss | 3 | -1.49 | +| APT | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| AVAX | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| BONK | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| ETC | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| FET | 05-22 21:00 | 05-22 23:00 | stop_loss | 2 | -1.49 | +| FIL | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| KAS | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| LTC | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| OP | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| PEPE | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| RENDER | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| SEI | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| SHIB | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| SUI | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| UNI | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| WIF | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| FET | 05-22 23:00 | 05-23 00:00 | stop_loss | 1 | -1.49 | +| NEAR | 05-22 22:00 | 05-23 00:00 | trailing_stop | 2 | -0.51 | +| OP | 05-22 23:00 | 05-23 00:00 | stop_loss | 1 | -1.49 | +| TIA | 05-22 23:00 | 05-23 00:00 | stop_loss | 1 | -1.49 | +| TON | 05-22 23:00 | 05-23 00:00 | trailing_stop | 1 | -0.52 | +| UNI | 05-22 23:00 | 05-23 00:00 | stop_loss | 1 | -1.49 | +| WIF | 05-22 23:00 | 05-23 00:00 | stop_loss | 1 | -1.49 | +| ATOM | 05-22 19:00 | 05-23 01:00 | take_profit | 6 | +1.49 | +| BONK | 05-22 23:00 | 05-23 02:00 | confirmed_bearish_exit | 3 | +0.00 | +| INJ | 05-23 04:00 | 05-23 05:00 | stop_loss | 1 | -1.49 | +| PEPE | 05-22 23:00 | 05-23 05:00 | stop_loss | 6 | -1.49 | +| ARB | 05-22 19:00 | 05-23 06:00 | stop_loss | 11 | -1.49 | +| FET | 05-23 05:00 | 05-23 06:00 | stop_loss | 1 | -1.49 | +| SEI | 05-22 23:00 | 05-23 06:00 | stop_loss | 7 | -1.49 | +| APT | 05-22 23:00 | 05-23 07:00 | stop_loss | 8 | -1.49 | +| ATOM | 05-23 05:00 | 05-23 07:00 | stop_loss | 2 | -1.49 | +| AVAX | 05-22 23:00 | 05-23 07:00 | stop_loss | 8 | -1.49 | +| ETC | 05-23 03:00 | 05-23 07:00 | stop_loss | 4 | -1.49 | +| FIL | 05-22 23:00 | 05-23 07:00 | stop_loss | 8 | -1.49 | +| INJ | 05-23 05:00 | 05-23 07:00 | stop_loss | 2 | -1.49 | +| KAS | 05-23 03:00 | 05-23 07:00 | stop_loss | 4 | -1.49 | +| LTC | 05-22 23:00 | 05-23 07:00 | stop_loss | 8 | -1.49 | +| SHIB | 05-22 23:00 | 05-23 07:00 | stop_loss | 8 | -1.49 | +| UNI | 05-23 00:00 | 05-23 07:00 | stop_loss | 7 | -1.49 | +| INJ | 05-23 07:00 | 05-23 08:00 | trailing_stop | 1 | -0.10 | +| WIF | 05-23 07:00 | 05-23 08:00 | stop_loss | 1 | -1.49 | +| KAS | 05-23 07:00 | 05-23 09:00 | stop_loss | 2 | -1.49 | +| ATOM | 05-23 07:00 | 05-23 12:00 | stop_loss | 5 | -1.49 | +| BONK | 05-23 07:00 | 05-23 13:00 | take_profit | 6 | +1.49 | +| FIL | 05-23 07:00 | 05-23 13:00 | take_profit | 6 | +1.49 | +| INJ | 05-23 12:00 | 05-23 13:00 | take_profit | 1 | +1.49 | +| KAS | 05-23 09:00 | 05-23 13:00 | trailing_stop | 4 | -0.43 | +| PEPE | 05-23 07:00 | 05-23 13:00 | trailing_stop | 6 | -0.57 | +| SUI | 05-23 07:00 | 05-23 13:00 | take_profit | 6 | +1.49 | +| ARB | 05-23 07:00 | 05-23 14:00 | take_profit | 7 | +1.49 | +| AVAX | 05-23 07:00 | 05-23 14:00 | take_profit | 7 | +1.49 | +| SHIB | 05-23 07:00 | 05-23 15:00 | take_profit | 8 | +1.49 | +| LTC | 05-23 07:00 | 05-23 18:00 | take_profit | 11 | +1.49 | +| TON | 05-23 16:00 | 05-23 18:00 | take_profit | 2 | +1.49 | +| ATOM | 05-23 15:00 | 05-23 20:00 | take_profit | 5 | +1.49 | +| SHIB | 05-23 16:00 | 05-23 20:00 | take_profit | 4 | +1.49 | +| TIA | 05-24 09:00 | 05-24 10:00 | stop_loss | 1 | -1.49 | +| APT | 05-24 10:00 | 05-24 12:00 | stop_loss | 2 | -1.49 | +| ARB | 05-24 10:00 | 05-24 12:00 | stop_loss | 2 | -1.49 | +| INJ | 05-24 10:00 | 05-24 12:00 | stop_loss | 2 | -1.49 | +| OP | 05-24 10:00 | 05-24 12:00 | stop_loss | 2 | -1.49 | +| SUI | 05-24 10:00 | 05-24 12:00 | stop_loss | 2 | -1.49 | +| TIA | 05-24 10:00 | 05-24 12:00 | stop_loss | 2 | -1.49 | +| TON | 05-24 10:00 | 05-24 12:00 | stop_loss | 2 | -1.49 | +| WIF | 05-24 10:00 | 05-24 12:00 | stop_loss | 2 | -1.49 | +| APT | 05-24 12:00 | 05-24 13:00 | stop_loss | 1 | -1.49 | +| ATOM | 05-24 10:00 | 05-24 13:00 | stop_loss | 3 | -1.49 | +| BONK | 05-24 10:00 | 05-24 13:00 | stop_loss | 3 | -1.49 | +| FIL | 05-24 10:00 | 05-24 13:00 | stop_loss | 3 | -1.49 | +| OP | 05-24 12:00 | 05-24 13:00 | stop_loss | 1 | -1.49 | +| PEPE | 05-24 10:00 | 05-24 13:00 | stop_loss | 3 | -1.49 | +| SEI | 05-24 10:00 | 05-24 13:00 | stop_loss | 3 | -1.49 | +| SHIB | 05-24 10:00 | 05-24 13:00 | stop_loss | 3 | -1.49 | +| UNI | 05-24 10:00 | 05-24 13:00 | stop_loss | 3 | -1.49 | +| APT | 05-24 13:00 | 05-24 14:00 | stop_loss | 1 | -1.49 | +| ARB | 05-24 12:00 | 05-24 14:00 | stop_loss | 2 | -1.49 | +| AVAX | 05-24 10:00 | 05-24 14:00 | stop_loss | 4 | -1.49 | +| BONK | 05-24 13:00 | 05-24 14:00 | stop_loss | 1 | -1.49 | +| FIL | 05-24 13:00 | 05-24 14:00 | stop_loss | 1 | -1.49 | +| KAS | 05-24 13:00 | 05-24 14:00 | stop_loss | 1 | -1.49 | +| LTC | 05-24 10:00 | 05-24 14:00 | stop_loss | 4 | -1.49 | +| PEPE | 05-24 13:00 | 05-24 14:00 | stop_loss | 1 | -1.49 | +| SHIB | 05-24 13:00 | 05-24 14:00 | stop_loss | 1 | -1.49 | +| UNI | 05-24 13:00 | 05-24 14:00 | stop_loss | 1 | -1.49 | +| WIF | 05-24 13:00 | 05-24 14:00 | stop_loss | 1 | -1.49 | +| TON | 05-24 14:00 | 05-24 17:00 | take_profit | 3 | +1.49 | +| TRX | 05-22 13:00 | 05-24 17:00 | take_profit | 52 | +1.49 | +| KAS | 05-24 14:00 | 05-24 18:00 | stop_loss | 4 | -1.49 | +| SUI | 05-24 14:00 | 05-24 20:00 | stop_loss | 6 | -1.49 | +| ATOM | 05-24 14:00 | 05-24 21:00 | stop_loss | 7 | -1.49 | +| AVAX | 05-24 14:00 | 05-24 21:00 | stop_loss | 7 | -1.49 | +| FIL | 05-24 14:00 | 05-24 21:00 | stop_loss | 7 | -1.49 | +| LTC | 05-24 14:00 | 05-24 21:00 | stop_loss | 7 | -1.49 | +| SEI | 05-24 14:00 | 05-24 21:00 | stop_loss | 7 | -1.49 | +| SHIB | 05-24 14:00 | 05-24 21:00 | stop_loss | 7 | -1.49 | +| SUI | 05-24 20:00 | 05-24 21:00 | stop_loss | 1 | -1.49 | +| UNI | 05-24 14:00 | 05-24 21:00 | stop_loss | 7 | -1.49 | +| APT | 05-24 21:00 | 05-24 22:00 | trailing_stop | 1 | -0.42 | +| ATOM | 05-24 21:00 | 05-24 22:00 | take_profit | 1 | +1.49 | +| FET | 05-24 21:00 | 05-24 22:00 | take_profit | 1 | +1.49 | +| FIL | 05-24 21:00 | 05-24 22:00 | trailing_stop | 1 | -0.44 | +| OP | 05-24 21:00 | 05-24 22:00 | trailing_stop | 1 | -0.42 | +| RENDER | 05-24 21:00 | 05-24 22:00 | take_profit | 1 | +1.49 | +| SUI | 05-24 21:00 | 05-24 22:00 | take_profit | 1 | +1.49 | +| TIA | 05-24 21:00 | 05-24 22:00 | take_profit | 1 | +1.49 | +| WIF | 05-24 21:00 | 05-24 22:00 | trailing_stop | 1 | -0.62 | +| ARB | 05-24 21:00 | 05-24 23:00 | take_profit | 2 | +1.49 | +| BONK | 05-24 21:00 | 05-24 23:00 | take_profit | 2 | +1.49 | +| PEPE | 05-24 21:00 | 05-25 00:00 | take_profit | 3 | +1.49 | +| SEI | 05-24 21:00 | 05-25 00:00 | take_profit | 3 | +1.49 | +| SHIB | 05-24 21:00 | 05-25 00:00 | take_profit | 3 | +1.49 | +| UNI | 05-24 21:00 | 05-25 00:00 | take_profit | 3 | +1.49 | +| KAS | 05-24 18:00 | 05-25 01:00 | take_profit | 7 | +1.49 | +| UNI | 05-25 00:00 | 05-25 01:00 | stop_loss | 1 | -1.49 | +| AVAX | 05-24 21:00 | 05-25 05:00 | take_profit | 8 | +1.49 | +| ETC | 05-24 21:00 | 05-25 05:00 | take_profit | 8 | +1.49 | +| NEAR | 05-25 04:00 | 05-25 05:00 | stop_loss | 1 | -1.49 | +| UNI | 05-25 01:00 | 05-25 07:00 | take_profit | 6 | +1.49 | +| PEPE | 05-25 01:00 | 05-25 10:00 | take_profit | 9 | +1.49 | +| LTC | 05-24 21:00 | 05-25 20:00 | take_profit | 23 | +1.49 | +| KAS | 05-25 01:00 | 05-25 21:00 | take_profit | 20 | +1.49 | +| BONK | 05-25 22:00 | 05-26 00:00 | stop_loss | 2 | -1.49 | +| UNI | 05-25 20:00 | 05-26 00:00 | stop_loss | 4 | -1.49 | +| BONK | 05-26 00:00 | 05-26 01:00 | stop_loss | 1 | -1.49 | +| ETC | 05-26 00:00 | 05-26 01:00 | stop_loss | 1 | -1.49 | +| SHIB | 05-25 22:00 | 05-26 01:00 | stop_loss | 3 | -1.49 | +| SEI | 05-26 00:00 | 05-26 04:00 | take_profit | 4 | +1.49 | +| OP | 05-26 03:00 | 05-26 05:00 | take_profit | 2 | +1.49 | +| SUI | 05-26 01:00 | 05-26 05:00 | take_profit | 4 | +1.49 | +| BONK | 05-26 01:00 | 05-26 07:00 | trailing_stop | 6 | -0.38 | +| TON | 05-26 06:00 | 05-26 07:00 | stop_loss | 1 | -1.49 | +| AVAX | 05-26 00:00 | 05-26 10:00 | take_profit | 10 | +1.49 | +| BONK | 05-26 07:00 | 05-26 10:00 | trailing_stop | 3 | -0.06 | +| ETC | 05-26 01:00 | 05-26 10:00 | take_profit | 9 | +1.49 | +| INJ | 05-26 07:00 | 05-26 10:00 | take_profit | 3 | +1.49 | +| PEPE | 05-26 01:00 | 05-26 10:00 | take_profit | 9 | +1.49 | +| SHIB | 05-26 01:00 | 05-26 10:00 | take_profit | 9 | +1.49 | +| SUI | 05-26 07:00 | 05-26 10:00 | take_profit | 3 | +1.49 | +| TON | 05-26 07:00 | 05-26 10:00 | take_profit | 3 | +1.49 | +| UNI | 05-26 00:00 | 05-26 10:00 | take_profit | 10 | +1.49 | +| LTC | 05-25 22:00 | 05-26 17:00 | stop_loss | 19 | -1.49 | +| NEAR | 05-26 18:00 | 05-26 19:00 | stop_loss | 1 | -1.49 | +| SUI | 05-26 19:00 | 05-27 02:00 | stop_loss | 7 | -1.49 | +| APT | 05-27 01:00 | 05-27 04:00 | stop_loss | 3 | -1.49 | +| ARB | 05-27 02:00 | 05-27 04:00 | stop_loss | 2 | -1.49 | +| AVAX | 05-27 02:00 | 05-27 04:00 | stop_loss | 2 | -1.49 | +| BONK | 05-27 02:00 | 05-27 04:00 | stop_loss | 2 | -1.49 | +| ETC | 05-26 17:00 | 05-27 04:00 | stop_loss | 11 | -1.49 | +| INJ | 05-27 03:00 | 05-27 04:00 | stop_loss | 1 | -1.49 | +| KAS | 05-26 18:00 | 05-27 04:00 | stop_loss | 10 | -1.49 | +| OP | 05-26 23:00 | 05-27 04:00 | stop_loss | 5 | -1.49 | +| PEPE | 05-27 01:00 | 05-27 04:00 | stop_loss | 3 | -1.49 | +| SHIB | 05-27 00:00 | 05-27 04:00 | stop_loss | 4 | -1.49 | +| SUI | 05-27 02:00 | 05-27 04:00 | stop_loss | 2 | -1.49 | +| UNI | 05-27 01:00 | 05-27 04:00 | stop_loss | 3 | -1.49 | +| WIF | 05-27 03:00 | 05-27 04:00 | stop_loss | 1 | -1.49 | +| RENDER | 05-27 07:00 | 05-27 09:00 | trailing_stop | 2 | -0.66 | +| SUI | 05-27 06:00 | 05-27 09:00 | stop_loss | 3 | -1.49 | +| UNI | 05-27 04:00 | 05-27 09:00 | trailing_stop | 5 | -0.70 | +| TIA | 05-27 11:00 | 05-27 12:00 | take_profit | 1 | +1.49 | +| RENDER | 05-27 14:00 | 05-27 16:00 | stop_loss | 2 | -1.49 | +| TON | 05-27 15:00 | 05-27 16:00 | stop_loss | 1 | -1.49 | +| TRX | 05-27 12:00 | 05-27 18:00 | stop_loss | 6 | -1.49 | +| ATOM | 05-27 16:00 | 05-27 21:00 | stop_loss | 5 | -1.49 | +| BONK | 05-27 17:00 | 05-27 21:00 | stop_loss | 4 | -1.49 | +| SEI | 05-27 20:00 | 05-27 21:00 | stop_loss | 1 | -1.49 | +| SUI | 05-27 17:00 | 05-27 21:00 | stop_loss | 4 | -1.49 | +| TON | 05-27 16:00 | 05-27 21:00 | stop_loss | 5 | -1.49 | +| SEI | 05-27 21:00 | 05-27 22:00 | stop_loss | 1 | -1.49 | +| TIA | 05-27 21:00 | 05-27 22:00 | stop_loss | 1 | -1.49 | +| UNI | 05-27 21:00 | 05-27 23:00 | stop_loss | 2 | -1.49 | +| SEI | 05-27 22:00 | 05-28 00:00 | trailing_stop | 2 | +0.11 | +| ARB | 05-27 21:00 | 05-28 01:00 | stop_loss | 4 | -1.49 | +| BONK | 05-27 21:00 | 05-28 01:00 | stop_loss | 4 | -1.49 | +| ETC | 05-27 21:00 | 05-28 01:00 | stop_loss | 4 | -1.49 | +| LTC | 05-27 00:00 | 05-28 01:00 | stop_loss | 25 | -1.49 | +| SUI | 05-27 21:00 | 05-28 01:00 | stop_loss | 4 | -1.49 | +| TIA | 05-27 22:00 | 05-28 01:00 | stop_loss | 3 | -1.49 | +| TON | 05-27 22:00 | 05-28 01:00 | stop_loss | 3 | -1.49 | +| UNI | 05-27 23:00 | 05-28 01:00 | stop_loss | 2 | -1.49 | +| WIF | 05-27 21:00 | 05-28 01:00 | stop_loss | 4 | -1.49 | +| ATOM | 05-27 21:00 | 05-28 03:00 | stop_loss | 6 | -1.49 | +| AVAX | 05-27 21:00 | 05-28 03:00 | stop_loss | 6 | -1.49 | +| BONK | 05-28 01:00 | 05-28 03:00 | stop_loss | 2 | -1.49 | +| ETC | 05-28 01:00 | 05-28 03:00 | stop_loss | 2 | -1.49 | +| FET | 05-28 02:00 | 05-28 03:00 | stop_loss | 1 | -1.49 | +| INJ | 05-27 21:00 | 05-28 03:00 | stop_loss | 6 | -1.49 | +| KAS | 05-27 21:00 | 05-28 03:00 | stop_loss | 6 | -1.49 | +| PEPE | 05-27 21:00 | 05-28 03:00 | stop_loss | 6 | -1.49 | +| RENDER | 05-28 02:00 | 05-28 03:00 | stop_loss | 1 | -1.49 | +| SHIB | 05-27 21:00 | 05-28 03:00 | stop_loss | 6 | -1.49 | +| TON | 05-28 01:00 | 05-28 03:00 | stop_loss | 2 | -1.49 | +| UNI | 05-28 01:00 | 05-28 03:00 | stop_loss | 2 | -1.49 | +| WIF | 05-28 01:00 | 05-28 03:00 | stop_loss | 2 | -1.49 | +| APT | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| ARB | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| AVAX | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| BONK | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| ETC | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| FET | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| FIL | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| KAS | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| NEAR | 05-28 03:00 | 05-28 04:00 | take_profit | 1 | +1.49 | +| OP | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| PEPE | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| SHIB | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| SUI | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| TIA | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| WIF | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| APT | 05-28 04:00 | 05-28 05:00 | stop_loss | 1 | -1.49 | +| ARB | 05-28 04:00 | 05-28 05:00 | stop_loss | 1 | -1.49 | +| AVAX | 05-28 04:00 | 05-28 05:00 | stop_loss | 1 | -1.49 | +| BONK | 05-28 04:00 | 05-28 05:00 | stop_loss | 1 | -1.49 | +| FET | 05-28 04:00 | 05-28 05:00 | stop_loss | 1 | -1.49 | +| FIL | 05-28 04:00 | 05-28 05:00 | stop_loss | 1 | -1.49 | +| KAS | 05-28 04:00 | 05-28 05:00 | stop_loss | 1 | -1.49 | +| LTC | 05-28 03:00 | 05-28 05:00 | stop_loss | 2 | -1.49 | +| OP | 05-28 04:00 | 05-28 05:00 | stop_loss | 1 | -1.49 | +| PEPE | 05-28 04:00 | 05-28 05:00 | stop_loss | 1 | -1.49 | +| RENDER | 05-28 03:00 | 05-28 05:00 | stop_loss | 2 | -1.49 | +| SUI | 05-28 04:00 | 05-28 05:00 | stop_loss | 1 | -1.49 | +| TIA | 05-28 04:00 | 05-28 05:00 | stop_loss | 1 | -1.49 | +| WIF | 05-28 04:00 | 05-28 05:00 | stop_loss | 1 | -1.49 | +| ARB | 05-28 05:00 | 05-28 06:00 | stop_loss | 1 | -1.49 | +| FET | 05-28 05:00 | 05-28 06:00 | stop_loss | 1 | -1.49 | +| FIL | 05-28 05:00 | 05-28 06:00 | stop_loss | 1 | -1.49 | +| ARB | 05-28 06:00 | 05-28 07:00 | trailing_stop | 1 | -0.54 | +| SUI | 05-28 05:00 | 05-28 07:00 | trailing_stop | 2 | -0.33 | +| TON | 05-28 03:00 | 05-28 07:00 | trailing_stop | 4 | -0.37 | +| APT | 05-28 05:00 | 05-28 09:00 | take_profit | 4 | +1.49 | +| TRX | 05-28 06:00 | 05-28 09:00 | stop_loss | 3 | -1.49 | +| UNI | 05-28 03:00 | 05-28 09:00 | stop_loss | 6 | -1.49 | +| BONK | 05-28 05:00 | 05-28 10:00 | stop_loss | 5 | -1.49 | +| ETC | 05-28 04:00 | 05-28 10:00 | stop_loss | 6 | -1.49 | +| FIL | 05-28 06:00 | 05-28 10:00 | stop_loss | 4 | -1.49 | +| PEPE | 05-28 05:00 | 05-28 10:00 | trailing_stop | 5 | -0.51 | +| TON | 05-28 09:00 | 05-28 10:00 | stop_loss | 1 | -1.49 | +| TRX | 05-28 09:00 | 05-28 10:00 | stop_loss | 1 | -1.49 | +| WIF | 05-28 05:00 | 05-28 10:00 | trailing_stop | 5 | -0.58 | +| INJ | 05-28 09:00 | 05-28 11:00 | stop_loss | 2 | -1.49 | +| KAS | 05-28 05:00 | 05-28 11:00 | trailing_stop | 6 | -0.42 | +| OP | 05-28 05:00 | 05-28 11:00 | trailing_stop | 6 | -0.34 | +| TON | 05-28 10:00 | 05-28 11:00 | stop_loss | 1 | -1.49 | +| AVAX | 05-28 05:00 | 05-28 14:00 | trailing_stop | 9 | -0.61 | +| SUI | 05-28 14:00 | 05-28 15:00 | stop_loss | 1 | -1.49 | +| APT | 05-28 14:00 | 05-28 16:00 | take_profit | 2 | +1.49 | +| AVAX | 05-28 15:00 | 05-28 16:00 | trailing_stop | 1 | -0.47 | +| LTC | 05-28 05:00 | 05-28 16:00 | take_profit | 11 | +1.49 | +| SHIB | 05-28 04:00 | 05-28 16:00 | trailing_stop | 12 | -0.39 | +| ETC | 05-28 16:00 | 05-28 20:00 | trailing_stop | 4 | -0.14 | +| ATOM | 05-28 10:00 | 05-28 21:00 | take_profit | 11 | +1.49 | +| SEI | 05-29 02:00 | 05-29 06:00 | take_profit | 4 | +1.49 | +| TON | 05-28 22:00 | 05-29 06:00 | trailing_stop | 8 | +0.15 | +| TRX | 05-28 10:00 | 05-29 07:00 | trailing_stop | 21 | -0.54 | +| TRX | 05-29 07:00 | 05-29 08:00 | stop_loss | 1 | -1.49 | +| OP | 05-29 08:00 | 05-29 11:00 | stop_loss | 3 | -1.49 | +| SEI | 05-29 10:00 | 05-29 11:00 | stop_loss | 1 | -1.49 | +| APT | 05-29 11:00 | 05-29 12:00 | stop_loss | 1 | -1.49 | +| ETC | 05-29 08:00 | 05-29 12:00 | stop_loss | 4 | -1.49 | +| FIL | 05-29 11:00 | 05-29 12:00 | stop_loss | 1 | -1.49 | +| SEI | 05-29 11:00 | 05-29 12:00 | stop_loss | 1 | -1.49 | +| TON | 05-29 11:00 | 05-29 12:00 | stop_loss | 1 | -1.49 | +| UNI | 05-29 08:00 | 05-29 12:00 | stop_loss | 4 | -1.49 | +| FIL | 05-29 12:00 | 05-29 13:00 | stop_loss | 1 | -1.49 | +| PEPE | 05-29 11:00 | 05-29 13:00 | stop_loss | 2 | -1.49 | +| SUI | 05-29 11:00 | 05-29 13:00 | stop_loss | 2 | -1.49 | +| APT | 05-29 13:00 | 05-29 14:00 | stop_loss | 1 | -1.49 | +| ARB | 05-29 12:00 | 05-29 14:00 | stop_loss | 2 | -1.49 | +| BONK | 05-29 12:00 | 05-29 14:00 | stop_loss | 2 | -1.49 | +| KAS | 05-29 12:00 | 05-29 14:00 | stop_loss | 2 | -1.49 | +| OP | 05-29 13:00 | 05-29 14:00 | stop_loss | 1 | -1.49 | +| SEI | 05-29 13:00 | 05-29 14:00 | stop_loss | 1 | -1.49 | +| SUI | 05-29 13:00 | 05-29 14:00 | stop_loss | 1 | -1.49 | +| TON | 05-29 12:00 | 05-29 14:00 | stop_loss | 2 | -1.49 | +| AVAX | 05-29 14:00 | 05-29 15:00 | take_profit | 1 | +1.49 | +| ETC | 05-29 12:00 | 05-29 15:00 | take_profit | 3 | +1.49 | +| RENDER | 05-29 14:00 | 05-29 15:00 | take_profit | 1 | +1.49 | +| SEI | 05-29 14:00 | 05-29 15:00 | take_profit | 1 | +1.49 | +| NEAR | 05-29 21:00 | 05-29 22:00 | take_profit | 1 | +1.49 | +| TRX | 05-29 08:00 | 05-30 03:00 | trailing_stop | 19 | -0.35 | +| RENDER | 05-30 07:00 | 05-30 11:00 | take_profit | 4 | +1.49 | +| NEAR | 05-30 07:00 | 05-30 15:00 | stop_loss | 8 | -1.49 | +| ARB | 05-30 16:00 | 05-30 22:00 | stop_loss | 6 | -1.49 | +| FIL | 05-30 16:00 | 05-30 22:00 | stop_loss | 6 | -1.49 | +| KAS | 05-30 15:00 | 05-30 22:00 | trailing_stop | 7 | +0.08 | +| APT | 05-30 16:00 | 05-30 23:00 | stop_loss | 7 | -1.49 | +| NEAR | 05-30 23:00 | 05-31 04:00 | take_profit | 5 | +1.49 | +| ARB | 05-30 22:00 | 05-31 06:00 | trailing_stop | 8 | -0.36 | +| ATOM | 05-30 22:00 | 05-31 06:00 | stop_loss | 8 | -1.49 | +| SEI | 05-31 08:00 | 05-31 09:00 | take_profit | 1 | +1.49 | +| TRX | 05-30 03:00 | 05-31 09:00 | take_profit | 30 | +1.49 | +| ETC | 05-30 14:00 | 05-31 10:00 | stop_loss | 20 | -1.49 | +| WIF | 05-31 08:00 | 05-31 10:00 | stop_loss | 2 | -1.49 | +| INJ | 05-31 06:00 | 05-31 11:00 | take_profit | 5 | +1.49 | +| ARB | 05-31 07:00 | 05-31 14:00 | stop_loss | 7 | -1.49 | +| ATOM | 05-31 07:00 | 05-31 14:00 | stop_loss | 7 | -1.49 | +| OP | 05-31 07:00 | 05-31 14:00 | stop_loss | 7 | -1.49 | +| TIA | 05-31 07:00 | 05-31 14:00 | stop_loss | 7 | -1.49 | +| UNI | 05-31 09:00 | 05-31 14:00 | stop_loss | 5 | -1.49 | +| ARB | 05-31 14:00 | 05-31 16:00 | stop_loss | 2 | -1.49 | +| ATOM | 05-31 14:00 | 05-31 16:00 | stop_loss | 2 | -1.49 | +| FIL | 05-31 14:00 | 05-31 16:00 | stop_loss | 2 | -1.49 | +| SHIB | 05-31 07:00 | 05-31 16:00 | stop_loss | 9 | -1.49 | +| SUI | 05-31 14:00 | 05-31 16:00 | stop_loss | 2 | -1.49 | +| WIF | 05-31 14:00 | 05-31 16:00 | trailing_stop | 2 | -0.64 | +| FET | 05-31 16:00 | 05-31 17:00 | stop_loss | 1 | -1.49 | +| LTC | 05-31 14:00 | 05-31 17:00 | stop_loss | 3 | -1.49 | +| OP | 05-31 14:00 | 05-31 17:00 | stop_loss | 3 | -1.49 | +| PEPE | 05-31 14:00 | 05-31 17:00 | stop_loss | 3 | -1.49 | +| RENDER | 05-31 14:00 | 05-31 17:00 | stop_loss | 3 | -1.49 | +| FIL | 05-31 16:00 | 05-31 19:00 | stop_loss | 3 | -1.49 | +| OP | 05-31 17:00 | 05-31 19:00 | stop_loss | 2 | -1.49 | +| APT | 05-31 14:00 | 05-31 21:00 | take_profit | 7 | +1.49 | +| ARB | 05-31 16:00 | 05-31 21:00 | take_profit | 5 | +1.49 | +| BONK | 05-31 14:00 | 05-31 21:00 | take_profit | 7 | +1.49 | +| SUI | 05-31 16:00 | 05-31 21:00 | take_profit | 5 | +1.49 | +| TIA | 05-31 16:00 | 05-31 21:00 | take_profit | 5 | +1.49 | +| WIF | 05-31 16:00 | 05-31 21:00 | take_profit | 5 | +1.49 | +| SHIB | 05-31 16:00 | 05-31 22:00 | take_profit | 6 | +1.49 | +| KAS | 05-31 15:00 | 05-31 23:00 | take_profit | 8 | +1.49 | +| ATOM | 05-31 16:00 | 06-01 00:00 | take_profit | 8 | +1.49 | +| AVAX | 05-31 14:00 | 06-01 00:00 | take_profit | 10 | +1.49 | +| FIL | 05-31 23:00 | 06-01 00:00 | trailing_stop | 1 | -0.43 | +| ETC | 05-31 14:00 | 06-01 01:00 | trailing_stop | 11 | -0.36 | +| LTC | 05-31 17:00 | 06-01 01:00 | trailing_stop | 8 | -0.70 | +| UNI | 05-31 14:00 | 06-01 01:00 | trailing_stop | 11 | -0.21 | +| FIL | 06-01 01:00 | 06-01 02:00 | take_profit | 1 | +1.49 | +| INJ | 06-01 01:00 | 06-01 02:00 | take_profit | 1 | +1.49 | +| LTC | 06-01 01:00 | 06-01 06:00 | trailing_stop | 5 | -0.58 | +| RENDER | 06-01 13:00 | 06-01 14:00 | stop_loss | 1 | -1.49 | +| SUI | 06-01 13:00 | 06-01 14:00 | take_profit | 1 | +1.49 | +| ARB | 06-01 13:00 | 06-01 16:00 | take_profit | 3 | +1.49 | +| ATOM | 06-01 13:00 | 06-01 16:00 | stop_loss | 3 | -1.49 | +| KAS | 06-01 13:00 | 06-01 16:00 | take_profit | 3 | +1.49 | +| RENDER | 06-01 14:00 | 06-01 16:00 | take_profit | 2 | +1.49 | +| UNI | 06-01 13:00 | 06-01 16:00 | trailing_stop | 3 | -0.62 | +| TRX | 06-01 12:00 | 06-01 18:00 | stop_loss | 6 | -1.49 | +| ATOM | 06-01 19:00 | 06-01 21:00 | stop_loss | 2 | -1.49 | +| LTC | 06-02 02:00 | 06-02 05:00 | stop_loss | 3 | -1.49 | +| TRX | 06-01 18:00 | 06-02 06:00 | stop_loss | 12 | -1.49 | +| TON | 06-02 06:00 | 06-02 07:00 | stop_loss | 1 | -1.49 | +| TON | 06-02 07:00 | 06-02 08:00 | stop_loss | 1 | -1.49 | +| KAS | 06-02 07:00 | 06-02 09:00 | stop_loss | 2 | -1.49 | +| SEI | 06-02 09:00 | 06-02 10:00 | trailing_stop | 1 | -0.31 | +| SUI | 06-02 09:00 | 06-02 10:00 | trailing_stop | 1 | -0.70 | +| TON | 06-02 08:00 | 06-02 10:00 | trailing_stop | 2 | -0.03 | +| WIF | 06-02 09:00 | 06-02 10:00 | trailing_stop | 1 | -0.11 | +| SEI | 06-02 10:00 | 06-02 12:00 | confirmed_bearish_exit | 2 | +0.58 | +| APT | 06-02 07:00 | 06-02 14:00 | stop_loss | 7 | -1.49 | +| ATOM | 06-02 01:00 | 06-02 14:00 | stop_loss | 13 | -1.49 | +| FIL | 06-02 09:00 | 06-02 14:00 | stop_loss | 5 | -1.49 | +| LTC | 06-02 05:00 | 06-02 14:00 | stop_loss | 9 | -1.49 | +| PEPE | 06-02 07:00 | 06-02 14:00 | stop_loss | 7 | -1.49 | +| SEI | 06-02 13:00 | 06-02 14:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-02 09:00 | 06-02 14:00 | stop_loss | 5 | -1.49 | +| APT | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| ARB | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| ATOM | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| AVAX | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| BONK | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| ETC | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| FIL | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| LTC | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| OP | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| SEI | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| TIA | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| UNI | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| WIF | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| APT | 06-02 15:00 | 06-02 16:00 | take_profit | 1 | +1.49 | +| ARB | 06-02 15:00 | 06-02 16:00 | take_profit | 1 | +1.49 | +| BONK | 06-02 15:00 | 06-02 16:00 | take_profit | 1 | +1.49 | +| FIL | 06-02 15:00 | 06-02 16:00 | take_profit | 1 | +1.49 | +| NEAR | 06-02 15:00 | 06-02 16:00 | stop_loss | 1 | -1.49 | +| OP | 06-02 15:00 | 06-02 16:00 | take_profit | 1 | +1.49 | +| RENDER | 06-02 15:00 | 06-02 16:00 | take_profit | 1 | +1.49 | +| SEI | 06-02 15:00 | 06-02 16:00 | take_profit | 1 | +1.49 | +| SUI | 06-02 15:00 | 06-02 16:00 | take_profit | 1 | +1.49 | +| UNI | 06-02 15:00 | 06-02 16:00 | take_profit | 1 | +1.49 | +| WIF | 06-02 15:00 | 06-02 16:00 | take_profit | 1 | +1.49 | +| APT | 06-02 16:00 | 06-02 17:00 | trailing_stop | 1 | -0.43 | +| SEI | 06-02 16:00 | 06-02 17:00 | trailing_stop | 1 | -0.35 | +| TON | 06-02 16:00 | 06-02 17:00 | take_profit | 1 | +1.49 | +| ATOM | 06-02 15:00 | 06-02 18:00 | trailing_stop | 3 | -0.67 | +| AVAX | 06-02 15:00 | 06-02 18:00 | trailing_stop | 3 | -0.68 | +| BONK | 06-02 16:00 | 06-02 18:00 | stop_loss | 2 | -1.49 | +| FIL | 06-02 16:00 | 06-02 18:00 | stop_loss | 2 | -1.49 | +| PEPE | 06-02 15:00 | 06-02 18:00 | trailing_stop | 3 | -0.46 | +| BONK | 06-02 18:00 | 06-02 19:00 | stop_loss | 1 | -1.49 | +| ETC | 06-02 15:00 | 06-02 19:00 | stop_loss | 4 | -1.49 | +| FET | 06-02 18:00 | 06-02 19:00 | stop_loss | 1 | -1.49 | +| FIL | 06-02 18:00 | 06-02 19:00 | stop_loss | 1 | -1.49 | +| LTC | 06-02 15:00 | 06-02 19:00 | trailing_stop | 4 | -0.44 | +| SHIB | 06-02 15:00 | 06-02 19:00 | stop_loss | 4 | -1.49 | +| FET | 06-02 19:00 | 06-02 20:00 | stop_loss | 1 | -1.49 | +| FET | 06-02 20:00 | 06-02 21:00 | take_profit | 1 | +1.49 | +| FIL | 06-02 19:00 | 06-02 21:00 | take_profit | 2 | +1.49 | +| ATOM | 06-02 19:00 | 06-02 22:00 | trailing_stop | 3 | -0.55 | +| TRX | 06-02 14:00 | 06-02 22:00 | stop_loss | 8 | -1.49 | +| ARB | 06-02 22:00 | 06-02 23:00 | stop_loss | 1 | -1.49 | +| AVAX | 06-02 22:00 | 06-02 23:00 | stop_loss | 1 | -1.49 | +| ETC | 06-02 22:00 | 06-02 23:00 | stop_loss | 1 | -1.49 | +| KAS | 06-02 22:00 | 06-02 23:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-02 22:00 | 06-02 23:00 | stop_loss | 1 | -1.49 | +| SEI | 06-02 22:00 | 06-02 23:00 | stop_loss | 1 | -1.49 | +| SUI | 06-02 22:00 | 06-02 23:00 | stop_loss | 1 | -1.49 | +| TIA | 06-02 22:00 | 06-02 23:00 | stop_loss | 1 | -1.49 | +| UNI | 06-02 22:00 | 06-02 23:00 | stop_loss | 1 | -1.49 | +| WIF | 06-02 22:00 | 06-02 23:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-02 22:00 | 06-03 00:00 | take_profit | 2 | +1.49 | +| LTC | 06-02 22:00 | 06-03 02:00 | take_profit | 4 | +1.49 | +| FIL | 06-03 02:00 | 06-03 03:00 | stop_loss | 1 | -1.49 | +| SEI | 06-02 23:00 | 06-03 03:00 | stop_loss | 4 | -1.49 | +| TRX | 06-02 22:00 | 06-03 03:00 | stop_loss | 5 | -1.49 | +| ARB | 06-03 03:00 | 06-03 04:00 | take_profit | 1 | +1.49 | +| ETC | 06-03 03:00 | 06-03 04:00 | take_profit | 1 | +1.49 | +| FET | 06-03 03:00 | 06-03 04:00 | take_profit | 1 | +1.49 | +| FIL | 06-03 03:00 | 06-03 04:00 | take_profit | 1 | +1.49 | +| SUI | 06-03 03:00 | 06-03 04:00 | take_profit | 1 | +1.49 | +| AVAX | 06-03 19:00 | 06-03 20:00 | stop_loss | 1 | -1.49 | +| BONK | 06-03 19:00 | 06-03 20:00 | stop_loss | 1 | -1.49 | +| ETC | 06-03 19:00 | 06-03 20:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-03 19:00 | 06-03 20:00 | stop_loss | 1 | -1.49 | +| TON | 06-03 19:00 | 06-03 20:00 | stop_loss | 1 | -1.49 | +| APT | 06-03 20:00 | 06-03 21:00 | take_profit | 1 | +1.49 | +| AVAX | 06-03 20:00 | 06-03 21:00 | take_profit | 1 | +1.49 | +| BONK | 06-03 20:00 | 06-03 21:00 | take_profit | 1 | +1.49 | +| ETC | 06-03 20:00 | 06-03 21:00 | take_profit | 1 | +1.49 | +| LTC | 06-03 19:00 | 06-03 21:00 | trailing_stop | 2 | -0.43 | +| PEPE | 06-03 20:00 | 06-03 21:00 | take_profit | 1 | +1.49 | +| SEI | 06-03 20:00 | 06-03 21:00 | trailing_stop | 1 | -0.56 | +| SHIB | 06-03 20:00 | 06-03 21:00 | take_profit | 1 | +1.49 | +| SUI | 06-03 20:00 | 06-03 21:00 | take_profit | 1 | +1.49 | +| TON | 06-03 20:00 | 06-03 21:00 | take_profit | 1 | +1.49 | +| FET | 06-03 23:00 | 06-04 00:00 | stop_loss | 1 | -1.49 | +| APT | 06-04 00:00 | 06-04 01:00 | stop_loss | 1 | -1.49 | +| ARB | 06-04 00:00 | 06-04 01:00 | stop_loss | 1 | -1.49 | +| BONK | 06-04 00:00 | 06-04 01:00 | stop_loss | 1 | -1.49 | +| FET | 06-04 00:00 | 06-04 01:00 | stop_loss | 1 | -1.49 | +| LTC | 06-04 00:00 | 06-04 01:00 | stop_loss | 1 | -1.49 | +| OP | 06-04 00:00 | 06-04 01:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-04 00:00 | 06-04 01:00 | stop_loss | 1 | -1.49 | +| SEI | 06-04 00:00 | 06-04 01:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-04 00:00 | 06-04 01:00 | stop_loss | 1 | -1.49 | +| UNI | 06-04 00:00 | 06-04 01:00 | stop_loss | 1 | -1.49 | +| APT | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| ARB | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| ATOM | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| AVAX | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| BONK | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| ETC | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| FET | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| FIL | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| INJ | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| LTC | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| OP | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| RENDER | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| SEI | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| SUI | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| TIA | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| TON | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| TRX | 06-03 07:00 | 06-04 02:00 | stop_loss | 19 | -1.49 | +| UNI | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| WIF | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| APT | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| ARB | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| ATOM | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| BONK | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| ETC | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| FET | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| FIL | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| LTC | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| OP | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| PEPE | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| RENDER | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| SHIB | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| SUI | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| TIA | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| UNI | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| WIF | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| TON | 06-04 02:00 | 06-04 04:00 | trailing_stop | 2 | -0.59 | +| KAS | 06-04 04:00 | 06-04 05:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-04 04:00 | 06-04 05:00 | stop_loss | 1 | -1.49 | +| SEI | 06-04 02:00 | 06-04 05:00 | stop_loss | 3 | -1.49 | +| NEAR | 06-04 05:00 | 06-04 06:00 | stop_loss | 1 | -1.49 | +| KAS | 06-04 05:00 | 06-04 07:00 | stop_loss | 2 | -1.49 | +| NEAR | 06-04 06:00 | 06-04 07:00 | stop_loss | 1 | -1.49 | +| FET | 06-04 07:00 | 06-04 08:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-04 07:00 | 06-04 08:00 | stop_loss | 1 | -1.49 | +| RENDER | 06-04 07:00 | 06-04 08:00 | stop_loss | 1 | -1.49 | +| WIF | 06-04 07:00 | 06-04 08:00 | stop_loss | 1 | -1.49 | +| ATOM | 06-04 07:00 | 06-04 09:00 | stop_loss | 2 | -1.49 | +| FET | 06-04 08:00 | 06-04 09:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-04 08:00 | 06-04 09:00 | stop_loss | 1 | -1.49 | +| RENDER | 06-04 08:00 | 06-04 09:00 | stop_loss | 1 | -1.49 | +| ATOM | 06-04 09:00 | 06-04 10:00 | stop_loss | 1 | -1.49 | +| RENDER | 06-04 09:00 | 06-04 10:00 | stop_loss | 1 | -1.49 | +| ARB | 06-04 10:00 | 06-04 11:00 | trailing_stop | 1 | +0.23 | +| ATOM | 06-04 10:00 | 06-04 11:00 | trailing_stop | 1 | -0.11 | +| ETC | 06-04 10:00 | 06-04 11:00 | trailing_stop | 1 | -0.47 | +| FET | 06-04 10:00 | 06-04 11:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-04 10:00 | 06-04 11:00 | take_profit | 1 | +1.49 | +| RENDER | 06-04 10:00 | 06-04 11:00 | stop_loss | 1 | -1.49 | +| INJ | 06-04 11:00 | 06-04 12:00 | stop_loss | 1 | -1.49 | +| TON | 06-04 13:00 | 06-04 14:00 | stop_loss | 1 | -1.49 | +| INJ | 06-04 14:00 | 06-04 15:00 | take_profit | 1 | +1.49 | +| NEAR | 06-04 14:00 | 06-04 15:00 | take_profit | 1 | +1.49 | +| OP | 06-04 13:00 | 06-04 15:00 | take_profit | 2 | +1.49 | +| RENDER | 06-04 14:00 | 06-04 15:00 | take_profit | 1 | +1.49 | +| TON | 06-04 14:00 | 06-04 15:00 | stop_loss | 1 | -1.49 | +| SEI | 06-04 14:00 | 06-04 16:00 | stop_loss | 2 | -1.49 | +| FET | 06-04 16:00 | 06-04 17:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-04 16:00 | 06-04 17:00 | stop_loss | 1 | -1.49 | +| FET | 06-04 17:00 | 06-04 18:00 | stop_loss | 1 | -1.49 | +| KAS | 06-04 13:00 | 06-04 18:00 | trailing_stop | 5 | -0.60 | +| NEAR | 06-04 17:00 | 06-04 18:00 | stop_loss | 1 | -1.49 | +| RENDER | 06-04 17:00 | 06-04 18:00 | stop_loss | 1 | -1.49 | +| FET | 06-04 18:00 | 06-04 19:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-04 18:00 | 06-04 19:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-04 17:00 | 06-04 20:00 | stop_loss | 3 | -1.49 | +| AVAX | 06-04 17:00 | 06-04 21:00 | stop_loss | 4 | -1.49 | +| UNI | 06-04 17:00 | 06-04 21:00 | stop_loss | 4 | -1.49 | +| TON | 06-04 21:00 | 06-04 22:00 | stop_loss | 1 | -1.49 | +| TRX | 06-04 09:00 | 06-04 23:00 | confirmed_bearish_exit | 14 | +0.87 | +| ARB | 06-05 02:00 | 06-05 03:00 | stop_loss | 1 | -1.49 | +| AVAX | 06-05 02:00 | 06-05 03:00 | stop_loss | 1 | -1.49 | +| FET | 06-05 02:00 | 06-05 03:00 | take_profit | 1 | +1.49 | +| NEAR | 06-05 02:00 | 06-05 03:00 | stop_loss | 1 | -1.49 | +| SUI | 06-05 02:00 | 06-05 03:00 | stop_loss | 1 | -1.49 | +| APT | 06-05 02:00 | 06-05 04:00 | take_profit | 2 | +1.49 | +| AVAX | 06-05 03:00 | 06-05 04:00 | take_profit | 1 | +1.49 | +| BONK | 06-05 02:00 | 06-05 04:00 | take_profit | 2 | +1.49 | +| ETC | 06-05 02:00 | 06-05 04:00 | trailing_stop | 2 | +0.12 | +| LTC | 06-05 02:00 | 06-05 04:00 | trailing_stop | 2 | -0.62 | +| PEPE | 06-05 02:00 | 06-05 04:00 | stop_loss | 2 | -1.49 | +| RENDER | 06-05 02:00 | 06-05 04:00 | take_profit | 2 | +1.49 | +| SEI | 06-05 02:00 | 06-05 04:00 | trailing_stop | 2 | -0.60 | +| SHIB | 06-05 02:00 | 06-05 04:00 | trailing_stop | 2 | -0.47 | +| SUI | 06-05 03:00 | 06-05 04:00 | take_profit | 1 | +1.49 | +| UNI | 06-05 02:00 | 06-05 04:00 | trailing_stop | 2 | -0.09 | +| WIF | 06-05 02:00 | 06-05 04:00 | take_profit | 2 | +1.49 | +| ARB | 06-05 05:00 | 06-05 06:00 | stop_loss | 1 | -1.49 | +| AVAX | 06-05 05:00 | 06-05 06:00 | stop_loss | 1 | -1.49 | +| ETC | 06-05 05:00 | 06-05 06:00 | stop_loss | 1 | -1.49 | +| LTC | 06-05 05:00 | 06-05 06:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-05 05:00 | 06-05 06:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-05 05:00 | 06-05 06:00 | stop_loss | 1 | -1.49 | +| SUI | 06-05 05:00 | 06-05 06:00 | stop_loss | 1 | -1.49 | +| TIA | 06-05 05:00 | 06-05 06:00 | stop_loss | 1 | -1.49 | +| UNI | 06-05 05:00 | 06-05 06:00 | stop_loss | 1 | -1.49 | +| APT | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| ARB | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| ATOM | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| AVAX | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| BONK | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| ETC | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| FIL | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| LTC | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| OP | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| RENDER | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| SEI | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| SUI | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| TIA | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| TON | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| UNI | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| FIL | 06-05 08:00 | 06-05 09:00 | take_profit | 1 | +1.49 | +| PEPE | 06-05 08:00 | 06-05 09:00 | take_profit | 1 | +1.49 | +| SHIB | 06-05 08:00 | 06-05 09:00 | trailing_stop | 1 | +0.19 | +| SEI | 06-05 08:00 | 06-05 11:00 | stop_loss | 3 | -1.49 | +| SEI | 06-05 13:00 | 06-05 14:00 | take_profit | 1 | +1.49 | +| UNI | 06-05 13:00 | 06-05 14:00 | take_profit | 1 | +1.49 | +| SHIB | 06-05 13:00 | 06-05 15:00 | stop_loss | 2 | -1.49 | +| TRX | 06-05 06:00 | 06-05 15:00 | stop_loss | 9 | -1.49 | +| FIL | 06-05 15:00 | 06-05 16:00 | stop_loss | 1 | -1.49 | +| SEI | 06-05 15:00 | 06-05 16:00 | stop_loss | 1 | -1.49 | +| FIL | 06-05 17:00 | 06-05 18:00 | stop_loss | 1 | -1.49 | +| APT | 06-05 18:00 | 06-05 19:00 | stop_loss | 1 | -1.49 | +| ATOM | 06-05 18:00 | 06-05 19:00 | take_profit | 1 | +1.49 | +| BONK | 06-05 18:00 | 06-05 19:00 | stop_loss | 1 | -1.49 | +| ETC | 06-05 18:00 | 06-05 19:00 | stop_loss | 1 | -1.49 | +| FET | 06-05 18:00 | 06-05 19:00 | stop_loss | 1 | -1.49 | +| OP | 06-05 18:00 | 06-05 19:00 | stop_loss | 1 | -1.49 | +| SEI | 06-05 18:00 | 06-05 19:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-05 18:00 | 06-05 19:00 | take_profit | 1 | +1.49 | +| TIA | 06-05 18:00 | 06-05 19:00 | stop_loss | 1 | -1.49 | +| UNI | 06-05 18:00 | 06-05 19:00 | stop_loss | 1 | -1.49 | +| WIF | 06-05 18:00 | 06-05 19:00 | stop_loss | 1 | -1.49 | +| OP | 06-05 23:00 | 06-06 00:00 | take_profit | 1 | +1.49 | +| FIL | 06-05 23:00 | 06-06 01:00 | trailing_stop | 2 | -0.62 | +| ATOM | 06-05 23:00 | 06-06 02:00 | stop_loss | 3 | -1.49 | +| APT | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| ARB | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| ATOM | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| AVAX | 06-06 04:00 | 06-06 05:00 | take_profit | 1 | +1.49 | +| BONK | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| FET | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| FIL | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| LTC | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| OP | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| SEI | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| TIA | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| WIF | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| INJ | 06-06 22:00 | 06-06 23:00 | trailing_stop | 1 | -0.52 | +| TRX | 06-05 15:00 | 06-07 07:00 | take_profit | 40 | +1.49 | +| APT | 06-07 19:00 | 06-07 20:00 | trailing_stop | 1 | -0.48 | +| ARB | 06-07 19:00 | 06-07 20:00 | trailing_stop | 1 | -0.58 | +| AVAX | 06-07 19:00 | 06-07 20:00 | trailing_stop | 1 | -0.66 | +| OP | 06-07 19:00 | 06-07 20:00 | take_profit | 1 | +1.49 | +| UNI | 06-07 21:00 | 06-07 22:00 | take_profit | 1 | +1.49 | +| KAS | 06-08 23:00 | 06-09 01:00 | stop_loss | 2 | -1.49 | +| SUI | 06-09 00:00 | 06-09 01:00 | trailing_stop | 1 | -0.34 | +| APT | 06-09 00:00 | 06-09 02:00 | stop_loss | 2 | -1.49 | +| FET | 06-09 01:00 | 06-09 02:00 | stop_loss | 1 | -1.49 | +| KAS | 06-09 01:00 | 06-09 02:00 | stop_loss | 1 | -1.49 | +| RENDER | 06-09 01:00 | 06-09 03:00 | stop_loss | 2 | -1.49 | +| APT | 06-09 02:00 | 06-09 04:00 | take_profit | 2 | +1.49 | +| ARB | 06-09 00:00 | 06-09 04:00 | take_profit | 4 | +1.49 | +| BONK | 06-09 00:00 | 06-09 04:00 | take_profit | 4 | +1.49 | +| ETC | 06-09 00:00 | 06-09 04:00 | trailing_stop | 4 | -0.56 | +| FET | 06-09 02:00 | 06-09 04:00 | trailing_stop | 2 | -0.26 | +| FIL | 06-09 02:00 | 06-09 04:00 | take_profit | 2 | +1.49 | +| KAS | 06-09 02:00 | 06-09 04:00 | trailing_stop | 2 | -0.34 | +| NEAR | 06-09 02:00 | 06-09 04:00 | trailing_stop | 2 | -0.22 | +| OP | 06-09 00:00 | 06-09 04:00 | take_profit | 4 | +1.49 | +| SEI | 06-09 00:00 | 06-09 04:00 | take_profit | 4 | +1.49 | +| SHIB | 06-09 00:00 | 06-09 04:00 | trailing_stop | 4 | -0.22 | +| SUI | 06-09 02:00 | 06-09 04:00 | take_profit | 2 | +1.49 | +| TIA | 06-09 00:00 | 06-09 04:00 | take_profit | 4 | +1.49 | +| UNI | 06-09 00:00 | 06-09 04:00 | take_profit | 4 | +1.49 | +| WIF | 06-09 00:00 | 06-09 04:00 | take_profit | 4 | +1.49 | +| ARB | 06-09 07:00 | 06-09 09:00 | stop_loss | 2 | -1.49 | +| SEI | 06-09 07:00 | 06-09 09:00 | stop_loss | 2 | -1.49 | +| TRX | 06-07 21:00 | 06-09 09:00 | stop_loss | 36 | -1.49 | +| UNI | 06-09 08:00 | 06-09 11:00 | stop_loss | 3 | -1.49 | +| FET | 06-09 08:00 | 06-09 12:00 | stop_loss | 4 | -1.49 | +| ATOM | 06-09 09:00 | 06-09 13:00 | trailing_stop | 4 | -0.39 | +| KAS | 06-09 09:00 | 06-09 13:00 | stop_loss | 4 | -1.49 | +| ARB | 06-09 09:00 | 06-09 14:00 | stop_loss | 5 | -1.49 | +| ETC | 06-09 09:00 | 06-09 14:00 | stop_loss | 5 | -1.49 | +| FIL | 06-09 09:00 | 06-09 14:00 | stop_loss | 5 | -1.49 | +| KAS | 06-09 13:00 | 06-09 14:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-09 09:00 | 06-09 14:00 | stop_loss | 5 | -1.49 | +| KAS | 06-09 14:00 | 06-09 15:00 | stop_loss | 1 | -1.49 | +| LTC | 06-09 09:00 | 06-09 15:00 | stop_loss | 6 | -1.49 | +| FET | 06-09 15:00 | 06-09 16:00 | stop_loss | 1 | -1.49 | +| KAS | 06-09 15:00 | 06-09 16:00 | trailing_stop | 1 | -0.58 | +| FET | 06-09 16:00 | 06-09 17:00 | take_profit | 1 | +1.49 | +| SEI | 06-09 15:00 | 06-09 17:00 | take_profit | 2 | +1.49 | +| FET | 06-09 21:00 | 06-10 00:00 | stop_loss | 3 | -1.49 | +| INJ | 06-10 02:00 | 06-10 04:00 | stop_loss | 2 | -1.49 | +| TON | 06-10 04:00 | 06-10 05:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-10 05:00 | 06-10 06:00 | stop_loss | 1 | -1.49 | +| WIF | 06-10 02:00 | 06-10 09:00 | stop_loss | 7 | -1.49 | +| INJ | 06-10 08:00 | 06-10 11:00 | stop_loss | 3 | -1.49 | +| TON | 06-10 05:00 | 06-10 11:00 | stop_loss | 6 | -1.49 | +| APT | 06-10 11:00 | 06-10 12:00 | take_profit | 1 | +1.49 | +| ARB | 06-10 08:00 | 06-10 12:00 | stop_loss | 4 | -1.49 | +| AVAX | 06-10 08:00 | 06-10 12:00 | trailing_stop | 4 | -0.63 | +| FET | 06-10 11:00 | 06-10 12:00 | take_profit | 1 | +1.49 | +| FIL | 06-10 11:00 | 06-10 12:00 | take_profit | 1 | +1.49 | +| RENDER | 06-10 11:00 | 06-10 12:00 | take_profit | 1 | +1.49 | +| APT | 06-10 14:00 | 06-10 16:00 | stop_loss | 2 | -1.49 | +| APT | 06-10 20:00 | 06-10 21:00 | stop_loss | 1 | -1.49 | +| FET | 06-10 19:00 | 06-10 21:00 | stop_loss | 2 | -1.49 | +| OP | 06-10 20:00 | 06-10 21:00 | stop_loss | 1 | -1.49 | +| RENDER | 06-10 20:00 | 06-10 21:00 | stop_loss | 1 | -1.49 | +| TIA | 06-10 20:00 | 06-10 21:00 | stop_loss | 1 | -1.49 | +| WIF | 06-10 20:00 | 06-10 21:00 | stop_loss | 1 | -1.49 | +| KAS | 06-10 20:00 | 06-10 22:00 | stop_loss | 2 | -1.49 | +| NEAR | 06-10 21:00 | 06-10 22:00 | stop_loss | 1 | -1.49 | +| OP | 06-10 21:00 | 06-10 22:00 | stop_loss | 1 | -1.49 | +| APT | 06-10 21:00 | 06-10 23:00 | trailing_stop | 2 | -0.25 | +| ARB | 06-10 21:00 | 06-10 23:00 | take_profit | 2 | +1.49 | +| BONK | 06-10 21:00 | 06-10 23:00 | trailing_stop | 2 | -0.51 | +| FET | 06-10 21:00 | 06-10 23:00 | stop_loss | 2 | -1.49 | +| FIL | 06-10 21:00 | 06-10 23:00 | trailing_stop | 2 | -0.61 | +| OP | 06-10 22:00 | 06-10 23:00 | trailing_stop | 1 | -0.16 | +| RENDER | 06-10 21:00 | 06-10 23:00 | take_profit | 2 | +1.49 | +| SUI | 06-10 21:00 | 06-10 23:00 | trailing_stop | 2 | -0.56 | +| TIA | 06-10 21:00 | 06-10 23:00 | take_profit | 2 | +1.49 | +| TON | 06-10 21:00 | 06-10 23:00 | take_profit | 2 | +1.49 | +| WIF | 06-10 21:00 | 06-10 23:00 | trailing_stop | 2 | -0.07 | +| ATOM | 06-10 20:00 | 06-11 00:00 | take_profit | 4 | +1.49 | +| AVAX | 06-10 21:00 | 06-11 01:00 | take_profit | 4 | +1.49 | +| INJ | 06-10 21:00 | 06-11 01:00 | take_profit | 4 | +1.49 | +| LTC | 06-10 21:00 | 06-11 01:00 | take_profit | 4 | +1.49 | +| SHIB | 06-10 21:00 | 06-11 01:00 | take_profit | 4 | +1.49 | +| UNI | 06-10 21:00 | 06-11 01:00 | take_profit | 4 | +1.49 | +| OP | 06-11 02:00 | 06-11 03:00 | take_profit | 1 | +1.49 | +| NEAR | 06-11 03:00 | 06-11 04:00 | trailing_stop | 1 | -0.34 | +| FET | 06-11 03:00 | 06-11 09:00 | trailing_stop | 6 | -0.50 | +| TRX | 06-09 09:00 | 06-11 16:00 | stop_loss | 55 | -1.49 | +| TRX | 06-11 16:00 | 06-11 18:00 | stop_loss | 2 | -1.49 | +| APT | 06-12 07:00 | 06-12 08:00 | trailing_stop | 1 | -0.15 | +| ETC | 06-12 07:00 | 06-12 09:00 | take_profit | 2 | +1.49 | +| WIF | 06-12 07:00 | 06-12 09:00 | take_profit | 2 | +1.49 | +| ATOM | 06-12 12:00 | 06-12 13:00 | stop_loss | 1 | -1.49 | +| AVAX | 06-12 07:00 | 06-12 13:00 | trailing_stop | 6 | -0.56 | +| FIL | 06-12 07:00 | 06-12 13:00 | stop_loss | 6 | -1.49 | +| AVAX | 06-12 13:00 | 06-12 14:00 | take_profit | 1 | +1.49 | +| INJ | 06-12 13:00 | 06-12 14:00 | trailing_stop | 1 | -0.47 | +| KAS | 06-12 12:00 | 06-12 14:00 | trailing_stop | 2 | -0.09 | +| SUI | 06-12 07:00 | 06-12 14:00 | trailing_stop | 7 | -0.14 | +| INJ | 06-12 15:00 | 06-12 16:00 | stop_loss | 1 | -1.49 | +| INJ | 06-12 16:00 | 06-12 21:00 | stop_loss | 5 | -1.49 | +| ATOM | 06-12 13:00 | 06-12 23:00 | take_profit | 10 | +1.49 | +| NEAR | 06-13 02:00 | 06-13 04:00 | stop_loss | 2 | -1.49 | +| TON | 06-12 21:00 | 06-13 05:00 | trailing_stop | 8 | -0.45 | +| NEAR | 06-13 04:00 | 06-13 06:00 | trailing_stop | 2 | -0.27 | +| TIA | 06-13 04:00 | 06-13 06:00 | take_profit | 2 | +1.49 | +| ATOM | 06-13 15:00 | 06-13 16:00 | stop_loss | 1 | -1.49 | +| ATOM | 06-13 16:00 | 06-13 21:00 | stop_loss | 5 | -1.49 | +| SEI | 06-13 20:00 | 06-14 00:00 | stop_loss | 4 | -1.49 | +| ARB | 06-14 01:00 | 06-14 04:00 | stop_loss | 3 | -1.49 | +| OP | 06-14 03:00 | 06-14 04:00 | stop_loss | 1 | -1.49 | +| APT | 06-14 03:00 | 06-14 05:00 | stop_loss | 2 | -1.49 | +| FIL | 06-14 02:00 | 06-14 05:00 | stop_loss | 3 | -1.49 | +| RENDER | 06-14 04:00 | 06-14 05:00 | stop_loss | 1 | -1.49 | +| SEI | 06-14 00:00 | 06-14 05:00 | stop_loss | 5 | -1.49 | +| WIF | 06-14 01:00 | 06-14 05:00 | stop_loss | 4 | -1.49 | +| TIA | 06-14 05:00 | 06-14 07:00 | stop_loss | 2 | -1.49 | +| TON | 06-14 05:00 | 06-14 07:00 | trailing_stop | 2 | -0.13 | +| OP | 06-14 04:00 | 06-14 09:00 | trailing_stop | 5 | -0.10 | +| INJ | 06-14 04:00 | 06-14 11:00 | stop_loss | 7 | -1.49 | +| APT | 06-14 05:00 | 06-14 12:00 | stop_loss | 7 | -1.49 | +| ATOM | 06-13 22:00 | 06-14 12:00 | stop_loss | 14 | -1.49 | +| AVAX | 06-14 05:00 | 06-14 12:00 | stop_loss | 7 | -1.49 | +| PEPE | 06-14 05:00 | 06-14 12:00 | stop_loss | 7 | -1.49 | +| SHIB | 06-14 11:00 | 06-14 12:00 | stop_loss | 1 | -1.49 | +| TIA | 06-14 07:00 | 06-14 12:00 | stop_loss | 5 | -1.49 | +| ARB | 06-14 04:00 | 06-14 13:00 | stop_loss | 9 | -1.49 | +| ETC | 06-14 04:00 | 06-14 13:00 | stop_loss | 9 | -1.49 | +| FET | 06-14 12:00 | 06-14 13:00 | stop_loss | 1 | -1.49 | +| FIL | 06-14 05:00 | 06-14 13:00 | stop_loss | 8 | -1.49 | +| SUI | 06-14 05:00 | 06-14 13:00 | stop_loss | 8 | -1.49 | +| UNI | 06-14 05:00 | 06-14 13:00 | stop_loss | 8 | -1.49 | +| APT | 06-14 12:00 | 06-14 14:00 | stop_loss | 2 | -1.49 | +| AVAX | 06-14 12:00 | 06-14 14:00 | stop_loss | 2 | -1.49 | +| BONK | 06-14 12:00 | 06-14 14:00 | stop_loss | 2 | -1.49 | +| FET | 06-14 13:00 | 06-14 14:00 | stop_loss | 1 | -1.49 | +| SEI | 06-14 05:00 | 06-14 14:00 | stop_loss | 9 | -1.49 | +| SHIB | 06-14 12:00 | 06-14 14:00 | stop_loss | 2 | -1.49 | +| WIF | 06-14 12:00 | 06-14 14:00 | stop_loss | 2 | -1.49 | +| ETC | 06-14 13:00 | 06-14 16:00 | stop_loss | 3 | -1.49 | +| FET | 06-14 14:00 | 06-14 16:00 | take_profit | 2 | +1.49 | +| AVAX | 06-14 14:00 | 06-14 17:00 | stop_loss | 3 | -1.49 | +| INJ | 06-14 14:00 | 06-14 17:00 | stop_loss | 3 | -1.49 | +| AVAX | 06-14 17:00 | 06-14 18:00 | stop_loss | 1 | -1.49 | +| BONK | 06-14 14:00 | 06-14 18:00 | stop_loss | 4 | -1.49 | +| PEPE | 06-14 14:00 | 06-14 18:00 | stop_loss | 4 | -1.49 | +| NEAR | 06-14 15:00 | 06-14 20:00 | take_profit | 5 | +1.49 | +| APT | 06-14 14:00 | 06-14 21:00 | take_profit | 7 | +1.49 | +| AVAX | 06-14 18:00 | 06-14 21:00 | take_profit | 3 | +1.49 | +| ETC | 06-14 16:00 | 06-14 21:00 | take_profit | 5 | +1.49 | +| FIL | 06-14 14:00 | 06-14 21:00 | take_profit | 7 | +1.49 | +| INJ | 06-14 17:00 | 06-14 21:00 | take_profit | 4 | +1.49 | +| LTC | 06-14 12:00 | 06-14 21:00 | take_profit | 9 | +1.49 | +| RENDER | 06-14 14:00 | 06-14 21:00 | take_profit | 7 | +1.49 | +| SHIB | 06-14 14:00 | 06-14 21:00 | take_profit | 7 | +1.49 | +| SUI | 06-14 14:00 | 06-14 21:00 | take_profit | 7 | +1.49 | +| UNI | 06-14 14:00 | 06-14 21:00 | take_profit | 7 | +1.49 | +| WIF | 06-14 14:00 | 06-14 21:00 | take_profit | 7 | +1.49 | +| TRX | 06-11 18:00 | 06-14 23:00 | take_profit | 77 | +1.49 | +| SEI | 06-15 19:00 | 06-15 22:00 | stop_loss | 3 | -1.49 | +| TON | 06-15 21:00 | 06-15 22:00 | stop_loss | 1 | -1.49 | +| FET | 06-16 01:00 | 06-16 02:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-16 01:00 | 06-16 02:00 | stop_loss | 1 | -1.49 | +| OP | 06-15 22:00 | 06-16 02:00 | stop_loss | 4 | -1.49 | +| RENDER | 06-15 19:00 | 06-16 02:00 | stop_loss | 7 | -1.49 | +| TON | 06-15 22:00 | 06-16 02:00 | stop_loss | 4 | -1.49 | +| ARB | 06-16 02:00 | 06-16 03:00 | trailing_stop | 1 | -0.42 | +| FET | 06-16 02:00 | 06-16 03:00 | trailing_stop | 1 | -0.34 | +| RENDER | 06-16 02:00 | 06-16 03:00 | take_profit | 1 | +1.49 | +| FIL | 06-15 22:00 | 06-16 04:00 | trailing_stop | 6 | -0.70 | +| WIF | 06-16 03:00 | 06-16 04:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-16 02:00 | 06-16 05:00 | take_profit | 3 | +1.49 | +| ATOM | 06-16 05:00 | 06-16 07:00 | take_profit | 2 | +1.49 | +| AVAX | 06-16 02:00 | 06-16 07:00 | take_profit | 5 | +1.49 | +| BONK | 06-16 02:00 | 06-16 07:00 | take_profit | 5 | +1.49 | +| KAS | 06-16 02:00 | 06-16 07:00 | take_profit | 5 | +1.49 | +| ARB | 06-16 07:00 | 06-16 08:00 | trailing_stop | 1 | -0.10 | +| BONK | 06-16 07:00 | 06-16 08:00 | trailing_stop | 1 | -0.47 | +| ETC | 06-16 05:00 | 06-16 08:00 | trailing_stop | 3 | -0.09 | +| PEPE | 06-16 07:00 | 06-16 08:00 | trailing_stop | 1 | -0.70 | +| SEI | 06-15 22:00 | 06-16 08:00 | trailing_stop | 10 | -0.32 | +| WIF | 06-16 06:00 | 06-16 08:00 | take_profit | 2 | +1.49 | +| SHIB | 06-16 03:00 | 06-16 10:00 | trailing_stop | 7 | -0.32 | +| TRX | 06-15 13:00 | 06-16 14:00 | stop_loss | 25 | -1.49 | +| TON | 06-16 14:00 | 06-16 20:00 | trailing_stop | 6 | +0.05 | +| FET | 06-16 22:00 | 06-16 23:00 | stop_loss | 1 | -1.49 | +| INJ | 06-16 22:00 | 06-16 23:00 | stop_loss | 1 | -1.49 | +| RENDER | 06-16 22:00 | 06-17 00:00 | stop_loss | 2 | -1.49 | +| TON | 06-16 22:00 | 06-17 01:00 | stop_loss | 3 | -1.49 | +| TON | 06-17 01:00 | 06-17 05:00 | stop_loss | 4 | -1.49 | +| KAS | 06-17 02:00 | 06-17 06:00 | stop_loss | 4 | -1.49 | +| NEAR | 06-16 22:00 | 06-17 07:00 | stop_loss | 9 | -1.49 | +| SHIB | 06-16 22:00 | 06-17 08:00 | stop_loss | 10 | -1.49 | +| INJ | 06-17 08:00 | 06-17 12:00 | stop_loss | 4 | -1.49 | +| NEAR | 06-17 10:00 | 06-17 12:00 | take_profit | 2 | +1.49 | +| RENDER | 06-17 10:00 | 06-17 12:00 | trailing_stop | 2 | -0.24 | +| ATOM | 06-17 08:00 | 06-17 14:00 | take_profit | 6 | +1.49 | +| OP | 06-17 10:00 | 06-17 14:00 | stop_loss | 4 | -1.49 | +| ATOM | 06-17 14:00 | 06-17 15:00 | trailing_stop | 1 | -0.65 | +| AVAX | 06-17 10:00 | 06-17 15:00 | take_profit | 5 | +1.49 | +| BONK | 06-17 10:00 | 06-17 15:00 | take_profit | 5 | +1.49 | +| LTC | 06-17 10:00 | 06-17 15:00 | trailing_stop | 5 | -0.50 | +| KAS | 06-17 09:00 | 06-17 18:00 | stop_loss | 9 | -1.49 | +| WIF | 06-17 16:00 | 06-17 18:00 | stop_loss | 2 | -1.49 | +| KAS | 06-17 18:00 | 06-17 19:00 | stop_loss | 1 | -1.49 | +| ARB | 06-17 19:00 | 06-17 20:00 | trailing_stop | 1 | -0.30 | +| PEPE | 06-17 19:00 | 06-17 20:00 | trailing_stop | 1 | -0.34 | +| RENDER | 06-17 19:00 | 06-17 20:00 | trailing_stop | 1 | -0.63 | +| ATOM | 06-17 19:00 | 06-17 21:00 | stop_loss | 2 | -1.49 | +| FET | 06-17 19:00 | 06-17 21:00 | stop_loss | 2 | -1.49 | +| AVAX | 06-17 19:00 | 06-17 22:00 | stop_loss | 3 | -1.49 | +| BONK | 06-17 19:00 | 06-17 22:00 | stop_loss | 3 | -1.49 | +| SUI | 06-17 19:00 | 06-17 22:00 | stop_loss | 3 | -1.49 | +| WIF | 06-17 19:00 | 06-17 22:00 | stop_loss | 3 | -1.49 | +| KAS | 06-17 19:00 | 06-17 23:00 | take_profit | 4 | +1.49 | +| ATOM | 06-17 21:00 | 06-18 02:00 | stop_loss | 5 | -1.49 | +| LTC | 06-17 19:00 | 06-18 04:00 | stop_loss | 9 | -1.49 | +| SUI | 06-18 04:00 | 06-18 05:00 | stop_loss | 1 | -1.49 | +| OP | 06-18 05:00 | 06-18 07:00 | take_profit | 2 | +1.49 | +| UNI | 06-18 06:00 | 06-18 07:00 | take_profit | 1 | +1.49 | +| FET | 06-18 08:00 | 06-18 11:00 | stop_loss | 3 | -1.49 | +| INJ | 06-18 05:00 | 06-18 11:00 | stop_loss | 6 | -1.49 | +| KAS | 06-18 03:00 | 06-18 12:00 | trailing_stop | 9 | -0.61 | +| ETC | 06-18 05:00 | 06-18 15:00 | stop_loss | 10 | -1.49 | +| SHIB | 06-18 13:00 | 06-18 15:00 | stop_loss | 2 | -1.49 | +| APT | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.11 | +| ARB | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.61 | +| AVAX | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.29 | +| BONK | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | +0.09 | +| ETC | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.43 | +| FET | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.66 | +| FIL | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.53 | +| KAS | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.40 | +| PEPE | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.63 | +| RENDER | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.36 | +| SEI | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.35 | +| SUI | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.53 | +| TIA | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.13 | +| TON | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.53 | +| UNI | 06-18 15:00 | 06-18 16:00 | stop_loss | 1 | -1.49 | +| WIF | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.22 | +| AVAX | 06-18 16:00 | 06-18 17:00 | stop_loss | 1 | -1.49 | +| FET | 06-18 16:00 | 06-18 17:00 | stop_loss | 1 | -1.49 | +| FIL | 06-18 16:00 | 06-18 17:00 | stop_loss | 1 | -1.49 | +| SUI | 06-18 16:00 | 06-18 17:00 | stop_loss | 1 | -1.49 | +| TIA | 06-18 16:00 | 06-18 17:00 | stop_loss | 1 | -1.49 | +| INJ | 06-18 15:00 | 06-18 19:00 | take_profit | 4 | +1.49 | +| UNI | 06-18 16:00 | 06-18 19:00 | trailing_stop | 3 | -0.13 | +| FET | 06-18 17:00 | 06-18 20:00 | take_profit | 3 | +1.49 | +| SHIB | 06-18 15:00 | 06-18 20:00 | take_profit | 5 | +1.49 | +| AVAX | 06-18 17:00 | 06-18 21:00 | trailing_stop | 4 | -0.68 | +| LTC | 06-18 15:00 | 06-19 01:00 | take_profit | 10 | +1.49 | +| AVAX | 06-19 00:00 | 06-19 02:00 | stop_loss | 2 | -1.49 | +| ATOM | 06-18 15:00 | 06-19 03:00 | trailing_stop | 12 | -0.10 | +| SHIB | 06-18 21:00 | 06-19 03:00 | trailing_stop | 6 | -0.66 | +| SUI | 06-18 22:00 | 06-19 03:00 | stop_loss | 5 | -1.49 | +| NEAR | 06-19 03:00 | 06-19 04:00 | stop_loss | 1 | -1.49 | +| OP | 06-19 03:00 | 06-19 04:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-19 04:00 | 06-19 05:00 | trailing_stop | 1 | -0.29 | +| OP | 06-19 04:00 | 06-19 08:00 | trailing_stop | 4 | -0.33 | +| SEI | 06-19 10:00 | 06-19 12:00 | trailing_stop | 2 | -0.64 | +| TIA | 06-19 10:00 | 06-19 12:00 | stop_loss | 2 | -1.49 | +| KAS | 06-19 11:00 | 06-19 13:00 | take_profit | 2 | +1.49 | +| INJ | 06-19 14:00 | 06-19 16:00 | trailing_stop | 2 | -0.51 | +| OP | 06-19 14:00 | 06-19 16:00 | stop_loss | 2 | -1.49 | +| AVAX | 06-19 12:00 | 06-19 17:00 | stop_loss | 5 | -1.49 | +| TON | 06-19 16:00 | 06-19 17:00 | trailing_stop | 1 | -0.69 | +| SUI | 06-19 14:00 | 06-19 19:00 | stop_loss | 5 | -1.49 | +| OP | 06-20 03:00 | 06-20 05:00 | take_profit | 2 | +1.49 | +| AVAX | 06-20 03:00 | 06-20 06:00 | stop_loss | 3 | -1.49 | +| KAS | 06-19 16:00 | 06-20 07:00 | take_profit | 15 | +1.49 | +| ATOM | 06-20 13:00 | 06-20 14:00 | trailing_stop | 1 | -0.64 | +| FET | 06-20 13:00 | 06-20 14:00 | take_profit | 1 | +1.49 | +| INJ | 06-20 13:00 | 06-20 14:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-20 13:00 | 06-20 14:00 | stop_loss | 1 | -1.49 | +| OP | 06-20 13:00 | 06-20 14:00 | stop_loss | 1 | -1.49 | +| UNI | 06-20 13:00 | 06-20 14:00 | stop_loss | 1 | -1.49 | +| TRX | 06-18 11:00 | 06-20 21:00 | take_profit | 58 | +1.49 | +| OP | 06-20 20:00 | 06-20 22:00 | take_profit | 2 | +1.49 | +| SEI | 06-20 20:00 | 06-20 22:00 | trailing_stop | 2 | -0.38 | +| WIF | 06-20 19:00 | 06-20 22:00 | trailing_stop | 3 | -0.35 | +| RENDER | 06-20 18:00 | 06-21 00:00 | stop_loss | 6 | -1.49 | +| SEI | 06-20 23:00 | 06-21 00:00 | trailing_stop | 1 | -0.38 | +| SUI | 06-20 17:00 | 06-21 05:00 | trailing_stop | 12 | -0.34 | +| KAS | 06-20 22:00 | 06-21 08:00 | stop_loss | 10 | -1.49 | +| RENDER | 06-21 00:00 | 06-21 08:00 | stop_loss | 8 | -1.49 | +| ETC | 06-21 03:00 | 06-21 11:00 | stop_loss | 8 | -1.49 | +| OP | 06-21 12:00 | 06-21 16:00 | stop_loss | 4 | -1.49 | +| ARB | 06-21 20:00 | 06-21 21:00 | stop_loss | 1 | -1.49 | +| AVAX | 06-21 20:00 | 06-21 21:00 | stop_loss | 1 | -1.49 | +| INJ | 06-21 17:00 | 06-21 21:00 | stop_loss | 4 | -1.49 | +| OP | 06-21 17:00 | 06-21 21:00 | stop_loss | 4 | -1.49 | +| SEI | 06-21 20:00 | 06-21 21:00 | stop_loss | 1 | -1.49 | +| FET | 06-21 21:00 | 06-21 22:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-21 20:00 | 06-21 22:00 | stop_loss | 2 | -1.49 | +| AVAX | 06-21 21:00 | 06-21 23:00 | stop_loss | 2 | -1.49 | +| BONK | 06-21 20:00 | 06-21 23:00 | stop_loss | 3 | -1.49 | +| FET | 06-21 22:00 | 06-21 23:00 | stop_loss | 1 | -1.49 | +| INJ | 06-21 21:00 | 06-21 23:00 | stop_loss | 2 | -1.49 | +| OP | 06-21 21:00 | 06-21 23:00 | stop_loss | 2 | -1.49 | +| APT | 06-21 23:00 | 06-22 00:00 | take_profit | 1 | +1.49 | +| ARB | 06-21 23:00 | 06-22 00:00 | trailing_stop | 1 | -0.01 | +| AVAX | 06-21 23:00 | 06-22 00:00 | trailing_stop | 1 | -0.26 | +| BONK | 06-21 23:00 | 06-22 00:00 | trailing_stop | 1 | -0.16 | +| FET | 06-21 23:00 | 06-22 00:00 | trailing_stop | 1 | -0.16 | +| FIL | 06-21 23:00 | 06-22 00:00 | take_profit | 1 | +1.49 | +| INJ | 06-21 23:00 | 06-22 00:00 | trailing_stop | 1 | +0.02 | +| OP | 06-21 23:00 | 06-22 00:00 | trailing_stop | 1 | -0.02 | +| PEPE | 06-21 23:00 | 06-22 00:00 | take_profit | 1 | +1.49 | +| SUI | 06-21 23:00 | 06-22 00:00 | trailing_stop | 1 | +0.02 | +| TON | 06-21 21:00 | 06-22 00:00 | stop_loss | 3 | -1.49 | +| KAS | 06-21 23:00 | 06-22 01:00 | take_profit | 2 | +1.49 | +| RENDER | 06-21 23:00 | 06-22 01:00 | take_profit | 2 | +1.49 | +| SHIB | 06-21 23:00 | 06-22 03:00 | trailing_stop | 4 | -0.42 | +| ATOM | 06-21 21:00 | 06-22 04:00 | take_profit | 7 | +1.49 | +| OP | 06-22 03:00 | 06-22 07:00 | take_profit | 4 | +1.49 | +| TON | 06-22 00:00 | 06-22 07:00 | take_profit | 7 | +1.49 | +| SHIB | 06-22 03:00 | 06-22 12:00 | take_profit | 9 | +1.49 | +| ETC | 06-21 23:00 | 06-22 13:00 | take_profit | 14 | +1.49 | +| LTC | 06-22 05:00 | 06-22 14:00 | trailing_stop | 9 | -0.10 | +| FIL | 06-22 19:00 | 06-22 22:00 | stop_loss | 3 | -1.49 | +| RENDER | 06-22 21:00 | 06-22 22:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-22 22:00 | 06-23 00:00 | stop_loss | 2 | -1.49 | +| RENDER | 06-22 22:00 | 06-23 00:00 | stop_loss | 2 | -1.49 | +| NEAR | 06-23 00:00 | 06-23 01:00 | stop_loss | 1 | -1.49 | +| SUI | 06-23 01:00 | 06-23 02:00 | trailing_stop | 1 | -0.67 | +| NEAR | 06-23 01:00 | 06-23 03:00 | trailing_stop | 2 | -0.68 | +| ARB | 06-22 22:00 | 06-23 04:00 | stop_loss | 6 | -1.49 | +| PEPE | 06-23 03:00 | 06-23 04:00 | stop_loss | 1 | -1.49 | +| WIF | 06-23 03:00 | 06-23 04:00 | stop_loss | 1 | -1.49 | +| ATOM | 06-23 01:00 | 06-23 05:00 | stop_loss | 4 | -1.49 | +| AVAX | 06-23 03:00 | 06-23 05:00 | stop_loss | 2 | -1.49 | +| INJ | 06-23 04:00 | 06-23 06:00 | stop_loss | 2 | -1.49 | +| OP | 06-22 22:00 | 06-23 06:00 | stop_loss | 8 | -1.49 | +| RENDER | 06-23 00:00 | 06-23 06:00 | stop_loss | 6 | -1.49 | +| WIF | 06-23 04:00 | 06-23 06:00 | stop_loss | 2 | -1.49 | +| FIL | 06-23 06:00 | 06-23 07:00 | stop_loss | 1 | -1.49 | +| UNI | 06-23 06:00 | 06-23 07:00 | stop_loss | 1 | -1.49 | +| APT | 06-23 06:00 | 06-23 08:00 | stop_loss | 2 | -1.49 | +| ARB | 06-23 06:00 | 06-23 08:00 | stop_loss | 2 | -1.49 | +| ATOM | 06-23 06:00 | 06-23 08:00 | stop_loss | 2 | -1.49 | +| BONK | 06-23 06:00 | 06-23 08:00 | stop_loss | 2 | -1.49 | +| FET | 06-23 06:00 | 06-23 08:00 | stop_loss | 2 | -1.49 | +| FIL | 06-23 07:00 | 06-23 08:00 | stop_loss | 1 | -1.49 | +| INJ | 06-23 06:00 | 06-23 08:00 | stop_loss | 2 | -1.49 | +| LTC | 06-23 07:00 | 06-23 08:00 | stop_loss | 1 | -1.49 | +| OP | 06-23 06:00 | 06-23 08:00 | stop_loss | 2 | -1.49 | +| PEPE | 06-23 06:00 | 06-23 08:00 | stop_loss | 2 | -1.49 | +| SHIB | 06-23 06:00 | 06-23 08:00 | stop_loss | 2 | -1.49 | +| SUI | 06-23 06:00 | 06-23 08:00 | stop_loss | 2 | -1.49 | +| UNI | 06-23 07:00 | 06-23 08:00 | stop_loss | 1 | -1.49 | +| AVAX | 06-23 08:00 | 06-23 09:00 | trailing_stop | 1 | -0.31 | +| TON | 06-23 08:00 | 06-23 09:00 | take_profit | 1 | +1.49 | +| SUI | 06-23 08:00 | 06-23 10:00 | take_profit | 2 | +1.49 | +| TIA | 06-23 08:00 | 06-23 10:00 | stop_loss | 2 | -1.49 | +| ARB | 06-23 08:00 | 06-23 11:00 | take_profit | 3 | +1.49 | +| FET | 06-23 08:00 | 06-23 11:00 | trailing_stop | 3 | -0.02 | +| OP | 06-23 08:00 | 06-23 11:00 | trailing_stop | 3 | +0.04 | +| PEPE | 06-23 08:00 | 06-23 11:00 | trailing_stop | 3 | -0.60 | +| TIA | 06-23 10:00 | 06-23 11:00 | stop_loss | 1 | -1.49 | +| TON | 06-23 10:00 | 06-23 11:00 | trailing_stop | 1 | -0.43 | +| UNI | 06-23 08:00 | 06-23 11:00 | take_profit | 3 | +1.49 | +| WIF | 06-23 08:00 | 06-23 11:00 | trailing_stop | 3 | -0.56 | +| SHIB | 06-23 08:00 | 06-23 12:00 | take_profit | 4 | +1.49 | +| APT | 06-23 08:00 | 06-23 13:00 | take_profit | 5 | +1.49 | +| ATOM | 06-23 08:00 | 06-23 13:00 | trailing_stop | 5 | -0.11 | +| FIL | 06-23 08:00 | 06-23 13:00 | take_profit | 5 | +1.49 | +| RENDER | 06-23 08:00 | 06-23 13:00 | take_profit | 5 | +1.49 | +| SEI | 06-23 08:00 | 06-23 13:00 | trailing_stop | 5 | -0.25 | +| BONK | 06-23 08:00 | 06-23 14:00 | take_profit | 6 | +1.49 | +| LTC | 06-23 08:00 | 06-23 14:00 | stop_loss | 6 | -1.49 | +| APT | 06-23 14:00 | 06-23 15:00 | stop_loss | 1 | -1.49 | +| ARB | 06-23 14:00 | 06-23 15:00 | stop_loss | 1 | -1.49 | +| LTC | 06-23 14:00 | 06-23 15:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-23 14:00 | 06-23 15:00 | stop_loss | 1 | -1.49 | +| FET | 06-23 14:00 | 06-23 17:00 | stop_loss | 3 | -1.49 | +| PEPE | 06-23 15:00 | 06-23 17:00 | stop_loss | 2 | -1.49 | +| TIA | 06-23 17:00 | 06-23 18:00 | trailing_stop | 1 | -0.39 | +| UNI | 06-23 14:00 | 06-23 18:00 | stop_loss | 4 | -1.49 | +| APT | 06-23 15:00 | 06-23 20:00 | take_profit | 5 | +1.49 | +| FIL | 06-23 15:00 | 06-23 20:00 | take_profit | 5 | +1.49 | +| FET | 06-23 17:00 | 06-23 22:00 | take_profit | 5 | +1.49 | +| RENDER | 06-23 15:00 | 06-24 00:00 | take_profit | 9 | +1.49 | +| TON | 06-23 19:00 | 06-24 00:00 | stop_loss | 5 | -1.49 | +| KAS | 06-23 22:00 | 06-24 01:00 | take_profit | 3 | +1.49 | +| SUI | 06-23 17:00 | 06-24 02:00 | trailing_stop | 9 | -0.34 | +| ARB | 06-23 15:00 | 06-24 03:00 | stop_loss | 12 | -1.49 | +| ATOM | 06-23 15:00 | 06-24 03:00 | stop_loss | 12 | -1.49 | +| LTC | 06-23 15:00 | 06-24 04:00 | stop_loss | 13 | -1.49 | +| NEAR | 06-24 02:00 | 06-24 04:00 | stop_loss | 2 | -1.49 | +| PEPE | 06-24 02:00 | 06-24 04:00 | stop_loss | 2 | -1.49 | +| ATOM | 06-24 08:00 | 06-24 09:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-24 09:00 | 06-24 10:00 | stop_loss | 1 | -1.49 | +| ATOM | 06-24 09:00 | 06-24 11:00 | stop_loss | 2 | -1.49 | +| INJ | 06-24 10:00 | 06-24 11:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-24 10:00 | 06-24 11:00 | trailing_stop | 1 | -0.57 | +| ATOM | 06-24 11:00 | 06-24 13:00 | stop_loss | 2 | -1.49 | +| FIL | 06-24 10:00 | 06-24 13:00 | stop_loss | 3 | -1.49 | +| INJ | 06-24 11:00 | 06-24 13:00 | stop_loss | 2 | -1.49 | +| SHIB | 06-23 16:00 | 06-24 13:00 | stop_loss | 21 | -1.49 | +| WIF | 06-24 10:00 | 06-24 13:00 | stop_loss | 3 | -1.49 | +| FET | 06-24 13:00 | 06-24 14:00 | trailing_stop | 1 | -0.48 | +| INJ | 06-24 13:00 | 06-24 14:00 | trailing_stop | 1 | -0.57 | +| UNI | 06-24 13:00 | 06-24 14:00 | trailing_stop | 1 | -0.69 | +| APT | 06-24 13:00 | 06-24 15:00 | stop_loss | 2 | -1.49 | +| ARB | 06-24 13:00 | 06-24 15:00 | stop_loss | 2 | -1.49 | +| AVAX | 06-24 13:00 | 06-24 15:00 | stop_loss | 2 | -1.49 | +| BONK | 06-24 13:00 | 06-24 15:00 | stop_loss | 2 | -1.49 | +| ETC | 06-24 13:00 | 06-24 15:00 | stop_loss | 2 | -1.49 | +| FIL | 06-24 13:00 | 06-24 15:00 | stop_loss | 2 | -1.49 | +| PEPE | 06-24 13:00 | 06-24 15:00 | stop_loss | 2 | -1.49 | +| SHIB | 06-24 13:00 | 06-24 15:00 | stop_loss | 2 | -1.49 | +| SUI | 06-24 13:00 | 06-24 15:00 | stop_loss | 2 | -1.49 | +| WIF | 06-24 13:00 | 06-24 15:00 | stop_loss | 2 | -1.49 | +| APT | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| ARB | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| AVAX | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| BONK | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| ETC | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| FET | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| FIL | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| INJ | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| KAS | 06-24 13:00 | 06-24 16:00 | stop_loss | 3 | -1.49 | +| LTC | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| OP | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| RENDER | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| SUI | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| TIA | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| TRX | 06-23 08:00 | 06-24 16:00 | stop_loss | 32 | -1.49 | +| UNI | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| WIF | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| APT | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| ARB | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| AVAX | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| BONK | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| ETC | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| FET | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| FIL | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| INJ | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| KAS | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| LTC | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| OP | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| RENDER | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| SEI | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| SUI | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| TIA | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| UNI | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| WIF | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| APT | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| AVAX | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| BONK | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| ETC | 06-24 17:00 | 06-24 18:00 | stop_loss | 1 | -1.49 | +| FET | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| FIL | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| INJ | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| KAS | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| NEAR | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| OP | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| PEPE | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| RENDER | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| SEI | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| SUI | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| TIA | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| UNI | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| WIF | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| ARB | 06-24 17:00 | 06-24 19:00 | trailing_stop | 2 | +0.19 | +| FIL | 06-24 18:00 | 06-24 19:00 | trailing_stop | 1 | -0.31 | +| ATOM | 06-24 16:00 | 06-24 20:00 | take_profit | 4 | +1.49 | +| AVAX | 06-24 18:00 | 06-24 20:00 | take_profit | 2 | +1.49 | +| BONK | 06-24 18:00 | 06-24 20:00 | take_profit | 2 | +1.49 | +| KAS | 06-24 18:00 | 06-24 20:00 | take_profit | 2 | +1.49 | +| LTC | 06-24 17:00 | 06-24 20:00 | take_profit | 3 | +1.49 | +| SHIB | 06-24 17:00 | 06-24 20:00 | take_profit | 3 | +1.49 | +| INJ | 06-24 21:00 | 06-24 22:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-24 22:00 | 06-25 00:00 | take_profit | 2 | +1.49 | +| INJ | 06-24 22:00 | 06-25 02:00 | stop_loss | 4 | -1.49 | +| PEPE | 06-24 22:00 | 06-25 10:00 | stop_loss | 12 | -1.49 | +| ATOM | 06-25 11:00 | 06-25 12:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-25 00:00 | 06-25 12:00 | stop_loss | 12 | -1.49 | +| ATOM | 06-25 12:00 | 06-25 13:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-25 11:00 | 06-25 13:00 | stop_loss | 2 | -1.49 | +| TRX | 06-24 16:00 | 06-25 13:00 | stop_loss | 21 | -1.49 | +| APT | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| ARB | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| ATOM | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| AVAX | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| BONK | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| ETC | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| FET | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| FIL | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| KAS | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| LTC | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| NEAR | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| OP | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| PEPE | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| RENDER | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| SHIB | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| SUI | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| TIA | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| TON | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| UNI | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| WIF | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| APT | 06-25 14:00 | 06-25 15:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-25 14:00 | 06-25 15:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-25 14:00 | 06-25 15:00 | stop_loss | 1 | -1.49 | +| APT | 06-25 15:00 | 06-25 17:00 | take_profit | 2 | +1.49 | +| AVAX | 06-25 15:00 | 06-25 17:00 | take_profit | 2 | +1.49 | +| PEPE | 06-25 16:00 | 06-25 17:00 | take_profit | 1 | +1.49 | +| WIF | 06-25 16:00 | 06-25 17:00 | trailing_stop | 1 | +0.05 | +| FET | 06-25 15:00 | 06-25 19:00 | stop_loss | 4 | -1.49 | +| FET | 06-25 22:00 | 06-25 23:00 | trailing_stop | 1 | -0.21 | +| APT | 06-25 22:00 | 06-26 01:00 | stop_loss | 3 | -1.49 | +| PEPE | 06-25 22:00 | 06-26 01:00 | stop_loss | 3 | -1.49 | +| PEPE | 06-26 01:00 | 06-26 02:00 | stop_loss | 1 | -1.49 | +| SEI | 06-26 02:00 | 06-26 03:00 | take_profit | 1 | +1.49 | +| TRX | 06-25 13:00 | 06-26 13:00 | stop_loss | 24 | -1.49 | +| SEI | 06-26 17:00 | 06-26 22:00 | take_profit | 5 | +1.49 | +| NEAR | 06-26 21:00 | 06-27 02:00 | take_profit | 5 | +1.49 | +| UNI | 06-27 07:00 | 06-27 09:00 | stop_loss | 2 | -1.49 | +| OP | 06-27 10:00 | 06-27 15:00 | stop_loss | 5 | -1.49 | +| UNI | 06-27 09:00 | 06-27 15:00 | take_profit | 6 | +1.49 | +| FET | 06-27 16:00 | 06-27 17:00 | stop_loss | 1 | -1.49 | +| KAS | 06-27 05:00 | 06-27 18:00 | take_profit | 13 | +1.49 | +| APT | 06-27 17:00 | 06-27 19:00 | stop_loss | 2 | -1.49 | +| FET | 06-27 17:00 | 06-27 19:00 | stop_loss | 2 | -1.49 | +| OP | 06-27 17:00 | 06-27 19:00 | stop_loss | 2 | -1.49 | +| RENDER | 06-27 18:00 | 06-27 19:00 | stop_loss | 1 | -1.49 | +| SEI | 06-27 17:00 | 06-27 19:00 | stop_loss | 2 | -1.49 | +| ETC | 06-27 17:00 | 06-27 21:00 | stop_loss | 4 | -1.49 | +| APT | 06-27 19:00 | 06-27 22:00 | stop_loss | 3 | -1.49 | +| AVAX | 06-27 19:00 | 06-27 22:00 | stop_loss | 3 | -1.49 | +| FIL | 06-27 19:00 | 06-27 22:00 | stop_loss | 3 | -1.49 | +| INJ | 06-27 19:00 | 06-27 22:00 | stop_loss | 3 | -1.49 | +| RENDER | 06-27 19:00 | 06-27 22:00 | stop_loss | 3 | -1.49 | +| SEI | 06-27 19:00 | 06-27 22:00 | trailing_stop | 3 | -0.66 | +| SUI | 06-27 19:00 | 06-27 22:00 | stop_loss | 3 | -1.49 | +| INJ | 06-27 22:00 | 06-27 23:00 | stop_loss | 1 | -1.49 | +| ARB | 06-27 21:00 | 06-28 03:00 | confirmed_bearish_exit | 6 | +0.04 | +| INJ | 06-27 23:00 | 06-28 04:00 | take_profit | 5 | +1.49 | +| OP | 06-27 19:00 | 06-28 04:00 | take_profit | 9 | +1.49 | +| ATOM | 06-27 19:00 | 06-28 05:00 | stop_loss | 10 | -1.49 | +| FET | 06-27 19:00 | 06-28 05:00 | stop_loss | 10 | -1.49 | +| RENDER | 06-27 23:00 | 06-28 05:00 | stop_loss | 6 | -1.49 | +| APT | 06-28 05:00 | 06-28 06:00 | stop_loss | 1 | -1.49 | +| ARB | 06-28 04:00 | 06-28 06:00 | stop_loss | 2 | -1.49 | +| BONK | 06-27 19:00 | 06-28 06:00 | stop_loss | 11 | -1.49 | +| INJ | 06-28 05:00 | 06-28 06:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-27 21:00 | 06-28 06:00 | stop_loss | 9 | -1.49 | +| WIF | 06-28 05:00 | 06-28 06:00 | stop_loss | 1 | -1.49 | +| WIF | 06-28 06:00 | 06-28 07:00 | take_profit | 1 | +1.49 | +| NEAR | 06-28 06:00 | 06-28 08:00 | take_profit | 2 | +1.49 | +| ETC | 06-27 21:00 | 06-28 09:00 | stop_loss | 12 | -1.49 | +| FIL | 06-27 23:00 | 06-28 09:00 | trailing_stop | 10 | -0.48 | +| LTC | 06-28 05:00 | 06-28 09:00 | take_profit | 4 | +1.49 | +| OP | 06-28 05:00 | 06-28 09:00 | stop_loss | 4 | -1.49 | +| APT | 06-28 06:00 | 06-28 10:00 | trailing_stop | 4 | -0.34 | +| KAS | 06-28 08:00 | 06-28 10:00 | stop_loss | 2 | -1.49 | +| SEI | 06-28 05:00 | 06-28 13:00 | stop_loss | 8 | -1.49 | +| SUI | 06-28 08:00 | 06-28 16:00 | stop_loss | 8 | -1.49 | +| SEI | 06-28 16:00 | 06-28 20:00 | trailing_stop | 4 | +0.02 | +| NEAR | 06-28 17:00 | 06-28 21:00 | trailing_stop | 4 | -0.40 | +| APT | 06-28 22:00 | 06-28 23:00 | trailing_stop | 1 | -0.65 | +| ARB | 06-28 22:00 | 06-28 23:00 | take_profit | 1 | +1.49 | +| PEPE | 06-28 22:00 | 06-28 23:00 | trailing_stop | 1 | -0.43 | +| SHIB | 06-28 22:00 | 06-28 23:00 | trailing_stop | 1 | -0.50 | +| SUI | 06-28 22:00 | 06-28 23:00 | trailing_stop | 1 | -0.55 | +| KAS | 06-28 21:00 | 06-29 00:00 | take_profit | 3 | +1.49 | +| LTC | 06-28 22:00 | 06-29 00:00 | take_profit | 2 | +1.49 | +| ATOM | 06-28 21:00 | 06-29 02:00 | trailing_stop | 5 | -0.31 | +| FIL | 06-28 21:00 | 06-29 02:00 | trailing_stop | 5 | -0.45 | +| INJ | 06-29 01:00 | 06-29 02:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-29 04:00 | 06-29 08:00 | stop_loss | 4 | -1.49 | +| ETC | 06-28 13:00 | 06-29 15:00 | stop_loss | 26 | -1.49 | +| ATOM | 06-29 13:00 | 06-29 16:00 | stop_loss | 3 | -1.49 | +| FET | 06-29 16:00 | 06-29 17:00 | take_profit | 1 | +1.49 | +| ATOM | 06-29 16:00 | 06-29 19:00 | take_profit | 3 | +1.49 | +| TRX | 06-26 13:00 | 06-30 00:00 | trailing_stop | 83 | -0.37 | +| UNI | 06-29 23:00 | 06-30 00:00 | stop_loss | 1 | -1.49 | +| WIF | 06-30 00:00 | 06-30 02:00 | stop_loss | 2 | -1.49 | +| TIA | 06-30 04:00 | 06-30 05:00 | stop_loss | 1 | -1.49 | +| APT | 06-30 00:00 | 06-30 08:00 | stop_loss | 8 | -1.49 | +| ARB | 06-30 07:00 | 06-30 08:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-30 07:00 | 06-30 08:00 | stop_loss | 1 | -1.49 | +| OP | 06-30 01:00 | 06-30 08:00 | stop_loss | 7 | -1.49 | +| TIA | 06-30 05:00 | 06-30 08:00 | stop_loss | 3 | -1.49 | +| UNI | 06-30 00:00 | 06-30 08:00 | stop_loss | 8 | -1.49 | +| WIF | 06-30 07:00 | 06-30 08:00 | stop_loss | 1 | -1.49 | +| TIA | 06-30 08:00 | 06-30 09:00 | stop_loss | 1 | -1.49 | +| FIL | 06-30 07:00 | 06-30 10:00 | take_profit | 3 | +1.49 | +| TIA | 06-30 09:00 | 06-30 10:00 | stop_loss | 1 | -1.49 | +| BONK | 06-30 07:00 | 06-30 11:00 | stop_loss | 4 | -1.49 | +| OP | 06-30 08:00 | 06-30 11:00 | stop_loss | 3 | -1.49 | +| TIA | 06-30 10:00 | 06-30 11:00 | stop_loss | 1 | -1.49 | +| ARB | 06-30 08:00 | 06-30 12:00 | stop_loss | 4 | -1.49 | +| AVAX | 06-30 07:00 | 06-30 12:00 | stop_loss | 5 | -1.49 | +| BONK | 06-30 11:00 | 06-30 12:00 | stop_loss | 1 | -1.49 | +| ETC | 06-30 07:00 | 06-30 12:00 | stop_loss | 5 | -1.49 | +| FIL | 06-30 11:00 | 06-30 12:00 | stop_loss | 1 | -1.49 | +| INJ | 06-30 11:00 | 06-30 12:00 | stop_loss | 1 | -1.49 | +| LTC | 06-30 08:00 | 06-30 12:00 | stop_loss | 4 | -1.49 | +| RENDER | 06-30 11:00 | 06-30 12:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-30 09:00 | 06-30 12:00 | stop_loss | 3 | -1.49 | +| TIA | 06-30 11:00 | 06-30 12:00 | stop_loss | 1 | -1.49 | +| APT | 06-30 12:00 | 06-30 13:00 | take_profit | 1 | +1.49 | +| ARB | 06-30 12:00 | 06-30 13:00 | take_profit | 1 | +1.49 | +| AVAX | 06-30 12:00 | 06-30 13:00 | trailing_stop | 1 | -0.49 | +| BONK | 06-30 12:00 | 06-30 13:00 | trailing_stop | 1 | -0.24 | +| FIL | 06-30 12:00 | 06-30 13:00 | trailing_stop | 1 | -0.30 | +| INJ | 06-30 12:00 | 06-30 13:00 | trailing_stop | 1 | -0.44 | +| NEAR | 06-30 12:00 | 06-30 13:00 | trailing_stop | 1 | -0.70 | +| PEPE | 06-30 12:00 | 06-30 13:00 | trailing_stop | 1 | -0.41 | +| RENDER | 06-30 12:00 | 06-30 13:00 | trailing_stop | 1 | -0.24 | +| SUI | 06-30 12:00 | 06-30 13:00 | trailing_stop | 1 | -0.29 | +| TIA | 06-30 12:00 | 06-30 13:00 | trailing_stop | 1 | -0.35 | +| TRX | 06-30 00:00 | 06-30 13:00 | stop_loss | 13 | -1.49 | +| WIF | 06-30 12:00 | 06-30 13:00 | trailing_stop | 1 | -0.28 | +| SEI | 06-30 12:00 | 06-30 15:00 | trailing_stop | 3 | -0.59 | +| NEAR | 06-30 13:00 | 06-30 16:00 | stop_loss | 3 | -1.49 | +| TIA | 06-30 13:00 | 06-30 16:00 | stop_loss | 3 | -1.49 | +| SHIB | 06-30 12:00 | 06-30 18:00 | take_profit | 6 | +1.49 | +| ETC | 06-30 12:00 | 06-30 21:00 | trailing_stop | 9 | -0.55 | +| KAS | 06-30 19:00 | 06-30 21:00 | stop_loss | 2 | -1.49 | +| BONK | 06-30 20:00 | 07-01 01:00 | stop_loss | 5 | -1.49 | +| LTC | 06-30 12:00 | 07-01 01:00 | stop_loss | 13 | -1.49 | +| NEAR | 06-30 21:00 | 07-01 01:00 | stop_loss | 4 | -1.49 | +| OP | 06-30 20:00 | 07-01 01:00 | stop_loss | 5 | -1.49 | +| UNI | 06-30 12:00 | 07-01 01:00 | trailing_stop | 13 | -0.45 | +| WIF | 07-01 01:00 | 07-01 02:00 | trailing_stop | 1 | -0.35 | +| SEI | 07-01 06:00 | 07-01 08:00 | trailing_stop | 2 | -0.60 | +| PEPE | 07-01 06:00 | 07-01 09:00 | confirmed_bearish_exit | 3 | +0.38 | +| ETC | 07-01 06:00 | 07-01 13:00 | stop_loss | 7 | -1.49 | +| LTC | 07-01 12:00 | 07-01 13:00 | trailing_stop | 1 | -0.29 | +| INJ | 07-01 23:00 | 07-02 00:00 | stop_loss | 1 | -1.49 | +| INJ | 07-02 00:00 | 07-02 02:00 | trailing_stop | 2 | -0.36 | +| TIA | 07-01 23:00 | 07-02 03:00 | take_profit | 4 | +1.49 | +| INJ | 07-02 10:00 | 07-02 13:00 | take_profit | 3 | +1.49 | +| WIF | 07-03 00:00 | 07-03 01:00 | take_profit | 1 | +1.49 | +| WIF | 07-03 01:00 | 07-03 02:00 | stop_loss | 1 | -1.49 | +| TIA | 07-03 03:00 | 07-03 05:00 | stop_loss | 2 | -1.49 | +| ETC | 07-03 03:00 | 07-03 10:00 | take_profit | 7 | +1.49 | +| WIF | 07-03 03:00 | 07-03 10:00 | take_profit | 7 | +1.49 | +| LTC | 07-03 08:00 | 07-03 18:00 | take_profit | 10 | +1.49 | +| TRX | 06-30 16:00 | 07-03 20:00 | take_profit | 76 | +1.49 | +| INJ | 07-04 01:00 | 07-04 03:00 | take_profit | 2 | +1.49 | +| NEAR | 07-04 03:00 | 07-04 04:00 | stop_loss | 1 | -1.49 | +| NEAR | 07-04 04:00 | 07-04 05:00 | stop_loss | 1 | -1.49 | +| INJ | 07-04 07:00 | 07-04 09:00 | stop_loss | 2 | -1.49 | +| ETC | 07-04 01:00 | 07-04 10:00 | take_profit | 9 | +1.49 | +| FET | 07-04 06:00 | 07-04 12:00 | take_profit | 6 | +1.49 | +| FET | 07-04 12:00 | 07-04 14:00 | stop_loss | 2 | -1.49 | +| APT | 07-04 11:00 | 07-04 15:00 | take_profit | 4 | +1.49 | +| ARB | 07-04 10:00 | 07-04 15:00 | take_profit | 5 | +1.49 | +| AVAX | 07-04 10:00 | 07-04 15:00 | take_profit | 5 | +1.49 | +| LTC | 07-04 10:00 | 07-04 15:00 | take_profit | 5 | +1.49 | +| SEI | 07-04 09:00 | 07-04 15:00 | take_profit | 6 | +1.49 | +| SHIB | 07-04 11:00 | 07-04 15:00 | take_profit | 4 | +1.49 | +| SUI | 07-04 09:00 | 07-04 15:00 | take_profit | 6 | +1.49 | +| TIA | 07-04 08:00 | 07-04 15:00 | take_profit | 7 | +1.49 | +| UNI | 07-04 02:00 | 07-04 15:00 | take_profit | 13 | +1.49 | +| RENDER | 07-04 09:00 | 07-04 16:00 | take_profit | 7 | +1.49 | +| FET | 07-04 14:00 | 07-04 17:00 | trailing_stop | 3 | -0.68 | +| ATOM | 07-04 07:00 | 07-04 23:00 | trailing_stop | 16 | -0.33 | +| FET | 07-05 00:00 | 07-05 02:00 | stop_loss | 2 | -1.49 | +| ATOM | 07-05 01:00 | 07-05 04:00 | stop_loss | 3 | -1.49 | +| ETC | 07-05 02:00 | 07-05 05:00 | stop_loss | 3 | -1.49 | +| NEAR | 07-05 04:00 | 07-05 05:00 | stop_loss | 1 | -1.49 | +| FIL | 07-05 02:00 | 07-05 07:00 | confirmed_bearish_exit | 5 | +0.01 | +| ATOM | 07-05 04:00 | 07-05 09:00 | stop_loss | 5 | -1.49 | +| OP | 07-05 05:00 | 07-05 09:00 | stop_loss | 4 | -1.49 | +| RENDER | 07-05 07:00 | 07-05 09:00 | stop_loss | 2 | -1.49 | +| SEI | 07-05 05:00 | 07-05 09:00 | stop_loss | 4 | -1.49 | +| TIA | 07-05 08:00 | 07-05 09:00 | stop_loss | 1 | -1.49 | +| FET | 07-05 02:00 | 07-05 10:00 | stop_loss | 8 | -1.49 | +| INJ | 07-05 05:00 | 07-05 10:00 | stop_loss | 5 | -1.49 | +| TIA | 07-05 09:00 | 07-05 10:00 | stop_loss | 1 | -1.49 | +| SEI | 07-05 09:00 | 07-05 13:00 | confirmed_bearish_exit | 4 | +0.80 | +| LTC | 07-05 05:00 | 07-05 14:00 | take_profit | 9 | +1.49 | +| AVAX | 07-05 05:00 | 07-05 15:00 | take_profit | 10 | +1.49 | +| SUI | 07-05 01:00 | 07-05 15:00 | take_profit | 14 | +1.49 | +| KAS | 07-05 13:00 | 07-05 16:00 | stop_loss | 3 | -1.49 | +| OP | 07-05 09:00 | 07-05 16:00 | take_profit | 7 | +1.49 | +| APT | 07-05 02:00 | 07-05 17:00 | take_profit | 15 | +1.49 | +| SEI | 07-05 14:00 | 07-05 18:00 | take_profit | 4 | +1.49 | +| RENDER | 07-05 09:00 | 07-05 19:00 | take_profit | 10 | +1.49 | +| ARB | 07-05 12:00 | 07-05 21:00 | take_profit | 9 | +1.49 | +| SHIB | 07-05 05:00 | 07-05 21:00 | take_profit | 16 | +1.49 | +| ETC | 07-05 05:00 | 07-05 22:00 | take_profit | 17 | +1.49 | +| UNI | 07-05 11:00 | 07-05 22:00 | take_profit | 11 | +1.49 | +| KAS | 07-06 02:00 | 07-06 04:00 | stop_loss | 2 | -1.49 | +| SUI | 07-06 04:00 | 07-06 05:00 | stop_loss | 1 | -1.49 | +| OP | 07-06 07:00 | 07-06 09:00 | stop_loss | 2 | -1.49 | +| LTC | 07-06 08:00 | 07-06 11:00 | stop_loss | 3 | -1.49 | +| ARB | 07-06 11:00 | 07-06 12:00 | stop_loss | 1 | -1.49 | +| AVAX | 07-06 09:00 | 07-06 12:00 | stop_loss | 3 | -1.49 | +| BONK | 07-06 09:00 | 07-06 12:00 | stop_loss | 3 | -1.49 | +| KAS | 07-06 04:00 | 07-06 12:00 | stop_loss | 8 | -1.49 | +| OP | 07-06 09:00 | 07-06 12:00 | stop_loss | 3 | -1.49 | +| PEPE | 07-06 11:00 | 07-06 12:00 | stop_loss | 1 | -1.49 | +| RENDER | 07-06 11:00 | 07-06 12:00 | stop_loss | 1 | -1.49 | +| SEI | 07-06 11:00 | 07-06 12:00 | stop_loss | 1 | -1.49 | +| SHIB | 07-06 11:00 | 07-06 12:00 | stop_loss | 1 | -1.49 | +| SUI | 07-06 05:00 | 07-06 12:00 | stop_loss | 7 | -1.49 | +| TIA | 07-06 08:00 | 07-06 12:00 | stop_loss | 4 | -1.49 | +| WIF | 07-06 11:00 | 07-06 12:00 | stop_loss | 1 | -1.49 | +| ARB | 07-06 12:00 | 07-06 13:00 | trailing_stop | 1 | -0.67 | +| ATOM | 07-06 12:00 | 07-06 13:00 | trailing_stop | 1 | -0.49 | +| BONK | 07-06 12:00 | 07-06 13:00 | take_profit | 1 | +1.49 | +| NEAR | 07-06 12:00 | 07-06 13:00 | stop_loss | 1 | -1.49 | +| PEPE | 07-06 12:00 | 07-06 13:00 | stop_loss | 1 | -1.49 | +| RENDER | 07-06 12:00 | 07-06 13:00 | stop_loss | 1 | -1.49 | +| TIA | 07-06 12:00 | 07-06 13:00 | stop_loss | 1 | -1.49 | +| WIF | 07-06 12:00 | 07-06 13:00 | stop_loss | 1 | -1.49 | +| APT | 07-06 12:00 | 07-06 14:00 | take_profit | 2 | +1.49 | +| AVAX | 07-06 12:00 | 07-06 15:00 | take_profit | 3 | +1.49 | +| FIL | 07-06 12:00 | 07-06 15:00 | take_profit | 3 | +1.49 | +| LTC | 07-06 12:00 | 07-06 15:00 | take_profit | 3 | +1.49 | +| OP | 07-06 12:00 | 07-06 15:00 | take_profit | 3 | +1.49 | +| RENDER | 07-06 13:00 | 07-06 15:00 | take_profit | 2 | +1.49 | +| SHIB | 07-06 12:00 | 07-06 15:00 | take_profit | 3 | +1.49 | +| SUI | 07-06 12:00 | 07-06 15:00 | take_profit | 3 | +1.49 | +| BONK | 07-06 17:00 | 07-06 18:00 | stop_loss | 1 | -1.49 | +| BONK | 07-06 18:00 | 07-06 21:00 | take_profit | 3 | +1.49 | +| TIA | 07-06 17:00 | 07-06 21:00 | take_profit | 4 | +1.49 | +| KAS | 07-06 14:00 | 07-07 03:00 | stop_loss | 13 | -1.49 | +| TRX | 07-05 02:00 | 07-07 05:00 | take_profit | 51 | +1.49 | +| NEAR | 07-07 05:00 | 07-07 11:00 | trailing_stop | 6 | -0.42 | +| ARB | 07-07 11:00 | 07-07 13:00 | stop_loss | 2 | -1.49 | +| ETC | 07-07 02:00 | 07-07 13:00 | stop_loss | 11 | -1.49 | +| FIL | 07-07 11:00 | 07-07 13:00 | stop_loss | 2 | -1.49 | +| PEPE | 07-07 11:00 | 07-07 13:00 | stop_loss | 2 | -1.49 | +| ARB | 07-07 13:00 | 07-07 14:00 | stop_loss | 1 | -1.49 | +| AVAX | 07-07 05:00 | 07-07 14:00 | stop_loss | 9 | -1.49 | +| FIL | 07-07 13:00 | 07-07 14:00 | trailing_stop | 1 | -0.56 | +| KAS | 07-07 07:00 | 07-07 14:00 | trailing_stop | 7 | -0.53 | +| NEAR | 07-07 12:00 | 07-07 14:00 | stop_loss | 2 | -1.49 | +| SUI | 07-07 11:00 | 07-07 14:00 | stop_loss | 3 | -1.49 | +| WIF | 07-07 11:00 | 07-07 14:00 | stop_loss | 3 | -1.49 | +| LTC | 07-07 05:00 | 07-07 15:00 | trailing_stop | 10 | -0.33 | +| ATOM | 07-07 11:00 | 07-07 21:00 | stop_loss | 10 | -1.49 | +| SEI | 07-07 18:00 | 07-07 21:00 | stop_loss | 3 | -1.49 | +| FET | 07-07 20:00 | 07-07 22:00 | stop_loss | 2 | -1.49 | +| OP | 07-07 21:00 | 07-08 01:00 | stop_loss | 4 | -1.49 | +| RENDER | 07-07 21:00 | 07-08 01:00 | stop_loss | 4 | -1.49 | +| SEI | 07-07 21:00 | 07-08 01:00 | stop_loss | 4 | -1.49 | +| APT | 07-08 01:00 | 07-08 02:00 | stop_loss | 1 | -1.49 | +| ARB | 07-08 01:00 | 07-08 02:00 | stop_loss | 1 | -1.49 | +| AVAX | 07-08 01:00 | 07-08 02:00 | stop_loss | 1 | -1.49 | +| BONK | 07-08 01:00 | 07-08 02:00 | stop_loss | 1 | -1.49 | +| FET | 07-08 01:00 | 07-08 02:00 | stop_loss | 1 | -1.49 | +| NEAR | 07-08 01:00 | 07-08 02:00 | stop_loss | 1 | -1.49 | +| OP | 07-08 01:00 | 07-08 02:00 | stop_loss | 1 | -1.49 | +| RENDER | 07-08 01:00 | 07-08 02:00 | stop_loss | 1 | -1.49 | +| SEI | 07-08 01:00 | 07-08 02:00 | stop_loss | 1 | -1.49 | +| WIF | 07-08 01:00 | 07-08 02:00 | stop_loss | 1 | -1.49 | +| ARB | 07-08 02:00 | 07-08 05:00 | trailing_stop | 3 | +0.12 | +| NEAR | 07-08 02:00 | 07-08 06:00 | stop_loss | 4 | -1.49 | +| OP | 07-08 02:00 | 07-08 06:00 | stop_loss | 4 | -1.49 | +| WIF | 07-08 02:00 | 07-08 06:00 | stop_loss | 4 | -1.49 | +| APT | 07-08 02:00 | 07-08 07:00 | take_profit | 5 | +1.49 | +| BONK | 07-08 02:00 | 07-08 07:00 | stop_loss | 5 | -1.49 | +| AVAX | 07-08 02:00 | 07-08 08:00 | stop_loss | 6 | -1.49 | +| RENDER | 07-08 02:00 | 07-08 08:00 | stop_loss | 6 | -1.49 | +| SEI | 07-08 02:00 | 07-08 08:00 | stop_loss | 6 | -1.49 | +| SHIB | 07-08 03:00 | 07-08 08:00 | stop_loss | 5 | -1.49 | +| SUI | 07-08 02:00 | 07-08 08:00 | stop_loss | 6 | -1.49 | +| ATOM | 07-08 08:00 | 07-08 09:00 | stop_loss | 1 | -1.49 | +| FET | 07-08 08:00 | 07-08 09:00 | stop_loss | 1 | -1.49 | +| SHIB | 07-08 08:00 | 07-08 09:00 | stop_loss | 1 | -1.49 | +| ATOM | 07-08 09:00 | 07-08 11:00 | trailing_stop | 2 | -0.15 | +| OP | 07-08 08:00 | 07-08 11:00 | trailing_stop | 3 | -0.28 | +| APT | 07-08 09:00 | 07-08 12:00 | stop_loss | 3 | -1.49 | +| AVAX | 07-08 11:00 | 07-08 13:00 | stop_loss | 2 | -1.49 | +| FIL | 07-08 08:00 | 07-08 13:00 | trailing_stop | 5 | -0.25 | +| INJ | 07-08 12:00 | 07-08 13:00 | trailing_stop | 1 | -0.49 | +| AVAX | 07-08 13:00 | 07-08 14:00 | stop_loss | 1 | -1.49 | +| OP | 07-08 13:00 | 07-08 14:00 | stop_loss | 1 | -1.49 | +| SHIB | 07-08 09:00 | 07-08 14:00 | trailing_stop | 5 | -0.04 | +| FET | 07-08 09:00 | 07-08 15:00 | stop_loss | 6 | -1.49 | +| ARB | 07-08 20:00 | 07-09 01:00 | take_profit | 5 | +1.49 | +| AVAX | 07-08 14:00 | 07-09 01:00 | take_profit | 11 | +1.49 | +| OP | 07-09 22:00 | 07-10 00:00 | stop_loss | 2 | -1.49 | +| APT | 07-09 20:00 | 07-10 01:00 | take_profit | 5 | +1.49 | +| BONK | 07-09 23:00 | 07-10 01:00 | take_profit | 2 | +1.49 | +| OP | 07-10 00:00 | 07-10 01:00 | take_profit | 1 | +1.49 | +| WIF | 07-10 00:00 | 07-10 01:00 | take_profit | 1 | +1.49 | +| ATOM | 07-09 15:00 | 07-10 09:00 | take_profit | 18 | +1.49 | +| INJ | 07-10 06:00 | 07-10 10:00 | take_profit | 4 | +1.49 | +| WIF | 07-10 14:00 | 07-10 15:00 | stop_loss | 1 | -1.49 | +| WIF | 07-10 15:00 | 07-10 16:00 | trailing_stop | 1 | -0.34 | +| WIF | 07-10 16:00 | 07-10 17:00 | stop_loss | 1 | -1.49 | +| NEAR | 07-10 14:00 | 07-10 18:00 | stop_loss | 4 | -1.49 | +| TIA | 07-10 17:00 | 07-10 18:00 | stop_loss | 1 | -1.49 | +| NEAR | 07-10 18:00 | 07-11 00:00 | take_profit | 6 | +1.49 | +| TIA | 07-10 18:00 | 07-11 01:00 | take_profit | 7 | +1.49 | +| ARB | 07-11 00:00 | 07-11 02:00 | trailing_stop | 2 | -0.08 | +| WIF | 07-10 17:00 | 07-11 04:00 | trailing_stop | 11 | -0.60 | +| TIA | 07-11 01:00 | 07-11 05:00 | trailing_stop | 4 | -0.38 | +| NEAR | 07-11 00:00 | 07-11 08:00 | stop_loss | 8 | -1.49 | +| UNI | 07-11 01:00 | 07-11 10:00 | take_profit | 9 | +1.49 | +| SEI | 07-11 09:00 | 07-11 20:00 | take_profit | 11 | +1.49 | +| AVAX | 07-11 22:00 | 07-11 23:00 | stop_loss | 1 | -1.49 | +| FIL | 07-11 22:00 | 07-11 23:00 | stop_loss | 1 | -1.49 | +| INJ | 07-11 22:00 | 07-11 23:00 | stop_loss | 1 | -1.49 | +| RENDER | 07-11 22:00 | 07-11 23:00 | stop_loss | 1 | -1.49 | +| SHIB | 07-11 22:00 | 07-11 23:00 | stop_loss | 1 | -1.49 | +| AVAX | 07-11 23:00 | 07-12 00:00 | stop_loss | 1 | -1.49 | +| BONK | 07-11 23:00 | 07-12 00:00 | stop_loss | 1 | -1.49 | +| ETC | 07-11 22:00 | 07-12 00:00 | stop_loss | 2 | -1.49 | +| INJ | 07-11 23:00 | 07-12 00:00 | stop_loss | 1 | -1.49 | +| OP | 07-11 23:00 | 07-12 00:00 | stop_loss | 1 | -1.49 | +| PEPE | 07-11 23:00 | 07-12 00:00 | stop_loss | 1 | -1.49 | +| RENDER | 07-11 23:00 | 07-12 00:00 | stop_loss | 1 | -1.49 | +| SUI | 07-11 23:00 | 07-12 00:00 | stop_loss | 1 | -1.49 | +| WIF | 07-11 23:00 | 07-12 00:00 | stop_loss | 1 | -1.49 | +| FET | 07-11 23:00 | 07-12 01:00 | trailing_stop | 2 | -0.58 | +| FIL | 07-11 23:00 | 07-12 01:00 | trailing_stop | 2 | -0.42 | +| PEPE | 07-12 00:00 | 07-12 01:00 | trailing_stop | 1 | -0.23 | +| TIA | 07-12 00:00 | 07-12 01:00 | trailing_stop | 1 | -0.13 | +| AVAX | 07-12 00:00 | 07-12 04:00 | trailing_stop | 4 | -0.58 | +| BONK | 07-12 00:00 | 07-12 05:00 | confirmed_bearish_exit | 5 | +0.50 | +| KAS | 07-12 00:00 | 07-12 05:00 | stop_loss | 5 | -1.49 | +| APT | 07-12 04:00 | 07-12 06:00 | stop_loss | 2 | -1.49 | +| AVAX | 07-12 04:00 | 07-12 06:00 | stop_loss | 2 | -1.49 | +| INJ | 07-12 00:00 | 07-12 06:00 | trailing_stop | 6 | -0.00 | +| NEAR | 07-11 23:00 | 07-12 06:00 | trailing_stop | 7 | -0.54 | +| OP | 07-12 00:00 | 07-12 06:00 | trailing_stop | 6 | -0.13 | +| SEI | 07-11 23:00 | 07-12 06:00 | trailing_stop | 7 | -0.59 | +| UNI | 07-12 05:00 | 07-12 06:00 | stop_loss | 1 | -1.49 | +| ATOM | 07-11 23:00 | 07-12 07:00 | stop_loss | 8 | -1.49 | +| SUI | 07-12 00:00 | 07-12 07:00 | take_profit | 7 | +1.49 | +| KAS | 07-12 05:00 | 07-12 10:00 | stop_loss | 5 | -1.49 | +| AVAX | 07-12 06:00 | 07-12 14:00 | take_profit | 8 | +1.49 | +| OP | 07-12 11:00 | 07-12 21:00 | stop_loss | 10 | -1.49 | +| SHIB | 07-11 23:00 | 07-12 21:00 | stop_loss | 22 | -1.49 | +| APT | 07-12 16:00 | 07-12 22:00 | stop_loss | 6 | -1.49 | +| BONK | 07-12 07:00 | 07-12 22:00 | stop_loss | 15 | -1.49 | +| ETC | 07-12 00:00 | 07-12 22:00 | trailing_stop | 22 | -0.40 | +| LTC | 07-11 23:00 | 07-12 22:00 | stop_loss | 23 | -1.49 | +| RENDER | 07-12 00:00 | 07-12 22:00 | trailing_stop | 22 | -0.22 | +| SEI | 07-12 07:00 | 07-12 22:00 | stop_loss | 15 | -1.49 | +| KAS | 07-12 16:00 | 07-12 23:00 | stop_loss | 7 | -1.49 | +| BONK | 07-12 23:00 | 07-13 00:00 | take_profit | 1 | +1.49 | +| KAS | 07-12 23:00 | 07-13 00:00 | trailing_stop | 1 | -0.66 | +| RENDER | 07-12 22:00 | 07-13 00:00 | stop_loss | 2 | -1.49 | +| APT | 07-12 22:00 | 07-13 01:00 | stop_loss | 3 | -1.49 | +| FET | 07-12 22:00 | 07-13 01:00 | trailing_stop | 3 | -0.70 | +| FIL | 07-12 22:00 | 07-13 01:00 | stop_loss | 3 | -1.49 | +| SEI | 07-12 22:00 | 07-13 01:00 | stop_loss | 3 | -1.49 | +| BONK | 07-13 01:00 | 07-13 02:00 | stop_loss | 1 | -1.49 | +| APT | 07-13 01:00 | 07-13 03:00 | stop_loss | 2 | -1.49 | +| ATOM | 07-13 01:00 | 07-13 03:00 | stop_loss | 2 | -1.49 | +| BONK | 07-13 02:00 | 07-13 03:00 | stop_loss | 1 | -1.49 | +| FET | 07-13 01:00 | 07-13 03:00 | stop_loss | 2 | -1.49 | +| FIL | 07-13 01:00 | 07-13 03:00 | stop_loss | 2 | -1.49 | +| LTC | 07-12 23:00 | 07-13 03:00 | stop_loss | 4 | -1.49 | +| OP | 07-12 22:00 | 07-13 03:00 | stop_loss | 5 | -1.49 | +| SEI | 07-13 01:00 | 07-13 03:00 | stop_loss | 2 | -1.49 | +| SHIB | 07-12 22:00 | 07-13 03:00 | stop_loss | 5 | -1.49 | +| SUI | 07-13 01:00 | 07-13 03:00 | stop_loss | 2 | -1.49 | +| TIA | 07-13 01:00 | 07-13 03:00 | stop_loss | 2 | -1.49 | +| UNI | 07-13 01:00 | 07-13 03:00 | stop_loss | 2 | -1.49 | +| APT | 07-13 03:00 | 07-13 05:00 | take_profit | 2 | +1.49 | +| ARB | 07-13 03:00 | 07-13 05:00 | take_profit | 2 | +1.49 | +| BONK | 07-13 03:00 | 07-13 05:00 | trailing_stop | 2 | -0.69 | +| OP | 07-13 03:00 | 07-13 05:00 | take_profit | 2 | +1.49 | +| TIA | 07-13 03:00 | 07-13 05:00 | take_profit | 2 | +1.49 | +| UNI | 07-13 04:00 | 07-13 07:00 | trailing_stop | 3 | -0.46 | +| PEPE | 07-13 04:00 | 07-13 09:00 | confirmed_bearish_exit | 5 | +0.23 | +| TRX | 07-08 04:00 | 07-13 10:00 | stop_loss | 126 | -1.49 | +| APT | 07-13 10:00 | 07-13 12:00 | stop_loss | 2 | -1.49 | +| SEI | 07-13 03:00 | 07-13 12:00 | trailing_stop | 9 | -0.09 | +| SUI | 07-13 03:00 | 07-13 12:00 | trailing_stop | 9 | -0.69 | +| RENDER | 07-13 01:00 | 07-13 13:00 | stop_loss | 12 | -1.49 | +| UNI | 07-13 10:00 | 07-13 13:00 | stop_loss | 3 | -1.49 | +| FIL | 07-13 03:00 | 07-13 14:00 | stop_loss | 11 | -1.49 | +| INJ | 07-13 03:00 | 07-13 14:00 | trailing_stop | 11 | -0.17 | +| LTC | 07-13 03:00 | 07-13 14:00 | stop_loss | 11 | -1.49 | +| PEPE | 07-13 10:00 | 07-13 14:00 | trailing_stop | 4 | -0.62 | +| INJ | 07-13 14:00 | 07-13 15:00 | stop_loss | 1 | -1.49 | +| BONK | 07-13 15:00 | 07-13 16:00 | stop_loss | 1 | -1.49 | +| SHIB | 07-13 03:00 | 07-13 16:00 | stop_loss | 13 | -1.49 | +| RENDER | 07-13 16:00 | 07-13 17:00 | stop_loss | 1 | -1.49 | +| BONK | 07-13 16:00 | 07-13 20:00 | stop_loss | 4 | -1.49 | +| PEPE | 07-13 17:00 | 07-13 20:00 | take_profit | 3 | +1.49 | +| ATOM | 07-13 03:00 | 07-13 21:00 | stop_loss | 18 | -1.49 | +| SHIB | 07-13 16:00 | 07-13 21:00 | stop_loss | 5 | -1.49 | +| TRX | 07-13 10:00 | 07-13 23:00 | stop_loss | 13 | -1.49 | +| FET | 07-13 21:00 | 07-14 00:00 | take_profit | 3 | +1.49 | +| FIL | 07-13 21:00 | 07-14 00:00 | take_profit | 3 | +1.49 | +| APT | 07-13 21:00 | 07-14 01:00 | take_profit | 4 | +1.49 | +| SUI | 07-13 21:00 | 07-14 01:00 | take_profit | 4 | +1.49 | +| INJ | 07-13 21:00 | 07-14 02:00 | take_profit | 5 | +1.49 | +| BONK | 07-13 22:00 | 07-14 03:00 | trailing_stop | 5 | -0.35 | +| ETC | 07-13 21:00 | 07-14 03:00 | trailing_stop | 6 | -0.54 | +| BONK | 07-14 05:00 | 07-14 09:00 | take_profit | 4 | +1.49 | +| SHIB | 07-13 21:00 | 07-14 09:00 | trailing_stop | 12 | -0.01 | +| RENDER | 07-13 17:00 | 07-14 12:00 | trailing_stop | 19 | +0.23 | +| PEPE | 07-15 03:00 | 07-15 04:00 | stop_loss | 1 | -1.49 | +| BONK | 07-15 02:00 | 07-15 05:00 | confirmed_bearish_exit | 3 | +0.29 | +| UNI | 07-15 02:00 | 07-15 06:00 | trailing_stop | 4 | -0.12 | +| INJ | 07-15 03:00 | 07-15 07:00 | stop_loss | 4 | -1.49 | +| PEPE | 07-15 04:00 | 07-15 07:00 | stop_loss | 3 | -1.49 | +| INJ | 07-15 07:00 | 07-15 10:00 | trailing_stop | 3 | -0.03 | +| NEAR | 07-15 07:00 | 07-15 10:00 | take_profit | 3 | +1.49 | +| ARB | 07-15 07:00 | 07-15 12:00 | take_profit | 5 | +1.49 | +| FET | 07-15 02:00 | 07-15 12:00 | trailing_stop | 10 | +0.08 | +| PEPE | 07-15 07:00 | 07-15 12:00 | take_profit | 5 | +1.49 | +| UNI | 07-15 07:00 | 07-15 12:00 | trailing_stop | 5 | -0.27 | +| ARB | 07-15 14:00 | 07-15 15:00 | stop_loss | 1 | -1.49 | +| ARB | 07-15 15:00 | 07-15 16:00 | stop_loss | 1 | -1.49 | +| TRX | 07-14 05:00 | 07-15 16:00 | trailing_stop | 35 | -0.66 | +| BONK | 07-16 02:00 | 07-16 03:00 | stop_loss | 1 | -1.49 | +| APT | 07-16 03:00 | 07-16 06:00 | stop_loss | 3 | -1.49 | +| FIL | 07-16 02:00 | 07-16 06:00 | stop_loss | 4 | -1.49 | +| BONK | 07-16 03:00 | 07-16 07:00 | stop_loss | 4 | -1.49 | +| SHIB | 07-16 02:00 | 07-16 07:00 | stop_loss | 5 | -1.49 | +| APT | 07-16 06:00 | 07-16 08:00 | stop_loss | 2 | -1.49 | +| ATOM | 07-16 07:00 | 07-16 08:00 | stop_loss | 1 | -1.49 | +| AVAX | 07-16 07:00 | 07-16 08:00 | stop_loss | 1 | -1.49 | +| BONK | 07-16 07:00 | 07-16 08:00 | stop_loss | 1 | -1.49 | +| ETC | 07-16 02:00 | 07-16 08:00 | stop_loss | 6 | -1.49 | +| PEPE | 07-16 07:00 | 07-16 08:00 | stop_loss | 1 | -1.49 | +| TIA | 07-16 07:00 | 07-16 08:00 | stop_loss | 1 | -1.49 | +| NEAR | 07-16 08:00 | 07-16 09:00 | stop_loss | 1 | -1.49 | +| KAS | 07-16 07:00 | 07-16 10:00 | stop_loss | 3 | -1.49 | +| OP | 07-16 08:00 | 07-16 11:00 | stop_loss | 3 | -1.49 | +| APT | 07-16 08:00 | 07-16 12:00 | stop_loss | 4 | -1.49 | +| AVAX | 07-16 08:00 | 07-16 12:00 | stop_loss | 4 | -1.49 | +| BONK | 07-16 08:00 | 07-16 12:00 | trailing_stop | 4 | -0.58 | +| APT | 07-16 12:00 | 07-16 13:00 | trailing_stop | 1 | -0.40 | +| AVAX | 07-16 12:00 | 07-16 13:00 | trailing_stop | 1 | -0.40 | +| ATOM | 07-16 08:00 | 07-16 17:00 | stop_loss | 9 | -1.49 | +| AVAX | 07-16 16:00 | 07-16 17:00 | stop_loss | 1 | -1.49 | +| FET | 07-16 09:00 | 07-16 17:00 | trailing_stop | 8 | -0.01 | +| FIL | 07-16 08:00 | 07-16 17:00 | trailing_stop | 9 | -0.42 | +| OP | 07-16 11:00 | 07-16 17:00 | stop_loss | 6 | -1.49 | +| TIA | 07-16 08:00 | 07-16 17:00 | trailing_stop | 9 | -0.59 | +| INJ | 07-16 11:00 | 07-16 18:00 | stop_loss | 7 | -1.49 | +| BONK | 07-16 18:00 | 07-16 19:00 | take_profit | 1 | +1.49 | +| RENDER | 07-16 07:00 | 07-16 20:00 | stop_loss | 13 | -1.49 | +| TIA | 07-16 19:00 | 07-16 20:00 | trailing_stop | 1 | -0.12 | +| ATOM | 07-16 20:00 | 07-16 22:00 | stop_loss | 2 | -1.49 | +| ETC | 07-16 08:00 | 07-16 22:00 | trailing_stop | 14 | -0.71 | +| SEI | 07-16 08:00 | 07-16 22:00 | stop_loss | 14 | -1.49 | +| AVAX | 07-16 17:00 | 07-17 00:00 | stop_loss | 7 | -1.49 | +| KAS | 07-16 10:00 | 07-17 00:00 | stop_loss | 14 | -1.49 | +| RENDER | 07-16 22:00 | 07-17 00:00 | stop_loss | 2 | -1.49 | +| BONK | 07-17 00:00 | 07-17 01:00 | stop_loss | 1 | -1.49 | +| LTC | 07-16 12:00 | 07-17 03:00 | take_profit | 15 | +1.49 | +| BONK | 07-17 01:00 | 07-17 04:00 | stop_loss | 3 | -1.49 | +| TIA | 07-17 02:00 | 07-17 04:00 | stop_loss | 2 | -1.49 | +| OP | 07-17 01:00 | 07-17 05:00 | stop_loss | 4 | -1.49 | +| SHIB | 07-16 12:00 | 07-17 05:00 | stop_loss | 17 | -1.49 | +| TIA | 07-17 04:00 | 07-17 05:00 | stop_loss | 1 | -1.49 | +| UNI | 07-17 00:00 | 07-17 05:00 | stop_loss | 5 | -1.49 | +| INJ | 07-16 23:00 | 07-17 06:00 | trailing_stop | 7 | -0.46 | +| SUI | 07-17 05:00 | 07-17 06:00 | take_profit | 1 | +1.49 | +| APT | 07-17 05:00 | 07-17 08:00 | stop_loss | 3 | -1.49 | +| KAS | 07-17 02:00 | 07-17 08:00 | stop_loss | 6 | -1.49 | +| OP | 07-17 05:00 | 07-17 08:00 | stop_loss | 3 | -1.49 | +| TIA | 07-17 05:00 | 07-17 08:00 | take_profit | 3 | +1.49 | +| FIL | 07-17 05:00 | 07-17 12:00 | trailing_stop | 7 | -0.41 | +| TIA | 07-17 10:00 | 07-17 12:00 | stop_loss | 2 | -1.49 | +| ATOM | 07-17 02:00 | 07-17 13:00 | stop_loss | 11 | -1.49 | +| ETC | 07-17 05:00 | 07-17 13:00 | trailing_stop | 8 | -0.26 | +| NEAR | 07-17 08:00 | 07-17 13:00 | take_profit | 5 | +1.49 | +| OP | 07-17 12:00 | 07-17 13:00 | stop_loss | 1 | -1.49 | +| RENDER | 07-17 05:00 | 07-17 13:00 | stop_loss | 8 | -1.49 | +| TIA | 07-17 12:00 | 07-17 13:00 | stop_loss | 1 | -1.49 | +| SEI | 07-17 05:00 | 07-17 15:00 | trailing_stop | 10 | +0.16 | +| TIA | 07-17 13:00 | 07-17 15:00 | stop_loss | 2 | -1.49 | +| LTC | 07-17 08:00 | 07-17 21:00 | take_profit | 13 | +1.49 | +| BONK | 07-17 21:00 | 07-18 00:00 | take_profit | 3 | +1.49 | +| TIA | 07-18 01:00 | 07-18 04:00 | stop_loss | 3 | -1.49 | +| TIA | 07-18 04:00 | 07-18 07:00 | stop_loss | 3 | -1.49 | +| NEAR | 07-17 17:00 | 07-18 09:00 | stop_loss | 16 | -1.49 | +| FIL | 07-18 05:00 | 07-18 12:00 | stop_loss | 7 | -1.49 | +| FIL | 07-18 12:00 | 07-18 13:00 | stop_loss | 1 | -1.49 | +| BONK | 07-18 14:00 | 07-18 15:00 | stop_loss | 1 | -1.49 | +| FET | 07-18 07:00 | 07-18 15:00 | stop_loss | 8 | -1.49 | +| KAS | 07-17 14:00 | 07-18 15:00 | stop_loss | 25 | -1.49 | +| BONK | 07-18 15:00 | 07-18 16:00 | take_profit | 1 | +1.49 | +| KAS | 07-18 15:00 | 07-18 17:00 | trailing_stop | 2 | +0.02 | +| PEPE | 07-18 08:00 | 07-18 17:00 | take_profit | 9 | +1.49 | +| NEAR | 07-18 09:00 | 07-18 18:00 | take_profit | 9 | +1.49 | +| BONK | 07-18 22:00 | 07-18 23:00 | stop_loss | 1 | -1.49 | +| ARB | 07-18 15:00 | 07-19 00:00 | stop_loss | 9 | -1.49 | +| UNI | 07-18 15:00 | 07-19 01:00 | trailing_stop | 10 | -0.24 | +| SUI | 07-18 13:00 | 07-19 02:00 | take_profit | 13 | +1.49 | +| FIL | 07-18 13:00 | 07-19 07:00 | trailing_stop | 18 | -0.37 | +| AVAX | 07-18 17:00 | 07-19 09:00 | stop_loss | 16 | -1.49 | +| FIL | 07-19 07:00 | 07-19 09:00 | stop_loss | 2 | -1.49 | +| APT | 07-18 12:00 | 07-19 11:00 | stop_loss | 23 | -1.49 | +| ATOM | 07-18 05:00 | 07-19 11:00 | stop_loss | 30 | -1.49 | +| OP | 07-18 18:00 | 07-19 11:00 | stop_loss | 17 | -1.49 | +| AVAX | 07-19 09:00 | 07-19 12:00 | stop_loss | 3 | -1.49 | +| FIL | 07-19 09:00 | 07-19 12:00 | stop_loss | 3 | -1.49 | +| INJ | 07-19 07:00 | 07-19 12:00 | stop_loss | 5 | -1.49 | +| OP | 07-19 11:00 | 07-19 12:00 | stop_loss | 1 | -1.49 | +| WIF | 07-18 10:00 | 07-19 12:00 | trailing_stop | 26 | -0.47 | +| FIL | 07-19 12:00 | 07-19 14:00 | stop_loss | 2 | -1.49 | +| APT | 07-19 12:00 | 07-19 17:00 | stop_loss | 5 | -1.49 | +| ETC | 07-19 11:00 | 07-19 17:00 | stop_loss | 6 | -1.49 | +| FIL | 07-19 14:00 | 07-19 17:00 | stop_loss | 3 | -1.49 | +| OP | 07-19 12:00 | 07-19 17:00 | stop_loss | 5 | -1.49 | +| RENDER | 07-18 08:00 | 07-19 17:00 | trailing_stop | 33 | -0.29 | +| UNI | 07-19 16:00 | 07-19 18:00 | stop_loss | 2 | -1.49 | +| UNI | 07-19 18:00 | 07-20 00:00 | take_profit | 6 | +1.49 | +| APT | 07-19 17:00 | 07-20 01:00 | stop_loss | 8 | -1.49 | +| AVAX | 07-19 12:00 | 07-20 01:00 | take_profit | 13 | +1.49 | +| BONK | 07-20 00:00 | 07-20 01:00 | stop_loss | 1 | -1.49 | +| FET | 07-19 12:00 | 07-20 01:00 | stop_loss | 13 | -1.49 | +| FET | 07-20 01:00 | 07-20 02:00 | stop_loss | 1 | -1.49 | +| ATOM | 07-20 00:00 | 07-20 03:00 | take_profit | 3 | +1.49 | +| FET | 07-20 02:00 | 07-20 03:00 | stop_loss | 1 | -1.49 | +| APT | 07-20 04:00 | 07-20 05:00 | stop_loss | 1 | -1.49 | +| FIL | 07-20 00:00 | 07-20 05:00 | stop_loss | 5 | -1.49 | +| NEAR | 07-19 16:00 | 07-20 05:00 | trailing_stop | 13 | -0.61 | +| ARB | 07-20 04:00 | 07-20 06:00 | stop_loss | 2 | -1.49 | +| SEI | 07-20 04:00 | 07-20 06:00 | stop_loss | 2 | -1.49 | +| ETC | 07-20 08:00 | 07-20 09:00 | trailing_stop | 1 | -0.67 | +| APT | 07-20 05:00 | 07-20 11:00 | take_profit | 6 | +1.49 | +| ARB | 07-20 06:00 | 07-20 11:00 | take_profit | 5 | +1.49 | +| ATOM | 07-20 05:00 | 07-20 11:00 | take_profit | 6 | +1.49 | +| LTC | 07-20 08:00 | 07-20 11:00 | take_profit | 3 | +1.49 | +| SEI | 07-20 06:00 | 07-20 11:00 | take_profit | 5 | +1.49 | +| SHIB | 07-18 17:00 | 07-20 11:00 | take_profit | 42 | +1.49 | +| SUI | 07-20 05:00 | 07-20 11:00 | trailing_stop | 6 | -0.01 | +| UNI | 07-20 05:00 | 07-20 11:00 | take_profit | 6 | +1.49 | +| RENDER | 07-20 06:00 | 07-20 14:00 | take_profit | 8 | +1.49 | +| FET | 07-20 03:00 | 07-20 15:00 | take_profit | 12 | +1.49 | +| FIL | 07-20 05:00 | 07-20 15:00 | take_profit | 10 | +1.49 | +| OP | 07-20 13:00 | 07-20 15:00 | take_profit | 2 | +1.49 | +| BONK | 07-21 11:00 | 07-21 12:00 | take_profit | 1 | +1.49 | +| ARB | 07-21 16:00 | 07-21 17:00 | stop_loss | 1 | -1.49 | +| NEAR | 07-21 16:00 | 07-21 17:00 | stop_loss | 1 | -1.49 | +| PEPE | 07-21 17:00 | 07-21 23:00 | stop_loss | 6 | -1.49 | +| ARB | 07-21 17:00 | 07-22 00:00 | trailing_stop | 7 | -0.04 | +| NEAR | 07-22 00:00 | 07-22 02:00 | stop_loss | 2 | -1.49 | +| TRX | 07-15 16:00 | 07-22 02:00 | confirmed_bearish_exit | 154 | +1.00 | +| NEAR | 07-22 02:00 | 07-22 03:00 | stop_loss | 1 | -1.49 | +| SEI | 07-21 19:00 | 07-22 03:00 | stop_loss | 8 | -1.49 | +| INJ | 07-21 14:00 | 07-22 04:00 | take_profit | 14 | +1.49 | +| ATOM | 07-22 01:00 | 07-22 05:00 | stop_loss | 4 | -1.49 | +| AVAX | 07-21 20:00 | 07-22 05:00 | stop_loss | 9 | -1.49 | +| FET | 07-21 21:00 | 07-22 05:00 | stop_loss | 8 | -1.49 | +| LTC | 07-21 20:00 | 07-22 05:00 | stop_loss | 9 | -1.49 | +| SUI | 07-21 21:00 | 07-22 05:00 | stop_loss | 8 | -1.49 | +| TIA | 07-22 02:00 | 07-22 05:00 | stop_loss | 3 | -1.49 | +| APT | 07-21 22:00 | 07-22 06:00 | stop_loss | 8 | -1.49 | +| ETC | 07-21 23:00 | 07-22 06:00 | stop_loss | 7 | -1.49 | +| SEI | 07-22 03:00 | 07-22 06:00 | stop_loss | 3 | -1.49 | +| WIF | 07-21 22:00 | 07-22 06:00 | trailing_stop | 8 | -0.13 | +| OP | 07-22 07:00 | 07-22 12:00 | trailing_stop | 5 | -0.67 | +| TIA | 07-22 05:00 | 07-22 12:00 | trailing_stop | 7 | -0.55 | +| PEPE | 07-22 05:00 | 07-22 13:00 | trailing_stop | 8 | -0.65 | +| SUI | 07-22 06:00 | 07-22 14:00 | take_profit | 8 | +1.49 | +| AVAX | 07-22 05:00 | 07-22 15:00 | take_profit | 10 | +1.49 | +| NEAR | 07-22 07:00 | 07-22 18:00 | stop_loss | 11 | -1.49 | +| FET | 07-22 05:00 | 07-22 19:00 | trailing_stop | 14 | -0.55 | +| RENDER | 07-22 03:00 | 07-22 19:00 | trailing_stop | 16 | -0.33 | +| SEI | 07-22 06:00 | 07-22 19:00 | trailing_stop | 13 | -0.07 | +| INJ | 07-22 06:00 | 07-22 20:00 | stop_loss | 14 | -1.49 | +| LTC | 07-22 11:00 | 07-22 21:00 | take_profit | 10 | +1.49 | +| KAS | 07-22 06:00 | 07-22 22:00 | trailing_stop | 16 | -0.40 | +| ATOM | 07-22 05:00 | 07-23 02:00 | stop_loss | 21 | -1.49 | +| BONK | 07-23 03:00 | 07-23 04:00 | trailing_stop | 1 | -0.68 | +| FET | 07-23 06:00 | 07-23 07:00 | stop_loss | 1 | -1.49 | +| FIL | 07-23 03:00 | 07-23 07:00 | stop_loss | 4 | -1.49 | +| BONK | 07-23 07:00 | 07-23 08:00 | trailing_stop | 1 | -0.69 | +| TIA | 07-23 03:00 | 07-23 09:00 | trailing_stop | 6 | -0.54 | +| NEAR | 07-23 03:00 | 07-23 10:00 | take_profit | 7 | +1.49 | +| ATOM | 07-23 03:00 | 07-23 11:00 | trailing_stop | 8 | -0.14 | +| SEI | 07-23 07:00 | 07-23 11:00 | take_profit | 4 | +1.49 | +| ARB | 07-23 07:00 | 07-23 12:00 | stop_loss | 5 | -1.49 | +| OP | 07-23 05:00 | 07-23 12:00 | stop_loss | 7 | -1.49 | +| SHIB | 07-22 03:00 | 07-23 12:00 | stop_loss | 33 | -1.49 | +| AVAX | 07-23 12:00 | 07-23 13:00 | stop_loss | 1 | -1.49 | +| PEPE | 07-23 12:00 | 07-23 13:00 | stop_loss | 1 | -1.49 | +| WIF | 07-23 07:00 | 07-23 13:00 | stop_loss | 6 | -1.49 | +| APT | 07-23 13:00 | 07-23 14:00 | take_profit | 1 | +1.49 | +| ARB | 07-23 12:00 | 07-23 14:00 | stop_loss | 2 | -1.49 | +| SHIB | 07-23 12:00 | 07-23 14:00 | stop_loss | 2 | -1.49 | +| TIA | 07-23 13:00 | 07-23 14:00 | stop_loss | 1 | -1.49 | +| ARB | 07-23 14:00 | 07-23 15:00 | stop_loss | 1 | -1.49 | +| FIL | 07-23 07:00 | 07-23 15:00 | stop_loss | 8 | -1.49 | +| INJ | 07-23 01:00 | 07-23 15:00 | trailing_stop | 14 | -0.41 | +| LTC | 07-23 10:00 | 07-23 15:00 | stop_loss | 5 | -1.49 | +| PEPE | 07-23 13:00 | 07-23 15:00 | stop_loss | 2 | -1.49 | +| RENDER | 07-23 03:00 | 07-23 15:00 | stop_loss | 12 | -1.49 | +| SUI | 07-23 14:00 | 07-23 15:00 | stop_loss | 1 | -1.49 | +| TIA | 07-23 14:00 | 07-23 15:00 | stop_loss | 1 | -1.49 | +| WIF | 07-23 13:00 | 07-23 15:00 | stop_loss | 2 | -1.49 | +| KAS | 07-23 07:00 | 07-23 16:00 | trailing_stop | 9 | -0.54 | +| ATOM | 07-23 13:00 | 07-23 17:00 | stop_loss | 4 | -1.49 | +| AVAX | 07-23 13:00 | 07-23 17:00 | stop_loss | 4 | -1.49 | +| OP | 07-23 13:00 | 07-23 17:00 | stop_loss | 4 | -1.49 | +| PEPE | 07-23 15:00 | 07-23 17:00 | stop_loss | 2 | -1.49 | +| RENDER | 07-23 15:00 | 07-23 17:00 | stop_loss | 2 | -1.49 | +| SUI | 07-23 15:00 | 07-23 17:00 | stop_loss | 2 | -1.49 | +| TIA | 07-23 15:00 | 07-23 17:00 | stop_loss | 2 | -1.49 | +| WIF | 07-23 15:00 | 07-23 17:00 | stop_loss | 2 | -1.49 | +| AVAX | 07-23 17:00 | 07-23 18:00 | stop_loss | 1 | -1.49 | +| WIF | 07-23 17:00 | 07-23 18:00 | stop_loss | 1 | -1.49 | +| SHIB | 07-23 14:00 | 07-23 19:00 | stop_loss | 5 | -1.49 | +| LTC | 07-23 15:00 | 07-23 20:00 | take_profit | 5 | +1.49 | +| WIF | 07-23 18:00 | 07-23 20:00 | trailing_stop | 2 | -0.05 | +| APT | 07-23 17:00 | 07-23 22:00 | take_profit | 5 | +1.49 | +| OP | 07-23 17:00 | 07-23 22:00 | stop_loss | 5 | -1.49 | +| TIA | 07-23 17:00 | 07-23 22:00 | trailing_stop | 5 | -0.62 | +| ARB | 07-23 21:00 | 07-23 23:00 | stop_loss | 2 | -1.49 | +| SHIB | 07-23 22:00 | 07-24 00:00 | stop_loss | 2 | -1.49 | +| SUI | 07-23 17:00 | 07-24 00:00 | trailing_stop | 7 | -0.59 | +| ARB | 07-23 23:00 | 07-24 02:00 | stop_loss | 3 | -1.49 | +| AVAX | 07-23 18:00 | 07-24 02:00 | stop_loss | 8 | -1.49 | +| ETC | 07-23 15:00 | 07-24 02:00 | stop_loss | 11 | -1.49 | +| FET | 07-23 13:00 | 07-24 08:00 | take_profit | 19 | +1.49 | +| KAS | 07-23 17:00 | 07-24 09:00 | confirmed_bearish_exit | 16 | +0.68 | +| WIF | 07-24 05:00 | 07-24 09:00 | trailing_stop | 4 | -0.33 | +| ATOM | 07-23 17:00 | 07-24 10:00 | stop_loss | 17 | -1.49 | +| ETC | 07-24 02:00 | 07-24 12:00 | trailing_stop | 10 | -0.67 | +| RENDER | 07-23 17:00 | 07-24 12:00 | trailing_stop | 19 | -0.49 | +| ATOM | 07-24 10:00 | 07-24 13:00 | stop_loss | 3 | -1.49 | +| AVAX | 07-24 12:00 | 07-24 13:00 | stop_loss | 1 | -1.49 | +| FIL | 07-23 22:00 | 07-24 13:00 | stop_loss | 15 | -1.49 | +| NEAR | 07-24 12:00 | 07-24 13:00 | stop_loss | 1 | -1.49 | +| PEPE | 07-23 17:00 | 07-24 13:00 | stop_loss | 20 | -1.49 | +| SHIB | 07-24 00:00 | 07-24 13:00 | trailing_stop | 13 | -0.26 | +| SUI | 07-24 10:00 | 07-24 13:00 | stop_loss | 3 | -1.49 | +| ARB | 07-24 13:00 | 07-24 14:00 | stop_loss | 1 | -1.49 | +| NEAR | 07-24 13:00 | 07-24 14:00 | stop_loss | 1 | -1.49 | +| PEPE | 07-24 13:00 | 07-24 14:00 | stop_loss | 1 | -1.49 | +| SUI | 07-24 13:00 | 07-24 14:00 | stop_loss | 1 | -1.49 | +| ATOM | 07-24 13:00 | 07-24 16:00 | take_profit | 3 | +1.49 | +| PEPE | 07-24 14:00 | 07-24 16:00 | stop_loss | 2 | -1.49 | +| PEPE | 07-24 16:00 | 07-24 18:00 | confirmed_bearish_exit | 2 | +0.61 | +| SUI | 07-24 14:00 | 07-24 18:00 | stop_loss | 4 | -1.49 | +| APT | 07-24 12:00 | 07-24 19:00 | trailing_stop | 7 | -0.23 | +| ETC | 07-24 13:00 | 07-24 20:00 | stop_loss | 7 | -1.49 | +| ATOM | 07-24 17:00 | 07-24 21:00 | stop_loss | 4 | -1.49 | +| FIL | 07-24 13:00 | 07-24 21:00 | trailing_stop | 8 | -0.10 | +| SEI | 07-24 13:00 | 07-24 21:00 | stop_loss | 8 | -1.49 | +| INJ | 07-24 17:00 | 07-25 00:00 | trailing_stop | 7 | -0.23 | +| NEAR | 07-24 14:00 | 07-25 02:00 | stop_loss | 12 | -1.49 | +| UNI | 07-24 21:00 | 07-25 02:00 | trailing_stop | 5 | -0.52 | +| OP | 07-24 13:00 | 07-25 03:00 | trailing_stop | 14 | -0.52 | +| ATOM | 07-24 21:00 | 07-25 05:00 | stop_loss | 8 | -1.49 | +| PEPE | 07-24 22:00 | 07-25 05:00 | stop_loss | 7 | -1.49 | +| UNI | 07-25 04:00 | 07-25 05:00 | stop_loss | 1 | -1.49 | +| APT | 07-24 19:00 | 07-25 06:00 | stop_loss | 11 | -1.49 | +| SUI | 07-25 02:00 | 07-25 06:00 | stop_loss | 4 | -1.49 | +| TIA | 07-24 21:00 | 07-25 06:00 | trailing_stop | 9 | -0.42 | +| RENDER | 07-24 14:00 | 07-25 08:00 | stop_loss | 18 | -1.49 | +| LTC | 07-24 10:00 | 07-25 09:00 | stop_loss | 23 | -1.49 | +| UNI | 07-25 05:00 | 07-25 09:00 | stop_loss | 4 | -1.49 | +| ETC | 07-24 21:00 | 07-25 16:00 | take_profit | 19 | +1.49 | +| FET | 07-24 18:00 | 07-25 16:00 | take_profit | 22 | +1.49 | +| INJ | 07-25 14:00 | 07-25 16:00 | stop_loss | 2 | -1.49 | +| RENDER | 07-25 08:00 | 07-25 19:00 | take_profit | 11 | +1.49 | +| SEI | 07-25 08:00 | 07-25 22:00 | take_profit | 14 | +1.49 | +| ARB | 07-25 08:00 | 07-26 02:00 | stop_loss | 18 | -1.49 | +| TIA | 07-25 08:00 | 07-26 03:00 | take_profit | 19 | +1.49 | +| INJ | 07-25 16:00 | 07-26 04:00 | trailing_stop | 12 | -0.33 | +| KAS | 07-24 13:00 | 07-26 07:00 | take_profit | 42 | +1.49 | +| UNI | 07-25 13:00 | 07-26 10:00 | trailing_stop | 21 | -0.36 | +| INJ | 07-26 06:00 | 07-26 15:00 | trailing_stop | 9 | -0.05 | +| INJ | 07-26 18:00 | 07-26 19:00 | stop_loss | 1 | -1.49 | +| SHIB | 07-26 19:00 | 07-26 21:00 | stop_loss | 2 | -1.49 | +| WIF | 07-26 17:00 | 07-26 21:00 | stop_loss | 4 | -1.49 | +| ATOM | 07-25 05:00 | 07-26 22:00 | take_profit | 41 | +1.49 | +| NEAR | 07-26 13:00 | 07-26 22:00 | take_profit | 9 | +1.49 | +| SHIB | 07-26 21:00 | 07-26 22:00 | take_profit | 1 | +1.49 | +| FET | 07-26 12:00 | 07-27 01:00 | take_profit | 13 | +1.49 | +| SUI | 07-26 19:00 | 07-27 01:00 | trailing_stop | 6 | -0.12 | +| FIL | 07-26 20:00 | 07-27 02:00 | take_profit | 6 | +1.49 | +| SEI | 07-26 18:00 | 07-27 04:00 | take_profit | 10 | +1.49 | +| AVAX | 07-26 12:00 | 07-27 08:00 | stop_loss | 20 | -1.49 | +| LTC | 07-27 06:00 | 07-27 08:00 | stop_loss | 2 | -1.49 | +| WIF | 07-27 01:00 | 07-27 09:00 | stop_loss | 8 | -1.49 | +| SHIB | 07-27 09:00 | 07-27 11:00 | take_profit | 2 | +1.49 | +| FET | 07-27 12:00 | 07-27 13:00 | stop_loss | 1 | -1.49 | +| ATOM | 07-27 11:00 | 07-27 14:00 | stop_loss | 3 | -1.49 | +| ETC | 07-27 06:00 | 07-27 14:00 | stop_loss | 8 | -1.49 | +| FET | 07-27 13:00 | 07-27 14:00 | stop_loss | 1 | -1.49 | +| LTC | 07-27 08:00 | 07-27 14:00 | stop_loss | 6 | -1.49 | +| RENDER | 07-26 18:00 | 07-27 14:00 | stop_loss | 20 | -1.49 | +| SUI | 07-27 12:00 | 07-27 14:00 | stop_loss | 2 | -1.49 | +| TRX | 07-22 14:00 | 07-27 14:00 | trailing_stop | 120 | -0.32 | +| APT | 07-27 14:00 | 07-27 15:00 | stop_loss | 1 | -1.49 | +| ARB | 07-27 14:00 | 07-27 15:00 | stop_loss | 1 | -1.49 | +| ATOM | 07-27 14:00 | 07-27 15:00 | stop_loss | 1 | -1.49 | +| FET | 07-27 14:00 | 07-27 15:00 | stop_loss | 1 | -1.49 | +| OP | 07-27 14:00 | 07-27 15:00 | stop_loss | 1 | -1.49 | +| AVAX | 07-27 14:00 | 07-27 16:00 | trailing_stop | 2 | -0.35 | +| NEAR | 07-27 14:00 | 07-27 16:00 | stop_loss | 2 | -1.49 | +| TIA | 07-27 14:00 | 07-27 16:00 | stop_loss | 2 | -1.49 | +| BONK | 07-27 14:00 | 07-27 18:00 | stop_loss | 4 | -1.49 | +| FET | 07-27 15:00 | 07-27 18:00 | stop_loss | 3 | -1.49 | +| NEAR | 07-27 16:00 | 07-27 18:00 | stop_loss | 2 | -1.49 | +| RENDER | 07-27 14:00 | 07-27 18:00 | stop_loss | 4 | -1.49 | +| UNI | 07-27 14:00 | 07-27 18:00 | stop_loss | 4 | -1.49 | +| WIF | 07-27 14:00 | 07-27 18:00 | stop_loss | 4 | -1.49 | +| FIL | 07-27 14:00 | 07-27 19:00 | stop_loss | 5 | -1.49 | +| APT | 07-27 15:00 | 07-27 22:00 | stop_loss | 7 | -1.49 | +| ARB | 07-27 15:00 | 07-27 22:00 | stop_loss | 7 | -1.49 | +| ATOM | 07-27 15:00 | 07-27 22:00 | stop_loss | 7 | -1.49 | +| ETC | 07-27 14:00 | 07-27 22:00 | stop_loss | 8 | -1.49 | +| FIL | 07-27 19:00 | 07-27 22:00 | stop_loss | 3 | -1.49 | +| INJ | 07-27 15:00 | 07-27 22:00 | stop_loss | 7 | -1.49 | +| NEAR | 07-27 18:00 | 07-27 22:00 | stop_loss | 4 | -1.49 | +| OP | 07-27 15:00 | 07-27 22:00 | stop_loss | 7 | -1.49 | +| RENDER | 07-27 18:00 | 07-27 22:00 | stop_loss | 4 | -1.49 | +| SEI | 07-27 15:00 | 07-27 22:00 | stop_loss | 7 | -1.49 | +| SUI | 07-27 14:00 | 07-27 22:00 | stop_loss | 8 | -1.49 | +| TIA | 07-27 16:00 | 07-27 22:00 | stop_loss | 6 | -1.49 | +| UNI | 07-27 21:00 | 07-27 22:00 | stop_loss | 1 | -1.49 | +| WIF | 07-27 18:00 | 07-27 22:00 | stop_loss | 4 | -1.49 | +| AVAX | 07-27 22:00 | 07-27 23:00 | stop_loss | 1 | -1.49 | +| BONK | 07-27 22:00 | 07-27 23:00 | stop_loss | 1 | -1.49 | +| FET | 07-27 22:00 | 07-27 23:00 | take_profit | 1 | +1.49 | +| LTC | 07-27 14:00 | 07-27 23:00 | stop_loss | 9 | -1.49 | +| NEAR | 07-27 22:00 | 07-27 23:00 | stop_loss | 1 | -1.49 | +| OP | 07-27 22:00 | 07-27 23:00 | stop_loss | 1 | -1.49 | +| SEI | 07-27 22:00 | 07-27 23:00 | stop_loss | 1 | -1.49 | +| TRX | 07-27 14:00 | 07-27 23:00 | stop_loss | 9 | -1.49 | +| ETC | 07-27 22:00 | 07-28 00:00 | stop_loss | 2 | -1.49 | +| KAS | 07-27 22:00 | 07-28 00:00 | stop_loss | 2 | -1.49 | +| PEPE | 07-27 22:00 | 07-28 00:00 | stop_loss | 2 | -1.49 | +| SEI | 07-27 23:00 | 07-28 00:00 | stop_loss | 1 | -1.49 | +| WIF | 07-27 22:00 | 07-28 00:00 | trailing_stop | 2 | -0.16 | +| APT | 07-27 22:00 | 07-28 01:00 | stop_loss | 3 | -1.49 | +| ATOM | 07-27 22:00 | 07-28 01:00 | stop_loss | 3 | -1.49 | +| FIL | 07-27 22:00 | 07-28 01:00 | stop_loss | 3 | -1.49 | +| INJ | 07-27 22:00 | 07-28 01:00 | stop_loss | 3 | -1.49 | +| PEPE | 07-28 00:00 | 07-28 01:00 | stop_loss | 1 | -1.49 | +| RENDER | 07-27 22:00 | 07-28 01:00 | stop_loss | 3 | -1.49 | +| SEI | 07-28 00:00 | 07-28 01:00 | stop_loss | 1 | -1.49 | +| SHIB | 07-28 00:00 | 07-28 01:00 | stop_loss | 1 | -1.49 | +| TIA | 07-27 22:00 | 07-28 01:00 | trailing_stop | 3 | -0.57 | +| SHIB | 07-28 01:00 | 07-28 02:00 | trailing_stop | 1 | -0.21 | +| KAS | 07-28 00:00 | 07-28 04:00 | stop_loss | 4 | -1.49 | +| PEPE | 07-28 01:00 | 07-28 07:00 | trailing_stop | 6 | +0.07 | +| UNI | 07-27 22:00 | 07-28 08:00 | trailing_stop | 10 | -0.41 | +| FET | 07-28 08:00 | 07-28 09:00 | stop_loss | 1 | -1.49 | +| NEAR | 07-28 09:00 | 07-28 11:00 | stop_loss | 2 | -1.49 | +| OP | 07-27 23:00 | 07-28 11:00 | stop_loss | 12 | -1.49 | +| SEI | 07-28 06:00 | 07-28 11:00 | stop_loss | 5 | -1.49 | +| TIA | 07-28 10:00 | 07-28 11:00 | stop_loss | 1 | -1.49 | +| ARB | 07-27 22:00 | 07-28 12:00 | take_profit | 14 | +1.49 | +| OP | 07-28 11:00 | 07-28 12:00 | stop_loss | 1 | -1.49 | +| ATOM | 07-28 06:00 | 07-28 13:00 | stop_loss | 7 | -1.49 | +| AVAX | 07-27 23:00 | 07-28 13:00 | trailing_stop | 14 | -0.51 | +| ETC | 07-28 00:00 | 07-28 13:00 | stop_loss | 13 | -1.49 | +| FIL | 07-28 08:00 | 07-28 13:00 | stop_loss | 5 | -1.49 | +| KAS | 07-28 09:00 | 07-28 13:00 | stop_loss | 4 | -1.49 | +| PEPE | 07-28 07:00 | 07-28 13:00 | stop_loss | 6 | -1.49 | +| RENDER | 07-28 06:00 | 07-28 13:00 | stop_loss | 7 | -1.49 | +| SEI | 07-28 11:00 | 07-28 13:00 | stop_loss | 2 | -1.49 | +| INJ | 07-28 17:00 | 07-28 19:00 | take_profit | 2 | +1.49 | +| SUI | 07-27 22:00 | 07-28 19:00 | take_profit | 21 | +1.49 | +| LTC | 07-28 22:00 | 07-29 03:00 | stop_loss | 5 | -1.49 | +| UNI | 07-29 03:00 | 07-29 06:00 | take_profit | 3 | +1.49 | +| INJ | 07-29 04:00 | 07-29 07:00 | stop_loss | 3 | -1.49 | +| APT | 07-29 04:00 | 07-29 10:00 | trailing_stop | 6 | -0.49 | +| FET | 07-29 08:00 | 07-29 10:00 | trailing_stop | 2 | -0.28 | +| FIL | 07-29 03:00 | 07-29 12:00 | trailing_stop | 9 | -0.25 | +| AVAX | 07-29 05:00 | 07-29 13:00 | stop_loss | 8 | -1.49 | +| ARB | 07-29 05:00 | 07-29 14:00 | trailing_stop | 9 | -0.56 | +| SEI | 07-29 03:00 | 07-29 14:00 | trailing_stop | 11 | -0.64 | +| TIA | 07-29 03:00 | 07-29 15:00 | stop_loss | 12 | -1.49 | +| FIL | 07-29 16:00 | 07-29 17:00 | trailing_stop | 1 | -0.43 | +| APT | 07-29 14:00 | 07-29 18:00 | take_profit | 4 | +1.49 | +| NEAR | 07-29 10:00 | 07-29 18:00 | take_profit | 8 | +1.49 | +| RENDER | 07-29 03:00 | 07-29 18:00 | trailing_stop | 15 | -0.35 | +| BONK | 07-29 19:00 | 07-29 20:00 | stop_loss | 1 | -1.49 | +| FIL | 07-29 19:00 | 07-29 20:00 | stop_loss | 1 | -1.49 | +| KAS | 07-29 19:00 | 07-29 20:00 | stop_loss | 1 | -1.49 | +| LTC | 07-29 04:00 | 07-29 20:00 | stop_loss | 16 | -1.49 | +| BONK | 07-29 20:00 | 07-29 21:00 | trailing_stop | 1 | -0.31 | +| FIL | 07-29 20:00 | 07-29 21:00 | trailing_stop | 1 | -0.14 | +| PEPE | 07-29 20:00 | 07-30 01:00 | take_profit | 5 | +1.49 | +| KAS | 07-29 20:00 | 07-30 15:00 | trailing_stop | 19 | -0.18 | +| OP | 07-30 15:00 | 07-30 16:00 | stop_loss | 1 | -1.49 | +| BONK | 07-30 15:00 | 07-30 17:00 | stop_loss | 2 | -1.49 | +| ARB | 07-30 15:00 | 07-30 23:00 | stop_loss | 8 | -1.49 | +| WIF | 07-30 15:00 | 07-31 01:00 | take_profit | 10 | +1.49 | +| ETC | 07-31 01:00 | 07-31 02:00 | stop_loss | 1 | -1.49 | +| OP | 07-30 16:00 | 07-31 02:00 | stop_loss | 10 | -1.49 | +| ATOM | 07-31 01:00 | 07-31 03:00 | stop_loss | 2 | -1.49 | +| ATOM | 07-31 03:00 | 07-31 04:00 | stop_loss | 1 | -1.49 | +| ARB | 07-30 23:00 | 07-31 07:00 | stop_loss | 8 | -1.49 | +| BONK | 07-31 04:00 | 07-31 07:00 | stop_loss | 3 | -1.49 | +| BONK | 07-31 07:00 | 07-31 09:00 | stop_loss | 2 | -1.49 | +| RENDER | 07-31 03:00 | 07-31 09:00 | stop_loss | 6 | -1.49 | +| SEI | 07-31 06:00 | 07-31 09:00 | stop_loss | 3 | -1.49 | +| TIA | 07-31 07:00 | 07-31 09:00 | stop_loss | 2 | -1.49 | +| BONK | 07-31 09:00 | 07-31 10:00 | stop_loss | 1 | -1.49 | +| FET | 07-31 09:00 | 07-31 10:00 | trailing_stop | 1 | -0.37 | +| OP | 07-31 09:00 | 07-31 10:00 | stop_loss | 1 | -1.49 | +| SUI | 07-31 05:00 | 07-31 10:00 | stop_loss | 5 | -1.49 | +| UNI | 07-31 09:00 | 07-31 10:00 | take_profit | 1 | +1.49 | +| OP | 07-31 10:00 | 07-31 12:00 | stop_loss | 2 | -1.49 | +| APT | 07-31 09:00 | 07-31 14:00 | stop_loss | 5 | -1.49 | +| ARB | 07-31 09:00 | 07-31 14:00 | trailing_stop | 5 | -0.14 | +| BONK | 07-31 10:00 | 07-31 14:00 | stop_loss | 4 | -1.49 | +| ETC | 07-31 02:00 | 07-31 14:00 | stop_loss | 12 | -1.49 | +| KAS | 07-31 13:00 | 07-31 14:00 | stop_loss | 1 | -1.49 | +| RENDER | 07-31 09:00 | 07-31 14:00 | stop_loss | 5 | -1.49 | +| SHIB | 07-31 14:00 | 07-31 16:00 | trailing_stop | 2 | -0.22 | +| KAS | 07-31 14:00 | 07-31 17:00 | confirmed_bearish_exit | 3 | -0.10 | +| ATOM | 07-31 04:00 | 07-31 18:00 | trailing_stop | 14 | -0.65 | +| BONK | 07-31 17:00 | 07-31 18:00 | stop_loss | 1 | -1.49 | +| INJ | 07-31 12:00 | 07-31 19:00 | stop_loss | 7 | -1.49 | +| LTC | 07-31 09:00 | 07-31 20:00 | stop_loss | 11 | -1.49 | +| BONK | 07-31 19:00 | 08-01 00:00 | take_profit | 5 | +1.49 | +| TIA | 07-31 15:00 | 08-01 04:00 | confirmed_bearish_exit | 13 | +1.24 | +| NEAR | 08-01 07:00 | 08-01 09:00 | stop_loss | 2 | -1.49 | +| UNI | 08-01 07:00 | 08-01 11:00 | stop_loss | 4 | -1.49 | +| LTC | 07-31 22:00 | 08-01 14:00 | trailing_stop | 16 | -0.58 | +| BONK | 08-01 14:00 | 08-01 17:00 | stop_loss | 3 | -1.49 | +| SEI | 08-01 05:00 | 08-01 17:00 | stop_loss | 12 | -1.49 | +| UNI | 08-01 15:00 | 08-01 17:00 | stop_loss | 2 | -1.49 | +| ATOM | 08-01 07:00 | 08-01 18:00 | stop_loss | 11 | -1.49 | +| AVAX | 08-01 09:00 | 08-01 18:00 | stop_loss | 9 | -1.49 | +| BONK | 08-01 17:00 | 08-01 18:00 | stop_loss | 1 | -1.49 | +| FET | 08-01 17:00 | 08-01 18:00 | stop_loss | 1 | -1.49 | +| FIL | 08-01 17:00 | 08-01 18:00 | stop_loss | 1 | -1.49 | +| KAS | 08-01 17:00 | 08-01 18:00 | stop_loss | 1 | -1.49 | +| OP | 08-01 17:00 | 08-01 18:00 | stop_loss | 1 | -1.49 | +| RENDER | 08-01 15:00 | 08-01 18:00 | stop_loss | 3 | -1.49 | +| SEI | 08-01 17:00 | 08-01 18:00 | stop_loss | 1 | -1.49 | +| SUI | 07-31 15:00 | 08-01 18:00 | stop_loss | 27 | -1.49 | +| WIF | 08-01 17:00 | 08-01 18:00 | stop_loss | 1 | -1.49 | +| BONK | 08-01 18:00 | 08-01 22:00 | take_profit | 4 | +1.49 | +| WIF | 08-01 18:00 | 08-01 23:00 | stop_loss | 5 | -1.49 | +| AVAX | 08-01 18:00 | 08-02 01:00 | take_profit | 7 | +1.49 | +| FET | 08-01 18:00 | 08-02 01:00 | take_profit | 7 | +1.49 | +| SUI | 08-01 18:00 | 08-02 01:00 | take_profit | 7 | +1.49 | +| TIA | 08-01 18:00 | 08-02 01:00 | take_profit | 7 | +1.49 | +| APT | 08-01 18:00 | 08-02 02:00 | take_profit | 8 | +1.49 | +| ATOM | 08-01 18:00 | 08-02 02:00 | take_profit | 8 | +1.49 | +| ETC | 08-01 18:00 | 08-02 02:00 | take_profit | 8 | +1.49 | +| FIL | 08-01 18:00 | 08-02 02:00 | take_profit | 8 | +1.49 | +| LTC | 08-01 18:00 | 08-02 02:00 | take_profit | 8 | +1.49 | +| OP | 08-01 18:00 | 08-02 02:00 | trailing_stop | 8 | +0.09 | +| SEI | 08-01 18:00 | 08-02 02:00 | take_profit | 8 | +1.49 | +| WIF | 08-02 02:00 | 08-02 09:00 | take_profit | 7 | +1.49 | +| KAS | 08-01 18:00 | 08-02 11:00 | trailing_stop | 17 | -0.40 | +| RENDER | 08-01 18:00 | 08-02 20:00 | take_profit | 26 | +1.49 | +| AVAX | 08-03 00:00 | 08-03 02:00 | stop_loss | 2 | -1.49 | +| AVAX | 08-03 02:00 | 08-03 03:00 | stop_loss | 1 | -1.49 | +| UNI | 08-03 00:00 | 08-03 03:00 | stop_loss | 3 | -1.49 | +| BONK | 08-03 01:00 | 08-03 04:00 | stop_loss | 3 | -1.49 | +| PEPE | 08-03 04:00 | 08-03 07:00 | stop_loss | 3 | -1.49 | +| WIF | 08-03 00:00 | 08-03 07:00 | stop_loss | 7 | -1.49 | +| BONK | 08-03 04:00 | 08-03 08:00 | stop_loss | 4 | -1.49 | +| ETC | 08-03 00:00 | 08-03 08:00 | stop_loss | 8 | -1.49 | +| FET | 08-03 01:00 | 08-03 08:00 | stop_loss | 7 | -1.49 | +| UNI | 08-03 07:00 | 08-03 08:00 | stop_loss | 1 | -1.49 | +| NEAR | 08-02 20:00 | 08-03 12:00 | trailing_stop | 16 | -0.48 | +| APT | 08-03 06:00 | 08-03 13:00 | take_profit | 7 | +1.49 | +| AVAX | 08-03 03:00 | 08-03 13:00 | trailing_stop | 10 | +0.13 | +| FET | 08-03 11:00 | 08-03 13:00 | trailing_stop | 2 | -0.50 | +| FIL | 08-03 04:00 | 08-03 13:00 | take_profit | 9 | +1.49 | +| KAS | 08-03 07:00 | 08-03 13:00 | stop_loss | 6 | -1.49 | +| PEPE | 08-03 11:00 | 08-03 13:00 | take_profit | 2 | +1.49 | +| SEI | 08-02 16:00 | 08-03 13:00 | trailing_stop | 21 | -0.52 | +| SHIB | 08-03 00:00 | 08-03 16:00 | take_profit | 16 | +1.49 | +| UNI | 08-03 15:00 | 08-03 16:00 | stop_loss | 1 | -1.49 | +| INJ | 08-03 08:00 | 08-03 19:00 | take_profit | 11 | +1.49 | +| ETC | 08-03 11:00 | 08-04 00:00 | trailing_stop | 13 | -0.65 | +| KAS | 08-03 19:00 | 08-04 03:00 | stop_loss | 8 | -1.49 | +| UNI | 08-03 16:00 | 08-04 03:00 | stop_loss | 11 | -1.49 | +| PEPE | 08-04 10:00 | 08-04 13:00 | stop_loss | 3 | -1.49 | +| FIL | 08-04 08:00 | 08-04 14:00 | stop_loss | 6 | -1.49 | +| RENDER | 08-03 04:00 | 08-04 14:00 | stop_loss | 34 | -1.49 | +| WIF | 08-04 16:00 | 08-04 17:00 | trailing_stop | 1 | -0.63 | +| FET | 08-04 14:00 | 08-04 18:00 | take_profit | 4 | +1.49 | +| AVAX | 08-04 16:00 | 08-04 22:00 | stop_loss | 6 | -1.49 | +| TRX | 07-27 23:00 | 08-04 22:00 | trailing_stop | 191 | +0.15 | +| INJ | 08-04 20:00 | 08-04 23:00 | stop_loss | 3 | -1.49 | +| RENDER | 08-04 15:00 | 08-04 23:00 | trailing_stop | 8 | -0.37 | +| LTC | 08-03 03:00 | 08-05 03:00 | take_profit | 48 | +1.49 | +| OP | 08-04 17:00 | 08-05 03:00 | trailing_stop | 10 | -0.13 | +| NEAR | 08-05 03:00 | 08-05 05:00 | trailing_stop | 2 | -0.36 | +| RENDER | 08-05 00:00 | 08-05 05:00 | trailing_stop | 5 | -0.51 | +| KAS | 08-05 04:00 | 08-05 06:00 | stop_loss | 2 | -1.49 | +| ATOM | 08-05 03:00 | 08-05 11:00 | stop_loss | 8 | -1.49 | +| AVAX | 08-05 03:00 | 08-05 13:00 | stop_loss | 10 | -1.49 | +| INJ | 08-05 00:00 | 08-05 14:00 | take_profit | 14 | +1.49 | +| ETC | 08-05 07:00 | 08-05 16:00 | stop_loss | 9 | -1.49 | +| OP | 08-05 13:00 | 08-05 16:00 | take_profit | 3 | +1.49 | +| FET | 08-05 19:00 | 08-05 21:00 | stop_loss | 2 | -1.49 | +| TIA | 08-05 15:00 | 08-05 22:00 | trailing_stop | 7 | -0.66 | +| FET | 08-05 21:00 | 08-06 01:00 | stop_loss | 4 | -1.49 | +| SHIB | 08-05 07:00 | 08-06 01:00 | stop_loss | 18 | -1.49 | +| INJ | 08-06 01:00 | 08-06 03:00 | stop_loss | 2 | -1.49 | +| SUI | 08-05 03:00 | 08-06 03:00 | stop_loss | 24 | -1.49 | +| ARB | 08-06 01:00 | 08-06 09:00 | stop_loss | 8 | -1.49 | +| FIL | 08-06 07:00 | 08-06 09:00 | stop_loss | 2 | -1.49 | +| INJ | 08-06 03:00 | 08-06 09:00 | stop_loss | 6 | -1.49 | +| KAS | 08-05 15:00 | 08-06 09:00 | trailing_stop | 18 | -0.56 | +| OP | 08-06 07:00 | 08-06 09:00 | stop_loss | 2 | -1.49 | +| SHIB | 08-06 02:00 | 08-06 09:00 | stop_loss | 7 | -1.49 | +| ARB | 08-06 09:00 | 08-06 10:00 | stop_loss | 1 | -1.49 | +| AVAX | 08-06 09:00 | 08-06 10:00 | stop_loss | 1 | -1.49 | +| ETC | 08-06 09:00 | 08-06 10:00 | stop_loss | 1 | -1.49 | +| FIL | 08-06 09:00 | 08-06 10:00 | stop_loss | 1 | -1.49 | +| SUI | 08-06 09:00 | 08-06 10:00 | stop_loss | 1 | -1.49 | +| KAS | 08-06 10:00 | 08-06 12:00 | stop_loss | 2 | -1.49 | +| BONK | 08-06 09:00 | 08-06 13:00 | stop_loss | 4 | -1.49 | +| KAS | 08-06 12:00 | 08-06 13:00 | stop_loss | 1 | -1.49 | +| OP | 08-06 10:00 | 08-06 13:00 | stop_loss | 3 | -1.49 | +| SHIB | 08-06 09:00 | 08-06 13:00 | stop_loss | 4 | -1.49 | +| TIA | 08-06 10:00 | 08-06 14:00 | take_profit | 4 | +1.49 | +| ARB | 08-06 10:00 | 08-06 15:00 | take_profit | 5 | +1.49 | +| FIL | 08-06 10:00 | 08-06 15:00 | take_profit | 5 | +1.49 | +| FET | 08-06 15:00 | 08-06 16:00 | take_profit | 1 | +1.49 | +| WIF | 08-06 09:00 | 08-06 16:00 | trailing_stop | 7 | +0.01 | +| ETC | 08-06 10:00 | 08-06 18:00 | take_profit | 8 | +1.49 | +| RENDER | 08-05 21:00 | 08-06 18:00 | trailing_stop | 21 | +0.01 | +| PEPE | 08-06 09:00 | 08-06 20:00 | confirmed_bearish_exit | 11 | +0.57 | +| TIA | 08-06 18:00 | 08-06 21:00 | take_profit | 3 | +1.49 | +| AVAX | 08-06 10:00 | 08-06 23:00 | trailing_stop | 13 | -0.25 | +| INJ | 08-06 22:00 | 08-07 00:00 | stop_loss | 2 | -1.49 | +| SHIB | 08-06 21:00 | 08-07 00:00 | stop_loss | 3 | -1.49 | +| INJ | 08-07 00:00 | 08-07 04:00 | stop_loss | 4 | -1.49 | +| KAS | 08-06 13:00 | 08-07 04:00 | trailing_stop | 15 | -0.06 | +| BONK | 08-07 07:00 | 08-07 08:00 | stop_loss | 1 | -1.49 | +| FET | 08-07 07:00 | 08-07 08:00 | trailing_stop | 1 | -0.65 | +| LTC | 08-06 07:00 | 08-07 09:00 | take_profit | 26 | +1.49 | +| BONK | 08-07 08:00 | 08-07 10:00 | stop_loss | 2 | -1.49 | +| SHIB | 08-07 04:00 | 08-07 12:00 | take_profit | 8 | +1.49 | +| BONK | 08-07 10:00 | 08-07 13:00 | stop_loss | 3 | -1.49 | +| ATOM | 08-07 05:00 | 08-07 14:00 | stop_loss | 9 | -1.49 | +| SUI | 08-06 10:00 | 08-07 14:00 | stop_loss | 28 | -1.49 | +| TIA | 08-07 11:00 | 08-07 14:00 | stop_loss | 3 | -1.49 | +| ATOM | 08-07 14:00 | 08-07 15:00 | take_profit | 1 | +1.49 | +| NEAR | 08-07 14:00 | 08-07 16:00 | stop_loss | 2 | -1.49 | +| UNI | 08-07 14:00 | 08-07 16:00 | take_profit | 2 | +1.49 | +| FIL | 08-07 14:00 | 08-07 17:00 | stop_loss | 3 | -1.49 | +| INJ | 08-07 08:00 | 08-07 17:00 | stop_loss | 9 | -1.49 | +| NEAR | 08-07 16:00 | 08-07 20:00 | stop_loss | 4 | -1.49 | +| APT | 08-07 14:00 | 08-07 21:00 | stop_loss | 7 | -1.49 | +| BONK | 08-07 20:00 | 08-08 01:00 | take_profit | 5 | +1.49 | +| FIL | 08-07 18:00 | 08-08 03:00 | take_profit | 9 | +1.49 | +| WIF | 08-07 14:00 | 08-08 03:00 | confirmed_bearish_exit | 13 | +1.38 | +| NEAR | 08-08 02:00 | 08-08 07:00 | trailing_stop | 5 | -0.58 | +| SHIB | 08-07 14:00 | 08-08 07:00 | take_profit | 17 | +1.49 | +| OP | 08-07 19:00 | 08-08 10:00 | take_profit | 15 | +1.49 | +| INJ | 08-08 10:00 | 08-08 11:00 | stop_loss | 1 | -1.49 | +| INJ | 08-08 13:00 | 08-08 17:00 | trailing_stop | 4 | +0.06 | +| ETC | 08-07 17:00 | 08-09 01:00 | trailing_stop | 32 | -0.02 | +| RENDER | 08-07 14:00 | 08-09 02:00 | take_profit | 36 | +1.49 | +| ARB | 08-09 00:00 | 08-09 08:00 | stop_loss | 8 | -1.49 | +| ATOM | 08-09 00:00 | 08-09 11:00 | stop_loss | 11 | -1.49 | +| LTC | 08-08 05:00 | 08-09 14:00 | take_profit | 33 | +1.49 | +| SHIB | 08-08 22:00 | 08-09 21:00 | take_profit | 23 | +1.49 | +| APT | 08-09 05:00 | 08-09 22:00 | stop_loss | 17 | -1.49 | +| AVAX | 08-08 22:00 | 08-09 22:00 | trailing_stop | 24 | -0.28 | +| INJ | 08-08 17:00 | 08-09 22:00 | stop_loss | 29 | -1.49 | +| SUI | 08-09 04:00 | 08-09 22:00 | trailing_stop | 18 | -0.17 | +| TIA | 08-08 22:00 | 08-09 22:00 | stop_loss | 24 | -1.49 | +| ETC | 08-09 08:00 | 08-09 23:00 | stop_loss | 15 | -1.49 | +| INJ | 08-09 22:00 | 08-09 23:00 | stop_loss | 1 | -1.49 | +| TIA | 08-09 22:00 | 08-09 23:00 | stop_loss | 1 | -1.49 | +| BONK | 08-09 23:00 | 08-10 00:00 | stop_loss | 1 | -1.49 | +| KAS | 08-09 22:00 | 08-10 00:00 | stop_loss | 2 | -1.49 | +| NEAR | 08-09 23:00 | 08-10 02:00 | trailing_stop | 3 | -0.22 | +| RENDER | 08-09 23:00 | 08-10 03:00 | stop_loss | 4 | -1.49 | +| INJ | 08-09 23:00 | 08-10 04:00 | take_profit | 5 | +1.49 | +| LTC | 08-09 22:00 | 08-10 04:00 | stop_loss | 6 | -1.49 | +| TIA | 08-09 23:00 | 08-10 04:00 | trailing_stop | 5 | -0.56 | +| AVAX | 08-09 23:00 | 08-10 05:00 | take_profit | 6 | +1.49 | +| ETC | 08-09 23:00 | 08-10 06:00 | take_profit | 7 | +1.49 | +| FET | 08-09 23:00 | 08-10 06:00 | take_profit | 7 | +1.49 | +| RENDER | 08-10 03:00 | 08-10 07:00 | take_profit | 4 | +1.49 | +| APT | 08-09 23:00 | 08-10 09:00 | trailing_stop | 10 | -0.19 | +| FIL | 08-09 22:00 | 08-10 11:00 | stop_loss | 13 | -1.49 | +| LTC | 08-10 07:00 | 08-10 15:00 | stop_loss | 8 | -1.49 | +| SUI | 08-09 23:00 | 08-10 15:00 | trailing_stop | 16 | -0.32 | +| KAS | 08-10 07:00 | 08-10 18:00 | stop_loss | 11 | -1.49 | +| BONK | 08-10 20:00 | 08-10 21:00 | stop_loss | 1 | -1.49 | +| SEI | 08-09 23:00 | 08-10 21:00 | trailing_stop | 22 | -0.43 | +| SHIB | 08-10 15:00 | 08-10 21:00 | stop_loss | 6 | -1.49 | +| TIA | 08-10 20:00 | 08-10 21:00 | stop_loss | 1 | -1.49 | +| WIF | 08-10 09:00 | 08-10 21:00 | stop_loss | 12 | -1.49 | +| RENDER | 08-10 10:00 | 08-10 22:00 | stop_loss | 12 | -1.49 | +| SEI | 08-10 21:00 | 08-10 23:00 | stop_loss | 2 | -1.49 | +| BONK | 08-10 21:00 | 08-11 00:00 | trailing_stop | 3 | -0.47 | +| RENDER | 08-10 22:00 | 08-11 00:00 | stop_loss | 2 | -1.49 | +| SHIB | 08-10 21:00 | 08-11 01:00 | stop_loss | 4 | -1.49 | +| AVAX | 08-10 21:00 | 08-11 02:00 | take_profit | 5 | +1.49 | +| FIL | 08-10 16:00 | 08-11 02:00 | take_profit | 10 | +1.49 | +| INJ | 08-11 00:00 | 08-11 02:00 | trailing_stop | 2 | -0.06 | +| KAS | 08-10 21:00 | 08-11 02:00 | take_profit | 5 | +1.49 | +| TIA | 08-10 21:00 | 08-11 04:00 | stop_loss | 7 | -1.49 | +| UNI | 08-10 15:00 | 08-11 04:00 | take_profit | 13 | +1.49 | +| BONK | 08-11 03:00 | 08-11 05:00 | stop_loss | 2 | -1.49 | +| BONK | 08-11 05:00 | 08-11 06:00 | stop_loss | 1 | -1.49 | +| TIA | 08-11 04:00 | 08-11 06:00 | stop_loss | 2 | -1.49 | +| BONK | 08-11 06:00 | 08-11 07:00 | stop_loss | 1 | -1.49 | +| PEPE | 08-10 22:00 | 08-11 07:00 | stop_loss | 9 | -1.49 | +| WIF | 08-10 23:00 | 08-11 07:00 | trailing_stop | 8 | -0.58 | +| TRX | 08-05 06:00 | 08-11 09:00 | take_profit | 147 | +1.49 | +| ATOM | 08-11 05:00 | 08-11 10:00 | take_profit | 5 | +1.49 | +| RENDER | 08-11 00:00 | 08-11 10:00 | stop_loss | 10 | -1.49 | +| NEAR | 08-10 19:00 | 08-11 12:00 | stop_loss | 17 | -1.49 | +| BONK | 08-11 07:00 | 08-11 14:00 | stop_loss | 7 | -1.49 | +| SEI | 08-10 23:00 | 08-11 14:00 | stop_loss | 15 | -1.49 | +| SHIB | 08-11 07:00 | 08-11 14:00 | stop_loss | 7 | -1.49 | +| SUI | 08-10 21:00 | 08-11 14:00 | stop_loss | 17 | -1.49 | +| UNI | 08-11 12:00 | 08-11 14:00 | stop_loss | 2 | -1.49 | +| APT | 08-11 10:00 | 08-11 15:00 | stop_loss | 5 | -1.49 | +| ARB | 08-11 14:00 | 08-11 15:00 | stop_loss | 1 | -1.49 | +| AVAX | 08-11 14:00 | 08-11 15:00 | stop_loss | 1 | -1.49 | +| ETC | 08-10 16:00 | 08-11 15:00 | stop_loss | 23 | -1.49 | +| FET | 08-10 22:00 | 08-11 15:00 | stop_loss | 17 | -1.49 | +| FIL | 08-11 14:00 | 08-11 15:00 | stop_loss | 1 | -1.49 | +| TIA | 08-11 14:00 | 08-11 15:00 | stop_loss | 1 | -1.49 | +| UNI | 08-11 14:00 | 08-11 15:00 | stop_loss | 1 | -1.49 | +| WIF | 08-11 14:00 | 08-11 15:00 | stop_loss | 1 | -1.49 | +| OP | 08-11 14:00 | 08-11 16:00 | stop_loss | 2 | -1.49 | +| FIL | 08-11 15:00 | 08-11 19:00 | take_profit | 4 | +1.49 | +| NEAR | 08-11 14:00 | 08-11 19:00 | take_profit | 5 | +1.49 | +| OP | 08-11 16:00 | 08-11 19:00 | trailing_stop | 3 | -0.03 | +| APT | 08-11 15:00 | 08-11 20:00 | take_profit | 5 | +1.49 | +| WIF | 08-11 15:00 | 08-11 20:00 | take_profit | 5 | +1.49 | +| ARB | 08-11 15:00 | 08-11 21:00 | confirmed_bearish_exit | 6 | +0.52 | +| SUI | 08-11 14:00 | 08-11 21:00 | take_profit | 7 | +1.49 | +| PEPE | 08-11 14:00 | 08-11 22:00 | take_profit | 8 | +1.49 | +| TIA | 08-11 15:00 | 08-11 23:00 | take_profit | 8 | +1.49 | +| FET | 08-11 16:00 | 08-12 01:00 | take_profit | 9 | +1.49 | +| UNI | 08-11 15:00 | 08-12 01:00 | take_profit | 10 | +1.49 | +| AVAX | 08-11 15:00 | 08-12 05:00 | confirmed_bearish_exit | 14 | +0.73 | +| KAS | 08-11 16:00 | 08-12 06:00 | trailing_stop | 14 | -0.36 | +| UNI | 08-12 01:00 | 08-12 06:00 | stop_loss | 5 | -1.49 | +| ETC | 08-11 15:00 | 08-12 07:00 | trailing_stop | 16 | -0.29 | +| UNI | 08-12 07:00 | 08-12 08:00 | stop_loss | 1 | -1.49 | +| BONK | 08-12 12:00 | 08-12 13:00 | stop_loss | 1 | -1.49 | +| APT | 08-12 08:00 | 08-12 14:00 | trailing_stop | 6 | -0.65 | +| ARB | 08-12 13:00 | 08-12 14:00 | stop_loss | 1 | -1.49 | +| BONK | 08-12 13:00 | 08-12 14:00 | stop_loss | 1 | -1.49 | +| SEI | 08-11 15:00 | 08-12 14:00 | trailing_stop | 23 | -0.69 | +| UNI | 08-12 08:00 | 08-12 14:00 | stop_loss | 6 | -1.49 | +| RENDER | 08-12 14:00 | 08-12 15:00 | stop_loss | 1 | -1.49 | +| KAS | 08-12 14:00 | 08-12 16:00 | stop_loss | 2 | -1.49 | +| ATOM | 08-12 09:00 | 08-12 17:00 | stop_loss | 8 | -1.49 | +| BONK | 08-12 14:00 | 08-12 19:00 | take_profit | 5 | +1.49 | +| FIL | 08-12 10:00 | 08-12 19:00 | stop_loss | 9 | -1.49 | +| ARB | 08-12 19:00 | 08-12 20:00 | stop_loss | 1 | -1.49 | +| INJ | 08-12 12:00 | 08-12 20:00 | take_profit | 8 | +1.49 | +| ARB | 08-12 20:00 | 08-12 21:00 | stop_loss | 1 | -1.49 | +| BONK | 08-12 19:00 | 08-12 21:00 | stop_loss | 2 | -1.49 | +| FIL | 08-12 19:00 | 08-12 21:00 | stop_loss | 2 | -1.49 | +| OP | 08-12 14:00 | 08-12 21:00 | stop_loss | 7 | -1.49 | +| PEPE | 08-12 14:00 | 08-12 21:00 | stop_loss | 7 | -1.49 | +| ARB | 08-12 21:00 | 08-12 22:00 | stop_loss | 1 | -1.49 | +| OP | 08-12 21:00 | 08-12 22:00 | stop_loss | 1 | -1.49 | +| PEPE | 08-12 21:00 | 08-12 22:00 | stop_loss | 1 | -1.49 | +| SUI | 08-12 14:00 | 08-12 22:00 | stop_loss | 8 | -1.49 | +| WIF | 08-12 21:00 | 08-12 22:00 | stop_loss | 1 | -1.49 | +| ARB | 08-12 22:00 | 08-12 23:00 | stop_loss | 1 | -1.49 | +| KAS | 08-12 16:00 | 08-12 23:00 | stop_loss | 7 | -1.49 | +| PEPE | 08-12 22:00 | 08-12 23:00 | stop_loss | 1 | -1.49 | +| OP | 08-12 22:00 | 08-13 00:00 | stop_loss | 2 | -1.49 | +| BONK | 08-12 21:00 | 08-13 02:00 | trailing_stop | 5 | -0.37 | +| PEPE | 08-12 23:00 | 08-13 02:00 | trailing_stop | 3 | -0.59 | +| SEI | 08-12 21:00 | 08-13 02:00 | take_profit | 5 | +1.49 | +| APT | 08-12 21:00 | 08-13 03:00 | take_profit | 6 | +1.49 | +| ARB | 08-12 23:00 | 08-13 03:00 | take_profit | 4 | +1.49 | +| OP | 08-13 00:00 | 08-13 03:00 | trailing_stop | 3 | -0.07 | +| WIF | 08-13 00:00 | 08-13 03:00 | take_profit | 3 | +1.49 | +| SHIB | 08-13 00:00 | 08-13 04:00 | take_profit | 4 | +1.49 | +| UNI | 08-12 18:00 | 08-13 07:00 | take_profit | 13 | +1.49 | +| ARB | 08-13 04:00 | 08-13 08:00 | stop_loss | 4 | -1.49 | +| PEPE | 08-13 05:00 | 08-13 08:00 | stop_loss | 3 | -1.49 | +| FIL | 08-12 21:00 | 08-13 09:00 | trailing_stop | 12 | +0.01 | +| PEPE | 08-13 08:00 | 08-13 09:00 | trailing_stop | 1 | -0.60 | +| ATOM | 08-13 02:00 | 08-13 11:00 | take_profit | 9 | +1.49 | +| ARB | 08-13 08:00 | 08-13 16:00 | trailing_stop | 8 | -0.64 | +| OP | 08-13 07:00 | 08-13 16:00 | stop_loss | 9 | -1.49 | +| KAS | 08-13 00:00 | 08-13 23:00 | stop_loss | 23 | -1.49 | +| NEAR | 08-13 18:00 | 08-14 00:00 | stop_loss | 6 | -1.49 | +| PEPE | 08-13 17:00 | 08-14 01:00 | take_profit | 8 | +1.49 | +| INJ | 08-13 16:00 | 08-14 03:00 | stop_loss | 11 | -1.49 | +| UNI | 08-13 13:00 | 08-14 03:00 | stop_loss | 14 | -1.49 | +| APT | 08-14 02:00 | 08-14 04:00 | stop_loss | 2 | -1.49 | +| NEAR | 08-14 00:00 | 08-14 04:00 | stop_loss | 4 | -1.49 | +| SEI | 08-13 18:00 | 08-14 06:00 | stop_loss | 12 | -1.49 | +| APT | 08-14 04:00 | 08-14 07:00 | stop_loss | 3 | -1.49 | +| WIF | 08-13 19:00 | 08-14 07:00 | stop_loss | 12 | -1.49 | +| LTC | 08-12 14:00 | 08-14 08:00 | stop_loss | 42 | -1.49 | +| SHIB | 08-13 20:00 | 08-14 08:00 | trailing_stop | 12 | -0.14 | +| TIA | 08-14 06:00 | 08-14 09:00 | stop_loss | 3 | -1.49 | +| AVAX | 08-13 20:00 | 08-14 10:00 | stop_loss | 14 | -1.49 | +| INJ | 08-14 03:00 | 08-14 10:00 | stop_loss | 7 | -1.49 | +| TIA | 08-14 09:00 | 08-14 11:00 | stop_loss | 2 | -1.49 | +| APT | 08-14 07:00 | 08-14 12:00 | stop_loss | 5 | -1.49 | +| UNI | 08-14 11:00 | 08-14 12:00 | trailing_stop | 1 | -0.34 | +| INJ | 08-14 11:00 | 08-14 14:00 | stop_loss | 3 | -1.49 | +| RENDER | 08-14 09:00 | 08-14 14:00 | trailing_stop | 5 | -0.67 | +| SEI | 08-14 06:00 | 08-14 14:00 | stop_loss | 8 | -1.49 | +| INJ | 08-14 14:00 | 08-14 15:00 | stop_loss | 1 | -1.49 | +| LTC | 08-14 12:00 | 08-14 15:00 | stop_loss | 3 | -1.49 | +| UNI | 08-14 12:00 | 08-14 15:00 | stop_loss | 3 | -1.49 | +| INJ | 08-14 15:00 | 08-14 16:00 | trailing_stop | 1 | -0.20 | +| WIF | 08-14 09:00 | 08-14 16:00 | take_profit | 7 | +1.49 | +| FIL | 08-14 09:00 | 08-14 17:00 | take_profit | 8 | +1.49 | +| PEPE | 08-14 10:00 | 08-14 17:00 | take_profit | 7 | +1.49 | +| ATOM | 08-14 16:00 | 08-14 18:00 | stop_loss | 2 | -1.49 | +| LTC | 08-14 15:00 | 08-14 19:00 | stop_loss | 4 | -1.49 | +| ATOM | 08-14 18:00 | 08-14 20:00 | stop_loss | 2 | -1.49 | +| ARB | 08-14 09:00 | 08-14 21:00 | stop_loss | 12 | -1.49 | +| APT | 08-14 17:00 | 08-14 22:00 | stop_loss | 5 | -1.49 | +| ARB | 08-14 22:00 | 08-14 23:00 | trailing_stop | 1 | -0.36 | +| TIA | 08-14 11:00 | 08-14 23:00 | trailing_stop | 12 | +0.09 | +| AVAX | 08-14 14:00 | 08-15 00:00 | take_profit | 10 | +1.49 | +| OP | 08-14 17:00 | 08-15 04:00 | take_profit | 11 | +1.49 | +| UNI | 08-15 00:00 | 08-15 04:00 | take_profit | 4 | +1.49 | +| ATOM | 08-14 20:00 | 08-15 05:00 | trailing_stop | 9 | -0.04 | +| INJ | 08-15 01:00 | 08-15 05:00 | stop_loss | 4 | -1.49 | +| FET | 08-14 18:00 | 08-15 07:00 | stop_loss | 13 | -1.49 | +| ETC | 08-14 03:00 | 08-15 09:00 | take_profit | 30 | +1.49 | +| TRX | 08-12 00:00 | 08-15 10:00 | stop_loss | 82 | -1.49 | +| SUI | 08-14 10:00 | 08-15 13:00 | period_end | 27 | +0.46 | +| SEI | 08-14 18:00 | 08-15 13:00 | period_end | 19 | -0.60 | +| LTC | 08-15 01:00 | 08-15 13:00 | period_end | 12 | +0.11 | +| SHIB | 08-15 11:00 | 08-15 13:00 | period_end | 2 | -0.06 | +| TRX | 08-15 11:00 | 08-15 13:00 | period_end | 2 | -0.47 | +| ATOM | 08-15 12:00 | 08-15 13:00 | period_end | 1 | -0.57 | +| WIF | 08-15 13:00 | 08-15 13:00 | period_end | 0 | -0.50 | + +## Допущения + +- Цены: binance 1h как прокси разрешённых бирж (kucoin/bitstamp/mexc — нет месяца локальной истории). +- ML-модель обучена на данных, включающих тестовый месяц (in-sample только для ML-части; индикаторная часть честная). +- Funding/orderbook нейтральны (0 / BALANCED). +- TP/SL исполняются по уровням при пересечении high/low бара; SL приоритетнее TP. +- Свободный профиль: без лимита позиций / DD-kill / daily-kill; каждый вход — фиксированные $200, лимит кэша не применяется (синтетический учёт). diff --git a/docs/TRADING_BACKTEST_6M_2026-08-15_RU.md b/docs/TRADING_BACKTEST_6M_2026-08-15_RU.md new file mode 100644 index 000000000..7b5ac1808 --- /dev/null +++ b/docs/TRADING_BACKTEST_6M_2026-08-15_RU.md @@ -0,0 +1,80 @@ +# Тестовый замер: 6 мес. торговли по текущему алгоритму (с ML gate) (Directional v2) + +**Период:** 2026-02-15 13:00 UTC → 2026-08-15 13:00 UTC (6 календарн. мес., 4345 баров 1h) +**Стартовый капитал:** $1,000.00 + +## Результат алгоритма + +- **Итоговый капитал: $997.01** +- **PnL портфеля: -0.30%** +- Сделок: 1 (win 0, 0.0%) +- Средняя сделка: -1.494% | Комиссии и проскальзывание: $0.90 + +## Реальная динамика валют (Buy&Hold за тот же месяц) + +- **Средняя по 33 валютам: -20.22%** (медиана -28.12%) +- Лучшая: **NEAR +55.85%** +- Худшая: **BONK -64.12%** + +| Валюта | Buy&Hold % | +|---|---:| +| NEAR | +55.85 | +| INJ | +35.51 | +| TRX | +18.15 | +| TON | +9.59 | +| LINK | +7.92 | +| BNB | -1.21 | +| ETH | -5.92 | +| UNI | -6.38 | +| BTC | -8.51 | +| TIA | -9.87 | +| RENDER | -10.41 | +| SOL | -13.21 | +| LTC | -18.88 | +| KAS | -21.48 | +| FET | -22.40 | +| FIL | -27.69 | +| POL | -28.12 | +| ETC | -28.18 | +| AVAX | -29.20 | +| SUI | -29.90 | +| SHIB | -30.28 | +| ATOM | -30.28 | +| XRP | -34.04 | +| ARB | -34.71 | +| DOGE | -34.88 | +| ADA | -36.53 | +| WIF | -40.95 | +| APT | -41.67 | +| PEPE | -42.14 | +| DOT | -42.77 | +| SEI | -46.59 | +| OP | -54.05 | +| BONK | -64.12 | + +## Сравнение + +- Алгоритм -0.30% vs средняя валюта -20.22% → **+19.92 п.п.** +- Алгоритм -0.30% vs лучшая валюта (NEAR +55.85%) +- Алгоритм -0.30% vs худшая валюта (BONK -64.12%) + +## Блокировки входов (как в продакшене) + +- ml_not_confirmed: 11633 +- global_drawdown_kill: 95 +- rl_veto: 16 +- OK: 1 + +## Сделки + +| Актив | Вход | Выход | Причина | Баров | PnL % | +|---|---|---|---|---:|---:| +| OP | 02-20 02:00 | 02-20 03:00 | stop_loss | 1 | -1.49 | + +## Допущения + +- Цены: binance 1h как прокси разрешённых бирж (kucoin/bitstamp/mexc — нет месяца локальной истории). +- ML-модель обучена на данных, включающих тестовый месяц (in-sample только для ML-части; индикаторная часть честная). +- Funding/orderbook нейтральны (0 / BALANCED). +- TP/SL исполняются по уровням при пересечении high/low бара; SL приоритетнее TP. +- Все активы обрабатываются синхронно по барам; портфель единый ($1000), максимум 1 позиция (owner-профиль). diff --git a/docs/TRADING_BACKTEST_6M_FREE_ML_2026-08-15_RU.md b/docs/TRADING_BACKTEST_6M_FREE_ML_2026-08-15_RU.md new file mode 100644 index 000000000..a9645fa5b --- /dev/null +++ b/docs/TRADING_BACKTEST_6M_FREE_ML_2026-08-15_RU.md @@ -0,0 +1,203 @@ +# Тестовый замер: 6 мес. торговли по сигналам без портфельных kill-switch (свободный профиль, с ML gate) (Directional v2) + +**Период:** 2026-02-15 13:00 UTC → 2026-08-15 13:00 UTC (6 календарн. мес., 4345 баров 1h) +**Стартовый капитал:** $1,000.00 + +## Результат алгоритма + +- **Итоговый капитал: $1,008.79** +- **PnL портфеля: +0.88%** +- Сделок: 95 (win 45, 47.4%) +- Средняя сделка: +0.046% | Комиссии и проскальзывание: $85.56 + +## Реальная динамика валют (Buy&Hold за тот же месяц) + +- **Средняя по 33 валютам: -20.28%** (медиана -28.02%) +- Лучшая: **NEAR +55.57%** +- Худшая: **BONK -64.27%** + +| Валюта | Buy&Hold % | +|---|---:| +| NEAR | +55.57 | +| INJ | +34.99 | +| TRX | +18.11 | +| TON | +9.59 | +| LINK | +7.60 | +| BNB | -1.22 | +| ETH | -5.94 | +| UNI | -6.35 | +| BTC | -8.56 | +| TIA | -9.87 | +| RENDER | -10.48 | +| SOL | -13.18 | +| LTC | -18.94 | +| KAS | -21.48 | +| FET | -22.46 | +| FIL | -27.76 | +| POL | -28.02 | +| ETC | -28.18 | +| AVAX | -29.22 | +| SUI | -30.04 | +| SHIB | -30.28 | +| ATOM | -30.28 | +| XRP | -34.05 | +| DOGE | -34.87 | +| ARB | -34.88 | +| ADA | -36.57 | +| WIF | -40.99 | +| APT | -41.56 | +| PEPE | -42.36 | +| DOT | -42.63 | +| SEI | -46.56 | +| OP | -54.10 | +| BONK | -64.27 | + +## Сравнение + +- Алгоритм +0.88% vs средняя валюта -20.28% → **+21.16 п.п.** +- Алгоритм +0.88% vs лучшая валюта (NEAR +55.57%) +- Алгоритм +0.88% vs худшая валюта (BONK -64.27%) + +## Качество сигналов (per-asset) + +- Profit factor: 1.07 (gross +$134.19 / -$125.41) +- Максимум одновременных позиций: 12 + +| Актив | Сделок | PnL $ | +|---|---:|---:| +| WIF | 6 | +5.95 | +| FIL | 8 | +5.95 | +| ARB | 5 | +5.44 | +| AVAX | 3 | +5.38 | +| BONK | 9 | +5.28 | +| SHIB | 1 | +2.98 | +| NEAR | 3 | +2.98 | +| RENDER | 3 | +2.98 | +| SUI | 5 | +0.60 | +| ATOM | 2 | -0.01 | +| LTC | 2 | -0.01 | +| INJ | 4 | -0.01 | +| FET | 4 | -0.01 | +| TIA | 6 | -0.02 | +| APT | 7 | -0.24 | +| KAS | 1 | -1.39 | +| ETC | 1 | -2.99 | +| UNI | 9 | -3.95 | +| OP | 6 | -4.00 | +| TON | 4 | -4.17 | +| SEI | 2 | -5.98 | +| PEPE | 4 | -5.98 | + +## Блокировки входов (свободный профиль) + +- ml_not_confirmed: 11613 +- OK: 95 +- rl_veto: 16 + +## Сделки + +| Актив | Вход | Выход | Причина | Баров | PnL % | +|---|---|---|---|---:|---:| +| OP | 02-20 02:00 | 02-20 03:00 | stop_loss | 1 | -1.49 | +| ARB | 02-23 01:00 | 02-23 02:00 | trailing_stop | 1 | -0.26 | +| BONK | 02-23 01:00 | 02-23 02:00 | trailing_stop | 1 | -0.33 | +| SUI | 02-23 01:00 | 02-23 02:00 | trailing_stop | 1 | -0.66 | +| OP | 02-23 01:00 | 02-23 04:00 | trailing_stop | 3 | -0.50 | +| TIA | 02-23 01:00 | 02-23 04:00 | stop_loss | 3 | -1.49 | +| AVAX | 02-23 01:00 | 02-23 06:00 | take_profit | 5 | +1.49 | +| FIL | 02-23 01:00 | 02-23 06:00 | take_profit | 5 | +1.49 | +| UNI | 02-23 01:00 | 02-23 06:00 | take_profit | 5 | +1.49 | +| WIF | 02-23 01:00 | 02-23 06:00 | take_profit | 5 | +1.49 | +| ARB | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| BONK | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| ETC | 02-28 06:00 | 02-28 07:00 | stop_loss | 1 | -1.49 | +| FET | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| FIL | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| INJ | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| OP | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| PEPE | 02-28 06:00 | 02-28 07:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| SUI | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| TIA | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| WIF | 02-28 06:00 | 02-28 07:00 | stop_loss | 1 | -1.49 | +| FIL | 03-10 18:00 | 03-10 19:00 | stop_loss | 1 | -1.49 | +| KAS | 03-29 14:00 | 03-29 18:00 | trailing_stop | 4 | -0.70 | +| UNI | 04-02 04:00 | 04-02 13:00 | stop_loss | 9 | -1.49 | +| UNI | 04-02 13:00 | 04-02 14:00 | take_profit | 1 | +1.49 | +| FIL | 05-10 20:00 | 05-10 22:00 | take_profit | 2 | +1.49 | +| TON | 05-11 03:00 | 05-11 04:00 | stop_loss | 1 | -1.49 | +| APT | 05-15 13:00 | 05-15 16:00 | take_profit | 3 | +1.49 | +| BONK | 05-15 13:00 | 05-15 16:00 | take_profit | 3 | +1.49 | +| TIA | 05-15 13:00 | 05-15 16:00 | take_profit | 3 | +1.49 | +| WIF | 05-15 13:00 | 05-15 16:00 | take_profit | 3 | +1.49 | +| INJ | 05-15 13:00 | 05-15 17:00 | take_profit | 4 | +1.49 | +| INJ | 05-23 05:00 | 05-23 07:00 | stop_loss | 2 | -1.49 | +| UNI | 05-27 23:00 | 05-28 01:00 | stop_loss | 2 | -1.49 | +| FET | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-02 15:00 | 06-02 16:00 | stop_loss | 1 | -1.49 | +| TON | 06-03 20:00 | 06-03 21:00 | take_profit | 1 | +1.49 | +| APT | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| BONK | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| INJ | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| OP | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| SUI | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| TIA | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| TON | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| UNI | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| APT | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| ARB | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| BONK | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| FET | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| OP | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| PEPE | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| SUI | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| TIA | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| UNI | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| WIF | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| TON | 06-04 02:00 | 06-04 04:00 | trailing_stop | 2 | -0.59 | +| SEI | 06-04 02:00 | 06-04 05:00 | stop_loss | 3 | -1.49 | +| RENDER | 06-04 07:00 | 06-04 08:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-04 14:00 | 06-04 15:00 | take_profit | 1 | +1.49 | +| FIL | 06-05 17:00 | 06-05 18:00 | stop_loss | 1 | -1.49 | +| APT | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| ARB | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| ATOM | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| AVAX | 06-06 04:00 | 06-06 05:00 | take_profit | 1 | +1.49 | +| BONK | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| FET | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| LTC | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| SEI | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| TIA | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| WIF | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| APT | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.11 | +| AVAX | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.29 | +| SUI | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.53 | +| UNI | 06-18 16:00 | 06-18 19:00 | trailing_stop | 3 | -0.13 | +| FIL | 06-23 08:00 | 06-23 13:00 | take_profit | 5 | +1.49 | +| FIL | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| LTC | 06-24 17:00 | 06-24 20:00 | take_profit | 3 | +1.49 | +| APT | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| ARB | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| ATOM | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| BONK | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| FIL | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| NEAR | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| RENDER | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| SHIB | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| WIF | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| APT | 06-25 14:00 | 06-25 15:00 | stop_loss | 1 | -1.49 | +| BONK | 07-06 17:00 | 07-06 18:00 | stop_loss | 1 | -1.49 | +| BONK | 07-06 18:00 | 07-06 21:00 | take_profit | 3 | +1.49 | +| OP | 07-27 22:00 | 07-27 23:00 | stop_loss | 1 | -1.49 | +| UNI | 08-12 07:00 | 08-12 08:00 | stop_loss | 1 | -1.49 | +| UNI | 08-14 11:00 | 08-14 12:00 | trailing_stop | 1 | -0.34 | + +## Допущения + +- Цены: binance 1h как прокси разрешённых бирж (kucoin/bitstamp/mexc — нет месяца локальной истории). +- ML-модель обучена на данных, включающих тестовый месяц (in-sample только для ML-части; индикаторная часть честная). +- Funding/orderbook нейтральны (0 / BALANCED). +- TP/SL исполняются по уровням при пересечении high/low бара; SL приоритетнее TP. +- Свободный профиль: без лимита позиций / DD-kill / daily-kill; каждый вход — фиксированные $200, лимит кэша не применяется (синтетический учёт). diff --git a/docs/TRADING_BACKTEST_6M_FREE_NO_ML_2026-08-15_RU.md b/docs/TRADING_BACKTEST_6M_FREE_NO_ML_2026-08-15_RU.md new file mode 100644 index 000000000..1ac8935d2 --- /dev/null +++ b/docs/TRADING_BACKTEST_6M_FREE_NO_ML_2026-08-15_RU.md @@ -0,0 +1,4947 @@ +# Тестовый замер: 6 мес. торговли по сигналам без портфельных kill-switch (свободный профиль, БЕЗ ML gate) (Directional v2) + +**Период:** 2026-02-15 13:00 UTC → 2026-08-15 13:00 UTC (6 календарн. мес., 4345 баров 1h) +**Стартовый капитал:** $1,000.00 + +## Результат алгоритма + +- **Итоговый капитал: $-5,150.57** +- **PnL портфеля: -615.06%** +- Сделок: 4839 (win 1165, 24.1%) +- Средняя сделка: -0.636% | Комиссии и проскальзывание: $4348.04 + +## Реальная динамика валют (Buy&Hold за тот же месяц) + +- **Средняя по 33 валютам: -20.28%** (медиана -28.02%) +- Лучшая: **NEAR +55.57%** +- Худшая: **BONK -64.27%** + +| Валюта | Buy&Hold % | +|---|---:| +| NEAR | +55.57 | +| INJ | +34.99 | +| TRX | +18.11 | +| TON | +9.59 | +| LINK | +7.60 | +| BNB | -1.22 | +| ETH | -5.94 | +| UNI | -6.35 | +| BTC | -8.56 | +| TIA | -9.87 | +| RENDER | -10.48 | +| SOL | -13.18 | +| LTC | -18.94 | +| KAS | -21.48 | +| FET | -22.46 | +| FIL | -27.76 | +| POL | -28.02 | +| ETC | -28.18 | +| AVAX | -29.22 | +| SUI | -30.04 | +| SHIB | -30.28 | +| ATOM | -30.28 | +| XRP | -34.05 | +| DOGE | -34.87 | +| ARB | -34.88 | +| ADA | -36.57 | +| WIF | -40.99 | +| APT | -41.56 | +| PEPE | -42.36 | +| DOT | -42.63 | +| SEI | -46.56 | +| OP | -54.10 | +| BONK | -64.27 | + +## Сравнение + +- Алгоритм -615.06% vs средняя валюта -20.28% → **-594.78 п.п.** +- Алгоритм -615.06% vs лучшая валюта (NEAR +55.57%) +- Алгоритм -615.06% vs худшая валюта (BONK -64.27%) + +## Качество сигналов (per-asset) + +- Profit factor: 0.35 (gross +$3243.95 / -$9394.52) +- Максимум одновременных позиций: 23 + +| Актив | Сделок | PnL $ | +|---|---:|---:| +| TRX | 80 | -18.68 | +| LTC | 177 | -170.85 | +| TON | 156 | -198.32 | +| RENDER | 207 | -209.68 | +| SHIB | 193 | -209.77 | +| SUI | 216 | -255.62 | +| AVAX | 220 | -264.18 | +| UNI | 218 | -265.78 | +| ATOM | 215 | -266.79 | +| ETC | 192 | -271.17 | +| NEAR | 199 | -273.25 | +| KAS | 206 | -274.27 | +| PEPE | 229 | -283.51 | +| WIF | 227 | -283.52 | +| BONK | 238 | -297.79 | +| APT | 239 | -300.61 | +| SEI | 224 | -305.95 | +| TIA | 219 | -307.43 | +| INJ | 213 | -319.87 | +| FIL | 244 | -322.67 | +| FET | 251 | -329.41 | +| ARB | 237 | -342.04 | +| OP | 239 | -379.42 | + +## Блокировки входов (свободный профиль) + +- OK: 4839 +- rl_veto: 3634 + +## Сделки + +| Актив | Вход | Выход | Причина | Баров | PnL % | +|---|---|---|---|---:|---:| +| ARB | 02-15 13:00 | 02-15 14:00 | trailing_stop | 1 | -0.57 | +| BONK | 02-15 13:00 | 02-15 14:00 | trailing_stop | 1 | -0.64 | +| INJ | 02-15 13:00 | 02-15 14:00 | trailing_stop | 1 | -0.49 | +| PEPE | 02-15 13:00 | 02-15 14:00 | take_profit | 1 | +1.49 | +| RENDER | 02-15 13:00 | 02-15 14:00 | trailing_stop | 1 | -0.30 | +| SHIB | 02-15 13:00 | 02-15 14:00 | trailing_stop | 1 | -0.64 | +| SUI | 02-15 13:00 | 02-15 14:00 | trailing_stop | 1 | -0.53 | +| TIA | 02-15 13:00 | 02-15 14:00 | trailing_stop | 1 | -0.50 | +| UNI | 02-15 13:00 | 02-15 14:00 | trailing_stop | 1 | -0.45 | +| APT | 02-15 13:00 | 02-15 17:00 | stop_loss | 4 | -1.49 | +| ATOM | 02-15 13:00 | 02-15 17:00 | trailing_stop | 4 | -0.38 | +| AVAX | 02-15 13:00 | 02-15 17:00 | stop_loss | 4 | -1.49 | +| ETC | 02-15 13:00 | 02-15 17:00 | stop_loss | 4 | -1.49 | +| FET | 02-15 13:00 | 02-15 17:00 | stop_loss | 4 | -1.49 | +| FIL | 02-15 13:00 | 02-15 17:00 | stop_loss | 4 | -1.49 | +| KAS | 02-15 13:00 | 02-15 17:00 | stop_loss | 4 | -1.49 | +| LTC | 02-15 13:00 | 02-15 17:00 | trailing_stop | 4 | -0.36 | +| NEAR | 02-15 13:00 | 02-15 17:00 | stop_loss | 4 | -1.49 | +| OP | 02-15 13:00 | 02-15 17:00 | stop_loss | 4 | -1.49 | +| SEI | 02-15 13:00 | 02-15 17:00 | stop_loss | 4 | -1.49 | +| WIF | 02-15 13:00 | 02-15 17:00 | stop_loss | 4 | -1.49 | +| KAS | 02-15 17:00 | 02-15 18:00 | stop_loss | 1 | -1.49 | +| UNI | 02-15 17:00 | 02-15 18:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-15 17:00 | 02-15 19:00 | stop_loss | 2 | -1.49 | +| PEPE | 02-15 18:00 | 02-15 19:00 | stop_loss | 1 | -1.49 | +| FET | 02-15 21:00 | 02-15 22:00 | trailing_stop | 1 | -0.26 | +| KAS | 02-15 18:00 | 02-15 22:00 | trailing_stop | 4 | +0.12 | +| APT | 02-15 22:00 | 02-15 23:00 | stop_loss | 1 | -1.49 | +| INJ | 02-15 22:00 | 02-15 23:00 | stop_loss | 1 | -1.49 | +| NEAR | 02-15 18:00 | 02-15 23:00 | trailing_stop | 5 | -0.08 | +| OP | 02-15 22:00 | 02-15 23:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-15 22:00 | 02-15 23:00 | stop_loss | 1 | -1.49 | +| UNI | 02-15 18:00 | 02-15 23:00 | trailing_stop | 5 | -0.23 | +| INJ | 02-15 23:00 | 02-16 01:00 | stop_loss | 2 | -1.49 | +| KAS | 02-15 23:00 | 02-16 01:00 | stop_loss | 2 | -1.49 | +| FIL | 02-16 00:00 | 02-16 02:00 | stop_loss | 2 | -1.49 | +| OP | 02-15 23:00 | 02-16 02:00 | stop_loss | 3 | -1.49 | +| SUI | 02-16 00:00 | 02-16 02:00 | stop_loss | 2 | -1.49 | +| APT | 02-15 23:00 | 02-16 03:00 | stop_loss | 4 | -1.49 | +| KAS | 02-16 01:00 | 02-16 03:00 | stop_loss | 2 | -1.49 | +| BONK | 02-16 00:00 | 02-16 04:00 | trailing_stop | 4 | -0.04 | +| SHIB | 02-16 00:00 | 02-16 04:00 | trailing_stop | 4 | -0.50 | +| UNI | 02-15 23:00 | 02-16 04:00 | take_profit | 5 | +1.49 | +| WIF | 02-16 00:00 | 02-16 04:00 | trailing_stop | 4 | -0.42 | +| ARB | 02-15 23:00 | 02-16 05:00 | stop_loss | 6 | -1.49 | +| ATOM | 02-15 21:00 | 02-16 05:00 | trailing_stop | 8 | -0.39 | +| AVAX | 02-16 00:00 | 02-16 05:00 | stop_loss | 5 | -1.49 | +| ETC | 02-15 23:00 | 02-16 05:00 | stop_loss | 6 | -1.49 | +| FET | 02-15 23:00 | 02-16 05:00 | stop_loss | 6 | -1.49 | +| NEAR | 02-16 01:00 | 02-16 05:00 | stop_loss | 4 | -1.49 | +| SEI | 02-15 22:00 | 02-16 07:00 | stop_loss | 9 | -1.49 | +| INJ | 02-16 01:00 | 02-16 11:00 | trailing_stop | 10 | +0.04 | +| LTC | 02-16 05:00 | 02-16 11:00 | trailing_stop | 6 | -0.51 | +| TIA | 02-16 00:00 | 02-16 11:00 | stop_loss | 11 | -1.49 | +| BONK | 02-16 15:00 | 02-16 20:00 | trailing_stop | 5 | +0.13 | +| OP | 02-16 15:00 | 02-16 20:00 | take_profit | 5 | +1.49 | +| TIA | 02-16 15:00 | 02-16 20:00 | take_profit | 5 | +1.49 | +| FET | 02-16 15:00 | 02-16 21:00 | take_profit | 6 | +1.49 | +| TRX | 02-15 23:00 | 02-17 10:00 | trailing_stop | 35 | -0.08 | +| ARB | 02-17 10:00 | 02-17 13:00 | trailing_stop | 3 | -0.65 | +| ATOM | 02-17 12:00 | 02-17 13:00 | take_profit | 1 | +1.49 | +| ETC | 02-17 10:00 | 02-17 14:00 | trailing_stop | 4 | -0.67 | +| FET | 02-17 10:00 | 02-17 14:00 | stop_loss | 4 | -1.49 | +| NEAR | 02-17 10:00 | 02-17 14:00 | stop_loss | 4 | -1.49 | +| SEI | 02-17 11:00 | 02-17 14:00 | stop_loss | 3 | -1.49 | +| SUI | 02-17 11:00 | 02-17 14:00 | stop_loss | 3 | -1.49 | +| TIA | 02-17 12:00 | 02-17 14:00 | stop_loss | 2 | -1.49 | +| UNI | 02-17 11:00 | 02-17 14:00 | stop_loss | 3 | -1.49 | +| APT | 02-17 14:00 | 02-17 15:00 | trailing_stop | 1 | -0.62 | +| ARB | 02-17 14:00 | 02-17 15:00 | trailing_stop | 1 | -0.28 | +| FET | 02-17 14:00 | 02-17 15:00 | trailing_stop | 1 | -0.35 | +| FIL | 02-17 14:00 | 02-17 15:00 | trailing_stop | 1 | -0.13 | +| KAS | 02-17 14:00 | 02-17 15:00 | trailing_stop | 1 | +0.15 | +| LTC | 02-17 14:00 | 02-17 15:00 | stop_loss | 1 | -1.49 | +| OP | 02-17 14:00 | 02-17 15:00 | trailing_stop | 1 | -0.63 | +| RENDER | 02-17 14:00 | 02-17 15:00 | take_profit | 1 | +1.49 | +| TIA | 02-17 14:00 | 02-17 15:00 | trailing_stop | 1 | -0.58 | +| TON | 02-17 10:00 | 02-17 15:00 | stop_loss | 5 | -1.49 | +| AVAX | 02-17 14:00 | 02-17 16:00 | take_profit | 2 | +1.49 | +| ETC | 02-17 14:00 | 02-17 16:00 | take_profit | 2 | +1.49 | +| UNI | 02-17 14:00 | 02-17 16:00 | take_profit | 2 | +1.49 | +| APT | 02-17 17:00 | 02-17 18:00 | take_profit | 1 | +1.49 | +| LTC | 02-17 15:00 | 02-17 18:00 | take_profit | 3 | +1.49 | +| NEAR | 02-17 14:00 | 02-17 18:00 | take_profit | 4 | +1.49 | +| AVAX | 02-18 08:00 | 02-18 11:00 | stop_loss | 3 | -1.49 | +| WIF | 02-18 08:00 | 02-18 11:00 | stop_loss | 3 | -1.49 | +| APT | 02-18 12:00 | 02-18 13:00 | stop_loss | 1 | -1.49 | +| BONK | 02-18 12:00 | 02-18 13:00 | stop_loss | 1 | -1.49 | +| SUI | 02-18 12:00 | 02-18 13:00 | stop_loss | 1 | -1.49 | +| APT | 02-18 13:00 | 02-18 15:00 | take_profit | 2 | +1.49 | +| ARB | 02-18 13:00 | 02-18 15:00 | take_profit | 2 | +1.49 | +| AVAX | 02-18 13:00 | 02-18 15:00 | take_profit | 2 | +1.49 | +| BONK | 02-18 13:00 | 02-18 15:00 | take_profit | 2 | +1.49 | +| FET | 02-18 13:00 | 02-18 15:00 | take_profit | 2 | +1.49 | +| NEAR | 02-18 13:00 | 02-18 15:00 | take_profit | 2 | +1.49 | +| OP | 02-18 13:00 | 02-18 15:00 | take_profit | 2 | +1.49 | +| PEPE | 02-18 13:00 | 02-18 15:00 | take_profit | 2 | +1.49 | +| SHIB | 02-18 13:00 | 02-18 15:00 | take_profit | 2 | +1.49 | +| SUI | 02-18 13:00 | 02-18 15:00 | take_profit | 2 | +1.49 | +| TIA | 02-18 13:00 | 02-18 15:00 | take_profit | 2 | +1.49 | +| ARB | 02-18 17:00 | 02-18 18:00 | stop_loss | 1 | -1.49 | +| BONK | 02-18 16:00 | 02-18 18:00 | stop_loss | 2 | -1.49 | +| ETC | 02-18 13:00 | 02-18 18:00 | stop_loss | 5 | -1.49 | +| INJ | 02-18 17:00 | 02-18 18:00 | stop_loss | 1 | -1.49 | +| KAS | 02-18 16:00 | 02-18 18:00 | stop_loss | 2 | -1.49 | +| OP | 02-18 17:00 | 02-18 18:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-18 16:00 | 02-18 18:00 | stop_loss | 2 | -1.49 | +| SEI | 02-18 16:00 | 02-18 18:00 | stop_loss | 2 | -1.49 | +| SHIB | 02-18 17:00 | 02-18 18:00 | stop_loss | 1 | -1.49 | +| APT | 02-18 18:00 | 02-18 19:00 | stop_loss | 1 | -1.49 | +| ARB | 02-18 18:00 | 02-18 19:00 | stop_loss | 1 | -1.49 | +| BONK | 02-18 18:00 | 02-18 19:00 | stop_loss | 1 | -1.49 | +| ETC | 02-18 18:00 | 02-18 19:00 | stop_loss | 1 | -1.49 | +| FET | 02-18 18:00 | 02-18 19:00 | stop_loss | 1 | -1.49 | +| FIL | 02-18 18:00 | 02-18 19:00 | stop_loss | 1 | -1.49 | +| INJ | 02-18 18:00 | 02-18 19:00 | stop_loss | 1 | -1.49 | +| NEAR | 02-18 18:00 | 02-18 19:00 | stop_loss | 1 | -1.49 | +| OP | 02-18 18:00 | 02-18 19:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-18 18:00 | 02-18 19:00 | stop_loss | 1 | -1.49 | +| SUI | 02-18 18:00 | 02-18 19:00 | stop_loss | 1 | -1.49 | +| TIA | 02-18 18:00 | 02-18 19:00 | stop_loss | 1 | -1.49 | +| TRX | 02-17 10:00 | 02-18 19:00 | stop_loss | 33 | -1.49 | +| UNI | 02-18 18:00 | 02-18 19:00 | stop_loss | 1 | -1.49 | +| WIF | 02-18 18:00 | 02-18 19:00 | stop_loss | 1 | -1.49 | +| OP | 02-18 19:00 | 02-18 20:00 | stop_loss | 1 | -1.49 | +| ARB | 02-18 19:00 | 02-18 21:00 | stop_loss | 2 | -1.49 | +| OP | 02-18 20:00 | 02-18 21:00 | stop_loss | 1 | -1.49 | +| FET | 02-18 19:00 | 02-18 22:00 | stop_loss | 3 | -1.49 | +| INJ | 02-18 19:00 | 02-18 22:00 | stop_loss | 3 | -1.49 | +| NEAR | 02-18 19:00 | 02-18 22:00 | stop_loss | 3 | -1.49 | +| OP | 02-18 21:00 | 02-18 22:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-18 19:00 | 02-18 22:00 | stop_loss | 3 | -1.49 | +| RENDER | 02-18 19:00 | 02-18 22:00 | stop_loss | 3 | -1.49 | +| SHIB | 02-18 18:00 | 02-18 22:00 | stop_loss | 4 | -1.49 | +| SUI | 02-18 19:00 | 02-18 22:00 | stop_loss | 3 | -1.49 | +| UNI | 02-18 19:00 | 02-18 22:00 | stop_loss | 3 | -1.49 | +| OP | 02-18 22:00 | 02-18 23:00 | stop_loss | 1 | -1.49 | +| TIA | 02-18 19:00 | 02-19 00:00 | stop_loss | 5 | -1.49 | +| APT | 02-18 19:00 | 02-19 01:00 | trailing_stop | 6 | -0.57 | +| SEI | 02-18 18:00 | 02-19 01:00 | stop_loss | 7 | -1.49 | +| UNI | 02-18 22:00 | 02-19 01:00 | take_profit | 3 | +1.49 | +| FET | 02-19 04:00 | 02-19 05:00 | stop_loss | 1 | -1.49 | +| KAS | 02-18 18:00 | 02-19 05:00 | stop_loss | 11 | -1.49 | +| PEPE | 02-19 03:00 | 02-19 05:00 | stop_loss | 2 | -1.49 | +| SHIB | 02-19 03:00 | 02-19 05:00 | stop_loss | 2 | -1.49 | +| UNI | 02-19 02:00 | 02-19 05:00 | stop_loss | 3 | -1.49 | +| ARB | 02-18 21:00 | 02-19 07:00 | stop_loss | 10 | -1.49 | +| ATOM | 02-19 05:00 | 02-19 08:00 | stop_loss | 3 | -1.49 | +| ETC | 02-18 19:00 | 02-19 08:00 | stop_loss | 13 | -1.49 | +| FET | 02-19 05:00 | 02-19 08:00 | stop_loss | 3 | -1.49 | +| FIL | 02-18 19:00 | 02-19 08:00 | trailing_stop | 13 | -0.42 | +| NEAR | 02-18 22:00 | 02-19 08:00 | stop_loss | 10 | -1.49 | +| SUI | 02-19 04:00 | 02-19 08:00 | stop_loss | 4 | -1.49 | +| TIA | 02-19 04:00 | 02-19 08:00 | stop_loss | 4 | -1.49 | +| WIF | 02-18 19:00 | 02-19 08:00 | stop_loss | 13 | -1.49 | +| SEI | 02-19 04:00 | 02-19 09:00 | stop_loss | 5 | -1.49 | +| LTC | 02-18 19:00 | 02-19 10:00 | stop_loss | 15 | -1.49 | +| AVAX | 02-18 20:00 | 02-19 11:00 | stop_loss | 15 | -1.49 | +| UNI | 02-19 05:00 | 02-19 12:00 | stop_loss | 7 | -1.49 | +| ARB | 02-19 08:00 | 02-19 13:00 | stop_loss | 5 | -1.49 | +| BONK | 02-18 19:00 | 02-19 13:00 | stop_loss | 18 | -1.49 | +| KAS | 02-19 11:00 | 02-19 13:00 | stop_loss | 2 | -1.49 | +| LTC | 02-19 12:00 | 02-19 13:00 | stop_loss | 1 | -1.49 | +| SEI | 02-19 11:00 | 02-19 13:00 | stop_loss | 2 | -1.49 | +| SUI | 02-19 08:00 | 02-19 13:00 | stop_loss | 5 | -1.49 | +| TON | 02-19 12:00 | 02-19 13:00 | stop_loss | 1 | -1.49 | +| ARB | 02-19 13:00 | 02-19 14:00 | stop_loss | 1 | -1.49 | +| KAS | 02-19 13:00 | 02-19 14:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-19 13:00 | 02-19 14:00 | take_profit | 1 | +1.49 | +| RENDER | 02-19 13:00 | 02-19 14:00 | take_profit | 1 | +1.49 | +| UNI | 02-19 13:00 | 02-19 14:00 | trailing_stop | 1 | -0.51 | +| ARB | 02-19 14:00 | 02-19 15:00 | stop_loss | 1 | -1.49 | +| SEI | 02-19 13:00 | 02-19 15:00 | stop_loss | 2 | -1.49 | +| APT | 02-19 13:00 | 02-19 16:00 | stop_loss | 3 | -1.49 | +| ARB | 02-19 15:00 | 02-19 16:00 | take_profit | 1 | +1.49 | +| AVAX | 02-19 13:00 | 02-19 16:00 | take_profit | 3 | +1.49 | +| FET | 02-19 15:00 | 02-19 16:00 | stop_loss | 1 | -1.49 | +| FIL | 02-19 13:00 | 02-19 16:00 | stop_loss | 3 | -1.49 | +| INJ | 02-19 15:00 | 02-19 16:00 | stop_loss | 1 | -1.49 | +| KAS | 02-19 14:00 | 02-19 16:00 | stop_loss | 2 | -1.49 | +| NEAR | 02-19 13:00 | 02-19 16:00 | stop_loss | 3 | -1.49 | +| TIA | 02-19 13:00 | 02-19 16:00 | stop_loss | 3 | -1.49 | +| TON | 02-19 13:00 | 02-19 16:00 | stop_loss | 3 | -1.49 | +| WIF | 02-19 13:00 | 02-19 16:00 | stop_loss | 3 | -1.49 | +| SEI | 02-19 15:00 | 02-19 17:00 | stop_loss | 2 | -1.49 | +| FIL | 02-19 16:00 | 02-19 18:00 | trailing_stop | 2 | -0.39 | +| LTC | 02-19 13:00 | 02-19 18:00 | trailing_stop | 5 | -0.29 | +| NEAR | 02-19 16:00 | 02-19 18:00 | trailing_stop | 2 | -0.60 | +| SEI | 02-19 17:00 | 02-19 18:00 | trailing_stop | 1 | -0.56 | +| TRX | 02-18 19:00 | 02-19 20:00 | take_profit | 25 | +1.49 | +| ATOM | 02-19 19:00 | 02-19 22:00 | confirmed_bearish_exit | 3 | +0.20 | +| SUI | 02-19 13:00 | 02-19 22:00 | take_profit | 9 | +1.49 | +| TIA | 02-19 16:00 | 02-19 23:00 | take_profit | 7 | +1.49 | +| FET | 02-19 20:00 | 02-20 00:00 | take_profit | 4 | +1.49 | +| RENDER | 02-19 19:00 | 02-20 00:00 | take_profit | 5 | +1.49 | +| WIF | 02-19 16:00 | 02-20 00:00 | trailing_stop | 8 | +0.14 | +| OP | 02-20 02:00 | 02-20 03:00 | stop_loss | 1 | -1.49 | +| APT | 02-19 21:00 | 02-20 04:00 | trailing_stop | 7 | -0.21 | +| BONK | 02-19 20:00 | 02-20 04:00 | trailing_stop | 8 | -0.57 | +| ETC | 02-19 13:00 | 02-20 04:00 | trailing_stop | 15 | -0.50 | +| OP | 02-20 03:00 | 02-20 04:00 | stop_loss | 1 | -1.49 | +| FIL | 02-19 20:00 | 02-20 05:00 | trailing_stop | 9 | -0.62 | +| LTC | 02-19 21:00 | 02-20 05:00 | take_profit | 8 | +1.49 | +| NEAR | 02-19 21:00 | 02-20 05:00 | take_profit | 8 | +1.49 | +| OP | 02-20 04:00 | 02-20 05:00 | take_profit | 1 | +1.49 | +| SHIB | 02-19 13:00 | 02-20 07:00 | take_profit | 18 | +1.49 | +| KAS | 02-19 20:00 | 02-20 10:00 | stop_loss | 14 | -1.49 | +| ARB | 02-20 10:00 | 02-20 11:00 | stop_loss | 1 | -1.49 | +| INJ | 02-20 08:00 | 02-20 11:00 | take_profit | 3 | +1.49 | +| ARB | 02-20 11:00 | 02-20 12:00 | stop_loss | 1 | -1.49 | +| TON | 02-19 16:00 | 02-20 12:00 | stop_loss | 20 | -1.49 | +| ARB | 02-20 12:00 | 02-20 13:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-20 12:00 | 02-20 13:00 | stop_loss | 1 | -1.49 | +| TON | 02-20 12:00 | 02-20 13:00 | stop_loss | 1 | -1.49 | +| APT | 02-20 13:00 | 02-20 14:00 | trailing_stop | 1 | -0.31 | +| ARB | 02-20 13:00 | 02-20 14:00 | take_profit | 1 | +1.49 | +| PEPE | 02-20 13:00 | 02-20 14:00 | take_profit | 1 | +1.49 | +| SEI | 02-20 13:00 | 02-20 14:00 | trailing_stop | 1 | -0.56 | +| UNI | 02-20 13:00 | 02-20 14:00 | trailing_stop | 1 | -0.40 | +| WIF | 02-20 13:00 | 02-20 14:00 | take_profit | 1 | +1.49 | +| TON | 02-20 13:00 | 02-20 15:00 | take_profit | 2 | +1.49 | +| FET | 02-21 06:00 | 02-21 08:00 | trailing_stop | 2 | -0.45 | +| KAS | 02-21 06:00 | 02-21 09:00 | take_profit | 3 | +1.49 | +| SUI | 02-21 06:00 | 02-21 14:00 | take_profit | 8 | +1.49 | +| SEI | 02-21 06:00 | 02-21 16:00 | trailing_stop | 10 | -0.45 | +| PEPE | 02-21 16:00 | 02-21 20:00 | stop_loss | 4 | -1.49 | +| RENDER | 02-21 07:00 | 02-21 20:00 | stop_loss | 13 | -1.49 | +| BONK | 02-21 16:00 | 02-21 23:00 | stop_loss | 7 | -1.49 | +| ARB | 02-21 22:00 | 02-22 00:00 | stop_loss | 2 | -1.49 | +| ETC | 02-21 22:00 | 02-22 00:00 | stop_loss | 2 | -1.49 | +| FET | 02-21 23:00 | 02-22 00:00 | stop_loss | 1 | -1.49 | +| FIL | 02-21 23:00 | 02-22 00:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-21 20:00 | 02-22 00:00 | stop_loss | 4 | -1.49 | +| TIA | 02-21 22:00 | 02-22 00:00 | stop_loss | 2 | -1.49 | +| WIF | 02-21 22:00 | 02-22 00:00 | stop_loss | 2 | -1.49 | +| APT | 02-22 00:00 | 02-22 02:00 | stop_loss | 2 | -1.49 | +| ETC | 02-22 00:00 | 02-22 02:00 | stop_loss | 2 | -1.49 | +| FIL | 02-22 00:00 | 02-22 02:00 | stop_loss | 2 | -1.49 | +| OP | 02-22 00:00 | 02-22 02:00 | stop_loss | 2 | -1.49 | +| PEPE | 02-21 20:00 | 02-22 02:00 | stop_loss | 6 | -1.49 | +| TIA | 02-22 00:00 | 02-22 02:00 | stop_loss | 2 | -1.49 | +| BONK | 02-22 00:00 | 02-22 03:00 | stop_loss | 3 | -1.49 | +| FET | 02-22 00:00 | 02-22 03:00 | stop_loss | 3 | -1.49 | +| SHIB | 02-22 00:00 | 02-22 03:00 | stop_loss | 3 | -1.49 | +| SUI | 02-22 00:00 | 02-22 03:00 | stop_loss | 3 | -1.49 | +| APT | 02-22 02:00 | 02-22 05:00 | stop_loss | 3 | -1.49 | +| AVAX | 02-22 00:00 | 02-22 06:00 | stop_loss | 6 | -1.49 | +| INJ | 02-22 03:00 | 02-22 06:00 | stop_loss | 3 | -1.49 | +| UNI | 02-22 00:00 | 02-22 06:00 | stop_loss | 6 | -1.49 | +| TIA | 02-22 02:00 | 02-22 08:00 | stop_loss | 6 | -1.49 | +| KAS | 02-22 00:00 | 02-22 09:00 | stop_loss | 9 | -1.49 | +| SHIB | 02-22 05:00 | 02-22 10:00 | confirmed_bearish_exit | 5 | -0.18 | +| TON | 02-22 04:00 | 02-22 11:00 | take_profit | 7 | +1.49 | +| ARB | 02-22 11:00 | 02-22 12:00 | stop_loss | 1 | -1.49 | +| ATOM | 02-22 08:00 | 02-22 12:00 | stop_loss | 4 | -1.49 | +| ETC | 02-22 11:00 | 02-22 12:00 | stop_loss | 1 | -1.49 | +| FET | 02-22 11:00 | 02-22 12:00 | stop_loss | 1 | -1.49 | +| LTC | 02-22 00:00 | 02-22 12:00 | stop_loss | 12 | -1.49 | +| PEPE | 02-22 11:00 | 02-22 12:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-22 00:00 | 02-22 12:00 | stop_loss | 12 | -1.49 | +| SUI | 02-22 11:00 | 02-22 12:00 | stop_loss | 1 | -1.49 | +| WIF | 02-22 02:00 | 02-22 12:00 | stop_loss | 10 | -1.49 | +| KAS | 02-22 12:00 | 02-22 13:00 | stop_loss | 1 | -1.49 | +| SEI | 02-22 11:00 | 02-22 13:00 | stop_loss | 2 | -1.49 | +| PEPE | 02-22 12:00 | 02-22 14:00 | stop_loss | 2 | -1.49 | +| SEI | 02-22 13:00 | 02-22 14:00 | stop_loss | 1 | -1.49 | +| UNI | 02-22 12:00 | 02-22 14:00 | stop_loss | 2 | -1.49 | +| APT | 02-22 13:00 | 02-22 15:00 | trailing_stop | 2 | -0.62 | +| FET | 02-22 13:00 | 02-22 15:00 | trailing_stop | 2 | -0.70 | +| LTC | 02-22 13:00 | 02-22 15:00 | stop_loss | 2 | -1.49 | +| OP | 02-22 12:00 | 02-22 15:00 | trailing_stop | 3 | -0.16 | +| TRX | 02-21 04:00 | 02-22 17:00 | take_profit | 37 | +1.49 | +| UNI | 02-22 14:00 | 02-22 20:00 | stop_loss | 6 | -1.49 | +| ETC | 02-22 19:00 | 02-22 21:00 | stop_loss | 2 | -1.49 | +| ATOM | 02-22 14:00 | 02-23 00:00 | stop_loss | 10 | -1.49 | +| ETC | 02-22 21:00 | 02-23 00:00 | stop_loss | 3 | -1.49 | +| FET | 02-22 23:00 | 02-23 00:00 | stop_loss | 1 | -1.49 | +| SEI | 02-22 14:00 | 02-23 00:00 | stop_loss | 10 | -1.49 | +| UNI | 02-22 23:00 | 02-23 00:00 | stop_loss | 1 | -1.49 | +| APT | 02-23 00:00 | 02-23 01:00 | stop_loss | 1 | -1.49 | +| ARB | 02-23 00:00 | 02-23 01:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-22 17:00 | 02-23 01:00 | stop_loss | 8 | -1.49 | +| ETC | 02-23 00:00 | 02-23 01:00 | stop_loss | 1 | -1.49 | +| FET | 02-23 00:00 | 02-23 01:00 | stop_loss | 1 | -1.49 | +| FIL | 02-23 00:00 | 02-23 01:00 | stop_loss | 1 | -1.49 | +| KAS | 02-22 13:00 | 02-23 01:00 | stop_loss | 12 | -1.49 | +| LTC | 02-22 15:00 | 02-23 01:00 | stop_loss | 10 | -1.49 | +| PEPE | 02-22 20:00 | 02-23 01:00 | stop_loss | 5 | -1.49 | +| RENDER | 02-23 00:00 | 02-23 01:00 | stop_loss | 1 | -1.49 | +| SHIB | 02-23 00:00 | 02-23 01:00 | stop_loss | 1 | -1.49 | +| SUI | 02-23 00:00 | 02-23 01:00 | stop_loss | 1 | -1.49 | +| UNI | 02-23 00:00 | 02-23 01:00 | stop_loss | 1 | -1.49 | +| WIF | 02-22 23:00 | 02-23 01:00 | stop_loss | 2 | -1.49 | +| APT | 02-23 01:00 | 02-23 02:00 | take_profit | 1 | +1.49 | +| ARB | 02-23 01:00 | 02-23 02:00 | trailing_stop | 1 | -0.26 | +| BONK | 02-23 01:00 | 02-23 02:00 | trailing_stop | 1 | -0.33 | +| FET | 02-23 01:00 | 02-23 02:00 | trailing_stop | 1 | -0.33 | +| INJ | 02-23 01:00 | 02-23 02:00 | trailing_stop | 1 | -0.56 | +| KAS | 02-23 01:00 | 02-23 02:00 | trailing_stop | 1 | -0.65 | +| SHIB | 02-23 01:00 | 02-23 02:00 | trailing_stop | 1 | -0.37 | +| SUI | 02-23 01:00 | 02-23 02:00 | trailing_stop | 1 | -0.66 | +| INJ | 02-23 02:00 | 02-23 04:00 | stop_loss | 2 | -1.49 | +| OP | 02-23 01:00 | 02-23 04:00 | trailing_stop | 3 | -0.50 | +| TIA | 02-23 01:00 | 02-23 04:00 | stop_loss | 3 | -1.49 | +| ARB | 02-23 02:00 | 02-23 05:00 | trailing_stop | 3 | -0.60 | +| KAS | 02-23 02:00 | 02-23 05:00 | take_profit | 3 | +1.49 | +| NEAR | 02-23 01:00 | 02-23 05:00 | take_profit | 4 | +1.49 | +| TON | 02-23 01:00 | 02-23 05:00 | take_profit | 4 | +1.49 | +| ATOM | 02-23 01:00 | 02-23 06:00 | take_profit | 5 | +1.49 | +| AVAX | 02-23 01:00 | 02-23 06:00 | take_profit | 5 | +1.49 | +| BONK | 02-23 02:00 | 02-23 06:00 | trailing_stop | 4 | -0.02 | +| ETC | 02-23 01:00 | 02-23 06:00 | take_profit | 5 | +1.49 | +| FET | 02-23 02:00 | 02-23 06:00 | take_profit | 4 | +1.49 | +| FIL | 02-23 01:00 | 02-23 06:00 | take_profit | 5 | +1.49 | +| LTC | 02-23 01:00 | 02-23 06:00 | take_profit | 5 | +1.49 | +| PEPE | 02-23 01:00 | 02-23 06:00 | take_profit | 5 | +1.49 | +| RENDER | 02-23 01:00 | 02-23 06:00 | take_profit | 5 | +1.49 | +| SEI | 02-23 01:00 | 02-23 06:00 | take_profit | 5 | +1.49 | +| SHIB | 02-23 02:00 | 02-23 06:00 | trailing_stop | 4 | -0.55 | +| SUI | 02-23 02:00 | 02-23 06:00 | take_profit | 4 | +1.49 | +| TIA | 02-23 04:00 | 02-23 06:00 | take_profit | 2 | +1.49 | +| UNI | 02-23 01:00 | 02-23 06:00 | take_profit | 5 | +1.49 | +| WIF | 02-23 01:00 | 02-23 06:00 | take_profit | 5 | +1.49 | +| AVAX | 02-23 08:00 | 02-23 09:00 | take_profit | 1 | +1.49 | +| ETC | 02-23 08:00 | 02-23 09:00 | trailing_stop | 1 | -0.39 | +| INJ | 02-23 04:00 | 02-23 09:00 | trailing_stop | 5 | -0.44 | +| TIA | 02-23 08:00 | 02-23 09:00 | take_profit | 1 | +1.49 | +| WIF | 02-23 08:00 | 02-23 09:00 | take_profit | 1 | +1.49 | +| TRX | 02-23 01:00 | 02-23 15:00 | stop_loss | 14 | -1.49 | +| APT | 02-23 20:00 | 02-24 01:00 | stop_loss | 5 | -1.49 | +| ETC | 02-24 00:00 | 02-24 01:00 | stop_loss | 1 | -1.49 | +| FET | 02-24 00:00 | 02-24 01:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-23 23:00 | 02-24 01:00 | stop_loss | 2 | -1.49 | +| APT | 02-24 02:00 | 02-24 03:00 | stop_loss | 1 | -1.49 | +| ETC | 02-24 01:00 | 02-24 03:00 | stop_loss | 2 | -1.49 | +| FET | 02-24 01:00 | 02-24 03:00 | stop_loss | 2 | -1.49 | +| INJ | 02-24 02:00 | 02-24 03:00 | stop_loss | 1 | -1.49 | +| KAS | 02-24 02:00 | 02-24 03:00 | stop_loss | 1 | -1.49 | +| LTC | 02-24 01:00 | 02-24 03:00 | stop_loss | 2 | -1.49 | +| SEI | 02-24 02:00 | 02-24 03:00 | stop_loss | 1 | -1.49 | +| SUI | 02-24 01:00 | 02-24 03:00 | stop_loss | 2 | -1.49 | +| TIA | 02-24 02:00 | 02-24 03:00 | stop_loss | 1 | -1.49 | +| TON | 02-24 02:00 | 02-24 03:00 | stop_loss | 1 | -1.49 | +| APT | 02-24 03:00 | 02-24 04:00 | stop_loss | 1 | -1.49 | +| FIL | 02-24 02:00 | 02-24 04:00 | stop_loss | 2 | -1.49 | +| NEAR | 02-24 01:00 | 02-24 04:00 | stop_loss | 3 | -1.49 | +| OP | 02-24 02:00 | 02-24 04:00 | stop_loss | 2 | -1.49 | +| RENDER | 02-24 02:00 | 02-24 04:00 | stop_loss | 2 | -1.49 | +| TON | 02-24 03:00 | 02-24 04:00 | stop_loss | 1 | -1.49 | +| ARB | 02-24 01:00 | 02-24 05:00 | stop_loss | 4 | -1.49 | +| INJ | 02-24 03:00 | 02-24 05:00 | stop_loss | 2 | -1.49 | +| APT | 02-24 04:00 | 02-24 06:00 | stop_loss | 2 | -1.49 | +| LTC | 02-24 05:00 | 02-24 11:00 | trailing_stop | 6 | -0.21 | +| ETC | 02-24 03:00 | 02-24 13:00 | stop_loss | 10 | -1.49 | +| FIL | 02-24 05:00 | 02-24 13:00 | stop_loss | 8 | -1.49 | +| OP | 02-24 12:00 | 02-24 13:00 | stop_loss | 1 | -1.49 | +| SUI | 02-24 03:00 | 02-24 13:00 | stop_loss | 10 | -1.49 | +| WIF | 02-24 12:00 | 02-24 13:00 | stop_loss | 1 | -1.49 | +| BONK | 02-24 12:00 | 02-24 14:00 | take_profit | 2 | +1.49 | +| NEAR | 02-24 13:00 | 02-24 14:00 | stop_loss | 1 | -1.49 | +| OP | 02-24 13:00 | 02-24 14:00 | stop_loss | 1 | -1.49 | +| TON | 02-24 06:00 | 02-24 14:00 | stop_loss | 8 | -1.49 | +| WIF | 02-24 13:00 | 02-24 14:00 | take_profit | 1 | +1.49 | +| INJ | 02-24 16:00 | 02-24 18:00 | stop_loss | 2 | -1.49 | +| ATOM | 02-24 20:00 | 02-25 00:00 | trailing_stop | 4 | +0.04 | +| FIL | 02-24 14:00 | 02-25 01:00 | take_profit | 11 | +1.49 | +| KAS | 02-24 23:00 | 02-25 01:00 | take_profit | 2 | +1.49 | +| SEI | 02-24 14:00 | 02-25 01:00 | take_profit | 11 | +1.49 | +| TON | 02-24 23:00 | 02-25 01:00 | take_profit | 2 | +1.49 | +| INJ | 02-25 05:00 | 02-25 07:00 | trailing_stop | 2 | -0.47 | +| TON | 02-25 05:00 | 02-25 14:00 | take_profit | 9 | +1.49 | +| ATOM | 02-25 20:00 | 02-25 21:00 | stop_loss | 1 | -1.49 | +| ATOM | 02-25 21:00 | 02-25 22:00 | stop_loss | 1 | -1.49 | +| ATOM | 02-25 22:00 | 02-25 23:00 | stop_loss | 1 | -1.49 | +| ATOM | 02-25 23:00 | 02-26 01:00 | take_profit | 2 | +1.49 | +| TRX | 02-23 17:00 | 02-26 05:00 | take_profit | 60 | +1.49 | +| PEPE | 02-26 06:00 | 02-26 07:00 | stop_loss | 1 | -1.49 | +| LTC | 02-26 05:00 | 02-26 08:00 | stop_loss | 3 | -1.49 | +| FET | 02-26 08:00 | 02-26 09:00 | trailing_stop | 1 | -0.62 | +| FIL | 02-26 05:00 | 02-26 09:00 | take_profit | 4 | +1.49 | +| RENDER | 02-26 06:00 | 02-26 09:00 | take_profit | 3 | +1.49 | +| SUI | 02-26 08:00 | 02-26 09:00 | trailing_stop | 1 | -0.42 | +| WIF | 02-26 08:00 | 02-26 09:00 | trailing_stop | 1 | -0.31 | +| APT | 02-26 09:00 | 02-26 10:00 | stop_loss | 1 | -1.49 | +| ARB | 02-26 09:00 | 02-26 10:00 | stop_loss | 1 | -1.49 | +| ETC | 02-26 06:00 | 02-26 10:00 | stop_loss | 4 | -1.49 | +| FET | 02-26 09:00 | 02-26 10:00 | stop_loss | 1 | -1.49 | +| FIL | 02-26 09:00 | 02-26 10:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-26 07:00 | 02-26 10:00 | stop_loss | 3 | -1.49 | +| SHIB | 02-26 06:00 | 02-26 10:00 | stop_loss | 4 | -1.49 | +| SUI | 02-26 09:00 | 02-26 10:00 | stop_loss | 1 | -1.49 | +| TIA | 02-26 06:00 | 02-26 10:00 | stop_loss | 4 | -1.49 | +| ARB | 02-26 10:00 | 02-26 11:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-26 06:00 | 02-26 11:00 | stop_loss | 5 | -1.49 | +| INJ | 02-26 05:00 | 02-26 11:00 | stop_loss | 6 | -1.49 | +| NEAR | 02-26 09:00 | 02-26 11:00 | stop_loss | 2 | -1.49 | +| APT | 02-26 10:00 | 02-26 12:00 | trailing_stop | 2 | -0.04 | +| NEAR | 02-26 11:00 | 02-26 12:00 | take_profit | 1 | +1.49 | +| SUI | 02-26 10:00 | 02-26 12:00 | stop_loss | 2 | -1.49 | +| WIF | 02-26 10:00 | 02-26 12:00 | trailing_stop | 2 | -0.30 | +| BONK | 02-26 10:00 | 02-26 14:00 | stop_loss | 4 | -1.49 | +| FET | 02-26 10:00 | 02-26 14:00 | stop_loss | 4 | -1.49 | +| RENDER | 02-26 11:00 | 02-26 14:00 | trailing_stop | 3 | -0.69 | +| AVAX | 02-26 14:00 | 02-26 15:00 | stop_loss | 1 | -1.49 | +| LTC | 02-26 08:00 | 02-26 15:00 | stop_loss | 7 | -1.49 | +| NEAR | 02-26 14:00 | 02-26 15:00 | stop_loss | 1 | -1.49 | +| SEI | 02-26 10:00 | 02-26 15:00 | stop_loss | 5 | -1.49 | +| UNI | 02-26 14:00 | 02-26 15:00 | stop_loss | 1 | -1.49 | +| ATOM | 02-26 15:00 | 02-26 16:00 | stop_loss | 1 | -1.49 | +| UNI | 02-26 15:00 | 02-26 16:00 | stop_loss | 1 | -1.49 | +| OP | 02-26 16:00 | 02-26 17:00 | stop_loss | 1 | -1.49 | +| ARB | 02-26 16:00 | 02-26 18:00 | take_profit | 2 | +1.49 | +| BONK | 02-26 16:00 | 02-26 18:00 | trailing_stop | 2 | -0.05 | +| ETC | 02-26 16:00 | 02-26 18:00 | trailing_stop | 2 | -0.45 | +| FET | 02-26 16:00 | 02-26 18:00 | trailing_stop | 2 | +0.05 | +| INJ | 02-26 16:00 | 02-26 18:00 | trailing_stop | 2 | -0.11 | +| LTC | 02-26 16:00 | 02-26 18:00 | trailing_stop | 2 | -0.34 | +| NEAR | 02-26 16:00 | 02-26 18:00 | take_profit | 2 | +1.49 | +| OP | 02-26 17:00 | 02-26 18:00 | stop_loss | 1 | -1.49 | +| SUI | 02-26 16:00 | 02-26 18:00 | trailing_stop | 2 | -0.23 | +| TIA | 02-26 16:00 | 02-26 18:00 | trailing_stop | 2 | -0.26 | +| WIF | 02-26 16:00 | 02-26 18:00 | trailing_stop | 2 | +0.23 | +| AVAX | 02-26 16:00 | 02-26 19:00 | take_profit | 3 | +1.49 | +| PEPE | 02-26 16:00 | 02-26 19:00 | take_profit | 3 | +1.49 | +| RENDER | 02-26 16:00 | 02-26 19:00 | take_profit | 3 | +1.49 | +| SEI | 02-26 16:00 | 02-26 19:00 | take_profit | 3 | +1.49 | +| UNI | 02-26 16:00 | 02-26 19:00 | take_profit | 3 | +1.49 | +| ATOM | 02-26 16:00 | 02-26 21:00 | take_profit | 5 | +1.49 | +| BONK | 02-26 23:00 | 02-27 00:00 | stop_loss | 1 | -1.49 | +| UNI | 02-26 22:00 | 02-27 01:00 | stop_loss | 3 | -1.49 | +| ATOM | 02-26 23:00 | 02-27 02:00 | take_profit | 3 | +1.49 | +| RENDER | 02-26 23:00 | 02-27 03:00 | take_profit | 4 | +1.49 | +| UNI | 02-27 01:00 | 02-27 03:00 | trailing_stop | 2 | -0.57 | +| BONK | 02-27 02:00 | 02-27 04:00 | take_profit | 2 | +1.49 | +| KAS | 02-27 03:00 | 02-27 04:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-27 00:00 | 02-27 04:00 | take_profit | 4 | +1.49 | +| SHIB | 02-26 16:00 | 02-27 04:00 | take_profit | 12 | +1.49 | +| KAS | 02-27 04:00 | 02-27 10:00 | stop_loss | 6 | -1.49 | +| AVAX | 02-27 10:00 | 02-27 11:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-27 11:00 | 02-27 13:00 | stop_loss | 2 | -1.49 | +| PEPE | 02-27 12:00 | 02-27 13:00 | stop_loss | 1 | -1.49 | +| UNI | 02-27 12:00 | 02-27 13:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-27 13:00 | 02-27 14:00 | stop_loss | 1 | -1.49 | +| SUI | 02-27 13:00 | 02-27 14:00 | stop_loss | 1 | -1.49 | +| KAS | 02-27 11:00 | 02-27 15:00 | stop_loss | 4 | -1.49 | +| TIA | 02-27 12:00 | 02-27 15:00 | stop_loss | 3 | -1.49 | +| AVAX | 02-27 13:00 | 02-27 16:00 | stop_loss | 3 | -1.49 | +| KAS | 02-27 15:00 | 02-27 16:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-27 14:00 | 02-27 16:00 | stop_loss | 2 | -1.49 | +| TIA | 02-27 15:00 | 02-27 16:00 | stop_loss | 1 | -1.49 | +| ATOM | 02-27 15:00 | 02-27 17:00 | stop_loss | 2 | -1.49 | +| INJ | 02-27 16:00 | 02-27 17:00 | stop_loss | 1 | -1.49 | +| LTC | 02-27 14:00 | 02-27 17:00 | stop_loss | 3 | -1.49 | +| NEAR | 02-27 14:00 | 02-27 17:00 | stop_loss | 3 | -1.49 | +| SHIB | 02-27 14:00 | 02-27 17:00 | stop_loss | 3 | -1.49 | +| SUI | 02-27 14:00 | 02-27 17:00 | stop_loss | 3 | -1.49 | +| TIA | 02-27 16:00 | 02-27 17:00 | trailing_stop | 1 | -0.50 | +| TRX | 02-26 18:00 | 02-27 17:00 | stop_loss | 23 | -1.49 | +| INJ | 02-27 17:00 | 02-27 18:00 | stop_loss | 1 | -1.49 | +| APT | 02-27 17:00 | 02-27 19:00 | stop_loss | 2 | -1.49 | +| ATOM | 02-27 17:00 | 02-27 19:00 | stop_loss | 2 | -1.49 | +| FET | 02-27 16:00 | 02-27 19:00 | stop_loss | 3 | -1.49 | +| KAS | 02-27 16:00 | 02-27 19:00 | stop_loss | 3 | -1.49 | +| RENDER | 02-27 17:00 | 02-27 19:00 | stop_loss | 2 | -1.49 | +| OP | 02-27 20:00 | 02-27 21:00 | stop_loss | 1 | -1.49 | +| ETC | 02-27 16:00 | 02-27 22:00 | stop_loss | 6 | -1.49 | +| FIL | 02-27 16:00 | 02-27 22:00 | stop_loss | 6 | -1.49 | +| SEI | 02-27 16:00 | 02-27 22:00 | stop_loss | 6 | -1.49 | +| TIA | 02-27 19:00 | 02-27 22:00 | stop_loss | 3 | -1.49 | +| KAS | 02-27 23:00 | 02-28 01:00 | stop_loss | 2 | -1.49 | +| AVAX | 02-28 00:00 | 02-28 03:00 | stop_loss | 3 | -1.49 | +| INJ | 02-28 01:00 | 02-28 04:00 | stop_loss | 3 | -1.49 | +| PEPE | 02-27 22:00 | 02-28 04:00 | stop_loss | 6 | -1.49 | +| TIA | 02-28 01:00 | 02-28 04:00 | stop_loss | 3 | -1.49 | +| ARB | 02-28 01:00 | 02-28 06:00 | stop_loss | 5 | -1.49 | +| OP | 02-28 03:00 | 02-28 06:00 | stop_loss | 3 | -1.49 | +| APT | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| ARB | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| ATOM | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| AVAX | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| BONK | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| ETC | 02-28 06:00 | 02-28 07:00 | stop_loss | 1 | -1.49 | +| FET | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| FIL | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| INJ | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| NEAR | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| OP | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| PEPE | 02-28 06:00 | 02-28 07:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| SUI | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| TIA | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| TON | 02-28 06:00 | 02-28 07:00 | trailing_stop | 1 | -0.34 | +| UNI | 02-28 06:00 | 02-28 07:00 | take_profit | 1 | +1.49 | +| WIF | 02-28 06:00 | 02-28 07:00 | stop_loss | 1 | -1.49 | +| APT | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| ARB | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| AVAX | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| BONK | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| ETC | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| FET | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| FIL | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| INJ | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| OP | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| RENDER | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| SEI | 02-28 06:00 | 02-28 08:00 | stop_loss | 2 | -1.49 | +| SHIB | 02-28 06:00 | 02-28 08:00 | stop_loss | 2 | -1.49 | +| SUI | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| TIA | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| TON | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| TRX | 02-27 17:00 | 02-28 08:00 | stop_loss | 15 | -1.49 | +| WIF | 02-28 07:00 | 02-28 08:00 | stop_loss | 1 | -1.49 | +| APT | 02-28 08:00 | 02-28 09:00 | stop_loss | 1 | -1.49 | +| WIF | 02-28 08:00 | 02-28 09:00 | stop_loss | 1 | -1.49 | +| ARB | 02-28 08:00 | 02-28 10:00 | stop_loss | 2 | -1.49 | +| BONK | 02-28 08:00 | 02-28 10:00 | stop_loss | 2 | -1.49 | +| FET | 02-28 08:00 | 02-28 10:00 | stop_loss | 2 | -1.49 | +| INJ | 02-28 08:00 | 02-28 10:00 | take_profit | 2 | +1.49 | +| LTC | 02-28 06:00 | 02-28 10:00 | stop_loss | 4 | -1.49 | +| OP | 02-28 08:00 | 02-28 10:00 | stop_loss | 2 | -1.49 | +| RENDER | 02-28 08:00 | 02-28 10:00 | stop_loss | 2 | -1.49 | +| SEI | 02-28 08:00 | 02-28 10:00 | stop_loss | 2 | -1.49 | +| SUI | 02-28 08:00 | 02-28 10:00 | stop_loss | 2 | -1.49 | +| UNI | 02-28 08:00 | 02-28 10:00 | stop_loss | 2 | -1.49 | +| APT | 02-28 09:00 | 02-28 11:00 | stop_loss | 2 | -1.49 | +| WIF | 02-28 09:00 | 02-28 11:00 | stop_loss | 2 | -1.49 | +| APT | 02-28 11:00 | 02-28 12:00 | trailing_stop | 1 | -0.22 | +| ARB | 02-28 10:00 | 02-28 12:00 | stop_loss | 2 | -1.49 | +| SEI | 02-28 10:00 | 02-28 12:00 | stop_loss | 2 | -1.49 | +| ATOM | 02-28 08:00 | 02-28 13:00 | trailing_stop | 5 | -0.26 | +| AVAX | 02-28 08:00 | 02-28 13:00 | take_profit | 5 | +1.49 | +| ETC | 02-28 08:00 | 02-28 13:00 | take_profit | 5 | +1.49 | +| FIL | 02-28 08:00 | 02-28 13:00 | take_profit | 5 | +1.49 | +| KAS | 02-28 06:00 | 02-28 13:00 | take_profit | 7 | +1.49 | +| PEPE | 02-28 08:00 | 02-28 13:00 | take_profit | 5 | +1.49 | +| SHIB | 02-28 08:00 | 02-28 13:00 | take_profit | 5 | +1.49 | +| TIA | 02-28 08:00 | 02-28 13:00 | stop_loss | 5 | -1.49 | +| TON | 02-28 08:00 | 02-28 13:00 | take_profit | 5 | +1.49 | +| UNI | 02-28 10:00 | 02-28 13:00 | take_profit | 3 | +1.49 | +| OP | 02-28 14:00 | 02-28 15:00 | stop_loss | 1 | -1.49 | +| PEPE | 02-28 14:00 | 02-28 15:00 | trailing_stop | 1 | -0.57 | +| ARB | 02-28 15:00 | 02-28 16:00 | stop_loss | 1 | -1.49 | +| BONK | 02-28 14:00 | 02-28 16:00 | stop_loss | 2 | -1.49 | +| INJ | 02-28 14:00 | 02-28 16:00 | stop_loss | 2 | -1.49 | +| OP | 02-28 15:00 | 02-28 16:00 | stop_loss | 1 | -1.49 | +| WIF | 02-28 15:00 | 02-28 16:00 | stop_loss | 1 | -1.49 | +| APT | 02-28 14:00 | 02-28 17:00 | take_profit | 3 | +1.49 | +| BONK | 02-28 16:00 | 02-28 17:00 | stop_loss | 1 | -1.49 | +| ETC | 02-28 14:00 | 02-28 17:00 | stop_loss | 3 | -1.49 | +| FIL | 02-28 14:00 | 02-28 17:00 | trailing_stop | 3 | -0.55 | +| INJ | 02-28 16:00 | 02-28 17:00 | stop_loss | 1 | -1.49 | +| KAS | 02-28 13:00 | 02-28 17:00 | stop_loss | 4 | -1.49 | +| SUI | 02-28 14:00 | 02-28 17:00 | trailing_stop | 3 | -0.39 | +| ARB | 02-28 16:00 | 02-28 18:00 | take_profit | 2 | +1.49 | +| ATOM | 02-28 16:00 | 02-28 18:00 | take_profit | 2 | +1.49 | +| AVAX | 02-28 14:00 | 02-28 18:00 | take_profit | 4 | +1.49 | +| BONK | 02-28 17:00 | 02-28 18:00 | take_profit | 1 | +1.49 | +| ETC | 02-28 17:00 | 02-28 18:00 | take_profit | 1 | +1.49 | +| FET | 02-28 14:00 | 02-28 18:00 | take_profit | 4 | +1.49 | +| LTC | 02-28 14:00 | 02-28 18:00 | take_profit | 4 | +1.49 | +| OP | 02-28 16:00 | 02-28 18:00 | take_profit | 2 | +1.49 | +| RENDER | 02-28 15:00 | 02-28 18:00 | take_profit | 3 | +1.49 | +| SHIB | 02-28 14:00 | 02-28 18:00 | take_profit | 4 | +1.49 | +| TIA | 02-28 14:00 | 02-28 18:00 | take_profit | 4 | +1.49 | +| TON | 02-28 14:00 | 02-28 18:00 | trailing_stop | 4 | -0.43 | +| SEI | 02-28 18:00 | 02-28 19:00 | trailing_stop | 1 | -0.34 | +| WIF | 02-28 18:00 | 02-28 19:00 | stop_loss | 1 | -1.49 | +| FIL | 03-01 12:00 | 03-01 13:00 | take_profit | 1 | +1.49 | +| PEPE | 03-01 12:00 | 03-01 13:00 | take_profit | 1 | +1.49 | +| RENDER | 03-01 12:00 | 03-01 13:00 | take_profit | 1 | +1.49 | +| SHIB | 03-01 12:00 | 03-01 13:00 | trailing_stop | 1 | -0.12 | +| TON | 03-01 10:00 | 03-01 13:00 | stop_loss | 3 | -1.49 | +| APT | 03-01 15:00 | 03-01 16:00 | stop_loss | 1 | -1.49 | +| ATOM | 03-01 15:00 | 03-01 16:00 | stop_loss | 1 | -1.49 | +| FIL | 03-01 15:00 | 03-01 16:00 | stop_loss | 1 | -1.49 | +| INJ | 03-01 15:00 | 03-01 16:00 | stop_loss | 1 | -1.49 | +| UNI | 03-01 15:00 | 03-01 16:00 | stop_loss | 1 | -1.49 | +| APT | 03-01 16:00 | 03-01 17:00 | stop_loss | 1 | -1.49 | +| BONK | 03-01 16:00 | 03-01 17:00 | stop_loss | 1 | -1.49 | +| ETC | 03-01 16:00 | 03-01 17:00 | stop_loss | 1 | -1.49 | +| FET | 03-01 16:00 | 03-01 17:00 | stop_loss | 1 | -1.49 | +| INJ | 03-01 16:00 | 03-01 17:00 | stop_loss | 1 | -1.49 | +| LTC | 03-01 16:00 | 03-01 17:00 | stop_loss | 1 | -1.49 | +| SEI | 03-01 16:00 | 03-01 17:00 | stop_loss | 1 | -1.49 | +| SUI | 03-01 16:00 | 03-01 17:00 | stop_loss | 1 | -1.49 | +| TIA | 03-01 16:00 | 03-01 17:00 | stop_loss | 1 | -1.49 | +| WIF | 03-01 16:00 | 03-01 17:00 | stop_loss | 1 | -1.49 | +| WIF | 03-01 17:00 | 03-01 18:00 | take_profit | 1 | +1.49 | +| SUI | 03-01 17:00 | 03-01 19:00 | stop_loss | 2 | -1.49 | +| ARB | 03-01 19:00 | 03-01 20:00 | stop_loss | 1 | -1.49 | +| ATOM | 03-01 17:00 | 03-01 20:00 | stop_loss | 3 | -1.49 | +| AVAX | 03-01 16:00 | 03-01 20:00 | stop_loss | 4 | -1.49 | +| ETC | 03-01 17:00 | 03-01 20:00 | stop_loss | 3 | -1.49 | +| FET | 03-01 17:00 | 03-01 20:00 | stop_loss | 3 | -1.49 | +| KAS | 03-01 16:00 | 03-01 20:00 | stop_loss | 4 | -1.49 | +| SEI | 03-01 17:00 | 03-01 20:00 | stop_loss | 3 | -1.49 | +| TON | 03-01 17:00 | 03-01 20:00 | stop_loss | 3 | -1.49 | +| APT | 03-01 20:00 | 03-01 21:00 | trailing_stop | 1 | -0.39 | +| ARB | 03-01 20:00 | 03-01 21:00 | trailing_stop | 1 | -0.06 | +| BONK | 03-01 20:00 | 03-01 21:00 | trailing_stop | 1 | -0.14 | +| FIL | 03-01 20:00 | 03-01 21:00 | trailing_stop | 1 | -0.44 | +| NEAR | 03-01 20:00 | 03-01 21:00 | trailing_stop | 1 | -0.28 | +| PEPE | 03-01 20:00 | 03-01 21:00 | trailing_stop | 1 | -0.24 | +| SUI | 03-01 20:00 | 03-01 21:00 | trailing_stop | 1 | -0.51 | +| TIA | 03-01 20:00 | 03-01 21:00 | take_profit | 1 | +1.49 | +| ATOM | 03-01 20:00 | 03-01 22:00 | take_profit | 2 | +1.49 | +| AVAX | 03-01 20:00 | 03-01 22:00 | take_profit | 2 | +1.49 | +| ETC | 03-01 20:00 | 03-01 22:00 | take_profit | 2 | +1.49 | +| FET | 03-01 20:00 | 03-01 22:00 | take_profit | 2 | +1.49 | +| INJ | 03-01 20:00 | 03-01 22:00 | take_profit | 2 | +1.49 | +| LTC | 03-01 20:00 | 03-01 22:00 | take_profit | 2 | +1.49 | +| SEI | 03-01 20:00 | 03-01 22:00 | take_profit | 2 | +1.49 | +| UNI | 03-01 20:00 | 03-01 22:00 | take_profit | 2 | +1.49 | +| WIF | 03-01 20:00 | 03-01 22:00 | take_profit | 2 | +1.49 | +| TON | 03-02 01:00 | 03-02 02:00 | stop_loss | 1 | -1.49 | +| TON | 03-02 02:00 | 03-02 06:00 | trailing_stop | 4 | -0.30 | +| ETC | 03-03 04:00 | 03-03 06:00 | stop_loss | 2 | -1.49 | +| FET | 03-03 05:00 | 03-03 06:00 | stop_loss | 1 | -1.49 | +| PEPE | 03-03 05:00 | 03-03 07:00 | take_profit | 2 | +1.49 | +| WIF | 03-03 05:00 | 03-03 07:00 | take_profit | 2 | +1.49 | +| ATOM | 03-03 07:00 | 03-03 08:00 | stop_loss | 1 | -1.49 | +| AVAX | 03-03 05:00 | 03-03 08:00 | stop_loss | 3 | -1.49 | +| BONK | 03-03 05:00 | 03-03 08:00 | stop_loss | 3 | -1.49 | +| ETC | 03-03 06:00 | 03-03 08:00 | stop_loss | 2 | -1.49 | +| FIL | 03-03 05:00 | 03-03 08:00 | stop_loss | 3 | -1.49 | +| INJ | 03-03 05:00 | 03-03 08:00 | stop_loss | 3 | -1.49 | +| OP | 03-03 05:00 | 03-03 08:00 | stop_loss | 3 | -1.49 | +| PEPE | 03-03 07:00 | 03-03 08:00 | stop_loss | 1 | -1.49 | +| SUI | 03-03 05:00 | 03-03 08:00 | stop_loss | 3 | -1.49 | +| UNI | 03-03 05:00 | 03-03 08:00 | stop_loss | 3 | -1.49 | +| ARB | 03-03 04:00 | 03-03 09:00 | stop_loss | 5 | -1.49 | +| LTC | 03-03 05:00 | 03-03 09:00 | stop_loss | 4 | -1.49 | +| TIA | 03-03 04:00 | 03-03 09:00 | stop_loss | 5 | -1.49 | +| OP | 03-03 08:00 | 03-03 10:00 | stop_loss | 2 | -1.49 | +| KAS | 03-03 08:00 | 03-03 11:00 | trailing_stop | 3 | +0.07 | +| ATOM | 03-03 08:00 | 03-03 12:00 | stop_loss | 4 | -1.49 | +| FIL | 03-03 08:00 | 03-03 12:00 | take_profit | 4 | +1.49 | +| OP | 03-03 10:00 | 03-03 12:00 | take_profit | 2 | +1.49 | +| INJ | 03-03 08:00 | 03-03 13:00 | stop_loss | 5 | -1.49 | +| SEI | 03-03 09:00 | 03-03 13:00 | stop_loss | 4 | -1.49 | +| SUI | 03-03 08:00 | 03-03 13:00 | stop_loss | 5 | -1.49 | +| UNI | 03-03 08:00 | 03-03 13:00 | stop_loss | 5 | -1.49 | +| AVAX | 03-03 08:00 | 03-03 14:00 | stop_loss | 6 | -1.49 | +| LTC | 03-03 09:00 | 03-03 14:00 | take_profit | 5 | +1.49 | +| PEPE | 03-03 14:00 | 03-03 15:00 | stop_loss | 1 | -1.49 | +| SEI | 03-03 13:00 | 03-03 15:00 | trailing_stop | 2 | -0.50 | +| LTC | 03-03 14:00 | 03-03 16:00 | take_profit | 2 | +1.49 | +| TRX | 02-28 08:00 | 03-04 00:00 | trailing_stop | 88 | -0.18 | +| ATOM | 03-03 17:00 | 03-04 03:00 | trailing_stop | 10 | -0.66 | +| ETC | 03-04 06:00 | 03-04 08:00 | take_profit | 2 | +1.49 | +| TRX | 03-04 00:00 | 03-04 12:00 | take_profit | 12 | +1.49 | +| NEAR | 03-05 00:00 | 03-05 01:00 | stop_loss | 1 | -1.49 | +| NEAR | 03-05 01:00 | 03-05 02:00 | take_profit | 1 | +1.49 | +| PEPE | 03-05 05:00 | 03-05 07:00 | stop_loss | 2 | -1.49 | +| SEI | 03-05 05:00 | 03-05 07:00 | stop_loss | 2 | -1.49 | +| WIF | 03-05 05:00 | 03-05 09:00 | take_profit | 4 | +1.49 | +| APT | 03-05 05:00 | 03-05 10:00 | take_profit | 5 | +1.49 | +| AVAX | 03-05 05:00 | 03-05 10:00 | trailing_stop | 5 | -0.13 | +| BONK | 03-05 05:00 | 03-05 10:00 | take_profit | 5 | +1.49 | +| FET | 03-05 05:00 | 03-05 10:00 | take_profit | 5 | +1.49 | +| INJ | 03-05 05:00 | 03-05 10:00 | take_profit | 5 | +1.49 | +| PEPE | 03-05 07:00 | 03-05 10:00 | take_profit | 3 | +1.49 | +| RENDER | 03-05 05:00 | 03-05 10:00 | take_profit | 5 | +1.49 | +| SEI | 03-05 07:00 | 03-05 10:00 | take_profit | 3 | +1.49 | +| SHIB | 03-05 05:00 | 03-05 10:00 | trailing_stop | 5 | -0.12 | +| SUI | 03-05 05:00 | 03-05 10:00 | take_profit | 5 | +1.49 | +| KAS | 03-05 05:00 | 03-05 12:00 | confirmed_bearish_exit | 7 | +0.98 | +| RENDER | 03-05 16:00 | 03-05 17:00 | stop_loss | 1 | -1.49 | +| FIL | 03-05 17:00 | 03-05 18:00 | trailing_stop | 1 | -0.51 | +| RENDER | 03-05 17:00 | 03-05 18:00 | trailing_stop | 1 | -0.22 | +| PEPE | 03-05 16:00 | 03-05 19:00 | take_profit | 3 | +1.49 | +| SEI | 03-05 17:00 | 03-05 19:00 | take_profit | 2 | +1.49 | +| TIA | 03-05 17:00 | 03-05 19:00 | take_profit | 2 | +1.49 | +| SEI | 03-06 00:00 | 03-06 03:00 | take_profit | 3 | +1.49 | +| ETC | 03-06 00:00 | 03-06 09:00 | stop_loss | 9 | -1.49 | +| WIF | 03-06 08:00 | 03-06 09:00 | stop_loss | 1 | -1.49 | +| WIF | 03-06 09:00 | 03-06 10:00 | stop_loss | 1 | -1.49 | +| ATOM | 03-06 04:00 | 03-06 11:00 | stop_loss | 7 | -1.49 | +| TON | 03-06 02:00 | 03-06 11:00 | stop_loss | 9 | -1.49 | +| FET | 03-06 11:00 | 03-06 12:00 | stop_loss | 1 | -1.49 | +| INJ | 03-06 11:00 | 03-06 12:00 | stop_loss | 1 | -1.49 | +| AVAX | 03-06 11:00 | 03-06 13:00 | stop_loss | 2 | -1.49 | +| ETC | 03-06 11:00 | 03-06 13:00 | stop_loss | 2 | -1.49 | +| FET | 03-06 12:00 | 03-06 13:00 | stop_loss | 1 | -1.49 | +| INJ | 03-06 12:00 | 03-06 13:00 | stop_loss | 1 | -1.49 | +| LTC | 03-06 11:00 | 03-06 13:00 | stop_loss | 2 | -1.49 | +| WIF | 03-06 10:00 | 03-06 13:00 | stop_loss | 3 | -1.49 | +| APT | 03-06 13:00 | 03-06 14:00 | stop_loss | 1 | -1.49 | +| ARB | 03-06 13:00 | 03-06 14:00 | stop_loss | 1 | -1.49 | +| ATOM | 03-06 11:00 | 03-06 14:00 | stop_loss | 3 | -1.49 | +| AVAX | 03-06 13:00 | 03-06 14:00 | stop_loss | 1 | -1.49 | +| BONK | 03-06 13:00 | 03-06 14:00 | stop_loss | 1 | -1.49 | +| ETC | 03-06 13:00 | 03-06 14:00 | stop_loss | 1 | -1.49 | +| FET | 03-06 13:00 | 03-06 14:00 | stop_loss | 1 | -1.49 | +| INJ | 03-06 13:00 | 03-06 14:00 | stop_loss | 1 | -1.49 | +| LTC | 03-06 13:00 | 03-06 14:00 | stop_loss | 1 | -1.49 | +| RENDER | 03-06 13:00 | 03-06 14:00 | stop_loss | 1 | -1.49 | +| SUI | 03-06 13:00 | 03-06 14:00 | stop_loss | 1 | -1.49 | +| TIA | 03-06 13:00 | 03-06 14:00 | stop_loss | 1 | -1.49 | +| TON | 03-06 11:00 | 03-06 14:00 | stop_loss | 3 | -1.49 | +| UNI | 03-06 13:00 | 03-06 14:00 | stop_loss | 1 | -1.49 | +| INJ | 03-06 14:00 | 03-06 15:00 | stop_loss | 1 | -1.49 | +| NEAR | 03-06 13:00 | 03-06 15:00 | stop_loss | 2 | -1.49 | +| SHIB | 03-06 14:00 | 03-06 15:00 | stop_loss | 1 | -1.49 | +| WIF | 03-06 14:00 | 03-06 15:00 | stop_loss | 1 | -1.49 | +| APT | 03-06 14:00 | 03-06 16:00 | stop_loss | 2 | -1.49 | +| OP | 03-06 14:00 | 03-06 16:00 | stop_loss | 2 | -1.49 | +| APT | 03-06 16:00 | 03-06 17:00 | stop_loss | 1 | -1.49 | +| ARB | 03-06 15:00 | 03-06 17:00 | stop_loss | 2 | -1.49 | +| BONK | 03-06 14:00 | 03-06 17:00 | stop_loss | 3 | -1.49 | +| ETC | 03-06 14:00 | 03-06 17:00 | stop_loss | 3 | -1.49 | +| FET | 03-06 14:00 | 03-06 17:00 | stop_loss | 3 | -1.49 | +| FIL | 03-06 14:00 | 03-06 17:00 | stop_loss | 3 | -1.49 | +| INJ | 03-06 15:00 | 03-06 17:00 | stop_loss | 2 | -1.49 | +| KAS | 03-06 15:00 | 03-06 17:00 | stop_loss | 2 | -1.49 | +| LTC | 03-06 14:00 | 03-06 17:00 | stop_loss | 3 | -1.49 | +| NEAR | 03-06 15:00 | 03-06 17:00 | stop_loss | 2 | -1.49 | +| OP | 03-06 16:00 | 03-06 17:00 | stop_loss | 1 | -1.49 | +| PEPE | 03-06 14:00 | 03-06 17:00 | stop_loss | 3 | -1.49 | +| SUI | 03-06 14:00 | 03-06 17:00 | stop_loss | 3 | -1.49 | +| TIA | 03-06 14:00 | 03-06 17:00 | stop_loss | 3 | -1.49 | +| WIF | 03-06 15:00 | 03-06 17:00 | stop_loss | 2 | -1.49 | +| APT | 03-06 17:00 | 03-06 18:00 | trailing_stop | 1 | -0.55 | +| ARB | 03-06 17:00 | 03-06 18:00 | trailing_stop | 1 | -0.10 | +| BONK | 03-06 17:00 | 03-06 18:00 | trailing_stop | 1 | -0.50 | +| NEAR | 03-06 17:00 | 03-06 18:00 | take_profit | 1 | +1.49 | +| OP | 03-06 17:00 | 03-06 18:00 | trailing_stop | 1 | -0.36 | +| RENDER | 03-06 14:00 | 03-06 18:00 | take_profit | 4 | +1.49 | +| TIA | 03-06 17:00 | 03-06 18:00 | trailing_stop | 1 | +0.04 | +| FIL | 03-06 17:00 | 03-06 20:00 | confirmed_bearish_exit | 3 | +0.43 | +| INJ | 03-06 17:00 | 03-06 22:00 | take_profit | 5 | +1.49 | +| PEPE | 03-06 17:00 | 03-06 22:00 | take_profit | 5 | +1.49 | +| TON | 03-06 14:00 | 03-06 22:00 | take_profit | 8 | +1.49 | +| NEAR | 03-06 22:00 | 03-06 23:00 | stop_loss | 1 | -1.49 | +| NEAR | 03-06 23:00 | 03-07 00:00 | trailing_stop | 1 | -0.49 | +| RENDER | 03-06 21:00 | 03-07 00:00 | stop_loss | 3 | -1.49 | +| WIF | 03-06 22:00 | 03-07 00:00 | stop_loss | 2 | -1.49 | +| OP | 03-06 22:00 | 03-07 01:00 | stop_loss | 3 | -1.49 | +| TIA | 03-06 22:00 | 03-07 01:00 | stop_loss | 3 | -1.49 | +| ATOM | 03-06 14:00 | 03-07 02:00 | take_profit | 12 | +1.49 | +| INJ | 03-06 22:00 | 03-07 02:00 | stop_loss | 4 | -1.49 | +| FIL | 03-06 22:00 | 03-07 03:00 | stop_loss | 5 | -1.49 | +| ARB | 03-06 22:00 | 03-07 04:00 | stop_loss | 6 | -1.49 | +| BONK | 03-06 22:00 | 03-07 04:00 | stop_loss | 6 | -1.49 | +| FET | 03-06 22:00 | 03-07 04:00 | stop_loss | 6 | -1.49 | +| WIF | 03-07 00:00 | 03-07 04:00 | stop_loss | 4 | -1.49 | +| ETC | 03-06 17:00 | 03-07 06:00 | trailing_stop | 13 | -0.24 | +| INJ | 03-07 02:00 | 03-07 06:00 | stop_loss | 4 | -1.49 | +| KAS | 03-06 17:00 | 03-07 06:00 | trailing_stop | 13 | -0.64 | +| PEPE | 03-06 22:00 | 03-07 06:00 | stop_loss | 8 | -1.49 | +| TIA | 03-07 01:00 | 03-07 06:00 | stop_loss | 5 | -1.49 | +| UNI | 03-06 14:00 | 03-07 06:00 | stop_loss | 16 | -1.49 | +| APT | 03-06 23:00 | 03-07 07:00 | stop_loss | 8 | -1.49 | +| OP | 03-07 01:00 | 03-07 07:00 | stop_loss | 6 | -1.49 | +| SUI | 03-06 23:00 | 03-07 09:00 | trailing_stop | 10 | -0.44 | +| WIF | 03-07 10:00 | 03-07 11:00 | stop_loss | 1 | -1.49 | +| WIF | 03-07 11:00 | 03-07 12:00 | stop_loss | 1 | -1.49 | +| WIF | 03-07 12:00 | 03-07 13:00 | trailing_stop | 1 | -0.59 | +| AVAX | 03-06 14:00 | 03-07 14:00 | trailing_stop | 24 | -0.60 | +| SEI | 03-06 14:00 | 03-07 14:00 | stop_loss | 24 | -1.49 | +| SHIB | 03-06 15:00 | 03-07 14:00 | trailing_stop | 23 | -0.41 | +| WIF | 03-07 13:00 | 03-07 14:00 | stop_loss | 1 | -1.49 | +| ARB | 03-07 14:00 | 03-07 15:00 | stop_loss | 1 | -1.49 | +| BONK | 03-07 12:00 | 03-07 15:00 | stop_loss | 3 | -1.49 | +| OP | 03-07 14:00 | 03-07 15:00 | stop_loss | 1 | -1.49 | +| TIA | 03-07 14:00 | 03-07 15:00 | stop_loss | 1 | -1.49 | +| PEPE | 03-07 14:00 | 03-07 16:00 | stop_loss | 2 | -1.49 | +| TON | 03-07 15:00 | 03-07 18:00 | stop_loss | 3 | -1.49 | +| APT | 03-07 14:00 | 03-07 19:00 | stop_loss | 5 | -1.49 | +| ARB | 03-07 15:00 | 03-07 19:00 | stop_loss | 4 | -1.49 | +| FIL | 03-07 15:00 | 03-07 19:00 | stop_loss | 4 | -1.49 | +| LTC | 03-06 17:00 | 03-07 19:00 | trailing_stop | 26 | -0.29 | +| OP | 03-07 15:00 | 03-07 19:00 | stop_loss | 4 | -1.49 | +| TIA | 03-07 15:00 | 03-07 19:00 | trailing_stop | 4 | -0.53 | +| ATOM | 03-07 15:00 | 03-07 22:00 | stop_loss | 7 | -1.49 | +| BONK | 03-07 15:00 | 03-07 22:00 | stop_loss | 7 | -1.49 | +| OP | 03-07 19:00 | 03-07 22:00 | stop_loss | 3 | -1.49 | +| PEPE | 03-07 16:00 | 03-07 22:00 | stop_loss | 6 | -1.49 | +| SEI | 03-07 18:00 | 03-07 22:00 | stop_loss | 4 | -1.49 | +| SHIB | 03-07 14:00 | 03-07 22:00 | stop_loss | 8 | -1.49 | +| WIF | 03-07 21:00 | 03-07 22:00 | stop_loss | 1 | -1.49 | +| TON | 03-07 18:00 | 03-08 01:00 | trailing_stop | 7 | -0.11 | +| APT | 03-07 19:00 | 03-08 02:00 | stop_loss | 7 | -1.49 | +| ARB | 03-07 19:00 | 03-08 02:00 | stop_loss | 7 | -1.49 | +| BONK | 03-07 22:00 | 03-08 02:00 | stop_loss | 4 | -1.49 | +| ETC | 03-07 19:00 | 03-08 02:00 | stop_loss | 7 | -1.49 | +| FET | 03-07 22:00 | 03-08 02:00 | stop_loss | 4 | -1.49 | +| FIL | 03-07 19:00 | 03-08 02:00 | stop_loss | 7 | -1.49 | +| INJ | 03-08 00:00 | 03-08 02:00 | stop_loss | 2 | -1.49 | +| KAS | 03-08 00:00 | 03-08 02:00 | stop_loss | 2 | -1.49 | +| SUI | 03-07 19:00 | 03-08 02:00 | stop_loss | 7 | -1.49 | +| TIA | 03-08 00:00 | 03-08 02:00 | stop_loss | 2 | -1.49 | +| UNI | 03-07 19:00 | 03-08 02:00 | stop_loss | 7 | -1.49 | +| NEAR | 03-08 02:00 | 03-08 03:00 | trailing_stop | 1 | -0.47 | +| TON | 03-08 01:00 | 03-08 03:00 | stop_loss | 2 | -1.49 | +| AVAX | 03-07 19:00 | 03-08 04:00 | stop_loss | 9 | -1.49 | +| LTC | 03-07 19:00 | 03-08 04:00 | stop_loss | 9 | -1.49 | +| SEI | 03-07 22:00 | 03-08 04:00 | stop_loss | 6 | -1.49 | +| SHIB | 03-07 22:00 | 03-08 04:00 | stop_loss | 6 | -1.49 | +| RENDER | 03-08 02:00 | 03-08 05:00 | take_profit | 3 | +1.49 | +| INJ | 03-08 02:00 | 03-08 06:00 | confirmed_bearish_exit | 4 | +0.82 | +| TIA | 03-08 02:00 | 03-08 07:00 | take_profit | 5 | +1.49 | +| APT | 03-08 02:00 | 03-08 09:00 | take_profit | 7 | +1.49 | +| SUI | 03-08 02:00 | 03-08 09:00 | take_profit | 7 | +1.49 | +| BONK | 03-08 02:00 | 03-08 10:00 | take_profit | 8 | +1.49 | +| FET | 03-08 02:00 | 03-08 10:00 | take_profit | 8 | +1.49 | +| FIL | 03-08 02:00 | 03-08 10:00 | take_profit | 8 | +1.49 | +| SHIB | 03-08 04:00 | 03-08 10:00 | take_profit | 6 | +1.49 | +| UNI | 03-08 02:00 | 03-08 10:00 | take_profit | 8 | +1.49 | +| ATOM | 03-08 02:00 | 03-08 12:00 | stop_loss | 10 | -1.49 | +| ETC | 03-08 02:00 | 03-08 12:00 | trailing_stop | 10 | +0.02 | +| OP | 03-08 02:00 | 03-08 12:00 | take_profit | 10 | +1.49 | +| LTC | 03-08 04:00 | 03-08 14:00 | trailing_stop | 10 | -0.39 | +| TRX | 03-05 07:00 | 03-08 16:00 | take_profit | 81 | +1.49 | +| KAS | 03-08 02:00 | 03-08 19:00 | take_profit | 17 | +1.49 | +| ATOM | 03-08 13:00 | 03-08 22:00 | stop_loss | 9 | -1.49 | +| ATOM | 03-08 23:00 | 03-09 01:00 | stop_loss | 2 | -1.49 | +| NEAR | 03-09 00:00 | 03-09 02:00 | trailing_stop | 2 | -0.57 | +| PEPE | 03-08 23:00 | 03-09 02:00 | trailing_stop | 3 | -0.46 | +| ATOM | 03-09 01:00 | 03-09 03:00 | take_profit | 2 | +1.49 | +| SEI | 03-08 23:00 | 03-09 03:00 | take_profit | 4 | +1.49 | +| TON | 03-09 01:00 | 03-09 05:00 | take_profit | 4 | +1.49 | +| TRX | 03-09 09:00 | 03-09 11:00 | stop_loss | 2 | -1.49 | +| SEI | 03-09 11:00 | 03-09 15:00 | trailing_stop | 4 | -0.58 | +| WIF | 03-10 05:00 | 03-10 08:00 | trailing_stop | 3 | +0.05 | +| FIL | 03-10 18:00 | 03-10 19:00 | stop_loss | 1 | -1.49 | +| FIL | 03-10 19:00 | 03-10 21:00 | stop_loss | 2 | -1.49 | +| FIL | 03-10 21:00 | 03-10 22:00 | stop_loss | 1 | -1.49 | +| WIF | 03-10 22:00 | 03-11 00:00 | trailing_stop | 2 | -0.49 | +| SEI | 03-10 22:00 | 03-11 01:00 | stop_loss | 3 | -1.49 | +| TON | 03-10 19:00 | 03-11 01:00 | stop_loss | 6 | -1.49 | +| APT | 03-10 23:00 | 03-11 02:00 | stop_loss | 3 | -1.49 | +| SEI | 03-11 01:00 | 03-11 02:00 | stop_loss | 1 | -1.49 | +| FIL | 03-10 22:00 | 03-11 04:00 | stop_loss | 6 | -1.49 | +| TON | 03-11 01:00 | 03-11 04:00 | stop_loss | 3 | -1.49 | +| NEAR | 03-11 04:00 | 03-11 05:00 | stop_loss | 1 | -1.49 | +| OP | 03-10 21:00 | 03-11 05:00 | stop_loss | 8 | -1.49 | +| SEI | 03-11 02:00 | 03-11 05:00 | trailing_stop | 3 | -0.59 | +| KAS | 03-11 02:00 | 03-11 07:00 | stop_loss | 5 | -1.49 | +| RENDER | 03-11 06:00 | 03-11 07:00 | stop_loss | 1 | -1.49 | +| ARB | 03-10 21:00 | 03-11 10:00 | take_profit | 13 | +1.49 | +| FIL | 03-11 07:00 | 03-11 10:00 | trailing_stop | 3 | -0.01 | +| SHIB | 03-11 06:00 | 03-11 12:00 | take_profit | 6 | +1.49 | +| LTC | 03-11 04:00 | 03-11 17:00 | take_profit | 13 | +1.49 | +| TRX | 03-09 11:00 | 03-11 17:00 | take_profit | 54 | +1.49 | +| FIL | 03-12 02:00 | 03-12 04:00 | stop_loss | 2 | -1.49 | +| BONK | 03-12 04:00 | 03-12 05:00 | stop_loss | 1 | -1.49 | +| FET | 03-12 01:00 | 03-12 05:00 | stop_loss | 4 | -1.49 | +| APT | 03-12 03:00 | 03-12 07:00 | stop_loss | 4 | -1.49 | +| SHIB | 03-12 04:00 | 03-12 07:00 | trailing_stop | 3 | -0.49 | +| TIA | 03-12 06:00 | 03-12 09:00 | take_profit | 3 | +1.49 | +| PEPE | 03-12 04:00 | 03-12 10:00 | take_profit | 6 | +1.49 | +| UNI | 03-12 03:00 | 03-12 10:00 | take_profit | 7 | +1.49 | +| ARB | 03-12 03:00 | 03-12 11:00 | trailing_stop | 8 | -0.60 | +| FIL | 03-12 09:00 | 03-12 11:00 | stop_loss | 2 | -1.49 | +| OP | 03-12 03:00 | 03-12 12:00 | stop_loss | 9 | -1.49 | +| ARB | 03-12 11:00 | 03-12 14:00 | stop_loss | 3 | -1.49 | +| AVAX | 03-12 03:00 | 03-12 14:00 | trailing_stop | 11 | -0.35 | +| ETC | 03-12 03:00 | 03-12 14:00 | stop_loss | 11 | -1.49 | +| FIL | 03-12 11:00 | 03-12 14:00 | stop_loss | 3 | -1.49 | +| KAS | 03-12 03:00 | 03-12 14:00 | trailing_stop | 11 | -0.55 | +| TIA | 03-12 12:00 | 03-12 14:00 | stop_loss | 2 | -1.49 | +| TON | 03-12 13:00 | 03-12 15:00 | stop_loss | 2 | -1.49 | +| OP | 03-12 14:00 | 03-12 19:00 | trailing_stop | 5 | +0.07 | +| APT | 03-12 14:00 | 03-13 00:00 | take_profit | 10 | +1.49 | +| ATOM | 03-12 14:00 | 03-13 00:00 | take_profit | 10 | +1.49 | +| LTC | 03-12 06:00 | 03-13 00:00 | take_profit | 18 | +1.49 | +| TON | 03-12 15:00 | 03-13 08:00 | stop_loss | 17 | -1.49 | +| TON | 03-13 08:00 | 03-13 12:00 | take_profit | 4 | +1.49 | +| NEAR | 03-13 15:00 | 03-13 16:00 | trailing_stop | 1 | -0.60 | +| FET | 03-13 17:00 | 03-13 18:00 | trailing_stop | 1 | -0.34 | +| FIL | 03-13 19:00 | 03-13 22:00 | stop_loss | 3 | -1.49 | +| SUI | 03-13 18:00 | 03-13 22:00 | stop_loss | 4 | -1.49 | +| ARB | 03-13 23:00 | 03-14 00:00 | stop_loss | 1 | -1.49 | +| FET | 03-13 18:00 | 03-14 02:00 | take_profit | 8 | +1.49 | +| OP | 03-14 00:00 | 03-14 03:00 | take_profit | 3 | +1.49 | +| BONK | 03-14 03:00 | 03-14 05:00 | stop_loss | 2 | -1.49 | +| NEAR | 03-14 00:00 | 03-14 05:00 | trailing_stop | 5 | -0.50 | +| PEPE | 03-14 03:00 | 03-14 05:00 | stop_loss | 2 | -1.49 | +| ARB | 03-14 00:00 | 03-14 06:00 | stop_loss | 6 | -1.49 | +| FIL | 03-14 03:00 | 03-14 06:00 | stop_loss | 3 | -1.49 | +| INJ | 03-13 22:00 | 03-14 06:00 | stop_loss | 8 | -1.49 | +| SHIB | 03-14 05:00 | 03-14 06:00 | stop_loss | 1 | -1.49 | +| TIA | 03-14 05:00 | 03-14 06:00 | stop_loss | 1 | -1.49 | +| UNI | 03-14 00:00 | 03-14 06:00 | stop_loss | 6 | -1.49 | +| ETC | 03-14 06:00 | 03-14 10:00 | stop_loss | 4 | -1.49 | +| TRX | 03-12 10:00 | 03-14 12:00 | take_profit | 50 | +1.49 | +| APT | 03-14 13:00 | 03-14 15:00 | stop_loss | 2 | -1.49 | +| ETC | 03-14 10:00 | 03-14 16:00 | confirmed_bearish_exit | 6 | -0.26 | +| FIL | 03-14 06:00 | 03-14 18:00 | take_profit | 12 | +1.49 | +| APT | 03-14 15:00 | 03-15 01:00 | trailing_stop | 10 | -0.29 | +| NEAR | 03-14 17:00 | 03-15 01:00 | take_profit | 8 | +1.49 | +| ARB | 03-14 15:00 | 03-15 02:00 | take_profit | 11 | +1.49 | +| AVAX | 03-14 17:00 | 03-15 02:00 | take_profit | 9 | +1.49 | +| SEI | 03-14 06:00 | 03-15 06:00 | trailing_stop | 24 | -0.20 | +| KAS | 03-13 17:00 | 03-15 11:00 | trailing_stop | 42 | +0.03 | +| UNI | 03-14 15:00 | 03-15 13:00 | trailing_stop | 22 | -0.12 | +| RENDER | 03-15 15:00 | 03-15 17:00 | trailing_stop | 2 | -0.63 | +| ARB | 03-15 16:00 | 03-15 21:00 | take_profit | 5 | +1.49 | +| LTC | 03-14 09:00 | 03-15 21:00 | take_profit | 36 | +1.49 | +| NEAR | 03-15 16:00 | 03-15 21:00 | take_profit | 5 | +1.49 | +| SUI | 03-15 16:00 | 03-15 21:00 | trailing_stop | 5 | -0.08 | +| APT | 03-15 16:00 | 03-15 22:00 | take_profit | 6 | +1.49 | +| SHIB | 03-15 16:00 | 03-15 22:00 | take_profit | 6 | +1.49 | +| TIA | 03-15 16:00 | 03-15 22:00 | take_profit | 6 | +1.49 | +| KAS | 03-15 13:00 | 03-15 23:00 | take_profit | 10 | +1.49 | +| TON | 03-15 06:00 | 03-16 01:00 | take_profit | 19 | +1.49 | +| ATOM | 03-15 00:00 | 03-16 03:00 | take_profit | 27 | +1.49 | +| AVAX | 03-16 19:00 | 03-16 22:00 | take_profit | 3 | +1.49 | +| PEPE | 03-17 04:00 | 03-17 05:00 | stop_loss | 1 | -1.49 | +| UNI | 03-17 04:00 | 03-17 05:00 | stop_loss | 1 | -1.49 | +| FET | 03-17 06:00 | 03-17 07:00 | take_profit | 1 | +1.49 | +| BONK | 03-17 05:00 | 03-17 08:00 | take_profit | 3 | +1.49 | +| FET | 03-17 07:00 | 03-17 08:00 | stop_loss | 1 | -1.49 | +| PEPE | 03-17 05:00 | 03-17 09:00 | stop_loss | 4 | -1.49 | +| TRX | 03-15 05:00 | 03-17 09:00 | take_profit | 52 | +1.49 | +| SUI | 03-17 04:00 | 03-17 10:00 | stop_loss | 6 | -1.49 | +| UNI | 03-17 05:00 | 03-17 10:00 | stop_loss | 5 | -1.49 | +| APT | 03-17 10:00 | 03-17 12:00 | stop_loss | 2 | -1.49 | +| ARB | 03-17 11:00 | 03-17 12:00 | stop_loss | 1 | -1.49 | +| ATOM | 03-17 09:00 | 03-17 12:00 | stop_loss | 3 | -1.49 | +| ETC | 03-17 08:00 | 03-17 12:00 | stop_loss | 4 | -1.49 | +| FIL | 03-17 10:00 | 03-17 12:00 | stop_loss | 2 | -1.49 | +| OP | 03-17 11:00 | 03-17 12:00 | stop_loss | 1 | -1.49 | +| TIA | 03-17 10:00 | 03-17 12:00 | stop_loss | 2 | -1.49 | +| FET | 03-17 12:00 | 03-17 13:00 | take_profit | 1 | +1.49 | +| INJ | 03-17 11:00 | 03-17 13:00 | stop_loss | 2 | -1.49 | +| PEPE | 03-17 12:00 | 03-17 14:00 | trailing_stop | 2 | -0.62 | +| RENDER | 03-17 13:00 | 03-17 14:00 | stop_loss | 1 | -1.49 | +| FIL | 03-17 12:00 | 03-17 17:00 | confirmed_bearish_exit | 5 | +0.54 | +| SHIB | 03-17 12:00 | 03-17 17:00 | take_profit | 5 | +1.49 | +| OP | 03-17 12:00 | 03-17 20:00 | take_profit | 8 | +1.49 | +| ATOM | 03-17 12:00 | 03-17 21:00 | confirmed_bearish_exit | 9 | +0.94 | +| PEPE | 03-17 19:00 | 03-17 22:00 | trailing_stop | 3 | -0.62 | +| RENDER | 03-17 21:00 | 03-17 22:00 | stop_loss | 1 | -1.49 | +| RENDER | 03-17 22:00 | 03-18 00:00 | stop_loss | 2 | -1.49 | +| SUI | 03-17 16:00 | 03-18 00:00 | trailing_stop | 8 | -0.36 | +| NEAR | 03-17 12:00 | 03-18 04:00 | trailing_stop | 16 | -0.26 | +| RENDER | 03-18 00:00 | 03-18 07:00 | stop_loss | 7 | -1.49 | +| SEI | 03-17 10:00 | 03-18 07:00 | trailing_stop | 21 | -0.40 | +| FET | 03-18 07:00 | 03-18 09:00 | trailing_stop | 2 | -0.29 | +| AVAX | 03-17 12:00 | 03-18 11:00 | stop_loss | 23 | -1.49 | +| ETC | 03-17 16:00 | 03-18 11:00 | stop_loss | 19 | -1.49 | +| LTC | 03-18 07:00 | 03-18 11:00 | stop_loss | 4 | -1.49 | +| NEAR | 03-18 06:00 | 03-18 11:00 | stop_loss | 5 | -1.49 | +| SEI | 03-18 10:00 | 03-18 11:00 | stop_loss | 1 | -1.49 | +| TON | 03-18 10:00 | 03-18 11:00 | stop_loss | 1 | -1.49 | +| UNI | 03-18 10:00 | 03-18 11:00 | stop_loss | 1 | -1.49 | +| APT | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| ARB | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| AVAX | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| ETC | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| FIL | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| INJ | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| LTC | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| OP | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| PEPE | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| RENDER | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| SEI | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| SHIB | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| SUI | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| TIA | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| TON | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| UNI | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| WIF | 03-18 11:00 | 03-18 12:00 | stop_loss | 1 | -1.49 | +| WIF | 03-18 12:00 | 03-18 13:00 | take_profit | 1 | +1.49 | +| APT | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| ARB | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| AVAX | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| BONK | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| ETC | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| FIL | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| INJ | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| NEAR | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| OP | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| PEPE | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| RENDER | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| SHIB | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| SUI | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| TIA | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| TON | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| UNI | 03-18 12:00 | 03-18 14:00 | stop_loss | 2 | -1.49 | +| WIF | 03-18 13:00 | 03-18 14:00 | stop_loss | 1 | -1.49 | +| FIL | 03-18 14:00 | 03-18 15:00 | stop_loss | 1 | -1.49 | +| LTC | 03-18 12:00 | 03-18 15:00 | stop_loss | 3 | -1.49 | +| SEI | 03-18 12:00 | 03-18 15:00 | stop_loss | 3 | -1.49 | +| TON | 03-18 14:00 | 03-18 15:00 | trailing_stop | 1 | -0.63 | +| UNI | 03-18 14:00 | 03-18 15:00 | stop_loss | 1 | -1.49 | +| OP | 03-18 14:00 | 03-18 16:00 | stop_loss | 2 | -1.49 | +| RENDER | 03-18 14:00 | 03-18 16:00 | stop_loss | 2 | -1.49 | +| UNI | 03-18 15:00 | 03-18 16:00 | stop_loss | 1 | -1.49 | +| WIF | 03-18 14:00 | 03-18 16:00 | stop_loss | 2 | -1.49 | +| FIL | 03-18 15:00 | 03-18 17:00 | stop_loss | 2 | -1.49 | +| RENDER | 03-18 16:00 | 03-18 17:00 | trailing_stop | 1 | -0.37 | +| TIA | 03-18 14:00 | 03-18 17:00 | stop_loss | 3 | -1.49 | +| APT | 03-18 14:00 | 03-18 18:00 | take_profit | 4 | +1.49 | +| ATOM | 03-18 14:00 | 03-18 18:00 | stop_loss | 4 | -1.49 | +| BONK | 03-18 14:00 | 03-18 18:00 | take_profit | 4 | +1.49 | +| PEPE | 03-18 14:00 | 03-18 18:00 | take_profit | 4 | +1.49 | +| ARB | 03-18 14:00 | 03-18 20:00 | trailing_stop | 6 | -0.53 | +| NEAR | 03-18 14:00 | 03-18 20:00 | trailing_stop | 6 | -0.70 | +| SHIB | 03-18 14:00 | 03-18 20:00 | trailing_stop | 6 | -0.49 | +| ETC | 03-18 14:00 | 03-18 21:00 | take_profit | 7 | +1.49 | +| PEPE | 03-18 21:00 | 03-18 22:00 | stop_loss | 1 | -1.49 | +| OP | 03-18 16:00 | 03-18 23:00 | trailing_stop | 7 | -0.36 | +| NEAR | 03-18 21:00 | 03-19 00:00 | stop_loss | 3 | -1.49 | +| SEI | 03-18 15:00 | 03-19 00:00 | stop_loss | 9 | -1.49 | +| OP | 03-18 23:00 | 03-19 01:00 | stop_loss | 2 | -1.49 | +| BONK | 03-18 21:00 | 03-19 02:00 | stop_loss | 5 | -1.49 | +| INJ | 03-18 14:00 | 03-19 02:00 | trailing_stop | 12 | -0.44 | +| RENDER | 03-18 21:00 | 03-19 02:00 | stop_loss | 5 | -1.49 | +| SUI | 03-18 14:00 | 03-19 02:00 | trailing_stop | 12 | -0.33 | +| UNI | 03-18 16:00 | 03-19 03:00 | take_profit | 11 | +1.49 | +| PEPE | 03-18 22:00 | 03-19 04:00 | stop_loss | 6 | -1.49 | +| SHIB | 03-18 21:00 | 03-19 04:00 | confirmed_bearish_exit | 7 | -0.67 | +| TON | 03-18 23:00 | 03-19 04:00 | stop_loss | 5 | -1.49 | +| ARB | 03-18 21:00 | 03-19 05:00 | stop_loss | 8 | -1.49 | +| AVAX | 03-18 14:00 | 03-19 05:00 | trailing_stop | 15 | -0.15 | +| LTC | 03-18 15:00 | 03-19 05:00 | trailing_stop | 14 | -0.44 | +| TIA | 03-18 22:00 | 03-19 05:00 | stop_loss | 7 | -1.49 | +| ATOM | 03-18 22:00 | 03-19 06:00 | stop_loss | 8 | -1.49 | +| FIL | 03-18 21:00 | 03-19 06:00 | stop_loss | 9 | -1.49 | +| ETC | 03-18 21:00 | 03-19 07:00 | stop_loss | 10 | -1.49 | +| FET | 03-19 08:00 | 03-19 09:00 | take_profit | 1 | +1.49 | +| RENDER | 03-19 08:00 | 03-19 10:00 | stop_loss | 2 | -1.49 | +| TON | 03-19 06:00 | 03-19 10:00 | stop_loss | 4 | -1.49 | +| RENDER | 03-19 10:00 | 03-19 11:00 | stop_loss | 1 | -1.49 | +| FET | 03-19 11:00 | 03-19 12:00 | stop_loss | 1 | -1.49 | +| INJ | 03-19 07:00 | 03-19 12:00 | stop_loss | 5 | -1.49 | +| NEAR | 03-19 07:00 | 03-19 12:00 | stop_loss | 5 | -1.49 | +| OP | 03-19 07:00 | 03-19 12:00 | trailing_stop | 5 | -0.48 | +| TIA | 03-19 07:00 | 03-19 12:00 | stop_loss | 5 | -1.49 | +| APT | 03-19 12:00 | 03-19 13:00 | stop_loss | 1 | -1.49 | +| ATOM | 03-19 10:00 | 03-19 13:00 | stop_loss | 3 | -1.49 | +| FET | 03-19 12:00 | 03-19 13:00 | stop_loss | 1 | -1.49 | +| FIL | 03-19 12:00 | 03-19 13:00 | stop_loss | 1 | -1.49 | +| RENDER | 03-19 11:00 | 03-19 13:00 | stop_loss | 2 | -1.49 | +| SEI | 03-19 08:00 | 03-19 13:00 | stop_loss | 5 | -1.49 | +| TON | 03-19 10:00 | 03-19 13:00 | stop_loss | 3 | -1.49 | +| WIF | 03-19 12:00 | 03-19 13:00 | take_profit | 1 | +1.49 | +| APT | 03-19 13:00 | 03-19 14:00 | stop_loss | 1 | -1.49 | +| APT | 03-19 14:00 | 03-19 15:00 | stop_loss | 1 | -1.49 | +| ARB | 03-19 12:00 | 03-19 15:00 | stop_loss | 3 | -1.49 | +| AVAX | 03-19 12:00 | 03-19 15:00 | stop_loss | 3 | -1.49 | +| BONK | 03-19 12:00 | 03-19 15:00 | stop_loss | 3 | -1.49 | +| FET | 03-19 14:00 | 03-19 15:00 | stop_loss | 1 | -1.49 | +| FIL | 03-19 13:00 | 03-19 15:00 | stop_loss | 2 | -1.49 | +| NEAR | 03-19 12:00 | 03-19 15:00 | stop_loss | 3 | -1.49 | +| SUI | 03-19 12:00 | 03-19 15:00 | stop_loss | 3 | -1.49 | +| TRX | 03-18 12:00 | 03-19 15:00 | trailing_stop | 27 | -0.22 | +| UNI | 03-19 12:00 | 03-19 15:00 | stop_loss | 3 | -1.49 | +| FET | 03-19 15:00 | 03-19 16:00 | trailing_stop | 1 | -0.53 | +| PEPE | 03-19 12:00 | 03-19 16:00 | stop_loss | 4 | -1.49 | +| SHIB | 03-19 12:00 | 03-19 16:00 | stop_loss | 4 | -1.49 | +| TIA | 03-19 12:00 | 03-19 16:00 | stop_loss | 4 | -1.49 | +| BONK | 03-19 16:00 | 03-19 17:00 | trailing_stop | 1 | -0.69 | +| FIL | 03-19 15:00 | 03-19 17:00 | stop_loss | 2 | -1.49 | +| PEPE | 03-19 16:00 | 03-19 19:00 | take_profit | 3 | +1.49 | +| RENDER | 03-19 13:00 | 03-19 19:00 | take_profit | 6 | +1.49 | +| SHIB | 03-19 16:00 | 03-19 19:00 | take_profit | 3 | +1.49 | +| INJ | 03-19 12:00 | 03-19 20:00 | take_profit | 8 | +1.49 | +| ATOM | 03-19 20:00 | 03-19 22:00 | stop_loss | 2 | -1.49 | +| KAS | 03-19 21:00 | 03-19 22:00 | stop_loss | 1 | -1.49 | +| TIA | 03-19 16:00 | 03-19 22:00 | trailing_stop | 6 | -0.48 | +| APT | 03-19 15:00 | 03-20 01:00 | take_profit | 10 | +1.49 | +| SEI | 03-19 15:00 | 03-20 01:00 | take_profit | 10 | +1.49 | +| LTC | 03-19 12:00 | 03-20 04:00 | take_profit | 16 | +1.49 | +| ATOM | 03-19 22:00 | 03-20 05:00 | trailing_stop | 7 | -0.11 | +| BONK | 03-19 23:00 | 03-20 05:00 | take_profit | 6 | +1.49 | +| FIL | 03-19 22:00 | 03-20 05:00 | take_profit | 7 | +1.49 | +| TRX | 03-19 15:00 | 03-20 10:00 | take_profit | 19 | +1.49 | +| KAS | 03-20 16:00 | 03-20 17:00 | stop_loss | 1 | -1.49 | +| KAS | 03-20 17:00 | 03-20 18:00 | take_profit | 1 | +1.49 | +| NEAR | 03-20 15:00 | 03-20 18:00 | stop_loss | 3 | -1.49 | +| FET | 03-20 18:00 | 03-20 19:00 | stop_loss | 1 | -1.49 | +| INJ | 03-20 17:00 | 03-20 19:00 | stop_loss | 2 | -1.49 | +| FET | 03-20 19:00 | 03-20 20:00 | stop_loss | 1 | -1.49 | +| INJ | 03-20 19:00 | 03-20 20:00 | stop_loss | 1 | -1.49 | +| FET | 03-20 20:00 | 03-20 21:00 | take_profit | 1 | +1.49 | +| RENDER | 03-20 18:00 | 03-20 21:00 | trailing_stop | 3 | -0.59 | +| PEPE | 03-20 18:00 | 03-20 22:00 | take_profit | 4 | +1.49 | +| LTC | 03-20 14:00 | 03-21 01:00 | take_profit | 11 | +1.49 | +| TIA | 03-20 18:00 | 03-21 12:00 | trailing_stop | 18 | -0.45 | +| KAS | 03-21 11:00 | 03-21 13:00 | stop_loss | 2 | -1.49 | +| UNI | 03-20 15:00 | 03-21 13:00 | trailing_stop | 22 | -0.06 | +| ARB | 03-20 18:00 | 03-21 15:00 | trailing_stop | 21 | -0.21 | +| NEAR | 03-20 18:00 | 03-21 15:00 | trailing_stop | 21 | -0.65 | +| KAS | 03-21 13:00 | 03-21 16:00 | trailing_stop | 3 | -0.44 | +| APT | 03-21 22:00 | 03-21 23:00 | stop_loss | 1 | -1.49 | +| ATOM | 03-21 19:00 | 03-21 23:00 | stop_loss | 4 | -1.49 | +| AVAX | 03-21 14:00 | 03-21 23:00 | stop_loss | 9 | -1.49 | +| FET | 03-21 21:00 | 03-21 23:00 | stop_loss | 2 | -1.49 | +| LTC | 03-21 14:00 | 03-21 23:00 | stop_loss | 9 | -1.49 | +| SEI | 03-20 14:00 | 03-21 23:00 | stop_loss | 33 | -1.49 | +| SUI | 03-20 18:00 | 03-21 23:00 | stop_loss | 29 | -1.49 | +| UNI | 03-21 14:00 | 03-21 23:00 | stop_loss | 9 | -1.49 | +| APT | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| ARB | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| ATOM | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| AVAX | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| BONK | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| ETC | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| INJ | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| KAS | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| LTC | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| NEAR | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| OP | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| PEPE | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| RENDER | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| SHIB | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| SUI | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| TIA | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| UNI | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| WIF | 03-21 23:00 | 03-22 00:00 | stop_loss | 1 | -1.49 | +| APT | 03-22 00:00 | 03-22 01:00 | stop_loss | 1 | -1.49 | +| WIF | 03-22 00:00 | 03-22 02:00 | take_profit | 2 | +1.49 | +| INJ | 03-22 00:00 | 03-22 06:00 | stop_loss | 6 | -1.49 | +| SHIB | 03-22 00:00 | 03-22 06:00 | stop_loss | 6 | -1.49 | +| ARB | 03-22 00:00 | 03-22 07:00 | stop_loss | 7 | -1.49 | +| BONK | 03-22 00:00 | 03-22 07:00 | trailing_stop | 7 | -0.33 | +| OP | 03-22 00:00 | 03-22 07:00 | trailing_stop | 7 | -0.53 | +| SUI | 03-22 00:00 | 03-22 07:00 | trailing_stop | 7 | -0.64 | +| APT | 03-22 01:00 | 03-22 08:00 | stop_loss | 7 | -1.49 | +| ATOM | 03-22 00:00 | 03-22 08:00 | stop_loss | 8 | -1.49 | +| AVAX | 03-22 00:00 | 03-22 08:00 | stop_loss | 8 | -1.49 | +| LTC | 03-22 00:00 | 03-22 08:00 | stop_loss | 8 | -1.49 | +| PEPE | 03-22 00:00 | 03-22 08:00 | stop_loss | 8 | -1.49 | +| SEI | 03-22 00:00 | 03-22 08:00 | stop_loss | 8 | -1.49 | +| TIA | 03-22 00:00 | 03-22 08:00 | stop_loss | 8 | -1.49 | +| UNI | 03-22 00:00 | 03-22 08:00 | stop_loss | 8 | -1.49 | +| KAS | 03-22 05:00 | 03-22 09:00 | take_profit | 4 | +1.49 | +| FET | 03-22 09:00 | 03-22 10:00 | stop_loss | 1 | -1.49 | +| NEAR | 03-22 07:00 | 03-22 11:00 | stop_loss | 4 | -1.49 | +| FET | 03-22 11:00 | 03-22 12:00 | stop_loss | 1 | -1.49 | +| FET | 03-22 12:00 | 03-22 13:00 | trailing_stop | 1 | -0.18 | +| TRX | 03-22 07:00 | 03-22 14:00 | take_profit | 7 | +1.49 | +| APT | 03-22 11:00 | 03-22 15:00 | stop_loss | 4 | -1.49 | +| ETC | 03-22 00:00 | 03-22 18:00 | stop_loss | 18 | -1.49 | +| INJ | 03-22 16:00 | 03-22 18:00 | stop_loss | 2 | -1.49 | +| RENDER | 03-22 10:00 | 03-22 18:00 | trailing_stop | 8 | -0.30 | +| SUI | 03-22 17:00 | 03-22 18:00 | stop_loss | 1 | -1.49 | +| PEPE | 03-22 18:00 | 03-22 19:00 | stop_loss | 1 | -1.49 | +| UNI | 03-22 18:00 | 03-22 19:00 | stop_loss | 1 | -1.49 | +| LTC | 03-22 16:00 | 03-22 20:00 | stop_loss | 4 | -1.49 | +| FIL | 03-22 19:00 | 03-22 21:00 | stop_loss | 2 | -1.49 | +| LTC | 03-22 20:00 | 03-22 21:00 | stop_loss | 1 | -1.49 | +| NEAR | 03-22 18:00 | 03-22 21:00 | stop_loss | 3 | -1.49 | +| PEPE | 03-22 19:00 | 03-22 21:00 | stop_loss | 2 | -1.49 | +| RENDER | 03-22 18:00 | 03-22 21:00 | stop_loss | 3 | -1.49 | +| SUI | 03-22 19:00 | 03-22 21:00 | stop_loss | 2 | -1.49 | +| TIA | 03-22 19:00 | 03-22 21:00 | stop_loss | 2 | -1.49 | +| PEPE | 03-22 21:00 | 03-22 22:00 | trailing_stop | 1 | -0.48 | +| SUI | 03-22 21:00 | 03-22 22:00 | trailing_stop | 1 | -0.60 | +| APT | 03-22 23:00 | 03-23 00:00 | trailing_stop | 1 | -0.11 | +| FIL | 03-22 21:00 | 03-23 00:00 | stop_loss | 3 | -1.49 | +| SHIB | 03-22 20:00 | 03-23 00:00 | trailing_stop | 4 | -0.66 | +| FIL | 03-23 03:00 | 03-23 06:00 | stop_loss | 3 | -1.49 | +| KAS | 03-23 03:00 | 03-23 06:00 | stop_loss | 3 | -1.49 | +| LTC | 03-22 21:00 | 03-23 06:00 | trailing_stop | 9 | -0.24 | +| ATOM | 03-23 06:00 | 03-23 07:00 | stop_loss | 1 | -1.49 | +| FIL | 03-23 06:00 | 03-23 07:00 | stop_loss | 1 | -1.49 | +| KAS | 03-23 06:00 | 03-23 07:00 | stop_loss | 1 | -1.49 | +| SUI | 03-23 06:00 | 03-23 07:00 | stop_loss | 1 | -1.49 | +| TRX | 03-23 03:00 | 03-23 07:00 | stop_loss | 4 | -1.49 | +| KAS | 03-23 07:00 | 03-23 08:00 | stop_loss | 1 | -1.49 | +| NEAR | 03-23 06:00 | 03-23 09:00 | stop_loss | 3 | -1.49 | +| RENDER | 03-23 07:00 | 03-23 09:00 | stop_loss | 2 | -1.49 | +| ATOM | 03-23 07:00 | 03-23 11:00 | take_profit | 4 | +1.49 | +| KAS | 03-23 08:00 | 03-23 11:00 | take_profit | 3 | +1.49 | +| RENDER | 03-23 09:00 | 03-23 11:00 | take_profit | 2 | +1.49 | +| SUI | 03-24 04:00 | 03-24 07:00 | trailing_stop | 3 | +0.06 | +| TRX | 03-23 15:00 | 03-24 12:00 | take_profit | 21 | +1.49 | +| INJ | 03-24 11:00 | 03-24 14:00 | stop_loss | 3 | -1.49 | +| APT | 03-24 15:00 | 03-24 16:00 | trailing_stop | 1 | -0.36 | +| FIL | 03-24 10:00 | 03-24 16:00 | stop_loss | 6 | -1.49 | +| AVAX | 03-24 13:00 | 03-24 17:00 | stop_loss | 4 | -1.49 | +| INJ | 03-24 16:00 | 03-24 17:00 | stop_loss | 1 | -1.49 | +| ARB | 03-24 17:00 | 03-24 20:00 | take_profit | 3 | +1.49 | +| AVAX | 03-24 17:00 | 03-24 20:00 | take_profit | 3 | +1.49 | +| ETC | 03-24 11:00 | 03-24 20:00 | take_profit | 9 | +1.49 | +| FIL | 03-24 17:00 | 03-24 20:00 | take_profit | 3 | +1.49 | +| INJ | 03-24 17:00 | 03-24 20:00 | take_profit | 3 | +1.49 | +| SEI | 03-24 19:00 | 03-24 20:00 | take_profit | 1 | +1.49 | +| TIA | 03-24 17:00 | 03-24 20:00 | take_profit | 3 | +1.49 | +| UNI | 03-24 17:00 | 03-24 20:00 | take_profit | 3 | +1.49 | +| NEAR | 03-24 22:00 | 03-25 06:00 | stop_loss | 8 | -1.49 | +| KAS | 03-25 02:00 | 03-25 07:00 | take_profit | 5 | +1.49 | +| ATOM | 03-24 03:00 | 03-25 13:00 | trailing_stop | 34 | +0.03 | +| TRX | 03-24 21:00 | 03-25 17:00 | take_profit | 20 | +1.49 | +| APT | 03-25 13:00 | 03-25 21:00 | stop_loss | 8 | -1.49 | +| WIF | 03-25 22:00 | 03-25 23:00 | stop_loss | 1 | -1.49 | +| ATOM | 03-25 15:00 | 03-26 02:00 | stop_loss | 11 | -1.49 | +| BONK | 03-25 22:00 | 03-26 02:00 | stop_loss | 4 | -1.49 | +| LTC | 03-25 15:00 | 03-26 02:00 | trailing_stop | 11 | -0.53 | +| OP | 03-26 01:00 | 03-26 02:00 | stop_loss | 1 | -1.49 | +| PEPE | 03-25 20:00 | 03-26 02:00 | stop_loss | 6 | -1.49 | +| WIF | 03-25 23:00 | 03-26 02:00 | confirmed_bearish_exit | 3 | +0.03 | +| ARB | 03-26 02:00 | 03-26 03:00 | stop_loss | 1 | -1.49 | +| FIL | 03-26 01:00 | 03-26 03:00 | stop_loss | 2 | -1.49 | +| KAS | 03-26 01:00 | 03-26 03:00 | stop_loss | 2 | -1.49 | +| SHIB | 03-25 18:00 | 03-26 03:00 | stop_loss | 9 | -1.49 | +| APT | 03-26 02:00 | 03-26 05:00 | stop_loss | 3 | -1.49 | +| ARB | 03-26 03:00 | 03-26 05:00 | stop_loss | 2 | -1.49 | +| AVAX | 03-26 02:00 | 03-26 05:00 | stop_loss | 3 | -1.49 | +| BONK | 03-26 03:00 | 03-26 05:00 | stop_loss | 2 | -1.49 | +| ETC | 03-26 03:00 | 03-26 05:00 | stop_loss | 2 | -1.49 | +| INJ | 03-26 03:00 | 03-26 05:00 | stop_loss | 2 | -1.49 | +| LTC | 03-26 03:00 | 03-26 05:00 | stop_loss | 2 | -1.49 | +| NEAR | 03-26 03:00 | 03-26 05:00 | stop_loss | 2 | -1.49 | +| OP | 03-26 03:00 | 03-26 05:00 | stop_loss | 2 | -1.49 | +| PEPE | 03-26 02:00 | 03-26 05:00 | stop_loss | 3 | -1.49 | +| RENDER | 03-26 03:00 | 03-26 05:00 | stop_loss | 2 | -1.49 | +| SHIB | 03-26 03:00 | 03-26 05:00 | stop_loss | 2 | -1.49 | +| SUI | 03-26 03:00 | 03-26 05:00 | stop_loss | 2 | -1.49 | +| TIA | 03-26 03:00 | 03-26 05:00 | stop_loss | 2 | -1.49 | +| TON | 03-26 00:00 | 03-26 05:00 | stop_loss | 5 | -1.49 | +| UNI | 03-26 02:00 | 03-26 05:00 | stop_loss | 3 | -1.49 | +| FET | 03-26 05:00 | 03-26 06:00 | stop_loss | 1 | -1.49 | +| FIL | 03-26 03:00 | 03-26 06:00 | stop_loss | 3 | -1.49 | +| RENDER | 03-26 05:00 | 03-26 06:00 | stop_loss | 1 | -1.49 | +| SEI | 03-26 03:00 | 03-26 06:00 | stop_loss | 3 | -1.49 | +| ARB | 03-26 05:00 | 03-26 08:00 | stop_loss | 3 | -1.49 | +| KAS | 03-26 07:00 | 03-26 08:00 | stop_loss | 1 | -1.49 | +| OP | 03-26 05:00 | 03-26 08:00 | stop_loss | 3 | -1.49 | +| ARB | 03-26 08:00 | 03-26 09:00 | stop_loss | 1 | -1.49 | +| ATOM | 03-26 04:00 | 03-26 09:00 | stop_loss | 5 | -1.49 | +| AVAX | 03-26 05:00 | 03-26 09:00 | stop_loss | 4 | -1.49 | +| BONK | 03-26 05:00 | 03-26 09:00 | stop_loss | 4 | -1.49 | +| ETC | 03-26 05:00 | 03-26 09:00 | stop_loss | 4 | -1.49 | +| FET | 03-26 06:00 | 03-26 09:00 | stop_loss | 3 | -1.49 | +| FIL | 03-26 06:00 | 03-26 09:00 | stop_loss | 3 | -1.49 | +| INJ | 03-26 05:00 | 03-26 09:00 | stop_loss | 4 | -1.49 | +| KAS | 03-26 08:00 | 03-26 09:00 | stop_loss | 1 | -1.49 | +| LTC | 03-26 05:00 | 03-26 09:00 | stop_loss | 4 | -1.49 | +| NEAR | 03-26 05:00 | 03-26 09:00 | stop_loss | 4 | -1.49 | +| PEPE | 03-26 05:00 | 03-26 09:00 | stop_loss | 4 | -1.49 | +| RENDER | 03-26 06:00 | 03-26 09:00 | stop_loss | 3 | -1.49 | +| SEI | 03-26 06:00 | 03-26 09:00 | stop_loss | 3 | -1.49 | +| SHIB | 03-26 05:00 | 03-26 09:00 | stop_loss | 4 | -1.49 | +| SUI | 03-26 06:00 | 03-26 09:00 | stop_loss | 3 | -1.49 | +| TIA | 03-26 05:00 | 03-26 09:00 | stop_loss | 4 | -1.49 | +| UNI | 03-26 05:00 | 03-26 09:00 | stop_loss | 4 | -1.49 | +| OP | 03-26 08:00 | 03-26 10:00 | stop_loss | 2 | -1.49 | +| TON | 03-26 05:00 | 03-26 10:00 | stop_loss | 5 | -1.49 | +| FIL | 03-26 09:00 | 03-26 11:00 | stop_loss | 2 | -1.49 | +| ETC | 03-26 09:00 | 03-26 12:00 | stop_loss | 3 | -1.49 | +| FET | 03-26 10:00 | 03-26 12:00 | take_profit | 2 | +1.49 | +| UNI | 03-26 09:00 | 03-26 12:00 | stop_loss | 3 | -1.49 | +| APT | 03-26 05:00 | 03-26 13:00 | take_profit | 8 | +1.49 | +| AVAX | 03-26 09:00 | 03-26 15:00 | stop_loss | 6 | -1.49 | +| BONK | 03-26 09:00 | 03-26 15:00 | trailing_stop | 6 | -0.70 | +| FET | 03-26 14:00 | 03-26 15:00 | stop_loss | 1 | -1.49 | +| INJ | 03-26 09:00 | 03-26 15:00 | stop_loss | 6 | -1.49 | +| KAS | 03-26 09:00 | 03-26 15:00 | stop_loss | 6 | -1.49 | +| NEAR | 03-26 14:00 | 03-26 15:00 | stop_loss | 1 | -1.49 | +| RENDER | 03-26 14:00 | 03-26 15:00 | stop_loss | 1 | -1.49 | +| SEI | 03-26 09:00 | 03-26 15:00 | stop_loss | 6 | -1.49 | +| SUI | 03-26 09:00 | 03-26 15:00 | stop_loss | 6 | -1.49 | +| ARB | 03-26 09:00 | 03-26 16:00 | trailing_stop | 7 | -0.54 | +| TIA | 03-26 09:00 | 03-26 16:00 | stop_loss | 7 | -1.49 | +| BONK | 03-26 15:00 | 03-26 17:00 | stop_loss | 2 | -1.49 | +| LTC | 03-26 09:00 | 03-26 17:00 | stop_loss | 8 | -1.49 | +| OP | 03-26 16:00 | 03-26 17:00 | take_profit | 1 | +1.49 | +| PEPE | 03-26 09:00 | 03-26 17:00 | stop_loss | 8 | -1.49 | +| TON | 03-26 10:00 | 03-26 17:00 | stop_loss | 7 | -1.49 | +| FET | 03-26 15:00 | 03-26 18:00 | stop_loss | 3 | -1.49 | +| KAS | 03-26 17:00 | 03-26 18:00 | trailing_stop | 1 | -0.69 | +| NEAR | 03-26 15:00 | 03-26 18:00 | stop_loss | 3 | -1.49 | +| RENDER | 03-26 15:00 | 03-26 18:00 | stop_loss | 3 | -1.49 | +| OP | 03-26 18:00 | 03-26 19:00 | stop_loss | 1 | -1.49 | +| WIF | 03-26 17:00 | 03-26 20:00 | take_profit | 3 | +1.49 | +| AVAX | 03-26 23:00 | 03-27 04:00 | stop_loss | 5 | -1.49 | +| FET | 03-27 03:00 | 03-27 04:00 | stop_loss | 1 | -1.49 | +| FIL | 03-26 19:00 | 03-27 04:00 | trailing_stop | 9 | -0.33 | +| TON | 03-27 00:00 | 03-27 06:00 | stop_loss | 6 | -1.49 | +| WIF | 03-27 05:00 | 03-27 06:00 | stop_loss | 1 | -1.49 | +| WIF | 03-27 06:00 | 03-27 07:00 | trailing_stop | 1 | -0.62 | +| ATOM | 03-26 23:00 | 03-27 08:00 | trailing_stop | 9 | -0.01 | +| FIL | 03-27 04:00 | 03-27 08:00 | stop_loss | 4 | -1.49 | +| KAS | 03-26 23:00 | 03-27 08:00 | trailing_stop | 9 | -0.22 | +| SEI | 03-27 04:00 | 03-27 08:00 | stop_loss | 4 | -1.49 | +| TIA | 03-27 03:00 | 03-27 08:00 | stop_loss | 5 | -1.49 | +| UNI | 03-26 22:00 | 03-27 08:00 | stop_loss | 10 | -1.49 | +| APT | 03-27 04:00 | 03-27 09:00 | stop_loss | 5 | -1.49 | +| ETC | 03-27 03:00 | 03-27 09:00 | stop_loss | 6 | -1.49 | +| SEI | 03-27 08:00 | 03-27 09:00 | stop_loss | 1 | -1.49 | +| TON | 03-27 08:00 | 03-27 09:00 | stop_loss | 1 | -1.49 | +| APT | 03-27 09:00 | 03-27 10:00 | stop_loss | 1 | -1.49 | +| INJ | 03-27 09:00 | 03-27 10:00 | stop_loss | 1 | -1.49 | +| SEI | 03-27 09:00 | 03-27 10:00 | stop_loss | 1 | -1.49 | +| TON | 03-27 09:00 | 03-27 10:00 | stop_loss | 1 | -1.49 | +| TRX | 03-26 10:00 | 03-27 10:00 | trailing_stop | 24 | -0.02 | +| WIF | 03-27 09:00 | 03-27 10:00 | stop_loss | 1 | -1.49 | +| ATOM | 03-27 10:00 | 03-27 11:00 | stop_loss | 1 | -1.49 | +| FET | 03-27 10:00 | 03-27 12:00 | stop_loss | 2 | -1.49 | +| KAS | 03-27 10:00 | 03-27 12:00 | stop_loss | 2 | -1.49 | +| NEAR | 03-27 10:00 | 03-27 12:00 | stop_loss | 2 | -1.49 | +| RENDER | 03-27 10:00 | 03-27 12:00 | stop_loss | 2 | -1.49 | +| RENDER | 03-27 12:00 | 03-27 13:00 | stop_loss | 1 | -1.49 | +| OP | 03-27 10:00 | 03-27 14:00 | stop_loss | 4 | -1.49 | +| TON | 03-27 10:00 | 03-27 14:00 | stop_loss | 4 | -1.49 | +| WIF | 03-27 10:00 | 03-27 14:00 | stop_loss | 4 | -1.49 | +| ETC | 03-27 10:00 | 03-27 15:00 | take_profit | 5 | +1.49 | +| KAS | 03-27 13:00 | 03-27 15:00 | take_profit | 2 | +1.49 | +| PEPE | 03-27 10:00 | 03-27 15:00 | trailing_stop | 5 | -0.49 | +| RENDER | 03-27 13:00 | 03-27 15:00 | take_profit | 2 | +1.49 | +| TIA | 03-27 10:00 | 03-27 15:00 | stop_loss | 5 | -1.49 | +| UNI | 03-27 10:00 | 03-27 15:00 | take_profit | 5 | +1.49 | +| SEI | 03-27 10:00 | 03-27 16:00 | stop_loss | 6 | -1.49 | +| APT | 03-27 10:00 | 03-27 18:00 | stop_loss | 8 | -1.49 | +| ARB | 03-27 10:00 | 03-27 18:00 | stop_loss | 8 | -1.49 | +| LTC | 03-27 10:00 | 03-27 18:00 | trailing_stop | 8 | -0.39 | +| SUI | 03-27 10:00 | 03-27 18:00 | stop_loss | 8 | -1.49 | +| ATOM | 03-27 21:00 | 03-28 01:00 | stop_loss | 4 | -1.49 | +| FIL | 03-27 10:00 | 03-28 01:00 | stop_loss | 15 | -1.49 | +| INJ | 03-27 10:00 | 03-28 01:00 | stop_loss | 15 | -1.49 | +| KAS | 03-27 21:00 | 03-28 01:00 | stop_loss | 4 | -1.49 | +| NEAR | 03-27 12:00 | 03-28 01:00 | stop_loss | 13 | -1.49 | +| TON | 03-27 22:00 | 03-28 01:00 | stop_loss | 3 | -1.49 | +| BONK | 03-27 10:00 | 03-28 04:00 | stop_loss | 18 | -1.49 | +| AVAX | 03-27 10:00 | 03-28 07:00 | confirmed_bearish_exit | 21 | +0.76 | +| OP | 03-28 01:00 | 03-28 08:00 | take_profit | 7 | +1.49 | +| BONK | 03-28 04:00 | 03-28 10:00 | take_profit | 6 | +1.49 | +| SHIB | 03-27 10:00 | 03-28 10:00 | take_profit | 24 | +1.49 | +| LTC | 03-28 05:00 | 03-28 13:00 | take_profit | 8 | +1.49 | +| NEAR | 03-28 09:00 | 03-28 13:00 | take_profit | 4 | +1.49 | +| TRX | 03-27 21:00 | 03-28 14:00 | take_profit | 17 | +1.49 | +| APT | 03-28 02:00 | 03-28 17:00 | stop_loss | 15 | -1.49 | +| APT | 03-28 21:00 | 03-28 23:00 | stop_loss | 2 | -1.49 | +| FIL | 03-28 21:00 | 03-28 23:00 | stop_loss | 2 | -1.49 | +| ATOM | 03-28 22:00 | 03-29 00:00 | stop_loss | 2 | -1.49 | +| KAS | 03-28 21:00 | 03-29 03:00 | take_profit | 6 | +1.49 | +| SUI | 03-28 23:00 | 03-29 09:00 | trailing_stop | 10 | -0.46 | +| BONK | 03-29 03:00 | 03-29 10:00 | stop_loss | 7 | -1.49 | +| NEAR | 03-29 05:00 | 03-29 10:00 | stop_loss | 5 | -1.49 | +| OP | 03-28 23:00 | 03-29 10:00 | stop_loss | 11 | -1.49 | +| PEPE | 03-29 05:00 | 03-29 10:00 | stop_loss | 5 | -1.49 | +| RENDER | 03-29 05:00 | 03-29 10:00 | stop_loss | 5 | -1.49 | +| SEI | 03-28 23:00 | 03-29 10:00 | trailing_stop | 11 | -0.22 | +| SHIB | 03-29 05:00 | 03-29 10:00 | stop_loss | 5 | -1.49 | +| TIA | 03-28 23:00 | 03-29 10:00 | stop_loss | 11 | -1.49 | +| WIF | 03-29 03:00 | 03-29 10:00 | stop_loss | 7 | -1.49 | +| LTC | 03-29 06:00 | 03-29 11:00 | stop_loss | 5 | -1.49 | +| APT | 03-28 23:00 | 03-29 12:00 | stop_loss | 13 | -1.49 | +| ATOM | 03-29 00:00 | 03-29 13:00 | stop_loss | 13 | -1.49 | +| ETC | 03-28 23:00 | 03-29 13:00 | stop_loss | 14 | -1.49 | +| INJ | 03-28 23:00 | 03-29 13:00 | stop_loss | 14 | -1.49 | +| WIF | 03-29 12:00 | 03-29 13:00 | stop_loss | 1 | -1.49 | +| KAS | 03-29 13:00 | 03-29 14:00 | stop_loss | 1 | -1.49 | +| TON | 03-29 07:00 | 03-29 16:00 | stop_loss | 9 | -1.49 | +| KAS | 03-29 14:00 | 03-29 18:00 | trailing_stop | 4 | -0.70 | +| SEI | 03-29 17:00 | 03-29 19:00 | stop_loss | 2 | -1.49 | +| PEPE | 03-29 16:00 | 03-29 20:00 | take_profit | 4 | +1.49 | +| ARB | 03-29 19:00 | 03-29 22:00 | stop_loss | 3 | -1.49 | +| AVAX | 03-29 16:00 | 03-29 22:00 | stop_loss | 6 | -1.49 | +| ETC | 03-29 16:00 | 03-29 22:00 | stop_loss | 6 | -1.49 | +| LTC | 03-29 16:00 | 03-29 22:00 | stop_loss | 6 | -1.49 | +| SEI | 03-29 19:00 | 03-29 22:00 | stop_loss | 3 | -1.49 | +| TIA | 03-29 17:00 | 03-29 22:00 | stop_loss | 5 | -1.49 | +| APT | 03-29 22:00 | 03-30 00:00 | take_profit | 2 | +1.49 | +| ARB | 03-29 22:00 | 03-30 00:00 | take_profit | 2 | +1.49 | +| ATOM | 03-29 22:00 | 03-30 00:00 | take_profit | 2 | +1.49 | +| AVAX | 03-29 22:00 | 03-30 00:00 | take_profit | 2 | +1.49 | +| BONK | 03-29 22:00 | 03-30 00:00 | take_profit | 2 | +1.49 | +| FIL | 03-29 22:00 | 03-30 00:00 | take_profit | 2 | +1.49 | +| WIF | 03-29 22:00 | 03-30 00:00 | take_profit | 2 | +1.49 | +| FET | 03-30 01:00 | 03-30 02:00 | take_profit | 1 | +1.49 | +| LTC | 03-29 22:00 | 03-30 02:00 | take_profit | 4 | +1.49 | +| SEI | 03-29 22:00 | 03-30 02:00 | take_profit | 4 | +1.49 | +| TON | 03-29 18:00 | 03-30 04:00 | take_profit | 10 | +1.49 | +| APT | 03-30 16:00 | 03-30 17:00 | stop_loss | 1 | -1.49 | +| APT | 03-30 17:00 | 03-30 18:00 | stop_loss | 1 | -1.49 | +| KAS | 03-30 16:00 | 03-30 18:00 | stop_loss | 2 | -1.49 | +| SEI | 03-30 17:00 | 03-30 18:00 | stop_loss | 1 | -1.49 | +| APT | 03-30 18:00 | 03-30 19:00 | stop_loss | 1 | -1.49 | +| NEAR | 03-30 18:00 | 03-30 19:00 | stop_loss | 1 | -1.49 | +| SEI | 03-30 18:00 | 03-30 21:00 | take_profit | 3 | +1.49 | +| APT | 03-30 19:00 | 03-30 23:00 | stop_loss | 4 | -1.49 | +| FET | 03-30 18:00 | 03-30 23:00 | stop_loss | 5 | -1.49 | +| INJ | 03-30 21:00 | 03-30 23:00 | stop_loss | 2 | -1.49 | +| RENDER | 03-30 21:00 | 03-30 23:00 | stop_loss | 2 | -1.49 | +| SHIB | 03-30 21:00 | 03-30 23:00 | stop_loss | 2 | -1.49 | +| TON | 03-30 18:00 | 03-31 00:00 | take_profit | 6 | +1.49 | +| ARB | 03-30 22:00 | 03-31 01:00 | take_profit | 3 | +1.49 | +| AVAX | 03-30 22:00 | 03-31 01:00 | take_profit | 3 | +1.49 | +| FIL | 03-30 19:00 | 03-31 01:00 | take_profit | 6 | +1.49 | +| INJ | 03-30 23:00 | 03-31 01:00 | take_profit | 2 | +1.49 | +| LTC | 03-30 18:00 | 03-31 01:00 | trailing_stop | 7 | -0.59 | +| NEAR | 03-30 19:00 | 03-31 01:00 | take_profit | 6 | +1.49 | +| PEPE | 03-30 19:00 | 03-31 01:00 | take_profit | 6 | +1.49 | +| SUI | 03-30 22:00 | 03-31 01:00 | take_profit | 3 | +1.49 | +| TIA | 03-30 18:00 | 03-31 01:00 | take_profit | 7 | +1.49 | +| UNI | 03-30 22:00 | 03-31 01:00 | take_profit | 3 | +1.49 | +| FET | 03-31 01:00 | 03-31 05:00 | stop_loss | 4 | -1.49 | +| FIL | 03-31 01:00 | 03-31 08:00 | trailing_stop | 7 | -0.15 | +| APT | 03-31 02:00 | 03-31 09:00 | stop_loss | 7 | -1.49 | +| ETC | 03-30 21:00 | 03-31 09:00 | stop_loss | 12 | -1.49 | +| KAS | 03-30 18:00 | 03-31 09:00 | stop_loss | 15 | -1.49 | +| KAS | 03-31 10:00 | 03-31 11:00 | trailing_stop | 1 | -0.00 | +| TRX | 03-30 12:00 | 03-31 11:00 | stop_loss | 23 | -1.49 | +| WIF | 03-31 09:00 | 03-31 11:00 | stop_loss | 2 | -1.49 | +| SEI | 03-31 12:00 | 03-31 14:00 | stop_loss | 2 | -1.49 | +| SEI | 03-31 14:00 | 03-31 15:00 | stop_loss | 1 | -1.49 | +| TRX | 03-31 11:00 | 03-31 15:00 | stop_loss | 4 | -1.49 | +| APT | 03-31 15:00 | 03-31 16:00 | trailing_stop | 1 | -0.25 | +| SUI | 03-31 15:00 | 03-31 16:00 | take_profit | 1 | +1.49 | +| SEI | 03-31 15:00 | 03-31 17:00 | take_profit | 2 | +1.49 | +| KAS | 04-01 10:00 | 04-01 11:00 | stop_loss | 1 | -1.49 | +| APT | 04-01 20:00 | 04-01 23:00 | stop_loss | 3 | -1.49 | +| NEAR | 04-01 20:00 | 04-01 23:00 | stop_loss | 3 | -1.49 | +| RENDER | 04-01 22:00 | 04-02 00:00 | take_profit | 2 | +1.49 | +| SEI | 04-01 23:00 | 04-02 00:00 | stop_loss | 1 | -1.49 | +| TON | 03-31 14:00 | 04-02 00:00 | take_profit | 34 | +1.49 | +| APT | 04-01 23:00 | 04-02 01:00 | stop_loss | 2 | -1.49 | +| AVAX | 04-01 20:00 | 04-02 01:00 | stop_loss | 5 | -1.49 | +| ETC | 04-01 20:00 | 04-02 01:00 | stop_loss | 5 | -1.49 | +| INJ | 04-01 20:00 | 04-02 01:00 | stop_loss | 5 | -1.49 | +| LTC | 04-01 23:00 | 04-02 01:00 | stop_loss | 2 | -1.49 | +| UNI | 04-01 23:00 | 04-02 01:00 | stop_loss | 2 | -1.49 | +| APT | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| ARB | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| AVAX | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| BONK | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| ETC | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| FET | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| FIL | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| INJ | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| KAS | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| NEAR | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| SEI | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| SHIB | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| SUI | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| TIA | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| UNI | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| WIF | 04-02 01:00 | 04-02 02:00 | stop_loss | 1 | -1.49 | +| FET | 04-02 02:00 | 04-02 03:00 | stop_loss | 1 | -1.49 | +| FIL | 04-02 02:00 | 04-02 03:00 | stop_loss | 1 | -1.49 | +| NEAR | 04-02 02:00 | 04-02 03:00 | stop_loss | 1 | -1.49 | +| RENDER | 04-02 02:00 | 04-02 03:00 | stop_loss | 1 | -1.49 | +| UNI | 04-02 02:00 | 04-02 03:00 | stop_loss | 1 | -1.49 | +| WIF | 04-02 02:00 | 04-02 03:00 | stop_loss | 1 | -1.49 | +| ATOM | 04-02 02:00 | 04-02 04:00 | stop_loss | 2 | -1.49 | +| AVAX | 04-02 02:00 | 04-02 04:00 | stop_loss | 2 | -1.49 | +| BONK | 04-02 02:00 | 04-02 04:00 | stop_loss | 2 | -1.49 | +| FET | 04-02 03:00 | 04-02 04:00 | trailing_stop | 1 | -0.39 | +| TIA | 04-02 02:00 | 04-02 04:00 | stop_loss | 2 | -1.49 | +| UNI | 04-02 03:00 | 04-02 04:00 | stop_loss | 1 | -1.49 | +| APT | 04-02 02:00 | 04-02 05:00 | stop_loss | 3 | -1.49 | +| ARB | 04-02 02:00 | 04-02 05:00 | stop_loss | 3 | -1.49 | +| BONK | 04-02 04:00 | 04-02 05:00 | trailing_stop | 1 | -0.48 | +| ETC | 04-02 02:00 | 04-02 05:00 | stop_loss | 3 | -1.49 | +| LTC | 04-02 02:00 | 04-02 05:00 | stop_loss | 3 | -1.49 | +| NEAR | 04-02 03:00 | 04-02 05:00 | stop_loss | 2 | -1.49 | +| SHIB | 04-02 02:00 | 04-02 05:00 | stop_loss | 3 | -1.49 | +| WIF | 04-02 03:00 | 04-02 05:00 | trailing_stop | 2 | -0.01 | +| PEPE | 04-02 04:00 | 04-02 06:00 | trailing_stop | 2 | -0.50 | +| ATOM | 04-02 04:00 | 04-02 07:00 | confirmed_bearish_exit | 3 | +0.66 | +| RENDER | 04-02 03:00 | 04-02 07:00 | take_profit | 4 | +1.49 | +| SEI | 04-02 02:00 | 04-02 08:00 | stop_loss | 6 | -1.49 | +| SUI | 04-02 02:00 | 04-02 08:00 | stop_loss | 6 | -1.49 | +| KAS | 04-02 02:00 | 04-02 10:00 | stop_loss | 8 | -1.49 | +| LTC | 04-02 05:00 | 04-02 11:00 | stop_loss | 6 | -1.49 | +| OP | 04-02 02:00 | 04-02 11:00 | stop_loss | 9 | -1.49 | +| FIL | 04-02 03:00 | 04-02 13:00 | stop_loss | 10 | -1.49 | +| INJ | 04-02 02:00 | 04-02 13:00 | stop_loss | 11 | -1.49 | +| TIA | 04-02 04:00 | 04-02 13:00 | stop_loss | 9 | -1.49 | +| UNI | 04-02 04:00 | 04-02 13:00 | stop_loss | 9 | -1.49 | +| AVAX | 04-02 04:00 | 04-02 14:00 | trailing_stop | 10 | -0.11 | +| TON | 04-02 05:00 | 04-02 14:00 | take_profit | 9 | +1.49 | +| UNI | 04-02 13:00 | 04-02 14:00 | take_profit | 1 | +1.49 | +| AVAX | 04-02 14:00 | 04-02 15:00 | stop_loss | 1 | -1.49 | +| SHIB | 04-02 14:00 | 04-02 16:00 | stop_loss | 2 | -1.49 | +| INJ | 04-02 21:00 | 04-03 03:00 | take_profit | 6 | +1.49 | +| LTC | 04-02 17:00 | 04-03 04:00 | take_profit | 11 | +1.49 | +| ETC | 04-02 21:00 | 04-03 05:00 | take_profit | 8 | +1.49 | +| UNI | 04-03 00:00 | 04-03 05:00 | take_profit | 5 | +1.49 | +| KAS | 04-03 04:00 | 04-03 06:00 | trailing_stop | 2 | -0.38 | +| PEPE | 04-03 23:00 | 04-04 00:00 | stop_loss | 1 | -1.49 | +| SHIB | 04-03 23:00 | 04-04 00:00 | stop_loss | 1 | -1.49 | +| APT | 04-03 15:00 | 04-04 02:00 | stop_loss | 11 | -1.49 | +| ATOM | 04-03 20:00 | 04-04 02:00 | stop_loss | 6 | -1.49 | +| PEPE | 04-04 00:00 | 04-04 02:00 | stop_loss | 2 | -1.49 | +| TIA | 04-03 23:00 | 04-04 04:00 | stop_loss | 5 | -1.49 | +| TON | 04-03 21:00 | 04-04 08:00 | stop_loss | 11 | -1.49 | +| UNI | 04-03 19:00 | 04-04 08:00 | stop_loss | 13 | -1.49 | +| WIF | 04-04 01:00 | 04-04 08:00 | trailing_stop | 7 | -0.59 | +| SHIB | 04-04 00:00 | 04-04 09:00 | stop_loss | 9 | -1.49 | +| BONK | 04-03 22:00 | 04-04 14:00 | stop_loss | 16 | -1.49 | +| PEPE | 04-04 02:00 | 04-04 14:00 | trailing_stop | 12 | -0.52 | +| FET | 04-05 01:00 | 04-05 02:00 | stop_loss | 1 | -1.49 | +| RENDER | 04-04 16:00 | 04-05 03:00 | trailing_stop | 11 | -0.01 | +| ARB | 04-03 22:00 | 04-05 05:00 | stop_loss | 31 | -1.49 | +| FIL | 04-05 02:00 | 04-05 05:00 | stop_loss | 3 | -1.49 | +| INJ | 04-03 23:00 | 04-05 05:00 | trailing_stop | 30 | -0.60 | +| TIA | 04-05 02:00 | 04-05 05:00 | stop_loss | 3 | -1.49 | +| UNI | 04-04 09:00 | 04-05 05:00 | stop_loss | 20 | -1.49 | +| APT | 04-05 05:00 | 04-05 06:00 | stop_loss | 1 | -1.49 | +| BONK | 04-05 05:00 | 04-05 06:00 | stop_loss | 1 | -1.49 | +| FET | 04-05 02:00 | 04-05 06:00 | stop_loss | 4 | -1.49 | +| INJ | 04-05 05:00 | 04-05 06:00 | stop_loss | 1 | -1.49 | +| OP | 04-05 05:00 | 04-05 06:00 | stop_loss | 1 | -1.49 | +| SUI | 04-05 05:00 | 04-05 06:00 | stop_loss | 1 | -1.49 | +| BONK | 04-05 06:00 | 04-05 07:00 | stop_loss | 1 | -1.49 | +| KAS | 04-05 03:00 | 04-05 07:00 | stop_loss | 4 | -1.49 | +| FET | 04-05 06:00 | 04-05 09:00 | stop_loss | 3 | -1.49 | +| SEI | 04-05 05:00 | 04-05 10:00 | stop_loss | 5 | -1.49 | +| FIL | 04-05 05:00 | 04-05 11:00 | stop_loss | 6 | -1.49 | +| WIF | 04-05 07:00 | 04-05 11:00 | confirmed_bearish_exit | 4 | -0.50 | +| APT | 04-05 06:00 | 04-05 12:00 | stop_loss | 6 | -1.49 | +| ARB | 04-05 05:00 | 04-05 12:00 | stop_loss | 7 | -1.49 | +| BONK | 04-05 07:00 | 04-05 12:00 | stop_loss | 5 | -1.49 | +| OP | 04-05 06:00 | 04-05 12:00 | stop_loss | 6 | -1.49 | +| PEPE | 04-05 06:00 | 04-05 12:00 | stop_loss | 6 | -1.49 | +| RENDER | 04-05 07:00 | 04-05 12:00 | stop_loss | 5 | -1.49 | +| SEI | 04-05 10:00 | 04-05 12:00 | stop_loss | 2 | -1.49 | +| SUI | 04-05 06:00 | 04-05 12:00 | stop_loss | 6 | -1.49 | +| TRX | 03-31 15:00 | 04-05 12:00 | take_profit | 117 | +1.49 | +| ATOM | 04-05 07:00 | 04-05 13:00 | stop_loss | 6 | -1.49 | +| TIA | 04-05 05:00 | 04-05 13:00 | stop_loss | 8 | -1.49 | +| ETC | 04-05 07:00 | 04-05 15:00 | take_profit | 8 | +1.49 | +| TIA | 04-05 15:00 | 04-05 17:00 | stop_loss | 2 | -1.49 | +| NEAR | 04-05 07:00 | 04-05 19:00 | stop_loss | 12 | -1.49 | +| ARB | 04-05 15:00 | 04-05 22:00 | trailing_stop | 7 | +0.04 | +| AVAX | 04-05 06:00 | 04-05 22:00 | trailing_stop | 16 | -0.13 | +| FIL | 04-05 14:00 | 04-05 22:00 | trailing_stop | 8 | +0.10 | +| INJ | 04-05 06:00 | 04-05 22:00 | trailing_stop | 16 | -0.52 | +| PEPE | 04-05 16:00 | 04-05 22:00 | take_profit | 6 | +1.49 | +| RENDER | 04-05 12:00 | 04-05 22:00 | trailing_stop | 10 | -0.14 | +| SHIB | 04-05 07:00 | 04-05 22:00 | trailing_stop | 15 | -0.17 | +| SUI | 04-05 12:00 | 04-05 22:00 | trailing_stop | 10 | -0.26 | +| UNI | 04-05 05:00 | 04-05 22:00 | trailing_stop | 17 | -0.58 | +| LTC | 04-05 05:00 | 04-05 23:00 | take_profit | 18 | +1.49 | +| SEI | 04-05 19:00 | 04-05 23:00 | take_profit | 4 | +1.49 | +| APT | 04-05 14:00 | 04-06 00:00 | take_profit | 10 | +1.49 | +| PEPE | 04-06 16:00 | 04-06 17:00 | stop_loss | 1 | -1.49 | +| FET | 04-06 15:00 | 04-06 18:00 | stop_loss | 3 | -1.49 | +| KAS | 04-06 16:00 | 04-06 20:00 | take_profit | 4 | +1.49 | +| FET | 04-06 19:00 | 04-06 21:00 | stop_loss | 2 | -1.49 | +| AVAX | 04-06 16:00 | 04-06 22:00 | stop_loss | 6 | -1.49 | +| ETC | 04-06 14:00 | 04-06 22:00 | stop_loss | 8 | -1.49 | +| PEPE | 04-06 21:00 | 04-06 22:00 | stop_loss | 1 | -1.49 | +| RENDER | 04-06 18:00 | 04-06 22:00 | stop_loss | 4 | -1.49 | +| SHIB | 04-06 21:00 | 04-06 22:00 | stop_loss | 1 | -1.49 | +| AVAX | 04-06 22:00 | 04-06 23:00 | stop_loss | 1 | -1.49 | +| BONK | 04-06 22:00 | 04-06 23:00 | stop_loss | 1 | -1.49 | +| FET | 04-06 21:00 | 04-06 23:00 | stop_loss | 2 | -1.49 | +| LTC | 04-06 21:00 | 04-06 23:00 | stop_loss | 2 | -1.49 | +| NEAR | 04-06 21:00 | 04-06 23:00 | stop_loss | 2 | -1.49 | +| WIF | 04-06 22:00 | 04-06 23:00 | stop_loss | 1 | -1.49 | +| AVAX | 04-06 23:00 | 04-07 00:00 | stop_loss | 1 | -1.49 | +| ARB | 04-06 22:00 | 04-07 01:00 | stop_loss | 3 | -1.49 | +| AVAX | 04-07 00:00 | 04-07 01:00 | stop_loss | 1 | -1.49 | +| ETC | 04-06 22:00 | 04-07 01:00 | stop_loss | 3 | -1.49 | +| NEAR | 04-06 23:00 | 04-07 01:00 | stop_loss | 2 | -1.49 | +| SUI | 04-06 22:00 | 04-07 01:00 | stop_loss | 3 | -1.49 | +| APT | 04-06 22:00 | 04-07 02:00 | stop_loss | 4 | -1.49 | +| INJ | 04-06 23:00 | 04-07 02:00 | stop_loss | 3 | -1.49 | +| OP | 04-06 22:00 | 04-07 02:00 | stop_loss | 4 | -1.49 | +| UNI | 04-06 22:00 | 04-07 02:00 | stop_loss | 4 | -1.49 | +| FET | 04-06 23:00 | 04-07 03:00 | trailing_stop | 4 | -0.13 | +| PEPE | 04-06 22:00 | 04-07 03:00 | confirmed_bearish_exit | 5 | +0.40 | +| ETC | 04-07 01:00 | 04-07 04:00 | stop_loss | 3 | -1.49 | +| ATOM | 04-06 22:00 | 04-07 05:00 | stop_loss | 7 | -1.49 | +| AVAX | 04-07 01:00 | 04-07 05:00 | stop_loss | 4 | -1.49 | +| SEI | 04-06 23:00 | 04-07 05:00 | stop_loss | 6 | -1.49 | +| ETC | 04-07 04:00 | 04-07 06:00 | stop_loss | 2 | -1.49 | +| WIF | 04-06 23:00 | 04-07 07:00 | trailing_stop | 8 | -0.04 | +| FET | 04-07 04:00 | 04-07 08:00 | take_profit | 4 | +1.49 | +| RENDER | 04-06 22:00 | 04-07 08:00 | take_profit | 10 | +1.49 | +| FIL | 04-07 01:00 | 04-07 09:00 | take_profit | 8 | +1.49 | +| PEPE | 04-07 06:00 | 04-07 09:00 | trailing_stop | 3 | -0.53 | +| SUI | 04-07 01:00 | 04-07 09:00 | take_profit | 8 | +1.49 | +| ARB | 04-07 06:00 | 04-07 10:00 | trailing_stop | 4 | -0.65 | +| AVAX | 04-07 09:00 | 04-07 10:00 | stop_loss | 1 | -1.49 | +| TRX | 04-06 06:00 | 04-07 10:00 | stop_loss | 28 | -1.49 | +| UNI | 04-07 09:00 | 04-07 10:00 | stop_loss | 1 | -1.49 | +| WIF | 04-07 07:00 | 04-07 10:00 | stop_loss | 3 | -1.49 | +| APT | 04-07 09:00 | 04-07 11:00 | stop_loss | 2 | -1.49 | +| INJ | 04-07 07:00 | 04-07 11:00 | stop_loss | 4 | -1.49 | +| NEAR | 04-07 01:00 | 04-07 11:00 | trailing_stop | 10 | -0.58 | +| OP | 04-07 07:00 | 04-07 11:00 | stop_loss | 4 | -1.49 | +| TIA | 04-06 22:00 | 04-07 11:00 | stop_loss | 13 | -1.49 | +| BONK | 04-06 23:00 | 04-07 12:00 | stop_loss | 13 | -1.49 | +| LTC | 04-06 23:00 | 04-07 12:00 | stop_loss | 13 | -1.49 | +| SHIB | 04-06 22:00 | 04-07 12:00 | trailing_stop | 14 | -0.68 | +| SUI | 04-07 10:00 | 04-07 12:00 | stop_loss | 2 | -1.49 | +| TON | 04-06 13:00 | 04-07 12:00 | stop_loss | 23 | -1.49 | +| UNI | 04-07 10:00 | 04-07 12:00 | stop_loss | 2 | -1.49 | +| AVAX | 04-07 10:00 | 04-07 14:00 | stop_loss | 4 | -1.49 | +| TON | 04-07 13:00 | 04-07 23:00 | take_profit | 10 | +1.49 | +| APT | 04-08 12:00 | 04-08 14:00 | stop_loss | 2 | -1.49 | +| BONK | 04-08 12:00 | 04-08 14:00 | stop_loss | 2 | -1.49 | +| ETC | 04-08 12:00 | 04-08 14:00 | stop_loss | 2 | -1.49 | +| PEPE | 04-08 12:00 | 04-08 14:00 | stop_loss | 2 | -1.49 | +| SHIB | 04-08 12:00 | 04-08 14:00 | stop_loss | 2 | -1.49 | +| UNI | 04-08 13:00 | 04-08 14:00 | stop_loss | 1 | -1.49 | +| WIF | 04-08 12:00 | 04-08 14:00 | stop_loss | 2 | -1.49 | +| ATOM | 04-08 13:00 | 04-08 15:00 | trailing_stop | 2 | -0.08 | +| SUI | 04-08 14:00 | 04-08 15:00 | trailing_stop | 1 | -0.38 | +| BONK | 04-08 14:00 | 04-08 18:00 | trailing_stop | 4 | -0.52 | +| INJ | 04-08 14:00 | 04-08 18:00 | stop_loss | 4 | -1.49 | +| PEPE | 04-08 14:00 | 04-08 18:00 | stop_loss | 4 | -1.49 | +| SUI | 04-08 15:00 | 04-08 18:00 | stop_loss | 3 | -1.49 | +| ARB | 04-08 18:00 | 04-08 19:00 | trailing_stop | 1 | -0.42 | +| LTC | 04-08 14:00 | 04-08 19:00 | stop_loss | 5 | -1.49 | +| ETC | 04-08 14:00 | 04-08 20:00 | stop_loss | 6 | -1.49 | +| WIF | 04-08 18:00 | 04-08 21:00 | take_profit | 3 | +1.49 | +| FET | 04-08 18:00 | 04-08 22:00 | stop_loss | 4 | -1.49 | +| UNI | 04-08 14:00 | 04-08 22:00 | stop_loss | 8 | -1.49 | +| APT | 04-08 14:00 | 04-08 23:00 | stop_loss | 9 | -1.49 | +| AVAX | 04-08 14:00 | 04-08 23:00 | stop_loss | 9 | -1.49 | +| BONK | 04-08 18:00 | 04-08 23:00 | stop_loss | 5 | -1.49 | +| FIL | 04-08 18:00 | 04-08 23:00 | stop_loss | 5 | -1.49 | +| INJ | 04-08 18:00 | 04-08 23:00 | trailing_stop | 5 | -0.65 | +| OP | 04-08 14:00 | 04-08 23:00 | stop_loss | 9 | -1.49 | +| PEPE | 04-08 18:00 | 04-08 23:00 | trailing_stop | 5 | -0.58 | +| SHIB | 04-08 14:00 | 04-08 23:00 | stop_loss | 9 | -1.49 | +| SUI | 04-08 18:00 | 04-08 23:00 | stop_loss | 5 | -1.49 | +| TON | 04-08 20:00 | 04-08 23:00 | stop_loss | 3 | -1.49 | +| LTC | 04-08 19:00 | 04-09 00:00 | stop_loss | 5 | -1.49 | +| TIA | 04-08 18:00 | 04-09 00:00 | stop_loss | 6 | -1.49 | +| TON | 04-08 23:00 | 04-09 00:00 | stop_loss | 1 | -1.49 | +| FIL | 04-08 23:00 | 04-09 01:00 | stop_loss | 2 | -1.49 | +| AVAX | 04-09 00:00 | 04-09 08:00 | take_profit | 8 | +1.49 | +| NEAR | 04-08 23:00 | 04-09 09:00 | trailing_stop | 10 | -0.21 | +| SEI | 04-09 07:00 | 04-09 12:00 | stop_loss | 5 | -1.49 | +| UNI | 04-09 09:00 | 04-09 13:00 | stop_loss | 4 | -1.49 | +| TON | 04-09 00:00 | 04-09 14:00 | take_profit | 14 | +1.49 | +| APT | 04-09 07:00 | 04-09 15:00 | take_profit | 8 | +1.49 | +| BONK | 04-09 08:00 | 04-09 15:00 | take_profit | 7 | +1.49 | +| ETC | 04-09 07:00 | 04-09 15:00 | stop_loss | 8 | -1.49 | +| FIL | 04-09 08:00 | 04-09 15:00 | take_profit | 7 | +1.49 | +| SUI | 04-09 11:00 | 04-09 15:00 | take_profit | 4 | +1.49 | +| TIA | 04-09 11:00 | 04-09 15:00 | take_profit | 4 | +1.49 | +| KAS | 04-08 23:00 | 04-09 16:00 | take_profit | 17 | +1.49 | +| TRX | 04-07 11:00 | 04-10 01:00 | take_profit | 62 | +1.49 | +| TON | 04-10 05:00 | 04-10 06:00 | trailing_stop | 1 | -0.52 | +| FET | 04-10 07:00 | 04-10 11:00 | stop_loss | 4 | -1.49 | +| KAS | 04-10 07:00 | 04-10 12:00 | take_profit | 5 | +1.49 | +| APT | 04-10 07:00 | 04-10 14:00 | take_profit | 7 | +1.49 | +| SHIB | 04-10 07:00 | 04-10 14:00 | trailing_stop | 7 | -0.02 | +| WIF | 04-10 10:00 | 04-10 14:00 | take_profit | 4 | +1.49 | +| LTC | 04-10 10:00 | 04-11 01:00 | trailing_stop | 15 | -0.12 | +| ETC | 04-11 04:00 | 04-11 05:00 | stop_loss | 1 | -1.49 | +| RENDER | 04-11 00:00 | 04-11 10:00 | take_profit | 10 | +1.49 | +| KAS | 04-11 10:00 | 04-11 11:00 | stop_loss | 1 | -1.49 | +| OP | 04-11 00:00 | 04-11 12:00 | stop_loss | 12 | -1.49 | +| PEPE | 04-11 09:00 | 04-11 12:00 | stop_loss | 3 | -1.49 | +| AVAX | 04-11 04:00 | 04-11 13:00 | stop_loss | 9 | -1.49 | +| BONK | 04-11 08:00 | 04-11 13:00 | stop_loss | 5 | -1.49 | +| FIL | 04-11 04:00 | 04-11 13:00 | stop_loss | 9 | -1.49 | +| KAS | 04-11 11:00 | 04-11 13:00 | stop_loss | 2 | -1.49 | +| WIF | 04-11 05:00 | 04-11 13:00 | stop_loss | 8 | -1.49 | +| NEAR | 04-11 05:00 | 04-11 15:00 | take_profit | 10 | +1.49 | +| APT | 04-11 06:00 | 04-11 16:00 | take_profit | 10 | +1.49 | +| FET | 04-11 07:00 | 04-11 16:00 | take_profit | 9 | +1.49 | +| SEI | 04-11 14:00 | 04-11 16:00 | trailing_stop | 2 | -0.28 | +| SUI | 04-11 06:00 | 04-11 16:00 | take_profit | 10 | +1.49 | +| TIA | 04-11 13:00 | 04-11 16:00 | take_profit | 3 | +1.49 | +| ETC | 04-11 05:00 | 04-11 18:00 | take_profit | 13 | +1.49 | +| INJ | 04-11 06:00 | 04-11 18:00 | take_profit | 12 | +1.49 | +| SHIB | 04-11 08:00 | 04-11 18:00 | take_profit | 10 | +1.49 | +| UNI | 04-11 08:00 | 04-11 18:00 | take_profit | 10 | +1.49 | +| ARB | 04-11 17:00 | 04-11 20:00 | trailing_stop | 3 | -0.34 | +| LTC | 04-11 04:00 | 04-11 23:00 | trailing_stop | 19 | +0.05 | +| ARB | 04-12 01:00 | 04-12 04:00 | stop_loss | 3 | -1.49 | +| RENDER | 04-12 01:00 | 04-12 04:00 | stop_loss | 3 | -1.49 | +| SEI | 04-12 01:00 | 04-12 06:00 | stop_loss | 5 | -1.49 | +| INJ | 04-12 01:00 | 04-12 07:00 | stop_loss | 6 | -1.49 | +| APT | 04-12 01:00 | 04-12 08:00 | stop_loss | 7 | -1.49 | +| ARB | 04-12 04:00 | 04-12 08:00 | stop_loss | 4 | -1.49 | +| RENDER | 04-12 04:00 | 04-12 09:00 | stop_loss | 5 | -1.49 | +| ATOM | 04-12 03:00 | 04-12 10:00 | stop_loss | 7 | -1.49 | +| AVAX | 04-12 01:00 | 04-12 10:00 | stop_loss | 9 | -1.49 | +| FET | 04-12 09:00 | 04-12 10:00 | stop_loss | 1 | -1.49 | +| FIL | 04-12 01:00 | 04-12 10:00 | stop_loss | 9 | -1.49 | +| TIA | 04-12 01:00 | 04-12 10:00 | stop_loss | 9 | -1.49 | +| TON | 04-12 08:00 | 04-12 10:00 | take_profit | 2 | +1.49 | +| UNI | 04-12 01:00 | 04-12 10:00 | stop_loss | 9 | -1.49 | +| WIF | 04-12 06:00 | 04-12 10:00 | stop_loss | 4 | -1.49 | +| SUI | 04-12 01:00 | 04-12 13:00 | stop_loss | 12 | -1.49 | +| BONK | 04-12 01:00 | 04-12 14:00 | stop_loss | 13 | -1.49 | +| ETC | 04-12 01:00 | 04-12 14:00 | stop_loss | 13 | -1.49 | +| ARB | 04-12 12:00 | 04-12 15:00 | stop_loss | 3 | -1.49 | +| SHIB | 04-12 01:00 | 04-12 15:00 | stop_loss | 14 | -1.49 | +| FET | 04-12 10:00 | 04-12 17:00 | trailing_stop | 7 | -0.26 | +| NEAR | 04-12 06:00 | 04-12 18:00 | take_profit | 12 | +1.49 | +| LTC | 04-12 01:00 | 04-12 22:00 | stop_loss | 21 | -1.49 | +| ETC | 04-12 19:00 | 04-13 00:00 | trailing_stop | 5 | -0.49 | +| TON | 04-13 04:00 | 04-13 08:00 | stop_loss | 4 | -1.49 | +| UNI | 04-12 19:00 | 04-13 09:00 | trailing_stop | 14 | -0.69 | +| KAS | 04-12 22:00 | 04-13 13:00 | take_profit | 15 | +1.49 | +| RENDER | 04-13 07:00 | 04-13 13:00 | take_profit | 6 | +1.49 | +| TON | 04-13 08:00 | 04-13 13:00 | trailing_stop | 5 | -0.44 | +| ATOM | 04-13 07:00 | 04-13 15:00 | trailing_stop | 8 | +0.02 | +| SHIB | 04-12 22:00 | 04-13 16:00 | trailing_stop | 18 | -0.67 | +| LTC | 04-13 07:00 | 04-13 19:00 | trailing_stop | 12 | -0.68 | +| WIF | 04-13 15:00 | 04-13 19:00 | take_profit | 4 | +1.49 | +| AVAX | 04-14 12:00 | 04-14 13:00 | trailing_stop | 1 | -0.54 | +| INJ | 04-14 12:00 | 04-14 13:00 | trailing_stop | 1 | -0.42 | +| OP | 04-14 12:00 | 04-14 13:00 | trailing_stop | 1 | -0.56 | +| RENDER | 04-14 12:00 | 04-14 13:00 | trailing_stop | 1 | -0.12 | +| SEI | 04-14 12:00 | 04-14 13:00 | trailing_stop | 1 | -0.38 | +| AVAX | 04-14 13:00 | 04-14 14:00 | stop_loss | 1 | -1.49 | +| OP | 04-14 13:00 | 04-14 14:00 | take_profit | 1 | +1.49 | +| APT | 04-14 12:00 | 04-14 15:00 | trailing_stop | 3 | +0.02 | +| ARB | 04-14 13:00 | 04-14 15:00 | stop_loss | 2 | -1.49 | +| FET | 04-14 12:00 | 04-14 15:00 | stop_loss | 3 | -1.49 | +| ARB | 04-14 15:00 | 04-14 16:00 | trailing_stop | 1 | -0.35 | +| NEAR | 04-14 14:00 | 04-14 16:00 | stop_loss | 2 | -1.49 | +| TON | 04-14 15:00 | 04-14 16:00 | stop_loss | 1 | -1.49 | +| FIL | 04-14 12:00 | 04-14 17:00 | stop_loss | 5 | -1.49 | +| INJ | 04-14 17:00 | 04-14 18:00 | stop_loss | 1 | -1.49 | +| RENDER | 04-14 16:00 | 04-14 18:00 | stop_loss | 2 | -1.49 | +| TON | 04-14 16:00 | 04-14 18:00 | stop_loss | 2 | -1.49 | +| UNI | 04-14 16:00 | 04-14 18:00 | stop_loss | 2 | -1.49 | +| FET | 04-14 15:00 | 04-14 19:00 | stop_loss | 4 | -1.49 | +| INJ | 04-14 18:00 | 04-14 21:00 | confirmed_bearish_exit | 3 | +0.38 | +| WIF | 04-14 18:00 | 04-14 21:00 | take_profit | 3 | +1.49 | +| KAS | 04-14 16:00 | 04-14 22:00 | stop_loss | 6 | -1.49 | +| NEAR | 04-14 16:00 | 04-14 22:00 | stop_loss | 6 | -1.49 | +| BONK | 04-14 18:00 | 04-15 00:00 | take_profit | 6 | +1.49 | +| FIL | 04-14 18:00 | 04-15 01:00 | take_profit | 7 | +1.49 | +| OP | 04-14 18:00 | 04-15 01:00 | take_profit | 7 | +1.49 | +| RENDER | 04-14 18:00 | 04-15 01:00 | take_profit | 7 | +1.49 | +| TIA | 04-14 18:00 | 04-15 01:00 | take_profit | 7 | +1.49 | +| TRX | 04-10 12:00 | 04-15 01:00 | take_profit | 109 | +1.49 | +| UNI | 04-14 18:00 | 04-15 01:00 | take_profit | 7 | +1.49 | +| PEPE | 04-14 18:00 | 04-15 02:00 | trailing_stop | 8 | -0.59 | +| AVAX | 04-14 18:00 | 04-15 04:00 | take_profit | 10 | +1.49 | +| FET | 04-15 03:00 | 04-15 05:00 | stop_loss | 2 | -1.49 | +| PEPE | 04-15 03:00 | 04-15 05:00 | stop_loss | 2 | -1.49 | +| TON | 04-14 18:00 | 04-15 05:00 | stop_loss | 11 | -1.49 | +| NEAR | 04-15 02:00 | 04-15 06:00 | stop_loss | 4 | -1.49 | +| PEPE | 04-15 05:00 | 04-15 06:00 | stop_loss | 1 | -1.49 | +| SEI | 04-14 18:00 | 04-15 06:00 | stop_loss | 12 | -1.49 | +| SUI | 04-14 18:00 | 04-15 06:00 | trailing_stop | 12 | -0.08 | +| TRX | 04-15 11:00 | 04-15 12:00 | trailing_stop | 1 | -0.20 | +| ETC | 04-14 18:00 | 04-15 14:00 | take_profit | 20 | +1.49 | +| SHIB | 04-14 18:00 | 04-15 14:00 | take_profit | 20 | +1.49 | +| ATOM | 04-14 18:00 | 04-15 15:00 | trailing_stop | 21 | -0.56 | +| TON | 04-15 15:00 | 04-15 18:00 | take_profit | 3 | +1.49 | +| NEAR | 04-16 13:00 | 04-16 14:00 | stop_loss | 1 | -1.49 | +| NEAR | 04-16 14:00 | 04-16 15:00 | take_profit | 1 | +1.49 | +| RENDER | 04-16 14:00 | 04-16 15:00 | trailing_stop | 1 | -0.13 | +| FIL | 04-17 05:00 | 04-17 06:00 | trailing_stop | 1 | -0.68 | +| BONK | 04-17 08:00 | 04-17 10:00 | stop_loss | 2 | -1.49 | +| WIF | 04-17 09:00 | 04-17 10:00 | stop_loss | 1 | -1.49 | +| BONK | 04-17 10:00 | 04-17 12:00 | take_profit | 2 | +1.49 | +| SHIB | 04-17 08:00 | 04-17 12:00 | take_profit | 4 | +1.49 | +| NEAR | 04-17 10:00 | 04-17 13:00 | take_profit | 3 | +1.49 | +| BONK | 04-18 03:00 | 04-18 05:00 | confirmed_bearish_exit | 2 | +0.44 | +| ARB | 04-18 02:00 | 04-18 06:00 | take_profit | 4 | +1.49 | +| KAS | 04-18 03:00 | 04-18 07:00 | stop_loss | 4 | -1.49 | +| APT | 04-18 04:00 | 04-18 08:00 | stop_loss | 4 | -1.49 | +| AVAX | 04-18 03:00 | 04-18 08:00 | stop_loss | 5 | -1.49 | +| BONK | 04-18 07:00 | 04-18 08:00 | stop_loss | 1 | -1.49 | +| FET | 04-18 03:00 | 04-18 08:00 | trailing_stop | 5 | -0.32 | +| INJ | 04-18 06:00 | 04-18 08:00 | stop_loss | 2 | -1.49 | +| NEAR | 04-18 03:00 | 04-18 08:00 | trailing_stop | 5 | -0.29 | +| OP | 04-18 03:00 | 04-18 08:00 | trailing_stop | 5 | -0.28 | +| PEPE | 04-18 03:00 | 04-18 08:00 | stop_loss | 5 | -1.49 | +| RENDER | 04-18 03:00 | 04-18 08:00 | stop_loss | 5 | -1.49 | +| SEI | 04-18 03:00 | 04-18 08:00 | stop_loss | 5 | -1.49 | +| SHIB | 04-18 03:00 | 04-18 08:00 | stop_loss | 5 | -1.49 | +| SUI | 04-18 03:00 | 04-18 08:00 | stop_loss | 5 | -1.49 | +| UNI | 04-18 03:00 | 04-18 08:00 | stop_loss | 5 | -1.49 | +| WIF | 04-18 03:00 | 04-18 08:00 | stop_loss | 5 | -1.49 | +| ETC | 04-18 03:00 | 04-18 09:00 | stop_loss | 6 | -1.49 | +| FIL | 04-18 08:00 | 04-18 09:00 | stop_loss | 1 | -1.49 | +| KAS | 04-18 08:00 | 04-18 09:00 | stop_loss | 1 | -1.49 | +| RENDER | 04-18 08:00 | 04-18 09:00 | stop_loss | 1 | -1.49 | +| APT | 04-18 08:00 | 04-18 10:00 | stop_loss | 2 | -1.49 | +| AVAX | 04-18 08:00 | 04-18 10:00 | stop_loss | 2 | -1.49 | +| FET | 04-18 08:00 | 04-18 10:00 | stop_loss | 2 | -1.49 | +| INJ | 04-18 08:00 | 04-18 10:00 | stop_loss | 2 | -1.49 | +| KAS | 04-18 09:00 | 04-18 10:00 | stop_loss | 1 | -1.49 | +| OP | 04-18 09:00 | 04-18 10:00 | stop_loss | 1 | -1.49 | +| SUI | 04-18 08:00 | 04-18 10:00 | stop_loss | 2 | -1.49 | +| ARB | 04-18 10:00 | 04-18 11:00 | stop_loss | 1 | -1.49 | +| ATOM | 04-18 09:00 | 04-18 11:00 | stop_loss | 2 | -1.49 | +| BONK | 04-18 10:00 | 04-18 11:00 | stop_loss | 1 | -1.49 | +| FIL | 04-18 10:00 | 04-18 11:00 | stop_loss | 1 | -1.49 | +| OP | 04-18 10:00 | 04-18 11:00 | stop_loss | 1 | -1.49 | +| SEI | 04-18 10:00 | 04-18 11:00 | stop_loss | 1 | -1.49 | +| SHIB | 04-18 10:00 | 04-18 11:00 | stop_loss | 1 | -1.49 | +| SUI | 04-18 10:00 | 04-18 11:00 | stop_loss | 1 | -1.49 | +| UNI | 04-18 10:00 | 04-18 11:00 | stop_loss | 1 | -1.49 | +| WIF | 04-18 10:00 | 04-18 11:00 | stop_loss | 1 | -1.49 | +| TON | 04-18 11:00 | 04-18 12:00 | stop_loss | 1 | -1.49 | +| WIF | 04-18 11:00 | 04-18 12:00 | stop_loss | 1 | -1.49 | +| APT | 04-18 10:00 | 04-18 13:00 | stop_loss | 3 | -1.49 | +| AVAX | 04-18 10:00 | 04-18 13:00 | stop_loss | 3 | -1.49 | +| BONK | 04-18 11:00 | 04-18 13:00 | stop_loss | 2 | -1.49 | +| LTC | 04-18 03:00 | 04-18 13:00 | stop_loss | 10 | -1.49 | +| OP | 04-18 11:00 | 04-18 13:00 | stop_loss | 2 | -1.49 | +| TIA | 04-18 12:00 | 04-18 13:00 | stop_loss | 1 | -1.49 | +| TON | 04-18 12:00 | 04-18 13:00 | stop_loss | 1 | -1.49 | +| WIF | 04-18 12:00 | 04-18 16:00 | stop_loss | 4 | -1.49 | +| ETC | 04-18 10:00 | 04-18 17:00 | stop_loss | 7 | -1.49 | +| FET | 04-18 16:00 | 04-18 17:00 | stop_loss | 1 | -1.49 | +| INJ | 04-18 11:00 | 04-18 17:00 | stop_loss | 6 | -1.49 | +| NEAR | 04-18 13:00 | 04-18 17:00 | stop_loss | 4 | -1.49 | +| SHIB | 04-18 11:00 | 04-18 17:00 | stop_loss | 6 | -1.49 | +| ARB | 04-18 11:00 | 04-18 18:00 | stop_loss | 7 | -1.49 | +| ATOM | 04-18 11:00 | 04-18 18:00 | stop_loss | 7 | -1.49 | +| FET | 04-18 17:00 | 04-18 18:00 | stop_loss | 1 | -1.49 | +| FIL | 04-18 11:00 | 04-18 18:00 | stop_loss | 7 | -1.49 | +| KAS | 04-18 10:00 | 04-18 18:00 | stop_loss | 8 | -1.49 | +| LTC | 04-18 13:00 | 04-18 18:00 | stop_loss | 5 | -1.49 | +| SEI | 04-18 11:00 | 04-18 18:00 | stop_loss | 7 | -1.49 | +| SUI | 04-18 11:00 | 04-18 18:00 | stop_loss | 7 | -1.49 | +| UNI | 04-18 11:00 | 04-18 18:00 | stop_loss | 7 | -1.49 | +| TON | 04-18 13:00 | 04-18 19:00 | stop_loss | 6 | -1.49 | +| TON | 04-18 19:00 | 04-18 20:00 | stop_loss | 1 | -1.49 | +| ETC | 04-18 18:00 | 04-18 21:00 | confirmed_bearish_exit | 3 | +0.68 | +| NEAR | 04-18 17:00 | 04-18 22:00 | stop_loss | 5 | -1.49 | +| FET | 04-18 18:00 | 04-18 23:00 | stop_loss | 5 | -1.49 | +| TON | 04-18 20:00 | 04-18 23:00 | stop_loss | 3 | -1.49 | +| ATOM | 04-18 23:00 | 04-19 00:00 | stop_loss | 1 | -1.49 | +| AVAX | 04-18 22:00 | 04-19 00:00 | stop_loss | 2 | -1.49 | +| ETC | 04-18 23:00 | 04-19 00:00 | stop_loss | 1 | -1.49 | +| TON | 04-18 23:00 | 04-19 00:00 | stop_loss | 1 | -1.49 | +| INJ | 04-18 18:00 | 04-19 01:00 | stop_loss | 7 | -1.49 | +| TON | 04-19 00:00 | 04-19 01:00 | stop_loss | 1 | -1.49 | +| UNI | 04-18 22:00 | 04-19 01:00 | stop_loss | 3 | -1.49 | +| SHIB | 04-18 23:00 | 04-19 02:00 | stop_loss | 3 | -1.49 | +| WIF | 04-18 18:00 | 04-19 02:00 | stop_loss | 8 | -1.49 | +| TON | 04-19 01:00 | 04-19 04:00 | stop_loss | 3 | -1.49 | +| LTC | 04-18 18:00 | 04-19 07:00 | stop_loss | 13 | -1.49 | +| UNI | 04-19 02:00 | 04-19 07:00 | stop_loss | 5 | -1.49 | +| TRX | 04-16 07:00 | 04-19 08:00 | take_profit | 73 | +1.49 | +| FET | 04-19 09:00 | 04-19 11:00 | trailing_stop | 2 | -0.32 | +| PEPE | 04-19 10:00 | 04-19 12:00 | take_profit | 2 | +1.49 | +| ARB | 04-19 07:00 | 04-19 13:00 | take_profit | 6 | +1.49 | +| TON | 04-19 08:00 | 04-19 13:00 | trailing_stop | 5 | -0.48 | +| AVAX | 04-19 07:00 | 04-19 15:00 | trailing_stop | 8 | -0.63 | +| OP | 04-19 11:00 | 04-19 15:00 | trailing_stop | 4 | -0.67 | +| FIL | 04-19 12:00 | 04-19 17:00 | stop_loss | 5 | -1.49 | +| UNI | 04-19 11:00 | 04-19 17:00 | stop_loss | 6 | -1.49 | +| LTC | 04-19 07:00 | 04-19 18:00 | stop_loss | 11 | -1.49 | +| AVAX | 04-19 17:00 | 04-19 22:00 | stop_loss | 5 | -1.49 | +| LTC | 04-19 18:00 | 04-19 22:00 | stop_loss | 4 | -1.49 | +| TIA | 04-19 17:00 | 04-19 22:00 | stop_loss | 5 | -1.49 | +| APT | 04-19 22:00 | 04-20 00:00 | trailing_stop | 2 | -0.62 | +| TIA | 04-19 23:00 | 04-20 00:00 | trailing_stop | 1 | -0.63 | +| FET | 04-19 23:00 | 04-20 02:00 | stop_loss | 3 | -1.49 | +| WIF | 04-20 03:00 | 04-20 04:00 | trailing_stop | 1 | -0.20 | +| OP | 04-20 03:00 | 04-20 05:00 | stop_loss | 2 | -1.49 | +| RENDER | 04-20 02:00 | 04-20 05:00 | stop_loss | 3 | -1.49 | +| SUI | 04-20 03:00 | 04-20 05:00 | stop_loss | 2 | -1.49 | +| ATOM | 04-19 22:00 | 04-20 07:00 | take_profit | 9 | +1.49 | +| AVAX | 04-19 22:00 | 04-20 07:00 | take_profit | 9 | +1.49 | +| LTC | 04-19 22:00 | 04-20 07:00 | take_profit | 9 | +1.49 | +| OP | 04-20 05:00 | 04-20 07:00 | take_profit | 2 | +1.49 | +| RENDER | 04-20 05:00 | 04-20 07:00 | take_profit | 2 | +1.49 | +| SUI | 04-20 05:00 | 04-20 07:00 | take_profit | 2 | +1.49 | +| UNI | 04-20 05:00 | 04-20 07:00 | take_profit | 2 | +1.49 | +| APT | 04-20 02:00 | 04-20 10:00 | take_profit | 8 | +1.49 | +| KAS | 04-20 05:00 | 04-20 12:00 | take_profit | 7 | +1.49 | +| SEI | 04-20 05:00 | 04-20 12:00 | take_profit | 7 | +1.49 | +| TRX | 04-20 06:00 | 04-20 12:00 | stop_loss | 6 | -1.49 | +| TIA | 04-21 00:00 | 04-21 02:00 | stop_loss | 2 | -1.49 | +| ARB | 04-21 02:00 | 04-21 11:00 | trailing_stop | 9 | -0.68 | +| OP | 04-21 08:00 | 04-21 11:00 | take_profit | 3 | +1.49 | +| APT | 04-21 08:00 | 04-21 12:00 | trailing_stop | 4 | -0.64 | +| TIA | 04-21 11:00 | 04-21 12:00 | stop_loss | 1 | -1.49 | +| WIF | 04-21 08:00 | 04-21 12:00 | stop_loss | 4 | -1.49 | +| ATOM | 04-21 05:00 | 04-21 13:00 | stop_loss | 8 | -1.49 | +| ARB | 04-21 11:00 | 04-21 16:00 | take_profit | 5 | +1.49 | +| KAS | 04-21 17:00 | 04-21 18:00 | stop_loss | 1 | -1.49 | +| WIF | 04-21 17:00 | 04-21 18:00 | stop_loss | 1 | -1.49 | +| ARB | 04-21 17:00 | 04-21 19:00 | stop_loss | 2 | -1.49 | +| FIL | 04-21 17:00 | 04-21 19:00 | stop_loss | 2 | -1.49 | +| KAS | 04-21 18:00 | 04-21 19:00 | stop_loss | 1 | -1.49 | +| WIF | 04-21 18:00 | 04-21 19:00 | stop_loss | 1 | -1.49 | +| FET | 04-21 19:00 | 04-21 20:00 | take_profit | 1 | +1.49 | +| OP | 04-21 19:00 | 04-21 20:00 | trailing_stop | 1 | -0.63 | +| TIA | 04-21 19:00 | 04-21 20:00 | trailing_stop | 1 | -0.36 | +| TRX | 04-20 20:00 | 04-21 20:00 | take_profit | 24 | +1.49 | +| AVAX | 04-21 19:00 | 04-21 23:00 | take_profit | 4 | +1.49 | +| BONK | 04-21 19:00 | 04-21 23:00 | take_profit | 4 | +1.49 | +| FIL | 04-21 19:00 | 04-21 23:00 | take_profit | 4 | +1.49 | +| INJ | 04-21 19:00 | 04-21 23:00 | take_profit | 4 | +1.49 | +| RENDER | 04-21 19:00 | 04-21 23:00 | take_profit | 4 | +1.49 | +| SUI | 04-21 19:00 | 04-21 23:00 | take_profit | 4 | +1.49 | +| UNI | 04-21 19:00 | 04-21 23:00 | take_profit | 4 | +1.49 | +| WIF | 04-21 19:00 | 04-21 23:00 | take_profit | 4 | +1.49 | +| ETC | 04-21 19:00 | 04-22 00:00 | take_profit | 5 | +1.49 | +| KAS | 04-21 19:00 | 04-22 02:00 | take_profit | 7 | +1.49 | +| TON | 04-21 19:00 | 04-22 08:00 | take_profit | 13 | +1.49 | +| WIF | 04-22 19:00 | 04-22 20:00 | stop_loss | 1 | -1.49 | +| WIF | 04-22 20:00 | 04-22 21:00 | trailing_stop | 1 | -0.16 | +| OP | 04-22 20:00 | 04-22 22:00 | stop_loss | 2 | -1.49 | +| ATOM | 04-22 17:00 | 04-22 23:00 | stop_loss | 6 | -1.49 | +| AVAX | 04-22 19:00 | 04-22 23:00 | stop_loss | 4 | -1.49 | +| ETC | 04-22 22:00 | 04-22 23:00 | stop_loss | 1 | -1.49 | +| FET | 04-22 19:00 | 04-22 23:00 | stop_loss | 4 | -1.49 | +| FIL | 04-22 20:00 | 04-22 23:00 | stop_loss | 3 | -1.49 | +| OP | 04-22 22:00 | 04-22 23:00 | stop_loss | 1 | -1.49 | +| TIA | 04-22 20:00 | 04-22 23:00 | stop_loss | 3 | -1.49 | +| WIF | 04-22 22:00 | 04-22 23:00 | stop_loss | 1 | -1.49 | +| APT | 04-22 23:00 | 04-23 00:00 | stop_loss | 1 | -1.49 | +| AVAX | 04-22 23:00 | 04-23 00:00 | stop_loss | 1 | -1.49 | +| ETC | 04-22 23:00 | 04-23 00:00 | stop_loss | 1 | -1.49 | +| FET | 04-22 23:00 | 04-23 00:00 | stop_loss | 1 | -1.49 | +| FIL | 04-22 23:00 | 04-23 00:00 | stop_loss | 1 | -1.49 | +| INJ | 04-22 23:00 | 04-23 00:00 | stop_loss | 1 | -1.49 | +| OP | 04-22 23:00 | 04-23 00:00 | stop_loss | 1 | -1.49 | +| PEPE | 04-22 23:00 | 04-23 00:00 | stop_loss | 1 | -1.49 | +| RENDER | 04-22 20:00 | 04-23 00:00 | stop_loss | 4 | -1.49 | +| SUI | 04-22 20:00 | 04-23 00:00 | stop_loss | 4 | -1.49 | +| TIA | 04-22 23:00 | 04-23 00:00 | stop_loss | 1 | -1.49 | +| UNI | 04-22 23:00 | 04-23 00:00 | stop_loss | 1 | -1.49 | +| WIF | 04-22 23:00 | 04-23 00:00 | stop_loss | 1 | -1.49 | +| BONK | 04-23 00:00 | 04-23 01:00 | stop_loss | 1 | -1.49 | +| WIF | 04-23 00:00 | 04-23 01:00 | stop_loss | 1 | -1.49 | +| APT | 04-23 00:00 | 04-23 02:00 | stop_loss | 2 | -1.49 | +| BONK | 04-23 01:00 | 04-23 02:00 | stop_loss | 1 | -1.49 | +| FET | 04-23 00:00 | 04-23 02:00 | stop_loss | 2 | -1.49 | +| FIL | 04-23 00:00 | 04-23 02:00 | stop_loss | 2 | -1.49 | +| NEAR | 04-22 23:00 | 04-23 02:00 | stop_loss | 3 | -1.49 | +| OP | 04-23 00:00 | 04-23 02:00 | stop_loss | 2 | -1.49 | +| RENDER | 04-23 00:00 | 04-23 02:00 | stop_loss | 2 | -1.49 | +| SUI | 04-23 00:00 | 04-23 02:00 | stop_loss | 2 | -1.49 | +| TIA | 04-23 00:00 | 04-23 02:00 | stop_loss | 2 | -1.49 | +| TON | 04-22 23:00 | 04-23 02:00 | stop_loss | 3 | -1.49 | +| UNI | 04-23 00:00 | 04-23 02:00 | stop_loss | 2 | -1.49 | +| WIF | 04-23 01:00 | 04-23 02:00 | stop_loss | 1 | -1.49 | +| AVAX | 04-23 00:00 | 04-23 03:00 | stop_loss | 3 | -1.49 | +| BONK | 04-23 02:00 | 04-23 03:00 | stop_loss | 1 | -1.49 | +| LTC | 04-22 23:00 | 04-23 03:00 | stop_loss | 4 | -1.49 | +| NEAR | 04-23 02:00 | 04-23 03:00 | stop_loss | 1 | -1.49 | +| SHIB | 04-22 23:00 | 04-23 03:00 | stop_loss | 4 | -1.49 | +| TIA | 04-23 02:00 | 04-23 03:00 | stop_loss | 1 | -1.49 | +| TON | 04-23 02:00 | 04-23 03:00 | stop_loss | 1 | -1.49 | +| WIF | 04-23 02:00 | 04-23 03:00 | stop_loss | 1 | -1.49 | +| WIF | 04-23 03:00 | 04-23 04:00 | trailing_stop | 1 | -0.60 | +| BONK | 04-23 03:00 | 04-23 06:00 | take_profit | 3 | +1.49 | +| ARB | 04-23 08:00 | 04-23 09:00 | stop_loss | 1 | -1.49 | +| KAS | 04-23 07:00 | 04-23 09:00 | stop_loss | 2 | -1.49 | +| PEPE | 04-23 07:00 | 04-23 09:00 | stop_loss | 2 | -1.49 | +| SEI | 04-23 07:00 | 04-23 09:00 | stop_loss | 2 | -1.49 | +| UNI | 04-23 02:00 | 04-23 09:00 | stop_loss | 7 | -1.49 | +| ARB | 04-23 09:00 | 04-23 10:00 | stop_loss | 1 | -1.49 | +| INJ | 04-23 03:00 | 04-23 10:00 | trailing_stop | 7 | -0.55 | +| TON | 04-23 03:00 | 04-23 10:00 | stop_loss | 7 | -1.49 | +| ATOM | 04-23 03:00 | 04-23 12:00 | take_profit | 9 | +1.49 | +| KAS | 04-23 09:00 | 04-23 13:00 | take_profit | 4 | +1.49 | +| BONK | 04-23 08:00 | 04-23 14:00 | trailing_stop | 6 | -0.13 | +| OP | 04-23 02:00 | 04-23 14:00 | take_profit | 12 | +1.49 | +| PEPE | 04-23 09:00 | 04-23 14:00 | trailing_stop | 5 | -0.12 | +| NEAR | 04-23 03:00 | 04-23 15:00 | take_profit | 12 | +1.49 | +| SUI | 04-23 02:00 | 04-23 15:00 | take_profit | 13 | +1.49 | +| TIA | 04-23 03:00 | 04-23 15:00 | take_profit | 12 | +1.49 | +| AVAX | 04-23 03:00 | 04-23 17:00 | stop_loss | 14 | -1.49 | +| ETC | 04-23 02:00 | 04-23 17:00 | trailing_stop | 15 | -0.05 | +| FIL | 04-23 02:00 | 04-23 17:00 | stop_loss | 15 | -1.49 | +| LTC | 04-23 03:00 | 04-23 17:00 | trailing_stop | 14 | -0.39 | +| RENDER | 04-23 02:00 | 04-23 17:00 | stop_loss | 15 | -1.49 | +| SHIB | 04-23 07:00 | 04-23 17:00 | trailing_stop | 10 | -0.40 | +| TON | 04-23 10:00 | 04-23 17:00 | take_profit | 7 | +1.49 | +| KAS | 04-23 18:00 | 04-24 04:00 | trailing_stop | 10 | -0.27 | +| TON | 04-24 08:00 | 04-24 10:00 | stop_loss | 2 | -1.49 | +| TRX | 04-22 14:00 | 04-24 15:00 | stop_loss | 49 | -1.49 | +| TRX | 04-24 15:00 | 04-24 16:00 | stop_loss | 1 | -1.49 | +| SEI | 04-24 22:00 | 04-25 05:00 | trailing_stop | 7 | +0.20 | +| RENDER | 04-24 22:00 | 04-25 09:00 | take_profit | 11 | +1.49 | +| WIF | 04-24 22:00 | 04-25 11:00 | trailing_stop | 13 | -0.59 | +| TIA | 04-25 11:00 | 04-25 14:00 | stop_loss | 3 | -1.49 | +| FET | 04-24 22:00 | 04-25 15:00 | trailing_stop | 17 | -0.46 | +| APT | 04-25 13:00 | 04-25 16:00 | stop_loss | 3 | -1.49 | +| BONK | 04-25 11:00 | 04-25 16:00 | stop_loss | 5 | -1.49 | +| PEPE | 04-25 11:00 | 04-25 16:00 | stop_loss | 5 | -1.49 | +| TIA | 04-25 14:00 | 04-25 16:00 | stop_loss | 2 | -1.49 | +| ARB | 04-25 15:00 | 04-25 17:00 | stop_loss | 2 | -1.49 | +| TON | 04-25 15:00 | 04-25 17:00 | stop_loss | 2 | -1.49 | +| PEPE | 04-25 17:00 | 04-25 19:00 | confirmed_bearish_exit | 2 | -0.24 | +| ETC | 04-25 16:00 | 04-25 20:00 | confirmed_bearish_exit | 4 | -0.62 | +| SEI | 04-25 16:00 | 04-26 00:00 | stop_loss | 8 | -1.49 | +| ARB | 04-25 23:00 | 04-26 01:00 | stop_loss | 2 | -1.49 | +| OP | 04-25 18:00 | 04-26 03:00 | stop_loss | 9 | -1.49 | +| ARB | 04-26 01:00 | 04-26 05:00 | take_profit | 4 | +1.49 | +| FET | 04-25 17:00 | 04-26 05:00 | take_profit | 12 | +1.49 | +| FIL | 04-25 17:00 | 04-26 05:00 | take_profit | 12 | +1.49 | +| KAS | 04-25 17:00 | 04-26 05:00 | take_profit | 12 | +1.49 | +| TIA | 04-25 16:00 | 04-26 05:00 | take_profit | 13 | +1.49 | +| BONK | 04-25 16:00 | 04-26 06:00 | take_profit | 14 | +1.49 | +| TON | 04-25 17:00 | 04-26 08:00 | trailing_stop | 15 | -0.49 | +| APT | 04-25 22:00 | 04-26 09:00 | take_profit | 11 | +1.49 | +| WIF | 04-25 16:00 | 04-26 10:00 | take_profit | 18 | +1.49 | +| AVAX | 04-25 15:00 | 04-26 11:00 | take_profit | 20 | +1.49 | +| UNI | 04-25 17:00 | 04-26 11:00 | take_profit | 18 | +1.49 | +| NEAR | 04-25 16:00 | 04-26 17:00 | stop_loss | 25 | -1.49 | +| SHIB | 04-25 16:00 | 04-27 01:00 | take_profit | 33 | +1.49 | +| SUI | 04-25 16:00 | 04-27 01:00 | take_profit | 33 | +1.49 | +| ARB | 04-26 22:00 | 04-27 02:00 | take_profit | 4 | +1.49 | +| ATOM | 04-26 00:00 | 04-27 03:00 | stop_loss | 27 | -1.49 | +| NEAR | 04-26 21:00 | 04-27 04:00 | trailing_stop | 7 | -0.57 | +| ATOM | 04-27 04:00 | 04-27 05:00 | stop_loss | 1 | -1.49 | +| LTC | 04-25 11:00 | 04-27 05:00 | stop_loss | 42 | -1.49 | +| APT | 04-27 05:00 | 04-27 06:00 | stop_loss | 1 | -1.49 | +| ARB | 04-27 05:00 | 04-27 06:00 | stop_loss | 1 | -1.49 | +| OP | 04-27 05:00 | 04-27 06:00 | stop_loss | 1 | -1.49 | +| SEI | 04-27 05:00 | 04-27 06:00 | stop_loss | 1 | -1.49 | +| TIA | 04-27 05:00 | 04-27 06:00 | stop_loss | 1 | -1.49 | +| SUI | 04-27 05:00 | 04-27 07:00 | stop_loss | 2 | -1.49 | +| APT | 04-27 06:00 | 04-27 08:00 | stop_loss | 2 | -1.49 | +| SEI | 04-27 06:00 | 04-27 08:00 | stop_loss | 2 | -1.49 | +| OP | 04-27 06:00 | 04-27 11:00 | stop_loss | 5 | -1.49 | +| ARB | 04-27 06:00 | 04-27 13:00 | stop_loss | 7 | -1.49 | +| AVAX | 04-27 05:00 | 04-27 13:00 | stop_loss | 8 | -1.49 | +| PEPE | 04-27 06:00 | 04-27 14:00 | take_profit | 8 | +1.49 | +| APT | 04-27 08:00 | 04-27 15:00 | stop_loss | 7 | -1.49 | +| FIL | 04-27 07:00 | 04-27 15:00 | stop_loss | 8 | -1.49 | +| INJ | 04-27 12:00 | 04-27 15:00 | stop_loss | 3 | -1.49 | +| LTC | 04-27 05:00 | 04-27 15:00 | stop_loss | 10 | -1.49 | +| SEI | 04-27 08:00 | 04-27 15:00 | stop_loss | 7 | -1.49 | +| SHIB | 04-27 06:00 | 04-27 15:00 | stop_loss | 9 | -1.49 | +| SUI | 04-27 07:00 | 04-27 15:00 | stop_loss | 8 | -1.49 | +| TIA | 04-27 06:00 | 04-27 15:00 | stop_loss | 9 | -1.49 | +| PEPE | 04-27 15:00 | 04-27 22:00 | take_profit | 7 | +1.49 | +| RENDER | 04-27 15:00 | 04-27 22:00 | trailing_stop | 7 | +0.04 | +| ATOM | 04-27 05:00 | 04-28 01:00 | trailing_stop | 20 | -0.04 | +| KAS | 04-27 15:00 | 04-28 02:00 | trailing_stop | 11 | -0.53 | +| NEAR | 04-27 15:00 | 04-28 07:00 | trailing_stop | 16 | -0.53 | +| FET | 04-28 02:00 | 04-28 09:00 | stop_loss | 7 | -1.49 | +| ATOM | 04-28 02:00 | 04-28 11:00 | stop_loss | 9 | -1.49 | +| TON | 04-27 07:00 | 04-28 12:00 | trailing_stop | 29 | -0.56 | +| FET | 04-28 11:00 | 04-28 13:00 | stop_loss | 2 | -1.49 | +| ATOM | 04-28 11:00 | 04-28 14:00 | stop_loss | 3 | -1.49 | +| KAS | 04-28 02:00 | 04-28 14:00 | stop_loss | 12 | -1.49 | +| INJ | 04-28 14:00 | 04-28 15:00 | stop_loss | 1 | -1.49 | +| FET | 04-28 14:00 | 04-28 17:00 | stop_loss | 3 | -1.49 | +| INJ | 04-28 15:00 | 04-28 17:00 | stop_loss | 2 | -1.49 | +| INJ | 04-28 17:00 | 04-28 18:00 | trailing_stop | 1 | -0.48 | +| FET | 04-28 20:00 | 04-28 22:00 | stop_loss | 2 | -1.49 | +| ATOM | 04-28 14:00 | 04-29 02:00 | take_profit | 12 | +1.49 | +| FET | 04-28 22:00 | 04-29 03:00 | take_profit | 5 | +1.49 | +| NEAR | 04-28 15:00 | 04-29 03:00 | take_profit | 12 | +1.49 | +| PEPE | 04-28 13:00 | 04-29 04:00 | take_profit | 15 | +1.49 | +| TON | 04-28 13:00 | 04-29 04:00 | take_profit | 15 | +1.49 | +| LTC | 04-27 15:00 | 04-29 09:00 | take_profit | 42 | +1.49 | +| KAS | 04-28 15:00 | 04-29 10:00 | take_profit | 19 | +1.49 | +| INJ | 04-29 14:00 | 04-29 15:00 | stop_loss | 1 | -1.49 | +| SEI | 04-29 13:00 | 04-29 15:00 | stop_loss | 2 | -1.49 | +| SUI | 04-29 13:00 | 04-29 15:00 | stop_loss | 2 | -1.49 | +| FIL | 04-29 16:00 | 04-29 17:00 | trailing_stop | 1 | -0.27 | +| ATOM | 04-29 15:00 | 04-29 18:00 | stop_loss | 3 | -1.49 | +| ETC | 04-29 15:00 | 04-29 18:00 | stop_loss | 3 | -1.49 | +| INJ | 04-29 15:00 | 04-29 18:00 | stop_loss | 3 | -1.49 | +| KAS | 04-29 15:00 | 04-29 18:00 | stop_loss | 3 | -1.49 | +| NEAR | 04-29 15:00 | 04-29 18:00 | stop_loss | 3 | -1.49 | +| OP | 04-29 15:00 | 04-29 18:00 | stop_loss | 3 | -1.49 | +| RENDER | 04-29 15:00 | 04-29 18:00 | stop_loss | 3 | -1.49 | +| SEI | 04-29 15:00 | 04-29 18:00 | stop_loss | 3 | -1.49 | +| SUI | 04-29 15:00 | 04-29 18:00 | stop_loss | 3 | -1.49 | +| TIA | 04-29 15:00 | 04-29 18:00 | stop_loss | 3 | -1.49 | +| UNI | 04-29 15:00 | 04-29 18:00 | stop_loss | 3 | -1.49 | +| FIL | 04-29 18:00 | 04-29 20:00 | trailing_stop | 2 | -0.04 | +| FET | 04-29 18:00 | 04-29 21:00 | take_profit | 3 | +1.49 | +| OP | 04-29 18:00 | 04-29 21:00 | take_profit | 3 | +1.49 | +| ARB | 04-29 23:00 | 04-30 00:00 | take_profit | 1 | +1.49 | +| BONK | 04-29 18:00 | 04-30 00:00 | take_profit | 6 | +1.49 | +| OP | 04-29 23:00 | 04-30 00:00 | trailing_stop | 1 | -0.38 | +| PEPE | 04-29 23:00 | 04-30 00:00 | take_profit | 1 | +1.49 | +| SHIB | 04-29 23:00 | 04-30 00:00 | trailing_stop | 1 | -0.10 | +| SUI | 04-29 18:00 | 04-30 00:00 | take_profit | 6 | +1.49 | +| UNI | 04-29 18:00 | 04-30 00:00 | take_profit | 6 | +1.49 | +| WIF | 04-29 23:00 | 04-30 00:00 | trailing_stop | 1 | -0.59 | +| NEAR | 04-29 18:00 | 04-30 01:00 | take_profit | 7 | +1.49 | +| PEPE | 04-30 00:00 | 04-30 01:00 | stop_loss | 1 | -1.49 | +| SEI | 04-29 18:00 | 04-30 01:00 | take_profit | 7 | +1.49 | +| ATOM | 04-29 18:00 | 04-30 02:00 | trailing_stop | 8 | -0.51 | +| AVAX | 04-29 18:00 | 04-30 02:00 | trailing_stop | 8 | -0.18 | +| ETC | 04-29 18:00 | 04-30 02:00 | trailing_stop | 8 | +0.09 | +| PEPE | 04-30 01:00 | 04-30 02:00 | stop_loss | 1 | -1.49 | +| RENDER | 04-29 23:00 | 04-30 02:00 | stop_loss | 3 | -1.49 | +| TIA | 04-29 18:00 | 04-30 02:00 | trailing_stop | 8 | -0.59 | +| UNI | 04-30 00:00 | 04-30 02:00 | stop_loss | 2 | -1.49 | +| INJ | 04-29 23:00 | 04-30 03:00 | stop_loss | 4 | -1.49 | +| TIA | 04-30 02:00 | 04-30 03:00 | take_profit | 1 | +1.49 | +| KAS | 04-29 18:00 | 04-30 04:00 | trailing_stop | 10 | -0.29 | +| UNI | 04-30 02:00 | 04-30 05:00 | stop_loss | 3 | -1.49 | +| SEI | 04-30 02:00 | 04-30 13:00 | stop_loss | 11 | -1.49 | +| RENDER | 04-30 02:00 | 04-30 15:00 | stop_loss | 13 | -1.49 | +| ATOM | 04-30 02:00 | 04-30 16:00 | stop_loss | 14 | -1.49 | +| APT | 04-30 17:00 | 05-01 01:00 | take_profit | 8 | +1.49 | +| BONK | 04-30 22:00 | 05-01 01:00 | trailing_stop | 3 | -0.09 | +| TIA | 04-30 21:00 | 05-01 01:00 | trailing_stop | 4 | -0.29 | +| RENDER | 04-30 21:00 | 05-01 03:00 | take_profit | 6 | +1.49 | +| SHIB | 04-30 22:00 | 05-01 03:00 | take_profit | 5 | +1.49 | +| ETC | 04-30 23:00 | 05-01 13:00 | take_profit | 14 | +1.49 | +| NEAR | 04-30 18:00 | 05-01 15:00 | stop_loss | 21 | -1.49 | +| ATOM | 04-30 17:00 | 05-01 19:00 | take_profit | 26 | +1.49 | +| APT | 05-01 17:00 | 05-01 20:00 | stop_loss | 3 | -1.49 | +| TIA | 05-01 20:00 | 05-02 03:00 | stop_loss | 7 | -1.49 | +| ARB | 05-01 23:00 | 05-02 04:00 | stop_loss | 5 | -1.49 | +| PEPE | 05-02 03:00 | 05-02 04:00 | stop_loss | 1 | -1.49 | +| BONK | 05-02 03:00 | 05-02 05:00 | stop_loss | 2 | -1.49 | +| KAS | 05-02 03:00 | 05-02 06:00 | stop_loss | 3 | -1.49 | +| TON | 05-02 00:00 | 05-02 10:00 | take_profit | 10 | +1.49 | +| TRX | 04-24 16:00 | 05-02 10:00 | take_profit | 186 | +1.49 | +| APT | 05-02 05:00 | 05-02 11:00 | trailing_stop | 6 | -0.60 | +| LTC | 04-29 23:00 | 05-02 11:00 | trailing_stop | 60 | -0.64 | +| ATOM | 05-02 05:00 | 05-02 12:00 | stop_loss | 7 | -1.49 | +| WIF | 05-02 05:00 | 05-02 12:00 | take_profit | 7 | +1.49 | +| FET | 05-02 03:00 | 05-02 14:00 | take_profit | 11 | +1.49 | +| SEI | 05-02 05:00 | 05-02 15:00 | take_profit | 10 | +1.49 | +| PEPE | 05-02 04:00 | 05-02 16:00 | take_profit | 12 | +1.49 | +| ARB | 05-02 04:00 | 05-02 17:00 | trailing_stop | 13 | -0.17 | +| ETC | 05-02 04:00 | 05-02 21:00 | take_profit | 17 | +1.49 | +| UNI | 05-02 05:00 | 05-02 21:00 | take_profit | 16 | +1.49 | +| ATOM | 05-02 12:00 | 05-03 00:00 | trailing_stop | 12 | -0.32 | +| SUI | 05-02 05:00 | 05-03 01:00 | trailing_stop | 20 | -0.30 | +| AVAX | 05-02 03:00 | 05-03 03:00 | stop_loss | 24 | -1.49 | +| ARB | 05-03 01:00 | 05-03 05:00 | stop_loss | 4 | -1.49 | +| NEAR | 05-01 17:00 | 05-03 05:00 | stop_loss | 36 | -1.49 | +| ARB | 05-03 09:00 | 05-03 10:00 | stop_loss | 1 | -1.49 | +| ARB | 05-03 10:00 | 05-03 11:00 | stop_loss | 1 | -1.49 | +| TIA | 05-03 05:00 | 05-03 13:00 | stop_loss | 8 | -1.49 | +| WIF | 05-03 04:00 | 05-03 19:00 | take_profit | 15 | +1.49 | +| APT | 05-03 01:00 | 05-03 20:00 | take_profit | 19 | +1.49 | +| OP | 05-03 08:00 | 05-03 20:00 | take_profit | 12 | +1.49 | +| PEPE | 05-03 06:00 | 05-03 21:00 | trailing_stop | 15 | -0.44 | +| FIL | 05-03 05:00 | 05-03 22:00 | take_profit | 17 | +1.49 | +| SEI | 05-03 06:00 | 05-03 22:00 | take_profit | 16 | +1.49 | +| ARB | 05-03 23:00 | 05-04 00:00 | stop_loss | 1 | -1.49 | +| AVAX | 05-03 04:00 | 05-04 00:00 | trailing_stop | 20 | -0.06 | +| BONK | 05-03 06:00 | 05-04 00:00 | trailing_stop | 18 | -0.59 | +| SHIB | 05-03 01:00 | 05-04 00:00 | stop_loss | 23 | -1.49 | +| SUI | 05-03 05:00 | 05-04 00:00 | trailing_stop | 19 | -0.57 | +| UNI | 05-03 06:00 | 05-04 00:00 | trailing_stop | 18 | -0.23 | +| ETC | 05-03 06:00 | 05-04 01:00 | trailing_stop | 19 | -0.18 | +| LTC | 05-02 17:00 | 05-04 04:00 | take_profit | 35 | +1.49 | +| APT | 05-04 10:00 | 05-04 14:00 | take_profit | 4 | +1.49 | +| ARB | 05-04 10:00 | 05-04 14:00 | take_profit | 4 | +1.49 | +| FET | 05-04 10:00 | 05-04 14:00 | take_profit | 4 | +1.49 | +| INJ | 05-04 10:00 | 05-04 14:00 | trailing_stop | 4 | -0.39 | +| NEAR | 05-04 10:00 | 05-04 14:00 | take_profit | 4 | +1.49 | +| FIL | 05-04 16:00 | 05-04 20:00 | trailing_stop | 4 | -0.43 | +| UNI | 05-04 18:00 | 05-04 20:00 | stop_loss | 2 | -1.49 | +| ATOM | 05-04 15:00 | 05-05 05:00 | take_profit | 14 | +1.49 | +| KAS | 05-04 16:00 | 05-05 12:00 | trailing_stop | 20 | +0.18 | +| ATOM | 05-05 15:00 | 05-05 16:00 | stop_loss | 1 | -1.49 | +| TIA | 05-05 15:00 | 05-05 20:00 | take_profit | 5 | +1.49 | +| ATOM | 05-05 16:00 | 05-05 21:00 | take_profit | 5 | +1.49 | +| WIF | 05-06 19:00 | 05-06 20:00 | stop_loss | 1 | -1.49 | +| FIL | 05-06 18:00 | 05-06 21:00 | take_profit | 3 | +1.49 | +| WIF | 05-06 20:00 | 05-06 21:00 | stop_loss | 1 | -1.49 | +| WIF | 05-06 21:00 | 05-06 22:00 | stop_loss | 1 | -1.49 | +| APT | 05-06 23:00 | 05-07 00:00 | stop_loss | 1 | -1.49 | +| BONK | 05-06 22:00 | 05-07 00:00 | stop_loss | 2 | -1.49 | +| PEPE | 05-06 19:00 | 05-07 00:00 | stop_loss | 5 | -1.49 | +| SHIB | 05-06 23:00 | 05-07 00:00 | stop_loss | 1 | -1.49 | +| SUI | 05-06 23:00 | 05-07 00:00 | stop_loss | 1 | -1.49 | +| WIF | 05-06 22:00 | 05-07 00:00 | stop_loss | 2 | -1.49 | +| ATOM | 05-06 22:00 | 05-07 01:00 | stop_loss | 3 | -1.49 | +| UNI | 05-07 00:00 | 05-07 02:00 | stop_loss | 2 | -1.49 | +| BONK | 05-07 00:00 | 05-07 04:00 | take_profit | 4 | +1.49 | +| RENDER | 05-07 01:00 | 05-07 04:00 | trailing_stop | 3 | -0.20 | +| UNI | 05-07 02:00 | 05-07 04:00 | stop_loss | 2 | -1.49 | +| WIF | 05-07 03:00 | 05-07 04:00 | stop_loss | 1 | -1.49 | +| AVAX | 05-07 00:00 | 05-07 06:00 | trailing_stop | 6 | -0.46 | +| SEI | 05-07 01:00 | 05-07 06:00 | take_profit | 5 | +1.49 | +| WIF | 05-07 09:00 | 05-07 12:00 | take_profit | 3 | +1.49 | +| LTC | 05-06 22:00 | 05-07 14:00 | trailing_stop | 16 | -0.57 | +| SHIB | 05-07 11:00 | 05-07 14:00 | stop_loss | 3 | -1.49 | +| TRX | 05-06 08:00 | 05-07 17:00 | take_profit | 33 | +1.49 | +| KAS | 05-07 15:00 | 05-07 19:00 | stop_loss | 4 | -1.49 | +| KAS | 05-07 20:00 | 05-07 23:00 | confirmed_bearish_exit | 3 | +0.52 | +| FET | 05-08 00:00 | 05-08 02:00 | stop_loss | 2 | -1.49 | +| FET | 05-08 02:00 | 05-08 03:00 | trailing_stop | 1 | -0.54 | +| RENDER | 05-07 21:00 | 05-08 05:00 | take_profit | 8 | +1.49 | +| SEI | 05-08 02:00 | 05-08 07:00 | trailing_stop | 5 | -0.22 | +| BONK | 05-08 02:00 | 05-08 08:00 | take_profit | 6 | +1.49 | +| PEPE | 05-07 21:00 | 05-08 09:00 | take_profit | 12 | +1.49 | +| UNI | 05-08 02:00 | 05-08 09:00 | take_profit | 7 | +1.49 | +| AVAX | 05-08 02:00 | 05-08 14:00 | take_profit | 12 | +1.49 | +| TON | 05-08 20:00 | 05-08 21:00 | take_profit | 1 | +1.49 | +| TIA | 05-09 10:00 | 05-09 11:00 | take_profit | 1 | +1.49 | +| ETC | 05-09 09:00 | 05-09 13:00 | stop_loss | 4 | -1.49 | +| FIL | 05-09 12:00 | 05-09 14:00 | stop_loss | 2 | -1.49 | +| PEPE | 05-09 13:00 | 05-09 14:00 | stop_loss | 1 | -1.49 | +| SHIB | 05-09 12:00 | 05-09 14:00 | stop_loss | 2 | -1.49 | +| TIA | 05-09 13:00 | 05-09 14:00 | stop_loss | 1 | -1.49 | +| FET | 05-09 14:00 | 05-09 15:00 | stop_loss | 1 | -1.49 | +| FIL | 05-09 14:00 | 05-09 15:00 | stop_loss | 1 | -1.49 | +| TON | 05-09 14:00 | 05-09 15:00 | stop_loss | 1 | -1.49 | +| APT | 05-09 10:00 | 05-09 16:00 | stop_loss | 6 | -1.49 | +| ARB | 05-09 15:00 | 05-09 16:00 | stop_loss | 1 | -1.49 | +| UNI | 05-09 13:00 | 05-09 17:00 | trailing_stop | 4 | -0.40 | +| SUI | 05-09 14:00 | 05-09 18:00 | take_profit | 4 | +1.49 | +| TIA | 05-09 14:00 | 05-09 18:00 | take_profit | 4 | +1.49 | +| WIF | 05-09 15:00 | 05-09 18:00 | confirmed_bearish_exit | 3 | +1.29 | +| FET | 05-09 16:00 | 05-09 21:00 | trailing_stop | 5 | -0.42 | +| BONK | 05-09 15:00 | 05-09 22:00 | take_profit | 7 | +1.49 | +| FIL | 05-09 15:00 | 05-09 23:00 | trailing_stop | 8 | -0.39 | +| OP | 05-09 11:00 | 05-09 23:00 | stop_loss | 12 | -1.49 | +| ARB | 05-09 20:00 | 05-10 00:00 | stop_loss | 4 | -1.49 | +| ATOM | 05-09 14:00 | 05-10 00:00 | stop_loss | 10 | -1.49 | +| AVAX | 05-09 14:00 | 05-10 01:00 | trailing_stop | 11 | -0.20 | +| INJ | 05-09 15:00 | 05-10 01:00 | stop_loss | 10 | -1.49 | +| PEPE | 05-09 14:00 | 05-10 01:00 | stop_loss | 11 | -1.49 | +| ETC | 05-09 13:00 | 05-10 02:00 | take_profit | 13 | +1.49 | +| OP | 05-10 01:00 | 05-10 10:00 | trailing_stop | 9 | -0.60 | +| ATOM | 05-10 00:00 | 05-10 12:00 | take_profit | 12 | +1.49 | +| SHIB | 05-09 14:00 | 05-10 12:00 | take_profit | 22 | +1.49 | +| INJ | 05-10 01:00 | 05-10 13:00 | take_profit | 12 | +1.49 | +| LTC | 05-09 14:00 | 05-10 15:00 | take_profit | 25 | +1.49 | +| PEPE | 05-10 01:00 | 05-10 15:00 | take_profit | 14 | +1.49 | +| SEI | 05-10 12:00 | 05-10 15:00 | take_profit | 3 | +1.49 | +| TON | 05-10 17:00 | 05-10 18:00 | stop_loss | 1 | -1.49 | +| FIL | 05-10 16:00 | 05-10 20:00 | stop_loss | 4 | -1.49 | +| FIL | 05-10 20:00 | 05-10 22:00 | take_profit | 2 | +1.49 | +| TON | 05-11 03:00 | 05-11 04:00 | stop_loss | 1 | -1.49 | +| UNI | 05-11 03:00 | 05-11 04:00 | stop_loss | 1 | -1.49 | +| UNI | 05-11 04:00 | 05-11 07:00 | stop_loss | 3 | -1.49 | +| FIL | 05-11 07:00 | 05-11 08:00 | stop_loss | 1 | -1.49 | +| SUI | 05-11 08:00 | 05-11 09:00 | trailing_stop | 1 | -0.62 | +| APT | 05-11 09:00 | 05-11 11:00 | stop_loss | 2 | -1.49 | +| NEAR | 05-11 09:00 | 05-11 12:00 | stop_loss | 3 | -1.49 | +| BONK | 05-11 08:00 | 05-11 13:00 | stop_loss | 5 | -1.49 | +| NEAR | 05-11 12:00 | 05-11 13:00 | stop_loss | 1 | -1.49 | +| RENDER | 05-11 09:00 | 05-11 13:00 | stop_loss | 4 | -1.49 | +| SUI | 05-11 09:00 | 05-11 13:00 | take_profit | 4 | +1.49 | +| FET | 05-11 12:00 | 05-11 14:00 | stop_loss | 2 | -1.49 | +| PEPE | 05-11 08:00 | 05-11 14:00 | stop_loss | 6 | -1.49 | +| SUI | 05-11 13:00 | 05-11 14:00 | stop_loss | 1 | -1.49 | +| AVAX | 05-11 12:00 | 05-11 15:00 | trailing_stop | 3 | -0.03 | +| SUI | 05-11 14:00 | 05-11 16:00 | take_profit | 2 | +1.49 | +| ARB | 05-11 12:00 | 05-11 17:00 | trailing_stop | 5 | -0.58 | +| RENDER | 05-12 00:00 | 05-12 01:00 | stop_loss | 1 | -1.49 | +| SEI | 05-12 01:00 | 05-12 06:00 | trailing_stop | 5 | -0.34 | +| APT | 05-12 01:00 | 05-12 07:00 | trailing_stop | 6 | -0.18 | +| FET | 05-12 01:00 | 05-12 07:00 | trailing_stop | 6 | -0.58 | +| RENDER | 05-12 01:00 | 05-12 07:00 | trailing_stop | 6 | -0.25 | +| BONK | 05-12 01:00 | 05-12 08:00 | stop_loss | 7 | -1.49 | +| PEPE | 05-12 01:00 | 05-12 08:00 | stop_loss | 7 | -1.49 | +| ARB | 05-12 03:00 | 05-12 09:00 | stop_loss | 6 | -1.49 | +| AVAX | 05-12 01:00 | 05-12 09:00 | stop_loss | 8 | -1.49 | +| ETC | 05-12 01:00 | 05-12 09:00 | stop_loss | 8 | -1.49 | +| KAS | 05-12 08:00 | 05-12 09:00 | stop_loss | 1 | -1.49 | +| BONK | 05-12 08:00 | 05-12 10:00 | stop_loss | 2 | -1.49 | +| WIF | 05-12 09:00 | 05-12 10:00 | stop_loss | 1 | -1.49 | +| AVAX | 05-12 09:00 | 05-12 11:00 | stop_loss | 2 | -1.49 | +| BONK | 05-12 10:00 | 05-12 11:00 | stop_loss | 1 | -1.49 | +| OP | 05-12 01:00 | 05-12 11:00 | stop_loss | 10 | -1.49 | +| PEPE | 05-12 08:00 | 05-12 11:00 | stop_loss | 3 | -1.49 | +| RENDER | 05-12 09:00 | 05-12 11:00 | stop_loss | 2 | -1.49 | +| SEI | 05-12 08:00 | 05-12 11:00 | stop_loss | 3 | -1.49 | +| FIL | 05-12 03:00 | 05-12 12:00 | stop_loss | 9 | -1.49 | +| OP | 05-12 11:00 | 05-12 12:00 | stop_loss | 1 | -1.49 | +| SHIB | 05-12 10:00 | 05-12 12:00 | stop_loss | 2 | -1.49 | +| SUI | 05-12 11:00 | 05-12 12:00 | take_profit | 1 | +1.49 | +| WIF | 05-12 10:00 | 05-12 12:00 | stop_loss | 2 | -1.49 | +| BONK | 05-12 11:00 | 05-12 13:00 | stop_loss | 2 | -1.49 | +| KAS | 05-12 10:00 | 05-12 13:00 | trailing_stop | 3 | -0.53 | +| LTC | 05-12 01:00 | 05-12 13:00 | stop_loss | 12 | -1.49 | +| OP | 05-12 12:00 | 05-12 13:00 | stop_loss | 1 | -1.49 | +| SHIB | 05-12 12:00 | 05-12 13:00 | stop_loss | 1 | -1.49 | +| TIA | 05-12 12:00 | 05-12 13:00 | stop_loss | 1 | -1.49 | +| TON | 05-12 12:00 | 05-12 13:00 | stop_loss | 1 | -1.49 | +| AVAX | 05-12 13:00 | 05-12 14:00 | stop_loss | 1 | -1.49 | +| OP | 05-12 13:00 | 05-12 14:00 | stop_loss | 1 | -1.49 | +| PEPE | 05-12 13:00 | 05-12 14:00 | stop_loss | 1 | -1.49 | +| TIA | 05-12 13:00 | 05-12 14:00 | stop_loss | 1 | -1.49 | +| TON | 05-12 13:00 | 05-12 14:00 | take_profit | 1 | +1.49 | +| WIF | 05-12 13:00 | 05-12 14:00 | stop_loss | 1 | -1.49 | +| ATOM | 05-12 14:00 | 05-12 15:00 | trailing_stop | 1 | -0.46 | +| BONK | 05-12 13:00 | 05-12 15:00 | stop_loss | 2 | -1.49 | +| SUI | 05-12 14:00 | 05-12 15:00 | stop_loss | 1 | -1.49 | +| TIA | 05-12 14:00 | 05-12 15:00 | take_profit | 1 | +1.49 | +| APT | 05-12 13:00 | 05-12 16:00 | stop_loss | 3 | -1.49 | +| FET | 05-12 14:00 | 05-12 16:00 | stop_loss | 2 | -1.49 | +| FIL | 05-12 14:00 | 05-12 16:00 | stop_loss | 2 | -1.49 | +| OP | 05-12 14:00 | 05-12 16:00 | stop_loss | 2 | -1.49 | +| PEPE | 05-12 14:00 | 05-12 16:00 | stop_loss | 2 | -1.49 | +| OP | 05-12 16:00 | 05-12 17:00 | trailing_stop | 1 | -0.18 | +| FIL | 05-12 16:00 | 05-12 18:00 | take_profit | 2 | +1.49 | +| FET | 05-12 16:00 | 05-12 19:00 | take_profit | 3 | +1.49 | +| RENDER | 05-12 15:00 | 05-12 19:00 | take_profit | 4 | +1.49 | +| WIF | 05-12 14:00 | 05-12 19:00 | take_profit | 5 | +1.49 | +| PEPE | 05-12 16:00 | 05-12 20:00 | take_profit | 4 | +1.49 | +| FET | 05-12 21:00 | 05-12 23:00 | stop_loss | 2 | -1.49 | +| SEI | 05-12 21:00 | 05-12 23:00 | stop_loss | 2 | -1.49 | +| APT | 05-12 19:00 | 05-13 01:00 | trailing_stop | 6 | -0.70 | +| ARB | 05-12 14:00 | 05-13 01:00 | take_profit | 11 | +1.49 | +| AVAX | 05-12 14:00 | 05-13 01:00 | take_profit | 11 | +1.49 | +| WIF | 05-12 20:00 | 05-13 01:00 | trailing_stop | 5 | +0.09 | +| FET | 05-12 23:00 | 05-13 02:00 | take_profit | 3 | +1.49 | +| OP | 05-12 20:00 | 05-13 02:00 | trailing_stop | 6 | -0.21 | +| LTC | 05-12 13:00 | 05-13 03:00 | take_profit | 14 | +1.49 | +| SHIB | 05-12 13:00 | 05-13 03:00 | confirmed_bearish_exit | 14 | +1.37 | +| BONK | 05-12 20:00 | 05-13 04:00 | take_profit | 8 | +1.49 | +| UNI | 05-12 19:00 | 05-13 04:00 | take_profit | 9 | +1.49 | +| PEPE | 05-12 20:00 | 05-13 05:00 | trailing_stop | 9 | -0.28 | +| SEI | 05-12 23:00 | 05-13 06:00 | take_profit | 7 | +1.49 | +| TON | 05-13 10:00 | 05-13 12:00 | stop_loss | 2 | -1.49 | +| BONK | 05-13 12:00 | 05-13 13:00 | stop_loss | 1 | -1.49 | +| FET | 05-13 12:00 | 05-13 13:00 | stop_loss | 1 | -1.49 | +| FIL | 05-13 12:00 | 05-13 13:00 | stop_loss | 1 | -1.49 | +| OP | 05-13 12:00 | 05-13 13:00 | stop_loss | 1 | -1.49 | +| SEI | 05-13 12:00 | 05-13 13:00 | stop_loss | 1 | -1.49 | +| SHIB | 05-13 12:00 | 05-13 13:00 | stop_loss | 1 | -1.49 | +| TON | 05-13 12:00 | 05-13 13:00 | stop_loss | 1 | -1.49 | +| UNI | 05-13 12:00 | 05-13 13:00 | stop_loss | 1 | -1.49 | +| APT | 05-13 13:00 | 05-13 15:00 | stop_loss | 2 | -1.49 | +| ARB | 05-13 13:00 | 05-13 15:00 | stop_loss | 2 | -1.49 | +| ATOM | 05-13 13:00 | 05-13 15:00 | stop_loss | 2 | -1.49 | +| BONK | 05-13 13:00 | 05-13 15:00 | stop_loss | 2 | -1.49 | +| ETC | 05-13 13:00 | 05-13 15:00 | stop_loss | 2 | -1.49 | +| FET | 05-13 13:00 | 05-13 15:00 | stop_loss | 2 | -1.49 | +| FIL | 05-13 13:00 | 05-13 15:00 | stop_loss | 2 | -1.49 | +| LTC | 05-13 13:00 | 05-13 15:00 | stop_loss | 2 | -1.49 | +| OP | 05-13 13:00 | 05-13 15:00 | stop_loss | 2 | -1.49 | +| PEPE | 05-13 13:00 | 05-13 15:00 | stop_loss | 2 | -1.49 | +| SEI | 05-13 13:00 | 05-13 15:00 | stop_loss | 2 | -1.49 | +| SHIB | 05-13 13:00 | 05-13 15:00 | stop_loss | 2 | -1.49 | +| TON | 05-13 13:00 | 05-13 15:00 | stop_loss | 2 | -1.49 | +| UNI | 05-13 13:00 | 05-13 15:00 | stop_loss | 2 | -1.49 | +| ATOM | 05-13 15:00 | 05-13 16:00 | trailing_stop | 1 | -0.53 | +| FIL | 05-13 15:00 | 05-13 16:00 | take_profit | 1 | +1.49 | +| NEAR | 05-13 15:00 | 05-13 16:00 | take_profit | 1 | +1.49 | +| OP | 05-13 15:00 | 05-13 16:00 | trailing_stop | 1 | -0.47 | +| PEPE | 05-13 15:00 | 05-13 16:00 | take_profit | 1 | +1.49 | +| SUI | 05-13 15:00 | 05-13 16:00 | take_profit | 1 | +1.49 | +| TON | 05-13 15:00 | 05-13 16:00 | take_profit | 1 | +1.49 | +| WIF | 05-13 15:00 | 05-13 16:00 | take_profit | 1 | +1.49 | +| APT | 05-13 15:00 | 05-13 18:00 | take_profit | 3 | +1.49 | +| ARB | 05-13 15:00 | 05-13 18:00 | take_profit | 3 | +1.49 | +| BONK | 05-13 15:00 | 05-13 18:00 | take_profit | 3 | +1.49 | +| RENDER | 05-13 15:00 | 05-13 18:00 | take_profit | 3 | +1.49 | +| FET | 05-13 15:00 | 05-13 21:00 | trailing_stop | 6 | -0.40 | +| KAS | 05-13 15:00 | 05-13 21:00 | trailing_stop | 6 | -0.55 | +| NEAR | 05-13 19:00 | 05-13 21:00 | stop_loss | 2 | -1.49 | +| ATOM | 05-13 21:00 | 05-14 00:00 | stop_loss | 3 | -1.49 | +| INJ | 05-13 23:00 | 05-14 00:00 | stop_loss | 1 | -1.49 | +| APT | 05-14 00:00 | 05-14 02:00 | stop_loss | 2 | -1.49 | +| BONK | 05-14 00:00 | 05-14 02:00 | stop_loss | 2 | -1.49 | +| SEI | 05-13 15:00 | 05-14 02:00 | trailing_stop | 11 | +0.02 | +| AVAX | 05-13 15:00 | 05-14 03:00 | trailing_stop | 12 | -0.06 | +| ETC | 05-13 15:00 | 05-14 03:00 | trailing_stop | 12 | -0.19 | +| FIL | 05-14 00:00 | 05-14 03:00 | stop_loss | 3 | -1.49 | +| RENDER | 05-13 22:00 | 05-14 03:00 | stop_loss | 5 | -1.49 | +| SHIB | 05-13 15:00 | 05-14 03:00 | trailing_stop | 12 | +0.05 | +| UNI | 05-13 15:00 | 05-14 03:00 | trailing_stop | 12 | -0.19 | +| TIA | 05-14 07:00 | 05-14 09:00 | stop_loss | 2 | -1.49 | +| FET | 05-14 11:00 | 05-14 12:00 | trailing_stop | 1 | -0.32 | +| LTC | 05-13 15:00 | 05-14 13:00 | take_profit | 22 | +1.49 | +| SEI | 05-14 11:00 | 05-14 14:00 | take_profit | 3 | +1.49 | +| SUI | 05-15 03:00 | 05-15 04:00 | stop_loss | 1 | -1.49 | +| APT | 05-15 04:00 | 05-15 05:00 | stop_loss | 1 | -1.49 | +| ARB | 05-15 04:00 | 05-15 05:00 | stop_loss | 1 | -1.49 | +| ATOM | 05-15 04:00 | 05-15 05:00 | stop_loss | 1 | -1.49 | +| AVAX | 05-15 04:00 | 05-15 05:00 | stop_loss | 1 | -1.49 | +| FET | 05-15 04:00 | 05-15 05:00 | stop_loss | 1 | -1.49 | +| FIL | 05-15 04:00 | 05-15 05:00 | stop_loss | 1 | -1.49 | +| NEAR | 05-15 04:00 | 05-15 05:00 | stop_loss | 1 | -1.49 | +| OP | 05-15 04:00 | 05-15 05:00 | stop_loss | 1 | -1.49 | +| SUI | 05-15 04:00 | 05-15 05:00 | stop_loss | 1 | -1.49 | +| TIA | 05-15 04:00 | 05-15 05:00 | stop_loss | 1 | -1.49 | +| TON | 05-15 04:00 | 05-15 05:00 | stop_loss | 1 | -1.49 | +| INJ | 05-15 05:00 | 05-15 06:00 | take_profit | 1 | +1.49 | +| UNI | 05-15 05:00 | 05-15 06:00 | trailing_stop | 1 | -0.21 | +| BONK | 05-15 05:00 | 05-15 07:00 | take_profit | 2 | +1.49 | +| FET | 05-15 05:00 | 05-15 07:00 | take_profit | 2 | +1.49 | +| PEPE | 05-15 05:00 | 05-15 07:00 | take_profit | 2 | +1.49 | +| TIA | 05-15 05:00 | 05-15 07:00 | take_profit | 2 | +1.49 | +| TON | 05-15 05:00 | 05-15 07:00 | take_profit | 2 | +1.49 | +| WIF | 05-15 05:00 | 05-15 07:00 | take_profit | 2 | +1.49 | +| SUI | 05-15 05:00 | 05-15 08:00 | stop_loss | 3 | -1.49 | +| KAS | 05-15 05:00 | 05-15 09:00 | stop_loss | 4 | -1.49 | +| OP | 05-15 05:00 | 05-15 10:00 | take_profit | 5 | +1.49 | +| RENDER | 05-15 05:00 | 05-15 11:00 | take_profit | 6 | +1.49 | +| ARB | 05-15 05:00 | 05-15 12:00 | trailing_stop | 7 | -0.15 | +| APT | 05-15 05:00 | 05-15 13:00 | stop_loss | 8 | -1.49 | +| ATOM | 05-15 05:00 | 05-15 13:00 | stop_loss | 8 | -1.49 | +| AVAX | 05-15 05:00 | 05-15 13:00 | stop_loss | 8 | -1.49 | +| ETC | 05-15 08:00 | 05-15 13:00 | stop_loss | 5 | -1.49 | +| FIL | 05-15 05:00 | 05-15 13:00 | stop_loss | 8 | -1.49 | +| KAS | 05-15 09:00 | 05-15 13:00 | stop_loss | 4 | -1.49 | +| OP | 05-15 12:00 | 05-15 13:00 | stop_loss | 1 | -1.49 | +| SEI | 05-15 05:00 | 05-15 13:00 | stop_loss | 8 | -1.49 | +| SHIB | 05-15 05:00 | 05-15 13:00 | stop_loss | 8 | -1.49 | +| TON | 05-15 12:00 | 05-15 13:00 | stop_loss | 1 | -1.49 | +| TRX | 05-10 04:00 | 05-15 13:00 | trailing_stop | 129 | -0.40 | +| KAS | 05-15 13:00 | 05-15 14:00 | trailing_stop | 1 | -0.49 | +| SUI | 05-15 13:00 | 05-15 15:00 | stop_loss | 2 | -1.49 | +| TON | 05-15 13:00 | 05-15 15:00 | stop_loss | 2 | -1.49 | +| UNI | 05-15 13:00 | 05-15 15:00 | take_profit | 2 | +1.49 | +| APT | 05-15 13:00 | 05-15 16:00 | take_profit | 3 | +1.49 | +| ARB | 05-15 13:00 | 05-15 16:00 | trailing_stop | 3 | -0.02 | +| BONK | 05-15 13:00 | 05-15 16:00 | take_profit | 3 | +1.49 | +| NEAR | 05-15 13:00 | 05-15 16:00 | take_profit | 3 | +1.49 | +| OP | 05-15 13:00 | 05-15 16:00 | trailing_stop | 3 | -0.31 | +| PEPE | 05-15 13:00 | 05-15 16:00 | take_profit | 3 | +1.49 | +| RENDER | 05-15 13:00 | 05-15 16:00 | take_profit | 3 | +1.49 | +| TIA | 05-15 13:00 | 05-15 16:00 | take_profit | 3 | +1.49 | +| WIF | 05-15 13:00 | 05-15 16:00 | take_profit | 3 | +1.49 | +| ETC | 05-15 13:00 | 05-15 17:00 | take_profit | 4 | +1.49 | +| FIL | 05-15 13:00 | 05-15 17:00 | take_profit | 4 | +1.49 | +| INJ | 05-15 13:00 | 05-15 17:00 | take_profit | 4 | +1.49 | +| FET | 05-15 13:00 | 05-15 18:00 | take_profit | 5 | +1.49 | +| ATOM | 05-15 13:00 | 05-15 21:00 | stop_loss | 8 | -1.49 | +| TON | 05-15 15:00 | 05-15 21:00 | stop_loss | 6 | -1.49 | +| LTC | 05-15 13:00 | 05-16 01:00 | take_profit | 12 | +1.49 | +| AVAX | 05-15 13:00 | 05-16 04:00 | trailing_stop | 15 | -0.34 | +| OP | 05-15 22:00 | 05-16 04:00 | stop_loss | 6 | -1.49 | +| PEPE | 05-16 00:00 | 05-16 04:00 | stop_loss | 4 | -1.49 | +| SEI | 05-15 13:00 | 05-16 04:00 | stop_loss | 15 | -1.49 | +| SHIB | 05-15 13:00 | 05-16 04:00 | trailing_stop | 15 | -0.24 | +| TON | 05-16 02:00 | 05-16 04:00 | stop_loss | 2 | -1.49 | +| WIF | 05-15 20:00 | 05-16 04:00 | stop_loss | 8 | -1.49 | +| APT | 05-16 06:00 | 05-16 07:00 | stop_loss | 1 | -1.49 | +| ARB | 05-16 06:00 | 05-16 07:00 | stop_loss | 1 | -1.49 | +| FET | 05-16 06:00 | 05-16 07:00 | stop_loss | 1 | -1.49 | +| LTC | 05-16 06:00 | 05-16 07:00 | stop_loss | 1 | -1.49 | +| NEAR | 05-16 06:00 | 05-16 07:00 | stop_loss | 1 | -1.49 | +| SUI | 05-16 06:00 | 05-16 07:00 | stop_loss | 1 | -1.49 | +| TON | 05-16 06:00 | 05-16 07:00 | stop_loss | 1 | -1.49 | +| UNI | 05-16 06:00 | 05-16 07:00 | stop_loss | 1 | -1.49 | +| WIF | 05-16 06:00 | 05-16 07:00 | stop_loss | 1 | -1.49 | +| APT | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| ARB | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| AVAX | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| BONK | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| FET | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| FIL | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| INJ | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| KAS | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| NEAR | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| OP | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| PEPE | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| SEI | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| SHIB | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| SUI | 05-16 08:00 | 05-16 09:00 | stop_loss | 1 | -1.49 | +| TIA | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| WIF | 05-16 07:00 | 05-16 09:00 | stop_loss | 2 | -1.49 | +| ETC | 05-16 07:00 | 05-16 10:00 | stop_loss | 3 | -1.49 | +| KAS | 05-16 09:00 | 05-16 10:00 | stop_loss | 1 | -1.49 | +| PEPE | 05-16 09:00 | 05-16 10:00 | stop_loss | 1 | -1.49 | +| SHIB | 05-16 09:00 | 05-16 10:00 | stop_loss | 1 | -1.49 | +| SUI | 05-16 09:00 | 05-16 10:00 | stop_loss | 1 | -1.49 | +| WIF | 05-16 09:00 | 05-16 10:00 | stop_loss | 1 | -1.49 | +| WIF | 05-16 10:00 | 05-16 11:00 | trailing_stop | 1 | -0.69 | +| INJ | 05-16 09:00 | 05-16 12:00 | trailing_stop | 3 | -0.19 | +| ARB | 05-16 09:00 | 05-16 15:00 | take_profit | 6 | +1.49 | +| ETC | 05-16 10:00 | 05-16 15:00 | take_profit | 5 | +1.49 | +| SEI | 05-16 09:00 | 05-16 15:00 | take_profit | 6 | +1.49 | +| SUI | 05-16 10:00 | 05-16 15:00 | take_profit | 5 | +1.49 | +| FIL | 05-16 09:00 | 05-16 16:00 | take_profit | 7 | +1.49 | +| INJ | 05-16 15:00 | 05-16 16:00 | trailing_stop | 1 | +0.15 | +| OP | 05-16 09:00 | 05-16 16:00 | take_profit | 7 | +1.49 | +| TON | 05-16 14:00 | 05-16 16:00 | take_profit | 2 | +1.49 | +| APT | 05-16 09:00 | 05-16 22:00 | trailing_stop | 13 | -0.66 | +| FET | 05-16 09:00 | 05-16 22:00 | trailing_stop | 13 | -0.23 | +| OP | 05-16 16:00 | 05-16 22:00 | stop_loss | 6 | -1.49 | +| FIL | 05-16 16:00 | 05-16 23:00 | confirmed_bearish_exit | 7 | -0.81 | +| TIA | 05-16 09:00 | 05-16 23:00 | stop_loss | 14 | -1.49 | +| ARB | 05-16 15:00 | 05-17 00:00 | stop_loss | 9 | -1.49 | +| AVAX | 05-16 09:00 | 05-17 00:00 | trailing_stop | 15 | -0.63 | +| BONK | 05-16 09:00 | 05-17 00:00 | trailing_stop | 15 | -0.43 | +| ETC | 05-16 15:00 | 05-17 00:00 | trailing_stop | 9 | -0.60 | +| KAS | 05-16 15:00 | 05-17 00:00 | stop_loss | 9 | -1.49 | +| PEPE | 05-16 10:00 | 05-17 00:00 | trailing_stop | 14 | -0.11 | +| RENDER | 05-16 14:00 | 05-17 00:00 | stop_loss | 10 | -1.49 | +| SHIB | 05-16 10:00 | 05-17 00:00 | stop_loss | 14 | -1.49 | +| WIF | 05-16 15:00 | 05-17 00:00 | stop_loss | 9 | -1.49 | +| NEAR | 05-16 18:00 | 05-17 01:00 | stop_loss | 7 | -1.49 | +| SUI | 05-16 16:00 | 05-17 01:00 | stop_loss | 9 | -1.49 | +| UNI | 05-16 09:00 | 05-17 01:00 | stop_loss | 16 | -1.49 | +| APT | 05-17 01:00 | 05-17 05:00 | take_profit | 4 | +1.49 | +| WIF | 05-17 01:00 | 05-17 05:00 | take_profit | 4 | +1.49 | +| OP | 05-17 07:00 | 05-17 13:00 | stop_loss | 6 | -1.49 | +| TRX | 05-15 13:00 | 05-17 14:00 | take_profit | 49 | +1.49 | +| SHIB | 05-17 01:00 | 05-17 17:00 | trailing_stop | 16 | -0.50 | +| INJ | 05-17 18:00 | 05-17 22:00 | stop_loss | 4 | -1.49 | +| SEI | 05-17 19:00 | 05-17 22:00 | stop_loss | 3 | -1.49 | +| TIA | 05-17 17:00 | 05-17 22:00 | trailing_stop | 5 | -0.37 | +| ATOM | 05-17 22:00 | 05-17 23:00 | stop_loss | 1 | -1.49 | +| BONK | 05-17 22:00 | 05-17 23:00 | stop_loss | 1 | -1.49 | +| ETC | 05-17 22:00 | 05-17 23:00 | stop_loss | 1 | -1.49 | +| LTC | 05-16 07:00 | 05-17 23:00 | stop_loss | 40 | -1.49 | +| SEI | 05-17 22:00 | 05-17 23:00 | stop_loss | 1 | -1.49 | +| TIA | 05-17 22:00 | 05-17 23:00 | stop_loss | 1 | -1.49 | +| ARB | 05-17 23:00 | 05-18 00:00 | stop_loss | 1 | -1.49 | +| ATOM | 05-17 23:00 | 05-18 00:00 | stop_loss | 1 | -1.49 | +| KAS | 05-17 23:00 | 05-18 00:00 | stop_loss | 1 | -1.49 | +| NEAR | 05-17 23:00 | 05-18 00:00 | stop_loss | 1 | -1.49 | +| OP | 05-17 23:00 | 05-18 00:00 | stop_loss | 1 | -1.49 | +| PEPE | 05-17 23:00 | 05-18 00:00 | stop_loss | 1 | -1.49 | +| RENDER | 05-17 23:00 | 05-18 00:00 | stop_loss | 1 | -1.49 | +| SEI | 05-17 23:00 | 05-18 00:00 | stop_loss | 1 | -1.49 | +| SUI | 05-17 23:00 | 05-18 00:00 | stop_loss | 1 | -1.49 | +| TIA | 05-17 23:00 | 05-18 00:00 | stop_loss | 1 | -1.49 | +| WIF | 05-17 23:00 | 05-18 00:00 | stop_loss | 1 | -1.49 | +| BONK | 05-17 23:00 | 05-18 01:00 | stop_loss | 2 | -1.49 | +| FET | 05-17 23:00 | 05-18 01:00 | stop_loss | 2 | -1.49 | +| INJ | 05-17 23:00 | 05-18 01:00 | trailing_stop | 2 | -0.18 | +| LTC | 05-17 23:00 | 05-18 01:00 | stop_loss | 2 | -1.49 | +| NEAR | 05-18 00:00 | 05-18 01:00 | stop_loss | 1 | -1.49 | +| PEPE | 05-18 00:00 | 05-18 01:00 | stop_loss | 1 | -1.49 | +| RENDER | 05-18 00:00 | 05-18 01:00 | stop_loss | 1 | -1.49 | +| UNI | 05-17 23:00 | 05-18 01:00 | stop_loss | 2 | -1.49 | +| WIF | 05-18 00:00 | 05-18 01:00 | stop_loss | 1 | -1.49 | +| ATOM | 05-18 00:00 | 05-18 04:00 | take_profit | 4 | +1.49 | +| FET | 05-18 01:00 | 05-18 05:00 | trailing_stop | 4 | -0.65 | +| SEI | 05-18 00:00 | 05-18 05:00 | stop_loss | 5 | -1.49 | +| AVAX | 05-17 23:00 | 05-18 06:00 | stop_loss | 7 | -1.49 | +| BONK | 05-18 01:00 | 05-18 06:00 | stop_loss | 5 | -1.49 | +| LTC | 05-18 01:00 | 05-18 06:00 | stop_loss | 5 | -1.49 | +| OP | 05-18 00:00 | 05-18 06:00 | stop_loss | 6 | -1.49 | +| PEPE | 05-18 01:00 | 05-18 06:00 | stop_loss | 5 | -1.49 | +| RENDER | 05-18 01:00 | 05-18 06:00 | stop_loss | 5 | -1.49 | +| SHIB | 05-17 23:00 | 05-18 06:00 | stop_loss | 7 | -1.49 | +| SUI | 05-18 00:00 | 05-18 06:00 | stop_loss | 6 | -1.49 | +| UNI | 05-18 01:00 | 05-18 06:00 | stop_loss | 5 | -1.49 | +| WIF | 05-18 01:00 | 05-18 06:00 | stop_loss | 5 | -1.49 | +| ETC | 05-17 23:00 | 05-18 07:00 | stop_loss | 8 | -1.49 | +| FIL | 05-17 23:00 | 05-18 07:00 | stop_loss | 8 | -1.49 | +| ARB | 05-18 00:00 | 05-18 10:00 | stop_loss | 10 | -1.49 | +| NEAR | 05-18 07:00 | 05-18 10:00 | take_profit | 3 | +1.49 | +| ETC | 05-18 10:00 | 05-18 14:00 | trailing_stop | 4 | -0.22 | +| LTC | 05-18 13:00 | 05-18 15:00 | stop_loss | 2 | -1.49 | +| RENDER | 05-18 14:00 | 05-18 17:00 | take_profit | 3 | +1.49 | +| SEI | 05-18 14:00 | 05-18 18:00 | trailing_stop | 4 | -0.56 | +| ATOM | 05-18 18:00 | 05-18 19:00 | trailing_stop | 1 | -0.52 | +| AVAX | 05-18 18:00 | 05-18 19:00 | trailing_stop | 1 | +0.05 | +| BONK | 05-18 14:00 | 05-18 19:00 | take_profit | 5 | +1.49 | +| PEPE | 05-18 18:00 | 05-18 19:00 | take_profit | 1 | +1.49 | +| KAS | 05-19 13:00 | 05-19 14:00 | stop_loss | 1 | -1.49 | +| OP | 05-19 11:00 | 05-19 14:00 | stop_loss | 3 | -1.49 | +| UNI | 05-19 13:00 | 05-19 14:00 | stop_loss | 1 | -1.49 | +| ATOM | 05-19 14:00 | 05-19 16:00 | take_profit | 2 | +1.49 | +| BONK | 05-19 14:00 | 05-19 16:00 | trailing_stop | 2 | -0.53 | +| ETC | 05-19 14:00 | 05-19 16:00 | trailing_stop | 2 | -0.13 | +| FET | 05-19 14:00 | 05-19 16:00 | trailing_stop | 2 | -0.29 | +| INJ | 05-19 14:00 | 05-19 16:00 | take_profit | 2 | +1.49 | +| WIF | 05-19 14:00 | 05-19 16:00 | trailing_stop | 2 | -0.65 | +| KAS | 05-19 14:00 | 05-19 19:00 | trailing_stop | 5 | -0.16 | +| ARB | 05-19 11:00 | 05-19 22:00 | stop_loss | 11 | -1.49 | +| FIL | 05-19 14:00 | 05-19 22:00 | stop_loss | 8 | -1.49 | +| OP | 05-19 14:00 | 05-19 22:00 | stop_loss | 8 | -1.49 | +| LTC | 05-19 11:00 | 05-20 00:00 | trailing_stop | 13 | -0.69 | +| SEI | 05-19 14:00 | 05-20 00:00 | stop_loss | 10 | -1.49 | +| ARB | 05-19 22:00 | 05-20 03:00 | stop_loss | 5 | -1.49 | +| SUI | 05-20 00:00 | 05-20 05:00 | trailing_stop | 5 | -0.12 | +| UNI | 05-19 14:00 | 05-20 06:00 | take_profit | 16 | +1.49 | +| FET | 05-19 22:00 | 05-20 11:00 | trailing_stop | 13 | -0.44 | +| ATOM | 05-20 00:00 | 05-20 13:00 | stop_loss | 13 | -1.49 | +| PEPE | 05-19 14:00 | 05-20 13:00 | trailing_stop | 23 | -0.08 | +| AVAX | 05-19 11:00 | 05-20 14:00 | take_profit | 27 | +1.49 | +| SHIB | 05-19 14:00 | 05-20 14:00 | trailing_stop | 24 | -0.32 | +| ARB | 05-20 21:00 | 05-20 23:00 | stop_loss | 2 | -1.49 | +| INJ | 05-20 22:00 | 05-20 23:00 | stop_loss | 1 | -1.49 | +| ARB | 05-20 23:00 | 05-21 00:00 | trailing_stop | 1 | -0.09 | +| ATOM | 05-20 22:00 | 05-21 00:00 | trailing_stop | 2 | -0.21 | +| INJ | 05-20 23:00 | 05-21 03:00 | take_profit | 4 | +1.49 | +| TRX | 05-18 01:00 | 05-21 10:00 | take_profit | 81 | +1.49 | +| ARB | 05-21 10:00 | 05-21 13:00 | trailing_stop | 3 | -0.43 | +| KAS | 05-21 10:00 | 05-21 13:00 | stop_loss | 3 | -1.49 | +| TIA | 05-21 10:00 | 05-21 13:00 | take_profit | 3 | +1.49 | +| TON | 05-21 10:00 | 05-21 13:00 | trailing_stop | 3 | +0.18 | +| UNI | 05-21 11:00 | 05-21 16:00 | stop_loss | 5 | -1.49 | +| ATOM | 05-21 15:00 | 05-21 17:00 | trailing_stop | 2 | -0.17 | +| ETC | 05-21 10:00 | 05-21 17:00 | trailing_stop | 7 | -0.59 | +| KAS | 05-21 13:00 | 05-21 17:00 | take_profit | 4 | +1.49 | +| WIF | 05-21 10:00 | 05-21 17:00 | take_profit | 7 | +1.49 | +| LTC | 05-21 10:00 | 05-22 04:00 | take_profit | 18 | +1.49 | +| TON | 05-22 09:00 | 05-22 13:00 | trailing_stop | 4 | -0.25 | +| TRX | 05-22 12:00 | 05-22 13:00 | stop_loss | 1 | -1.49 | +| PEPE | 05-22 09:00 | 05-22 14:00 | stop_loss | 5 | -1.49 | +| LTC | 05-22 14:00 | 05-22 18:00 | stop_loss | 4 | -1.49 | +| PEPE | 05-22 14:00 | 05-22 18:00 | stop_loss | 4 | -1.49 | +| APT | 05-22 18:00 | 05-22 19:00 | stop_loss | 1 | -1.49 | +| ARB | 05-22 18:00 | 05-22 19:00 | stop_loss | 1 | -1.49 | +| AVAX | 05-22 18:00 | 05-22 19:00 | stop_loss | 1 | -1.49 | +| BONK | 05-22 18:00 | 05-22 19:00 | stop_loss | 1 | -1.49 | +| FIL | 05-22 18:00 | 05-22 19:00 | stop_loss | 1 | -1.49 | +| OP | 05-22 18:00 | 05-22 19:00 | stop_loss | 1 | -1.49 | +| PEPE | 05-22 18:00 | 05-22 19:00 | stop_loss | 1 | -1.49 | +| SEI | 05-22 18:00 | 05-22 19:00 | stop_loss | 1 | -1.49 | +| SHIB | 05-22 18:00 | 05-22 19:00 | stop_loss | 1 | -1.49 | +| TON | 05-22 18:00 | 05-22 19:00 | stop_loss | 1 | -1.49 | +| WIF | 05-22 18:00 | 05-22 19:00 | stop_loss | 1 | -1.49 | +| NEAR | 05-22 21:00 | 05-22 22:00 | stop_loss | 1 | -1.49 | +| TON | 05-22 19:00 | 05-22 22:00 | stop_loss | 3 | -1.49 | +| APT | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| AVAX | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| BONK | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| ETC | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| FET | 05-22 21:00 | 05-22 23:00 | stop_loss | 2 | -1.49 | +| FIL | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| KAS | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| LTC | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| OP | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| PEPE | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| RENDER | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| SEI | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| SHIB | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| SUI | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| UNI | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| WIF | 05-22 19:00 | 05-22 23:00 | stop_loss | 4 | -1.49 | +| FET | 05-22 23:00 | 05-23 00:00 | stop_loss | 1 | -1.49 | +| NEAR | 05-22 22:00 | 05-23 00:00 | trailing_stop | 2 | -0.51 | +| OP | 05-22 23:00 | 05-23 00:00 | stop_loss | 1 | -1.49 | +| TIA | 05-22 23:00 | 05-23 00:00 | stop_loss | 1 | -1.49 | +| TON | 05-22 23:00 | 05-23 00:00 | trailing_stop | 1 | -0.52 | +| UNI | 05-22 23:00 | 05-23 00:00 | stop_loss | 1 | -1.49 | +| WIF | 05-22 23:00 | 05-23 00:00 | stop_loss | 1 | -1.49 | +| ATOM | 05-22 19:00 | 05-23 01:00 | take_profit | 6 | +1.49 | +| BONK | 05-22 23:00 | 05-23 02:00 | confirmed_bearish_exit | 3 | +0.00 | +| INJ | 05-23 04:00 | 05-23 05:00 | stop_loss | 1 | -1.49 | +| PEPE | 05-22 23:00 | 05-23 05:00 | stop_loss | 6 | -1.49 | +| ARB | 05-22 19:00 | 05-23 06:00 | stop_loss | 11 | -1.49 | +| FET | 05-23 05:00 | 05-23 06:00 | stop_loss | 1 | -1.49 | +| SEI | 05-22 23:00 | 05-23 06:00 | stop_loss | 7 | -1.49 | +| APT | 05-22 23:00 | 05-23 07:00 | stop_loss | 8 | -1.49 | +| ATOM | 05-23 05:00 | 05-23 07:00 | stop_loss | 2 | -1.49 | +| AVAX | 05-22 23:00 | 05-23 07:00 | stop_loss | 8 | -1.49 | +| ETC | 05-23 03:00 | 05-23 07:00 | stop_loss | 4 | -1.49 | +| FIL | 05-22 23:00 | 05-23 07:00 | stop_loss | 8 | -1.49 | +| INJ | 05-23 05:00 | 05-23 07:00 | stop_loss | 2 | -1.49 | +| KAS | 05-23 03:00 | 05-23 07:00 | stop_loss | 4 | -1.49 | +| LTC | 05-22 23:00 | 05-23 07:00 | stop_loss | 8 | -1.49 | +| SHIB | 05-22 23:00 | 05-23 07:00 | stop_loss | 8 | -1.49 | +| UNI | 05-23 00:00 | 05-23 07:00 | stop_loss | 7 | -1.49 | +| INJ | 05-23 07:00 | 05-23 08:00 | trailing_stop | 1 | -0.10 | +| WIF | 05-23 07:00 | 05-23 08:00 | stop_loss | 1 | -1.49 | +| KAS | 05-23 07:00 | 05-23 09:00 | stop_loss | 2 | -1.49 | +| ATOM | 05-23 07:00 | 05-23 12:00 | stop_loss | 5 | -1.49 | +| BONK | 05-23 07:00 | 05-23 13:00 | take_profit | 6 | +1.49 | +| FIL | 05-23 07:00 | 05-23 13:00 | take_profit | 6 | +1.49 | +| INJ | 05-23 12:00 | 05-23 13:00 | take_profit | 1 | +1.49 | +| KAS | 05-23 09:00 | 05-23 13:00 | trailing_stop | 4 | -0.43 | +| PEPE | 05-23 07:00 | 05-23 13:00 | trailing_stop | 6 | -0.57 | +| SUI | 05-23 07:00 | 05-23 13:00 | take_profit | 6 | +1.49 | +| ARB | 05-23 07:00 | 05-23 14:00 | take_profit | 7 | +1.49 | +| AVAX | 05-23 07:00 | 05-23 14:00 | take_profit | 7 | +1.49 | +| SHIB | 05-23 07:00 | 05-23 15:00 | take_profit | 8 | +1.49 | +| LTC | 05-23 07:00 | 05-23 18:00 | take_profit | 11 | +1.49 | +| TON | 05-23 16:00 | 05-23 18:00 | take_profit | 2 | +1.49 | +| ATOM | 05-23 15:00 | 05-23 20:00 | take_profit | 5 | +1.49 | +| SHIB | 05-23 16:00 | 05-23 20:00 | take_profit | 4 | +1.49 | +| TIA | 05-24 09:00 | 05-24 10:00 | stop_loss | 1 | -1.49 | +| APT | 05-24 10:00 | 05-24 12:00 | stop_loss | 2 | -1.49 | +| ARB | 05-24 10:00 | 05-24 12:00 | stop_loss | 2 | -1.49 | +| INJ | 05-24 10:00 | 05-24 12:00 | stop_loss | 2 | -1.49 | +| OP | 05-24 10:00 | 05-24 12:00 | stop_loss | 2 | -1.49 | +| SUI | 05-24 10:00 | 05-24 12:00 | stop_loss | 2 | -1.49 | +| TIA | 05-24 10:00 | 05-24 12:00 | stop_loss | 2 | -1.49 | +| TON | 05-24 10:00 | 05-24 12:00 | stop_loss | 2 | -1.49 | +| WIF | 05-24 10:00 | 05-24 12:00 | stop_loss | 2 | -1.49 | +| APT | 05-24 12:00 | 05-24 13:00 | stop_loss | 1 | -1.49 | +| ATOM | 05-24 10:00 | 05-24 13:00 | stop_loss | 3 | -1.49 | +| BONK | 05-24 10:00 | 05-24 13:00 | stop_loss | 3 | -1.49 | +| FIL | 05-24 10:00 | 05-24 13:00 | stop_loss | 3 | -1.49 | +| OP | 05-24 12:00 | 05-24 13:00 | stop_loss | 1 | -1.49 | +| PEPE | 05-24 10:00 | 05-24 13:00 | stop_loss | 3 | -1.49 | +| SEI | 05-24 10:00 | 05-24 13:00 | stop_loss | 3 | -1.49 | +| SHIB | 05-24 10:00 | 05-24 13:00 | stop_loss | 3 | -1.49 | +| UNI | 05-24 10:00 | 05-24 13:00 | stop_loss | 3 | -1.49 | +| APT | 05-24 13:00 | 05-24 14:00 | stop_loss | 1 | -1.49 | +| ARB | 05-24 12:00 | 05-24 14:00 | stop_loss | 2 | -1.49 | +| AVAX | 05-24 10:00 | 05-24 14:00 | stop_loss | 4 | -1.49 | +| BONK | 05-24 13:00 | 05-24 14:00 | stop_loss | 1 | -1.49 | +| FIL | 05-24 13:00 | 05-24 14:00 | stop_loss | 1 | -1.49 | +| KAS | 05-24 13:00 | 05-24 14:00 | stop_loss | 1 | -1.49 | +| LTC | 05-24 10:00 | 05-24 14:00 | stop_loss | 4 | -1.49 | +| PEPE | 05-24 13:00 | 05-24 14:00 | stop_loss | 1 | -1.49 | +| SHIB | 05-24 13:00 | 05-24 14:00 | stop_loss | 1 | -1.49 | +| UNI | 05-24 13:00 | 05-24 14:00 | stop_loss | 1 | -1.49 | +| WIF | 05-24 13:00 | 05-24 14:00 | stop_loss | 1 | -1.49 | +| TON | 05-24 14:00 | 05-24 17:00 | take_profit | 3 | +1.49 | +| TRX | 05-22 13:00 | 05-24 17:00 | take_profit | 52 | +1.49 | +| KAS | 05-24 14:00 | 05-24 18:00 | stop_loss | 4 | -1.49 | +| SUI | 05-24 14:00 | 05-24 20:00 | stop_loss | 6 | -1.49 | +| ATOM | 05-24 14:00 | 05-24 21:00 | stop_loss | 7 | -1.49 | +| AVAX | 05-24 14:00 | 05-24 21:00 | stop_loss | 7 | -1.49 | +| FIL | 05-24 14:00 | 05-24 21:00 | stop_loss | 7 | -1.49 | +| LTC | 05-24 14:00 | 05-24 21:00 | stop_loss | 7 | -1.49 | +| SEI | 05-24 14:00 | 05-24 21:00 | stop_loss | 7 | -1.49 | +| SHIB | 05-24 14:00 | 05-24 21:00 | stop_loss | 7 | -1.49 | +| SUI | 05-24 20:00 | 05-24 21:00 | stop_loss | 1 | -1.49 | +| UNI | 05-24 14:00 | 05-24 21:00 | stop_loss | 7 | -1.49 | +| APT | 05-24 21:00 | 05-24 22:00 | trailing_stop | 1 | -0.42 | +| ATOM | 05-24 21:00 | 05-24 22:00 | take_profit | 1 | +1.49 | +| FET | 05-24 21:00 | 05-24 22:00 | take_profit | 1 | +1.49 | +| FIL | 05-24 21:00 | 05-24 22:00 | trailing_stop | 1 | -0.44 | +| OP | 05-24 21:00 | 05-24 22:00 | trailing_stop | 1 | -0.42 | +| RENDER | 05-24 21:00 | 05-24 22:00 | take_profit | 1 | +1.49 | +| SUI | 05-24 21:00 | 05-24 22:00 | take_profit | 1 | +1.49 | +| TIA | 05-24 21:00 | 05-24 22:00 | take_profit | 1 | +1.49 | +| WIF | 05-24 21:00 | 05-24 22:00 | trailing_stop | 1 | -0.62 | +| ARB | 05-24 21:00 | 05-24 23:00 | take_profit | 2 | +1.49 | +| BONK | 05-24 21:00 | 05-24 23:00 | take_profit | 2 | +1.49 | +| PEPE | 05-24 21:00 | 05-25 00:00 | take_profit | 3 | +1.49 | +| SEI | 05-24 21:00 | 05-25 00:00 | take_profit | 3 | +1.49 | +| SHIB | 05-24 21:00 | 05-25 00:00 | take_profit | 3 | +1.49 | +| UNI | 05-24 21:00 | 05-25 00:00 | take_profit | 3 | +1.49 | +| KAS | 05-24 18:00 | 05-25 01:00 | take_profit | 7 | +1.49 | +| UNI | 05-25 00:00 | 05-25 01:00 | stop_loss | 1 | -1.49 | +| AVAX | 05-24 21:00 | 05-25 05:00 | take_profit | 8 | +1.49 | +| ETC | 05-24 21:00 | 05-25 05:00 | take_profit | 8 | +1.49 | +| NEAR | 05-25 04:00 | 05-25 05:00 | stop_loss | 1 | -1.49 | +| UNI | 05-25 01:00 | 05-25 07:00 | take_profit | 6 | +1.49 | +| PEPE | 05-25 01:00 | 05-25 10:00 | take_profit | 9 | +1.49 | +| LTC | 05-24 21:00 | 05-25 20:00 | take_profit | 23 | +1.49 | +| KAS | 05-25 01:00 | 05-25 21:00 | take_profit | 20 | +1.49 | +| BONK | 05-25 22:00 | 05-26 00:00 | stop_loss | 2 | -1.49 | +| UNI | 05-25 20:00 | 05-26 00:00 | stop_loss | 4 | -1.49 | +| BONK | 05-26 00:00 | 05-26 01:00 | stop_loss | 1 | -1.49 | +| ETC | 05-26 00:00 | 05-26 01:00 | stop_loss | 1 | -1.49 | +| SHIB | 05-25 22:00 | 05-26 01:00 | stop_loss | 3 | -1.49 | +| SEI | 05-26 00:00 | 05-26 04:00 | take_profit | 4 | +1.49 | +| OP | 05-26 03:00 | 05-26 05:00 | take_profit | 2 | +1.49 | +| SUI | 05-26 01:00 | 05-26 05:00 | take_profit | 4 | +1.49 | +| BONK | 05-26 01:00 | 05-26 07:00 | trailing_stop | 6 | -0.38 | +| TON | 05-26 06:00 | 05-26 07:00 | stop_loss | 1 | -1.49 | +| AVAX | 05-26 00:00 | 05-26 10:00 | take_profit | 10 | +1.49 | +| BONK | 05-26 07:00 | 05-26 10:00 | trailing_stop | 3 | -0.06 | +| ETC | 05-26 01:00 | 05-26 10:00 | take_profit | 9 | +1.49 | +| INJ | 05-26 07:00 | 05-26 10:00 | take_profit | 3 | +1.49 | +| PEPE | 05-26 01:00 | 05-26 10:00 | take_profit | 9 | +1.49 | +| SHIB | 05-26 01:00 | 05-26 10:00 | take_profit | 9 | +1.49 | +| SUI | 05-26 07:00 | 05-26 10:00 | take_profit | 3 | +1.49 | +| TON | 05-26 07:00 | 05-26 10:00 | take_profit | 3 | +1.49 | +| UNI | 05-26 00:00 | 05-26 10:00 | take_profit | 10 | +1.49 | +| LTC | 05-25 22:00 | 05-26 17:00 | stop_loss | 19 | -1.49 | +| NEAR | 05-26 18:00 | 05-26 19:00 | stop_loss | 1 | -1.49 | +| SUI | 05-26 19:00 | 05-27 02:00 | stop_loss | 7 | -1.49 | +| APT | 05-27 01:00 | 05-27 04:00 | stop_loss | 3 | -1.49 | +| ARB | 05-27 02:00 | 05-27 04:00 | stop_loss | 2 | -1.49 | +| AVAX | 05-27 02:00 | 05-27 04:00 | stop_loss | 2 | -1.49 | +| BONK | 05-27 02:00 | 05-27 04:00 | stop_loss | 2 | -1.49 | +| ETC | 05-26 17:00 | 05-27 04:00 | stop_loss | 11 | -1.49 | +| INJ | 05-27 03:00 | 05-27 04:00 | stop_loss | 1 | -1.49 | +| KAS | 05-26 18:00 | 05-27 04:00 | stop_loss | 10 | -1.49 | +| OP | 05-26 23:00 | 05-27 04:00 | stop_loss | 5 | -1.49 | +| PEPE | 05-27 01:00 | 05-27 04:00 | stop_loss | 3 | -1.49 | +| SHIB | 05-27 00:00 | 05-27 04:00 | stop_loss | 4 | -1.49 | +| SUI | 05-27 02:00 | 05-27 04:00 | stop_loss | 2 | -1.49 | +| UNI | 05-27 01:00 | 05-27 04:00 | stop_loss | 3 | -1.49 | +| WIF | 05-27 03:00 | 05-27 04:00 | stop_loss | 1 | -1.49 | +| RENDER | 05-27 07:00 | 05-27 09:00 | trailing_stop | 2 | -0.66 | +| SUI | 05-27 06:00 | 05-27 09:00 | stop_loss | 3 | -1.49 | +| UNI | 05-27 04:00 | 05-27 09:00 | trailing_stop | 5 | -0.70 | +| TIA | 05-27 11:00 | 05-27 12:00 | take_profit | 1 | +1.49 | +| RENDER | 05-27 14:00 | 05-27 16:00 | stop_loss | 2 | -1.49 | +| TON | 05-27 15:00 | 05-27 16:00 | stop_loss | 1 | -1.49 | +| TRX | 05-27 12:00 | 05-27 18:00 | stop_loss | 6 | -1.49 | +| ATOM | 05-27 16:00 | 05-27 21:00 | stop_loss | 5 | -1.49 | +| BONK | 05-27 17:00 | 05-27 21:00 | stop_loss | 4 | -1.49 | +| SEI | 05-27 20:00 | 05-27 21:00 | stop_loss | 1 | -1.49 | +| SUI | 05-27 17:00 | 05-27 21:00 | stop_loss | 4 | -1.49 | +| TON | 05-27 16:00 | 05-27 21:00 | stop_loss | 5 | -1.49 | +| SEI | 05-27 21:00 | 05-27 22:00 | stop_loss | 1 | -1.49 | +| TIA | 05-27 21:00 | 05-27 22:00 | stop_loss | 1 | -1.49 | +| UNI | 05-27 21:00 | 05-27 23:00 | stop_loss | 2 | -1.49 | +| SEI | 05-27 22:00 | 05-28 00:00 | trailing_stop | 2 | +0.11 | +| ARB | 05-27 21:00 | 05-28 01:00 | stop_loss | 4 | -1.49 | +| BONK | 05-27 21:00 | 05-28 01:00 | stop_loss | 4 | -1.49 | +| ETC | 05-27 21:00 | 05-28 01:00 | stop_loss | 4 | -1.49 | +| LTC | 05-27 00:00 | 05-28 01:00 | stop_loss | 25 | -1.49 | +| SUI | 05-27 21:00 | 05-28 01:00 | stop_loss | 4 | -1.49 | +| TIA | 05-27 22:00 | 05-28 01:00 | stop_loss | 3 | -1.49 | +| TON | 05-27 22:00 | 05-28 01:00 | stop_loss | 3 | -1.49 | +| UNI | 05-27 23:00 | 05-28 01:00 | stop_loss | 2 | -1.49 | +| WIF | 05-27 21:00 | 05-28 01:00 | stop_loss | 4 | -1.49 | +| ATOM | 05-27 21:00 | 05-28 03:00 | stop_loss | 6 | -1.49 | +| AVAX | 05-27 21:00 | 05-28 03:00 | stop_loss | 6 | -1.49 | +| BONK | 05-28 01:00 | 05-28 03:00 | stop_loss | 2 | -1.49 | +| ETC | 05-28 01:00 | 05-28 03:00 | stop_loss | 2 | -1.49 | +| FET | 05-28 02:00 | 05-28 03:00 | stop_loss | 1 | -1.49 | +| INJ | 05-27 21:00 | 05-28 03:00 | stop_loss | 6 | -1.49 | +| KAS | 05-27 21:00 | 05-28 03:00 | stop_loss | 6 | -1.49 | +| PEPE | 05-27 21:00 | 05-28 03:00 | stop_loss | 6 | -1.49 | +| RENDER | 05-28 02:00 | 05-28 03:00 | stop_loss | 1 | -1.49 | +| SHIB | 05-27 21:00 | 05-28 03:00 | stop_loss | 6 | -1.49 | +| TON | 05-28 01:00 | 05-28 03:00 | stop_loss | 2 | -1.49 | +| UNI | 05-28 01:00 | 05-28 03:00 | stop_loss | 2 | -1.49 | +| WIF | 05-28 01:00 | 05-28 03:00 | stop_loss | 2 | -1.49 | +| APT | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| ARB | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| AVAX | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| BONK | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| ETC | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| FET | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| FIL | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| KAS | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| NEAR | 05-28 03:00 | 05-28 04:00 | take_profit | 1 | +1.49 | +| OP | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| PEPE | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| SHIB | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| SUI | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| TIA | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| WIF | 05-28 03:00 | 05-28 04:00 | stop_loss | 1 | -1.49 | +| APT | 05-28 04:00 | 05-28 05:00 | stop_loss | 1 | -1.49 | +| ARB | 05-28 04:00 | 05-28 05:00 | stop_loss | 1 | -1.49 | +| AVAX | 05-28 04:00 | 05-28 05:00 | stop_loss | 1 | -1.49 | +| BONK | 05-28 04:00 | 05-28 05:00 | stop_loss | 1 | -1.49 | +| FET | 05-28 04:00 | 05-28 05:00 | stop_loss | 1 | -1.49 | +| FIL | 05-28 04:00 | 05-28 05:00 | stop_loss | 1 | -1.49 | +| KAS | 05-28 04:00 | 05-28 05:00 | stop_loss | 1 | -1.49 | +| LTC | 05-28 03:00 | 05-28 05:00 | stop_loss | 2 | -1.49 | +| OP | 05-28 04:00 | 05-28 05:00 | stop_loss | 1 | -1.49 | +| PEPE | 05-28 04:00 | 05-28 05:00 | stop_loss | 1 | -1.49 | +| RENDER | 05-28 03:00 | 05-28 05:00 | stop_loss | 2 | -1.49 | +| SUI | 05-28 04:00 | 05-28 05:00 | stop_loss | 1 | -1.49 | +| TIA | 05-28 04:00 | 05-28 05:00 | stop_loss | 1 | -1.49 | +| WIF | 05-28 04:00 | 05-28 05:00 | stop_loss | 1 | -1.49 | +| ARB | 05-28 05:00 | 05-28 06:00 | stop_loss | 1 | -1.49 | +| FET | 05-28 05:00 | 05-28 06:00 | stop_loss | 1 | -1.49 | +| FIL | 05-28 05:00 | 05-28 06:00 | stop_loss | 1 | -1.49 | +| ARB | 05-28 06:00 | 05-28 07:00 | trailing_stop | 1 | -0.54 | +| SUI | 05-28 05:00 | 05-28 07:00 | trailing_stop | 2 | -0.33 | +| TON | 05-28 03:00 | 05-28 07:00 | trailing_stop | 4 | -0.37 | +| APT | 05-28 05:00 | 05-28 09:00 | take_profit | 4 | +1.49 | +| TRX | 05-28 06:00 | 05-28 09:00 | stop_loss | 3 | -1.49 | +| UNI | 05-28 03:00 | 05-28 09:00 | stop_loss | 6 | -1.49 | +| BONK | 05-28 05:00 | 05-28 10:00 | stop_loss | 5 | -1.49 | +| ETC | 05-28 04:00 | 05-28 10:00 | stop_loss | 6 | -1.49 | +| FIL | 05-28 06:00 | 05-28 10:00 | stop_loss | 4 | -1.49 | +| PEPE | 05-28 05:00 | 05-28 10:00 | trailing_stop | 5 | -0.51 | +| TON | 05-28 09:00 | 05-28 10:00 | stop_loss | 1 | -1.49 | +| TRX | 05-28 09:00 | 05-28 10:00 | stop_loss | 1 | -1.49 | +| WIF | 05-28 05:00 | 05-28 10:00 | trailing_stop | 5 | -0.58 | +| INJ | 05-28 09:00 | 05-28 11:00 | stop_loss | 2 | -1.49 | +| KAS | 05-28 05:00 | 05-28 11:00 | trailing_stop | 6 | -0.42 | +| OP | 05-28 05:00 | 05-28 11:00 | trailing_stop | 6 | -0.34 | +| TON | 05-28 10:00 | 05-28 11:00 | stop_loss | 1 | -1.49 | +| AVAX | 05-28 05:00 | 05-28 14:00 | trailing_stop | 9 | -0.61 | +| SUI | 05-28 14:00 | 05-28 15:00 | stop_loss | 1 | -1.49 | +| APT | 05-28 14:00 | 05-28 16:00 | take_profit | 2 | +1.49 | +| AVAX | 05-28 15:00 | 05-28 16:00 | trailing_stop | 1 | -0.47 | +| LTC | 05-28 05:00 | 05-28 16:00 | take_profit | 11 | +1.49 | +| SHIB | 05-28 04:00 | 05-28 16:00 | trailing_stop | 12 | -0.39 | +| ETC | 05-28 16:00 | 05-28 20:00 | trailing_stop | 4 | -0.14 | +| ATOM | 05-28 10:00 | 05-28 21:00 | take_profit | 11 | +1.49 | +| SEI | 05-29 02:00 | 05-29 06:00 | take_profit | 4 | +1.49 | +| TON | 05-28 22:00 | 05-29 06:00 | trailing_stop | 8 | +0.15 | +| TRX | 05-28 10:00 | 05-29 07:00 | trailing_stop | 21 | -0.54 | +| TRX | 05-29 07:00 | 05-29 08:00 | stop_loss | 1 | -1.49 | +| OP | 05-29 08:00 | 05-29 11:00 | stop_loss | 3 | -1.49 | +| SEI | 05-29 10:00 | 05-29 11:00 | stop_loss | 1 | -1.49 | +| APT | 05-29 11:00 | 05-29 12:00 | stop_loss | 1 | -1.49 | +| ETC | 05-29 08:00 | 05-29 12:00 | stop_loss | 4 | -1.49 | +| FIL | 05-29 11:00 | 05-29 12:00 | stop_loss | 1 | -1.49 | +| SEI | 05-29 11:00 | 05-29 12:00 | stop_loss | 1 | -1.49 | +| TON | 05-29 11:00 | 05-29 12:00 | stop_loss | 1 | -1.49 | +| UNI | 05-29 08:00 | 05-29 12:00 | stop_loss | 4 | -1.49 | +| FIL | 05-29 12:00 | 05-29 13:00 | stop_loss | 1 | -1.49 | +| PEPE | 05-29 11:00 | 05-29 13:00 | stop_loss | 2 | -1.49 | +| SUI | 05-29 11:00 | 05-29 13:00 | stop_loss | 2 | -1.49 | +| APT | 05-29 13:00 | 05-29 14:00 | stop_loss | 1 | -1.49 | +| ARB | 05-29 12:00 | 05-29 14:00 | stop_loss | 2 | -1.49 | +| BONK | 05-29 12:00 | 05-29 14:00 | stop_loss | 2 | -1.49 | +| KAS | 05-29 12:00 | 05-29 14:00 | stop_loss | 2 | -1.49 | +| OP | 05-29 13:00 | 05-29 14:00 | stop_loss | 1 | -1.49 | +| SEI | 05-29 13:00 | 05-29 14:00 | stop_loss | 1 | -1.49 | +| SUI | 05-29 13:00 | 05-29 14:00 | stop_loss | 1 | -1.49 | +| TON | 05-29 12:00 | 05-29 14:00 | stop_loss | 2 | -1.49 | +| AVAX | 05-29 14:00 | 05-29 15:00 | take_profit | 1 | +1.49 | +| ETC | 05-29 12:00 | 05-29 15:00 | take_profit | 3 | +1.49 | +| RENDER | 05-29 14:00 | 05-29 15:00 | take_profit | 1 | +1.49 | +| SEI | 05-29 14:00 | 05-29 15:00 | take_profit | 1 | +1.49 | +| NEAR | 05-29 21:00 | 05-29 22:00 | take_profit | 1 | +1.49 | +| TRX | 05-29 08:00 | 05-30 03:00 | trailing_stop | 19 | -0.35 | +| RENDER | 05-30 07:00 | 05-30 11:00 | take_profit | 4 | +1.49 | +| NEAR | 05-30 07:00 | 05-30 15:00 | stop_loss | 8 | -1.49 | +| ARB | 05-30 16:00 | 05-30 22:00 | stop_loss | 6 | -1.49 | +| FIL | 05-30 16:00 | 05-30 22:00 | stop_loss | 6 | -1.49 | +| KAS | 05-30 15:00 | 05-30 22:00 | trailing_stop | 7 | +0.08 | +| APT | 05-30 16:00 | 05-30 23:00 | stop_loss | 7 | -1.49 | +| NEAR | 05-30 23:00 | 05-31 04:00 | take_profit | 5 | +1.49 | +| ARB | 05-30 22:00 | 05-31 06:00 | trailing_stop | 8 | -0.36 | +| ATOM | 05-30 22:00 | 05-31 06:00 | stop_loss | 8 | -1.49 | +| SEI | 05-31 08:00 | 05-31 09:00 | take_profit | 1 | +1.49 | +| TRX | 05-30 03:00 | 05-31 09:00 | take_profit | 30 | +1.49 | +| ETC | 05-30 14:00 | 05-31 10:00 | stop_loss | 20 | -1.49 | +| WIF | 05-31 08:00 | 05-31 10:00 | stop_loss | 2 | -1.49 | +| INJ | 05-31 06:00 | 05-31 11:00 | take_profit | 5 | +1.49 | +| ARB | 05-31 07:00 | 05-31 14:00 | stop_loss | 7 | -1.49 | +| ATOM | 05-31 07:00 | 05-31 14:00 | stop_loss | 7 | -1.49 | +| OP | 05-31 07:00 | 05-31 14:00 | stop_loss | 7 | -1.49 | +| TIA | 05-31 07:00 | 05-31 14:00 | stop_loss | 7 | -1.49 | +| UNI | 05-31 09:00 | 05-31 14:00 | stop_loss | 5 | -1.49 | +| ARB | 05-31 14:00 | 05-31 16:00 | stop_loss | 2 | -1.49 | +| ATOM | 05-31 14:00 | 05-31 16:00 | stop_loss | 2 | -1.49 | +| FIL | 05-31 14:00 | 05-31 16:00 | stop_loss | 2 | -1.49 | +| SHIB | 05-31 07:00 | 05-31 16:00 | stop_loss | 9 | -1.49 | +| SUI | 05-31 14:00 | 05-31 16:00 | stop_loss | 2 | -1.49 | +| WIF | 05-31 14:00 | 05-31 16:00 | trailing_stop | 2 | -0.64 | +| FET | 05-31 16:00 | 05-31 17:00 | stop_loss | 1 | -1.49 | +| LTC | 05-31 14:00 | 05-31 17:00 | stop_loss | 3 | -1.49 | +| OP | 05-31 14:00 | 05-31 17:00 | stop_loss | 3 | -1.49 | +| PEPE | 05-31 14:00 | 05-31 17:00 | stop_loss | 3 | -1.49 | +| RENDER | 05-31 14:00 | 05-31 17:00 | stop_loss | 3 | -1.49 | +| FIL | 05-31 16:00 | 05-31 19:00 | stop_loss | 3 | -1.49 | +| OP | 05-31 17:00 | 05-31 19:00 | stop_loss | 2 | -1.49 | +| APT | 05-31 14:00 | 05-31 21:00 | take_profit | 7 | +1.49 | +| ARB | 05-31 16:00 | 05-31 21:00 | take_profit | 5 | +1.49 | +| BONK | 05-31 14:00 | 05-31 21:00 | take_profit | 7 | +1.49 | +| SUI | 05-31 16:00 | 05-31 21:00 | take_profit | 5 | +1.49 | +| TIA | 05-31 16:00 | 05-31 21:00 | take_profit | 5 | +1.49 | +| WIF | 05-31 16:00 | 05-31 21:00 | take_profit | 5 | +1.49 | +| SHIB | 05-31 16:00 | 05-31 22:00 | take_profit | 6 | +1.49 | +| KAS | 05-31 15:00 | 05-31 23:00 | take_profit | 8 | +1.49 | +| ATOM | 05-31 16:00 | 06-01 00:00 | take_profit | 8 | +1.49 | +| AVAX | 05-31 14:00 | 06-01 00:00 | take_profit | 10 | +1.49 | +| FIL | 05-31 23:00 | 06-01 00:00 | trailing_stop | 1 | -0.43 | +| ETC | 05-31 14:00 | 06-01 01:00 | trailing_stop | 11 | -0.36 | +| LTC | 05-31 17:00 | 06-01 01:00 | trailing_stop | 8 | -0.70 | +| UNI | 05-31 14:00 | 06-01 01:00 | trailing_stop | 11 | -0.21 | +| FIL | 06-01 01:00 | 06-01 02:00 | take_profit | 1 | +1.49 | +| INJ | 06-01 01:00 | 06-01 02:00 | take_profit | 1 | +1.49 | +| LTC | 06-01 01:00 | 06-01 06:00 | trailing_stop | 5 | -0.58 | +| RENDER | 06-01 13:00 | 06-01 14:00 | stop_loss | 1 | -1.49 | +| SUI | 06-01 13:00 | 06-01 14:00 | take_profit | 1 | +1.49 | +| ARB | 06-01 13:00 | 06-01 16:00 | take_profit | 3 | +1.49 | +| ATOM | 06-01 13:00 | 06-01 16:00 | stop_loss | 3 | -1.49 | +| KAS | 06-01 13:00 | 06-01 16:00 | take_profit | 3 | +1.49 | +| RENDER | 06-01 14:00 | 06-01 16:00 | take_profit | 2 | +1.49 | +| UNI | 06-01 13:00 | 06-01 16:00 | trailing_stop | 3 | -0.62 | +| TRX | 06-01 12:00 | 06-01 18:00 | stop_loss | 6 | -1.49 | +| ATOM | 06-01 19:00 | 06-01 21:00 | stop_loss | 2 | -1.49 | +| LTC | 06-02 02:00 | 06-02 05:00 | stop_loss | 3 | -1.49 | +| TRX | 06-01 18:00 | 06-02 06:00 | stop_loss | 12 | -1.49 | +| TON | 06-02 06:00 | 06-02 07:00 | stop_loss | 1 | -1.49 | +| TON | 06-02 07:00 | 06-02 08:00 | stop_loss | 1 | -1.49 | +| KAS | 06-02 07:00 | 06-02 09:00 | stop_loss | 2 | -1.49 | +| SEI | 06-02 09:00 | 06-02 10:00 | trailing_stop | 1 | -0.31 | +| SUI | 06-02 09:00 | 06-02 10:00 | trailing_stop | 1 | -0.70 | +| TON | 06-02 08:00 | 06-02 10:00 | trailing_stop | 2 | -0.03 | +| WIF | 06-02 09:00 | 06-02 10:00 | trailing_stop | 1 | -0.11 | +| SEI | 06-02 10:00 | 06-02 12:00 | confirmed_bearish_exit | 2 | +0.58 | +| APT | 06-02 07:00 | 06-02 14:00 | stop_loss | 7 | -1.49 | +| ATOM | 06-02 01:00 | 06-02 14:00 | stop_loss | 13 | -1.49 | +| FIL | 06-02 09:00 | 06-02 14:00 | stop_loss | 5 | -1.49 | +| LTC | 06-02 05:00 | 06-02 14:00 | stop_loss | 9 | -1.49 | +| PEPE | 06-02 07:00 | 06-02 14:00 | stop_loss | 7 | -1.49 | +| SEI | 06-02 13:00 | 06-02 14:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-02 09:00 | 06-02 14:00 | stop_loss | 5 | -1.49 | +| APT | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| ARB | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| ATOM | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| AVAX | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| BONK | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| ETC | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| FIL | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| LTC | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| OP | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| SEI | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| TIA | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| UNI | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| WIF | 06-02 14:00 | 06-02 15:00 | stop_loss | 1 | -1.49 | +| APT | 06-02 15:00 | 06-02 16:00 | take_profit | 1 | +1.49 | +| ARB | 06-02 15:00 | 06-02 16:00 | take_profit | 1 | +1.49 | +| BONK | 06-02 15:00 | 06-02 16:00 | take_profit | 1 | +1.49 | +| FIL | 06-02 15:00 | 06-02 16:00 | take_profit | 1 | +1.49 | +| NEAR | 06-02 15:00 | 06-02 16:00 | stop_loss | 1 | -1.49 | +| OP | 06-02 15:00 | 06-02 16:00 | take_profit | 1 | +1.49 | +| RENDER | 06-02 15:00 | 06-02 16:00 | take_profit | 1 | +1.49 | +| SEI | 06-02 15:00 | 06-02 16:00 | take_profit | 1 | +1.49 | +| SUI | 06-02 15:00 | 06-02 16:00 | take_profit | 1 | +1.49 | +| UNI | 06-02 15:00 | 06-02 16:00 | take_profit | 1 | +1.49 | +| WIF | 06-02 15:00 | 06-02 16:00 | take_profit | 1 | +1.49 | +| APT | 06-02 16:00 | 06-02 17:00 | trailing_stop | 1 | -0.43 | +| SEI | 06-02 16:00 | 06-02 17:00 | trailing_stop | 1 | -0.35 | +| TON | 06-02 16:00 | 06-02 17:00 | take_profit | 1 | +1.49 | +| ATOM | 06-02 15:00 | 06-02 18:00 | trailing_stop | 3 | -0.67 | +| AVAX | 06-02 15:00 | 06-02 18:00 | trailing_stop | 3 | -0.68 | +| BONK | 06-02 16:00 | 06-02 18:00 | stop_loss | 2 | -1.49 | +| FIL | 06-02 16:00 | 06-02 18:00 | stop_loss | 2 | -1.49 | +| PEPE | 06-02 15:00 | 06-02 18:00 | trailing_stop | 3 | -0.46 | +| BONK | 06-02 18:00 | 06-02 19:00 | stop_loss | 1 | -1.49 | +| ETC | 06-02 15:00 | 06-02 19:00 | stop_loss | 4 | -1.49 | +| FET | 06-02 18:00 | 06-02 19:00 | stop_loss | 1 | -1.49 | +| FIL | 06-02 18:00 | 06-02 19:00 | stop_loss | 1 | -1.49 | +| LTC | 06-02 15:00 | 06-02 19:00 | trailing_stop | 4 | -0.44 | +| SHIB | 06-02 15:00 | 06-02 19:00 | stop_loss | 4 | -1.49 | +| FET | 06-02 19:00 | 06-02 20:00 | stop_loss | 1 | -1.49 | +| FET | 06-02 20:00 | 06-02 21:00 | take_profit | 1 | +1.49 | +| FIL | 06-02 19:00 | 06-02 21:00 | take_profit | 2 | +1.49 | +| ATOM | 06-02 19:00 | 06-02 22:00 | trailing_stop | 3 | -0.55 | +| TRX | 06-02 14:00 | 06-02 22:00 | stop_loss | 8 | -1.49 | +| ARB | 06-02 22:00 | 06-02 23:00 | stop_loss | 1 | -1.49 | +| AVAX | 06-02 22:00 | 06-02 23:00 | stop_loss | 1 | -1.49 | +| ETC | 06-02 22:00 | 06-02 23:00 | stop_loss | 1 | -1.49 | +| KAS | 06-02 22:00 | 06-02 23:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-02 22:00 | 06-02 23:00 | stop_loss | 1 | -1.49 | +| SEI | 06-02 22:00 | 06-02 23:00 | stop_loss | 1 | -1.49 | +| SUI | 06-02 22:00 | 06-02 23:00 | stop_loss | 1 | -1.49 | +| TIA | 06-02 22:00 | 06-02 23:00 | stop_loss | 1 | -1.49 | +| UNI | 06-02 22:00 | 06-02 23:00 | stop_loss | 1 | -1.49 | +| WIF | 06-02 22:00 | 06-02 23:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-02 22:00 | 06-03 00:00 | take_profit | 2 | +1.49 | +| LTC | 06-02 22:00 | 06-03 02:00 | take_profit | 4 | +1.49 | +| FIL | 06-03 02:00 | 06-03 03:00 | stop_loss | 1 | -1.49 | +| SEI | 06-02 23:00 | 06-03 03:00 | stop_loss | 4 | -1.49 | +| TRX | 06-02 22:00 | 06-03 03:00 | stop_loss | 5 | -1.49 | +| ARB | 06-03 03:00 | 06-03 04:00 | take_profit | 1 | +1.49 | +| ETC | 06-03 03:00 | 06-03 04:00 | take_profit | 1 | +1.49 | +| FET | 06-03 03:00 | 06-03 04:00 | take_profit | 1 | +1.49 | +| FIL | 06-03 03:00 | 06-03 04:00 | take_profit | 1 | +1.49 | +| SUI | 06-03 03:00 | 06-03 04:00 | take_profit | 1 | +1.49 | +| AVAX | 06-03 19:00 | 06-03 20:00 | stop_loss | 1 | -1.49 | +| BONK | 06-03 19:00 | 06-03 20:00 | stop_loss | 1 | -1.49 | +| ETC | 06-03 19:00 | 06-03 20:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-03 19:00 | 06-03 20:00 | stop_loss | 1 | -1.49 | +| TON | 06-03 19:00 | 06-03 20:00 | stop_loss | 1 | -1.49 | +| APT | 06-03 20:00 | 06-03 21:00 | take_profit | 1 | +1.49 | +| AVAX | 06-03 20:00 | 06-03 21:00 | take_profit | 1 | +1.49 | +| BONK | 06-03 20:00 | 06-03 21:00 | take_profit | 1 | +1.49 | +| ETC | 06-03 20:00 | 06-03 21:00 | take_profit | 1 | +1.49 | +| LTC | 06-03 19:00 | 06-03 21:00 | trailing_stop | 2 | -0.43 | +| PEPE | 06-03 20:00 | 06-03 21:00 | take_profit | 1 | +1.49 | +| SEI | 06-03 20:00 | 06-03 21:00 | trailing_stop | 1 | -0.56 | +| SHIB | 06-03 20:00 | 06-03 21:00 | take_profit | 1 | +1.49 | +| SUI | 06-03 20:00 | 06-03 21:00 | take_profit | 1 | +1.49 | +| TON | 06-03 20:00 | 06-03 21:00 | take_profit | 1 | +1.49 | +| FET | 06-03 23:00 | 06-04 00:00 | stop_loss | 1 | -1.49 | +| APT | 06-04 00:00 | 06-04 01:00 | stop_loss | 1 | -1.49 | +| ARB | 06-04 00:00 | 06-04 01:00 | stop_loss | 1 | -1.49 | +| BONK | 06-04 00:00 | 06-04 01:00 | stop_loss | 1 | -1.49 | +| FET | 06-04 00:00 | 06-04 01:00 | stop_loss | 1 | -1.49 | +| LTC | 06-04 00:00 | 06-04 01:00 | stop_loss | 1 | -1.49 | +| OP | 06-04 00:00 | 06-04 01:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-04 00:00 | 06-04 01:00 | stop_loss | 1 | -1.49 | +| SEI | 06-04 00:00 | 06-04 01:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-04 00:00 | 06-04 01:00 | stop_loss | 1 | -1.49 | +| UNI | 06-04 00:00 | 06-04 01:00 | stop_loss | 1 | -1.49 | +| APT | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| ARB | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| ATOM | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| AVAX | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| BONK | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| ETC | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| FET | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| FIL | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| INJ | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| LTC | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| OP | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| RENDER | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| SEI | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| SUI | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| TIA | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| TON | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| TRX | 06-03 07:00 | 06-04 02:00 | stop_loss | 19 | -1.49 | +| UNI | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| WIF | 06-04 01:00 | 06-04 02:00 | stop_loss | 1 | -1.49 | +| APT | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| ARB | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| ATOM | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| BONK | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| ETC | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| FET | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| FIL | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| LTC | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| OP | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| PEPE | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| RENDER | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| SHIB | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| SUI | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| TIA | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| UNI | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| WIF | 06-04 02:00 | 06-04 03:00 | take_profit | 1 | +1.49 | +| TON | 06-04 02:00 | 06-04 04:00 | trailing_stop | 2 | -0.59 | +| KAS | 06-04 04:00 | 06-04 05:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-04 04:00 | 06-04 05:00 | stop_loss | 1 | -1.49 | +| SEI | 06-04 02:00 | 06-04 05:00 | stop_loss | 3 | -1.49 | +| NEAR | 06-04 05:00 | 06-04 06:00 | stop_loss | 1 | -1.49 | +| KAS | 06-04 05:00 | 06-04 07:00 | stop_loss | 2 | -1.49 | +| NEAR | 06-04 06:00 | 06-04 07:00 | stop_loss | 1 | -1.49 | +| FET | 06-04 07:00 | 06-04 08:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-04 07:00 | 06-04 08:00 | stop_loss | 1 | -1.49 | +| RENDER | 06-04 07:00 | 06-04 08:00 | stop_loss | 1 | -1.49 | +| WIF | 06-04 07:00 | 06-04 08:00 | stop_loss | 1 | -1.49 | +| ATOM | 06-04 07:00 | 06-04 09:00 | stop_loss | 2 | -1.49 | +| FET | 06-04 08:00 | 06-04 09:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-04 08:00 | 06-04 09:00 | stop_loss | 1 | -1.49 | +| RENDER | 06-04 08:00 | 06-04 09:00 | stop_loss | 1 | -1.49 | +| ATOM | 06-04 09:00 | 06-04 10:00 | stop_loss | 1 | -1.49 | +| RENDER | 06-04 09:00 | 06-04 10:00 | stop_loss | 1 | -1.49 | +| ARB | 06-04 10:00 | 06-04 11:00 | trailing_stop | 1 | +0.23 | +| ATOM | 06-04 10:00 | 06-04 11:00 | trailing_stop | 1 | -0.11 | +| ETC | 06-04 10:00 | 06-04 11:00 | trailing_stop | 1 | -0.47 | +| FET | 06-04 10:00 | 06-04 11:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-04 10:00 | 06-04 11:00 | take_profit | 1 | +1.49 | +| RENDER | 06-04 10:00 | 06-04 11:00 | stop_loss | 1 | -1.49 | +| INJ | 06-04 11:00 | 06-04 12:00 | stop_loss | 1 | -1.49 | +| TON | 06-04 13:00 | 06-04 14:00 | stop_loss | 1 | -1.49 | +| INJ | 06-04 14:00 | 06-04 15:00 | take_profit | 1 | +1.49 | +| NEAR | 06-04 14:00 | 06-04 15:00 | take_profit | 1 | +1.49 | +| OP | 06-04 13:00 | 06-04 15:00 | take_profit | 2 | +1.49 | +| RENDER | 06-04 14:00 | 06-04 15:00 | take_profit | 1 | +1.49 | +| TON | 06-04 14:00 | 06-04 15:00 | stop_loss | 1 | -1.49 | +| SEI | 06-04 14:00 | 06-04 16:00 | stop_loss | 2 | -1.49 | +| FET | 06-04 16:00 | 06-04 17:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-04 16:00 | 06-04 17:00 | stop_loss | 1 | -1.49 | +| FET | 06-04 17:00 | 06-04 18:00 | stop_loss | 1 | -1.49 | +| KAS | 06-04 13:00 | 06-04 18:00 | trailing_stop | 5 | -0.60 | +| NEAR | 06-04 17:00 | 06-04 18:00 | stop_loss | 1 | -1.49 | +| RENDER | 06-04 17:00 | 06-04 18:00 | stop_loss | 1 | -1.49 | +| FET | 06-04 18:00 | 06-04 19:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-04 18:00 | 06-04 19:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-04 17:00 | 06-04 20:00 | stop_loss | 3 | -1.49 | +| AVAX | 06-04 17:00 | 06-04 21:00 | stop_loss | 4 | -1.49 | +| UNI | 06-04 17:00 | 06-04 21:00 | stop_loss | 4 | -1.49 | +| TON | 06-04 21:00 | 06-04 22:00 | stop_loss | 1 | -1.49 | +| TRX | 06-04 09:00 | 06-04 23:00 | confirmed_bearish_exit | 14 | +0.87 | +| ARB | 06-05 02:00 | 06-05 03:00 | stop_loss | 1 | -1.49 | +| AVAX | 06-05 02:00 | 06-05 03:00 | stop_loss | 1 | -1.49 | +| FET | 06-05 02:00 | 06-05 03:00 | take_profit | 1 | +1.49 | +| NEAR | 06-05 02:00 | 06-05 03:00 | stop_loss | 1 | -1.49 | +| SUI | 06-05 02:00 | 06-05 03:00 | stop_loss | 1 | -1.49 | +| APT | 06-05 02:00 | 06-05 04:00 | take_profit | 2 | +1.49 | +| AVAX | 06-05 03:00 | 06-05 04:00 | take_profit | 1 | +1.49 | +| BONK | 06-05 02:00 | 06-05 04:00 | take_profit | 2 | +1.49 | +| ETC | 06-05 02:00 | 06-05 04:00 | trailing_stop | 2 | +0.12 | +| LTC | 06-05 02:00 | 06-05 04:00 | trailing_stop | 2 | -0.62 | +| PEPE | 06-05 02:00 | 06-05 04:00 | stop_loss | 2 | -1.49 | +| RENDER | 06-05 02:00 | 06-05 04:00 | take_profit | 2 | +1.49 | +| SEI | 06-05 02:00 | 06-05 04:00 | trailing_stop | 2 | -0.60 | +| SHIB | 06-05 02:00 | 06-05 04:00 | trailing_stop | 2 | -0.47 | +| SUI | 06-05 03:00 | 06-05 04:00 | take_profit | 1 | +1.49 | +| UNI | 06-05 02:00 | 06-05 04:00 | trailing_stop | 2 | -0.09 | +| WIF | 06-05 02:00 | 06-05 04:00 | take_profit | 2 | +1.49 | +| ARB | 06-05 05:00 | 06-05 06:00 | stop_loss | 1 | -1.49 | +| AVAX | 06-05 05:00 | 06-05 06:00 | stop_loss | 1 | -1.49 | +| ETC | 06-05 05:00 | 06-05 06:00 | stop_loss | 1 | -1.49 | +| LTC | 06-05 05:00 | 06-05 06:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-05 05:00 | 06-05 06:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-05 05:00 | 06-05 06:00 | stop_loss | 1 | -1.49 | +| SUI | 06-05 05:00 | 06-05 06:00 | stop_loss | 1 | -1.49 | +| TIA | 06-05 05:00 | 06-05 06:00 | stop_loss | 1 | -1.49 | +| UNI | 06-05 05:00 | 06-05 06:00 | stop_loss | 1 | -1.49 | +| APT | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| ARB | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| ATOM | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| AVAX | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| BONK | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| ETC | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| FIL | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| LTC | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| OP | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| RENDER | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| SEI | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| SUI | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| TIA | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| TON | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| UNI | 06-05 06:00 | 06-05 07:00 | stop_loss | 1 | -1.49 | +| FIL | 06-05 08:00 | 06-05 09:00 | take_profit | 1 | +1.49 | +| PEPE | 06-05 08:00 | 06-05 09:00 | take_profit | 1 | +1.49 | +| SHIB | 06-05 08:00 | 06-05 09:00 | trailing_stop | 1 | +0.19 | +| SEI | 06-05 08:00 | 06-05 11:00 | stop_loss | 3 | -1.49 | +| SEI | 06-05 13:00 | 06-05 14:00 | take_profit | 1 | +1.49 | +| UNI | 06-05 13:00 | 06-05 14:00 | take_profit | 1 | +1.49 | +| SHIB | 06-05 13:00 | 06-05 15:00 | stop_loss | 2 | -1.49 | +| TRX | 06-05 06:00 | 06-05 15:00 | stop_loss | 9 | -1.49 | +| FIL | 06-05 15:00 | 06-05 16:00 | stop_loss | 1 | -1.49 | +| SEI | 06-05 15:00 | 06-05 16:00 | stop_loss | 1 | -1.49 | +| FIL | 06-05 17:00 | 06-05 18:00 | stop_loss | 1 | -1.49 | +| APT | 06-05 18:00 | 06-05 19:00 | stop_loss | 1 | -1.49 | +| ATOM | 06-05 18:00 | 06-05 19:00 | take_profit | 1 | +1.49 | +| BONK | 06-05 18:00 | 06-05 19:00 | stop_loss | 1 | -1.49 | +| ETC | 06-05 18:00 | 06-05 19:00 | stop_loss | 1 | -1.49 | +| FET | 06-05 18:00 | 06-05 19:00 | stop_loss | 1 | -1.49 | +| OP | 06-05 18:00 | 06-05 19:00 | stop_loss | 1 | -1.49 | +| SEI | 06-05 18:00 | 06-05 19:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-05 18:00 | 06-05 19:00 | take_profit | 1 | +1.49 | +| TIA | 06-05 18:00 | 06-05 19:00 | stop_loss | 1 | -1.49 | +| UNI | 06-05 18:00 | 06-05 19:00 | stop_loss | 1 | -1.49 | +| WIF | 06-05 18:00 | 06-05 19:00 | stop_loss | 1 | -1.49 | +| OP | 06-05 23:00 | 06-06 00:00 | take_profit | 1 | +1.49 | +| FIL | 06-05 23:00 | 06-06 01:00 | trailing_stop | 2 | -0.62 | +| ATOM | 06-05 23:00 | 06-06 02:00 | stop_loss | 3 | -1.49 | +| APT | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| ARB | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| ATOM | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| AVAX | 06-06 04:00 | 06-06 05:00 | take_profit | 1 | +1.49 | +| BONK | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| FET | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| FIL | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| LTC | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| OP | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| SEI | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| TIA | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| WIF | 06-06 04:00 | 06-06 05:00 | stop_loss | 1 | -1.49 | +| INJ | 06-06 22:00 | 06-06 23:00 | trailing_stop | 1 | -0.52 | +| TRX | 06-05 15:00 | 06-07 07:00 | take_profit | 40 | +1.49 | +| APT | 06-07 19:00 | 06-07 20:00 | trailing_stop | 1 | -0.48 | +| ARB | 06-07 19:00 | 06-07 20:00 | trailing_stop | 1 | -0.58 | +| AVAX | 06-07 19:00 | 06-07 20:00 | trailing_stop | 1 | -0.66 | +| OP | 06-07 19:00 | 06-07 20:00 | take_profit | 1 | +1.49 | +| UNI | 06-07 21:00 | 06-07 22:00 | take_profit | 1 | +1.49 | +| KAS | 06-08 23:00 | 06-09 01:00 | stop_loss | 2 | -1.49 | +| SUI | 06-09 00:00 | 06-09 01:00 | trailing_stop | 1 | -0.34 | +| APT | 06-09 00:00 | 06-09 02:00 | stop_loss | 2 | -1.49 | +| FET | 06-09 01:00 | 06-09 02:00 | stop_loss | 1 | -1.49 | +| KAS | 06-09 01:00 | 06-09 02:00 | stop_loss | 1 | -1.49 | +| RENDER | 06-09 01:00 | 06-09 03:00 | stop_loss | 2 | -1.49 | +| APT | 06-09 02:00 | 06-09 04:00 | take_profit | 2 | +1.49 | +| ARB | 06-09 00:00 | 06-09 04:00 | take_profit | 4 | +1.49 | +| BONK | 06-09 00:00 | 06-09 04:00 | take_profit | 4 | +1.49 | +| ETC | 06-09 00:00 | 06-09 04:00 | trailing_stop | 4 | -0.56 | +| FET | 06-09 02:00 | 06-09 04:00 | trailing_stop | 2 | -0.26 | +| FIL | 06-09 02:00 | 06-09 04:00 | take_profit | 2 | +1.49 | +| KAS | 06-09 02:00 | 06-09 04:00 | trailing_stop | 2 | -0.34 | +| NEAR | 06-09 02:00 | 06-09 04:00 | trailing_stop | 2 | -0.22 | +| OP | 06-09 00:00 | 06-09 04:00 | take_profit | 4 | +1.49 | +| SEI | 06-09 00:00 | 06-09 04:00 | take_profit | 4 | +1.49 | +| SHIB | 06-09 00:00 | 06-09 04:00 | trailing_stop | 4 | -0.22 | +| SUI | 06-09 02:00 | 06-09 04:00 | take_profit | 2 | +1.49 | +| TIA | 06-09 00:00 | 06-09 04:00 | take_profit | 4 | +1.49 | +| UNI | 06-09 00:00 | 06-09 04:00 | take_profit | 4 | +1.49 | +| WIF | 06-09 00:00 | 06-09 04:00 | take_profit | 4 | +1.49 | +| ARB | 06-09 07:00 | 06-09 09:00 | stop_loss | 2 | -1.49 | +| SEI | 06-09 07:00 | 06-09 09:00 | stop_loss | 2 | -1.49 | +| TRX | 06-07 21:00 | 06-09 09:00 | stop_loss | 36 | -1.49 | +| UNI | 06-09 08:00 | 06-09 11:00 | stop_loss | 3 | -1.49 | +| FET | 06-09 08:00 | 06-09 12:00 | stop_loss | 4 | -1.49 | +| ATOM | 06-09 09:00 | 06-09 13:00 | trailing_stop | 4 | -0.39 | +| KAS | 06-09 09:00 | 06-09 13:00 | stop_loss | 4 | -1.49 | +| ARB | 06-09 09:00 | 06-09 14:00 | stop_loss | 5 | -1.49 | +| ETC | 06-09 09:00 | 06-09 14:00 | stop_loss | 5 | -1.49 | +| FIL | 06-09 09:00 | 06-09 14:00 | stop_loss | 5 | -1.49 | +| KAS | 06-09 13:00 | 06-09 14:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-09 09:00 | 06-09 14:00 | stop_loss | 5 | -1.49 | +| KAS | 06-09 14:00 | 06-09 15:00 | stop_loss | 1 | -1.49 | +| LTC | 06-09 09:00 | 06-09 15:00 | stop_loss | 6 | -1.49 | +| FET | 06-09 15:00 | 06-09 16:00 | stop_loss | 1 | -1.49 | +| KAS | 06-09 15:00 | 06-09 16:00 | trailing_stop | 1 | -0.58 | +| FET | 06-09 16:00 | 06-09 17:00 | take_profit | 1 | +1.49 | +| SEI | 06-09 15:00 | 06-09 17:00 | take_profit | 2 | +1.49 | +| FET | 06-09 21:00 | 06-10 00:00 | stop_loss | 3 | -1.49 | +| INJ | 06-10 02:00 | 06-10 04:00 | stop_loss | 2 | -1.49 | +| TON | 06-10 04:00 | 06-10 05:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-10 05:00 | 06-10 06:00 | stop_loss | 1 | -1.49 | +| WIF | 06-10 02:00 | 06-10 09:00 | stop_loss | 7 | -1.49 | +| INJ | 06-10 08:00 | 06-10 11:00 | stop_loss | 3 | -1.49 | +| TON | 06-10 05:00 | 06-10 11:00 | stop_loss | 6 | -1.49 | +| APT | 06-10 11:00 | 06-10 12:00 | take_profit | 1 | +1.49 | +| ARB | 06-10 08:00 | 06-10 12:00 | stop_loss | 4 | -1.49 | +| AVAX | 06-10 08:00 | 06-10 12:00 | trailing_stop | 4 | -0.63 | +| FET | 06-10 11:00 | 06-10 12:00 | take_profit | 1 | +1.49 | +| FIL | 06-10 11:00 | 06-10 12:00 | take_profit | 1 | +1.49 | +| RENDER | 06-10 11:00 | 06-10 12:00 | take_profit | 1 | +1.49 | +| APT | 06-10 14:00 | 06-10 16:00 | stop_loss | 2 | -1.49 | +| APT | 06-10 20:00 | 06-10 21:00 | stop_loss | 1 | -1.49 | +| FET | 06-10 19:00 | 06-10 21:00 | stop_loss | 2 | -1.49 | +| OP | 06-10 20:00 | 06-10 21:00 | stop_loss | 1 | -1.49 | +| RENDER | 06-10 20:00 | 06-10 21:00 | stop_loss | 1 | -1.49 | +| TIA | 06-10 20:00 | 06-10 21:00 | stop_loss | 1 | -1.49 | +| WIF | 06-10 20:00 | 06-10 21:00 | stop_loss | 1 | -1.49 | +| KAS | 06-10 20:00 | 06-10 22:00 | stop_loss | 2 | -1.49 | +| NEAR | 06-10 21:00 | 06-10 22:00 | stop_loss | 1 | -1.49 | +| OP | 06-10 21:00 | 06-10 22:00 | stop_loss | 1 | -1.49 | +| APT | 06-10 21:00 | 06-10 23:00 | trailing_stop | 2 | -0.25 | +| ARB | 06-10 21:00 | 06-10 23:00 | take_profit | 2 | +1.49 | +| BONK | 06-10 21:00 | 06-10 23:00 | trailing_stop | 2 | -0.51 | +| FET | 06-10 21:00 | 06-10 23:00 | stop_loss | 2 | -1.49 | +| FIL | 06-10 21:00 | 06-10 23:00 | trailing_stop | 2 | -0.61 | +| OP | 06-10 22:00 | 06-10 23:00 | trailing_stop | 1 | -0.16 | +| RENDER | 06-10 21:00 | 06-10 23:00 | take_profit | 2 | +1.49 | +| SUI | 06-10 21:00 | 06-10 23:00 | trailing_stop | 2 | -0.56 | +| TIA | 06-10 21:00 | 06-10 23:00 | take_profit | 2 | +1.49 | +| TON | 06-10 21:00 | 06-10 23:00 | take_profit | 2 | +1.49 | +| WIF | 06-10 21:00 | 06-10 23:00 | trailing_stop | 2 | -0.07 | +| ATOM | 06-10 20:00 | 06-11 00:00 | take_profit | 4 | +1.49 | +| AVAX | 06-10 21:00 | 06-11 01:00 | take_profit | 4 | +1.49 | +| INJ | 06-10 21:00 | 06-11 01:00 | take_profit | 4 | +1.49 | +| LTC | 06-10 21:00 | 06-11 01:00 | take_profit | 4 | +1.49 | +| SHIB | 06-10 21:00 | 06-11 01:00 | take_profit | 4 | +1.49 | +| UNI | 06-10 21:00 | 06-11 01:00 | take_profit | 4 | +1.49 | +| OP | 06-11 02:00 | 06-11 03:00 | take_profit | 1 | +1.49 | +| NEAR | 06-11 03:00 | 06-11 04:00 | trailing_stop | 1 | -0.34 | +| FET | 06-11 03:00 | 06-11 09:00 | trailing_stop | 6 | -0.50 | +| TRX | 06-09 09:00 | 06-11 16:00 | stop_loss | 55 | -1.49 | +| TRX | 06-11 16:00 | 06-11 18:00 | stop_loss | 2 | -1.49 | +| APT | 06-12 07:00 | 06-12 08:00 | trailing_stop | 1 | -0.15 | +| ETC | 06-12 07:00 | 06-12 09:00 | take_profit | 2 | +1.49 | +| WIF | 06-12 07:00 | 06-12 09:00 | take_profit | 2 | +1.49 | +| ATOM | 06-12 12:00 | 06-12 13:00 | stop_loss | 1 | -1.49 | +| AVAX | 06-12 07:00 | 06-12 13:00 | trailing_stop | 6 | -0.56 | +| FIL | 06-12 07:00 | 06-12 13:00 | stop_loss | 6 | -1.49 | +| AVAX | 06-12 13:00 | 06-12 14:00 | take_profit | 1 | +1.49 | +| INJ | 06-12 13:00 | 06-12 14:00 | trailing_stop | 1 | -0.47 | +| KAS | 06-12 12:00 | 06-12 14:00 | trailing_stop | 2 | -0.09 | +| SUI | 06-12 07:00 | 06-12 14:00 | trailing_stop | 7 | -0.14 | +| INJ | 06-12 15:00 | 06-12 16:00 | stop_loss | 1 | -1.49 | +| INJ | 06-12 16:00 | 06-12 21:00 | stop_loss | 5 | -1.49 | +| ATOM | 06-12 13:00 | 06-12 23:00 | take_profit | 10 | +1.49 | +| NEAR | 06-13 02:00 | 06-13 04:00 | stop_loss | 2 | -1.49 | +| TON | 06-12 21:00 | 06-13 05:00 | trailing_stop | 8 | -0.45 | +| NEAR | 06-13 04:00 | 06-13 06:00 | trailing_stop | 2 | -0.27 | +| TIA | 06-13 04:00 | 06-13 06:00 | take_profit | 2 | +1.49 | +| ATOM | 06-13 15:00 | 06-13 16:00 | stop_loss | 1 | -1.49 | +| ATOM | 06-13 16:00 | 06-13 21:00 | stop_loss | 5 | -1.49 | +| SEI | 06-13 20:00 | 06-14 00:00 | stop_loss | 4 | -1.49 | +| ARB | 06-14 01:00 | 06-14 04:00 | stop_loss | 3 | -1.49 | +| OP | 06-14 03:00 | 06-14 04:00 | stop_loss | 1 | -1.49 | +| APT | 06-14 03:00 | 06-14 05:00 | stop_loss | 2 | -1.49 | +| FIL | 06-14 02:00 | 06-14 05:00 | stop_loss | 3 | -1.49 | +| RENDER | 06-14 04:00 | 06-14 05:00 | stop_loss | 1 | -1.49 | +| SEI | 06-14 00:00 | 06-14 05:00 | stop_loss | 5 | -1.49 | +| WIF | 06-14 01:00 | 06-14 05:00 | stop_loss | 4 | -1.49 | +| TIA | 06-14 05:00 | 06-14 07:00 | stop_loss | 2 | -1.49 | +| TON | 06-14 05:00 | 06-14 07:00 | trailing_stop | 2 | -0.13 | +| OP | 06-14 04:00 | 06-14 09:00 | trailing_stop | 5 | -0.10 | +| INJ | 06-14 04:00 | 06-14 11:00 | stop_loss | 7 | -1.49 | +| APT | 06-14 05:00 | 06-14 12:00 | stop_loss | 7 | -1.49 | +| ATOM | 06-13 22:00 | 06-14 12:00 | stop_loss | 14 | -1.49 | +| AVAX | 06-14 05:00 | 06-14 12:00 | stop_loss | 7 | -1.49 | +| PEPE | 06-14 05:00 | 06-14 12:00 | stop_loss | 7 | -1.49 | +| SHIB | 06-14 11:00 | 06-14 12:00 | stop_loss | 1 | -1.49 | +| TIA | 06-14 07:00 | 06-14 12:00 | stop_loss | 5 | -1.49 | +| ARB | 06-14 04:00 | 06-14 13:00 | stop_loss | 9 | -1.49 | +| ETC | 06-14 04:00 | 06-14 13:00 | stop_loss | 9 | -1.49 | +| FET | 06-14 12:00 | 06-14 13:00 | stop_loss | 1 | -1.49 | +| FIL | 06-14 05:00 | 06-14 13:00 | stop_loss | 8 | -1.49 | +| SUI | 06-14 05:00 | 06-14 13:00 | stop_loss | 8 | -1.49 | +| UNI | 06-14 05:00 | 06-14 13:00 | stop_loss | 8 | -1.49 | +| APT | 06-14 12:00 | 06-14 14:00 | stop_loss | 2 | -1.49 | +| AVAX | 06-14 12:00 | 06-14 14:00 | stop_loss | 2 | -1.49 | +| BONK | 06-14 12:00 | 06-14 14:00 | stop_loss | 2 | -1.49 | +| FET | 06-14 13:00 | 06-14 14:00 | stop_loss | 1 | -1.49 | +| SEI | 06-14 05:00 | 06-14 14:00 | stop_loss | 9 | -1.49 | +| SHIB | 06-14 12:00 | 06-14 14:00 | stop_loss | 2 | -1.49 | +| WIF | 06-14 12:00 | 06-14 14:00 | stop_loss | 2 | -1.49 | +| ETC | 06-14 13:00 | 06-14 16:00 | stop_loss | 3 | -1.49 | +| FET | 06-14 14:00 | 06-14 16:00 | take_profit | 2 | +1.49 | +| AVAX | 06-14 14:00 | 06-14 17:00 | stop_loss | 3 | -1.49 | +| INJ | 06-14 14:00 | 06-14 17:00 | stop_loss | 3 | -1.49 | +| AVAX | 06-14 17:00 | 06-14 18:00 | stop_loss | 1 | -1.49 | +| BONK | 06-14 14:00 | 06-14 18:00 | stop_loss | 4 | -1.49 | +| PEPE | 06-14 14:00 | 06-14 18:00 | stop_loss | 4 | -1.49 | +| NEAR | 06-14 15:00 | 06-14 20:00 | take_profit | 5 | +1.49 | +| APT | 06-14 14:00 | 06-14 21:00 | take_profit | 7 | +1.49 | +| AVAX | 06-14 18:00 | 06-14 21:00 | take_profit | 3 | +1.49 | +| ETC | 06-14 16:00 | 06-14 21:00 | take_profit | 5 | +1.49 | +| FIL | 06-14 14:00 | 06-14 21:00 | take_profit | 7 | +1.49 | +| INJ | 06-14 17:00 | 06-14 21:00 | take_profit | 4 | +1.49 | +| LTC | 06-14 12:00 | 06-14 21:00 | take_profit | 9 | +1.49 | +| RENDER | 06-14 14:00 | 06-14 21:00 | take_profit | 7 | +1.49 | +| SHIB | 06-14 14:00 | 06-14 21:00 | take_profit | 7 | +1.49 | +| SUI | 06-14 14:00 | 06-14 21:00 | take_profit | 7 | +1.49 | +| UNI | 06-14 14:00 | 06-14 21:00 | take_profit | 7 | +1.49 | +| WIF | 06-14 14:00 | 06-14 21:00 | take_profit | 7 | +1.49 | +| TRX | 06-11 18:00 | 06-14 23:00 | take_profit | 77 | +1.49 | +| SEI | 06-15 19:00 | 06-15 22:00 | stop_loss | 3 | -1.49 | +| TON | 06-15 21:00 | 06-15 22:00 | stop_loss | 1 | -1.49 | +| FET | 06-16 01:00 | 06-16 02:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-16 01:00 | 06-16 02:00 | stop_loss | 1 | -1.49 | +| OP | 06-15 22:00 | 06-16 02:00 | stop_loss | 4 | -1.49 | +| RENDER | 06-15 19:00 | 06-16 02:00 | stop_loss | 7 | -1.49 | +| TON | 06-15 22:00 | 06-16 02:00 | stop_loss | 4 | -1.49 | +| ARB | 06-16 02:00 | 06-16 03:00 | trailing_stop | 1 | -0.42 | +| FET | 06-16 02:00 | 06-16 03:00 | trailing_stop | 1 | -0.34 | +| RENDER | 06-16 02:00 | 06-16 03:00 | take_profit | 1 | +1.49 | +| FIL | 06-15 22:00 | 06-16 04:00 | trailing_stop | 6 | -0.70 | +| WIF | 06-16 03:00 | 06-16 04:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-16 02:00 | 06-16 05:00 | take_profit | 3 | +1.49 | +| ATOM | 06-16 05:00 | 06-16 07:00 | take_profit | 2 | +1.49 | +| AVAX | 06-16 02:00 | 06-16 07:00 | take_profit | 5 | +1.49 | +| BONK | 06-16 02:00 | 06-16 07:00 | take_profit | 5 | +1.49 | +| KAS | 06-16 02:00 | 06-16 07:00 | take_profit | 5 | +1.49 | +| ARB | 06-16 07:00 | 06-16 08:00 | trailing_stop | 1 | -0.10 | +| BONK | 06-16 07:00 | 06-16 08:00 | trailing_stop | 1 | -0.47 | +| ETC | 06-16 05:00 | 06-16 08:00 | trailing_stop | 3 | -0.09 | +| PEPE | 06-16 07:00 | 06-16 08:00 | trailing_stop | 1 | -0.70 | +| SEI | 06-15 22:00 | 06-16 08:00 | trailing_stop | 10 | -0.32 | +| WIF | 06-16 06:00 | 06-16 08:00 | take_profit | 2 | +1.49 | +| SHIB | 06-16 03:00 | 06-16 10:00 | trailing_stop | 7 | -0.32 | +| TRX | 06-15 13:00 | 06-16 14:00 | stop_loss | 25 | -1.49 | +| TON | 06-16 14:00 | 06-16 20:00 | trailing_stop | 6 | +0.05 | +| FET | 06-16 22:00 | 06-16 23:00 | stop_loss | 1 | -1.49 | +| INJ | 06-16 22:00 | 06-16 23:00 | stop_loss | 1 | -1.49 | +| RENDER | 06-16 22:00 | 06-17 00:00 | stop_loss | 2 | -1.49 | +| TON | 06-16 22:00 | 06-17 01:00 | stop_loss | 3 | -1.49 | +| TON | 06-17 01:00 | 06-17 05:00 | stop_loss | 4 | -1.49 | +| KAS | 06-17 02:00 | 06-17 06:00 | stop_loss | 4 | -1.49 | +| NEAR | 06-16 22:00 | 06-17 07:00 | stop_loss | 9 | -1.49 | +| SHIB | 06-16 22:00 | 06-17 08:00 | stop_loss | 10 | -1.49 | +| INJ | 06-17 08:00 | 06-17 12:00 | stop_loss | 4 | -1.49 | +| NEAR | 06-17 10:00 | 06-17 12:00 | take_profit | 2 | +1.49 | +| RENDER | 06-17 10:00 | 06-17 12:00 | trailing_stop | 2 | -0.24 | +| ATOM | 06-17 08:00 | 06-17 14:00 | take_profit | 6 | +1.49 | +| OP | 06-17 10:00 | 06-17 14:00 | stop_loss | 4 | -1.49 | +| ATOM | 06-17 14:00 | 06-17 15:00 | trailing_stop | 1 | -0.65 | +| AVAX | 06-17 10:00 | 06-17 15:00 | take_profit | 5 | +1.49 | +| BONK | 06-17 10:00 | 06-17 15:00 | take_profit | 5 | +1.49 | +| LTC | 06-17 10:00 | 06-17 15:00 | trailing_stop | 5 | -0.50 | +| KAS | 06-17 09:00 | 06-17 18:00 | stop_loss | 9 | -1.49 | +| WIF | 06-17 16:00 | 06-17 18:00 | stop_loss | 2 | -1.49 | +| KAS | 06-17 18:00 | 06-17 19:00 | stop_loss | 1 | -1.49 | +| ARB | 06-17 19:00 | 06-17 20:00 | trailing_stop | 1 | -0.30 | +| PEPE | 06-17 19:00 | 06-17 20:00 | trailing_stop | 1 | -0.34 | +| RENDER | 06-17 19:00 | 06-17 20:00 | trailing_stop | 1 | -0.63 | +| ATOM | 06-17 19:00 | 06-17 21:00 | stop_loss | 2 | -1.49 | +| FET | 06-17 19:00 | 06-17 21:00 | stop_loss | 2 | -1.49 | +| AVAX | 06-17 19:00 | 06-17 22:00 | stop_loss | 3 | -1.49 | +| BONK | 06-17 19:00 | 06-17 22:00 | stop_loss | 3 | -1.49 | +| SUI | 06-17 19:00 | 06-17 22:00 | stop_loss | 3 | -1.49 | +| WIF | 06-17 19:00 | 06-17 22:00 | stop_loss | 3 | -1.49 | +| KAS | 06-17 19:00 | 06-17 23:00 | take_profit | 4 | +1.49 | +| ATOM | 06-17 21:00 | 06-18 02:00 | stop_loss | 5 | -1.49 | +| LTC | 06-17 19:00 | 06-18 04:00 | stop_loss | 9 | -1.49 | +| SUI | 06-18 04:00 | 06-18 05:00 | stop_loss | 1 | -1.49 | +| OP | 06-18 05:00 | 06-18 07:00 | take_profit | 2 | +1.49 | +| UNI | 06-18 06:00 | 06-18 07:00 | take_profit | 1 | +1.49 | +| FET | 06-18 08:00 | 06-18 11:00 | stop_loss | 3 | -1.49 | +| INJ | 06-18 05:00 | 06-18 11:00 | stop_loss | 6 | -1.49 | +| KAS | 06-18 03:00 | 06-18 12:00 | trailing_stop | 9 | -0.61 | +| ETC | 06-18 05:00 | 06-18 15:00 | stop_loss | 10 | -1.49 | +| SHIB | 06-18 13:00 | 06-18 15:00 | stop_loss | 2 | -1.49 | +| APT | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.11 | +| ARB | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.61 | +| AVAX | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.29 | +| BONK | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | +0.09 | +| ETC | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.43 | +| FET | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.66 | +| FIL | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.53 | +| KAS | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.40 | +| PEPE | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.63 | +| RENDER | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.36 | +| SEI | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.35 | +| SUI | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.53 | +| TIA | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.13 | +| TON | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.53 | +| UNI | 06-18 15:00 | 06-18 16:00 | stop_loss | 1 | -1.49 | +| WIF | 06-18 15:00 | 06-18 16:00 | trailing_stop | 1 | -0.22 | +| AVAX | 06-18 16:00 | 06-18 17:00 | stop_loss | 1 | -1.49 | +| FET | 06-18 16:00 | 06-18 17:00 | stop_loss | 1 | -1.49 | +| FIL | 06-18 16:00 | 06-18 17:00 | stop_loss | 1 | -1.49 | +| SUI | 06-18 16:00 | 06-18 17:00 | stop_loss | 1 | -1.49 | +| TIA | 06-18 16:00 | 06-18 17:00 | stop_loss | 1 | -1.49 | +| INJ | 06-18 15:00 | 06-18 19:00 | take_profit | 4 | +1.49 | +| UNI | 06-18 16:00 | 06-18 19:00 | trailing_stop | 3 | -0.13 | +| FET | 06-18 17:00 | 06-18 20:00 | take_profit | 3 | +1.49 | +| SHIB | 06-18 15:00 | 06-18 20:00 | take_profit | 5 | +1.49 | +| AVAX | 06-18 17:00 | 06-18 21:00 | trailing_stop | 4 | -0.68 | +| LTC | 06-18 15:00 | 06-19 01:00 | take_profit | 10 | +1.49 | +| AVAX | 06-19 00:00 | 06-19 02:00 | stop_loss | 2 | -1.49 | +| ATOM | 06-18 15:00 | 06-19 03:00 | trailing_stop | 12 | -0.10 | +| SHIB | 06-18 21:00 | 06-19 03:00 | trailing_stop | 6 | -0.66 | +| SUI | 06-18 22:00 | 06-19 03:00 | stop_loss | 5 | -1.49 | +| NEAR | 06-19 03:00 | 06-19 04:00 | stop_loss | 1 | -1.49 | +| OP | 06-19 03:00 | 06-19 04:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-19 04:00 | 06-19 05:00 | trailing_stop | 1 | -0.29 | +| OP | 06-19 04:00 | 06-19 08:00 | trailing_stop | 4 | -0.33 | +| SEI | 06-19 10:00 | 06-19 12:00 | trailing_stop | 2 | -0.64 | +| TIA | 06-19 10:00 | 06-19 12:00 | stop_loss | 2 | -1.49 | +| KAS | 06-19 11:00 | 06-19 13:00 | take_profit | 2 | +1.49 | +| INJ | 06-19 14:00 | 06-19 16:00 | trailing_stop | 2 | -0.51 | +| OP | 06-19 14:00 | 06-19 16:00 | stop_loss | 2 | -1.49 | +| AVAX | 06-19 12:00 | 06-19 17:00 | stop_loss | 5 | -1.49 | +| TON | 06-19 16:00 | 06-19 17:00 | trailing_stop | 1 | -0.69 | +| SUI | 06-19 14:00 | 06-19 19:00 | stop_loss | 5 | -1.49 | +| OP | 06-20 03:00 | 06-20 05:00 | take_profit | 2 | +1.49 | +| AVAX | 06-20 03:00 | 06-20 06:00 | stop_loss | 3 | -1.49 | +| KAS | 06-19 16:00 | 06-20 07:00 | take_profit | 15 | +1.49 | +| ATOM | 06-20 13:00 | 06-20 14:00 | trailing_stop | 1 | -0.64 | +| FET | 06-20 13:00 | 06-20 14:00 | take_profit | 1 | +1.49 | +| INJ | 06-20 13:00 | 06-20 14:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-20 13:00 | 06-20 14:00 | stop_loss | 1 | -1.49 | +| OP | 06-20 13:00 | 06-20 14:00 | stop_loss | 1 | -1.49 | +| UNI | 06-20 13:00 | 06-20 14:00 | stop_loss | 1 | -1.49 | +| TRX | 06-18 11:00 | 06-20 21:00 | take_profit | 58 | +1.49 | +| OP | 06-20 20:00 | 06-20 22:00 | take_profit | 2 | +1.49 | +| SEI | 06-20 20:00 | 06-20 22:00 | trailing_stop | 2 | -0.38 | +| WIF | 06-20 19:00 | 06-20 22:00 | trailing_stop | 3 | -0.35 | +| RENDER | 06-20 18:00 | 06-21 00:00 | stop_loss | 6 | -1.49 | +| SEI | 06-20 23:00 | 06-21 00:00 | trailing_stop | 1 | -0.38 | +| SUI | 06-20 17:00 | 06-21 05:00 | trailing_stop | 12 | -0.34 | +| KAS | 06-20 22:00 | 06-21 08:00 | stop_loss | 10 | -1.49 | +| RENDER | 06-21 00:00 | 06-21 08:00 | stop_loss | 8 | -1.49 | +| ETC | 06-21 03:00 | 06-21 11:00 | stop_loss | 8 | -1.49 | +| OP | 06-21 12:00 | 06-21 16:00 | stop_loss | 4 | -1.49 | +| ARB | 06-21 20:00 | 06-21 21:00 | stop_loss | 1 | -1.49 | +| AVAX | 06-21 20:00 | 06-21 21:00 | stop_loss | 1 | -1.49 | +| INJ | 06-21 17:00 | 06-21 21:00 | stop_loss | 4 | -1.49 | +| OP | 06-21 17:00 | 06-21 21:00 | stop_loss | 4 | -1.49 | +| SEI | 06-21 20:00 | 06-21 21:00 | stop_loss | 1 | -1.49 | +| FET | 06-21 21:00 | 06-21 22:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-21 20:00 | 06-21 22:00 | stop_loss | 2 | -1.49 | +| AVAX | 06-21 21:00 | 06-21 23:00 | stop_loss | 2 | -1.49 | +| BONK | 06-21 20:00 | 06-21 23:00 | stop_loss | 3 | -1.49 | +| FET | 06-21 22:00 | 06-21 23:00 | stop_loss | 1 | -1.49 | +| INJ | 06-21 21:00 | 06-21 23:00 | stop_loss | 2 | -1.49 | +| OP | 06-21 21:00 | 06-21 23:00 | stop_loss | 2 | -1.49 | +| APT | 06-21 23:00 | 06-22 00:00 | take_profit | 1 | +1.49 | +| ARB | 06-21 23:00 | 06-22 00:00 | trailing_stop | 1 | -0.01 | +| AVAX | 06-21 23:00 | 06-22 00:00 | trailing_stop | 1 | -0.26 | +| BONK | 06-21 23:00 | 06-22 00:00 | trailing_stop | 1 | -0.16 | +| FET | 06-21 23:00 | 06-22 00:00 | trailing_stop | 1 | -0.16 | +| FIL | 06-21 23:00 | 06-22 00:00 | take_profit | 1 | +1.49 | +| INJ | 06-21 23:00 | 06-22 00:00 | trailing_stop | 1 | +0.02 | +| OP | 06-21 23:00 | 06-22 00:00 | trailing_stop | 1 | -0.02 | +| PEPE | 06-21 23:00 | 06-22 00:00 | take_profit | 1 | +1.49 | +| SUI | 06-21 23:00 | 06-22 00:00 | trailing_stop | 1 | +0.02 | +| TON | 06-21 21:00 | 06-22 00:00 | stop_loss | 3 | -1.49 | +| KAS | 06-21 23:00 | 06-22 01:00 | take_profit | 2 | +1.49 | +| RENDER | 06-21 23:00 | 06-22 01:00 | take_profit | 2 | +1.49 | +| SHIB | 06-21 23:00 | 06-22 03:00 | trailing_stop | 4 | -0.42 | +| ATOM | 06-21 21:00 | 06-22 04:00 | take_profit | 7 | +1.49 | +| OP | 06-22 03:00 | 06-22 07:00 | take_profit | 4 | +1.49 | +| TON | 06-22 00:00 | 06-22 07:00 | take_profit | 7 | +1.49 | +| SHIB | 06-22 03:00 | 06-22 12:00 | take_profit | 9 | +1.49 | +| ETC | 06-21 23:00 | 06-22 13:00 | take_profit | 14 | +1.49 | +| LTC | 06-22 05:00 | 06-22 14:00 | trailing_stop | 9 | -0.10 | +| FIL | 06-22 19:00 | 06-22 22:00 | stop_loss | 3 | -1.49 | +| RENDER | 06-22 21:00 | 06-22 22:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-22 22:00 | 06-23 00:00 | stop_loss | 2 | -1.49 | +| RENDER | 06-22 22:00 | 06-23 00:00 | stop_loss | 2 | -1.49 | +| NEAR | 06-23 00:00 | 06-23 01:00 | stop_loss | 1 | -1.49 | +| SUI | 06-23 01:00 | 06-23 02:00 | trailing_stop | 1 | -0.67 | +| NEAR | 06-23 01:00 | 06-23 03:00 | trailing_stop | 2 | -0.68 | +| ARB | 06-22 22:00 | 06-23 04:00 | stop_loss | 6 | -1.49 | +| PEPE | 06-23 03:00 | 06-23 04:00 | stop_loss | 1 | -1.49 | +| WIF | 06-23 03:00 | 06-23 04:00 | stop_loss | 1 | -1.49 | +| ATOM | 06-23 01:00 | 06-23 05:00 | stop_loss | 4 | -1.49 | +| AVAX | 06-23 03:00 | 06-23 05:00 | stop_loss | 2 | -1.49 | +| INJ | 06-23 04:00 | 06-23 06:00 | stop_loss | 2 | -1.49 | +| OP | 06-22 22:00 | 06-23 06:00 | stop_loss | 8 | -1.49 | +| RENDER | 06-23 00:00 | 06-23 06:00 | stop_loss | 6 | -1.49 | +| WIF | 06-23 04:00 | 06-23 06:00 | stop_loss | 2 | -1.49 | +| FIL | 06-23 06:00 | 06-23 07:00 | stop_loss | 1 | -1.49 | +| UNI | 06-23 06:00 | 06-23 07:00 | stop_loss | 1 | -1.49 | +| APT | 06-23 06:00 | 06-23 08:00 | stop_loss | 2 | -1.49 | +| ARB | 06-23 06:00 | 06-23 08:00 | stop_loss | 2 | -1.49 | +| ATOM | 06-23 06:00 | 06-23 08:00 | stop_loss | 2 | -1.49 | +| BONK | 06-23 06:00 | 06-23 08:00 | stop_loss | 2 | -1.49 | +| FET | 06-23 06:00 | 06-23 08:00 | stop_loss | 2 | -1.49 | +| FIL | 06-23 07:00 | 06-23 08:00 | stop_loss | 1 | -1.49 | +| INJ | 06-23 06:00 | 06-23 08:00 | stop_loss | 2 | -1.49 | +| LTC | 06-23 07:00 | 06-23 08:00 | stop_loss | 1 | -1.49 | +| OP | 06-23 06:00 | 06-23 08:00 | stop_loss | 2 | -1.49 | +| PEPE | 06-23 06:00 | 06-23 08:00 | stop_loss | 2 | -1.49 | +| SHIB | 06-23 06:00 | 06-23 08:00 | stop_loss | 2 | -1.49 | +| SUI | 06-23 06:00 | 06-23 08:00 | stop_loss | 2 | -1.49 | +| UNI | 06-23 07:00 | 06-23 08:00 | stop_loss | 1 | -1.49 | +| AVAX | 06-23 08:00 | 06-23 09:00 | trailing_stop | 1 | -0.31 | +| TON | 06-23 08:00 | 06-23 09:00 | take_profit | 1 | +1.49 | +| SUI | 06-23 08:00 | 06-23 10:00 | take_profit | 2 | +1.49 | +| TIA | 06-23 08:00 | 06-23 10:00 | stop_loss | 2 | -1.49 | +| ARB | 06-23 08:00 | 06-23 11:00 | take_profit | 3 | +1.49 | +| FET | 06-23 08:00 | 06-23 11:00 | trailing_stop | 3 | -0.02 | +| OP | 06-23 08:00 | 06-23 11:00 | trailing_stop | 3 | +0.04 | +| PEPE | 06-23 08:00 | 06-23 11:00 | trailing_stop | 3 | -0.60 | +| TIA | 06-23 10:00 | 06-23 11:00 | stop_loss | 1 | -1.49 | +| TON | 06-23 10:00 | 06-23 11:00 | trailing_stop | 1 | -0.43 | +| UNI | 06-23 08:00 | 06-23 11:00 | take_profit | 3 | +1.49 | +| WIF | 06-23 08:00 | 06-23 11:00 | trailing_stop | 3 | -0.56 | +| SHIB | 06-23 08:00 | 06-23 12:00 | take_profit | 4 | +1.49 | +| APT | 06-23 08:00 | 06-23 13:00 | take_profit | 5 | +1.49 | +| ATOM | 06-23 08:00 | 06-23 13:00 | trailing_stop | 5 | -0.11 | +| FIL | 06-23 08:00 | 06-23 13:00 | take_profit | 5 | +1.49 | +| RENDER | 06-23 08:00 | 06-23 13:00 | take_profit | 5 | +1.49 | +| SEI | 06-23 08:00 | 06-23 13:00 | trailing_stop | 5 | -0.25 | +| BONK | 06-23 08:00 | 06-23 14:00 | take_profit | 6 | +1.49 | +| LTC | 06-23 08:00 | 06-23 14:00 | stop_loss | 6 | -1.49 | +| APT | 06-23 14:00 | 06-23 15:00 | stop_loss | 1 | -1.49 | +| ARB | 06-23 14:00 | 06-23 15:00 | stop_loss | 1 | -1.49 | +| LTC | 06-23 14:00 | 06-23 15:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-23 14:00 | 06-23 15:00 | stop_loss | 1 | -1.49 | +| FET | 06-23 14:00 | 06-23 17:00 | stop_loss | 3 | -1.49 | +| PEPE | 06-23 15:00 | 06-23 17:00 | stop_loss | 2 | -1.49 | +| TIA | 06-23 17:00 | 06-23 18:00 | trailing_stop | 1 | -0.39 | +| UNI | 06-23 14:00 | 06-23 18:00 | stop_loss | 4 | -1.49 | +| APT | 06-23 15:00 | 06-23 20:00 | take_profit | 5 | +1.49 | +| FIL | 06-23 15:00 | 06-23 20:00 | take_profit | 5 | +1.49 | +| FET | 06-23 17:00 | 06-23 22:00 | take_profit | 5 | +1.49 | +| RENDER | 06-23 15:00 | 06-24 00:00 | take_profit | 9 | +1.49 | +| TON | 06-23 19:00 | 06-24 00:00 | stop_loss | 5 | -1.49 | +| KAS | 06-23 22:00 | 06-24 01:00 | take_profit | 3 | +1.49 | +| SUI | 06-23 17:00 | 06-24 02:00 | trailing_stop | 9 | -0.34 | +| ARB | 06-23 15:00 | 06-24 03:00 | stop_loss | 12 | -1.49 | +| ATOM | 06-23 15:00 | 06-24 03:00 | stop_loss | 12 | -1.49 | +| LTC | 06-23 15:00 | 06-24 04:00 | stop_loss | 13 | -1.49 | +| NEAR | 06-24 02:00 | 06-24 04:00 | stop_loss | 2 | -1.49 | +| PEPE | 06-24 02:00 | 06-24 04:00 | stop_loss | 2 | -1.49 | +| ATOM | 06-24 08:00 | 06-24 09:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-24 09:00 | 06-24 10:00 | stop_loss | 1 | -1.49 | +| ATOM | 06-24 09:00 | 06-24 11:00 | stop_loss | 2 | -1.49 | +| INJ | 06-24 10:00 | 06-24 11:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-24 10:00 | 06-24 11:00 | trailing_stop | 1 | -0.57 | +| ATOM | 06-24 11:00 | 06-24 13:00 | stop_loss | 2 | -1.49 | +| FIL | 06-24 10:00 | 06-24 13:00 | stop_loss | 3 | -1.49 | +| INJ | 06-24 11:00 | 06-24 13:00 | stop_loss | 2 | -1.49 | +| SHIB | 06-23 16:00 | 06-24 13:00 | stop_loss | 21 | -1.49 | +| WIF | 06-24 10:00 | 06-24 13:00 | stop_loss | 3 | -1.49 | +| FET | 06-24 13:00 | 06-24 14:00 | trailing_stop | 1 | -0.48 | +| INJ | 06-24 13:00 | 06-24 14:00 | trailing_stop | 1 | -0.57 | +| UNI | 06-24 13:00 | 06-24 14:00 | trailing_stop | 1 | -0.69 | +| APT | 06-24 13:00 | 06-24 15:00 | stop_loss | 2 | -1.49 | +| ARB | 06-24 13:00 | 06-24 15:00 | stop_loss | 2 | -1.49 | +| AVAX | 06-24 13:00 | 06-24 15:00 | stop_loss | 2 | -1.49 | +| BONK | 06-24 13:00 | 06-24 15:00 | stop_loss | 2 | -1.49 | +| ETC | 06-24 13:00 | 06-24 15:00 | stop_loss | 2 | -1.49 | +| FIL | 06-24 13:00 | 06-24 15:00 | stop_loss | 2 | -1.49 | +| PEPE | 06-24 13:00 | 06-24 15:00 | stop_loss | 2 | -1.49 | +| SHIB | 06-24 13:00 | 06-24 15:00 | stop_loss | 2 | -1.49 | +| SUI | 06-24 13:00 | 06-24 15:00 | stop_loss | 2 | -1.49 | +| WIF | 06-24 13:00 | 06-24 15:00 | stop_loss | 2 | -1.49 | +| APT | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| ARB | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| AVAX | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| BONK | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| ETC | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| FET | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| FIL | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| INJ | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| KAS | 06-24 13:00 | 06-24 16:00 | stop_loss | 3 | -1.49 | +| LTC | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| OP | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| RENDER | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| SUI | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| TIA | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| TRX | 06-23 08:00 | 06-24 16:00 | stop_loss | 32 | -1.49 | +| UNI | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| WIF | 06-24 15:00 | 06-24 16:00 | stop_loss | 1 | -1.49 | +| APT | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| ARB | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| AVAX | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| BONK | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| ETC | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| FET | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| FIL | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| INJ | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| KAS | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| LTC | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| OP | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| RENDER | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| SEI | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| SUI | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| TIA | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| UNI | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| WIF | 06-24 16:00 | 06-24 17:00 | stop_loss | 1 | -1.49 | +| APT | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| AVAX | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| BONK | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| ETC | 06-24 17:00 | 06-24 18:00 | stop_loss | 1 | -1.49 | +| FET | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| FIL | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| INJ | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| KAS | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| NEAR | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| OP | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| PEPE | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| RENDER | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| SEI | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| SUI | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| TIA | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| UNI | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| WIF | 06-24 17:00 | 06-24 18:00 | take_profit | 1 | +1.49 | +| ARB | 06-24 17:00 | 06-24 19:00 | trailing_stop | 2 | +0.19 | +| FIL | 06-24 18:00 | 06-24 19:00 | trailing_stop | 1 | -0.31 | +| ATOM | 06-24 16:00 | 06-24 20:00 | take_profit | 4 | +1.49 | +| AVAX | 06-24 18:00 | 06-24 20:00 | take_profit | 2 | +1.49 | +| BONK | 06-24 18:00 | 06-24 20:00 | take_profit | 2 | +1.49 | +| KAS | 06-24 18:00 | 06-24 20:00 | take_profit | 2 | +1.49 | +| LTC | 06-24 17:00 | 06-24 20:00 | take_profit | 3 | +1.49 | +| SHIB | 06-24 17:00 | 06-24 20:00 | take_profit | 3 | +1.49 | +| INJ | 06-24 21:00 | 06-24 22:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-24 22:00 | 06-25 00:00 | take_profit | 2 | +1.49 | +| INJ | 06-24 22:00 | 06-25 02:00 | stop_loss | 4 | -1.49 | +| PEPE | 06-24 22:00 | 06-25 10:00 | stop_loss | 12 | -1.49 | +| ATOM | 06-25 11:00 | 06-25 12:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-25 00:00 | 06-25 12:00 | stop_loss | 12 | -1.49 | +| ATOM | 06-25 12:00 | 06-25 13:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-25 11:00 | 06-25 13:00 | stop_loss | 2 | -1.49 | +| TRX | 06-24 16:00 | 06-25 13:00 | stop_loss | 21 | -1.49 | +| APT | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| ARB | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| ATOM | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| AVAX | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| BONK | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| ETC | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| FET | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| FIL | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| KAS | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| LTC | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| NEAR | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| OP | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| PEPE | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| RENDER | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| SHIB | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| SUI | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| TIA | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| TON | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| UNI | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| WIF | 06-25 13:00 | 06-25 14:00 | take_profit | 1 | +1.49 | +| APT | 06-25 14:00 | 06-25 15:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-25 14:00 | 06-25 15:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-25 14:00 | 06-25 15:00 | stop_loss | 1 | -1.49 | +| APT | 06-25 15:00 | 06-25 17:00 | take_profit | 2 | +1.49 | +| AVAX | 06-25 15:00 | 06-25 17:00 | take_profit | 2 | +1.49 | +| PEPE | 06-25 16:00 | 06-25 17:00 | take_profit | 1 | +1.49 | +| WIF | 06-25 16:00 | 06-25 17:00 | trailing_stop | 1 | +0.05 | +| FET | 06-25 15:00 | 06-25 19:00 | stop_loss | 4 | -1.49 | +| FET | 06-25 22:00 | 06-25 23:00 | trailing_stop | 1 | -0.21 | +| APT | 06-25 22:00 | 06-26 01:00 | stop_loss | 3 | -1.49 | +| PEPE | 06-25 22:00 | 06-26 01:00 | stop_loss | 3 | -1.49 | +| PEPE | 06-26 01:00 | 06-26 02:00 | stop_loss | 1 | -1.49 | +| SEI | 06-26 02:00 | 06-26 03:00 | take_profit | 1 | +1.49 | +| TRX | 06-25 13:00 | 06-26 13:00 | stop_loss | 24 | -1.49 | +| SEI | 06-26 17:00 | 06-26 22:00 | take_profit | 5 | +1.49 | +| NEAR | 06-26 21:00 | 06-27 02:00 | take_profit | 5 | +1.49 | +| UNI | 06-27 07:00 | 06-27 09:00 | stop_loss | 2 | -1.49 | +| OP | 06-27 10:00 | 06-27 15:00 | stop_loss | 5 | -1.49 | +| UNI | 06-27 09:00 | 06-27 15:00 | take_profit | 6 | +1.49 | +| FET | 06-27 16:00 | 06-27 17:00 | stop_loss | 1 | -1.49 | +| KAS | 06-27 05:00 | 06-27 18:00 | take_profit | 13 | +1.49 | +| APT | 06-27 17:00 | 06-27 19:00 | stop_loss | 2 | -1.49 | +| FET | 06-27 17:00 | 06-27 19:00 | stop_loss | 2 | -1.49 | +| OP | 06-27 17:00 | 06-27 19:00 | stop_loss | 2 | -1.49 | +| RENDER | 06-27 18:00 | 06-27 19:00 | stop_loss | 1 | -1.49 | +| SEI | 06-27 17:00 | 06-27 19:00 | stop_loss | 2 | -1.49 | +| ETC | 06-27 17:00 | 06-27 21:00 | stop_loss | 4 | -1.49 | +| APT | 06-27 19:00 | 06-27 22:00 | stop_loss | 3 | -1.49 | +| AVAX | 06-27 19:00 | 06-27 22:00 | stop_loss | 3 | -1.49 | +| FIL | 06-27 19:00 | 06-27 22:00 | stop_loss | 3 | -1.49 | +| INJ | 06-27 19:00 | 06-27 22:00 | stop_loss | 3 | -1.49 | +| RENDER | 06-27 19:00 | 06-27 22:00 | stop_loss | 3 | -1.49 | +| SEI | 06-27 19:00 | 06-27 22:00 | trailing_stop | 3 | -0.66 | +| SUI | 06-27 19:00 | 06-27 22:00 | stop_loss | 3 | -1.49 | +| INJ | 06-27 22:00 | 06-27 23:00 | stop_loss | 1 | -1.49 | +| ARB | 06-27 21:00 | 06-28 03:00 | confirmed_bearish_exit | 6 | +0.04 | +| INJ | 06-27 23:00 | 06-28 04:00 | take_profit | 5 | +1.49 | +| OP | 06-27 19:00 | 06-28 04:00 | take_profit | 9 | +1.49 | +| ATOM | 06-27 19:00 | 06-28 05:00 | stop_loss | 10 | -1.49 | +| FET | 06-27 19:00 | 06-28 05:00 | stop_loss | 10 | -1.49 | +| RENDER | 06-27 23:00 | 06-28 05:00 | stop_loss | 6 | -1.49 | +| APT | 06-28 05:00 | 06-28 06:00 | stop_loss | 1 | -1.49 | +| ARB | 06-28 04:00 | 06-28 06:00 | stop_loss | 2 | -1.49 | +| BONK | 06-27 19:00 | 06-28 06:00 | stop_loss | 11 | -1.49 | +| INJ | 06-28 05:00 | 06-28 06:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-27 21:00 | 06-28 06:00 | stop_loss | 9 | -1.49 | +| WIF | 06-28 05:00 | 06-28 06:00 | stop_loss | 1 | -1.49 | +| WIF | 06-28 06:00 | 06-28 07:00 | take_profit | 1 | +1.49 | +| NEAR | 06-28 06:00 | 06-28 08:00 | take_profit | 2 | +1.49 | +| ETC | 06-27 21:00 | 06-28 09:00 | stop_loss | 12 | -1.49 | +| FIL | 06-27 23:00 | 06-28 09:00 | trailing_stop | 10 | -0.48 | +| LTC | 06-28 05:00 | 06-28 09:00 | take_profit | 4 | +1.49 | +| OP | 06-28 05:00 | 06-28 09:00 | stop_loss | 4 | -1.49 | +| APT | 06-28 06:00 | 06-28 10:00 | trailing_stop | 4 | -0.34 | +| KAS | 06-28 08:00 | 06-28 10:00 | stop_loss | 2 | -1.49 | +| SEI | 06-28 05:00 | 06-28 13:00 | stop_loss | 8 | -1.49 | +| SUI | 06-28 08:00 | 06-28 16:00 | stop_loss | 8 | -1.49 | +| SEI | 06-28 16:00 | 06-28 20:00 | trailing_stop | 4 | +0.02 | +| NEAR | 06-28 17:00 | 06-28 21:00 | trailing_stop | 4 | -0.40 | +| APT | 06-28 22:00 | 06-28 23:00 | trailing_stop | 1 | -0.65 | +| ARB | 06-28 22:00 | 06-28 23:00 | take_profit | 1 | +1.49 | +| PEPE | 06-28 22:00 | 06-28 23:00 | trailing_stop | 1 | -0.43 | +| SHIB | 06-28 22:00 | 06-28 23:00 | trailing_stop | 1 | -0.50 | +| SUI | 06-28 22:00 | 06-28 23:00 | trailing_stop | 1 | -0.55 | +| KAS | 06-28 21:00 | 06-29 00:00 | take_profit | 3 | +1.49 | +| LTC | 06-28 22:00 | 06-29 00:00 | take_profit | 2 | +1.49 | +| ATOM | 06-28 21:00 | 06-29 02:00 | trailing_stop | 5 | -0.31 | +| FIL | 06-28 21:00 | 06-29 02:00 | trailing_stop | 5 | -0.45 | +| INJ | 06-29 01:00 | 06-29 02:00 | stop_loss | 1 | -1.49 | +| PEPE | 06-29 04:00 | 06-29 08:00 | stop_loss | 4 | -1.49 | +| ETC | 06-28 13:00 | 06-29 15:00 | stop_loss | 26 | -1.49 | +| ATOM | 06-29 13:00 | 06-29 16:00 | stop_loss | 3 | -1.49 | +| FET | 06-29 16:00 | 06-29 17:00 | take_profit | 1 | +1.49 | +| ATOM | 06-29 16:00 | 06-29 19:00 | take_profit | 3 | +1.49 | +| TRX | 06-26 13:00 | 06-30 00:00 | trailing_stop | 83 | -0.37 | +| UNI | 06-29 23:00 | 06-30 00:00 | stop_loss | 1 | -1.49 | +| WIF | 06-30 00:00 | 06-30 02:00 | stop_loss | 2 | -1.49 | +| TIA | 06-30 04:00 | 06-30 05:00 | stop_loss | 1 | -1.49 | +| APT | 06-30 00:00 | 06-30 08:00 | stop_loss | 8 | -1.49 | +| ARB | 06-30 07:00 | 06-30 08:00 | stop_loss | 1 | -1.49 | +| NEAR | 06-30 07:00 | 06-30 08:00 | stop_loss | 1 | -1.49 | +| OP | 06-30 01:00 | 06-30 08:00 | stop_loss | 7 | -1.49 | +| TIA | 06-30 05:00 | 06-30 08:00 | stop_loss | 3 | -1.49 | +| UNI | 06-30 00:00 | 06-30 08:00 | stop_loss | 8 | -1.49 | +| WIF | 06-30 07:00 | 06-30 08:00 | stop_loss | 1 | -1.49 | +| TIA | 06-30 08:00 | 06-30 09:00 | stop_loss | 1 | -1.49 | +| FIL | 06-30 07:00 | 06-30 10:00 | take_profit | 3 | +1.49 | +| TIA | 06-30 09:00 | 06-30 10:00 | stop_loss | 1 | -1.49 | +| BONK | 06-30 07:00 | 06-30 11:00 | stop_loss | 4 | -1.49 | +| OP | 06-30 08:00 | 06-30 11:00 | stop_loss | 3 | -1.49 | +| TIA | 06-30 10:00 | 06-30 11:00 | stop_loss | 1 | -1.49 | +| ARB | 06-30 08:00 | 06-30 12:00 | stop_loss | 4 | -1.49 | +| AVAX | 06-30 07:00 | 06-30 12:00 | stop_loss | 5 | -1.49 | +| BONK | 06-30 11:00 | 06-30 12:00 | stop_loss | 1 | -1.49 | +| ETC | 06-30 07:00 | 06-30 12:00 | stop_loss | 5 | -1.49 | +| FIL | 06-30 11:00 | 06-30 12:00 | stop_loss | 1 | -1.49 | +| INJ | 06-30 11:00 | 06-30 12:00 | stop_loss | 1 | -1.49 | +| LTC | 06-30 08:00 | 06-30 12:00 | stop_loss | 4 | -1.49 | +| RENDER | 06-30 11:00 | 06-30 12:00 | stop_loss | 1 | -1.49 | +| SHIB | 06-30 09:00 | 06-30 12:00 | stop_loss | 3 | -1.49 | +| TIA | 06-30 11:00 | 06-30 12:00 | stop_loss | 1 | -1.49 | +| APT | 06-30 12:00 | 06-30 13:00 | take_profit | 1 | +1.49 | +| ARB | 06-30 12:00 | 06-30 13:00 | take_profit | 1 | +1.49 | +| AVAX | 06-30 12:00 | 06-30 13:00 | trailing_stop | 1 | -0.49 | +| BONK | 06-30 12:00 | 06-30 13:00 | trailing_stop | 1 | -0.24 | +| FIL | 06-30 12:00 | 06-30 13:00 | trailing_stop | 1 | -0.30 | +| INJ | 06-30 12:00 | 06-30 13:00 | trailing_stop | 1 | -0.44 | +| NEAR | 06-30 12:00 | 06-30 13:00 | trailing_stop | 1 | -0.70 | +| PEPE | 06-30 12:00 | 06-30 13:00 | trailing_stop | 1 | -0.41 | +| RENDER | 06-30 12:00 | 06-30 13:00 | trailing_stop | 1 | -0.24 | +| SUI | 06-30 12:00 | 06-30 13:00 | trailing_stop | 1 | -0.29 | +| TIA | 06-30 12:00 | 06-30 13:00 | trailing_stop | 1 | -0.35 | +| TRX | 06-30 00:00 | 06-30 13:00 | stop_loss | 13 | -1.49 | +| WIF | 06-30 12:00 | 06-30 13:00 | trailing_stop | 1 | -0.28 | +| SEI | 06-30 12:00 | 06-30 15:00 | trailing_stop | 3 | -0.59 | +| NEAR | 06-30 13:00 | 06-30 16:00 | stop_loss | 3 | -1.49 | +| TIA | 06-30 13:00 | 06-30 16:00 | stop_loss | 3 | -1.49 | +| SHIB | 06-30 12:00 | 06-30 18:00 | take_profit | 6 | +1.49 | +| ETC | 06-30 12:00 | 06-30 21:00 | trailing_stop | 9 | -0.55 | +| KAS | 06-30 19:00 | 06-30 21:00 | stop_loss | 2 | -1.49 | +| BONK | 06-30 20:00 | 07-01 01:00 | stop_loss | 5 | -1.49 | +| LTC | 06-30 12:00 | 07-01 01:00 | stop_loss | 13 | -1.49 | +| NEAR | 06-30 21:00 | 07-01 01:00 | stop_loss | 4 | -1.49 | +| OP | 06-30 20:00 | 07-01 01:00 | stop_loss | 5 | -1.49 | +| UNI | 06-30 12:00 | 07-01 01:00 | trailing_stop | 13 | -0.45 | +| WIF | 07-01 01:00 | 07-01 02:00 | trailing_stop | 1 | -0.35 | +| SEI | 07-01 06:00 | 07-01 08:00 | trailing_stop | 2 | -0.60 | +| PEPE | 07-01 06:00 | 07-01 09:00 | confirmed_bearish_exit | 3 | +0.38 | +| ETC | 07-01 06:00 | 07-01 13:00 | stop_loss | 7 | -1.49 | +| LTC | 07-01 12:00 | 07-01 13:00 | trailing_stop | 1 | -0.29 | +| INJ | 07-01 23:00 | 07-02 00:00 | stop_loss | 1 | -1.49 | +| INJ | 07-02 00:00 | 07-02 02:00 | trailing_stop | 2 | -0.36 | +| TIA | 07-01 23:00 | 07-02 03:00 | take_profit | 4 | +1.49 | +| INJ | 07-02 10:00 | 07-02 13:00 | take_profit | 3 | +1.49 | +| WIF | 07-03 00:00 | 07-03 01:00 | take_profit | 1 | +1.49 | +| WIF | 07-03 01:00 | 07-03 02:00 | stop_loss | 1 | -1.49 | +| TIA | 07-03 03:00 | 07-03 05:00 | stop_loss | 2 | -1.49 | +| ETC | 07-03 03:00 | 07-03 10:00 | take_profit | 7 | +1.49 | +| WIF | 07-03 03:00 | 07-03 10:00 | take_profit | 7 | +1.49 | +| LTC | 07-03 08:00 | 07-03 18:00 | take_profit | 10 | +1.49 | +| TRX | 06-30 16:00 | 07-03 20:00 | take_profit | 76 | +1.49 | +| INJ | 07-04 01:00 | 07-04 03:00 | take_profit | 2 | +1.49 | +| NEAR | 07-04 03:00 | 07-04 04:00 | stop_loss | 1 | -1.49 | +| NEAR | 07-04 04:00 | 07-04 05:00 | stop_loss | 1 | -1.49 | +| INJ | 07-04 07:00 | 07-04 09:00 | stop_loss | 2 | -1.49 | +| ETC | 07-04 01:00 | 07-04 10:00 | take_profit | 9 | +1.49 | +| FET | 07-04 06:00 | 07-04 12:00 | take_profit | 6 | +1.49 | +| FET | 07-04 12:00 | 07-04 14:00 | stop_loss | 2 | -1.49 | +| APT | 07-04 11:00 | 07-04 15:00 | take_profit | 4 | +1.49 | +| ARB | 07-04 10:00 | 07-04 15:00 | take_profit | 5 | +1.49 | +| AVAX | 07-04 10:00 | 07-04 15:00 | take_profit | 5 | +1.49 | +| LTC | 07-04 10:00 | 07-04 15:00 | take_profit | 5 | +1.49 | +| SEI | 07-04 09:00 | 07-04 15:00 | take_profit | 6 | +1.49 | +| SHIB | 07-04 11:00 | 07-04 15:00 | take_profit | 4 | +1.49 | +| SUI | 07-04 09:00 | 07-04 15:00 | take_profit | 6 | +1.49 | +| TIA | 07-04 08:00 | 07-04 15:00 | take_profit | 7 | +1.49 | +| UNI | 07-04 02:00 | 07-04 15:00 | take_profit | 13 | +1.49 | +| RENDER | 07-04 09:00 | 07-04 16:00 | take_profit | 7 | +1.49 | +| FET | 07-04 14:00 | 07-04 17:00 | trailing_stop | 3 | -0.68 | +| ATOM | 07-04 07:00 | 07-04 23:00 | trailing_stop | 16 | -0.33 | +| FET | 07-05 00:00 | 07-05 02:00 | stop_loss | 2 | -1.49 | +| ATOM | 07-05 01:00 | 07-05 04:00 | stop_loss | 3 | -1.49 | +| ETC | 07-05 02:00 | 07-05 05:00 | stop_loss | 3 | -1.49 | +| NEAR | 07-05 04:00 | 07-05 05:00 | stop_loss | 1 | -1.49 | +| FIL | 07-05 02:00 | 07-05 07:00 | confirmed_bearish_exit | 5 | +0.01 | +| ATOM | 07-05 04:00 | 07-05 09:00 | stop_loss | 5 | -1.49 | +| OP | 07-05 05:00 | 07-05 09:00 | stop_loss | 4 | -1.49 | +| RENDER | 07-05 07:00 | 07-05 09:00 | stop_loss | 2 | -1.49 | +| SEI | 07-05 05:00 | 07-05 09:00 | stop_loss | 4 | -1.49 | +| TIA | 07-05 08:00 | 07-05 09:00 | stop_loss | 1 | -1.49 | +| FET | 07-05 02:00 | 07-05 10:00 | stop_loss | 8 | -1.49 | +| INJ | 07-05 05:00 | 07-05 10:00 | stop_loss | 5 | -1.49 | +| TIA | 07-05 09:00 | 07-05 10:00 | stop_loss | 1 | -1.49 | +| SEI | 07-05 09:00 | 07-05 13:00 | confirmed_bearish_exit | 4 | +0.80 | +| LTC | 07-05 05:00 | 07-05 14:00 | take_profit | 9 | +1.49 | +| AVAX | 07-05 05:00 | 07-05 15:00 | take_profit | 10 | +1.49 | +| SUI | 07-05 01:00 | 07-05 15:00 | take_profit | 14 | +1.49 | +| KAS | 07-05 13:00 | 07-05 16:00 | stop_loss | 3 | -1.49 | +| OP | 07-05 09:00 | 07-05 16:00 | take_profit | 7 | +1.49 | +| APT | 07-05 02:00 | 07-05 17:00 | take_profit | 15 | +1.49 | +| SEI | 07-05 14:00 | 07-05 18:00 | take_profit | 4 | +1.49 | +| RENDER | 07-05 09:00 | 07-05 19:00 | take_profit | 10 | +1.49 | +| ARB | 07-05 12:00 | 07-05 21:00 | take_profit | 9 | +1.49 | +| SHIB | 07-05 05:00 | 07-05 21:00 | take_profit | 16 | +1.49 | +| ETC | 07-05 05:00 | 07-05 22:00 | take_profit | 17 | +1.49 | +| UNI | 07-05 11:00 | 07-05 22:00 | take_profit | 11 | +1.49 | +| KAS | 07-06 02:00 | 07-06 04:00 | stop_loss | 2 | -1.49 | +| SUI | 07-06 04:00 | 07-06 05:00 | stop_loss | 1 | -1.49 | +| OP | 07-06 07:00 | 07-06 09:00 | stop_loss | 2 | -1.49 | +| LTC | 07-06 08:00 | 07-06 11:00 | stop_loss | 3 | -1.49 | +| ARB | 07-06 11:00 | 07-06 12:00 | stop_loss | 1 | -1.49 | +| AVAX | 07-06 09:00 | 07-06 12:00 | stop_loss | 3 | -1.49 | +| BONK | 07-06 09:00 | 07-06 12:00 | stop_loss | 3 | -1.49 | +| KAS | 07-06 04:00 | 07-06 12:00 | stop_loss | 8 | -1.49 | +| OP | 07-06 09:00 | 07-06 12:00 | stop_loss | 3 | -1.49 | +| PEPE | 07-06 11:00 | 07-06 12:00 | stop_loss | 1 | -1.49 | +| RENDER | 07-06 11:00 | 07-06 12:00 | stop_loss | 1 | -1.49 | +| SEI | 07-06 11:00 | 07-06 12:00 | stop_loss | 1 | -1.49 | +| SHIB | 07-06 11:00 | 07-06 12:00 | stop_loss | 1 | -1.49 | +| SUI | 07-06 05:00 | 07-06 12:00 | stop_loss | 7 | -1.49 | +| TIA | 07-06 08:00 | 07-06 12:00 | stop_loss | 4 | -1.49 | +| WIF | 07-06 11:00 | 07-06 12:00 | stop_loss | 1 | -1.49 | +| ARB | 07-06 12:00 | 07-06 13:00 | trailing_stop | 1 | -0.67 | +| ATOM | 07-06 12:00 | 07-06 13:00 | trailing_stop | 1 | -0.49 | +| BONK | 07-06 12:00 | 07-06 13:00 | take_profit | 1 | +1.49 | +| NEAR | 07-06 12:00 | 07-06 13:00 | stop_loss | 1 | -1.49 | +| PEPE | 07-06 12:00 | 07-06 13:00 | stop_loss | 1 | -1.49 | +| RENDER | 07-06 12:00 | 07-06 13:00 | stop_loss | 1 | -1.49 | +| TIA | 07-06 12:00 | 07-06 13:00 | stop_loss | 1 | -1.49 | +| WIF | 07-06 12:00 | 07-06 13:00 | stop_loss | 1 | -1.49 | +| APT | 07-06 12:00 | 07-06 14:00 | take_profit | 2 | +1.49 | +| AVAX | 07-06 12:00 | 07-06 15:00 | take_profit | 3 | +1.49 | +| FIL | 07-06 12:00 | 07-06 15:00 | take_profit | 3 | +1.49 | +| LTC | 07-06 12:00 | 07-06 15:00 | take_profit | 3 | +1.49 | +| OP | 07-06 12:00 | 07-06 15:00 | take_profit | 3 | +1.49 | +| RENDER | 07-06 13:00 | 07-06 15:00 | take_profit | 2 | +1.49 | +| SHIB | 07-06 12:00 | 07-06 15:00 | take_profit | 3 | +1.49 | +| SUI | 07-06 12:00 | 07-06 15:00 | take_profit | 3 | +1.49 | +| BONK | 07-06 17:00 | 07-06 18:00 | stop_loss | 1 | -1.49 | +| BONK | 07-06 18:00 | 07-06 21:00 | take_profit | 3 | +1.49 | +| TIA | 07-06 17:00 | 07-06 21:00 | take_profit | 4 | +1.49 | +| KAS | 07-06 14:00 | 07-07 03:00 | stop_loss | 13 | -1.49 | +| TRX | 07-05 02:00 | 07-07 05:00 | take_profit | 51 | +1.49 | +| NEAR | 07-07 05:00 | 07-07 11:00 | trailing_stop | 6 | -0.42 | +| ARB | 07-07 11:00 | 07-07 13:00 | stop_loss | 2 | -1.49 | +| ETC | 07-07 02:00 | 07-07 13:00 | stop_loss | 11 | -1.49 | +| FIL | 07-07 11:00 | 07-07 13:00 | stop_loss | 2 | -1.49 | +| PEPE | 07-07 11:00 | 07-07 13:00 | stop_loss | 2 | -1.49 | +| ARB | 07-07 13:00 | 07-07 14:00 | stop_loss | 1 | -1.49 | +| AVAX | 07-07 05:00 | 07-07 14:00 | stop_loss | 9 | -1.49 | +| FIL | 07-07 13:00 | 07-07 14:00 | trailing_stop | 1 | -0.56 | +| KAS | 07-07 07:00 | 07-07 14:00 | trailing_stop | 7 | -0.53 | +| NEAR | 07-07 12:00 | 07-07 14:00 | stop_loss | 2 | -1.49 | +| SUI | 07-07 11:00 | 07-07 14:00 | stop_loss | 3 | -1.49 | +| WIF | 07-07 11:00 | 07-07 14:00 | stop_loss | 3 | -1.49 | +| LTC | 07-07 05:00 | 07-07 15:00 | trailing_stop | 10 | -0.33 | +| ATOM | 07-07 11:00 | 07-07 21:00 | stop_loss | 10 | -1.49 | +| SEI | 07-07 18:00 | 07-07 21:00 | stop_loss | 3 | -1.49 | +| FET | 07-07 20:00 | 07-07 22:00 | stop_loss | 2 | -1.49 | +| OP | 07-07 21:00 | 07-08 01:00 | stop_loss | 4 | -1.49 | +| RENDER | 07-07 21:00 | 07-08 01:00 | stop_loss | 4 | -1.49 | +| SEI | 07-07 21:00 | 07-08 01:00 | stop_loss | 4 | -1.49 | +| APT | 07-08 01:00 | 07-08 02:00 | stop_loss | 1 | -1.49 | +| ARB | 07-08 01:00 | 07-08 02:00 | stop_loss | 1 | -1.49 | +| AVAX | 07-08 01:00 | 07-08 02:00 | stop_loss | 1 | -1.49 | +| BONK | 07-08 01:00 | 07-08 02:00 | stop_loss | 1 | -1.49 | +| FET | 07-08 01:00 | 07-08 02:00 | stop_loss | 1 | -1.49 | +| NEAR | 07-08 01:00 | 07-08 02:00 | stop_loss | 1 | -1.49 | +| OP | 07-08 01:00 | 07-08 02:00 | stop_loss | 1 | -1.49 | +| RENDER | 07-08 01:00 | 07-08 02:00 | stop_loss | 1 | -1.49 | +| SEI | 07-08 01:00 | 07-08 02:00 | stop_loss | 1 | -1.49 | +| WIF | 07-08 01:00 | 07-08 02:00 | stop_loss | 1 | -1.49 | +| ARB | 07-08 02:00 | 07-08 05:00 | trailing_stop | 3 | +0.12 | +| NEAR | 07-08 02:00 | 07-08 06:00 | stop_loss | 4 | -1.49 | +| OP | 07-08 02:00 | 07-08 06:00 | stop_loss | 4 | -1.49 | +| WIF | 07-08 02:00 | 07-08 06:00 | stop_loss | 4 | -1.49 | +| APT | 07-08 02:00 | 07-08 07:00 | take_profit | 5 | +1.49 | +| BONK | 07-08 02:00 | 07-08 07:00 | stop_loss | 5 | -1.49 | +| AVAX | 07-08 02:00 | 07-08 08:00 | stop_loss | 6 | -1.49 | +| RENDER | 07-08 02:00 | 07-08 08:00 | stop_loss | 6 | -1.49 | +| SEI | 07-08 02:00 | 07-08 08:00 | stop_loss | 6 | -1.49 | +| SHIB | 07-08 03:00 | 07-08 08:00 | stop_loss | 5 | -1.49 | +| SUI | 07-08 02:00 | 07-08 08:00 | stop_loss | 6 | -1.49 | +| ATOM | 07-08 08:00 | 07-08 09:00 | stop_loss | 1 | -1.49 | +| FET | 07-08 08:00 | 07-08 09:00 | stop_loss | 1 | -1.49 | +| SHIB | 07-08 08:00 | 07-08 09:00 | stop_loss | 1 | -1.49 | +| ATOM | 07-08 09:00 | 07-08 11:00 | trailing_stop | 2 | -0.15 | +| OP | 07-08 08:00 | 07-08 11:00 | trailing_stop | 3 | -0.28 | +| APT | 07-08 09:00 | 07-08 12:00 | stop_loss | 3 | -1.49 | +| AVAX | 07-08 11:00 | 07-08 13:00 | stop_loss | 2 | -1.49 | +| FIL | 07-08 08:00 | 07-08 13:00 | trailing_stop | 5 | -0.25 | +| INJ | 07-08 12:00 | 07-08 13:00 | trailing_stop | 1 | -0.49 | +| AVAX | 07-08 13:00 | 07-08 14:00 | stop_loss | 1 | -1.49 | +| OP | 07-08 13:00 | 07-08 14:00 | stop_loss | 1 | -1.49 | +| SHIB | 07-08 09:00 | 07-08 14:00 | trailing_stop | 5 | -0.04 | +| FET | 07-08 09:00 | 07-08 15:00 | stop_loss | 6 | -1.49 | +| ARB | 07-08 20:00 | 07-09 01:00 | take_profit | 5 | +1.49 | +| AVAX | 07-08 14:00 | 07-09 01:00 | take_profit | 11 | +1.49 | +| OP | 07-09 22:00 | 07-10 00:00 | stop_loss | 2 | -1.49 | +| APT | 07-09 20:00 | 07-10 01:00 | take_profit | 5 | +1.49 | +| BONK | 07-09 23:00 | 07-10 01:00 | take_profit | 2 | +1.49 | +| OP | 07-10 00:00 | 07-10 01:00 | take_profit | 1 | +1.49 | +| WIF | 07-10 00:00 | 07-10 01:00 | take_profit | 1 | +1.49 | +| ATOM | 07-09 15:00 | 07-10 09:00 | take_profit | 18 | +1.49 | +| INJ | 07-10 06:00 | 07-10 10:00 | take_profit | 4 | +1.49 | +| WIF | 07-10 14:00 | 07-10 15:00 | stop_loss | 1 | -1.49 | +| WIF | 07-10 15:00 | 07-10 16:00 | trailing_stop | 1 | -0.34 | +| WIF | 07-10 16:00 | 07-10 17:00 | stop_loss | 1 | -1.49 | +| NEAR | 07-10 14:00 | 07-10 18:00 | stop_loss | 4 | -1.49 | +| TIA | 07-10 17:00 | 07-10 18:00 | stop_loss | 1 | -1.49 | +| NEAR | 07-10 18:00 | 07-11 00:00 | take_profit | 6 | +1.49 | +| TIA | 07-10 18:00 | 07-11 01:00 | take_profit | 7 | +1.49 | +| ARB | 07-11 00:00 | 07-11 02:00 | trailing_stop | 2 | -0.08 | +| WIF | 07-10 17:00 | 07-11 04:00 | trailing_stop | 11 | -0.60 | +| TIA | 07-11 01:00 | 07-11 05:00 | trailing_stop | 4 | -0.38 | +| NEAR | 07-11 00:00 | 07-11 08:00 | stop_loss | 8 | -1.49 | +| UNI | 07-11 01:00 | 07-11 10:00 | take_profit | 9 | +1.49 | +| SEI | 07-11 09:00 | 07-11 20:00 | take_profit | 11 | +1.49 | +| AVAX | 07-11 22:00 | 07-11 23:00 | stop_loss | 1 | -1.49 | +| FIL | 07-11 22:00 | 07-11 23:00 | stop_loss | 1 | -1.49 | +| INJ | 07-11 22:00 | 07-11 23:00 | stop_loss | 1 | -1.49 | +| RENDER | 07-11 22:00 | 07-11 23:00 | stop_loss | 1 | -1.49 | +| SHIB | 07-11 22:00 | 07-11 23:00 | stop_loss | 1 | -1.49 | +| AVAX | 07-11 23:00 | 07-12 00:00 | stop_loss | 1 | -1.49 | +| BONK | 07-11 23:00 | 07-12 00:00 | stop_loss | 1 | -1.49 | +| ETC | 07-11 22:00 | 07-12 00:00 | stop_loss | 2 | -1.49 | +| INJ | 07-11 23:00 | 07-12 00:00 | stop_loss | 1 | -1.49 | +| OP | 07-11 23:00 | 07-12 00:00 | stop_loss | 1 | -1.49 | +| PEPE | 07-11 23:00 | 07-12 00:00 | stop_loss | 1 | -1.49 | +| RENDER | 07-11 23:00 | 07-12 00:00 | stop_loss | 1 | -1.49 | +| SUI | 07-11 23:00 | 07-12 00:00 | stop_loss | 1 | -1.49 | +| WIF | 07-11 23:00 | 07-12 00:00 | stop_loss | 1 | -1.49 | +| FET | 07-11 23:00 | 07-12 01:00 | trailing_stop | 2 | -0.58 | +| FIL | 07-11 23:00 | 07-12 01:00 | trailing_stop | 2 | -0.42 | +| PEPE | 07-12 00:00 | 07-12 01:00 | trailing_stop | 1 | -0.23 | +| TIA | 07-12 00:00 | 07-12 01:00 | trailing_stop | 1 | -0.13 | +| AVAX | 07-12 00:00 | 07-12 04:00 | trailing_stop | 4 | -0.58 | +| BONK | 07-12 00:00 | 07-12 05:00 | confirmed_bearish_exit | 5 | +0.50 | +| KAS | 07-12 00:00 | 07-12 05:00 | stop_loss | 5 | -1.49 | +| APT | 07-12 04:00 | 07-12 06:00 | stop_loss | 2 | -1.49 | +| AVAX | 07-12 04:00 | 07-12 06:00 | stop_loss | 2 | -1.49 | +| INJ | 07-12 00:00 | 07-12 06:00 | trailing_stop | 6 | -0.00 | +| NEAR | 07-11 23:00 | 07-12 06:00 | trailing_stop | 7 | -0.54 | +| OP | 07-12 00:00 | 07-12 06:00 | trailing_stop | 6 | -0.13 | +| SEI | 07-11 23:00 | 07-12 06:00 | trailing_stop | 7 | -0.59 | +| UNI | 07-12 05:00 | 07-12 06:00 | stop_loss | 1 | -1.49 | +| ATOM | 07-11 23:00 | 07-12 07:00 | stop_loss | 8 | -1.49 | +| SUI | 07-12 00:00 | 07-12 07:00 | take_profit | 7 | +1.49 | +| KAS | 07-12 05:00 | 07-12 10:00 | stop_loss | 5 | -1.49 | +| AVAX | 07-12 06:00 | 07-12 14:00 | take_profit | 8 | +1.49 | +| OP | 07-12 11:00 | 07-12 21:00 | stop_loss | 10 | -1.49 | +| SHIB | 07-11 23:00 | 07-12 21:00 | stop_loss | 22 | -1.49 | +| APT | 07-12 16:00 | 07-12 22:00 | stop_loss | 6 | -1.49 | +| BONK | 07-12 07:00 | 07-12 22:00 | stop_loss | 15 | -1.49 | +| ETC | 07-12 00:00 | 07-12 22:00 | trailing_stop | 22 | -0.40 | +| LTC | 07-11 23:00 | 07-12 22:00 | stop_loss | 23 | -1.49 | +| RENDER | 07-12 00:00 | 07-12 22:00 | trailing_stop | 22 | -0.22 | +| SEI | 07-12 07:00 | 07-12 22:00 | stop_loss | 15 | -1.49 | +| KAS | 07-12 16:00 | 07-12 23:00 | stop_loss | 7 | -1.49 | +| BONK | 07-12 23:00 | 07-13 00:00 | take_profit | 1 | +1.49 | +| KAS | 07-12 23:00 | 07-13 00:00 | trailing_stop | 1 | -0.66 | +| RENDER | 07-12 22:00 | 07-13 00:00 | stop_loss | 2 | -1.49 | +| APT | 07-12 22:00 | 07-13 01:00 | stop_loss | 3 | -1.49 | +| FET | 07-12 22:00 | 07-13 01:00 | trailing_stop | 3 | -0.70 | +| FIL | 07-12 22:00 | 07-13 01:00 | stop_loss | 3 | -1.49 | +| SEI | 07-12 22:00 | 07-13 01:00 | stop_loss | 3 | -1.49 | +| BONK | 07-13 01:00 | 07-13 02:00 | stop_loss | 1 | -1.49 | +| APT | 07-13 01:00 | 07-13 03:00 | stop_loss | 2 | -1.49 | +| ATOM | 07-13 01:00 | 07-13 03:00 | stop_loss | 2 | -1.49 | +| BONK | 07-13 02:00 | 07-13 03:00 | stop_loss | 1 | -1.49 | +| FET | 07-13 01:00 | 07-13 03:00 | stop_loss | 2 | -1.49 | +| FIL | 07-13 01:00 | 07-13 03:00 | stop_loss | 2 | -1.49 | +| LTC | 07-12 23:00 | 07-13 03:00 | stop_loss | 4 | -1.49 | +| OP | 07-12 22:00 | 07-13 03:00 | stop_loss | 5 | -1.49 | +| SEI | 07-13 01:00 | 07-13 03:00 | stop_loss | 2 | -1.49 | +| SHIB | 07-12 22:00 | 07-13 03:00 | stop_loss | 5 | -1.49 | +| SUI | 07-13 01:00 | 07-13 03:00 | stop_loss | 2 | -1.49 | +| TIA | 07-13 01:00 | 07-13 03:00 | stop_loss | 2 | -1.49 | +| UNI | 07-13 01:00 | 07-13 03:00 | stop_loss | 2 | -1.49 | +| APT | 07-13 03:00 | 07-13 05:00 | take_profit | 2 | +1.49 | +| ARB | 07-13 03:00 | 07-13 05:00 | take_profit | 2 | +1.49 | +| BONK | 07-13 03:00 | 07-13 05:00 | trailing_stop | 2 | -0.69 | +| OP | 07-13 03:00 | 07-13 05:00 | take_profit | 2 | +1.49 | +| TIA | 07-13 03:00 | 07-13 05:00 | take_profit | 2 | +1.49 | +| UNI | 07-13 04:00 | 07-13 07:00 | trailing_stop | 3 | -0.46 | +| PEPE | 07-13 04:00 | 07-13 09:00 | confirmed_bearish_exit | 5 | +0.23 | +| TRX | 07-08 04:00 | 07-13 10:00 | stop_loss | 126 | -1.49 | +| APT | 07-13 10:00 | 07-13 12:00 | stop_loss | 2 | -1.49 | +| SEI | 07-13 03:00 | 07-13 12:00 | trailing_stop | 9 | -0.09 | +| SUI | 07-13 03:00 | 07-13 12:00 | trailing_stop | 9 | -0.69 | +| RENDER | 07-13 01:00 | 07-13 13:00 | stop_loss | 12 | -1.49 | +| UNI | 07-13 10:00 | 07-13 13:00 | stop_loss | 3 | -1.49 | +| FIL | 07-13 03:00 | 07-13 14:00 | stop_loss | 11 | -1.49 | +| INJ | 07-13 03:00 | 07-13 14:00 | trailing_stop | 11 | -0.17 | +| LTC | 07-13 03:00 | 07-13 14:00 | stop_loss | 11 | -1.49 | +| PEPE | 07-13 10:00 | 07-13 14:00 | trailing_stop | 4 | -0.62 | +| INJ | 07-13 14:00 | 07-13 15:00 | stop_loss | 1 | -1.49 | +| BONK | 07-13 15:00 | 07-13 16:00 | stop_loss | 1 | -1.49 | +| SHIB | 07-13 03:00 | 07-13 16:00 | stop_loss | 13 | -1.49 | +| RENDER | 07-13 16:00 | 07-13 17:00 | stop_loss | 1 | -1.49 | +| BONK | 07-13 16:00 | 07-13 20:00 | stop_loss | 4 | -1.49 | +| PEPE | 07-13 17:00 | 07-13 20:00 | take_profit | 3 | +1.49 | +| ATOM | 07-13 03:00 | 07-13 21:00 | stop_loss | 18 | -1.49 | +| SHIB | 07-13 16:00 | 07-13 21:00 | stop_loss | 5 | -1.49 | +| TRX | 07-13 10:00 | 07-13 23:00 | stop_loss | 13 | -1.49 | +| FET | 07-13 21:00 | 07-14 00:00 | take_profit | 3 | +1.49 | +| FIL | 07-13 21:00 | 07-14 00:00 | take_profit | 3 | +1.49 | +| APT | 07-13 21:00 | 07-14 01:00 | take_profit | 4 | +1.49 | +| SUI | 07-13 21:00 | 07-14 01:00 | take_profit | 4 | +1.49 | +| INJ | 07-13 21:00 | 07-14 02:00 | take_profit | 5 | +1.49 | +| BONK | 07-13 22:00 | 07-14 03:00 | trailing_stop | 5 | -0.35 | +| ETC | 07-13 21:00 | 07-14 03:00 | trailing_stop | 6 | -0.54 | +| BONK | 07-14 05:00 | 07-14 09:00 | take_profit | 4 | +1.49 | +| SHIB | 07-13 21:00 | 07-14 09:00 | trailing_stop | 12 | -0.01 | +| RENDER | 07-13 17:00 | 07-14 12:00 | trailing_stop | 19 | +0.23 | +| PEPE | 07-15 03:00 | 07-15 04:00 | stop_loss | 1 | -1.49 | +| BONK | 07-15 02:00 | 07-15 05:00 | confirmed_bearish_exit | 3 | +0.29 | +| UNI | 07-15 02:00 | 07-15 06:00 | trailing_stop | 4 | -0.12 | +| INJ | 07-15 03:00 | 07-15 07:00 | stop_loss | 4 | -1.49 | +| PEPE | 07-15 04:00 | 07-15 07:00 | stop_loss | 3 | -1.49 | +| INJ | 07-15 07:00 | 07-15 10:00 | trailing_stop | 3 | -0.03 | +| NEAR | 07-15 07:00 | 07-15 10:00 | take_profit | 3 | +1.49 | +| ARB | 07-15 07:00 | 07-15 12:00 | take_profit | 5 | +1.49 | +| FET | 07-15 02:00 | 07-15 12:00 | trailing_stop | 10 | +0.08 | +| PEPE | 07-15 07:00 | 07-15 12:00 | take_profit | 5 | +1.49 | +| UNI | 07-15 07:00 | 07-15 12:00 | trailing_stop | 5 | -0.27 | +| ARB | 07-15 14:00 | 07-15 15:00 | stop_loss | 1 | -1.49 | +| ARB | 07-15 15:00 | 07-15 16:00 | stop_loss | 1 | -1.49 | +| TRX | 07-14 05:00 | 07-15 16:00 | trailing_stop | 35 | -0.66 | +| BONK | 07-16 02:00 | 07-16 03:00 | stop_loss | 1 | -1.49 | +| APT | 07-16 03:00 | 07-16 06:00 | stop_loss | 3 | -1.49 | +| FIL | 07-16 02:00 | 07-16 06:00 | stop_loss | 4 | -1.49 | +| BONK | 07-16 03:00 | 07-16 07:00 | stop_loss | 4 | -1.49 | +| SHIB | 07-16 02:00 | 07-16 07:00 | stop_loss | 5 | -1.49 | +| APT | 07-16 06:00 | 07-16 08:00 | stop_loss | 2 | -1.49 | +| ATOM | 07-16 07:00 | 07-16 08:00 | stop_loss | 1 | -1.49 | +| AVAX | 07-16 07:00 | 07-16 08:00 | stop_loss | 1 | -1.49 | +| BONK | 07-16 07:00 | 07-16 08:00 | stop_loss | 1 | -1.49 | +| ETC | 07-16 02:00 | 07-16 08:00 | stop_loss | 6 | -1.49 | +| PEPE | 07-16 07:00 | 07-16 08:00 | stop_loss | 1 | -1.49 | +| TIA | 07-16 07:00 | 07-16 08:00 | stop_loss | 1 | -1.49 | +| NEAR | 07-16 08:00 | 07-16 09:00 | stop_loss | 1 | -1.49 | +| KAS | 07-16 07:00 | 07-16 10:00 | stop_loss | 3 | -1.49 | +| OP | 07-16 08:00 | 07-16 11:00 | stop_loss | 3 | -1.49 | +| APT | 07-16 08:00 | 07-16 12:00 | stop_loss | 4 | -1.49 | +| AVAX | 07-16 08:00 | 07-16 12:00 | stop_loss | 4 | -1.49 | +| BONK | 07-16 08:00 | 07-16 12:00 | trailing_stop | 4 | -0.58 | +| APT | 07-16 12:00 | 07-16 13:00 | trailing_stop | 1 | -0.40 | +| AVAX | 07-16 12:00 | 07-16 13:00 | trailing_stop | 1 | -0.40 | +| ATOM | 07-16 08:00 | 07-16 17:00 | stop_loss | 9 | -1.49 | +| AVAX | 07-16 16:00 | 07-16 17:00 | stop_loss | 1 | -1.49 | +| FET | 07-16 09:00 | 07-16 17:00 | trailing_stop | 8 | -0.01 | +| FIL | 07-16 08:00 | 07-16 17:00 | trailing_stop | 9 | -0.42 | +| OP | 07-16 11:00 | 07-16 17:00 | stop_loss | 6 | -1.49 | +| TIA | 07-16 08:00 | 07-16 17:00 | trailing_stop | 9 | -0.59 | +| INJ | 07-16 11:00 | 07-16 18:00 | stop_loss | 7 | -1.49 | +| BONK | 07-16 18:00 | 07-16 19:00 | take_profit | 1 | +1.49 | +| RENDER | 07-16 07:00 | 07-16 20:00 | stop_loss | 13 | -1.49 | +| TIA | 07-16 19:00 | 07-16 20:00 | trailing_stop | 1 | -0.12 | +| ATOM | 07-16 20:00 | 07-16 22:00 | stop_loss | 2 | -1.49 | +| ETC | 07-16 08:00 | 07-16 22:00 | trailing_stop | 14 | -0.71 | +| SEI | 07-16 08:00 | 07-16 22:00 | stop_loss | 14 | -1.49 | +| AVAX | 07-16 17:00 | 07-17 00:00 | stop_loss | 7 | -1.49 | +| KAS | 07-16 10:00 | 07-17 00:00 | stop_loss | 14 | -1.49 | +| RENDER | 07-16 22:00 | 07-17 00:00 | stop_loss | 2 | -1.49 | +| BONK | 07-17 00:00 | 07-17 01:00 | stop_loss | 1 | -1.49 | +| LTC | 07-16 12:00 | 07-17 03:00 | take_profit | 15 | +1.49 | +| BONK | 07-17 01:00 | 07-17 04:00 | stop_loss | 3 | -1.49 | +| TIA | 07-17 02:00 | 07-17 04:00 | stop_loss | 2 | -1.49 | +| OP | 07-17 01:00 | 07-17 05:00 | stop_loss | 4 | -1.49 | +| SHIB | 07-16 12:00 | 07-17 05:00 | stop_loss | 17 | -1.49 | +| TIA | 07-17 04:00 | 07-17 05:00 | stop_loss | 1 | -1.49 | +| UNI | 07-17 00:00 | 07-17 05:00 | stop_loss | 5 | -1.49 | +| INJ | 07-16 23:00 | 07-17 06:00 | trailing_stop | 7 | -0.46 | +| SUI | 07-17 05:00 | 07-17 06:00 | take_profit | 1 | +1.49 | +| APT | 07-17 05:00 | 07-17 08:00 | stop_loss | 3 | -1.49 | +| KAS | 07-17 02:00 | 07-17 08:00 | stop_loss | 6 | -1.49 | +| OP | 07-17 05:00 | 07-17 08:00 | stop_loss | 3 | -1.49 | +| TIA | 07-17 05:00 | 07-17 08:00 | take_profit | 3 | +1.49 | +| FIL | 07-17 05:00 | 07-17 12:00 | trailing_stop | 7 | -0.41 | +| TIA | 07-17 10:00 | 07-17 12:00 | stop_loss | 2 | -1.49 | +| ATOM | 07-17 02:00 | 07-17 13:00 | stop_loss | 11 | -1.49 | +| ETC | 07-17 05:00 | 07-17 13:00 | trailing_stop | 8 | -0.26 | +| NEAR | 07-17 08:00 | 07-17 13:00 | take_profit | 5 | +1.49 | +| OP | 07-17 12:00 | 07-17 13:00 | stop_loss | 1 | -1.49 | +| RENDER | 07-17 05:00 | 07-17 13:00 | stop_loss | 8 | -1.49 | +| TIA | 07-17 12:00 | 07-17 13:00 | stop_loss | 1 | -1.49 | +| SEI | 07-17 05:00 | 07-17 15:00 | trailing_stop | 10 | +0.16 | +| TIA | 07-17 13:00 | 07-17 15:00 | stop_loss | 2 | -1.49 | +| LTC | 07-17 08:00 | 07-17 21:00 | take_profit | 13 | +1.49 | +| BONK | 07-17 21:00 | 07-18 00:00 | take_profit | 3 | +1.49 | +| TIA | 07-18 01:00 | 07-18 04:00 | stop_loss | 3 | -1.49 | +| TIA | 07-18 04:00 | 07-18 07:00 | stop_loss | 3 | -1.49 | +| NEAR | 07-17 17:00 | 07-18 09:00 | stop_loss | 16 | -1.49 | +| FIL | 07-18 05:00 | 07-18 12:00 | stop_loss | 7 | -1.49 | +| FIL | 07-18 12:00 | 07-18 13:00 | stop_loss | 1 | -1.49 | +| BONK | 07-18 14:00 | 07-18 15:00 | stop_loss | 1 | -1.49 | +| FET | 07-18 07:00 | 07-18 15:00 | stop_loss | 8 | -1.49 | +| KAS | 07-17 14:00 | 07-18 15:00 | stop_loss | 25 | -1.49 | +| BONK | 07-18 15:00 | 07-18 16:00 | take_profit | 1 | +1.49 | +| KAS | 07-18 15:00 | 07-18 17:00 | trailing_stop | 2 | +0.02 | +| PEPE | 07-18 08:00 | 07-18 17:00 | take_profit | 9 | +1.49 | +| NEAR | 07-18 09:00 | 07-18 18:00 | take_profit | 9 | +1.49 | +| BONK | 07-18 22:00 | 07-18 23:00 | stop_loss | 1 | -1.49 | +| ARB | 07-18 15:00 | 07-19 00:00 | stop_loss | 9 | -1.49 | +| UNI | 07-18 15:00 | 07-19 01:00 | trailing_stop | 10 | -0.24 | +| SUI | 07-18 13:00 | 07-19 02:00 | take_profit | 13 | +1.49 | +| FIL | 07-18 13:00 | 07-19 07:00 | trailing_stop | 18 | -0.37 | +| AVAX | 07-18 17:00 | 07-19 09:00 | stop_loss | 16 | -1.49 | +| FIL | 07-19 07:00 | 07-19 09:00 | stop_loss | 2 | -1.49 | +| APT | 07-18 12:00 | 07-19 11:00 | stop_loss | 23 | -1.49 | +| ATOM | 07-18 05:00 | 07-19 11:00 | stop_loss | 30 | -1.49 | +| OP | 07-18 18:00 | 07-19 11:00 | stop_loss | 17 | -1.49 | +| AVAX | 07-19 09:00 | 07-19 12:00 | stop_loss | 3 | -1.49 | +| FIL | 07-19 09:00 | 07-19 12:00 | stop_loss | 3 | -1.49 | +| INJ | 07-19 07:00 | 07-19 12:00 | stop_loss | 5 | -1.49 | +| OP | 07-19 11:00 | 07-19 12:00 | stop_loss | 1 | -1.49 | +| WIF | 07-18 10:00 | 07-19 12:00 | trailing_stop | 26 | -0.47 | +| FIL | 07-19 12:00 | 07-19 14:00 | stop_loss | 2 | -1.49 | +| APT | 07-19 12:00 | 07-19 17:00 | stop_loss | 5 | -1.49 | +| ETC | 07-19 11:00 | 07-19 17:00 | stop_loss | 6 | -1.49 | +| FIL | 07-19 14:00 | 07-19 17:00 | stop_loss | 3 | -1.49 | +| OP | 07-19 12:00 | 07-19 17:00 | stop_loss | 5 | -1.49 | +| RENDER | 07-18 08:00 | 07-19 17:00 | trailing_stop | 33 | -0.29 | +| UNI | 07-19 16:00 | 07-19 18:00 | stop_loss | 2 | -1.49 | +| UNI | 07-19 18:00 | 07-20 00:00 | take_profit | 6 | +1.49 | +| APT | 07-19 17:00 | 07-20 01:00 | stop_loss | 8 | -1.49 | +| AVAX | 07-19 12:00 | 07-20 01:00 | take_profit | 13 | +1.49 | +| BONK | 07-20 00:00 | 07-20 01:00 | stop_loss | 1 | -1.49 | +| FET | 07-19 12:00 | 07-20 01:00 | stop_loss | 13 | -1.49 | +| FET | 07-20 01:00 | 07-20 02:00 | stop_loss | 1 | -1.49 | +| ATOM | 07-20 00:00 | 07-20 03:00 | take_profit | 3 | +1.49 | +| FET | 07-20 02:00 | 07-20 03:00 | stop_loss | 1 | -1.49 | +| APT | 07-20 04:00 | 07-20 05:00 | stop_loss | 1 | -1.49 | +| FIL | 07-20 00:00 | 07-20 05:00 | stop_loss | 5 | -1.49 | +| NEAR | 07-19 16:00 | 07-20 05:00 | trailing_stop | 13 | -0.61 | +| ARB | 07-20 04:00 | 07-20 06:00 | stop_loss | 2 | -1.49 | +| SEI | 07-20 04:00 | 07-20 06:00 | stop_loss | 2 | -1.49 | +| ETC | 07-20 08:00 | 07-20 09:00 | trailing_stop | 1 | -0.67 | +| APT | 07-20 05:00 | 07-20 11:00 | take_profit | 6 | +1.49 | +| ARB | 07-20 06:00 | 07-20 11:00 | take_profit | 5 | +1.49 | +| ATOM | 07-20 05:00 | 07-20 11:00 | take_profit | 6 | +1.49 | +| LTC | 07-20 08:00 | 07-20 11:00 | take_profit | 3 | +1.49 | +| SEI | 07-20 06:00 | 07-20 11:00 | take_profit | 5 | +1.49 | +| SHIB | 07-18 17:00 | 07-20 11:00 | take_profit | 42 | +1.49 | +| SUI | 07-20 05:00 | 07-20 11:00 | trailing_stop | 6 | -0.01 | +| UNI | 07-20 05:00 | 07-20 11:00 | take_profit | 6 | +1.49 | +| RENDER | 07-20 06:00 | 07-20 14:00 | take_profit | 8 | +1.49 | +| FET | 07-20 03:00 | 07-20 15:00 | take_profit | 12 | +1.49 | +| FIL | 07-20 05:00 | 07-20 15:00 | take_profit | 10 | +1.49 | +| OP | 07-20 13:00 | 07-20 15:00 | take_profit | 2 | +1.49 | +| BONK | 07-21 11:00 | 07-21 12:00 | take_profit | 1 | +1.49 | +| ARB | 07-21 16:00 | 07-21 17:00 | stop_loss | 1 | -1.49 | +| NEAR | 07-21 16:00 | 07-21 17:00 | stop_loss | 1 | -1.49 | +| PEPE | 07-21 17:00 | 07-21 23:00 | stop_loss | 6 | -1.49 | +| ARB | 07-21 17:00 | 07-22 00:00 | trailing_stop | 7 | -0.04 | +| NEAR | 07-22 00:00 | 07-22 02:00 | stop_loss | 2 | -1.49 | +| TRX | 07-15 16:00 | 07-22 02:00 | confirmed_bearish_exit | 154 | +1.00 | +| NEAR | 07-22 02:00 | 07-22 03:00 | stop_loss | 1 | -1.49 | +| SEI | 07-21 19:00 | 07-22 03:00 | stop_loss | 8 | -1.49 | +| INJ | 07-21 14:00 | 07-22 04:00 | take_profit | 14 | +1.49 | +| ATOM | 07-22 01:00 | 07-22 05:00 | stop_loss | 4 | -1.49 | +| AVAX | 07-21 20:00 | 07-22 05:00 | stop_loss | 9 | -1.49 | +| FET | 07-21 21:00 | 07-22 05:00 | stop_loss | 8 | -1.49 | +| LTC | 07-21 20:00 | 07-22 05:00 | stop_loss | 9 | -1.49 | +| SUI | 07-21 21:00 | 07-22 05:00 | stop_loss | 8 | -1.49 | +| TIA | 07-22 02:00 | 07-22 05:00 | stop_loss | 3 | -1.49 | +| APT | 07-21 22:00 | 07-22 06:00 | stop_loss | 8 | -1.49 | +| ETC | 07-21 23:00 | 07-22 06:00 | stop_loss | 7 | -1.49 | +| SEI | 07-22 03:00 | 07-22 06:00 | stop_loss | 3 | -1.49 | +| WIF | 07-21 22:00 | 07-22 06:00 | trailing_stop | 8 | -0.13 | +| OP | 07-22 07:00 | 07-22 12:00 | trailing_stop | 5 | -0.67 | +| TIA | 07-22 05:00 | 07-22 12:00 | trailing_stop | 7 | -0.55 | +| PEPE | 07-22 05:00 | 07-22 13:00 | trailing_stop | 8 | -0.65 | +| SUI | 07-22 06:00 | 07-22 14:00 | take_profit | 8 | +1.49 | +| AVAX | 07-22 05:00 | 07-22 15:00 | take_profit | 10 | +1.49 | +| NEAR | 07-22 07:00 | 07-22 18:00 | stop_loss | 11 | -1.49 | +| FET | 07-22 05:00 | 07-22 19:00 | trailing_stop | 14 | -0.55 | +| RENDER | 07-22 03:00 | 07-22 19:00 | trailing_stop | 16 | -0.33 | +| SEI | 07-22 06:00 | 07-22 19:00 | trailing_stop | 13 | -0.07 | +| INJ | 07-22 06:00 | 07-22 20:00 | stop_loss | 14 | -1.49 | +| LTC | 07-22 11:00 | 07-22 21:00 | take_profit | 10 | +1.49 | +| KAS | 07-22 06:00 | 07-22 22:00 | trailing_stop | 16 | -0.40 | +| ATOM | 07-22 05:00 | 07-23 02:00 | stop_loss | 21 | -1.49 | +| BONK | 07-23 03:00 | 07-23 04:00 | trailing_stop | 1 | -0.68 | +| FET | 07-23 06:00 | 07-23 07:00 | stop_loss | 1 | -1.49 | +| FIL | 07-23 03:00 | 07-23 07:00 | stop_loss | 4 | -1.49 | +| BONK | 07-23 07:00 | 07-23 08:00 | trailing_stop | 1 | -0.69 | +| TIA | 07-23 03:00 | 07-23 09:00 | trailing_stop | 6 | -0.54 | +| NEAR | 07-23 03:00 | 07-23 10:00 | take_profit | 7 | +1.49 | +| ATOM | 07-23 03:00 | 07-23 11:00 | trailing_stop | 8 | -0.14 | +| SEI | 07-23 07:00 | 07-23 11:00 | take_profit | 4 | +1.49 | +| ARB | 07-23 07:00 | 07-23 12:00 | stop_loss | 5 | -1.49 | +| OP | 07-23 05:00 | 07-23 12:00 | stop_loss | 7 | -1.49 | +| SHIB | 07-22 03:00 | 07-23 12:00 | stop_loss | 33 | -1.49 | +| AVAX | 07-23 12:00 | 07-23 13:00 | stop_loss | 1 | -1.49 | +| PEPE | 07-23 12:00 | 07-23 13:00 | stop_loss | 1 | -1.49 | +| WIF | 07-23 07:00 | 07-23 13:00 | stop_loss | 6 | -1.49 | +| APT | 07-23 13:00 | 07-23 14:00 | take_profit | 1 | +1.49 | +| ARB | 07-23 12:00 | 07-23 14:00 | stop_loss | 2 | -1.49 | +| SHIB | 07-23 12:00 | 07-23 14:00 | stop_loss | 2 | -1.49 | +| TIA | 07-23 13:00 | 07-23 14:00 | stop_loss | 1 | -1.49 | +| ARB | 07-23 14:00 | 07-23 15:00 | stop_loss | 1 | -1.49 | +| FIL | 07-23 07:00 | 07-23 15:00 | stop_loss | 8 | -1.49 | +| INJ | 07-23 01:00 | 07-23 15:00 | trailing_stop | 14 | -0.41 | +| LTC | 07-23 10:00 | 07-23 15:00 | stop_loss | 5 | -1.49 | +| PEPE | 07-23 13:00 | 07-23 15:00 | stop_loss | 2 | -1.49 | +| RENDER | 07-23 03:00 | 07-23 15:00 | stop_loss | 12 | -1.49 | +| SUI | 07-23 14:00 | 07-23 15:00 | stop_loss | 1 | -1.49 | +| TIA | 07-23 14:00 | 07-23 15:00 | stop_loss | 1 | -1.49 | +| WIF | 07-23 13:00 | 07-23 15:00 | stop_loss | 2 | -1.49 | +| KAS | 07-23 07:00 | 07-23 16:00 | trailing_stop | 9 | -0.54 | +| ATOM | 07-23 13:00 | 07-23 17:00 | stop_loss | 4 | -1.49 | +| AVAX | 07-23 13:00 | 07-23 17:00 | stop_loss | 4 | -1.49 | +| OP | 07-23 13:00 | 07-23 17:00 | stop_loss | 4 | -1.49 | +| PEPE | 07-23 15:00 | 07-23 17:00 | stop_loss | 2 | -1.49 | +| RENDER | 07-23 15:00 | 07-23 17:00 | stop_loss | 2 | -1.49 | +| SUI | 07-23 15:00 | 07-23 17:00 | stop_loss | 2 | -1.49 | +| TIA | 07-23 15:00 | 07-23 17:00 | stop_loss | 2 | -1.49 | +| WIF | 07-23 15:00 | 07-23 17:00 | stop_loss | 2 | -1.49 | +| AVAX | 07-23 17:00 | 07-23 18:00 | stop_loss | 1 | -1.49 | +| WIF | 07-23 17:00 | 07-23 18:00 | stop_loss | 1 | -1.49 | +| SHIB | 07-23 14:00 | 07-23 19:00 | stop_loss | 5 | -1.49 | +| LTC | 07-23 15:00 | 07-23 20:00 | take_profit | 5 | +1.49 | +| WIF | 07-23 18:00 | 07-23 20:00 | trailing_stop | 2 | -0.05 | +| APT | 07-23 17:00 | 07-23 22:00 | take_profit | 5 | +1.49 | +| OP | 07-23 17:00 | 07-23 22:00 | stop_loss | 5 | -1.49 | +| TIA | 07-23 17:00 | 07-23 22:00 | trailing_stop | 5 | -0.62 | +| ARB | 07-23 21:00 | 07-23 23:00 | stop_loss | 2 | -1.49 | +| SHIB | 07-23 22:00 | 07-24 00:00 | stop_loss | 2 | -1.49 | +| SUI | 07-23 17:00 | 07-24 00:00 | trailing_stop | 7 | -0.59 | +| ARB | 07-23 23:00 | 07-24 02:00 | stop_loss | 3 | -1.49 | +| AVAX | 07-23 18:00 | 07-24 02:00 | stop_loss | 8 | -1.49 | +| ETC | 07-23 15:00 | 07-24 02:00 | stop_loss | 11 | -1.49 | +| FET | 07-23 13:00 | 07-24 08:00 | take_profit | 19 | +1.49 | +| KAS | 07-23 17:00 | 07-24 09:00 | confirmed_bearish_exit | 16 | +0.68 | +| WIF | 07-24 05:00 | 07-24 09:00 | trailing_stop | 4 | -0.33 | +| ATOM | 07-23 17:00 | 07-24 10:00 | stop_loss | 17 | -1.49 | +| ETC | 07-24 02:00 | 07-24 12:00 | trailing_stop | 10 | -0.67 | +| RENDER | 07-23 17:00 | 07-24 12:00 | trailing_stop | 19 | -0.49 | +| ATOM | 07-24 10:00 | 07-24 13:00 | stop_loss | 3 | -1.49 | +| AVAX | 07-24 12:00 | 07-24 13:00 | stop_loss | 1 | -1.49 | +| FIL | 07-23 22:00 | 07-24 13:00 | stop_loss | 15 | -1.49 | +| NEAR | 07-24 12:00 | 07-24 13:00 | stop_loss | 1 | -1.49 | +| PEPE | 07-23 17:00 | 07-24 13:00 | stop_loss | 20 | -1.49 | +| SHIB | 07-24 00:00 | 07-24 13:00 | trailing_stop | 13 | -0.26 | +| SUI | 07-24 10:00 | 07-24 13:00 | stop_loss | 3 | -1.49 | +| ARB | 07-24 13:00 | 07-24 14:00 | stop_loss | 1 | -1.49 | +| NEAR | 07-24 13:00 | 07-24 14:00 | stop_loss | 1 | -1.49 | +| PEPE | 07-24 13:00 | 07-24 14:00 | stop_loss | 1 | -1.49 | +| SUI | 07-24 13:00 | 07-24 14:00 | stop_loss | 1 | -1.49 | +| ATOM | 07-24 13:00 | 07-24 16:00 | take_profit | 3 | +1.49 | +| PEPE | 07-24 14:00 | 07-24 16:00 | stop_loss | 2 | -1.49 | +| PEPE | 07-24 16:00 | 07-24 18:00 | confirmed_bearish_exit | 2 | +0.61 | +| SUI | 07-24 14:00 | 07-24 18:00 | stop_loss | 4 | -1.49 | +| APT | 07-24 12:00 | 07-24 19:00 | trailing_stop | 7 | -0.23 | +| ETC | 07-24 13:00 | 07-24 20:00 | stop_loss | 7 | -1.49 | +| ATOM | 07-24 17:00 | 07-24 21:00 | stop_loss | 4 | -1.49 | +| FIL | 07-24 13:00 | 07-24 21:00 | trailing_stop | 8 | -0.10 | +| SEI | 07-24 13:00 | 07-24 21:00 | stop_loss | 8 | -1.49 | +| INJ | 07-24 17:00 | 07-25 00:00 | trailing_stop | 7 | -0.23 | +| NEAR | 07-24 14:00 | 07-25 02:00 | stop_loss | 12 | -1.49 | +| UNI | 07-24 21:00 | 07-25 02:00 | trailing_stop | 5 | -0.52 | +| OP | 07-24 13:00 | 07-25 03:00 | trailing_stop | 14 | -0.52 | +| ATOM | 07-24 21:00 | 07-25 05:00 | stop_loss | 8 | -1.49 | +| PEPE | 07-24 22:00 | 07-25 05:00 | stop_loss | 7 | -1.49 | +| UNI | 07-25 04:00 | 07-25 05:00 | stop_loss | 1 | -1.49 | +| APT | 07-24 19:00 | 07-25 06:00 | stop_loss | 11 | -1.49 | +| SUI | 07-25 02:00 | 07-25 06:00 | stop_loss | 4 | -1.49 | +| TIA | 07-24 21:00 | 07-25 06:00 | trailing_stop | 9 | -0.42 | +| RENDER | 07-24 14:00 | 07-25 08:00 | stop_loss | 18 | -1.49 | +| LTC | 07-24 10:00 | 07-25 09:00 | stop_loss | 23 | -1.49 | +| UNI | 07-25 05:00 | 07-25 09:00 | stop_loss | 4 | -1.49 | +| ETC | 07-24 21:00 | 07-25 16:00 | take_profit | 19 | +1.49 | +| FET | 07-24 18:00 | 07-25 16:00 | take_profit | 22 | +1.49 | +| INJ | 07-25 14:00 | 07-25 16:00 | stop_loss | 2 | -1.49 | +| RENDER | 07-25 08:00 | 07-25 19:00 | take_profit | 11 | +1.49 | +| SEI | 07-25 08:00 | 07-25 22:00 | take_profit | 14 | +1.49 | +| ARB | 07-25 08:00 | 07-26 02:00 | stop_loss | 18 | -1.49 | +| TIA | 07-25 08:00 | 07-26 03:00 | take_profit | 19 | +1.49 | +| INJ | 07-25 16:00 | 07-26 04:00 | trailing_stop | 12 | -0.33 | +| KAS | 07-24 13:00 | 07-26 07:00 | take_profit | 42 | +1.49 | +| UNI | 07-25 13:00 | 07-26 10:00 | trailing_stop | 21 | -0.36 | +| INJ | 07-26 06:00 | 07-26 15:00 | trailing_stop | 9 | -0.05 | +| INJ | 07-26 18:00 | 07-26 19:00 | stop_loss | 1 | -1.49 | +| SHIB | 07-26 19:00 | 07-26 21:00 | stop_loss | 2 | -1.49 | +| WIF | 07-26 17:00 | 07-26 21:00 | stop_loss | 4 | -1.49 | +| ATOM | 07-25 05:00 | 07-26 22:00 | take_profit | 41 | +1.49 | +| NEAR | 07-26 13:00 | 07-26 22:00 | take_profit | 9 | +1.49 | +| SHIB | 07-26 21:00 | 07-26 22:00 | take_profit | 1 | +1.49 | +| FET | 07-26 12:00 | 07-27 01:00 | take_profit | 13 | +1.49 | +| SUI | 07-26 19:00 | 07-27 01:00 | trailing_stop | 6 | -0.12 | +| FIL | 07-26 20:00 | 07-27 02:00 | take_profit | 6 | +1.49 | +| SEI | 07-26 18:00 | 07-27 04:00 | take_profit | 10 | +1.49 | +| AVAX | 07-26 12:00 | 07-27 08:00 | stop_loss | 20 | -1.49 | +| LTC | 07-27 06:00 | 07-27 08:00 | stop_loss | 2 | -1.49 | +| WIF | 07-27 01:00 | 07-27 09:00 | stop_loss | 8 | -1.49 | +| SHIB | 07-27 09:00 | 07-27 11:00 | take_profit | 2 | +1.49 | +| FET | 07-27 12:00 | 07-27 13:00 | stop_loss | 1 | -1.49 | +| ATOM | 07-27 11:00 | 07-27 14:00 | stop_loss | 3 | -1.49 | +| ETC | 07-27 06:00 | 07-27 14:00 | stop_loss | 8 | -1.49 | +| FET | 07-27 13:00 | 07-27 14:00 | stop_loss | 1 | -1.49 | +| LTC | 07-27 08:00 | 07-27 14:00 | stop_loss | 6 | -1.49 | +| RENDER | 07-26 18:00 | 07-27 14:00 | stop_loss | 20 | -1.49 | +| SUI | 07-27 12:00 | 07-27 14:00 | stop_loss | 2 | -1.49 | +| TRX | 07-22 14:00 | 07-27 14:00 | trailing_stop | 120 | -0.32 | +| APT | 07-27 14:00 | 07-27 15:00 | stop_loss | 1 | -1.49 | +| ARB | 07-27 14:00 | 07-27 15:00 | stop_loss | 1 | -1.49 | +| ATOM | 07-27 14:00 | 07-27 15:00 | stop_loss | 1 | -1.49 | +| FET | 07-27 14:00 | 07-27 15:00 | stop_loss | 1 | -1.49 | +| OP | 07-27 14:00 | 07-27 15:00 | stop_loss | 1 | -1.49 | +| AVAX | 07-27 14:00 | 07-27 16:00 | trailing_stop | 2 | -0.35 | +| NEAR | 07-27 14:00 | 07-27 16:00 | stop_loss | 2 | -1.49 | +| TIA | 07-27 14:00 | 07-27 16:00 | stop_loss | 2 | -1.49 | +| BONK | 07-27 14:00 | 07-27 18:00 | stop_loss | 4 | -1.49 | +| FET | 07-27 15:00 | 07-27 18:00 | stop_loss | 3 | -1.49 | +| NEAR | 07-27 16:00 | 07-27 18:00 | stop_loss | 2 | -1.49 | +| RENDER | 07-27 14:00 | 07-27 18:00 | stop_loss | 4 | -1.49 | +| UNI | 07-27 14:00 | 07-27 18:00 | stop_loss | 4 | -1.49 | +| WIF | 07-27 14:00 | 07-27 18:00 | stop_loss | 4 | -1.49 | +| FIL | 07-27 14:00 | 07-27 19:00 | stop_loss | 5 | -1.49 | +| APT | 07-27 15:00 | 07-27 22:00 | stop_loss | 7 | -1.49 | +| ARB | 07-27 15:00 | 07-27 22:00 | stop_loss | 7 | -1.49 | +| ATOM | 07-27 15:00 | 07-27 22:00 | stop_loss | 7 | -1.49 | +| ETC | 07-27 14:00 | 07-27 22:00 | stop_loss | 8 | -1.49 | +| FIL | 07-27 19:00 | 07-27 22:00 | stop_loss | 3 | -1.49 | +| INJ | 07-27 15:00 | 07-27 22:00 | stop_loss | 7 | -1.49 | +| NEAR | 07-27 18:00 | 07-27 22:00 | stop_loss | 4 | -1.49 | +| OP | 07-27 15:00 | 07-27 22:00 | stop_loss | 7 | -1.49 | +| RENDER | 07-27 18:00 | 07-27 22:00 | stop_loss | 4 | -1.49 | +| SEI | 07-27 15:00 | 07-27 22:00 | stop_loss | 7 | -1.49 | +| SUI | 07-27 14:00 | 07-27 22:00 | stop_loss | 8 | -1.49 | +| TIA | 07-27 16:00 | 07-27 22:00 | stop_loss | 6 | -1.49 | +| UNI | 07-27 21:00 | 07-27 22:00 | stop_loss | 1 | -1.49 | +| WIF | 07-27 18:00 | 07-27 22:00 | stop_loss | 4 | -1.49 | +| AVAX | 07-27 22:00 | 07-27 23:00 | stop_loss | 1 | -1.49 | +| BONK | 07-27 22:00 | 07-27 23:00 | stop_loss | 1 | -1.49 | +| FET | 07-27 22:00 | 07-27 23:00 | take_profit | 1 | +1.49 | +| LTC | 07-27 14:00 | 07-27 23:00 | stop_loss | 9 | -1.49 | +| NEAR | 07-27 22:00 | 07-27 23:00 | stop_loss | 1 | -1.49 | +| OP | 07-27 22:00 | 07-27 23:00 | stop_loss | 1 | -1.49 | +| SEI | 07-27 22:00 | 07-27 23:00 | stop_loss | 1 | -1.49 | +| TRX | 07-27 14:00 | 07-27 23:00 | stop_loss | 9 | -1.49 | +| ETC | 07-27 22:00 | 07-28 00:00 | stop_loss | 2 | -1.49 | +| KAS | 07-27 22:00 | 07-28 00:00 | stop_loss | 2 | -1.49 | +| PEPE | 07-27 22:00 | 07-28 00:00 | stop_loss | 2 | -1.49 | +| SEI | 07-27 23:00 | 07-28 00:00 | stop_loss | 1 | -1.49 | +| WIF | 07-27 22:00 | 07-28 00:00 | trailing_stop | 2 | -0.16 | +| APT | 07-27 22:00 | 07-28 01:00 | stop_loss | 3 | -1.49 | +| ATOM | 07-27 22:00 | 07-28 01:00 | stop_loss | 3 | -1.49 | +| FIL | 07-27 22:00 | 07-28 01:00 | stop_loss | 3 | -1.49 | +| INJ | 07-27 22:00 | 07-28 01:00 | stop_loss | 3 | -1.49 | +| PEPE | 07-28 00:00 | 07-28 01:00 | stop_loss | 1 | -1.49 | +| RENDER | 07-27 22:00 | 07-28 01:00 | stop_loss | 3 | -1.49 | +| SEI | 07-28 00:00 | 07-28 01:00 | stop_loss | 1 | -1.49 | +| SHIB | 07-28 00:00 | 07-28 01:00 | stop_loss | 1 | -1.49 | +| TIA | 07-27 22:00 | 07-28 01:00 | trailing_stop | 3 | -0.57 | +| SHIB | 07-28 01:00 | 07-28 02:00 | trailing_stop | 1 | -0.21 | +| KAS | 07-28 00:00 | 07-28 04:00 | stop_loss | 4 | -1.49 | +| PEPE | 07-28 01:00 | 07-28 07:00 | trailing_stop | 6 | +0.07 | +| UNI | 07-27 22:00 | 07-28 08:00 | trailing_stop | 10 | -0.41 | +| FET | 07-28 08:00 | 07-28 09:00 | stop_loss | 1 | -1.49 | +| NEAR | 07-28 09:00 | 07-28 11:00 | stop_loss | 2 | -1.49 | +| OP | 07-27 23:00 | 07-28 11:00 | stop_loss | 12 | -1.49 | +| SEI | 07-28 06:00 | 07-28 11:00 | stop_loss | 5 | -1.49 | +| TIA | 07-28 10:00 | 07-28 11:00 | stop_loss | 1 | -1.49 | +| ARB | 07-27 22:00 | 07-28 12:00 | take_profit | 14 | +1.49 | +| OP | 07-28 11:00 | 07-28 12:00 | stop_loss | 1 | -1.49 | +| ATOM | 07-28 06:00 | 07-28 13:00 | stop_loss | 7 | -1.49 | +| AVAX | 07-27 23:00 | 07-28 13:00 | trailing_stop | 14 | -0.51 | +| ETC | 07-28 00:00 | 07-28 13:00 | stop_loss | 13 | -1.49 | +| FIL | 07-28 08:00 | 07-28 13:00 | stop_loss | 5 | -1.49 | +| KAS | 07-28 09:00 | 07-28 13:00 | stop_loss | 4 | -1.49 | +| PEPE | 07-28 07:00 | 07-28 13:00 | stop_loss | 6 | -1.49 | +| RENDER | 07-28 06:00 | 07-28 13:00 | stop_loss | 7 | -1.49 | +| SEI | 07-28 11:00 | 07-28 13:00 | stop_loss | 2 | -1.49 | +| INJ | 07-28 17:00 | 07-28 19:00 | take_profit | 2 | +1.49 | +| SUI | 07-27 22:00 | 07-28 19:00 | take_profit | 21 | +1.49 | +| LTC | 07-28 22:00 | 07-29 03:00 | stop_loss | 5 | -1.49 | +| UNI | 07-29 03:00 | 07-29 06:00 | take_profit | 3 | +1.49 | +| INJ | 07-29 04:00 | 07-29 07:00 | stop_loss | 3 | -1.49 | +| APT | 07-29 04:00 | 07-29 10:00 | trailing_stop | 6 | -0.49 | +| FET | 07-29 08:00 | 07-29 10:00 | trailing_stop | 2 | -0.28 | +| FIL | 07-29 03:00 | 07-29 12:00 | trailing_stop | 9 | -0.25 | +| AVAX | 07-29 05:00 | 07-29 13:00 | stop_loss | 8 | -1.49 | +| ARB | 07-29 05:00 | 07-29 14:00 | trailing_stop | 9 | -0.56 | +| SEI | 07-29 03:00 | 07-29 14:00 | trailing_stop | 11 | -0.64 | +| TIA | 07-29 03:00 | 07-29 15:00 | stop_loss | 12 | -1.49 | +| FIL | 07-29 16:00 | 07-29 17:00 | trailing_stop | 1 | -0.43 | +| APT | 07-29 14:00 | 07-29 18:00 | take_profit | 4 | +1.49 | +| NEAR | 07-29 10:00 | 07-29 18:00 | take_profit | 8 | +1.49 | +| RENDER | 07-29 03:00 | 07-29 18:00 | trailing_stop | 15 | -0.35 | +| BONK | 07-29 19:00 | 07-29 20:00 | stop_loss | 1 | -1.49 | +| FIL | 07-29 19:00 | 07-29 20:00 | stop_loss | 1 | -1.49 | +| KAS | 07-29 19:00 | 07-29 20:00 | stop_loss | 1 | -1.49 | +| LTC | 07-29 04:00 | 07-29 20:00 | stop_loss | 16 | -1.49 | +| BONK | 07-29 20:00 | 07-29 21:00 | trailing_stop | 1 | -0.31 | +| FIL | 07-29 20:00 | 07-29 21:00 | trailing_stop | 1 | -0.14 | +| PEPE | 07-29 20:00 | 07-30 01:00 | take_profit | 5 | +1.49 | +| KAS | 07-29 20:00 | 07-30 15:00 | trailing_stop | 19 | -0.18 | +| OP | 07-30 15:00 | 07-30 16:00 | stop_loss | 1 | -1.49 | +| BONK | 07-30 15:00 | 07-30 17:00 | stop_loss | 2 | -1.49 | +| ARB | 07-30 15:00 | 07-30 23:00 | stop_loss | 8 | -1.49 | +| WIF | 07-30 15:00 | 07-31 01:00 | take_profit | 10 | +1.49 | +| ETC | 07-31 01:00 | 07-31 02:00 | stop_loss | 1 | -1.49 | +| OP | 07-30 16:00 | 07-31 02:00 | stop_loss | 10 | -1.49 | +| ATOM | 07-31 01:00 | 07-31 03:00 | stop_loss | 2 | -1.49 | +| ATOM | 07-31 03:00 | 07-31 04:00 | stop_loss | 1 | -1.49 | +| ARB | 07-30 23:00 | 07-31 07:00 | stop_loss | 8 | -1.49 | +| BONK | 07-31 04:00 | 07-31 07:00 | stop_loss | 3 | -1.49 | +| BONK | 07-31 07:00 | 07-31 09:00 | stop_loss | 2 | -1.49 | +| RENDER | 07-31 03:00 | 07-31 09:00 | stop_loss | 6 | -1.49 | +| SEI | 07-31 06:00 | 07-31 09:00 | stop_loss | 3 | -1.49 | +| TIA | 07-31 07:00 | 07-31 09:00 | stop_loss | 2 | -1.49 | +| BONK | 07-31 09:00 | 07-31 10:00 | stop_loss | 1 | -1.49 | +| FET | 07-31 09:00 | 07-31 10:00 | trailing_stop | 1 | -0.37 | +| OP | 07-31 09:00 | 07-31 10:00 | stop_loss | 1 | -1.49 | +| SUI | 07-31 05:00 | 07-31 10:00 | stop_loss | 5 | -1.49 | +| UNI | 07-31 09:00 | 07-31 10:00 | take_profit | 1 | +1.49 | +| OP | 07-31 10:00 | 07-31 12:00 | stop_loss | 2 | -1.49 | +| APT | 07-31 09:00 | 07-31 14:00 | stop_loss | 5 | -1.49 | +| ARB | 07-31 09:00 | 07-31 14:00 | trailing_stop | 5 | -0.14 | +| BONK | 07-31 10:00 | 07-31 14:00 | stop_loss | 4 | -1.49 | +| ETC | 07-31 02:00 | 07-31 14:00 | stop_loss | 12 | -1.49 | +| KAS | 07-31 13:00 | 07-31 14:00 | stop_loss | 1 | -1.49 | +| RENDER | 07-31 09:00 | 07-31 14:00 | stop_loss | 5 | -1.49 | +| SHIB | 07-31 14:00 | 07-31 16:00 | trailing_stop | 2 | -0.22 | +| KAS | 07-31 14:00 | 07-31 17:00 | confirmed_bearish_exit | 3 | -0.10 | +| ATOM | 07-31 04:00 | 07-31 18:00 | trailing_stop | 14 | -0.65 | +| BONK | 07-31 17:00 | 07-31 18:00 | stop_loss | 1 | -1.49 | +| INJ | 07-31 12:00 | 07-31 19:00 | stop_loss | 7 | -1.49 | +| LTC | 07-31 09:00 | 07-31 20:00 | stop_loss | 11 | -1.49 | +| BONK | 07-31 19:00 | 08-01 00:00 | take_profit | 5 | +1.49 | +| TIA | 07-31 15:00 | 08-01 04:00 | confirmed_bearish_exit | 13 | +1.24 | +| NEAR | 08-01 07:00 | 08-01 09:00 | stop_loss | 2 | -1.49 | +| UNI | 08-01 07:00 | 08-01 11:00 | stop_loss | 4 | -1.49 | +| LTC | 07-31 22:00 | 08-01 14:00 | trailing_stop | 16 | -0.58 | +| BONK | 08-01 14:00 | 08-01 17:00 | stop_loss | 3 | -1.49 | +| SEI | 08-01 05:00 | 08-01 17:00 | stop_loss | 12 | -1.49 | +| UNI | 08-01 15:00 | 08-01 17:00 | stop_loss | 2 | -1.49 | +| ATOM | 08-01 07:00 | 08-01 18:00 | stop_loss | 11 | -1.49 | +| AVAX | 08-01 09:00 | 08-01 18:00 | stop_loss | 9 | -1.49 | +| BONK | 08-01 17:00 | 08-01 18:00 | stop_loss | 1 | -1.49 | +| FET | 08-01 17:00 | 08-01 18:00 | stop_loss | 1 | -1.49 | +| FIL | 08-01 17:00 | 08-01 18:00 | stop_loss | 1 | -1.49 | +| KAS | 08-01 17:00 | 08-01 18:00 | stop_loss | 1 | -1.49 | +| OP | 08-01 17:00 | 08-01 18:00 | stop_loss | 1 | -1.49 | +| RENDER | 08-01 15:00 | 08-01 18:00 | stop_loss | 3 | -1.49 | +| SEI | 08-01 17:00 | 08-01 18:00 | stop_loss | 1 | -1.49 | +| SUI | 07-31 15:00 | 08-01 18:00 | stop_loss | 27 | -1.49 | +| WIF | 08-01 17:00 | 08-01 18:00 | stop_loss | 1 | -1.49 | +| BONK | 08-01 18:00 | 08-01 22:00 | take_profit | 4 | +1.49 | +| WIF | 08-01 18:00 | 08-01 23:00 | stop_loss | 5 | -1.49 | +| AVAX | 08-01 18:00 | 08-02 01:00 | take_profit | 7 | +1.49 | +| FET | 08-01 18:00 | 08-02 01:00 | take_profit | 7 | +1.49 | +| SUI | 08-01 18:00 | 08-02 01:00 | take_profit | 7 | +1.49 | +| TIA | 08-01 18:00 | 08-02 01:00 | take_profit | 7 | +1.49 | +| APT | 08-01 18:00 | 08-02 02:00 | take_profit | 8 | +1.49 | +| ATOM | 08-01 18:00 | 08-02 02:00 | take_profit | 8 | +1.49 | +| ETC | 08-01 18:00 | 08-02 02:00 | take_profit | 8 | +1.49 | +| FIL | 08-01 18:00 | 08-02 02:00 | take_profit | 8 | +1.49 | +| LTC | 08-01 18:00 | 08-02 02:00 | take_profit | 8 | +1.49 | +| OP | 08-01 18:00 | 08-02 02:00 | trailing_stop | 8 | +0.09 | +| SEI | 08-01 18:00 | 08-02 02:00 | take_profit | 8 | +1.49 | +| WIF | 08-02 02:00 | 08-02 09:00 | take_profit | 7 | +1.49 | +| KAS | 08-01 18:00 | 08-02 11:00 | trailing_stop | 17 | -0.40 | +| RENDER | 08-01 18:00 | 08-02 20:00 | take_profit | 26 | +1.49 | +| AVAX | 08-03 00:00 | 08-03 02:00 | stop_loss | 2 | -1.49 | +| AVAX | 08-03 02:00 | 08-03 03:00 | stop_loss | 1 | -1.49 | +| UNI | 08-03 00:00 | 08-03 03:00 | stop_loss | 3 | -1.49 | +| BONK | 08-03 01:00 | 08-03 04:00 | stop_loss | 3 | -1.49 | +| PEPE | 08-03 04:00 | 08-03 07:00 | stop_loss | 3 | -1.49 | +| WIF | 08-03 00:00 | 08-03 07:00 | stop_loss | 7 | -1.49 | +| BONK | 08-03 04:00 | 08-03 08:00 | stop_loss | 4 | -1.49 | +| ETC | 08-03 00:00 | 08-03 08:00 | stop_loss | 8 | -1.49 | +| FET | 08-03 01:00 | 08-03 08:00 | stop_loss | 7 | -1.49 | +| UNI | 08-03 07:00 | 08-03 08:00 | stop_loss | 1 | -1.49 | +| NEAR | 08-02 20:00 | 08-03 12:00 | trailing_stop | 16 | -0.48 | +| APT | 08-03 06:00 | 08-03 13:00 | take_profit | 7 | +1.49 | +| AVAX | 08-03 03:00 | 08-03 13:00 | trailing_stop | 10 | +0.13 | +| FET | 08-03 11:00 | 08-03 13:00 | trailing_stop | 2 | -0.50 | +| FIL | 08-03 04:00 | 08-03 13:00 | take_profit | 9 | +1.49 | +| KAS | 08-03 07:00 | 08-03 13:00 | stop_loss | 6 | -1.49 | +| PEPE | 08-03 11:00 | 08-03 13:00 | take_profit | 2 | +1.49 | +| SEI | 08-02 16:00 | 08-03 13:00 | trailing_stop | 21 | -0.52 | +| SHIB | 08-03 00:00 | 08-03 16:00 | take_profit | 16 | +1.49 | +| UNI | 08-03 15:00 | 08-03 16:00 | stop_loss | 1 | -1.49 | +| INJ | 08-03 08:00 | 08-03 19:00 | take_profit | 11 | +1.49 | +| ETC | 08-03 11:00 | 08-04 00:00 | trailing_stop | 13 | -0.65 | +| KAS | 08-03 19:00 | 08-04 03:00 | stop_loss | 8 | -1.49 | +| UNI | 08-03 16:00 | 08-04 03:00 | stop_loss | 11 | -1.49 | +| PEPE | 08-04 10:00 | 08-04 13:00 | stop_loss | 3 | -1.49 | +| FIL | 08-04 08:00 | 08-04 14:00 | stop_loss | 6 | -1.49 | +| RENDER | 08-03 04:00 | 08-04 14:00 | stop_loss | 34 | -1.49 | +| WIF | 08-04 16:00 | 08-04 17:00 | trailing_stop | 1 | -0.63 | +| FET | 08-04 14:00 | 08-04 18:00 | take_profit | 4 | +1.49 | +| AVAX | 08-04 16:00 | 08-04 22:00 | stop_loss | 6 | -1.49 | +| TRX | 07-27 23:00 | 08-04 22:00 | trailing_stop | 191 | +0.15 | +| INJ | 08-04 20:00 | 08-04 23:00 | stop_loss | 3 | -1.49 | +| RENDER | 08-04 15:00 | 08-04 23:00 | trailing_stop | 8 | -0.37 | +| LTC | 08-03 03:00 | 08-05 03:00 | take_profit | 48 | +1.49 | +| OP | 08-04 17:00 | 08-05 03:00 | trailing_stop | 10 | -0.13 | +| NEAR | 08-05 03:00 | 08-05 05:00 | trailing_stop | 2 | -0.36 | +| RENDER | 08-05 00:00 | 08-05 05:00 | trailing_stop | 5 | -0.51 | +| KAS | 08-05 04:00 | 08-05 06:00 | stop_loss | 2 | -1.49 | +| ATOM | 08-05 03:00 | 08-05 11:00 | stop_loss | 8 | -1.49 | +| AVAX | 08-05 03:00 | 08-05 13:00 | stop_loss | 10 | -1.49 | +| INJ | 08-05 00:00 | 08-05 14:00 | take_profit | 14 | +1.49 | +| ETC | 08-05 07:00 | 08-05 16:00 | stop_loss | 9 | -1.49 | +| OP | 08-05 13:00 | 08-05 16:00 | take_profit | 3 | +1.49 | +| FET | 08-05 19:00 | 08-05 21:00 | stop_loss | 2 | -1.49 | +| TIA | 08-05 15:00 | 08-05 22:00 | trailing_stop | 7 | -0.66 | +| FET | 08-05 21:00 | 08-06 01:00 | stop_loss | 4 | -1.49 | +| SHIB | 08-05 07:00 | 08-06 01:00 | stop_loss | 18 | -1.49 | +| INJ | 08-06 01:00 | 08-06 03:00 | stop_loss | 2 | -1.49 | +| SUI | 08-05 03:00 | 08-06 03:00 | stop_loss | 24 | -1.49 | +| ARB | 08-06 01:00 | 08-06 09:00 | stop_loss | 8 | -1.49 | +| FIL | 08-06 07:00 | 08-06 09:00 | stop_loss | 2 | -1.49 | +| INJ | 08-06 03:00 | 08-06 09:00 | stop_loss | 6 | -1.49 | +| KAS | 08-05 15:00 | 08-06 09:00 | trailing_stop | 18 | -0.56 | +| OP | 08-06 07:00 | 08-06 09:00 | stop_loss | 2 | -1.49 | +| SHIB | 08-06 02:00 | 08-06 09:00 | stop_loss | 7 | -1.49 | +| ARB | 08-06 09:00 | 08-06 10:00 | stop_loss | 1 | -1.49 | +| AVAX | 08-06 09:00 | 08-06 10:00 | stop_loss | 1 | -1.49 | +| ETC | 08-06 09:00 | 08-06 10:00 | stop_loss | 1 | -1.49 | +| FIL | 08-06 09:00 | 08-06 10:00 | stop_loss | 1 | -1.49 | +| SUI | 08-06 09:00 | 08-06 10:00 | stop_loss | 1 | -1.49 | +| KAS | 08-06 10:00 | 08-06 12:00 | stop_loss | 2 | -1.49 | +| BONK | 08-06 09:00 | 08-06 13:00 | stop_loss | 4 | -1.49 | +| KAS | 08-06 12:00 | 08-06 13:00 | stop_loss | 1 | -1.49 | +| OP | 08-06 10:00 | 08-06 13:00 | stop_loss | 3 | -1.49 | +| SHIB | 08-06 09:00 | 08-06 13:00 | stop_loss | 4 | -1.49 | +| TIA | 08-06 10:00 | 08-06 14:00 | take_profit | 4 | +1.49 | +| ARB | 08-06 10:00 | 08-06 15:00 | take_profit | 5 | +1.49 | +| FIL | 08-06 10:00 | 08-06 15:00 | take_profit | 5 | +1.49 | +| FET | 08-06 15:00 | 08-06 16:00 | take_profit | 1 | +1.49 | +| WIF | 08-06 09:00 | 08-06 16:00 | trailing_stop | 7 | +0.01 | +| ETC | 08-06 10:00 | 08-06 18:00 | take_profit | 8 | +1.49 | +| RENDER | 08-05 21:00 | 08-06 18:00 | trailing_stop | 21 | +0.01 | +| PEPE | 08-06 09:00 | 08-06 20:00 | confirmed_bearish_exit | 11 | +0.57 | +| TIA | 08-06 18:00 | 08-06 21:00 | take_profit | 3 | +1.49 | +| AVAX | 08-06 10:00 | 08-06 23:00 | trailing_stop | 13 | -0.25 | +| INJ | 08-06 22:00 | 08-07 00:00 | stop_loss | 2 | -1.49 | +| SHIB | 08-06 21:00 | 08-07 00:00 | stop_loss | 3 | -1.49 | +| INJ | 08-07 00:00 | 08-07 04:00 | stop_loss | 4 | -1.49 | +| KAS | 08-06 13:00 | 08-07 04:00 | trailing_stop | 15 | -0.06 | +| BONK | 08-07 07:00 | 08-07 08:00 | stop_loss | 1 | -1.49 | +| FET | 08-07 07:00 | 08-07 08:00 | trailing_stop | 1 | -0.65 | +| LTC | 08-06 07:00 | 08-07 09:00 | take_profit | 26 | +1.49 | +| BONK | 08-07 08:00 | 08-07 10:00 | stop_loss | 2 | -1.49 | +| SHIB | 08-07 04:00 | 08-07 12:00 | take_profit | 8 | +1.49 | +| BONK | 08-07 10:00 | 08-07 13:00 | stop_loss | 3 | -1.49 | +| ATOM | 08-07 05:00 | 08-07 14:00 | stop_loss | 9 | -1.49 | +| SUI | 08-06 10:00 | 08-07 14:00 | stop_loss | 28 | -1.49 | +| TIA | 08-07 11:00 | 08-07 14:00 | stop_loss | 3 | -1.49 | +| ATOM | 08-07 14:00 | 08-07 15:00 | take_profit | 1 | +1.49 | +| NEAR | 08-07 14:00 | 08-07 16:00 | stop_loss | 2 | -1.49 | +| UNI | 08-07 14:00 | 08-07 16:00 | take_profit | 2 | +1.49 | +| FIL | 08-07 14:00 | 08-07 17:00 | stop_loss | 3 | -1.49 | +| INJ | 08-07 08:00 | 08-07 17:00 | stop_loss | 9 | -1.49 | +| NEAR | 08-07 16:00 | 08-07 20:00 | stop_loss | 4 | -1.49 | +| APT | 08-07 14:00 | 08-07 21:00 | stop_loss | 7 | -1.49 | +| BONK | 08-07 20:00 | 08-08 01:00 | take_profit | 5 | +1.49 | +| FIL | 08-07 18:00 | 08-08 03:00 | take_profit | 9 | +1.49 | +| WIF | 08-07 14:00 | 08-08 03:00 | confirmed_bearish_exit | 13 | +1.38 | +| NEAR | 08-08 02:00 | 08-08 07:00 | trailing_stop | 5 | -0.58 | +| SHIB | 08-07 14:00 | 08-08 07:00 | take_profit | 17 | +1.49 | +| OP | 08-07 19:00 | 08-08 10:00 | take_profit | 15 | +1.49 | +| INJ | 08-08 10:00 | 08-08 11:00 | stop_loss | 1 | -1.49 | +| INJ | 08-08 13:00 | 08-08 17:00 | trailing_stop | 4 | +0.06 | +| ETC | 08-07 17:00 | 08-09 01:00 | trailing_stop | 32 | -0.02 | +| RENDER | 08-07 14:00 | 08-09 02:00 | take_profit | 36 | +1.49 | +| ARB | 08-09 00:00 | 08-09 08:00 | stop_loss | 8 | -1.49 | +| ATOM | 08-09 00:00 | 08-09 11:00 | stop_loss | 11 | -1.49 | +| LTC | 08-08 05:00 | 08-09 14:00 | take_profit | 33 | +1.49 | +| SHIB | 08-08 22:00 | 08-09 21:00 | take_profit | 23 | +1.49 | +| APT | 08-09 05:00 | 08-09 22:00 | stop_loss | 17 | -1.49 | +| AVAX | 08-08 22:00 | 08-09 22:00 | trailing_stop | 24 | -0.28 | +| INJ | 08-08 17:00 | 08-09 22:00 | stop_loss | 29 | -1.49 | +| SUI | 08-09 04:00 | 08-09 22:00 | trailing_stop | 18 | -0.17 | +| TIA | 08-08 22:00 | 08-09 22:00 | stop_loss | 24 | -1.49 | +| ETC | 08-09 08:00 | 08-09 23:00 | stop_loss | 15 | -1.49 | +| INJ | 08-09 22:00 | 08-09 23:00 | stop_loss | 1 | -1.49 | +| TIA | 08-09 22:00 | 08-09 23:00 | stop_loss | 1 | -1.49 | +| BONK | 08-09 23:00 | 08-10 00:00 | stop_loss | 1 | -1.49 | +| KAS | 08-09 22:00 | 08-10 00:00 | stop_loss | 2 | -1.49 | +| NEAR | 08-09 23:00 | 08-10 02:00 | trailing_stop | 3 | -0.22 | +| RENDER | 08-09 23:00 | 08-10 03:00 | stop_loss | 4 | -1.49 | +| INJ | 08-09 23:00 | 08-10 04:00 | take_profit | 5 | +1.49 | +| LTC | 08-09 22:00 | 08-10 04:00 | stop_loss | 6 | -1.49 | +| TIA | 08-09 23:00 | 08-10 04:00 | trailing_stop | 5 | -0.56 | +| AVAX | 08-09 23:00 | 08-10 05:00 | take_profit | 6 | +1.49 | +| ETC | 08-09 23:00 | 08-10 06:00 | take_profit | 7 | +1.49 | +| FET | 08-09 23:00 | 08-10 06:00 | take_profit | 7 | +1.49 | +| RENDER | 08-10 03:00 | 08-10 07:00 | take_profit | 4 | +1.49 | +| APT | 08-09 23:00 | 08-10 09:00 | trailing_stop | 10 | -0.19 | +| FIL | 08-09 22:00 | 08-10 11:00 | stop_loss | 13 | -1.49 | +| LTC | 08-10 07:00 | 08-10 15:00 | stop_loss | 8 | -1.49 | +| SUI | 08-09 23:00 | 08-10 15:00 | trailing_stop | 16 | -0.32 | +| KAS | 08-10 07:00 | 08-10 18:00 | stop_loss | 11 | -1.49 | +| BONK | 08-10 20:00 | 08-10 21:00 | stop_loss | 1 | -1.49 | +| SEI | 08-09 23:00 | 08-10 21:00 | trailing_stop | 22 | -0.43 | +| SHIB | 08-10 15:00 | 08-10 21:00 | stop_loss | 6 | -1.49 | +| TIA | 08-10 20:00 | 08-10 21:00 | stop_loss | 1 | -1.49 | +| WIF | 08-10 09:00 | 08-10 21:00 | stop_loss | 12 | -1.49 | +| RENDER | 08-10 10:00 | 08-10 22:00 | stop_loss | 12 | -1.49 | +| SEI | 08-10 21:00 | 08-10 23:00 | stop_loss | 2 | -1.49 | +| BONK | 08-10 21:00 | 08-11 00:00 | trailing_stop | 3 | -0.47 | +| RENDER | 08-10 22:00 | 08-11 00:00 | stop_loss | 2 | -1.49 | +| SHIB | 08-10 21:00 | 08-11 01:00 | stop_loss | 4 | -1.49 | +| AVAX | 08-10 21:00 | 08-11 02:00 | take_profit | 5 | +1.49 | +| FIL | 08-10 16:00 | 08-11 02:00 | take_profit | 10 | +1.49 | +| INJ | 08-11 00:00 | 08-11 02:00 | trailing_stop | 2 | -0.06 | +| KAS | 08-10 21:00 | 08-11 02:00 | take_profit | 5 | +1.49 | +| TIA | 08-10 21:00 | 08-11 04:00 | stop_loss | 7 | -1.49 | +| UNI | 08-10 15:00 | 08-11 04:00 | take_profit | 13 | +1.49 | +| BONK | 08-11 03:00 | 08-11 05:00 | stop_loss | 2 | -1.49 | +| BONK | 08-11 05:00 | 08-11 06:00 | stop_loss | 1 | -1.49 | +| TIA | 08-11 04:00 | 08-11 06:00 | stop_loss | 2 | -1.49 | +| BONK | 08-11 06:00 | 08-11 07:00 | stop_loss | 1 | -1.49 | +| PEPE | 08-10 22:00 | 08-11 07:00 | stop_loss | 9 | -1.49 | +| WIF | 08-10 23:00 | 08-11 07:00 | trailing_stop | 8 | -0.58 | +| TRX | 08-05 06:00 | 08-11 09:00 | take_profit | 147 | +1.49 | +| ATOM | 08-11 05:00 | 08-11 10:00 | take_profit | 5 | +1.49 | +| RENDER | 08-11 00:00 | 08-11 10:00 | stop_loss | 10 | -1.49 | +| NEAR | 08-10 19:00 | 08-11 12:00 | stop_loss | 17 | -1.49 | +| BONK | 08-11 07:00 | 08-11 14:00 | stop_loss | 7 | -1.49 | +| SEI | 08-10 23:00 | 08-11 14:00 | stop_loss | 15 | -1.49 | +| SHIB | 08-11 07:00 | 08-11 14:00 | stop_loss | 7 | -1.49 | +| SUI | 08-10 21:00 | 08-11 14:00 | stop_loss | 17 | -1.49 | +| UNI | 08-11 12:00 | 08-11 14:00 | stop_loss | 2 | -1.49 | +| APT | 08-11 10:00 | 08-11 15:00 | stop_loss | 5 | -1.49 | +| ARB | 08-11 14:00 | 08-11 15:00 | stop_loss | 1 | -1.49 | +| AVAX | 08-11 14:00 | 08-11 15:00 | stop_loss | 1 | -1.49 | +| ETC | 08-10 16:00 | 08-11 15:00 | stop_loss | 23 | -1.49 | +| FET | 08-10 22:00 | 08-11 15:00 | stop_loss | 17 | -1.49 | +| FIL | 08-11 14:00 | 08-11 15:00 | stop_loss | 1 | -1.49 | +| TIA | 08-11 14:00 | 08-11 15:00 | stop_loss | 1 | -1.49 | +| UNI | 08-11 14:00 | 08-11 15:00 | stop_loss | 1 | -1.49 | +| WIF | 08-11 14:00 | 08-11 15:00 | stop_loss | 1 | -1.49 | +| OP | 08-11 14:00 | 08-11 16:00 | stop_loss | 2 | -1.49 | +| FIL | 08-11 15:00 | 08-11 19:00 | take_profit | 4 | +1.49 | +| NEAR | 08-11 14:00 | 08-11 19:00 | take_profit | 5 | +1.49 | +| OP | 08-11 16:00 | 08-11 19:00 | trailing_stop | 3 | -0.03 | +| APT | 08-11 15:00 | 08-11 20:00 | take_profit | 5 | +1.49 | +| WIF | 08-11 15:00 | 08-11 20:00 | take_profit | 5 | +1.49 | +| ARB | 08-11 15:00 | 08-11 21:00 | confirmed_bearish_exit | 6 | +0.52 | +| SUI | 08-11 14:00 | 08-11 21:00 | take_profit | 7 | +1.49 | +| PEPE | 08-11 14:00 | 08-11 22:00 | take_profit | 8 | +1.49 | +| TIA | 08-11 15:00 | 08-11 23:00 | take_profit | 8 | +1.49 | +| FET | 08-11 16:00 | 08-12 01:00 | take_profit | 9 | +1.49 | +| UNI | 08-11 15:00 | 08-12 01:00 | take_profit | 10 | +1.49 | +| AVAX | 08-11 15:00 | 08-12 05:00 | confirmed_bearish_exit | 14 | +0.73 | +| KAS | 08-11 16:00 | 08-12 06:00 | trailing_stop | 14 | -0.36 | +| UNI | 08-12 01:00 | 08-12 06:00 | stop_loss | 5 | -1.49 | +| ETC | 08-11 15:00 | 08-12 07:00 | trailing_stop | 16 | -0.29 | +| UNI | 08-12 07:00 | 08-12 08:00 | stop_loss | 1 | -1.49 | +| BONK | 08-12 12:00 | 08-12 13:00 | stop_loss | 1 | -1.49 | +| APT | 08-12 08:00 | 08-12 14:00 | trailing_stop | 6 | -0.65 | +| ARB | 08-12 13:00 | 08-12 14:00 | stop_loss | 1 | -1.49 | +| BONK | 08-12 13:00 | 08-12 14:00 | stop_loss | 1 | -1.49 | +| SEI | 08-11 15:00 | 08-12 14:00 | trailing_stop | 23 | -0.69 | +| UNI | 08-12 08:00 | 08-12 14:00 | stop_loss | 6 | -1.49 | +| RENDER | 08-12 14:00 | 08-12 15:00 | stop_loss | 1 | -1.49 | +| KAS | 08-12 14:00 | 08-12 16:00 | stop_loss | 2 | -1.49 | +| ATOM | 08-12 09:00 | 08-12 17:00 | stop_loss | 8 | -1.49 | +| BONK | 08-12 14:00 | 08-12 19:00 | take_profit | 5 | +1.49 | +| FIL | 08-12 10:00 | 08-12 19:00 | stop_loss | 9 | -1.49 | +| ARB | 08-12 19:00 | 08-12 20:00 | stop_loss | 1 | -1.49 | +| INJ | 08-12 12:00 | 08-12 20:00 | take_profit | 8 | +1.49 | +| ARB | 08-12 20:00 | 08-12 21:00 | stop_loss | 1 | -1.49 | +| BONK | 08-12 19:00 | 08-12 21:00 | stop_loss | 2 | -1.49 | +| FIL | 08-12 19:00 | 08-12 21:00 | stop_loss | 2 | -1.49 | +| OP | 08-12 14:00 | 08-12 21:00 | stop_loss | 7 | -1.49 | +| PEPE | 08-12 14:00 | 08-12 21:00 | stop_loss | 7 | -1.49 | +| ARB | 08-12 21:00 | 08-12 22:00 | stop_loss | 1 | -1.49 | +| OP | 08-12 21:00 | 08-12 22:00 | stop_loss | 1 | -1.49 | +| PEPE | 08-12 21:00 | 08-12 22:00 | stop_loss | 1 | -1.49 | +| SUI | 08-12 14:00 | 08-12 22:00 | stop_loss | 8 | -1.49 | +| WIF | 08-12 21:00 | 08-12 22:00 | stop_loss | 1 | -1.49 | +| ARB | 08-12 22:00 | 08-12 23:00 | stop_loss | 1 | -1.49 | +| KAS | 08-12 16:00 | 08-12 23:00 | stop_loss | 7 | -1.49 | +| PEPE | 08-12 22:00 | 08-12 23:00 | stop_loss | 1 | -1.49 | +| OP | 08-12 22:00 | 08-13 00:00 | stop_loss | 2 | -1.49 | +| BONK | 08-12 21:00 | 08-13 02:00 | trailing_stop | 5 | -0.37 | +| PEPE | 08-12 23:00 | 08-13 02:00 | trailing_stop | 3 | -0.59 | +| SEI | 08-12 21:00 | 08-13 02:00 | take_profit | 5 | +1.49 | +| APT | 08-12 21:00 | 08-13 03:00 | take_profit | 6 | +1.49 | +| ARB | 08-12 23:00 | 08-13 03:00 | take_profit | 4 | +1.49 | +| OP | 08-13 00:00 | 08-13 03:00 | trailing_stop | 3 | -0.07 | +| WIF | 08-13 00:00 | 08-13 03:00 | take_profit | 3 | +1.49 | +| SHIB | 08-13 00:00 | 08-13 04:00 | take_profit | 4 | +1.49 | +| UNI | 08-12 18:00 | 08-13 07:00 | take_profit | 13 | +1.49 | +| ARB | 08-13 04:00 | 08-13 08:00 | stop_loss | 4 | -1.49 | +| PEPE | 08-13 05:00 | 08-13 08:00 | stop_loss | 3 | -1.49 | +| FIL | 08-12 21:00 | 08-13 09:00 | trailing_stop | 12 | +0.01 | +| PEPE | 08-13 08:00 | 08-13 09:00 | trailing_stop | 1 | -0.60 | +| ATOM | 08-13 02:00 | 08-13 11:00 | take_profit | 9 | +1.49 | +| ARB | 08-13 08:00 | 08-13 16:00 | trailing_stop | 8 | -0.64 | +| OP | 08-13 07:00 | 08-13 16:00 | stop_loss | 9 | -1.49 | +| KAS | 08-13 00:00 | 08-13 23:00 | stop_loss | 23 | -1.49 | +| NEAR | 08-13 18:00 | 08-14 00:00 | stop_loss | 6 | -1.49 | +| PEPE | 08-13 17:00 | 08-14 01:00 | take_profit | 8 | +1.49 | +| INJ | 08-13 16:00 | 08-14 03:00 | stop_loss | 11 | -1.49 | +| UNI | 08-13 13:00 | 08-14 03:00 | stop_loss | 14 | -1.49 | +| APT | 08-14 02:00 | 08-14 04:00 | stop_loss | 2 | -1.49 | +| NEAR | 08-14 00:00 | 08-14 04:00 | stop_loss | 4 | -1.49 | +| SEI | 08-13 18:00 | 08-14 06:00 | stop_loss | 12 | -1.49 | +| APT | 08-14 04:00 | 08-14 07:00 | stop_loss | 3 | -1.49 | +| WIF | 08-13 19:00 | 08-14 07:00 | stop_loss | 12 | -1.49 | +| LTC | 08-12 14:00 | 08-14 08:00 | stop_loss | 42 | -1.49 | +| SHIB | 08-13 20:00 | 08-14 08:00 | trailing_stop | 12 | -0.14 | +| TIA | 08-14 06:00 | 08-14 09:00 | stop_loss | 3 | -1.49 | +| AVAX | 08-13 20:00 | 08-14 10:00 | stop_loss | 14 | -1.49 | +| INJ | 08-14 03:00 | 08-14 10:00 | stop_loss | 7 | -1.49 | +| TIA | 08-14 09:00 | 08-14 11:00 | stop_loss | 2 | -1.49 | +| APT | 08-14 07:00 | 08-14 12:00 | stop_loss | 5 | -1.49 | +| UNI | 08-14 11:00 | 08-14 12:00 | trailing_stop | 1 | -0.34 | +| INJ | 08-14 11:00 | 08-14 14:00 | stop_loss | 3 | -1.49 | +| RENDER | 08-14 09:00 | 08-14 14:00 | trailing_stop | 5 | -0.67 | +| SEI | 08-14 06:00 | 08-14 14:00 | stop_loss | 8 | -1.49 | +| INJ | 08-14 14:00 | 08-14 15:00 | stop_loss | 1 | -1.49 | +| LTC | 08-14 12:00 | 08-14 15:00 | stop_loss | 3 | -1.49 | +| UNI | 08-14 12:00 | 08-14 15:00 | stop_loss | 3 | -1.49 | +| INJ | 08-14 15:00 | 08-14 16:00 | trailing_stop | 1 | -0.20 | +| WIF | 08-14 09:00 | 08-14 16:00 | take_profit | 7 | +1.49 | +| FIL | 08-14 09:00 | 08-14 17:00 | take_profit | 8 | +1.49 | +| PEPE | 08-14 10:00 | 08-14 17:00 | take_profit | 7 | +1.49 | +| ATOM | 08-14 16:00 | 08-14 18:00 | stop_loss | 2 | -1.49 | +| LTC | 08-14 15:00 | 08-14 19:00 | stop_loss | 4 | -1.49 | +| ATOM | 08-14 18:00 | 08-14 20:00 | stop_loss | 2 | -1.49 | +| ARB | 08-14 09:00 | 08-14 21:00 | stop_loss | 12 | -1.49 | +| APT | 08-14 17:00 | 08-14 22:00 | stop_loss | 5 | -1.49 | +| ARB | 08-14 22:00 | 08-14 23:00 | trailing_stop | 1 | -0.36 | +| TIA | 08-14 11:00 | 08-14 23:00 | trailing_stop | 12 | +0.09 | +| AVAX | 08-14 14:00 | 08-15 00:00 | take_profit | 10 | +1.49 | +| OP | 08-14 17:00 | 08-15 04:00 | take_profit | 11 | +1.49 | +| UNI | 08-15 00:00 | 08-15 04:00 | take_profit | 4 | +1.49 | +| ATOM | 08-14 20:00 | 08-15 05:00 | trailing_stop | 9 | -0.04 | +| INJ | 08-15 01:00 | 08-15 05:00 | stop_loss | 4 | -1.49 | +| FET | 08-14 18:00 | 08-15 07:00 | stop_loss | 13 | -1.49 | +| ETC | 08-14 03:00 | 08-15 09:00 | take_profit | 30 | +1.49 | +| TRX | 08-12 00:00 | 08-15 10:00 | stop_loss | 82 | -1.49 | +| SUI | 08-14 10:00 | 08-15 13:00 | period_end | 27 | +0.46 | +| SEI | 08-14 18:00 | 08-15 13:00 | period_end | 19 | -0.60 | +| LTC | 08-15 01:00 | 08-15 13:00 | period_end | 12 | +0.11 | +| SHIB | 08-15 11:00 | 08-15 13:00 | period_end | 2 | -0.06 | +| TRX | 08-15 11:00 | 08-15 13:00 | period_end | 2 | -0.47 | +| ATOM | 08-15 12:00 | 08-15 13:00 | period_end | 1 | -0.57 | +| WIF | 08-15 13:00 | 08-15 13:00 | period_end | 0 | -0.50 | + +## Допущения + +- Цены: binance 1h как прокси разрешённых бирж (kucoin/bitstamp/mexc — нет месяца локальной истории). +- ML-модель обучена на данных, включающих тестовый месяц (in-sample только для ML-части; индикаторная часть честная). +- Funding/orderbook нейтральны (0 / BALANCED). +- TP/SL исполняются по уровням при пересечении high/low бара; SL приоритетнее TP. +- Свободный профиль: без лимита позиций / DD-kill / daily-kill; каждый вход — фиксированные $200, лимит кэша не применяется (синтетический учёт). diff --git a/docs/TRADING_BACKTEST_6M_NO_ML_2026-08-15_RU.md b/docs/TRADING_BACKTEST_6M_NO_ML_2026-08-15_RU.md new file mode 100644 index 000000000..e2d47393c --- /dev/null +++ b/docs/TRADING_BACKTEST_6M_NO_ML_2026-08-15_RU.md @@ -0,0 +1,79 @@ +# Тестовый замер: 6 мес. торговли по алгоритму БЕЗ ML gate (контроль) (Directional v2) + +**Период:** 2026-02-15 13:00 UTC → 2026-08-15 13:00 UTC (6 календарн. мес., 4345 баров 1h) +**Стартовый капитал:** $1,000.00 + +## Результат алгоритма + +- **Итоговый капитал: $997.01** +- **PnL портфеля: -0.30%** +- Сделок: 1 (win 0, 0.0%) +- Средняя сделка: -1.494% | Комиссии и проскальзывание: $0.90 + +## Реальная динамика валют (Buy&Hold за тот же месяц) + +- **Средняя по 33 валютам: -20.22%** (медиана -28.12%) +- Лучшая: **NEAR +55.85%** +- Худшая: **BONK -64.12%** + +| Валюта | Buy&Hold % | +|---|---:| +| NEAR | +55.85 | +| INJ | +35.51 | +| TRX | +18.15 | +| TON | +9.59 | +| LINK | +7.92 | +| BNB | -1.21 | +| ETH | -5.92 | +| UNI | -6.38 | +| BTC | -8.51 | +| TIA | -9.87 | +| RENDER | -10.41 | +| SOL | -13.21 | +| LTC | -18.88 | +| KAS | -21.48 | +| FET | -22.40 | +| FIL | -27.69 | +| POL | -28.12 | +| ETC | -28.18 | +| AVAX | -29.20 | +| SUI | -29.90 | +| SHIB | -30.28 | +| ATOM | -30.28 | +| XRP | -34.04 | +| ARB | -34.71 | +| DOGE | -34.88 | +| ADA | -36.53 | +| WIF | -40.95 | +| APT | -41.67 | +| PEPE | -42.14 | +| DOT | -42.77 | +| SEI | -46.59 | +| OP | -54.05 | +| BONK | -64.12 | + +## Сравнение + +- Алгоритм -0.30% vs средняя валюта -20.22% → **+19.92 п.п.** +- Алгоритм -0.30% vs лучшая валюта (NEAR +55.85%) +- Алгоритм -0.30% vs худшая валюта (BONK -64.12%) + +## Блокировки входов (как в продакшене) + +- global_drawdown_kill: 8086 +- rl_veto: 3624 +- OK: 1 + +## Сделки + +| Актив | Вход | Выход | Причина | Баров | PnL % | +|---|---|---|---|---:|---:| +| APT | 02-15 13:00 | 02-15 17:00 | stop_loss | 4 | -1.49 | + +## Допущения + +- Цены: binance 1h как прокси разрешённых бирж (kucoin/bitstamp/mexc — нет месяца локальной истории). +- ML-модель обучена на данных, включающих тестовый месяц (in-sample только для ML-части; индикаторная часть честная). +- Funding/orderbook нейтральны (0 / BALANCED). +- TP/SL исполняются по уровням при пересечении high/low бара; SL приоритетнее TP. +- Все активы обрабатываются синхронно по барам; портфель единый ($1000), максимум 1 позиция (owner-профиль). diff --git a/docs/TRADING_EXPERIMENTS_SUMMARY_2026-08-15_RU.md b/docs/TRADING_EXPERIMENTS_SUMMARY_2026-08-15_RU.md new file mode 100644 index 000000000..a81fe30ac --- /dev/null +++ b/docs/TRADING_EXPERIMENTS_SUMMARY_2026-08-15_RU.md @@ -0,0 +1,50 @@ +# Сводка: 8 экспериментов по поиску edge в трейдинге — итог + +**Дата:** 2026-08-15 | **Ветка:** `agent/20260815-quant-oos-profit` + +## Полная таблица экспериментов (все — честный OOS, издержки ~0.5% на круг) + +| # | Эксперимент | Данные/идея | Ключевой результат | Статус | +|---|---|---|---|---| +| 1 | LONG OOS walk-forward (4 окна) | trail/TP/SL/ML-пороги, 33 актива | trail 1.0 > 0.988 (WR 87.5% vs 50% на 8 сделках), но выборка мала | ❌ edge не доказан | +| 2 | SHORT-зеркало (ml≤0.40) | SELL_SHORT сигналы | 305 сделок, PF 0.88, −48$ | ❌ нет edge | +| 3 | ML cross-sectional | btc-контекст, ранги силы | AUC 0.530 vs 0.529 — ноль | ❌ нет edge | +| 4 | Прод-замер 3 мес (движок 1:1) | текущая стратегия на истории | 23 сделки, PF 0.64, −13.7$ (BTC bh −20.6%) | ❌ убыток | +| 5 | Таймфрейм × универсум | 4h, топ-12 ликвидности | 4h хуже 1h (PF 0.15-0.20), топ-12 пусто | ❌ нет edge | +| 6 | MTF-фичи (4h/1d + сезонность) | закрытые группы, без lookahead | AUC 0.520 vs 0.529, PnL −27$ | ❌ нет edge | +| 7 | Funding rate (F-2) | Binance Futures, 166 дней | AUC 0.524 vs 0.530, фичи без веса | ❌ нет edge | +| 8 | Multi-horizon target (F-4) | h4/h24 прогноз | AUC падает с горизонтом, PnL −27$ | ❌ нет edge | + +**Плюс два важных урока:** (а) первый «прорыв» (AUC 0.76 в MTF) оказался lookahead-утечкой — +любой скачок AUC из локальных фич надо подозревать; (б) найден и исправлен баг данных +(kraken ~724 бара = «3-мес замер» на 1 месяце). + +## Вывод + +**Техническая направленная торговля (LONG/SHORT) на 1h/4h по 33 криптоактивам не имеет +положительного матожидания после издержек на любых доступных локально данных** +(OHLCV, MTF, cross-sectional, funding, горизонты). Потолок AUC ~0.53-0.55. Это не +«не повезло» — это 8 независимых проверок, включая прод-калибровку. + +Причина проста: рынок эффективен на этих горизонтах, а издержки (fee+spread+slippage +~0.5% на круг) съедают микро-сигнал. Победители в такой игре — маркет-мейкеры +(другая механика), HFT (инфраструктура) или долгосрочные инвесторы (другой горизонт). + +## Что осталось (честные оценки) + +| Направление | Суть | Реалистичность | Усилия | +|---|---|---|---| +| **A. Сигнальный продукт** | Продажа сигналов человеку (контур готов: run_quant_signal_product) | ✅ монетизация, не требует edge | дни | +| **B. Инвентарный MM** | Маркет-мейкинг на orderbook (данные копятся; сейчас ~2 дня) | 🟡 нужны месяцы данных | недели-месяцы | +| **C. Долгосрочный портфель** | DCA в топ-10 на 6-12 мес | ✅ исторически прибыльно | минимально | +| **D. Продолжать ML-поиск** | калибровка/ансамбли/эвристики funding | 🔴 вероятность edge ~5% | каждый эксперимент часы | + +## Рекомендация + +1. **Прекратить ML-перебор** на текущих данных — 8 отрицательных результатов это + статистически значимый сигнал. Дальнейший поиск edge имеет смысл только с + принципиально новыми данными (on-chain, новости, orderflow — платные/ключи). +2. **A/B paper (trail 1.0 vs 0.988)** докатать — идёт сам, бесплатно. +3. **Выбрать одно из направлений A/B/C** для реальной прибыли. B — долгосрочная + ставка с самым высоким потолком, но терпеливая. +4. Оставить коллектор данных (OI/funding/orderbook) включённым — данные дорожают со временем. diff --git a/docs/TRADING_ML_FUNDING_EXPERIMENT_2026-08-15_RU.md b/docs/TRADING_ML_FUNDING_EXPERIMENT_2026-08-15_RU.md new file mode 100644 index 000000000..3d22921b8 --- /dev/null +++ b/docs/TRADING_ML_FUNDING_EXPERIMENT_2026-08-15_RU.md @@ -0,0 +1,25 @@ +# F-2: funding-rate эксперимент — результат (отрицательный) + +**Дата:** 2026-08-15 | **Скрипт:** `scripts/quant_ml_funding_experiment.py` +**Данные:** Binance Futures funding rate (публичный API, без ключа), 30 активов, 166 дней (8h начисления). + +## Методика +- Funding на 1h-бары без lookahead: только начисления с fundingTime <= t (merge_asof, backward); +- фичи: f_last, f_24h_sum, f_7d_sum, f_7d_std, f_neg_frac7, f_30d_z, f_sign, f_extreme; +- CatBoost v2 (400/5/0.03), честный 70/30 gap 48; PnL — движок 1:1 (live config). + +## Результаты +| Модель | AUC | hit@0.55 | cov@0.55 | Сделок | PnL $ | +|---|---:|---:|---:|---:|---:| +| cand_base (13 фич) | 0.5296 | 0.558 | 1.2% | — | — | +| cand_funding (13+8) | 0.5239 | 0.557 | 1.6% | 1 | −2.99 | +| deployed v2 (прод) | — | — | — | 33 | −5.86 | + +Топ-фичи: funding-фичи почти без веса (лучшая f_7d_std — 1.3%, 14-е место). + +## Вывод +Funding rate на 8h-начислениях не несёт edge для 1h-направления после издержек +(AUC не улучшается, PnL отрицательный). Гипотеза F-2 не подтверждена — правило +решения (AUC > base+0.005 И PnL > 0) не выполнено. 7-й отрицательный результат +(LONG OOS, SHORT OOS, ML-CS, prod-3m, tf×universe, MTF, funding). +OIS-история доступна только ~30 дней — для обучения не годится, начали копить. diff --git a/docs/TRADING_ML_HORIZON_EXPERIMENT_2026-08-15_RU.md b/docs/TRADING_ML_HORIZON_EXPERIMENT_2026-08-15_RU.md new file mode 100644 index 000000000..2d653bc67 --- /dev/null +++ b/docs/TRADING_ML_HORIZON_EXPERIMENT_2026-08-15_RU.md @@ -0,0 +1,22 @@ +# F-4: multi-horizon target эксперимент — результат (отрицательный) + +**Дата:** 2026-08-15 | **Скрипт:** `scripts/quant_ml_horizon_experiment.py` + +## Методика +- Target: направление close через H баров (H=1/4/24); base 13 фич; CatBoost v2; +- честный 70/30 gap 48 OOS (2026-02-18..08-15); PnL — движок 1:1 (live config). + +## Результаты +| Горизонт | AUC | up_rate | hit@0.55 | cov@0.55 | +|---|---:|---:|---:|---:| +| h1 | 0.5296 | 0.484 | 0.558 | 1.2% | +| h4 | 0.5226 | 0.474 | 0.467 | 3.2% | +| h24 | 0.5141 | 0.460 | 0.455 | 3.1% | + +PnL (движок): deployed h1 −5.86$ (33 сделки) | h4-модель −26.67$ (23) | h24-модель −26.57$ (9). + +## Вывод +Длинные горизонты НЕ улучшают: AUC падает с горизонтом (0.530 → 0.523 → 0.514), +up_rate падает (0.484 → 0.460) — рынок в окне mean-reverting. PnL сильно хуже. +Гипотеза F-4 не подтверждена (правило: AUC > h1+0.005 И PnL>0 — не выполнено). +8-й отрицательный результат подряд. diff --git a/docs/TRADING_ML_MTF_EXPERIMENT_2026-08-15_RU.md b/docs/TRADING_ML_MTF_EXPERIMENT_2026-08-15_RU.md new file mode 100644 index 000000000..eb684d631 --- /dev/null +++ b/docs/TRADING_ML_MTF_EXPERIMENT_2026-08-15_RU.md @@ -0,0 +1,43 @@ +# ML гипотеза F, этап 1: multi-timeframe фичи — результат + +**Дата:** 2026-08-15 | **Скрипт:** `scripts/quant_ml_mtf_experiment.py` + +## Что проверялось + +Добавление к 13 базовым 1h-фичам: +- 4h-горизонт (по закрытым 4h-группам): ret4h_1/ret4h_6, RSI4h, BB-позиция, дистанция до SMA20(4h); +- 1d-горизонт (по закрытым дням): ret_d1/ret_d7, дистанция до SMA20(1d), позиция в диапазоне вчерашнего дня, дневной диапазон; +- внутридневная/недельная сезонность: hour_sin/cos, dow. + +**Критично:** первая версия дала AUC 0.76 — это была утечка (lookahead): фичи использовали +close/high/low *текущей* 4h-группы/дня, т.е. будущие бары. После исправления (только +закрытые группы/дни, shift(1)) — честные цифры ниже. + +## Результаты (OOS ~6 мес, 2026-02-18..08-15, per-symbol 70/30 gap 48) + +| Модель | AUC | hit@0.55 | cov@0.55 | Сделок | PnL $ | +|---|---:|---:|---:|---:|---:| +| deployed v2 (base 13, prod) | 0.5461 | 0.689 | 1.0% | 33 | −5.86 | +| cand base-only (свежая) | 0.5285 | 0.579 | 1.3% | — | — | +| cand MTF (base + 13 MTF) | 0.5204 | 0.527 | 7.3% | 30 | −27.38 | + +## Выводы + +1. **MTF-фичи НЕ улучшают модель**: AUC 0.520 < 0.529 (base). Покрытие порога 0.55 растёт + (7.3% vs 1.3%), но точность падает (hit 0.527 vs 0.579) → PnL хуже (−27.38$ vs −5.86$). +2. **Самая информативная часть — сезонность времени** (hour_cos 16.0, hour_sin 14.2, dow 9.1), + но даже она не даёт edge после издержек. +3. **Локальные данные (OHLCV-производные) исчерпаны** — шесть независимых экспериментов + (LONG OOS, SHORT OOS, ML cross-sectional, prod-3m, tf×universe, MTF) дают PF < 1. + Любой «взлёт» AUC из локальных фич = lookahead (проверено на собственном примере). +4. Дальнейший прогресс возможен только с **внешними сигналами**: funding rate, open + interest, новости/sentiment, on-chain. Бесплатный доступный источник — публичные + эндпоинты Binance Futures (funding rate history, open interest history) — может стать + этапом F-2. + +## Воспроизводимость + +```bash +cd /root/AIOS && source /opt/aios/.venv/bin/activate +python scripts/quant_ml_mtf_experiment.py --output data/reports/ml_mtf_experiment.md +``` diff --git a/docs/TRADING_OOS_PROFIT_EXPERIMENTS_2026-08-15_RU.md b/docs/TRADING_OOS_PROFIT_EXPERIMENTS_2026-08-15_RU.md new file mode 100644 index 000000000..2879aa84c --- /dev/null +++ b/docs/TRADING_OOS_PROFIT_EXPERIMENTS_2026-08-15_RU.md @@ -0,0 +1,76 @@ +# OOS-эксперименты: реальная прибыль Directional v2 (walk-forward, 4 окна) + +**Дата:** 2026-08-15 | **Автор:** Arena.ai Agent Mode (сессия `20260815T154510Z-aios-arena-session-start`) +**Ветка:** `agent/20260815-quant-oos-profit` | **Скрипт:** `scripts/quant_oos_profit_experiments.py` + +## Мотивация + +Предыдущая сетка (`docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md`) — все варианты +in-sample на 12 мес. отрицательны (BASE −165$, лучший T1 +2.96$ на 9 сделках). Отчёт сам +требовал свежий OOS. Задача владельца: улучшить winrate и реальную прибыль. + +## Методика (честный OOS) + +- **Данные:** allowlist-биржи (kucoin > bitstamp > mexc), 32 живых символа (TON исключён: + 525 баров; история < 1500 баров не допускается), ~8760 1h-баров. Окна 4 фолдов: + train 50/60/70/85% → test последние 50/40/30/15% (gap 48 баров от train). +- **ML:** на каждом фолде обучена **свежая** CatBoost v2 (гиперпараметры + `scripts/quant_ml_eval_train.py`), `prob_up` предсказан только на нетронутом test-окне. + Калибровка порога — на train-перцентиле (q97/q98/q99), фиксированный 0.65 — как в проде. +- **Симуляция:** 1:1 с прод-движком (TP/SL/trailing/confirmed_bearish_exit, издержки + fee 0.15% + half-spread 0.05% + slippage 0.05%), ставка $200/сделку, свободный профиль. +- **Варианты зафиксированы ДО просмотра OOS.** Итоговая таблица — по **уникальным сделкам** + (дедуп по символ+вход, окна перекрываются). +- ⚠️ Данные на сервере дописываются live-коллектором (KAS-история докачана в 16:19Z между + прогонами) — цифры привязаны к срезу 16:25Z. + +## Результаты (уникальные сделки, все 4 OOS-окна) + +| Вариант | Сделок | Winrate | PF | PnL $ | avg % | +|---|---:|---:|---:|---:|---:| +| BASE: ML>=0.65 (как в проде, trail 0.988) | 8 | 50.0% | 2.50 | +7.15 | +0.447 | +| N1m: мягкий трейлинг 0.995 | 8 | 87.5% | 4.81 | +11.39 | +0.712 | +| **N1: жёсткий трейлинг trail=1.0** | **8** | **87.5%** | **5.83** | **+14.42** | **+0.901** | +| N1X: N1 + TP 2.5%/SL 1.0% | 8 | 87.5% | 6.24 | +15.67 | +0.979 | + +Контроли: N1q98 (ML топ-2%) −161$ / 331 сделка; NO_ML (без ML-гейта) — глубоко убыточен: +ML-гейт полезен, но **слабые** ML-сигналы (перцентильные пороги) edge не дают. + +Портфельная симуляция (прод-профиль: 1 позиция, kill-свитчи 0.25%, $1000, ставка $200): +**N1: +6.74$ (end 1006.74$)**, BASE: +1.89$ (end 1001.89$). Drawdown-kill срабатывал в обоих +(0.25% от $1000 ≈ $2.5 — очень жёсткий на таком капитале). + +## Ключевые выводы + +1. **Монотонный эффект одного параметра — `trail_ratio`:** на ОДНОМ И ТОМ ЖЕ наборе сигналов + (ML>=0.65) изменение трейлинга 0.988 → 0.995 → 1.0 даёт +7.15 → +11.39 → +14.42$. + WR: 50% → 87.5% → 87.5%, PF: 2.50 → 4.81 → 5.83. Текущий трейлинг (активация +1%, + откат до 98.8% от пика) срезает прибыль до TP: из 8 сделок 6 выходят по trailing_stop, + фиксируя ~+0.9-1.0% вместо TP +2%. +2. **Winrate 87.5% vs 50%** — при жёстком трейлинге система берёт малые, но частые прибыли + (+0.86..+1.49%) и редко доходит до стопа. Это ровно то, что просил владелец: winrate и + реальная прибыль улучшаются одновременно одним параметром. +3. **Ограничения:** выборка 8 уникальных сделок мала; OOS-окна — медвежий/боковой рынок + (апрель-август 2026); выбор N1 среди 16 вариантов несёт selection bias (но N1 был + предзадан a-priori как гипотеза «трейлинг срезает прибыль», и эффект изолированный). +4. Перцентильные ML-пороги (q97-q99) и расширение TP/SL-асимметрии вне combo с жёстким + трейлингом не помогают. NO_ML-контроль подтверждает ценность ML-гейта. + +## Рекомендация владельцу (решение за владельцем) + +1. **Paper-режим: `trail_ratio = 1.0`** (или консервативно 0.995) в constrained paper-профиле + на 30 дней / ≥200 закрытых сделок — обязательный gate перед любым выводом о live. + Изменение прод-профиля — только отдельным решением владельца (правила `AGENTS.md`, + `docs/TRADING_DIRECTIONAL_V2.md`). Live остаётся запрещённым. +2. Опционально в том же paper-прогоне: TP 2.5%/SL 1.0% (N1X — лучший PnL, PF 6.24). +3. Не менять ML-порог на перцентили — подтверждено, что не работает. +4. Данные дописываются live-коллектором — для будущих прогонов фиксировать снапшот данных. + +## Воспроизводимость + +```bash +cd /root/AIOS && source /opt/aios/.venv/bin/activate +python scripts/quant_oos_profit_experiments.py --output data/reports/oos_profit_experiments.md +``` + +Отчёт-артефакт: `data/reports/oos_profit_experiments.md` (сырые цифры + детали сделок). diff --git a/docs/TRADING_RESEARCH_INTERNET_2026-08-16_RU.md b/docs/TRADING_RESEARCH_INTERNET_2026-08-16_RU.md new file mode 100644 index 000000000..26c23b70c --- /dev/null +++ b/docs/TRADING_RESEARCH_INTERNET_2026-08-16_RU.md @@ -0,0 +1,81 @@ +# Глубокое исследование торговых стратегий (интернет-обзор 2026) + +**Дата:** 2026-08-16 | **Автор:** Arena.ai Agent Mode +**Цель:** найти проверенные/перспективные методы, которые мы ещё не тестировали в AIOS. + +--- + +## 1. Подтверждённые стратегии (с цифрами из исследований) + +### 1.1 Time-series momentum (тренд-следование) — ✅ У НАС УЖЕ ЕСТЬ (T2) +- **Академическое исследование 2020-2025 (8 монет, EMA + волатильность-нормализация):** time-series momentum даёт **31.96% годовых**, превосходя cross-sectional на риск-скорректированной основе. Причины: высокие корреляции между криптоактивами мешают CS-подходу. +- **Наш T2 (SMA50, 7 лет):** BTC +1574%, ETH +1379%, SOL +23965% — полностью согласуется с литературой. **Мы на правильном пути.** +- Ключевой инсайт исследования: TS > CS на крипте именно из-за корреляций. + +### 1.2 Парный трейдинг (коинтеграция) — ❌ НЕ ТЕСТИРОВАЛИ — САМОЕ ПЕРСПЕКТИВНОЕ +- **Академическая работа (2026, Engle-Granger):** BTC-ETH коинтегрированы (ADF −4.57***), стратегия: **Sharpe 2.45** (годовых 16.34%, волатильность 8.45%) vs BTC BH Sharpe 0.14. ETH-LTC — тоже. +- **Динамическая коинтеграция (rolling window):** Sharpe до **7.94** (сценарий 2). +- **Оптимизированный pairs trading (2025):** Sharpe 2.12, Calmar 4.95, MDD 14%. +- **PoW-PoW пары** дают лучшие Sharpe (0.65) vs PoS-PoS (негативные) — парадокс: меньше коинтеграции, но лучше торговля. +- Практика: 60.61% годовых, Sharpe 5.30 после издержек (high-frequency pairs, 229 пар). +- **Вывод: BTC-ETH парный трейдинг — самый сильный непроверенный кандидат. У нас есть 7 лет данных обоих активов.** + +### 1.3 Funding rate arbitrage (cash-and-carry) — 🟡 ЧАСТИЧНО ЕСТЬ ДАННЫЕ +- **2025 академическое исследование (60 сценариев, ScienceDirect):** до **115.9% за 6 месяцев**, макс. убыток 1.92%. +- **Средняя доходность 2025: 19.26% годовых** (было 14.39% в 2024), max DD < 2%. +- Механика: buy spot + short perp (1x), сбор funding каждые 8ч. Дельт-нейтрально. +- Реалистично: 8-20% APY в устойчиво-позитивном funding, 0-5% в боковике, отрицательно в затяжном медвежьем (funding < комиссий ~0.007%/8ч). +- Капитал: $10-25k для осмысленной доходности. +- **У нас есть funding-коллектор (166 дней истории + накопитель) — можно оценить историческую доходность стратегии на наших данных!** + +### 1.4 Smart money / whale tracking — 🟡 ТРЕБУЕТ ВНЕШНИХ СЕРВИСОВ +- WalletFinder: копирование кошельков с ≥20 сделок и ≥70% winrate → **реалистичные 8-12%** (после проскальзывания), у самих кошельков 20%+. +- Nansen smart money: 300M+ размеченных кошельков, $150+/мес. +- **Ключевой инсайт:** аккумуляция (рост баланса кошелька + снижение exchange balances) — ранний сигнал; трансферы на биржи — давление продаж. +- Бесплатно: Dune Analytics (SQL по on-chain), Lookonchain (X). +- **Вывод: требует платных API или Dune-запросов; можно попробовать через бесплатные источники (exchange flow).** + +### 1.5 Cross-sectional momentum (короткий) — ❌ МЫ ТЕСТИРОВАЛИ НЕ ТОТ ГОРИЗОНТ +- **Академия (Dobrynskaya, 2000 монет):** положительный CS-момент на **1-4 неделях**, значимый реверс на длинных (4+ недель). Годовые реверс-доходности >100% на 4-6 недельных сортировках. +- **НАШ ТЕСТ:** 30/60/90 дней — это УЖЕ зона реверса (потому и убыток!). Надо было 1-4 недели. +- PoW-активы: сильнее моментум и реверс; PoS: быстрее mean reversion. +- **Вывод: проверить CS-моментум на 1-4 неделях — возможно, мы ошиблись с горизонтом.** + +### 1.6 CTREND-фактор — 🟡 АКАДЕМИЧЕСКИ СИЛЬНЕЙШИЙ +- **Journal of Financial and Quantitative Analysis (2025):** технический тренд-фактор CTREND (комбинация трендовых индикаторов) — «превосходит все другие факторы», делает моментум незначимым, alpha 2.77% в неделю (t=3.80), робастен в 55,296 дизайнах. +- **Вывод: если хотим улучшить T2 — CTREND (сложная комбинация индикаторов) — научно обоснованный кандидат.** + +### 1.7 Mean reversion + объём — 🟡 ПРОВЕРИТЬ С ОБЪЁМОМ +- Glassnode: mean reversion при объёме **+30% от среднего** → **81% winrate** vs 61% без фильтра. +- Мы тестировали mean reversion без объёмного фильтра (PF<1). С фильтром может работать на дневках. + +### 1.8 Grid trading — ❌ ДЛЯ НАШЕЙ ИНФРАСТРУКТУРЫ +- Для range-bound монет; требует непрерывного исполнения. Мы показали, что спреды узкие, а комиссии съедают — вряд ли подходит. + +--- + +## 2. Приоритизация для AIOS (что реально проверить на наших данных) + +| Приоритет | Стратегия | Данные у нас | Ожидание | Усилия | +|---|---|---|---|---| +| **1** | **Парный трейдинг BTC-ETH (коинтеграция)** | 7 лет 1d обоих | Sharpe 2+ (академия) | ~3 ч | +| **2** | **CS-моментум 1-4 недели** (мы тестировали 30-90д — зона реверса!) | 7 лет, 14 активов | положительный моментум (академия) | ~2 ч | +| **3** | **Funding arb (cash-and-carry) на наших данных** | funding-история 166д + накопитель | 8-20% APY оценка | ~2 ч | +| **4** | **CTREND-фактор** для улучшения T2 | 7 лет | alpha 2.77%/нед (академия) | ~3 ч | +| **5** | **Mean reversion + объёмный фильтр** | нужен объём (Yahoo 1d есть) | 81% winrate (Glassnode) | ~2 ч | +| 6 | Smart money (Dune/бесплатно) | внешние API | 8-12% | дни | + +--- + +## 3. Ключевые выводы исследования + +1. **Наш T2 подтверждён наукой** — time-series momentum на крипте = 31.96% годовых (мы: 34% CAGR на BTC за 3 года). Мы не «нашли дыру», а корректно реализовали документированный фактор. +2. **Самая недооценённая нами возможность — парный трейдинг BTC-ETH**: Sharpe 2.45-7.94 по академии, рыночно-нейтрален, не требует предсказания направления. Мы его не тестировали вообще. +3. **Мы ошиблись с горизонтом CS-моментума**: тестировали 30-90 дней (зона реверса по науке), а надо 1-4 недели. +4. **Funding arb** — единственная стратегия с «гарантированной» доходностью 8-20% (дельт-нейтральная), но требует капитала $10-25k и периодичности. +5. **CTREND** — академически сильнейший фактор, может улучшить наш T2. +6. Общий тренд 2026: рыночно-нейтральные стратегии (pairs, funding arb) outperform направленных в медвежьем рынке; направленные (trend) — в бычьем. **Диверсификация: T2 (тренд) + pairs (нейтральный) = портфель на оба режима.** + +## 4. Рекомендуемый следующий шаг + +Запустить **П1 (парный трейдинг BTC-ETH)** на наших 7-летних данных — локально, с тестами, по нашему процессу. Если подтвердится Sharpe > 1.5 на OOS — это второй рабочий контур (рыночно-нейтральный), который дополнит T2 в медвежьи периоды. diff --git a/docs/TRADING_TF_UNIVERSE_EXPERIMENT_2026-08-15_RU.md b/docs/TRADING_TF_UNIVERSE_EXPERIMENT_2026-08-15_RU.md new file mode 100644 index 000000000..fbd4090bf --- /dev/null +++ b/docs/TRADING_TF_UNIVERSE_EXPERIMENT_2026-08-15_RU.md @@ -0,0 +1,37 @@ +# Эксперимент C: таймфрейм (1h/4h) × универсум — результат + +**Дата:** 2026-08-15 | **Скрипт:** `scripts/quant_tf_universe_experiment.py` + +## Методика +- Свежая CatBoost v2 на каждом таймфрейме (train 70%, gap 48 баров, без lookahead); +- тест = последние ~6 мес (2026-02-18 .. 2026-08-15, полная binance-история); +- движок 1:1 (текущий unit: trail=1.0, TP2%, SL1%, ML≥0.65, conf≥0.88, kill 0.25%); +- топ-12 — по USD-объёму за 30 дней (BTC, ETH, SOL, XRP, BNB, DOGE, TRX, TON, ADA, NEAR, UNI, PEPE); +- RL-вето вкл/выкл — отдельные варианты. + +## Результаты + +| Вариант | Сделок | WR | PF | PnL $ | +|---|---:|---:|---:|---:| +| 1h, все 33, RL вкл (как прод) | 2 | 0% | 0.00 | −5.97 | +| 4h, все 33, RL вкл | 12 | 16.7% | 0.20 | −23.68 | +| 1h, все 33, RL выкл | 2 | 0% | 0.00 | −5.97 | +| 4h, все 33, RL выкл | 12 | 16.7% | 0.20 | −23.68 | +| 1h, топ-12, RL выкл | 1 | 100% | inf | +2.98 | +| 4h, топ-12, RL выкл | 12 | 16.7% | 0.15 | −25.12 | +| 4h, все 33, TP3%/SL1.5% | 11 | 36.4% | 0.60 | −11.10 | + +**BTC buy&hold за окно: −11.83%** (сильный медвежий рынок). + +## Выводы +1. **4h НЕ лучше 1h**: сделок больше (12 vs 2), но PF 0.15-0.20 — хуже. TP3%/SL1.5% на 4h + (PF 0.60) тоже убыточно. Смена таймфрейма edge не даёт. +2. **Топ-ликвидные хуже/пусто**: на 1h — 1 сделка за 6 мес (ML-гейт режет всё), на 4h −25$. + Ликвидность ≠ предсказуемость. +3. **RL-вето не влияет** (все варианты с RL вкл/выкл идентичны — PPO даёт FLAT, вето не срабатывает). +4. Свежая (честная) модель даёт prob≥0.65 крайне редко: 2 сделки за 6 мес на 1h — ML-гейт + почти блокирует торговлю. Развёрнутая prod-модель (обучена с lookahead на все данные) + даёт больше сигналов в окне, но они тоже убыточны (−13.71$ за 3 мес). + +**Итог: ни таймфрейм, ни универсум не создают edge. Направленная 1h/4h торговля на текущем +универсуме и моделях убыточна после издержек — пятое независимое подтверждение.** diff --git a/docs/TRADING_THEORIES_REPOS_RESEARCH_2026-08-16_RU.md b/docs/TRADING_THEORIES_REPOS_RESEARCH_2026-08-16_RU.md new file mode 100644 index 000000000..90f5b3afd --- /dev/null +++ b/docs/TRADING_THEORIES_REPOS_RESEARCH_2026-08-16_RU.md @@ -0,0 +1,111 @@ +# Исследование: теории, слухи, репозитории и готовые продукты для улучшения трейдинга + +**Дата:** 2026-08-16 | **Цель:** что из мирового опыта можно применить к нашей системе (T2 + DCA + MM) + +--- + +## Часть 1. Теории и «слухи» — что подтверждено, что миф + +### 1.1 SMC / ICT (Smart Money Concepts, Inner Circle Trader) — ⚠️ В ОСНОВНОМ МИФ +Самый громкий «слух» 2023-2026. **Вердикт по рецензируемым исследованиям (34 источника):** +- ❌ **Нет ни одного peer-reviewed подтверждения** SMC/ICT как прибыльной системы; +- ❌ «Ордер-блоки» = просто классические support/resistance (ничего нового); +- ❌ «Институты охотятся за стопами» — не подтверждено; ускорение через уровни = тонкая книга ордеров, а не манипуляция; +- ❌ Fibonacci «оптимальные входы» — проиграли случайным зонам в контролируемом тесте; +- ❌ Механическая версия: 54 варианта, лучший winrate 56.3%, **0 из 54 прибыльны после издержек**; +- ✅ Реальны (но это микроструктура, а не SMC): кластеры стопов у круглых уровней, сессионные паттерны волатильности («kill zones» = просто открытие LDN/NY), order flow imbalance. +**Вывод для нас:** не тратить время. У нас уже есть лучший аналог — микроструктурный сигнал (OBI/microprice, AUC 0.95). + +### 1.2 Wyckoff (аккумуляция-манипуляция-дистрибуция) — 🟡 УСТАРЕЛ, НО ИДЕЯ ЖИВА +- Трёхфазная модель — прародитель SMC; сама по себе не тестируется механически; +- Современная интерпретация (on-chain: exchange inflows/outflows) — рабочая идея, но мы уже проверили on-chain (нет edge). + +### 1.3 Mean reversion + объём — 🟡 ПРОВЕРЕНО, СЛАБО +- Glassnode: 81% winrate при объёме +30% (мы проверили: +10.3% — слабо); +- Работает только в range-bound, мы показали на дневках не тянет. + +### 1.4 Time-series momentum / trend following — ✅ ПОДТВЕРЖДЕНО (НАШ T2) +- Академия 2020-2025: TS momentum 31.96% годовых — лучше CS на крипте; +- **Наш T2 = реализация этого фактора, подтверждён на 7 годах.** +- «Слух» про «мёртвые SMA» — ложь: SMA50 работает, если без стопов и с дисциплиной. + +### 1.5 Funding rate / basis (cash-and-carry) — 🟡 РЕАЛЬНО, НО РЕЖИМ-ЗАВИСИМО +- 8-20% APY в бычьи, 0-5% в боковик, отрицательно в медвежий; +- Мы проверили на своих данных: 1.5% APY (медвежий рынок) — не сейчас. + +### 1.6 «Следуй за умными деньгами» (whale tracking) — 🟡 МАРКЕТИНГ > РЕАЛЬНОСТЬ +- 87% трейдеров Polymarket теряют; копирование топ-кошельков даёт 8-12% (после слиппеджа); +- Nansen/Arkham — платно, результата не гарантирует. Не для нас сейчас. + +### 1.7 Order flow / microstructure — ✅ ПОДТВЕРЖДЕНО (У НАС ЕСТЬ) +- Signed order imbalance реально двигает цену (мы: AUC 0.85-0.96 на 1-3 мин); +- Но торговля по нему через taker = 0 после издержек (наш R1). Только как MM-фильтр. + +### 1.8 «Аномалии»: day-of-week, time-of-day — 🟡 ЕСТЬ, НО НЕ СТАБИЛЬНЫ +- Исследования: эффекты есть (15 млн наблюдений), но «no persistent effects across time»; +- Не используем. + +--- + +## Часть 2. Репозитории и готовые продукты + +### 2.1 Фреймворки ботов (что можно адаптировать) +| Продукт | Stars | Сильная сторона | Применимость к нам | +|---|---|---|---| +| **Freqtrade** | 43.9k | Бэктест + Hyperopt + FreqAI (ML), Telegram, 30+ бирж | 🟡 **Готовая инфраструктура для T2**: multi-pair бэктест, оптимизация, dry-run. Можем портировать T2-стратегию (SMA50/гистерезис) в Freqtrade — получим Hyperopt и community | +| **Hummingbot** | 15.9k | Market making, 50+ CEX/DEX, арбитраж | 🟡 **Для MM-направления**: готовые PMM-стратегии, inventory-контроль — то, что мы строили вручную. Когда ws-данных накопится — можно сравнить/взять | +| **Jesse** | 7.4k | Чистый бэктест, ноль lookahead bias | 🟢 Реference для валидации наших бэктестов | +| **OctoBot** | 4.9k | GUI, DCA/Grid стратегии | 🟢 Идеи DCA (совпадает с нашим) | +| **VectorBT** | 7.9k | Векторизованный бэктест, портфельный | 🟢 Ускорить наши бэктесты, Monte Carlo | +| **backtesting.py** | 8.5k | Простой бэктест | 🟢 Учебное | +| **NautilusTrader** | 23.7k | Институциональный, event-driven, latency | 🔴 Overkill для нас, но reference по рискам | +| **LEAN (QuantConnect)** | 19.8k | Мульти-актив, C#/Python | 🔴 Overkill | +| **CCXT** | 42.9k | 100+ бирж, единый API | 🟢 **Уже используем в AIOS** (коллекторы) — основа исполнения | +| **vnpy** | 41.6k | Китайский институциональный | 🔴 | + +### 2.2 Стратегии-репозитории +| Репозиторий | Что даёт | Оценка | +|---|---|---| +| **NostalgiaForInfinity** (iterativv, 2.9k) | Топ-стратегия для Freqtrade: 65 buy-комбинаций, 5m TF, 40-80 пар, volume pairlist | 🟡 **Стоит портировать/сравнить**: community-результаты +18-42%/6 мес, но DD большой, winrate 14% (такой стиль). Сравнить с нашим T2 на тех же данных — интересный A/B | +| freqtrade-strategies (5.2k) | 200+ стратегий сообщества | 🟡 Скрининг идей (но осторожно: большинство переоптимизированы) | +| machine-learning-for-trading (17.3k) | Учебный ML-пайплайн | 🟢 Методология (train/test, фичи) — у нас уже есть | +| mlfinlab (4.6k) | Финансовое ML (meta-labeling, triple-barrier) | 🟢 **Meta-labeling** — интересно для T2: модель «стоит ли входить» поверх сигнала | +| awesome-systematic-trading (4.3k) | Курируемый список | 🟢 Каталог для будущего | +| Riskfolio-Lib (4.3k) | Портфельная оптимизация | 🟢 Для весов портфеля T2 (вместо равных) | +| ta (5.1k) | Индикаторы | 🟢 Утилиты | + +### 2.3 Готовые продукты/сервисы (платные/облачные) +| Продукт | Что даёт | Оценка | +|---|---|---| +| TradingView (Pine Script) | Быстрые прототипы | 🟡 Но repainting/утечки — у нас лучше (Python) | +| 3Commas / Cryptohopper / Bitsgap | Cloud DCA/Grid боты | 🔴 Не нужны — у нас своя автоматизация | +| CoinGlass | Funding/OI/LSR мониторинг | 🟢 Данные (у нас уже есть свои коллекторы) | +| Dune Analytics | On-chain SQL | 🟡 Для будущего on-chain | +| Glassnode | Институциональные метрики | 🟡 Платно ($29+/мес), у нас уже есть базовые | + +--- + +## Часть 3. Рекомендации: что реально применить к нашей системе + +### Приоритет 1 — быстрые победы (дни) +1. **Meta-labeling (mlfinlab подход)**: поверх нашего T2-сигнала обучить модель «входить/не входить» (по волатильности/объёму/режиму) — может отфильтровать часть убыточных входов в боковике (наш главный враг). Тестируется локально на наших 7 годах. +2. **Riskfolio-Lib**: оптимизация весов портфеля T2 (5 активов) вместо равных — снижение DD. +3. **Портировать T2 в Freqtrade** (dry-run параллельно с нашим paper) — получим Hyperopt + community-валидацию бесплатно; сравним с NostalgiaForInfinity на тех же данных (A/B). + +### Приоритет 2 — средние (неделя) +4. **Hummingbot для MM**: когда ws-данных станет 2-4 недели — развернуть PMM-шаблон Hummingbot в paper на тестовой бирже, сравнить с нашей самописной MM-логикой. +5. **NostalgiaForInfinity A/B**: прогнать NFI на наших 7-летних данных (нужен Freqtrade) vs T2 — если NFI лучше на OOS, адаптировать его идеи (pairlist по объёму, 5m-TF фильтры). + +### Приоритет 3 — стратегические +6. **Внедрить дисциплину бэктестов Jesse** (zero look-ahead) как стандарт в наши скрипты — формализовать то, что мы уже делаем вручную. +7. **Держать CCXT как единый слой исполнения** (уже есть) — для будущих реальных денег. + +--- + +## Часть 4. Главные выводы + +1. **Самые громкие «слухи» (SMC/ICT) — развенчаны наукой**: 0 из 54 механических вариантов прибыльны после издержек. Наш микроструктурный подход (OBI/microprice) — научно обоснованная альтернатива. +2. **Наш T2 подтверждён академией и практикой** (TS momentum — лучший фактор крипты; NostalgiaForInfinity — та же философия в другом исполнении). +3. **Из open-source реально полезны**: Freqtrade (инфраструктура), Hummingbot (MM), mlfinlab (meta-labeling), Riskfolio-Lib (веса), CCXT (уже есть). +4. **Не тратить время**: SMC/ICT, whale-tracking-сервисы, cloud-боты, «аномалии» времени суток. +5. **Ближайший конкретный шаг**: meta-labeling поверх T2 (отфильтровать убыточные входы в боковике) + оптимизация весов портфеля — оба тестируются на наших 7-летних данных локально. diff --git a/docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md b/docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md new file mode 100644 index 000000000..a1d9c947a --- /dev/null +++ b/docs/TRADING_WINRATE_EXPERIMENTS_1Y_2026-08-15_RU.md @@ -0,0 +1,19 @@ +# Эксперименты по поднятию винрейта (1 год, in-sample) + +Период: последние 12 мес. | Цены: allowlist (kucoin/bitstamp) | Ставка фикс $200/сделку | Профиль: свободный (без kill-switch) + +| Вариант | Сделок | Winrate | PF | PnL $ | Δ к базе $ | +|---|---:|---:|---:|---:|---:| +| BASE: текущая (ML>=0.65) | 356 | 39.6% | 0.71 | -165.46 | +0.00 | +| T1: тренд-гейт asset>SMA200 | 9 | 55.6% | 1.25 | +2.96 | +168.42 | +| T2: тренд-гейт рынка (BTC>SMA200) | 17 | 29.4% | 0.63 | -8.69 | +156.77 | +| M1: ML>=0.70 | 112 | 44.6% | 0.99 | -1.30 | +164.16 | +| M2: ML>=0.75 | 56 | 44.6% | 0.93 | -5.65 | +159.81 | +| X1: TP+1.0%/SL-1.0% | 364 | 60.7% | 0.51 | -208.03 | -42.57 | +| X2: TP+1.2%/SL-0.8% | 363 | 53.4% | 0.62 | -166.73 | -1.27 | +| X3: TP+3.0%/SL-1.5% | 354 | 36.4% | 0.62 | -256.05 | -90.59 | +| B1: блэклист доноров (SEI,OP,KAS,UNI) | 281 | 43.8% | 0.84 | -65.78 | +99.68 | +| C1: T1 + ML>=0.70 | 1 | 0.0% | 0.00 | -2.99 | +162.47 | +| C2: T1 + ML0.70 + B1 | 1 | 0.0% | 0.00 | -2.99 | +162.47 | + +**Важно:** все результаты in-sample (тот же год, что обучение ML и подбор параметров). Победитель сетки обязан пройти свежий OOS walk-forward перед любым выводом о проде. \ No newline at end of file diff --git a/run_health_check.py b/run_health_check.py index 26289fb24..e82a11fac 100644 --- a/run_health_check.py +++ b/run_health_check.py @@ -110,9 +110,8 @@ def check() -> dict: for name, path_ in { "ML-сигналы": "/root/AIOS/data/quant/ml_signals.json", "RL-сигналы": "/root/AIOS/data/quant/rl_signals.json", - "PPO-модель": "/root/AIOS/data/quant/models/ppo_trader.pt", - "PPO-мульти": "/root/AIOS/data/quant/models/ppo_multi_24.pt", - "CatBoost-модель": "/root/AIOS/data/quant/models/catboost_price_dir.cbm", + "PPO-модель": "/root/AIOS/data/quant/models/ppo_v9.pt", + "CatBoost-модель": "/root/AIOS/data/quant/models/catboost_price_dir_v2.cbm", }.items(): try: _f = Path(path_) diff --git a/run_morning_brief.py b/run_morning_brief.py index 974074e65..93370cc50 100755 --- a/run_morning_brief.py +++ b/run_morning_brief.py @@ -249,6 +249,21 @@ def build() -> str: except Exception: pass + # Quant Signal Monitor (read-only WATCH-сигналы) + try: + qs = _read(ROOT / "data" / "reports" / "quant_signal_product.json", {}) + watch = [s for s in qs.get("signals", []) if s.get("label") in ("WATCH_UP", "WATCH_DOWN")] + if watch: + lines.append("🔔 Quant WATCH:") + for s in watch[:5]: + icon = "🟢" if s["label"] == "WATCH_UP" else "🔴" + lines.append( + f"{icon} {s['symbol']}: {s['label'].replace('WATCH_', '').lower()} " + f"(ML {s.get('ml_prob_up', 0):.2f}, {s.get('regime', '')})" + ) + except Exception: + pass + # напоминания на сегодня rem = _read(ROOT / "data" / "reminders.json", []) today = now.strftime("%Y-%m-%d") diff --git a/run_telegram_bot.py b/run_telegram_bot.py index eeb75f188..590bb5313 100644 --- a/run_telegram_bot.py +++ b/run_telegram_bot.py @@ -8,6 +8,7 @@ /start — приветствие /stats — статистика системы (БД, оркестратор, бэкапы) /status — сводка по платформам + /quant — статус quant-контуров (MM, DCA, A/B, ws-данные) /olx — статистика OLX (объявления, цены) /olx_sub — подписка на новые объявления по запросу /olx_unsub — отписка @@ -308,6 +309,11 @@ def cmd_platforms() -> str: return _f() +def cmd_quant() -> str: + from tg_bot.quant_cmds import cmd_quant as _f + return _f() + + @_safe def cmd_help() -> str: from tg_bot.syscmds import cmd_help as _f @@ -1095,6 +1101,8 @@ def _request_shutdown(_signum: int, _frame: object) -> None: reply = cmd_stats() elif cmd in ("/status", "/platforms"): reply = cmd_platforms() + elif cmd == "/quant": + reply = cmd_quant() elif cmd in ("/calls", "/whisper"): from tg_bot.calls import _handle_calls_intent _handle_calls_intent(api, chat_id, "/calls") diff --git a/scripts/aios_weekly_digest.py b/scripts/aios_weekly_digest.py new file mode 100644 index 000000000..9013c86ca --- /dev/null +++ b/scripts/aios_weekly_digest.py @@ -0,0 +1,106 @@ +#!/usr/bin/env python3 +"""V3: weekly digest of all quant/portfolio services to Telegram.""" +from __future__ import annotations +import json, sqlite3, subprocess, urllib.request, urllib.parse +from pathlib import Path + +ROOT = Path("/root/AIOS") + +def cred(name): + p = Path("/etc/aios/credentials") / name + return p.read_text().strip() if p.exists() else None + +def send(text): + t, c = cred("telegram_token"), cred("telegram_owner_chat_id") + if not t or not c: + print("no creds"); return False + data = urllib.parse.urlencode({"chat_id": c, "text": text, "parse_mode": "HTML"}).encode() + req = urllib.request.Request(f"https://api.telegram.org/bot{t}/sendMessage", data=data) + with urllib.request.urlopen(req, timeout=20) as r: + return json.loads(r.read().decode()).get("ok", False) + +def main(): + lines = ["📋 AIOS Quant-дайджест", ""] + # DCA + try: + s = json.loads((ROOT/"data/dca_paper_state.json").read_text()) + vlog = [json.loads(l) for l in (ROOT/"data/dca_paper_value.jsonl").read_text().splitlines() if l] + val = vlog[-1]["value_usd"] if vlog else 0 + dep = float(s.get("deposited_usd", 0)) + pnl = val - dep + lines.append(f"📈 DCA: ${dep:.0f} → ${val:.2f} ({pnl:+.2f}$ / {pnl/dep*100 if dep else 0:+.1f}%)") + except Exception as e: + lines.append(f"📈 DCA: ошибка ({e})") + # ws-данные + try: + con = sqlite3.connect(ROOT/"data/quant/orderbooks.sqlite") + n = con.execute("SELECT COUNT(*) FROM snapshots_ws").fetchone()[0] + h = (con.execute("SELECT MAX(ts)-MIN(ts) FROM snapshots_ws").fetchone()[0] or 0)/3600 + lines.append(f"🌊 ws-данные: {n:,} снапшотов ({h:.1f} ч)") + con.close() + except Exception as e: + lines.append(f"🌊 ws: ошибка ({e})") + # A/B paper + try: + m = json.loads((ROOT/"data/multi_exchange_portfolios_owner_paper.json").read_text()) + c = json.loads((ROOT/"data/multi_exchange_portfolios_owner_paper_control.json").read_text()) + tm = sum(p.get("total_trades", 0) for p in m.values() if isinstance(p, dict)) + tc = sum(p.get("total_trades", 0) for p in c.values() if isinstance(p, dict)) + lines.append(f"⚖️ A/B paper: main (trail 1.0) {tm} сделок | control (0.988) {tc}") + except Exception as e: + lines.append(f"⚖️ A/B: ошибка ({e})") + # T2 momentum (BTC/ETH) + try: + import json as _j + parts = [] + for tag, fname in (("BTC", "t2_paper_state.json"), ("ETH", "t2_paper_state_ethusd.json")): + st = _j.loads((ROOT / "data" / fname).read_text()) + eq = float(st.get("equity", 0)) + pct = (eq / 10000 - 1) * 100 if eq else 0 + parts.append(f"{tag}:{st.get('position')} ({pct:+.1f}%)") + lines.append(f"📈 T2: {' | '.join(parts)}") + except Exception: + pass + # MM-сигналы: точность + экономика + try: + import subprocess as sp + r = sp.run(["/opt/aios/.venv/bin/python", "scripts/mm_signal_score.py"], + capture_output=True, text=True, cwd="/root/AIOS") + last = [l for l in r.stdout.strip().split("\n") if "ИТОГО" in l] + lines.append(f"📡 MM-сигналы: {last[0] if last else 'нет данных'}") + # экономика: maker-вход (W4) - ключевая метрика + r2 = sp.run(["/opt/aios/.venv/bin/python", "scripts/signal_pnl_maker.py"], + capture_output=True, text=True, timeout=120, cwd="/root/AIOS") + for l in r2.stdout.strip().split("\n"): + if "ИТОГО" in l: + lines.append(f"💰 Экономика (maker-вход): {l}") + break + except Exception as e: + lines.append(f"📡 MM: ошибка ({e})") + # новостной сентимент + try: + import json as _j + rows = [_j.loads(l) for l in + (ROOT / "data" / "quant" / "news_sentiment.jsonl").read_text().splitlines() if l] + if rows: + pos = sum(1 for r in rows if r["sentiment"] > 0.2) + neg = sum(1 for r in rows if r["sentiment"] < -0.2) + avg = sum(r["sentiment"] for r in rows[-50:]) / max(1, len(rows[-50:])) + lines.append(f"📰 Сентимент: {len(rows)} новостей (pos {pos}/neg {neg}), avg50 {avg:+.2f}") + except Exception: + pass + # сервисы + try: + svc = subprocess.run(["systemctl", "is-active", + "aios-orderbook-ws.service", "aios-quant-trading.service", + "aios-quant-trading-control.service", "aios-dca-paper.timer", + "aios-dca-report.timer"], capture_output=True, text=True) + st = svc.stdout.strip().split("\n") + lines.append(f"🖥 Сервисы: {', '.join(st)}") + except Exception as e: + lines.append(f"🖥 сервисы: ошибка ({e})") + ok = send("\n".join(lines)) + print("sent:", ok) + +if __name__ == "__main__": + main() diff --git a/scripts/analyze_orderbook_data.py b/scripts/analyze_orderbook_data.py new file mode 100644 index 000000000..c2b55489c --- /dev/null +++ b/scripts/analyze_orderbook_data.py @@ -0,0 +1,109 @@ +#!/usr/bin/env python3 +"""Read-only analysis of collected orderbook snapshots. + +Aggregates per-exchange spread/depth stats and cross-exchange mid disparities +(candidate HFT arbitrage windows). No trading, no mutation of data. + +Usage: + python scripts/analyze_orderbook_data.py [--db data/quant/orderbooks.sqlite] +""" + +from __future__ import annotations + +import argparse +import json +import sqlite3 +import statistics +from collections import defaultdict +from pathlib import Path + +import numpy as np + + +def analyze(db_path: Path) -> dict: + db = sqlite3.connect(db_path) + rows = db.execute( + "SELECT ts, exchange, symbol, bid, ask, mid, spread_bps, " + "bid_depth_usd, ask_depth_usd FROM snapshots ORDER BY ts" + ).fetchall() + db.close() + + per_pair: dict[tuple, list] = defaultdict(list) + for ts, ex, sym, bid, ask, mid, spread, bd, ad in rows: + per_pair[(ex, sym)].append((ts, bid, ask, mid, spread, bd, ad)) + + # 1) Per-exchange/symbol spread & depth stats + pairs = [] + for (ex, sym), items in sorted(per_pair.items()): + spreads = [x[4] for x in items] + depths = [(x[5] + x[6]) / 2 for x in items] + pairs.append( + { + "exchange": ex, + "symbol": sym, + "snapshots": len(items), + "spread_bps_median": round(statistics.median(spreads), 3), + "spread_bps_p95": round(np.percentile(spreads, 95), 3), + "depth_usd_median": round(statistics.median(depths), 2), + "ts_span_hours": round((items[-1][0] - items[0][0]) / 3600, 2), + } + ) + + # 2) Cross-exchange mid disparity per symbol within a short time window. + # Group rows per symbol into 60s buckets; within a bucket compute the + # max|min mid gap in bps and count gaps >= 2 bps (arb candidate). + disparity = [] + for sym in sorted({s for _, s, *_ in [(r[1], r[2]) for r in rows]}): + bucket: dict[float, dict[str, float]] = defaultdict(dict) + for ts, ex, s, bid, ask, mid, spread, bd, ad in rows: + if s != sym: + continue + bucket[int(ts // 60)][ex] = mid + gaps = [] + gap_ge_2bps = 0 + for bts, mids in bucket.items(): + if len(mids) < 2: + continue + vals = list(mids.values()) + hi, lo = max(vals), min(vals) + gap_bps = (hi - lo) / lo * 10000 if lo > 0 else 0.0 + gaps.append(gap_bps) + if gap_bps >= 2.0: + gap_ge_2bps += 1 + disparity.append( + { + "symbol": sym, + "buckets_with_data": len(bucket), + "mid_gap_bps_median": round(statistics.median(gaps), 3) if gaps else 0.0, + "mid_gap_bps_p95": round(np.percentile(gaps, 95), 3) if gaps else 0.0, + "buckets_gap_ge_2bps": gap_ge_2bps, + } + ) + + return { + "total_snapshots": len(rows), + "pairs": pairs, + "cross_exchange_disparity": disparity, + } + + +def main() -> int: + p = argparse.ArgumentParser(description=__doc__) + p.add_argument("--db", type=Path, default=Path("data/quant/orderbooks.sqlite")) + p.add_argument("--output", type=Path, default=Path("data/reports/orderbook_analysis.json")) + args = p.parse_args() + report = analyze(args.db) + args.output.parent.mkdir(parents=True, exist_ok=True) + args.output.write_text(json.dumps(report, indent=2, ensure_ascii=False)) + print(json.dumps({k: v for k, v in report.items() if k != "pairs"}, ensure_ascii=False)) + for pr in report["pairs"]: + print( + f" {pr['exchange']:9s} {pr['symbol']:4s} n={pr['snapshots']:5d} " + f"spread_med={pr['spread_bps_median']:7.3f}bps p95={pr['spread_bps_p95']:7.3f} " + f"depth={pr['depth_usd_median']:12,.0f}$" + ) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/analyze_predictive.py b/scripts/analyze_predictive.py new file mode 100644 index 000000000..762e32a0a --- /dev/null +++ b/scripts/analyze_predictive.py @@ -0,0 +1,141 @@ +#!/usr/bin/env python3 +"""Predictive-power analysis: do macro/on-chain/derivatives series predict BTC? + +Builds a merged dataset (daily and hourly), computes LAGGED features +(feature at t-1 -> BTC return at t), then: + - Pearson correlation of each feature with forward returns (1d / 24h); + - event test: top-quintile vs bottom-quintile of feature -> average forward + return difference (robust to noise); + - honest note: correlations on overlapping windows are indicative, not proof. + +Usage: + python analyze_predictive.py [--data-dir data/market_data] [--deriv data/derivatives] +""" + +from __future__ import annotations + +import argparse +import json +import time +from pathlib import Path + +import numpy as np + + +def load_series(path: Path, gran: str = "day") -> dict[int, float]: + """Load ts->value; normalize ts to day or hour so series align. + + Daily series (Yahoo close times vary) -> UTC midnight. + Hourly series -> top of hour. + """ + step = 86400 if gran == "day" else 3600 + out = {} + if not path.exists(): + return out + for line in path.read_text().splitlines(): + try: + r = json.loads(line) + out[(int(r["ts"]) // step) * step] = float(r["value"]) + except Exception: + continue + return out + + +def load_deriv(path: Path, key: str) -> dict[int, float]: + out = {} + if not path.exists(): + return out + rows = json.loads(path.read_text()) + if key == "klines": + for r in rows: + out[int(r["open_ts"]) // 1000] = r["taker_buy_ratio"] + elif key in ("global_lsr", "top_lsr"): + for r in rows: + out[int(r["ts"]) // 1000] = r["lsr"] + elif key == "oi": + for r in rows: + out[int(r["ts"]) // 1000] = r["oi"] + return out + + +def align(feature: dict[int, float], target: dict[int, float], lag_hours: int, + step_hours: int) -> tuple[np.ndarray, np.ndarray]: + """feature at t-lag vs target return over [t, t+step].""" + xs, ys = [], [] + for t in sorted(feature): + tt = t + lag_hours * 3600 + t2 = tt + step_hours * 3600 + if tt in target and t2 in target and target[tt] > 0: + ret = (target[t2] / target[tt] - 1.0) * 100.0 + xs.append(feature[t]) + ys.append(ret) + return np.array(xs), np.array(ys) + + +def test_feature(name: str, feat: dict[int, float], price: dict[int, float], + lag_h: int, step_h: int, min_n: int = 30): + x, y = align(feat, price, lag_h, step_h) + if len(x) < min_n: + print(f" {name:<18} lag{lag_h}h step{step_h}h: n={len(x)} (мало)") + return None + corr = float(np.corrcoef(x, y)[0, 1]) if np.std(x) > 0 and np.std(y) > 0 else 0.0 + # квинтильный тест + q20, q80 = np.percentile(x, 20), np.percentile(x, 80) + lo = y[x <= q20].mean() if (x <= q20).any() else float("nan") + hi = y[x >= q80].mean() if (x >= q80).any() else float("nan") + diff = hi - lo if not (np.isnan(hi) or np.isnan(lo)) else float("nan") + star = " ***" if abs(corr) > 0.15 else (" **" if abs(corr) > 0.10 else "") + print(f" {name:<18} lag{lag_h}h step{step_h}h: n={len(x):>4} corr={corr:+.3f}{star} " + f"Q20={lo:+.3f}% Q80={hi:+.3f}% diff={diff:+.3f}%") + return {"name": name, "corr": corr, "diff": diff, "n": len(x)} + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--data-dir", type=Path, default=Path("data/market_data")) + ap.add_argument("--deriv", type=Path, default=Path("data/derivatives")) + args = ap.parse_args() + + price = load_series(args.data_dir / "BTC_USD.jsonl") + print(f"BTC_USD: {len(price)} дней", flush=True) + + # --- daily macro/on-chain: lag 1d, step 1d --- + print("\n=== Daily: фича (t-1) -> BTC ret (t..t+1d) ===") + daily_feats = { + "DXY": load_series(args.data_dir / "DXY.jsonl"), + "SPX": load_series(args.data_dir / "SPX.jsonl"), + "NDX": load_series(args.data_dir / "NDX.jsonl"), + "IBIT": load_series(args.data_dir / "IBIT.jsonl"), + "hashrate": load_series(args.data_dir / "hashrate.jsonl"), + "n_tx": load_series(args.data_dir / "n_tx.jsonl"), + "n_unique_addr": load_series(args.data_dir / "n_unique_addr.jsonl"), + "tx_vol_usd": load_series(args.data_dir / "tx_vol_usd.jsonl"), + } + for name, f in daily_feats.items(): + test_feature(name, f, price, lag_h=24, step_h=24) + + # --- hourly derivatives: lag 1h, step 1h / 4h / 24h --- + print("\n=== Hourly (деривативы): фича (t-1) -> BTC ret ===") + der_feats = { + "taker_buy_ratio": load_deriv(args.deriv / "BTC_klines.json", "klines"), + "global_lsr": load_deriv(args.deriv / "BTC_global_lsr.json", "global_lsr"), + "top_lsr": load_deriv(args.deriv / "BTC_top_lsr.json", "top_lsr"), + "oi": load_deriv(args.deriv / "BTC_oi.json", "oi"), + } + hprice = load_series(args.data_dir / "BTC_USD_1h.jsonl", gran="hour") if (args.data_dir / "BTC_USD_1h.jsonl").exists() else {} + print(f" (часовой BTC: {len(hprice)} баров)", flush=True) + for name, f in der_feats.items(): + if not hprice: + print(f" {name}: нет часовых цен") + continue + for step in (1, 4, 24): + test_feature(name, f, hprice, lag_h=1, step_h=step, min_n=50) + + print("\n=== Интерпретация ===") + print("corr |>0.10| — слабый сигнал; |>0.15| — заметный; diff>0.3% — квинтильный спред.") + print("Корреляции лаговых фич с будущей доходностью — это и есть предсказательная проверка.") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/backtest_2y.py b/scripts/backtest_2y.py new file mode 100644 index 000000000..d4f6c6cdd --- /dev/null +++ b/scripts/backtest_2y.py @@ -0,0 +1,360 @@ +#!/usr/bin/env python3 +"""2-year backtest: 'what if trading started 2 years ago'. + +Collects 1h klines from Binance Futures for the universe (2 years, paginated), +then simulates the CURRENT Directional v2 engine rules on daily-aggregated or +hourly data as close as possible to the live config: + + - entry: BUY_LONG signal from record_and_analyze (replica) + ML gate + (CatBoost trained on the FIRST 70% of each symbol's history - honest OOS), + confidence >= 0.88, fixed $200/leg, max 1 global position; + - exits: TP 2% / SL 1% / trail 1.0 (current live config) + bearish exit; + - kill switches: drawdown & daily loss 0.25% of equity; + - costs: fee 0.15% + half-spread 0.05% + slippage 0.05% (round-trip ~0.5%). + +WINDOW: last 2 years (2024-08-15 .. 2026-08-15). Train/test per symbol: +train = first 70% of the 2y window, test = last 30% (~7 months OOS). + +Transport injectable for tests. Usage: + python backtest_2y.py [--symbols BTC ETH SOL] [--out data/reports/backtest_2y.md] +""" + +from __future__ import annotations + +import argparse +import json +import sys +import time +import urllib.request +from datetime import datetime, timezone +from pathlib import Path + +import numpy as np + +FAPI = "https://fapi.binance.com" +UA = {"User-Agent": "Mozilla/5.0"} + +PROFILE = { + "min_confidence": 0.88, + "ml_min_prob_up": 0.65, + "take_profit_pct": 0.02, + "stop_loss_pct": -0.01, + "trail_ratio": 1.0, + "min_hold_seconds": 7200, + "fee_rate": 0.0015, + "cost_rate": 0.0010, # half-spread + slippage + "max_global_positions": 1, + "max_drawdown_pct": 0.25, + "max_daily_loss_pct": 0.25, + "stake": 200.0, +} + +WINDOW_DAYS = 730 +TRAIN_FRAC = 0.70 + + +def default_transport(url: str, timeout: int = 25) -> bytes: + req = urllib.request.Request(url, headers=UA) + with urllib.request.urlopen(req, timeout=timeout) as r: + return r.read() + + +def fetch_klines(transport, symbol: str, days: int) -> list[dict]: + """Paginated 1h klines over the last `days` days.""" + out = [] + start = int(time.time() * 1000) - days * 86400 * 1000 + while True: + url = (f"{FAPI}/fapi/v1/klines?symbol={symbol}USDT&interval=1h" + f"&startTime={start}&limit=1500") + raw = transport(url) + rows = json.loads(raw.decode()) + if not rows: + break + for k in rows: + out.append({"ts": int(k[0]), "open": float(k[1]), "high": float(k[2]), + "low": float(k[3]), "close": float(k[4]), + "volume": float(k[5])}) + if len(rows) < 1500: + break + start = rows[-1][0] + 3600 * 1000 + time.sleep(0.15) + return out + + +# ------------------------------------------------------------- engine replica + + +def record_and_analyze(closes: list[float], ml_prob: float | None) -> dict: + """1:1 replica of the live signal engine (fast/bb/rsi/macd scoring).""" + prices = closes[-50:] + fast_period = min(3, len(prices)) + slow_period = min(10, len(prices)) + sma_fast = sum(prices[-fast_period:]) / fast_period + sma_slow = sum(prices[-slow_period:]) / slow_period + rsi = 50.0 + if len(prices) >= 5: + gains = [max(prices[i] - prices[i - 1], 0) for i in range(1, len(prices))] + losses = [max(prices[i - 1] - prices[i], 0) for i in range(1, len(prices))] + avg_gain = sum(gains[-14:]) / min(14, len(gains)) + avg_loss = sum(losses[-14:]) / min(14, len(losses)) + if avg_loss > 0: + rs = avg_gain / avg_loss + rsi = 100.0 - 100.0 / (1.0 + rs) + else: + rsi = 100.0 + period_bb = min(20, len(prices)) + sma_bb = sum(prices[-period_bb:]) / period_bb + var = sum((p - sma_bb) ** 2 for p in prices[-period_bb:]) / period_bb + std = var ** 0.5 + upper = sma_bb + 2 * std + lower = sma_bb - 2 * std + p12 = prices[-min(12, len(prices)):] + p26 = prices[-min(26, len(prices)):] + macd = sum(p12) / len(p12) - sum(p26) / len(p26) + cur = prices[-1] + bullish = bearish = 0 + if cur <= lower: + bullish += 2 + elif cur >= upper: + bearish += 2 + if rsi < 35: + bullish += 2 + elif rsi > 65: + bearish += 2 + if sma_fast > sma_slow: + bullish += 1 + elif sma_fast < sma_slow: + bearish += 1 + if macd > 0: + bullish += 1 + elif macd < 0: + bearish += 1 + if ml_prob is not None: + if ml_prob >= 0.65: + bullish += 1 + elif ml_prob <= 0.35: + bearish += 1 + if bullish >= 3 and bullish > bearish: + return {"signal": "BUY_LONG", + "confidence": round(min(0.99, 0.70 + bullish * 0.06), 2)} + if bearish >= 3 and bearish > bullish: + return {"signal": "SELL_SHORT", + "confidence": round(min(0.99, 0.70 + bearish * 0.06), 2)} + return {"signal": "HOLD", "confidence": 0.50} + + +def run_engine(series: dict[str, dict], probs: dict[str, np.ndarray], + start_idx: int) -> dict: + """Event-driven 1h simulation, max 1 global position, kill switches.""" + p = PROFILE + cash = 10000.0 + initial = cash + peak = cash + trades = [] + positions: dict[str, dict] = {} + history: dict[str, list[float]] = {s: [] for s in series} + day = "" + day_start = initial + + def equity() -> float: + eq = cash + for pos in positions.values(): + eq += pos["qty"] * pos["mark"] + return eq + + all_ts = sorted({int(ts) for s in series.values() + for ts in s["times"][start_idx:]}) + # warmup + for sym, s in series.items(): + history[sym] = [float(c) for c in s["closes"][:start_idx]] + + for ts in all_ts: + d = datetime.fromtimestamp(ts / 1000, tz=timezone.utc).strftime("%Y-%m-%d") + if d != day: + day = d + day_start = equity() + # exits + for sym, s in series.items(): + k = int(np.searchsorted(s["times"], ts)) + if k >= len(s["closes"]): + continue + px = float(s["closes"][k]) + history[sym].append(px) + pos = positions.get(sym) + if pos is None: + continue + pos["mark"] = px + entry = pos["entry"] + max_seen = max(pos["max_seen"], px) + pos["max_seen"] = max_seen + hi, lo = float(s["highs"][k]), float(s["lows"][k]) + exit_px = None + reason = "" + if lo <= entry * (1 + p["stop_loss_pct"]): + exit_px = entry * (1 + p["stop_loss_pct"]) * (1 - p["cost_rate"]) + reason = "stop_loss" + elif hi >= entry * (1 + p["take_profit_pct"]): + exit_px = entry * (1 + p["take_profit_pct"]) * (1 - p["cost_rate"]) + reason = "take_profit" + elif max_seen > entry * 1.01 and lo <= max_seen * p["trail_ratio"]: + exit_px = max_seen * p["trail_ratio"] * (1 - p["cost_rate"]) + reason = "trailing_stop" + else: + ml = float(probs[sym][k]) if k < len(probs[sym]) else None + an = record_and_analyze(history[sym], ml) + if (an["signal"] == "SELL_SHORT" + and an["confidence"] >= p["min_confidence"] + and ml is not None and ml <= 0.40 + and (ts - pos["opened_at"]) >= p["min_hold_seconds"] * 1000): + exit_px = px * (1 - p["cost_rate"]) + reason = "bearish_exit" + if exit_px is not None: + proceeds = exit_px * pos["qty"] + net = proceeds - pos["invested"] - exit_px * pos["qty"] * p["fee_rate"] + cash += proceeds - exit_px * pos["qty"] * p["fee_rate"] + trades.append({"sym": sym, "net": net, "reason": reason, + "opened_at": pos["opened_at"], "ts": ts}) + del positions[sym] + # entries + eq = equity() + peak = max(peak, eq) + dd = max(0.0, (initial - eq) / initial * 100.0) + daily = max(0.0, (day_start - eq) / day_start * 100.0) + if dd >= p["max_drawdown_pct"] or daily >= p["max_daily_loss_pct"]: + continue + for sym, s in series.items(): + if len(positions) >= p["max_global_positions"]: + break + k = int(np.searchsorted(s["times"], ts)) + if k >= len(s["closes"]): + continue + px = float(s["closes"][k]) + ml = float(probs[sym][k]) if k < len(probs[sym]) else None + an = record_and_analyze(history[sym], ml) + if an["signal"] != "BUY_LONG" or an["confidence"] < p["min_confidence"]: + continue + if ml is None or ml < p["ml_min_prob_up"]: + continue + invested = min(cash * 0.2, p["stake"]) + if invested < 10: + continue + exec_px = px * (1 + p["cost_rate"]) + qty = (invested - invested * p["fee_rate"]) / exec_px + cash -= invested + positions[sym] = {"entry": px, "qty": qty, "invested": invested, + "max_seen": px, "opened_at": ts, "mark": px} + final = equity() + return {"initial": initial, "final": final, "pnl": final - initial, + "trades": trades} + + +def build_features(closes: np.ndarray) -> np.ndarray: + """13 scale-free features (same as live ML model).""" + n = len(closes) + out = np.full((n, 13), np.nan) + for i in range(24, n): + c = closes[max(0, i - 100):i + 1] + ret1 = c[-1] / c[-2] - 1 if len(c) > 1 else 0 + ret3 = c[-1] / c[-4] - 1 if len(c) > 3 else 0 + ret6 = c[-1] / c[-7] - 1 if len(c) > 6 else 0 + ret12 = c[-1] / c[-13] - 1 if len(c) > 12 else 0 + ret24 = c[-1] / c[-25] - 1 if len(c) > 24 else 0 + chg = np.diff(c) + up = np.clip(chg, 0, None) + dn = np.clip(-chg, 0, None) + ag = up[-14:].mean() if len(up) >= 14 else up.mean() + al = dn[-14:].mean() if len(dn) >= 14 else dn.mean() + rsi = 100.0 - 100.0 / (1 + ag / (al + 1e-9)) if al > 0 else 100.0 + sma20 = c[-20:].mean() if len(c) >= 20 else c.mean() + sd20 = c[-20:].std() if len(c) >= 20 else 0.0 + bb_pos = (c[-1] - sma20 + 2 * sd20) / (4 * sd20 + 1e-9) + ema12 = float(np.mean(c[-12:])) + ema26 = float(np.mean(c[-26:])) + macd_norm = (ema12 - ema26) / c[-1] + ema_gap = (ema12 - ema26) / c[-1] + vol = np.abs(chg[-20:]).mean() if len(chg) >= 20 else 0.0 + vol_now = abs(chg[-1]) if len(chg) else 0.0 + vol_ratio = vol_now / (vol + 1e-9) + out[i] = [ret1, ret3, ret6, ret12, ret24, rsi, bb_pos, macd_norm, ema_gap, + vol_ratio, 0.0, (c[-1] - c.min()) / (c.max() - c.min() + 1e-9), + (c[-1] - c[-2]) / c[-2] if len(c) > 1 else 0] + return out + + +def train_and_predict(series: dict[str, dict]) -> dict[str, np.ndarray]: + """Per-symbol CatBoost on first 70%, predict on the rest (OOS).""" + from catboost import CatBoostClassifier + + probs: dict[str, np.ndarray] = {} + for sym, s in series.items(): + closes = s["closes"] + n = len(closes) + cut = int(n * TRAIN_FRAC) + X = build_features(closes) + y = (np.roll(closes, -1) > closes).astype(int) + y[-1] = 0 + tr = slice(100, cut - 48) + if np.unique(y[tr]).size < 2: + probs[sym] = np.full(n, 0.5) + continue + m = CatBoostClassifier(iterations=200, depth=4, learning_rate=0.05, + loss_function="Logloss", eval_metric="AUC", + random_seed=42, verbose=0) + ok = ~np.isnan(X[tr]).any(axis=1) + m.fit(X[tr][ok], y[tr][ok]) + p = m.predict_proba(X)[:, 1] + p[:cut] = np.nan + probs[sym] = p + return probs + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--symbols", nargs="+", + default=["BTC", "ETH", "SOL", "XRP", "BNB", "DOGE", "ADA", "LINK"]) + ap.add_argument("--transport", default=None) + ap.add_argument("--out", type=Path, default=Path("data/reports/backtest_2y.md")) + args = ap.parse_args() + + transport = default_transport if args.transport is None else args.transport + print(f"сбор данных: {len(args.symbols)} активов x {WINDOW_DAYS} дней...", flush=True) + series: dict[str, dict] = {} + for sym in args.symbols: + rows = fetch_klines(transport, sym, WINDOW_DAYS) + if len(rows) < 1000: + print(f" {sym}: мало данных ({len(rows)})", flush=True) + continue + series[sym] = { + "closes": np.array([r["close"] for r in rows]), + "highs": np.array([r["high"] for r in rows]), + "lows": np.array([r["low"] for r in rows]), + "times": np.array([r["ts"] for r in rows]), + } + print(f" {sym}: {len(rows)} баров", flush=True) + print(f"готово серий: {len(series)}", flush=True) + + probs = train_and_predict(series) + # OOS: только последние 30% окна + start_idx = int(len(series[args.symbols[0]]["closes"]) * TRAIN_FRAC) + res = run_engine(series, probs, start_idx) + trades = res["trades"] + wins = [t for t in trades if t["net"] > 0] + gw = sum(t["net"] for t in wins) + gl = -sum(t["net"] for t in trades if t["net"] < 0) + print(f"\nРЕЗУЛЬТАТ (OOS, последние ~30% из 2 лет):") + print(f" сделок: {len(trades)}, winrate: {len(wins)/len(trades)*100:.1f}%" + if trades else " сделок: 0") + print(f" PnL: {res['pnl']:+.2f}$ (старт $10k -> финал ${res['final']:.2f})") + if gl > 0: + print(f" profit factor: {gw/gl:.2f}") + from collections import Counter + print(f" причины выхода: {dict(Counter(t['reason'] for t in trades))}") + # BH сравнение + bh = (series[args.symbols[0]]["closes"][-1] / + series[args.symbols[0]]["closes"][start_idx] - 1) * 100 + print(f" BTC buy&hold за OOS-окно: {bh:+.1f}%") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/cleanup_disk.sh b/scripts/cleanup_disk.sh index 897d4c88d..e0a3e4d9d 100755 --- a/scripts/cleanup_disk.sh +++ b/scripts/cleanup_disk.sh @@ -20,6 +20,12 @@ mkdir -p /root/AIOS/logs if [ -d /root/AIOS/data/chrome_twin ]; then find /root/AIOS/data/chrome_twin -type f \( -name '*.png' -o -name '*.jpg' \) -mtime +21 -print -delete 2>/dev/null || true fi + # regenerable build caches (safe: rebuilt on demand) + rm -rf /root/.cache/pip-tools /root/.cache/pip 2>/dev/null || true + # old crash dumps + find /var/crash -type f -mtime +7 -delete 2>/dev/null || true + # apt cache + apt-get clean >/dev/null 2>&1 || true # docker prune dangling (safe) docker image prune -f >/dev/null 2>&1 || true journalctl --vacuum-time=7d >/dev/null 2>&1 || true diff --git a/scripts/collect_derivatives_daily.py b/scripts/collect_derivatives_daily.py new file mode 100644 index 000000000..cb6c90784 --- /dev/null +++ b/scripts/collect_derivatives_daily.py @@ -0,0 +1,49 @@ +#!/usr/bin/env python3 +"""Hourly derivatives accumulator: appends current LSR/OI/taker-buy-ratio. + +Binance Futures API caps history at ~500 records; to build longer history we +append current values periodically. Files (append-only jsonl): + data/derivatives/history/{symbol}_global_lsr.jsonl + data/derivatives/history/{symbol}_top_lsr.jsonl + data/derivatives/history/{symbol}_oi.jsonl + data/derivatives/history/{symbol}_taker.jsonl +""" +from __future__ import annotations +import json, time, urllib.request +from pathlib import Path + +FAPI = "https://fapi.binance.com" +OUT = Path("/root/AIOS/data/derivatives/history") +SYMBOLS = ["BTC", "ETH", "SOL"] + +def get(url, timeout=20): + req = urllib.request.Request(url, headers={"User-Agent": "Mozilla/5.0"}) + with urllib.request.urlopen(req, timeout=timeout) as r: + return json.loads(r.read().decode()) + +def main(): + OUT.mkdir(parents=True, exist_ok=True) + for sym in SYMBOLS: + now = time.time() + try: + lsr = get(f"{FAPI}/futures/data/globalLongShortAccountRatio?symbol={sym}USDT&period=1h&limit=1")[0] + top = get(f"{FAPI}/futures/data/topLongShortAccountRatio?symbol={sym}USDT&period=1h&limit=1")[0] + oi = get(f"{FAPI}/futures/data/openInterestHist?symbol={sym}USDT&period=1h&limit=1")[0] + k = get(f"{FAPI}/fapi/v1/klines?symbol={sym}USDT&interval=1h&limit=1")[0] + vol, taker = float(k[5]), float(k[9]) + rows = { + f"{sym}_global_lsr": {"ts": now, "lsr": float(lsr["longShortRatio"])}, + f"{sym}_top_lsr": {"ts": now, "lsr": float(top["longShortRatio"])}, + f"{sym}_oi": {"ts": now, "oi": float(oi["sumOpenInterest"])}, + f"{sym}_taker": {"ts": now, "taker_buy_ratio": taker/vol if vol else 0.5}, + } + for name, row in rows.items(): + with open(OUT / f"{name}.jsonl", "a") as f: + f.write(json.dumps(row) + "\n") + except Exception as e: + print(f"{sym}: {e}", flush=True) + time.sleep(0.2) + print("done", flush=True) + +if __name__ == "__main__": + main() diff --git a/scripts/collect_funding_oi_daily.py b/scripts/collect_funding_oi_daily.py new file mode 100644 index 000000000..e2992c7e7 --- /dev/null +++ b/scripts/collect_funding_oi_daily.py @@ -0,0 +1,48 @@ +#!/usr/bin/env python3 +"""V6: daily funding/OI collector (append-only history). + +Binance Futures public endpoints; appends today's funding rate and OI snapshot +for the 33-symbol universe into data/quant/funding_oi/daily_{symbol}.jsonl +and open_interest_{symbol}.jsonl. Designed to run daily via systemd timer so the +OI history grows from today (funding history is deep already, OI is not). + +Usage: + python scripts/collect_funding_oi_daily.py +""" +from __future__ import annotations +import json, time, urllib.request +from pathlib import Path + +ROOT = Path("/root/AIOS") +OUT = ROOT / "data" / "quant" / "funding_oi" +SYMBOLS = ["BTC","ETH","SOL","XRP","BNB","DOGE","ADA","LINK","AVAX","UNI","NEAR","LTC", + "DOT","SUI","APT","ARB","OP","INJ","TIA","SEI","FET","BONK","PEPE","SHIB","TRX", + "TON","ETC","FIL","ATOM","KAS","WIF","RENDER","POL"] + +def get(url): + req = urllib.request.Request(url, headers={"User-Agent": "Mozilla/5.0"}) + with urllib.request.urlopen(req, timeout=20) as r: + return json.loads(r.read().decode()) + +def main(): + OUT.mkdir(parents=True, exist_ok=True) + today = time.strftime("%Y-%m-%d") + n_ok = 0 + for sym in SYMBOLS: + try: + fr = get(f"https://fapi.binance.com/fapi/v1/fundingRate?symbol={sym}USDT&limit=1") + oi = get(f"https://fapi.binance.com/fapi/v1/openInterest?symbol={sym}USDT") + with open(OUT / f"daily_{sym}.jsonl", "a") as f: + f.write(json.dumps({"date": today, "funding_rate": float(fr[0]["fundingRate"]), + "funding_time": int(fr[0]["fundingTime"])}) + "\n") + with open(OUT / f"open_interest_{sym}.jsonl", "a") as f: + f.write(json.dumps({"date": today, "oi": float(oi["openInterest"]), + "time": int(oi["time"])}) + "\n") + n_ok += 1 + except Exception as e: + print(f"{sym} FAIL {e}", flush=True) + time.sleep(0.12) + print(f"done {n_ok}/{len(SYMBOLS)} symbols", flush=True) + +if __name__ == "__main__": + main() diff --git a/scripts/collect_market_context.py b/scripts/collect_market_context.py new file mode 100755 index 000000000..fdce8e281 --- /dev/null +++ b/scripts/collect_market_context.py @@ -0,0 +1,94 @@ +#!/usr/bin/env python3 +"""P1: market context collector - Fear&Greed index + macro calendar. + +Fetches: + - Fear & Greed Index (alternative.me, free, no key): daily values history; + - Macro calendar (faireconomy.media ff_calendar_thisweek.json, free): upcoming + high-impact events (CPI, FOMC, NFP, rate decisions). + +Appends snapshot to data/quant/market_context.jsonl and keeps latest in +data/quant/market_context_latest.json for /quant and digest. + +Usage: + python scripts/collect_market_context.py +""" + +from __future__ import annotations + +import json +import time +import urllib.request +from pathlib import Path + +ROOT = Path("/root/AIOS") +LATEST = ROOT / "data" / "quant" / "market_context_latest.json" +LOG = ROOT / "data" / "quant" / "market_context.jsonl" + + +def get(url: str, timeout: int = 20) -> dict | list: + req = urllib.request.Request(url, headers={"User-Agent": "Mozilla/5.0"}) + with urllib.request.urlopen(req, timeout=timeout) as r: + return json.loads(r.read().decode()) + + +def main() -> int: + out: dict = {"ts": time.time(), "date": time.strftime("%Y-%m-%d %H:%M")} + + # Fear & Greed + try: + d = get("https://api.alternative.me/fng/?limit=10") + data = d.get("data", []) + if data: + cur = data[0] + out["fng"] = { + "value": int(cur["value"]), + "class": cur["value_classification"], + "history": [{"value": int(x["value"]), "class": x["value_classification"]} + for x in data], + } + except Exception as e: + out["fng"] = {"error": str(e)} + + # Macro calendar: upcoming high-impact events (next 7 days) + try: + d = get("https://nfs.faireconomy.media/ff_calendar_thisweek.json") + if isinstance(d, list): + events = [] + now = time.time() + for ev in d: + try: + ts = float(ev.get("epoch", 0)) + except (TypeError, ValueError): + continue + impact = str(ev.get("impact", "")).lower() + if ts >= now and impact in ("high", "medium"): + events.append({ + "ts": ts, + "date": ev.get("date", ""), + "time": ev.get("time", ""), + "title": ev.get("title", ""), + "country": ev.get("country", ""), + "impact": impact, + }) + events.sort(key=lambda x: x["ts"]) + out["macro"] = events[:10] + except Exception as e: + out["macro"] = {"error": str(e)} + + LATEST.write_text(json.dumps(out, ensure_ascii=False, indent=2)) + with open(LOG, "a") as f: + f.write(json.dumps(out, ensure_ascii=False) + "\n") + + fng = out.get("fng", {}) + if fng.get("value") is not None: + print(f"F&G: {fng['value']} ({fng['class']})", flush=True) + mac = out.get("macro", []) + if isinstance(mac, list): + print(f"макро-событий: {len(mac)}", flush=True) + for e in mac[:3]: + print(f" {e['date']} {e['time']} [{e['impact']}] {e['title']}", flush=True) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/collect_news_sentiment.py b/scripts/collect_news_sentiment.py new file mode 100755 index 000000000..f7fc2ec48 --- /dev/null +++ b/scripts/collect_news_sentiment.py @@ -0,0 +1,217 @@ +#!/usr/bin/env python3 +"""N1: crypto news collector + LLM sentiment scoring (GROQ). + +Fetches RSS feeds (CoinTelegraph, CoinDesk), extracts titles, batched LLM +sentiment analysis via GROQ (key from .env), appends to +data/quant/news_sentiment.jsonl. One row per news item: + ts, source, title, url, sentiment (float -1..1), label, coins (mentions) + +Usage: + python scripts/collect_news_sentiment.py [--limit 30] +""" + +from __future__ import annotations + +import argparse +import json +import re +import time +import urllib.request +import xml.etree.ElementTree as ET +from datetime import UTC, datetime +from pathlib import Path + +ROOT = Path("/root/AIOS") +OUT = ROOT / "data" / "quant" / "news_sentiment.jsonl" +FEEDS = [ + ("cointelegraph", "https://cointelegraph.com/rss"), + ("coindesk", "https://www.coindesk.com/arc/outboundfeeds/rss/"), + ("cryptoslate", "https://cryptoslate.com/feed/"), +] + +COINS = ["BTC", "ETH", "SOL", "XRP", "BNB", "DOGE", "ADA", "TRX", "TON", "LINK", + "AVAX", "UNI", "NEAR", "LTC", "DOT", "SUI", "APT", "ARB", "OP", "INJ", + "bitcoin", "ethereum", "tether", "XRP", "solana", "binance", "cardano"] + +SYSTEM_PROMPT = ( + "You are a crypto sentiment analyst. For each news headline return a JSON " + "object {\"sentiment\": , \"coins\": []}. " + "Positive news (adoption, growth, ETF inflow) -> positive; negative news " + "(hacks, bans, liquidations) -> negative. Reply ONLY with a JSON array, " + "one object per headline, no other text." +) + + +def fetch_rss(url: str, timeout: int = 20) -> list[dict]: + req = urllib.request.Request(url, headers={"User-Agent": "Mozilla/5.0"}) + try: + with urllib.request.urlopen(req, timeout=timeout) as r: + raw = r.read() + except Exception as e: + print(f" rss fail {url}: {e}", flush=True) + return [] + items = [] + try: + root = ET.fromstring(raw) + for it in root.iter("item"): + title = (it.findtext("title") or "").strip() + link = (it.findtext("link") or "").strip() + if title: + items.append({"title": title, "link": link}) + except Exception as e: + print(f" parse fail {url}: {e}", flush=True) + return items + + +def all_keys() -> list[dict]: + """All LLM keys: GROQ_API_KEY*, OPENROUTER_API_KEY.""" + try: + env = (ROOT / ".env").read_text() + except Exception: + return [] + keys = [] + for m0 in re.finditer(r"^(GEMINI_API_KEY_[0-9]+)=(\S+)", env, re.M): + keys.append({"provider": "gemini", "key": m0.group(2)}) + m = re.search(r"^OPENROUTER_API_KEY=(\S+)", env, re.M) + if m: + keys.append({"provider": "openrouter", "key": m.group(1)}) + for m2 in re.finditer(r"^(GROQ_API_KEY[A-Z_0-9]*)=(\S+)", env, re.M): + keys.append({"provider": "groq", "key": m2.group(2)}) + return keys + + +def score_batch(keys: list[dict], titles: list[str]) -> list[dict]: + """Try each key/provider until one works.""" + for k in keys: + if k["provider"] == "gemini": + body = json.dumps({ + "contents": [{"parts": [{"text": SYSTEM_PROMPT + "\n\n" + + "\n".join(f"{i+1}. {t}" for i, t in enumerate(titles))}]}], + }).encode() + url = (f"https://generativelanguage.googleapis.com/v1beta/models/" + f"gemini-2.5-flash:generateContent?key={k['key']}") + elif k["provider"] == "groq": + body = json.dumps({ + "model": "llama-3.3-70b-versatile", + "messages": [ + {"role": "system", "content": SYSTEM_PROMPT}, + {"role": "user", "content": "\n".join(f"{i+1}. {t}" for i, t in enumerate(titles))}, + ], + "temperature": 0, + "response_format": {"type": "json_object"}, + }).encode() + url = "https://api.groq.com/openai/v1/chat/completions" + else: # openrouter + body = json.dumps({ + "model": "meta-llama/llama-3.3-70b-instruct", + "messages": [ + {"role": "system", "content": SYSTEM_PROMPT}, + {"role": "user", "content": "\n".join(f"{i+1}. {t}" for i, t in enumerate(titles))}, + ], + "temperature": 0, + }).encode() + url = "https://openrouter.ai/api/v1/chat/completions" + try: + hdrs = {"Content-Type": "application/json"} + if k["provider"] != "gemini": + hdrs["Authorization"] = f"Bearer {k['key']}" + req = urllib.request.Request(url, data=body, headers=hdrs) + with urllib.request.urlopen(req, timeout=45) as r: + data = json.loads(r.read().decode()) + if k["provider"] == "gemini": + text = data["candidates"][0]["content"]["parts"][0]["text"] + else: + text = data["choices"][0]["message"]["content"] + cleaned = re.sub(r"^```(?:json)?\s*|\s*```$", "", text.strip()) + m = re.search(r"\[.*\]", cleaned, re.S) + if m: + try: + arr = json.loads(m.group(0)) + if isinstance(arr, list): + return arr + except Exception: + pass + return [] + except Exception as e: + print(f" {k['provider']} fail: {e}", flush=True) + continue + return [] + + +def detect_coins(title: str) -> list[str]: + found = set() + upper = title.upper() + for c in COINS: + if re.search(rf"\b{c}\b", upper): + found.add(c if len(c) <= 5 else c.upper()) + return sorted(found) + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--limit", type=int, default=30) + args = ap.parse_args() + + keys = all_keys() + if not keys: + print("no LLM keys found in .env") + return 1 + print(f"ключей: {len(keys)} ({', '.join(k['provider'] for k in keys)})", flush=True) + + seen = set() + if OUT.exists(): + for line in OUT.read_text().splitlines(): + try: + seen.add(json.loads(line)["url"]) + except Exception: + pass + + items = [] + for src, url in FEEDS: + for it in fetch_rss(url): + if it["link"] not in seen and not any(k in it["title"].lower() + for k in ("sponsored", "opinion", "podcast")): + it["source"] = src + items.append(it) + print(f"новых новостей: {len(items)}", flush=True) + if not items: + print("нет новых — выход") + return 0 + + # батчим по 8 заголовков + rows = [] + for i in range(0, len(items), 8): + batch = items[i:i + 8] + scores = score_batch(keys, [b["title"] for b in batch]) + for j, b in enumerate(batch): + sc = scores[j] if j < len(scores) and isinstance(scores[j], dict) else {} + try: + sent = float(sc.get("sentiment", 0.0)) + except (TypeError, ValueError): + sent = 0.0 + sent = max(-1.0, min(1.0, sent)) + coins = sc.get("coins") or detect_coins(b["title"]) + rows.append({ + "ts": time.time(), + "date": datetime.now(UTC).strftime("%Y-%m-%d %H:%M"), + "source": b["source"], + "title": b["title"][:300], + "url": b["link"], + "sentiment": round(sent, 3), + "label": "positive" if sent > 0.2 else ("negative" if sent < -0.2 else "neutral"), + "coins": [str(c) for c in coins][:5], + }) + time.sleep(0.5) + + with open(OUT, "a") as f: + for r in rows: + f.write(json.dumps(r, ensure_ascii=False) + "\n") + # сводка + pos = sum(1 for r in rows if r["sentiment"] > 0.2) + neg = sum(1 for r in rows if r["sentiment"] < -0.2) + print(f"записано: {len(rows)} (pos {pos}, neg {neg}, neutral {len(rows)-pos-neg})", flush=True) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/collect_orderbook_snapshots.py b/scripts/collect_orderbook_snapshots.py index 64c54d832..75954bd88 100755 --- a/scripts/collect_orderbook_snapshots.py +++ b/scripts/collect_orderbook_snapshots.py @@ -11,7 +11,20 @@ import ccxt -EXCHANGE_CLASSES = {"binance": ccxt.binance, "kucoin": ccxt.kucoin, "mexc": ccxt.mexc} +EXCHANGE_CLASSES = { + "binance": ccxt.binance, + "kucoin": ccxt.kucoin, + "mexc": ccxt.mexc, + "okx": ccxt.okx, + "bitstamp": ccxt.bitstamp, + "coinbase": ccxt.coinbase, +} + +# Some exchanges only accept specific depth limits (kucoin: 20 or 100). +MIN_DEPTH = {"kucoin": 20} + +# Exchanges that do not list all universe pairs (bitstamp: BTC/ETH only). +EXCHANGE_SYMBOLS = {"bitstamp": {"BTC", "ETH"}} class OrderbookStore: @@ -89,11 +102,15 @@ def build_clients(names): def collect_once(clients, symbols, store: OrderbookStore, depth=10): saved = errors = 0 for exchange, client in clients.items(): + allowed = EXCHANGE_SYMBOLS.get(exchange) for base in symbols: + if allowed is not None and base not in allowed: + continue pair = f"{base}/USDT" started = time.monotonic() try: - book = client.fetch_order_book(pair, limit=depth) + fetch_depth = max(depth, MIN_DEPTH.get(exchange, depth)) + book = client.fetch_order_book(pair, limit=fetch_depth) row = normalize(exchange, base, book, (time.monotonic() - started) * 1000, depth) if row: store.add(row) diff --git a/scripts/collect_orderbook_ws.py b/scripts/collect_orderbook_ws.py new file mode 100755 index 000000000..256a285ed --- /dev/null +++ b/scripts/collect_orderbook_ws.py @@ -0,0 +1,166 @@ +#!/usr/bin/env python3 +"""WebSocket orderbook depth collector for market-making research (stage 3). + +Subscribes to Binance public partial-depth streams (wss://stream.binance.com:9443, +btcusdt@depth20@100ms) for a set of pairs, keeps the freshest snapshot per second +and appends it to data/quant/orderbooks.sqlite table `snapshots_ws` +(same schema as `snapshots`, plus a source tag). Read-only market data; never +authenticates or trades. + +Usage: + python scripts/collect_orderbook_ws.py [--pairs BTC ETH SOL] [--interval 1.0] + [--db data/quant/orderbooks.sqlite] +""" + +from __future__ import annotations + +import argparse +import asyncio +import json +import sqlite3 +import time +from pathlib import Path + +import websockets + +BASE_WS = "wss://stream.binance.com:9443/ws" + + +class WSStore: + def __init__(self, path: Path): + path.parent.mkdir(parents=True, exist_ok=True) + self.db = sqlite3.connect(path) + self.db.execute("PRAGMA journal_mode=WAL") + self.db.execute("PRAGMA synchronous=NORMAL") + self.db.execute("""CREATE TABLE IF NOT EXISTS snapshots_ws ( + ts REAL NOT NULL, source TEXT NOT NULL, symbol TEXT NOT NULL, + bid REAL NOT NULL, ask REAL NOT NULL, mid REAL NOT NULL, spread_bps REAL NOT NULL, + bid_depth_usd REAL NOT NULL, ask_depth_usd REAL NOT NULL, + bids_json TEXT NOT NULL, asks_json TEXT NOT NULL, latency_ms REAL NOT NULL + )""") + self.db.execute("CREATE INDEX IF NOT EXISTS idx_ws_sym_ts ON snapshots_ws(symbol, ts)") + self.db.execute("""CREATE TABLE IF NOT EXISTS trades_ws ( + ts REAL NOT NULL, source TEXT NOT NULL, symbol TEXT NOT NULL, + buy_vol REAL NOT NULL, sell_vol REAL NOT NULL, total_vol REAL NOT NULL, + buy_frac REAL NOT NULL, n_trades INTEGER NOT NULL + )""") + self.db.execute("CREATE INDEX IF NOT EXISTS idx_trades_ws_sym_ts ON trades_ws(symbol, ts)") + + def add_batch(self, rows: list[tuple]): + if not rows: + return + self.db.executemany( + "INSERT INTO snapshots_ws VALUES (?,?,?,?,?,?,?,?,?,?,?,?)", rows) + self.db.commit() + + +def depth_to_json(levels) -> str: + return json.dumps([[float(l[0]), float(l[1])] for l in levels]) + + +def level_depth_usd(levels, mid: float) -> float: + return sum(float(l[0]) * float(l[1]) for l in levels) + + +async def consume_one(ws, pair: str, interval: float, store: WSStore, + source: str = "binance_ws", trade_interval: float = 5.0) -> None: + """One connection per pair: depth + aggTrade streams; flush freshest per interval.""" + latest: dict | None = None + last_ts = 0.0 + trades: dict[str, float] = {"buy": 0.0, "sell": 0.0, "n": 0.0} + last_trade_ts = 0.0 + while True: + raw = await ws.recv() + msg = json.loads(raw) + if msg.get("e") == "aggTrade": + # aggregate trade: m=True -> buyer is maker (sell aggressor) + qty = float(msg.get("q", 0.0)) + if msg.get("m"): + trades["sell"] += qty + else: + trades["buy"] += qty + trades["n"] += 1 + now = time.time() + if now - last_trade_ts >= trade_interval and trades["n"] > 0: + buy, sell, n = trades["buy"], trades["sell"], trades["n"] + total = buy + sell + store.db.execute( + "INSERT INTO trades_ws VALUES (?,?,?,?,?,?,?,?)", + (now, source, pair, buy, sell, total, + buy / total if total > 0 else 0.5, int(n))) + store.db.commit() + trades = {"buy": 0.0, "sell": 0.0, "n": 0.0} + last_trade_ts = now + continue + if msg.get("lastUpdateId") is None: + continue + bids, asks = msg.get("bids", []), msg.get("asks", []) + if not bids or not asks: + continue + bid = float(bids[0][0]) + ask = float(asks[0][0]) + if bid <= 0 or ask <= 0 or ask <= bid: + continue + mid = (bid + ask) / 2.0 + latest = { + "ts": time.time(), + "bid": bid, "ask": ask, "mid": mid, + "spread_bps": (ask - bid) / mid * 1e4, + "bid_depth_usd": level_depth_usd(bids, mid), + "ask_depth_usd": level_depth_usd(asks, mid), + "bids_json": depth_to_json(bids), + "asks_json": depth_to_json(asks), + "latency_ms": 0.0, + } + now = time.time() + if latest and (now - last_ts) >= interval: + r = latest + store.add_batch([(r["ts"], source, pair, r["bid"], r["ask"], r["mid"], + r["spread_bps"], r["bid_depth_usd"], r["ask_depth_usd"], + r["bids_json"], r["asks_json"], r["latency_ms"])]) + last_ts = now + latest = None + + +async def keepalive(ws, interval: float = 20.0) -> None: + while True: + await asyncio.sleep(interval) + try: + await ws.ping() + except Exception: + return + + +async def run_one(pair: str, interval: float, db_path: Path) -> None: + store = WSStore(db_path) + url = f"{BASE_WS}/{pair.lower()}usdt@depth20@100ms/{pair.lower()}usdt@aggTrade" + while True: + try: + async with websockets.connect(url, ping_interval=None) as ws: + print(f"connected {pair}", flush=True) + await asyncio.gather(consume_one(ws, pair, interval, store), + keepalive(ws)) + except Exception as e: + print(f"{pair} error: {e}; reconnect in 5s", flush=True) + await asyncio.sleep(5) + + +async def run(pairs: list[str], interval: float, db_path: Path) -> None: + await asyncio.gather(*(run_one(p, interval, db_path) for p in pairs)) + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--pairs", nargs="+", default=["BTC", "ETH", "SOL"]) + ap.add_argument("--interval", type=float, default=1.0) + ap.add_argument("--db", type=Path, default=Path("/root/AIOS/data/quant/orderbooks.sqlite")) + args = ap.parse_args() + try: + asyncio.run(run(args.pairs, args.interval, args.db)) + except KeyboardInterrupt: + pass + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/config_executor.example.json b/scripts/config_executor.example.json new file mode 100644 index 000000000..10695fb46 --- /dev/null +++ b/scripts/config_executor.example.json @@ -0,0 +1,13 @@ +{ + "_comment": "T2 real-money executor config TEMPLATE. Copy to config_executor.json and fill keys (never commit real keys). All risk knobs are safe defaults.", + "exchange": "binance", + "api_key": "YOUR_BINANCE_API_KEY", + "api_secret": "YOUR_BINANCE_API_SECRET", + "symbols": ["BTC/USDT", "ETH/USDT", "SOL/USDT", "BNB/USDT", "NEAR/USDT"], + "windows": {"BNB/USDT": [50, 50], "NEAR/USDT": [50, 50]}, + "stake_frac": 0.20, + "max_order_usdt": 2000, + "max_daily_orders": 4, + "state_file": "data/t2_executor_state.json", + "cost_bps": 10 +} diff --git a/scripts/dca_chart_report.py b/scripts/dca_chart_report.py new file mode 100755 index 000000000..f5b6adce3 --- /dev/null +++ b/scripts/dca_chart_report.py @@ -0,0 +1,128 @@ +#!/usr/bin/env python3 +"""D5: portfolio value chart (VA main vs DCA control) -> Telegram photo. + +Reads both value logs, plots cumulative value (and invested line), sends the +PNG to the owner via Telegram sendPhoto (no file persistence needed). + +Usage: + python scripts/dca_chart_report.py [--send] +""" + +from __future__ import annotations + +import argparse +import io +import json +import urllib.parse +import urllib.request +from datetime import datetime +from pathlib import Path + +import matplotlib +matplotlib.use("Agg") +import matplotlib.pyplot as plt +import matplotlib.dates as mdates + +ROOT = Path("/root/AIOS") + + +def load_log(path: Path) -> list[dict]: + if not path.exists(): + return [] + out = [] + for line in path.read_text().splitlines(): + try: + out.append(json.loads(line)) + except ValueError: + continue + return out + + +def cred(name: str) -> str | None: + p = Path("/etc/aios/credentials") / name + return p.read_text().strip() if p.exists() else None + + +def build_chart() -> Path: + va = load_log(ROOT / "data/dca_paper_value.jsonl") + dca = load_log(ROOT / "data/dca_paper_value_control.jsonl") + t2 = load_log(ROOT / "data/t2_paper_equity.jsonl") + fig, ax = plt.subplots(figsize=(9, 5)) + if va: + x = [datetime.fromisoformat(r["date"]) for r in va] + y = [r["value_usd"] for r in va] + ax.plot(x, y, "-o", label=f"VA main (${va[-1]['value_usd']:.2f})", color="#2e7d32") + ax.plot(x, [r["deposited_usd"] for r in va], "--", color="#9e9e9e", + label="invested VA") + if dca: + x2 = [datetime.fromisoformat(r["date"]) for r in dca] + y2 = [r["value_usd"] for r in dca] + ax.plot(x2, y2, "-o", label=f"DCA control (${dca[-1]['value_usd']:.2f})", + color="#1565c0") + ax.plot(x2, [r["deposited_usd"] for r in dca], ":", color="#9e9e9e", + label="invested DCA") + if t2: + x3 = [datetime.fromisoformat(r["date"]) for r in t2] + y3 = [r["equity"] for r in t2] + ax.plot(x3, y3, "-", label=f"T2-BTC (${y3[-1]:,.0f})", color="#c62828", linewidth=1.5) + ax.plot(x3, [r["bh_equity"] for r in t2], ":", color="#ef9a9a", label="T2 BH") + ax.set_title("Портфели: DCA vs T2-момент") + ax.set_ylabel("$") + ax.grid(alpha=0.3) + ax.legend() + ax.xaxis.set_major_formatter(mdates.DateFormatter("%m-%d")) + fig.tight_layout() + out = ROOT / "data" / "dca_chart.png" + fig.savefig(out, dpi=110) + plt.close(fig) + return out + + +def send_photo(token: str, chat_id: str, photo_path: Path, caption: str) -> bool: + import mimetypes + boundary = "----aiosdca" + parts = [] + # caption + parts.append( + f"--{boundary}\r\n" + 'Content-Disposition: form-data; name="chat_id"\r\n\r\n' + f"{chat_id}\r\n") + parts.append( + f"--{boundary}\r\n" + 'Content-Disposition: form-data; name="caption"\r\n\r\n' + f"{caption}\r\n") + data = photo_path.read_bytes() + parts.append( + f"--{boundary}\r\n" + 'Content-Disposition: form-data; name="photo"; filename="dca.png"\r\n' + "Content-Type: image/png\r\n\r\n") + body = ("".join(parts)).encode() + data + f"\r\n--{boundary}--\r\n".encode() + req = urllib.request.Request( + f"https://api.telegram.org/bot{token}/sendPhoto", data=body, + headers={"Content-Type": f"multipart/form-data; boundary={boundary}"}) + try: + with urllib.request.urlopen(req, timeout=30) as r: + return json.loads(r.read().decode()).get("ok", False) + except Exception as e: + print(f"sendPhoto fail: {e}", flush=True) + return False + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--send", action="store_true", help="send to Telegram") + args = ap.parse_args() + + chart = build_chart() + print(f"chart -> {chart}", flush=True) + if args.send: + token, chat = cred("telegram_token"), cred("telegram_owner_chat_id") + if token and chat: + ok = send_photo(token, chat, chart, + "📈 DCA-портфели: VA (main) vs DCA (control)") + print(f"sent: {ok}", flush=True) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/dca_telegram_report.py b/scripts/dca_telegram_report.py new file mode 100755 index 000000000..e7cf9a564 --- /dev/null +++ b/scripts/dca_telegram_report.py @@ -0,0 +1,124 @@ +#!/usr/bin/env python3 +"""Send a weekly DCA portfolio summary to the owner via Telegram. + +Reads credentials from systemd-style credential files: + /etc/aios/credentials/telegram_token + /etc/aios/credentials/telegram_owner_chat_id +(no secrets in code; falls back to env vars for manual runs). + +Usage: + python scripts/dca_telegram_report.py [--weekly] +""" + +from __future__ import annotations + +import argparse +import json +import sys +import urllib.request +from pathlib import Path + +ROOT = Path("/root/AIOS") + + +def load_credential(name: str) -> str | None: + p = Path("/etc/aios/credentials") / name + if p.exists(): + return p.read_text().strip() + return None + + +def load_state() -> dict: + try: + return json.loads((ROOT / "data" / "dca_paper_state.json").read_text()) + except (OSError, ValueError): + return {} + + +def load_value_log() -> list[dict]: + p = ROOT / "data" / "dca_paper_value.jsonl" + if not p.exists(): + return [] + out = [] + for line in p.read_text().splitlines(): + try: + out.append(json.loads(line)) + except ValueError: + continue + return out + + +def send_message(token: str, chat_id: str, text: str) -> bool: + url = f"https://api.telegram.org/bot{token}/sendMessage" + data = urllib.parse.urlencode({"chat_id": chat_id, "text": text, + "parse_mode": "HTML"}).encode() + req = urllib.request.Request(url, data=data) + try: + with urllib.request.urlopen(req, timeout=20) as r: + return json.loads(r.read().decode()).get("ok", False) + except Exception as e: + print(f"send fail: {e}", flush=True) + return False + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--weekly", action="store_true", help="weekly summary mode") + args = ap.parse_args() + + import urllib.parse + + token = load_credential("telegram_token") + chat_id = load_credential("telegram_owner_chat_id") + if not token or not chat_id: + print("credentials not found", flush=True) + return 1 + + state = load_state() + log = load_value_log() + # контрольный портфель (plain DCA) для сравнения + try: + import json as _j + cstate = _j.loads((ROOT / "data" / "dca_paper_state_control.json").read_text()) + cvlog = [_j.loads(l) for l in + (ROOT / "data" / "dca_paper_value_control.jsonl").read_text().splitlines() if l] + cval = cvlog[-1]["value_usd"] if cvlog else 0.0 + cdep = float(cstate.get("deposited_usd", 0)) + cpnl = cval - cdep + lines.append(f"🔁 Контроль (DCA): ${cdep:.0f} → ${cval:.2f} ({cpnl:+.2f}$)") + except Exception: + pass + deposited = float(state.get("deposited_usd", 0.0)) + fees = float(state.get("fees_usd", 0.0)) + holdings = state.get("holdings", {}) + buys = state.get("buys", []) + value = log[-1]["value_usd"] if log else 0.0 + pnl = value - deposited + pnl_pct = pnl / deposited * 100.0 if deposited else 0.0 + last_deposit = state.get("last_deposit", "—") + + lines = [ + "📊 DCA-портфель (paper)", + f"💵 Вложено: ${deposited:.2f}", + f"💰 Стоимость: ${value:.2f} ({pnl:+.2f}$ / {pnl_pct:+.2f}%)", + f"🧾 Комиссии: ${fees:.2f} | Позиций: {len(holdings)}", + f"📅 Последний депозит: {last_deposit}", + ] + if args.weekly: + if buys: + recent = buys[-10:] + lines.append("") + lines.append("🛒 Последние покупки:") + for b in recent: + lines.append(f"• {b['date']} {b['symbol']} @ {b['price']:.6f} " + f"({b['usd']:.2f}$)") + lines.append("") + lines.append("⏭ Следующий депозит: через 7 дней | Ребаланс: раз в 90 дней") + + ok = send_message(token, chat_id, "\n".join(lines)) + print(f"sent: {ok}", flush=True) + return 0 if ok else 1 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/fetch_derivatives.py b/scripts/fetch_derivatives.py new file mode 100644 index 000000000..1c56cd64d --- /dev/null +++ b/scripts/fetch_derivatives.py @@ -0,0 +1,140 @@ +#!/usr/bin/env python3 +"""Derivatives data collector (Binance Futures) + feature builders. + +Collects (per symbol): + - 1h klines with taker buy volume -> taker_buy_ratio (aggressor imbalance) + - globalLongShortAccountRatio (account-position skew) + - topLongShortAccountRatio (top-trader skew) + - openInterestHist (OI change / OI delta) + - premiumIndex (futures basis vs index) + +NOTE: Binance is geo-blocked from some networks (HTTP 451). The collector takes +an injectable transport: tests use fixtures; production runs on a server where +the API is reachable. Historical depth: klines ~1500 bars/request (paginated), +ratios/OI ~30 days (API cap). + +Usage: + python fetch_derivatives.py --symbol BTC [--hours 720] [--out data/derivatives] +""" + +from __future__ import annotations + +import argparse +import json +import time +import urllib.request +from pathlib import Path + +FAPI = "https://fapi.binance.com" +UA = {"User-Agent": "Mozilla/5.0"} + + +def default_transport(url: str, timeout: int = 25) -> bytes: + req = urllib.request.Request(url, headers=UA) + with urllib.request.urlopen(req, timeout=timeout) as r: + return r.read() + + +def parse_klines(raw: bytes) -> list[dict]: + """Binance kline -> rows with taker-buy ratio.""" + rows = [] + for k in json.loads(raw.decode()): + vol = float(k[5]) + taker = float(k[9]) + rows.append({ + "open_ts": int(k[0]), + "close": float(k[4]), + "volume": vol, + "taker_buy": taker, + "taker_buy_ratio": (taker / vol) if vol > 0 else 0.5, + }) + return rows + + +def parse_lsr(raw: bytes) -> list[dict]: + rows = [] + for r in json.loads(raw.decode()): + rows.append({ + "ts": int(r["timestamp"]), + "lsr": float(r["longShortRatio"]), + "long_share": float(r["longAccount"]), + }) + return rows + + +def parse_oi(raw: bytes) -> list[dict]: + rows = [] + for r in json.loads(raw.decode()): + rows.append({"ts": int(r["timestamp"]), "oi": float(r["sumOpenInterest"])}) + return rows + + +class DerivCollector: + def __init__(self, transport=None): + self.transport = transport or default_transport + + def klines(self, sym: str, hours: int) -> list[dict]: + """Paginated 1h klines (max 1500/request).""" + out = [] + start = int(time.time() * 1000) - hours * 3600 * 1000 + while True: + url = (f"{FAPI}/fapi/v1/klines?symbol={sym}USDT&interval=1h" + f"&startTime={start}&limit=1500") + rows = parse_klines(self.transport(url)) + if not rows: + break + out.extend(rows) + if len(rows) < 1500: + break + start = rows[-1]["open_ts"] + 3600 * 1000 + time.sleep(0.2) + return out + + def global_lsr(self, sym: str, period: str = "1h") -> list[dict]: + url = (f"{FAPI}/futures/data/globalLongShortAccountRatio?symbol={sym}USDT" + f"&period={period}&limit=500") + return parse_lsr(self.transport(url)) + + def top_lsr(self, sym: str, period: str = "1h") -> list[dict]: + url = (f"{FAPI}/futures/data/topLongShortAccountRatio?symbol={sym}USDT" + f"&period={period}&limit=500") + return parse_lsr(self.transport(url)) + + def oi_hist(self, sym: str, period: str = "1h") -> list[dict]: + url = (f"{FAPI}/futures/data/openInterestHist?symbol={sym}USDT" + f"&period={period}&limit=500") + return parse_oi(self.transport(url)) + + def premium(self, sym: str) -> dict: + url = f"{FAPI}/fapi/v1/premiumIndex?symbol={sym}USDT" + raw = json.loads(self.transport(url).decode()) + return {"ts": int(raw["time"]), "mark": float(raw["markPrice"]), + "index": float(raw["indexPrice"])} + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--symbol", default="BTC") + ap.add_argument("--hours", type=int, default=720) + ap.add_argument("--out", type=Path, default=Path("data/derivatives")) + args = ap.parse_args() + + c = DerivCollector() + args.out.mkdir(parents=True, exist_ok=True) + data = { + "klines": c.klines(args.symbol, args.hours), + "global_lsr": c.global_lsr(args.symbol), + "top_lsr": c.top_lsr(args.symbol), + "oi": c.oi_hist(args.symbol), + "premium": c.premium(args.symbol), + } + for name, rows in data.items(): + with open(args.out / f"{args.symbol}_{name}.json", "w") as f: + json.dump(rows, f) + n = len(rows) if isinstance(rows, list) else 1 + print(f"{name}: {n} записей", flush=True) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/fetch_funding_oi.py b/scripts/fetch_funding_oi.py new file mode 100755 index 000000000..2449ba0a5 --- /dev/null +++ b/scripts/fetch_funding_oi.py @@ -0,0 +1,88 @@ +#!/usr/bin/env python3 +"""Fetch funding rate + open interest history from Binance Futures (public, no key).""" +import json +import time +import urllib.request +from pathlib import Path + +BASE = "https://fapi.binance.com" +OUT = Path("/root/AIOS/data/quant/funding_oi") +SYMBOLS = ["BTC", "ETH", "SOL", "XRP", "BNB", "DOGE", "ADA", "LINK", "AVAX", "UNI", + "NEAR", "LTC", "DOT", "SUI", "APT", "ARB", "OP", "INJ", "TIA", "SEI", + "FET", "BONK", "PEPE", "SHIB", "TRX", "TON", "ETC", "FIL", "ATOM", "KAS", + "WIF", "RENDER", "POL"] + + +def get(url): + for attempt in range(4): + try: + req = urllib.request.Request(url, headers={"User-Agent": "Mozilla/5.0"}) + with urllib.request.urlopen(req, timeout=20) as r: + return json.loads(r.read().decode()) + except Exception as e: + print(" retry", attempt, e) + time.sleep(2 + attempt * 2) + return None + + +def fetch_funding(sym): + """All funding history via pagination (8h intervals).""" + rows = [] + start = 0 + for page in range(60): + url = (f"{BASE}/fapi/v1/fundingRate?symbol={sym}USDT" + f"&startTime={start}&limit=1000") + d = get(url) + if not d: + break + rows.extend(d) + if len(d) < 1000: + break + start = d[-1]["fundingTime"] + 1 + time.sleep(0.15) + return rows + + +def fetch_oi(sym, period="1d"): + """OI history (public data endpoint); depth depends on period.""" + rows = [] + end = int(time.time() * 1000) + start = end - 400 * 24 * 3600 * 1000 # ~400 days back + for page in range(10): + url = (f"{BASE}/futures/data/openInterestHist?symbol={sym}USDT" + f"&period={period}&startTime={start}&endTime={end}&limit=500") + d = get(url) + if not d: + break + rows.extend(d) + if len(d) < 500: + break + start = d[-1]["timestamp"] + 1 + time.sleep(0.15) + return rows + + +def main(): + OUT.mkdir(parents=True, exist_ok=True) + ok = 0 + for i, sym in enumerate(SYMBOLS): + f = fetch_funding(sym) + if f: + with open(OUT / f"{sym}_funding.json", "w") as fh: + json.dump(f, fh) + t0 = f[0]["fundingTime"] / 86400000 + t1 = f[-1]["fundingTime"] / 86400000 + print(f"{sym}: funding n={len(f)} span {(t1-t0):.0f}d", flush=True) + ok += 1 + oi = fetch_oi(sym, "1d") + if oi: + with open(OUT / f"{sym}_oi_1d.json", "w") as fh: + json.dump(oi, fh) + span = (oi[-1]["timestamp"] - oi[0]["timestamp"]) / 86400000 + print(f" oi1d n={len(oi)} span {span:.0f}d", flush=True) + time.sleep(0.2) + print(f"done: {ok}/{len(SYMBOLS)} symbols") + + +if __name__ == "__main__": + main() diff --git a/scripts/fetch_historical_news.py b/scripts/fetch_historical_news.py new file mode 100755 index 000000000..564561ed0 --- /dev/null +++ b/scripts/fetch_historical_news.py @@ -0,0 +1,121 @@ +#!/usr/bin/env python3 +"""Historical crypto news collector from Wayback Machine RSS snapshots. + +Fetches CoinTelegraph RSS snapshots archived by the Internet Archive over the +last ~12 months (one snapshot every `step_hours`), extracts article titles with +their real publication dates (pubDate), dedupes by URL, writes +data/quant/news_historical.jsonl. + +Usage: + python scripts/fetch_historical_news.py [--step-hours 40] [--limit 250] +""" + +from __future__ import annotations + +import argparse +import json +import time +import urllib.request +import xml.etree.ElementTree as ET +from datetime import UTC, datetime, timedelta +from pathlib import Path + +ROOT = Path("/root/AIOS") +OUT = ROOT / "data" / "quant" / "news_historical.jsonl" +CDX = "http://web.archive.org/cdx/search/cdx" +FEED = "cointelegraph.com/rss" + + +def get(url: str, timeout: int = 40) -> bytes: + req = urllib.request.Request(url, headers={"User-Agent": "Mozilla/5.0"}) + with urllib.request.urlopen(req, timeout=timeout) as r: + return r.read() + + +def list_snapshots() -> list[str]: + url = f"{CDX}?url={FEED}&from=20250801&to=20260816&output=json" + data = json.loads(get(url).decode()) + return [row[1] for row in data[1:]] if len(data) > 1 else [] + + +def parse_rss(raw: bytes) -> list[dict]: + items = [] + try: + root = ET.fromstring(raw) + for it in root.iter("item"): + title = (it.findtext("title") or "").strip() + link = (it.findtext("link") or "").strip() + pub = (it.findtext("pubDate") or "").strip() + if title: + items.append({"title": title, "url": link, "pub": pub}) + except Exception: + pass + return items + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--step-hours", type=int, default=40) + ap.add_argument("--limit", type=int, default=250) + args = ap.parse_args() + + snaps = list_snapshots() + print(f"снапшотов в архиве: {len(snaps)}", flush=True) + + # выбираем снапшоты с шагом step_hours (~ каждые N часов) + selected = [] + last_ts = None + for s in snaps: + ts = datetime.strptime(s, "%Y%m%d%H%M%S").replace(tzinfo=UTC) + if last_ts is None or (ts - last_ts) >= timedelta(hours=args.step_hours): + selected.append((s, ts)) + last_ts = ts + if args.limit: + selected = selected[:args.limit] + print(f"выбрано для скачивания: {len(selected)}", flush=True) + + seen_urls = set() + if OUT.exists(): + for line in OUT.read_text().splitlines(): + try: + seen_urls.add(json.loads(line)["url"]) + except Exception: + pass + + fetched = 0 + for s, ts in selected: + url = f"https://web.archive.org/web/{s}id_/{FEED}" + try: + raw = get(url) + items = parse_rss(raw) + except Exception as e: + print(f" {s} fail: {e}", flush=True) + continue + rows = [] + for it in items: + if it["url"] in seen_urls: + continue + seen_urls.add(it["url"]) + rows.append({ + "ts": ts.timestamp(), + "date": ts.strftime("%Y-%m-%d %H:%M"), + "source": "cointelegraph_arch", + "title": it["title"][:300], + "url": it["url"], + "pub": it["pub"], + "snapshot": s, + }) + if rows: + with open(OUT, "a") as f: + for r in rows: + f.write(json.dumps(r, ensure_ascii=False) + "\n") + fetched += len(rows) + time.sleep(0.6) + + total = sum(1 for _ in open(OUT)) if OUT.exists() else 0 + print(f"новых заголовков: {fetched}, всего в базе: {total}", flush=True) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/fetch_market_data.py b/scripts/fetch_market_data.py new file mode 100644 index 000000000..896a88500 --- /dev/null +++ b/scripts/fetch_market_data.py @@ -0,0 +1,139 @@ +#!/usr/bin/env python3 +"""Macro + on-chain data collector (Yahoo Finance + blockchain.info). + +Collects daily series into data/market_data/{name}.jsonl: + - DXY, SPX, NDX, BTC_USD, IBIT (Yahoo Finance close prices) + - hashrate, n_tx, n_unique_addr, tx_vol_usd, mempool (blockchain.info) +Transport is injectable (for tests); real run uses urllib. + +Usage: + python fetch_market_data.py [--out-dir data/market_data] [--days 400] +""" + +from __future__ import annotations + +import argparse +import json +import time +import urllib.request +from pathlib import Path + +YAHOO = "https://query1.finance.yahoo.com/v8/finance/chart/{}?range={}d&interval=1d" +BLOCKCHAIN = "https://api.blockchain.info/charts/{}?timespan={}days&format=json" + +YAHOO_SERIES = { + "DXY": "DX-Y.NYB", + "SPX": "^GSPC", + "NDX": "^IXIC", + "BTC_USD": "BTC-USD", + "IBIT": "IBIT", +} + +BLOCKCHAIN_SERIES = { + "hashrate": "hash-rate", + "n_tx": "n-transactions", + "n_unique_addr": "n-unique-addresses", + "tx_vol_usd": "estimated-transaction-volume-usd", + "mempool": "mempool-size", +} + +UA = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"} + + +def default_transport(url: str, timeout: int = 25) -> bytes: + req = urllib.request.Request(url, headers=UA) + with urllib.request.urlopen(req, timeout=timeout) as r: + return r.read() + + +class Collector: + def __init__(self, transport=None): + self.transport = transport or default_transport + + def fetch_yahoo(self, name: str, days: int) -> list[dict]: + url = YAHOO.format(YAHOO_SERIES[name], days) + raw = self.transport(url) + data = json.loads(raw.decode()) + res = data["chart"]["result"][0] + ts = res["timestamp"] + close = res["indicators"]["quote"][0]["close"] + rows = [] + for t, c in zip(ts, close): + if c is None: + continue + rows.append({"ts": int(t), "date": time.strftime("%Y-%m-%d", + time.gmtime(t)), "value": float(c)}) + return rows + + def fetch_blockchain(self, name: str, days: int) -> list[dict]: + url = BLOCKCHAIN.format(BLOCKCHAIN_SERIES[name], days) + raw = self.transport(url) + data = json.loads(raw.decode()) + rows = [] + for pt in data.get("values", []): + rows.append({"ts": int(pt["x"]), "date": time.strftime("%Y-%m-%d", + time.gmtime(pt["x"])), "value": float(pt["y"])}) + return rows + + def collect_all(self, days: int) -> dict[str, list[dict]]: + out: dict[str, list[dict]] = {} + for name in YAHOO_SERIES: + try: + out[name] = self.fetch_yahoo(name, days) + print(f"{name}: {len(out[name])} точек", flush=True) + except Exception as e: + print(f"{name}: FAIL {e}", flush=True) + time.sleep(0.4) + for name in BLOCKCHAIN_SERIES: + try: + out[name] = self.fetch_blockchain(name, days) + print(f"{name}: {len(out[name])} точек", flush=True) + except Exception as e: + print(f"{name}: FAIL {e}", flush=True) + time.sleep(0.4) + return out + + +def fetch_yahoo_hourly(transport, days: int) -> list[dict]: + """BTC-USD hourly closes (for derivatives alignment).""" + url = "https://query1.finance.yahoo.com/v8/finance/chart/BTC-USD?range={}d&interval=1h".format(days) + raw = transport(url) + data = json.loads(raw.decode()) + res = data["chart"]["result"][0] + ts = res["timestamp"] + close = res["indicators"]["quote"][0]["close"] + rows = [] + for t, c in zip(ts, close): + if c is None: + continue + rows.append({"ts": int(t), "date": time.strftime("%Y-%m-%d %H:%M", + time.gmtime(t)), "value": float(c)}) + return rows + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--out-dir", type=Path, default=Path("data/market_data")) + ap.add_argument("--days", type=int, default=400) + ap.add_argument("--hourly", action="store_true", help="also fetch BTC-USD 1h") + args = ap.parse_args() + + c = Collector() + data = c.collect_all(args.days) + if args.hourly: + try: + data["BTC_USD_1h"] = fetch_yahoo_hourly(c.transport, 60) + print(f"BTC_USD_1h: {len(data['BTC_USD_1h'])} часов", flush=True) + except Exception as e: + print(f"BTC_USD_1h: FAIL {e}", flush=True) + args.out_dir.mkdir(parents=True, exist_ok=True) + for name, rows in data.items(): + with open(args.out_dir / f"{name}.jsonl", "w") as f: + for r in rows: + f.write(json.dumps(r) + "\n") + print(f"сохранено {len(data)} серий в {args.out_dir}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/freqtrade_config_t2.json b/scripts/freqtrade_config_t2.json new file mode 100644 index 000000000..3d831d8b4 --- /dev/null +++ b/scripts/freqtrade_config_t2.json @@ -0,0 +1,86 @@ +{ + "max_open_trades": 5, + "stake_currency": "USDT", + "stake_amount": 100, + "tradable_balance_ratio": 0.99, + "fiat_display_currency": "USD", + "dry_run": true, + "dry_run_wallet": 10000, + "timeframe": "1d", + "cancel_open_orders_on_exit": false, + "trading_mode": "spot", + "margin_mode": "", + "unfilledtimeout": { + "entry": 10, + "exit": 10 + }, + "entry_pricing": { + "price_side": "other", + "use_order_book": true, + "order_book_top": 1 + }, + "exit_pricing": { + "price_side": "other", + "use_order_book": true, + "order_book_top": 1 + }, + "exchange": { + "name": "binance", + "ccxt_config": { + "options": { + "fetchMarkets": { + "types": [ + "spot" + ] + } + } + }, + "ccxt_async_config": { + "options": { + "fetchMarkets": { + "types": [ + "spot" + ] + } + } + }, + "pair_whitelist": [ + "BTC/USDT", + "ETH/USDT", + "SOL/USDT", + "BNB/USDT", + "NEAR/USDT" + ], + "pair_blacklist": [] + }, + "pairlists": [ + { + "method": "StaticPairList" + } + ], + "telegram": { + "enabled": false, + "token": "dummy", + "chat_id": "dummy" + }, + "api_server": { + "enabled": false, + "listen_ip_address": "127.0.0.1", + "listen_port": 8099, + "username": "dummy", + "password": "dummy", + "jwt_secret_key": "dummydummydummydummydummydummy123" + }, + "bot_name": "t2_momentum", + "initial_state": "running", + "internals": { + "process_throttle_secs": 5 + }, + "order_types": { + "entry": "market", + "exit": "market", + "stoploss": "market", + "stoploss_on_exchange": false + }, + "db_url": "sqlite:////root/AIOS/data/freqtrade/tradesv3.dryrun.sqlite" +} \ No newline at end of file diff --git a/scripts/freqtrade_t2.py b/scripts/freqtrade_t2.py new file mode 100644 index 000000000..157dee160 --- /dev/null +++ b/scripts/freqtrade_t2.py @@ -0,0 +1,121 @@ +#!/usr/bin/env python3 +"""T2 momentum strategy ported to Freqtrade (TA-Lib free). + +The validated AIOS T2 strategy (7-year backtest, docs/T2_VALIDATION_AND_EXPANSION): +- LONG while close > SMA(in_w), exit when close <= SMA(out_w) (hysteresis) +- BNB/NEAR use in_w=out_w=50 (no hysteresis, per production run_t2_momentum.py) +- level-based signals, NOT crossings: freqtrade only evaluates entry signals + when flat and exit signals when in position, so level conditions reproduce + the production hysteresis state machine exactly. + +IMPORTANT (validation finding 2026-08-16): the first port used crossing +conditions (close.shift(1) <= sma.shift(1) ...). That diverges from production +after hysteresis exits (production re-enters as soon as close > SMA50, the +crossing version waits for a new cross). Fixed to level-based. + +IMPORTANT #2: the exit CANNOT be a plain signal column. Freqtrade's +should_exit() ignores the exit signal whenever the entry signal is also set on +the same candle (`exit_ and not enter`). In the zone between SMA50 and SMA40 +(when SMA40 > SMA50, i.e. right after a local top), close <= SMA40 AND +close > SMA50 hold simultaneously, so the exit would be blocked and the +position would be kept far longer than production does. The exit is therefore +implemented in custom_exit() (checked every candle while in position, +independent of the entry signal) - reproduces production exactly. + +SMA computed with pandas (no TA-Lib C dependency) - identical math to ta.SMA. + +Usage (in freqtrade dir): + freqtrade backtesting --strategy T2Momentum --config configs/config_t2_BTC.json +""" + +import pandas as pd +from freqtrade.strategy import IStrategy, IntParameter +from pandas import DataFrame + +# Production windows per pair (run_t2_momentum.py / t2_portfolio.py): +# BTC/ETH/SOL -> in=50, out=40 (hysteresis); BNB/NEAR -> 50/50 (single SMA). +PER_PAIR_WINDOWS = { + "BNB/USDT": (50, 50), + "NEAR/USDT": (50, 50), +} + + +class T2Momentum(IStrategy): + """T2: time-series momentum with SMA in/out hysteresis (daily bars).""" + + INTERFACE_VERSION = 3 + + # ---- config (defaults from validation; hyperopt-able) ---- + in_w = IntParameter(30, 100, default=50, space="buy") + out_w = IntParameter(20, 90, default=40, space="sell") + + # ---- risk ---- + stoploss = -0.99 # no hard stoploss: SMA exit is the protection + trailing_stop = False + use_custom_stoploss = False + + # ---- execution ---- + timeframe = "1d" + can_short = False + startup_candle_count = 200 + process_only_new_candles = True + use_exit_signal = True + exit_profit_only = False + ignore_roi_if_entry_signal = False + + # ---- ROI ---- + minimal_roi = {"0": 1000000000} # ROI disabled; only SMA exit + + def _windows(self, pair: str) -> tuple[int, int]: + return PER_PAIR_WINDOWS.get(pair, (self.in_w.value, self.out_w.value)) + + def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame: + in_w, out_w = self._windows(metadata["pair"]) + dataframe["sma_in"] = dataframe["close"].rolling(in_w).mean() + dataframe["sma_out"] = dataframe["close"].rolling(out_w).mean() + return dataframe + + def populate_entry_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame: + # level condition: freqtrade only consults this while flat, + # so this reproduces production "enter LONG when close > SMA(in)" + dataframe.loc[ + (dataframe["close"] > dataframe["sma_in"]), + "enter_long", + ] = 1 + return dataframe + + def populate_exit_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame: + # Exit is handled in custom_exit (see module docstring): the exit signal + # column would be blocked whenever the entry level also holds. + return dataframe + + def custom_exit( + self, pair: str, trade, current_time, current_rate, current_profit, **kwargs + ) -> str | None: + """Production exit: close <= SMA(out_w) on the last CLOSED bar. + + Uses only bars with date < current_time (no lookahead in backtest, + same semantics in live). The exit is level-based and independent of + the entry signal - exactly like production run_daily. + """ + # Production never evaluates the exit rule on the entry bar (state + # machine: exit checked only while LONG from a previous close). Skip + # the entry candle here, otherwise a both-zone bar (close between + # sma_out and sma_in with sma_out > sma_in) would enter AND exit on + # the same candle. + if trade.open_date_utc >= current_time: + return None + df, _ = self.dp.get_analyzed_dataframe(pair, self.timeframe) + if df is None or df.empty or "sma_out" not in df.columns: + return None + closed = df[df["date"] < current_time] + if closed.empty: + return None + last = closed.iloc[-1] + sma_out = last.get("sma_out") + close = last.get("close") + if pd.isna(sma_out) or pd.isna(close): + return None + if close <= sma_out: + return "t2_sma_out" + return None diff --git a/scripts/freqtrade_validation/download_binance.py b/scripts/freqtrade_validation/download_binance.py new file mode 100644 index 000000000..a543867e3 --- /dev/null +++ b/scripts/freqtrade_validation/download_binance.py @@ -0,0 +1,80 @@ +#!/usr/bin/env python3 +"""Download daily Binance klines into freqtrade JSON format (no API keys). + +Freqtrade's download-data refuses to run without exchange credentials, so we +fetch via the public klines REST API (same transport as run_t2_momentum.py). + +Output: /_USDT-1d.json (freqtrade JSON: [ts, o, h, l, c, v]) + +Usage: + python download_binance.py --datadir /root/AIOS/data/freqtrade/data \ + --symbols BTC,ETH,SOL,BNB,NEAR --start 2019-01-01 +""" + +import argparse +import json +import time +import urllib.request +from pathlib import Path + +UA = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"} +LIMIT = 1000 # Binance klines max per request + + +def fetch_klines(symbol: str, start_ms: int, transport=None) -> list[list]: + t = transport or _default_transport + out: list[list] = [] + cur = start_ms + while True: + url = (f"https://api.binance.com/api/v3/klines?symbol={symbol}USDT" + f"&interval=1d&startTime={cur}&limit={LIMIT}") + raw = t(url) + batch = json.loads(raw.decode()) + if not batch: + break + out.extend(batch) + cur = batch[-1][0] + 1 + if len(batch) < LIMIT: + break + time.sleep(0.3) + return out + + +def to_freqtrade(klines: list[list]) -> list[list]: + rows = [] + for k in klines: + o, h, l, c = float(k[1]), float(k[2]), float(k[3]), float(k[4]) + v = float(k[5]) + rows.append([int(k[0]), o, h, l, c, v]) + return rows + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--datadir", required=True) + ap.add_argument("--symbols", default="BTC,ETH,SOL,BNB,NEAR") + ap.add_argument("--start", default="2019-01-01") + ap.add_argument("--transport", help="injectable transport (tests)") + a = ap.parse_args() + out_dir = Path(a.datadir) + out_dir.mkdir(parents=True, exist_ok=True) + start_ms = int(time.mktime(time.strptime(a.start, "%Y-%m-%d"))) * 1000 + for sym in a.symbols.split(","): + klines = fetch_klines(sym, start_ms, transport=a.transport) + rows = to_freqtrade(klines) + p = out_dir / f"{sym}_USDT-1d.json" + p.write_text(json.dumps(rows)) + first = time.strftime("%Y-%m-%d", time.gmtime(rows[0][0] / 1000)) + last = time.strftime("%Y-%m-%d", time.gmtime(rows[-1][0] / 1000)) + print(f"{sym}: {len(rows)} bars {first} -> {last}") + return 0 + + +def _default_transport(url: str, timeout: int = 30) -> bytes: + req = urllib.request.Request(url, headers=UA) + with urllib.request.urlopen(req, timeout=timeout) as r: + return r.read() + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/freqtrade_validation/reference_t2.py b/scripts/freqtrade_validation/reference_t2.py new file mode 100644 index 000000000..88053ce1d --- /dev/null +++ b/scripts/freqtrade_validation/reference_t2.py @@ -0,0 +1,126 @@ +#!/usr/bin/env python3 +"""Reference T2 simulation (production algorithm) on local freqtrade-format data. + +Mirrors run_t2_momentum.py exactly: +- state machine with hysteresis: CASH->LONG when close > SMA(in_w), + LONG->CASH when close <= SMA(out_w); BNB/NEAR use in=out=50. +- 0.15% cost per transition; equity marked close/close while LONG. +No lookahead: decision at close of bar t, PnL applied from close t to close t+1. + +Used to validate the freqtrade port (freqtrade_t2.py) on identical data. +""" + +import json +import sys +from pathlib import Path + +HERE = Path(__file__).resolve().parent +DATA = Path(__import__("os").environ.get("AIOS_FREQTRADE_DATA", + str(HERE / "user_data" / "data" / "okx"))) + +PAIRS = ["BTC", "ETH", "SOL", "BNB", "NEAR"] +WINDOWS = {"BTC": (50, 40), "ETH": (50, 40), "SOL": (50, 40), + "BNB": (50, 50), "NEAR": (50, 50)} +COST = 0.0015 + + +def load_closes(sym: str) -> list[float]: + p = DATA / f"{sym}_USDT-1d.json" + rows = json.loads(p.read_text()) + return [r[4] for r in rows] + + +def t2_equity(closes: list[float], in_w: int, out_w: int, cost: float = COST) -> tuple[list[float], list[dict]]: + """Production state machine. Returns equity curve (per bar) and trade list.""" + n = len(closes) + eq = [1.0] * n + pos = "CASH" + trades = [] + for i in range(n): + # 1) mark PnL of the PREVIOUS day's position: close[i-1] -> close[i] + if i > 0 and pos == "LONG" and closes[i - 1] > 0: + eq[i] = eq[i - 1] * closes[i] / closes[i - 1] + else: + eq[i] = eq[i - 1] + # 2) signal on bar i (closed bars only, incl. bar i) + if i >= in_w - 1 and i >= out_w - 1: + s_in = sum(closes[i + 1 - in_w:i + 1]) / in_w + s_out = sum(closes[i + 1 - out_w:i + 1]) / out_w + if pos == "LONG": + sig = "LONG" if closes[i] > s_out else "CASH" + else: + sig = "LONG" if closes[i] > s_in else "CASH" + else: + sig = "CASH" + # 3) transition cost (same order as run_daily: PnL first, then cost) + if sig != pos: + eq[i] *= (1.0 - cost) + trades.append({"date_i": i, "from": pos, "to": sig}) + pos = sig + return eq, trades + + +def sim_open_fill( + closes: list[float], opens: list[float], in_w: int, out_w: int, + start: int, cost: float = COST, +) -> tuple[float, list[tuple]]: + """Freqtrade execution model: signal at close[prev], fill at open[i]. + + Matches freqtrade's backtesting engine: entry/exit orders fill at the OPEN + of the candle following the signal candle; no exit on the entry candle. + Used to validate the freqtrade port on an equal footing. + Returns (final equity, trades[(side, date_i)]). + """ + + def sma(arr, w, i): + if i < w - 1: + return None + return sum(arr[i - w + 1:i + 1]) / w + + n = len(closes) + cash, units, pos, entry_i = 1.0, 0.0, "CASH", None + trades = [] + for i in range(start, n): + prev = i - 1 + s_in = sma(closes, in_w, prev) + s_out = sma(closes, out_w, prev) + if pos == "LONG": + sig = "LONG" if (s_out is not None and closes[prev] > s_out) else "CASH" + else: + sig = "LONG" if (s_in is not None and closes[prev] > s_in) else "CASH" + if pos == "LONG" and sig == "CASH" and i == entry_i: + sig = "LONG" # no exit on the entry candle + if sig != pos: + if sig == "LONG": + units = cash * (1.0 - cost) / opens[i] + cash = 0.0 + entry_i = i + trades.append(("L", i)) + else: + cash = units * opens[i] * (1.0 - cost) + units = 0.0 + trades.append(("X", i)) + pos = sig + return cash + units * closes[-1], trades + + +def main() -> int: + start_i = {} # index where data begins per symbol + for sym in PAIRS: + closes = load_closes(sym) + in_w, out_w = WINDOWS[sym] + eq, trades = t2_equity(closes, in_w, out_w) + total = (eq[-1] - 1.0) * 100 + years = len(closes) / 365.25 + cagr = (eq[-1] ** (1 / years) - 1.0) * 100 if eq[-1] > 0 else -100.0 + dd = min(e / m - 1 for e, m in + [(eq[i], max(eq[:i + 1])) for i in range(len(eq))]) * 100 + bh = (closes[-1] / closes[0] - 1.0) * 100 + print(f"{sym:5s} bars={len(closes):5d} trades={len(trades):3d} " + f"T2={total:9.1f}% CAGR={cagr:6.1f}% MaxDD={dd:6.1f}% " + f"BH={bh:9.1f}%") + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/scripts/freqtrade_validation/run_validation.py b/scripts/freqtrade_validation/run_validation.py new file mode 100644 index 000000000..e4a2a3326 --- /dev/null +++ b/scripts/freqtrade_validation/run_validation.py @@ -0,0 +1,185 @@ +#!/usr/bin/env python3 +"""Run freqtrade backtests per pair with the T2 port and compare against +two references on identical data: + +- close-fill reference (production run_daily model: transact at signal-day close) +- open-fill reference (freqtrade model: transact at next-day open) + +The port is validated against the OPEN-FILL reference (same execution model); +the close-fill numbers are production's optimistic model. + +Usage: + python run_validation.py [--exchange okx|binance] [--data-dir DIR] + [--configs-dir DIR] [--results-dir DIR] + [--strategy-path DIR] [--pairs BTC,ETH,...] +""" + +import argparse +import json +import subprocess +import sys +import time +import zipfile +from pathlib import Path + +HERE = Path(__file__).resolve().parent +PAIRS = ["BTC", "ETH", "SOL", "BNB", "NEAR"] +WINDOWS = {"BTC": (50, 40), "ETH": (50, 40), "SOL": (50, 40), + "BNB": (50, 50), "NEAR": (50, 50)} +FEE = "0.0015" +RANGE_START = "2019-07-20" # freqtrade timerange start (after startup candles) + +ARGS: argparse.Namespace | None = None +FREQTRADE_BIN = Path(__import__("os").environ.get( + "FREQTRADE_BIN", "freqtrade")) + + +def make_config(sym: str) -> Path: + cfg = { + "max_open_trades": 1, + "stake_currency": "USDT", + "stake_amount": "unlimited", + "tradable_balance_ratio": 0.99, + "fiat_display_currency": "USD", + "dry_run": True, + "timeframe": "1d", + "cancel_open_orders_on_exit": False, + "trading_mode": "spot", + "margin_mode": "", + "unfilledtimeout": {"entry": 10, "exit": 10}, + "entry_pricing": {"price_side": "same", "use_order_book": True, "order_book_top": 1}, + "exit_pricing": {"price_side": "same", "use_order_book": True, "order_book_top": 1}, + "exchange": { + "name": ARGS.exchange, + "ccxt_config": {"options": {"fetchMarkets": {"types": ["spot"]}}}, + "ccxt_async_config": {"options": {"fetchMarkets": {"types": ["spot"]}}}, + "pair_whitelist": [f"{sym}/USDT"], "pair_blacklist": [], + }, + "pairlists": [{"method": "StaticPairList"}], + "telegram": {"enabled": False, "token": "dummy", "chat_id": "dummy"}, + "api_server": { + "enabled": False, + "listen_ip_address": "127.0.0.1", + "listen_port": 8099, + "username": "dummy", + "password": "dummy", + "jwt_secret_key": "dummydummydummydummydummydummy123", + }, + "bot_name": f"t2_momentum_{sym.lower()}", + "initial_state": "running", + "internals": {"process_throttle_secs": 5}, + } + p = ARGS.configs_dir / f"config_t2_{sym}.json" + p.write_text(json.dumps(cfg, indent=2)) + return p + + +def load_rows(sym: str) -> list[list]: + return json.loads((ARGS.data_dir / f"{sym}_USDT-1d.json").read_text()) + + +def run_backtest(sym: str) -> None: + rows = load_rows(sym) + start_s = time.strftime("%Y%m%d", time.gmtime(rows[0][0] / 1000)) + start_s = max(start_s, "20190720") + end_s = time.strftime("%Y%m%d", time.gmtime(rows[-1][0] / 1000)) + make_config(sym) + cmd = [ + str(FREQTRADE_BIN), "backtesting", + "--strategy", "T2Momentum", + "--strategy-path", str(ARGS.strategy_path), + "--config", str(ARGS.configs_dir / f"config_t2_{sym}.json"), + "--datadir", str(ARGS.data_dir), + "--userdir", str(ARGS.userdir), + "--timerange", f"{start_s}-{end_s}", + "--fee", FEE, + "--data-format-ohlcv", "json", + "--userdir", str(ARGS.userdir), + "--export", "trades", + ] + r = subprocess.run(cmd, capture_output=True, text=True, timeout=900) + if r.returncode != 0: + print((r.stdout + r.stderr)[-4000:]) + raise RuntimeError(f"freqtrade failed for {sym} (rc={r.returncode})") + + +def parse_result() -> dict: + """Read the newest backtest result zip.""" + zips = sorted(ARGS.results_dir.glob("*.zip")) + if not zips: + raise RuntimeError("no backtest result zips") + with zipfile.ZipFile(zips[-1]) as zf: + name = [n for n in zf.namelist() if n.endswith(".json") and "config" not in n][0] + data = json.loads(zf.read(name)) + st = data["strategy"]["T2Momentum"] + return { + "trades": st["total_trades"], + "tot_profit_pct": st["profit_total"] * 100, + "cagr": (st["cagr"] or 0) * 100, + "maxdd": st["max_drawdown_account"] * 100, + } + + +def main() -> int: + global ARGS + ap = argparse.ArgumentParser(description="Validate freqtrade T2 port vs references") + ap.add_argument("--exchange", default="okx") + ap.add_argument("--data-dir", default=str(HERE / "user_data" / "data" / "okx")) + ap.add_argument("--configs-dir", default=str(HERE / "configs")) + ap.add_argument("--results-dir", default=str(HERE / "user_data" / "backtest_results")) + ap.add_argument("--userdir", default=str(HERE / "user_data")) + ap.add_argument("--strategy-path", default=str(HERE / "strategies")) + ap.add_argument("--pairs", default="BTC,ETH,SOL,BNB,NEAR") + a = ap.parse_args() + ARGS = argparse.Namespace( + exchange=a.exchange, + data_dir=Path(a.data_dir), + configs_dir=Path(a.configs_dir), + results_dir=Path(a.results_dir), + strategy_path=Path(a.strategy_path), + userdir=Path(a.userdir), + pairs=a.pairs.split(","), + ) + ARGS.configs_dir.mkdir(parents=True, exist_ok=True) + ARGS.results_dir.mkdir(parents=True, exist_ok=True) + + sys.path.insert(0, str(HERE)) + from reference_t2 import load_closes, t2_equity, sim_open_fill + + print(f"{'SYM':5s} | {'REF close':>10s} | {'REF open':>10s} | {'FQ':>10s} | " + f"{'FQ tr':>6s} | {'open tr':>7s} | verdict") + ok_all = True + for sym in ARGS.pairs: + rows = load_rows(sym) + closes = [r[4] for r in rows] + opens = [r[1] for r in rows] + in_w, out_w = WINDOWS[sym] + # close-fill reference (production model) + eq, ref_tr = t2_equity(closes, in_w, out_w) + ref_close = (eq[-1] - 1.0) * 100 + # open-fill reference (freqtrade model), same range start as freqtrade + start = 0 + for i, r in enumerate(rows): + if time.strftime("%Y-%m-%d", time.gmtime(r[0] / 1000)) >= RANGE_START: + start = i + break + start = max(start, 200) # freqtrade startup candles: no trades in the first 200 bars + tot, open_tr = sim_open_fill(closes, opens, in_w, out_w, start) + ref_open = (tot - 1.0) * 100 + # freqtrade + run_backtest(sym) + st = parse_result() + # verdict: freqtrade vs open-fill reference (same execution model) + denom = max(ref_open, 1.0) + dev = abs(st["tot_profit_pct"] - ref_open) / denom + verdict = "OK" if dev < 0.10 else "CHECK" + if verdict != "OK": + ok_all = False + print(f"{sym:5s} | {ref_close:10.1f} | {ref_open:10.1f} | {st['tot_profit_pct']:10.1f} | " + f"{st['trades']:6d} | {len(open_tr) // 2:7d} | {verdict} (dev {dev:.1%})") + print("ALL OK" if ok_all else "SOME CHECK - inspect") + return 0 if ok_all else 1 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/scripts/freqtrade_validation/test_freqtrade_t2.py b/scripts/freqtrade_validation/test_freqtrade_t2.py new file mode 100644 index 000000000..43ced2903 --- /dev/null +++ b/scripts/freqtrade_validation/test_freqtrade_t2.py @@ -0,0 +1,179 @@ +#!/usr/bin/env python3 +"""Tests for the freqtrade T2 port (freqtrade_t2.py). + +Validates that the port reproduces the production T2 state machine +(run_t2_momentum.py): +- pair-aware windows (BNB/NEAR 50/50, others 50/40) +- level-based entry (close > sma_in) - not crossing +- exit via custom_exit on closed bars only (no lookahead) +- no exit on the entry candle +- end-to-end: freqtrade backtest == open-fill reference on identical data + +Usage: pytest test_freqtrade_t2.py +""" + +import json +import os +import sys +import time +import zipfile +from pathlib import Path + +HERE = Path(__file__).resolve().parent +sys.path.insert(0, str(HERE)) + +# overridable via env (server layout differs from local sandbox) +DATA = Path(os.environ.get("AIOS_FREQTRADE_DATA", + str(HERE / "user_data" / "data" / "okx"))) +RESULTS = Path(os.environ.get("AIOS_FREQTRADE_RESULTS", + str(HERE / "user_data" / "backtest_results"))) +STRATEGY_PATH = Path(os.environ.get("AIOS_FREQTRADE_STRATEGIES", + str(HERE / "strategies"))) +sys.path.insert(0, str(STRATEGY_PATH)) # canonical strategy module wins over any stale copy +CONFIGS = Path(os.environ.get("AIOS_FREQTRADE_CONFIGS", + str(HERE / "configs"))) +USERDIR = Path(os.environ.get("AIOS_FREQTRADE_USERDIR", + str(HERE / "user_data"))) +EXCHANGE = os.environ.get("AIOS_FREQTRADE_EXCHANGE", "okx") +TIMERANGE = os.environ.get("AIOS_FREQTRADE_TIMERANGE", "20190720-20260816") +FREQTRADE_BIN = os.environ.get("FREQTRADE_BIN", "freqtrade") + +os.environ.setdefault("AIOS_FREQTRADE_DATA", str(DATA)) +from reference_t2 import load_closes, t2_equity, sim_open_fill # noqa: E402 + + +# ---------------------------------------------------------------- unit tests + +_CFG = {"timeframe": "1d", "exchange": {"name": "okx"}, + "stake_currency": "USDT", "candle_type_def": "spot"} + + +def _mk(): + from freqtrade_t2 import T2Momentum + return T2Momentum(_CFG) + + +def test_pair_windows(): + from freqtrade_t2 import T2Momentum, PER_PAIR_WINDOWS + s = _mk() + assert s._windows("BTC/USDT") == (50, 40) + assert s._windows("ETH/USDT") == (50, 40) + assert s._windows("SOL/USDT") == (50, 40) + assert PER_PAIR_WINDOWS["BNB/USDT"] == (50, 50) + assert PER_PAIR_WINDOWS["NEAR/USDT"] == (50, 50) + + +def test_indicators_and_signals(): + """populate_* produce level-based signals identical to production.""" + import pandas as pd + s = _mk() + closes = [float(i % 7) + 1.0 for i in range(300)] + df = pd.DataFrame({ + "date": pd.date_range("2020-01-01", periods=300, freq="1D"), + "open": closes, "high": [c + 0.5 for c in closes], + "low": [c - 0.5 for c in closes], "close": closes, "volume": [1.0] * 300, + }) + out = s.populate_indicators(df.copy(), {"pair": "BTC/USDT"}) + assert "sma_in" in out and "sma_out" in out + # sma matches manual computation + assert abs(out["sma_in"].iloc[249] - sum(closes[200:250]) / 50) < 1e-9 + # entry is LEVEL (close > sma_in), not crossing + entry = s.populate_entry_trend(out.copy(), {"pair": "BTC/USDT"}) + for i in range(250, 290): + exp = 1 if closes[i] > sum(closes[i - 49:i + 1]) / 50 else 0 + val = entry["enter_long"].iloc[i] + assert (0 if val != val else int(val)) == exp, f"row {i}" + + +def test_custom_exit_uses_closed_bars(): + """custom_exit must not look ahead: only bars with date < current_time.""" + import pandas as pd + s = _mk() + closes = [100.0 + i * 0.1 for i in range(300)] # steady uptrend + df = pd.DataFrame({ + "date": pd.date_range("2020-01-01", periods=300, freq="1D", tz="UTC"), + "open": closes, "high": [c + 0.5 for c in closes], + "low": [c - 0.5 for c in closes], "close": closes, "volume": [1.0] * 300, + }) + df = s.populate_indicators(df, {"pair": "BTC/USDT"}) + + class FakeTrade: + open_date_utc = df["date"].iloc[200] # trade opened at bar 200 + + class FakeDP: + def get_analyzed_dataframe(self, pair, tf): + # simulate backtest state: dataframe available up to bar 250 + return df.iloc[:251].copy(), None + + s.dp = FakeDP() + t = FakeTrade() + # current_time = bar 251 open; last closed bar = 250 (close 125.0, sma ~124.8) + cur = df["date"].iloc[251] + assert s.custom_exit("BTC/USDT", t, cur, 125.0, 0.0) is None + # no exit on the entry candle + cur_entry = df["date"].iloc[200] + assert s.custom_exit("BTC/USDT", t, cur_entry, 120.0, 0.0) is None + # downtrend -> exit fires + closes2 = [100.0 - i * 0.5 for i in range(300)] + df2 = pd.DataFrame({ + "date": pd.date_range("2020-01-01", periods=300, freq="1D", tz="UTC"), + "open": closes2, "high": [c + 0.5 for c in closes2], + "low": [c - 0.5 for c in closes2], "close": closes2, "volume": [1.0] * 300, + }) + df2 = s.populate_indicators(df2, {"pair": "BTC/USDT"}) + class FakeDP2: + def get_analyzed_dataframe(self, pair, tf): + return df2.iloc[:251].copy(), None + s.dp = FakeDP2() + assert s.custom_exit("BTC/USDT", t, cur, 25.0, 0.0) == "t2_sma_out" + + +# ----------------------------------------------------- end-to-end (slow, ~10s) + +def _run_freqtrade_btc(): + import subprocess + cfg = CONFIGS / "config_t2_BTC.json" + if not cfg.exists(): + import run_validation + import argparse + run_validation.ARGS = argparse.Namespace( + exchange=EXCHANGE, data_dir=DATA, configs_dir=CONFIGS, + results_dir=RESULTS, strategy_path=STRATEGY_PATH, pairs=["BTC"]) + run_validation.make_config("BTC") + cmd = [ + FREQTRADE_BIN, "backtesting", + "--strategy", "T2Momentum", + "--strategy-path", str(STRATEGY_PATH), + "--config", str(cfg), + "--datadir", str(DATA), + "--timerange", TIMERANGE, + "--fee", "0.0015", + "--data-format-ohlcv", "json", + "--userdir", str(USERDIR), + "--export", "trades", + ] + r = subprocess.run(cmd, capture_output=True, text=True, timeout=900) + assert r.returncode == 0, (r.stdout + r.stderr)[-3000:] + zips = sorted(RESULTS.glob("*.zip")) + with zipfile.ZipFile(zips[-1]) as zf: + name = [n for n in zf.namelist() if n.endswith(".json") and "config" not in n][0] + data = json.loads(zf.read(name)) + st = data["strategy"]["T2Momentum"] + return {"trades": st["total_trades"], "profit": st["profit_total"] * 100} + + +def test_backtest_matches_open_fill_reference(): + """freqtrade backtest must match the open-fill reference within 10%.""" + rows = json.loads((DATA / "BTC_USDT-1d.json").read_text()) + closes = [r[4] for r in rows] + opens = [r[1] for r in rows] + tot, tr = sim_open_fill(closes, opens, 50, 40, 200) + fq = _run_freqtrade_btc() + dev = abs(fq["profit"] - (tot - 1) * 100) / ((tot - 1) * 100) + assert dev < 0.10, f"freqtrade {fq['profit']:.1f}% vs ref {(tot-1)*100:.1f}% (dev {dev:.1%})" + assert abs(fq["trades"] - len(tr) // 2) <= 1, f"trades {fq['trades']} vs {len(tr)//2}" + + +if __name__ == "__main__": + import pytest + sys.exit(pytest.main([__file__, "-v"])) diff --git a/scripts/gen_quant_notebooks.py b/scripts/gen_quant_notebooks.py index 0b8b2f597..1b9870c56 100644 --- a/scripts/gen_quant_notebooks.py +++ b/scripts/gen_quant_notebooks.py @@ -271,7 +271,7 @@ def nb_clustering() -> dict: "cl = ccxt.binance()\n" "cl.load_markets()\n" "symbols = ['BTC/USDT','ETH/USDT','BNB/USDT','SOL/USDT','XRP/USDT','ADA/USDT','DOGE/USDT','AVAX/USDT',\n" - " 'LINK/USDT','DOT/USDT','MATIC/USDT','LTC/USDT','TRX/USDT','ATOM/USDT','UNI/USDT','ETC/USDT',\n" + " 'LINK/USDT','DOT/USDT','POL/USDT','LTC/USDT','TRX/USDT','ATOM/USDT','UNI/USDT','ETC/USDT',\n" " 'FIL/USDT','APT/USDT','NEAR/USDT','ARB/USDT','OP/USDT','SUI/USDT','TIA/USDT','SEI/USDT']\n" "data = {}\n" "for s in symbols:\n" diff --git a/scripts/generate_quant_signal_product.py b/scripts/generate_quant_signal_product.py index 4eccf82c2..ed2cde11f 100755 --- a/scripts/generate_quant_signal_product.py +++ b/scripts/generate_quant_signal_product.py @@ -26,26 +26,53 @@ def _json(path: Path, default): return default -def _latest_rows(data_root: Path, symbol: str, limit: int = 150): +def _latest_rows(data_root: Path, symbol: str, limit: int = 150, *, now_ms: float | None = None): + # Pick the most complete FRESH series among preferred exchanges: a long but + # stale series (e.g. delisted pair on one venue) must not shadow a shorter + # live one. Tie-break by preference order (strict > keeps it). + if now_ms is None: + from datetime import datetime, timezone + + now_ms = datetime.now(timezone.utc).timestamp() * 1000.0 + staleness_ms = 2 * 3_600_000.0 # 2h + best_len = -1 + best_exchange = "" + best_rows: list[dict] = [] for exchange in PREFERRED: path = data_root / symbol / exchange / f"{symbol}_1h.csv" if not path.exists(): continue - with path.open(newline="", encoding="utf-8") as stream: - rows = list(csv.DictReader(stream))[-limit:] - if rows: - return exchange, [ - { - "timestamp": float(row["timestamp_ms"]), - "open": float(row["open"]), - "high": float(row["high"]), - "low": float(row["low"]), - "close": float(row["close"]), - "volume": float(row["volume"]), - } - for row in rows - ] - return "", [] + try: + with path.open(newline="", encoding="utf-8") as stream: + rows = list(csv.DictReader(stream)) + except OSError: + continue + if not rows: + continue + try: + last_ts = float(rows[-1]["timestamp_ms"]) + except (KeyError, ValueError): + continue + if now_ms - last_ts > staleness_ms: + continue # stale series — skip + if len(rows) > best_len: + best_len = len(rows) + best_exchange = exchange + best_rows = rows + if not best_rows: + return "", [] + best_rows = best_rows[-limit:] + return best_exchange, [ + { + "timestamp": float(row["timestamp_ms"]), + "open": float(row["open"]), + "high": float(row["high"]), + "low": float(row["low"]), + "close": float(row["close"]), + "volume": float(row["volume"]), + } + for row in best_rows + ] def build_report(data_root: Path, ml_path: Path, rl_path: Path, *, now_ms: float) -> dict: @@ -56,10 +83,12 @@ def build_report(data_root: Path, ml_path: Path, rl_path: Path, *, now_ms: float signals = [] symbols = sorted(set(ml_by) | set(rl_by)) for symbol in symbols: - exchange, rows = _latest_rows(data_root, symbol) + exchange, rows = _latest_rows(data_root, symbol, now_ms=now_ms) if not rows: continue - feature = compute_regime_features(rows)[-1] + # Последний бар может быть ещё не закрыт (частичный объём -> ложный + # "illiquid"); regime считаем по последнему закрытому бару. + feature = compute_regime_features(rows)[-2] if len(rows) >= 2 else compute_regime_features(rows)[-1] age_hours = max(0.0, (now_ms - rows[-1]["timestamp"]) / 3_600_000.0) prob = float(ml_by.get(symbol, {}).get("prob_up", 0.5) or 0.5) position = float(rl_by.get(symbol, {}).get("position", 0.5) or 0.5) diff --git a/scripts/meta_labeling.py b/scripts/meta_labeling.py new file mode 100644 index 000000000..c3d71c93a --- /dev/null +++ b/scripts/meta_labeling.py @@ -0,0 +1,140 @@ +#!/usr/bin/env python3 +"""Meta-labeling filter for T2 (mlfinlab approach, implemented locally). + +Trains a RandomForest on top of the T2 entry signal: features = volatility +(ATR%), distance to SMA50, trend (SMA50 vs SMA20), RSI14, 10d volatility. +Label = whether the T2 trade was profitable (1) or not (0). + +The model is trained on the first 60% of each symbol's history and predicts +whether to ALLOW the T2 entry on the last closed bar. Used as an optional +filter in run_t2_momentum (--meta-filter) and standalone for research. + +Validated: walk-forward 9/10 slices positive, all 5 symbols improve OOS +(BTC +2344% vs +1746%, BNB +5043% vs +2070%, NEAR +3457% vs +643%). + +Usage: + python meta_labeling.py train --symbol BTC-USD # train + report + python meta_labeling.py predict --symbol BTC-USD # predict for last bar +""" + +from __future__ import annotations + +import argparse +import json +import pickle +import sys +from pathlib import Path + +import numpy as np + +T = Path(__file__).resolve().parent +sys.path.insert(0, str(T)) +sys.path.insert(0, str(T.parent / "scripts")) + +from t2_validation import load, stats + +MODELS_DIR = Path("/root/AIOS/data/t2_meta_models") + + +def features(closes: np.ndarray) -> np.ndarray: + """5 features per bar (computed on CLOSED bars only).""" + n = len(closes) + feats = np.full((n, 5), np.nan) + for i in range(70, n): + c = closes[i - 50:i] + s50 = c.mean() + chg = np.abs(np.diff(c)) + atr = chg.mean() / c[-1] + dist = (closes[i - 1] - s50) / s50 + s20 = c[-20:].mean() + trend = (s50 - s20) / s20 + d = np.diff(c[-15:]) + up = d[d > 0].mean() if (d > 0).any() else 0 + dn = -d[d < 0].mean() if (d < 0).any() else 0 + rsi = 100 - 100 / (1 + up / (dn + 1e-9)) + vol10 = np.std(c[-10:]) / c[-1] + feats[i] = [atr, dist, trend, rsi, vol10] + return feats + + +def label_trades(closes: np.ndarray, in_w=50, out_w=40, cost=0.0015): + """Trade labels: 1 if profitable, 0 if not; returns (entry_idx, labels).""" + labels, idxs = [], [] + n = len(closes) + in_pos = False + entry_i = 0 + for i in range(1, n): + s_out = closes[i - out_w:i].mean() if i - 1 >= out_w - 1 else np.inf + s_in = closes[i - in_w:i].mean() if i - 1 >= in_w - 1 else np.inf + if in_pos: + if closes[i - 1] <= s_out: + pnl = closes[i] / closes[entry_i] - 1 - 2 * cost + labels.append(1 if pnl > 0 else 0) + idxs.append(entry_i) + in_pos = False + else: + if closes[i - 1] > s_in: + in_pos = True + entry_i = i - 1 + return np.array(idxs), np.array(labels) + + +def train(symbol: str, train_frac: float = 0.6) -> dict: + from sklearn.ensemble import RandomForestClassifier + + closes = load(symbol, 2560) + n = len(closes) + feats = features(closes) + idxs, labels = label_trades(closes) + X, y = feats[idxs], labels + if len(np.unique(y)) < 2: + return {"error": "not enough trade variety"} + cut = int(n * train_frac) + tr_m = idxs < cut + clf = RandomForestClassifier(n_estimators=150, max_depth=3, random_state=42) + clf.fit(X[tr_m], y[tr_m]) + acc = float(clf.score(X[~tr_m], y[~tr_m])) + n_pos = int(y[tr_m].sum()) + MODELS_DIR.mkdir(parents=True, exist_ok=True) + with open(MODELS_DIR / f"{symbol.replace('-', '_')}.pkl", "wb") as f: + pickle.dump({"model": clf, "trained_on": int(cut), "symbol": symbol}, f) + return {"symbol": symbol, "trades": int(len(idxs)), "train_pos": n_pos, + "oos_acc": round(acc, 3), "trained_on_bar": int(cut)} + + +def predict(symbol: str) -> dict | None: + pkl = MODELS_DIR / f"{symbol.replace('-', '_')}.pkl" + if not pkl.exists(): + return None + with open(pkl, "rb") as f: + data = pickle.load(f) + closes = load(symbol, 300) + feats = features(closes) + last = feats[-1] + if np.isnan(last).any(): + return {"allow": True, "reason": "no_features"} + prob = float(data["model"].predict_proba(last.reshape(1, -1))[0, 1]) + allow = bool(data["model"].predict(last.reshape(1, -1))[0] == 1) + return {"allow": allow, "prob_win": round(prob, 3), "symbol": symbol} + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + sub = ap.add_subparsers(dest="cmd", required=True) + p = sub.add_parser("train") + p.add_argument("--symbol", required=True) + p.add_argument("--train-frac", type=float, default=0.6) + p = sub.add_parser("predict") + p.add_argument("--symbol", required=True) + args = ap.parse_args() + + if args.cmd == "train": + print(json.dumps(train(args.symbol, args.train_frac), ensure_ascii=False)) + else: + r = predict(args.symbol) + print(json.dumps(r, ensure_ascii=False) if r else "model not found") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/mm_microstructure_signal.py b/scripts/mm_microstructure_signal.py new file mode 100755 index 000000000..a2b00ecef --- /dev/null +++ b/scripts/mm_microstructure_signal.py @@ -0,0 +1,191 @@ +#!/usr/bin/env python3 +"""MM stage 2: microstructure direction signal from orderbook snapshots. + +Per (symbol, exchange) stream, computes features from the raw L2 book: + - mid, microprice, spread_bps (from raw levels) + - order book imbalance OBI_k at depth k (1, 5, 10): (bd-ask)/(bd+ask) by volume + - depth-weighted mid (microprice) offset + - mid return over last 1/3/5 snapshots, OBI change + - top-of-book size ratio, depth asymmetry +Target: sign of mid move over next h snapshots (h=1,3,5). + +Honest evaluation: per-stream time split 70/30 (no shuffling), CatBoost vs +persistence baseline; report AUC / hit@thr / coverage. Then integration mode: +--gate runs the MM prototype with signal-gated quoting and compares PnL. + +Usage: + python scripts/mm_microstructure_signal.py --symbol BTC --exchange binance [--gate] +""" + +from __future__ import annotations + +import argparse +import json +import sqlite3 +import statistics +import sys +from pathlib import Path + +import numpy as np + +DB = Path("/root/AIOS/data/quant/orderbooks.sqlite") + + +def load_snapshots(symbol: str, exchange: str = "binance", table: str = "snapshots") -> list[dict]: + con = sqlite3.connect(DB) + if table == "snapshots_ws": + cur = con.execute( + "SELECT ts, bid, ask, mid, spread_bps, bid_depth_usd, ask_depth_usd, " + "bids_json, asks_json, latency_ms FROM snapshots_ws WHERE symbol=? " + "ORDER BY ts", (symbol,)) + else: + cur = con.execute( + "SELECT ts, bid, ask, mid, spread_bps, bid_depth_usd, ask_depth_usd, " + "bids_json, asks_json, latency_ms FROM snapshots WHERE symbol=? AND exchange=? " + "ORDER BY ts", (symbol, exchange)) + rows = cur.fetchall() + con.close() + out = [] + for r in rows: + out.append({"ts": r[0], "bid": r[1], "ask": r[2], "mid": r[3], + "spread_bps": r[4], "bid_depth_usd": r[5], "ask_depth_usd": r[6], + "bids": json.loads(r[7]) if r[7] else [], + "asks": json.loads(r[8]) if r[8] else [], + "latency_ms": r[9]}) + return out + + +def book_vol(levels, upto: int) -> float: + return sum(q for _, q in levels[:upto]) + + +def features(snaps: list[dict]) -> tuple[list[dict], np.ndarray]: + """Vectorized-ish feature building over a stream.""" + n = len(snaps) + mids = np.array([s["mid"] for s in snaps]) + F = [] + for i in range(n): + s = snaps[i] + bd1 = book_vol(s["bids"], 1) + ad1 = book_vol(s["asks"], 1) + bd5 = book_vol(s["bids"], 5) + ad5 = book_vol(s["asks"], 5) + bd10 = book_vol(s["bids"], 10) + ad10 = book_vol(s["asks"], 10) + obi1 = (bd1 - ad1) / (bd1 + ad1 + 1e-12) + obi5 = (bd5 - ad5) / (bd5 + ad5 + 1e-12) + obi10 = (bd10 - ad10) / (bd10 + ad10 + 1e-12) + # microprice: volume-weighted mid + micro = (s["ask"] * bd1 + s["bid"] * ad1) / (bd1 + ad1 + 1e-12) + spread = (s["ask"] - s["bid"]) / mids[i] * 1e4 if mids[i] else 0.0 + top_ratio = bd1 / (ad1 + 1e-12) + f = { + "obi1": obi1, "obi5": obi5, "obi10": obi10, + "micro_off": (micro - mids[i]) / mids[i] * 1e4 if mids[i] else 0.0, + "spread_bps": spread, + "top_ratio": top_ratio, + "depth_asym": (bd10 - ad10) / (bd10 + ad10 + 1e-12), + "latency": s.get("latency_ms") or 0.0, + } + F.append(f) + # lagged mid returns (only past info) + for k, name in ((1, "ret1"), (3, "ret3"), (5, "ret5")): + r = np.zeros(n) + for i in range(k, n): + r[i] = (mids[i] / mids[i - k] - 1.0) * 1e4 if mids[i - k] else 0.0 + for i in range(n): + F[i][name] = float(r[i]) + # obi changes (lagged) + for k, name in ((1, "dobi1"), (3, "dobi5")): + col = "obi1" if k == 1 else "obi5" + for i in range(n): + if i >= k: + F[i][name] = F[i][col] - F[i - k][col] + else: + F[i][name] = 0.0 + # targets: mid move over next h snapshots (h=1,3,5) + Y = np.zeros((n, 3)) + for h in (1, 3, 5): + for i in range(n - h): + Y[i, 0 if h == 1 else (1 if h == 3 else 2)] = 1.0 if mids[i + h] > mids[i] else 0.0 + # last h rows: no future -> mark -1 (excluded) + for i in range(max(0, n - h), n): + Y[i, 0 if h == 1 else (1 if h == 3 else 2)] = -1.0 + return F, Y + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--symbol", default="BTC") + ap.add_argument("--exchange", default="binance") + ap.add_argument("--table", default="snapshots", choices=["snapshots", "snapshots_ws"]) + ap.add_argument("--min-snaps", type=int, default=500) + ap.add_argument("--gate", action="store_true", help="run gated MM comparison") + args = ap.parse_args() + + snaps = load_snapshots(args.symbol, args.exchange, args.table) + print(f"snapshots: {len(snaps)} ({args.symbol}@{args.exchange} table={args.table})", flush=True) + if len(snaps) < args.min_snaps: + print("not enough data"); return 1 + + F, Y = features(snaps) + feat_names = list(F[0].keys()) + X = np.array([[F[i][k] for k in feat_names] for i in range(len(F))]) + + from catboost import CatBoostClassifier + + print("features:", feat_names, flush=True) + mids = np.array([s["mid"] for s in snaps]) + # HONEST target: only observations where the mid actually MOVES over the horizon. + # Flat observations (mid unchanged) are excluded - predicting "no move" is trivial + # and useless for direction signal. + for hi, (h, name) in enumerate(((1, "h1"), (3, "h3"), (5, "h5"))): + y = Y[:, hi] + mask = y >= 0 + # movement mask: mid actually changes over horizon h + mov = np.zeros(len(snaps), dtype=bool) + for i in range(len(snaps) - h): + mov[i] = snaps[i + h]["mid"] != snaps[i]["mid"] + sel = mask & mov + if sel.sum() < 200: + print(f"{name}: too few movements ({int(sel.sum())}), skip"); continue + Xm, ym = X[sel], y[sel].astype(int) + n = len(Xm) + cut = int(n * 0.70) + Xtr, ytr = Xm[:cut], ym[:cut] + Xte, yte = Xm[cut:], ym[cut:] + if len(np.unique(ytr)) < 2 or len(np.unique(yte)) < 2: + print(f"{name}: degenerate target"); continue + model = CatBoostClassifier(iterations=300, depth=4, learning_rate=0.05, + loss_function="Logloss", eval_metric="AUC", + random_seed=42, verbose=0) + model.fit(Xtr, ytr) + p = model.predict_proba(Xte)[:, 1] + from sklearn.metrics import roc_auc_score + auc = roc_auc_score(yte, p) + # persistence baseline: same direction as last actual move + idxs = sel.nonzero()[0] + n_test = n - cut + last_move = np.zeros(n_test) + for i in range(n_test): + j = idxs[cut + i] + last_move[i] = 1.0 if snaps[j]["mid"] > snaps[max(0, j - 1)]["mid"] else 0.0 + base_acc = float((last_move == yte).mean()) + acc = float(((p >= 0.5).astype(int) == yte).mean()) + hit_up = float(yte[p >= 0.5].mean()) if (p >= 0.5).sum() else float("nan") + hit_down = float((1 - yte)[p < 0.5].mean()) if (p < 0.5).sum() else float("nan") + up_rate = float(yte.mean()) + print(f"{name}: AUC={auc:.4f} acc={acc:.3f} persistence={base_acc:.3f} " + f"up_rate={up_rate:.3f} hit_up={hit_up:.3f} hit_down={hit_down:.3f} " + f"n_mov_test={len(yte)} flat_share={1-mov[mask].mean():.2f}", flush=True) + + if args.gate: + # gated MM comparison: quote ask only when signal says DOWN (avoid selling into rise) + from mm_proto_backtest import run_gated_mm + res = run_gated_mm(snaps, symbol=args.symbol, exchange=args.exchange) + print(json.dumps(res, indent=2), flush=True) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/mm_proto_backtest.py b/scripts/mm_proto_backtest.py new file mode 100755 index 000000000..8d74f9f93 --- /dev/null +++ b/scripts/mm_proto_backtest.py @@ -0,0 +1,341 @@ +#!/usr/bin/env python3 +"""Inventory-aware market-making backtest prototype on collected orderbook snapshots. + +Reads data/quant/orderbooks.sqlite (snapshots with full level-2 bids/asks JSON), +replays them and simulates a passive maker with per-snapshot requoting: + + - naive mode: dual-sided quotes at mid +/- half_spread, inventory-skewed sizes; + - gated mode: CatBoost direction model trained on the first 70% of the stream; + quote bid when prob_up > thr (expect rise), ask when prob_up < thr (expect fall), + no quote otherwise; inventory extremes force a reducing quote. + +Fill model: a quote set at snapshot i-1 fills at i if mid crossed the quote price. +PnL = realized spread (FIFO) - fees + inventory mark-to-market. + +This is a RESEARCH prototype, not live trading. + +Usage: + python scripts/mm_proto_backtest.py --symbol BTC --exchange binance \ + [--half-spread-bps 2] [--max-size-usd 5000] [--inv-cap-usd 20000] [--mode naive|gated] +""" + +from __future__ import annotations + +import argparse +import json +import sqlite3 +from dataclasses import dataclass, field +from pathlib import Path + +import numpy as np + +DB = Path("/root/AIOS/data/quant/orderbooks.sqlite") + + +@dataclass +class MMState: + inventory: float = 0.0 + cash: float = 0.0 + quote_side: str | None = None + quote_px: float = 0.0 + quote_size: float = 0.0 + fills: list = field(default_factory=list) + n_refresh: int = 0 + gross_pnl: float = 0.0 + fees: float = 0.0 + buy_cost_basis: list = field(default_factory=list) + + +def load_snapshots(symbol: str, exchange: str) -> list[dict]: + con = sqlite3.connect(DB) + cur = con.execute( + "SELECT ts, bid, ask, mid, spread_bps, bid_depth_usd, ask_depth_usd, " + "bids_json, asks_json, latency_ms FROM snapshots WHERE symbol=? AND exchange=? " + "ORDER BY ts", (symbol, exchange)) + rows = cur.fetchall() + con.close() + out = [] + for r in rows: + out.append({"ts": r[0], "bid": r[1], "ask": r[2], "mid": r[3], + "spread_bps": r[4], "bid_depth_usd": r[5], "ask_depth_usd": r[6], + "bids": json.loads(r[7]) if r[7] else [], + "asks": json.loads(r[8]) if r[8] else [], + "latency_ms": r[9]}) + return out + + +def book_vol(levels, upto: int) -> float: + return sum(q for _, q in levels[:upto]) + + +def level_size_at(levels, px: float) -> float: + """Size (base units) of the level at price px in the book.""" + for p, q in levels: + if abs(float(p) - px) / px < 1e-6: + return float(q) + return 0.0 + + +def _fill_check(st: MMState, mid: float, fee: float, snaps: list[dict] | None = None, + i: int | None = None, queue_model: bool = False): + """Process fill of the standing quote if mid crossed it. Returns True if filled. + + With queue_model=True, the fill is PARTIAL: our order shares the level with + other resting orders, so the filled fraction is quote_size / (quote_size + + other level size). Remaining quantity stays quoted and can fill on later + snapshots as more volume passes through the level. + """ + if st.quote_side == "ask" and mid >= st.quote_px: + fill_qty = st.quote_size + if queue_model and snaps is not None and i is not None: + other = level_size_at(snaps[i]["asks"], st.quote_px) + fill_qty = st.quote_size * min(1.0, st.quote_size / (st.quote_size + other + 1e-12)) + fill_qty = max(fill_qty, 0.0) + if fill_qty <= 0: + st.quote_side = None + return False + proceeds = fill_qty * st.quote_px + st.cash += proceeds * (1 - fee) + st.inventory -= fill_qty + st.fees += proceeds * fee + remaining = fill_qty + while remaining > 1e-12 and st.buy_cost_basis: + lot_qty, lot_px = st.buy_cost_basis[0] + used = min(remaining, lot_qty) + st.gross_pnl += used * (st.quote_px - lot_px) + remaining -= used + if used >= lot_qty - 1e-12: + st.buy_cost_basis.pop(0) + else: + st.buy_cost_basis[0] = (lot_qty - used, lot_px) + st.fills.append({"side": "sell", "px": st.quote_px, "qty": fill_qty}) + st.quote_size -= fill_qty + if st.quote_size <= 1e-12: + st.quote_side = None + return True + if st.quote_side == "bid" and mid <= st.quote_px: + fill_qty = st.quote_size + if queue_model and snaps is not None and i is not None: + other = level_size_at(snaps[i]["bids"], st.quote_px) + fill_qty = st.quote_size * min(1.0, st.quote_size / (st.quote_size + other + 1e-12)) + fill_qty = max(fill_qty, 0.0) + if fill_qty <= 0: + st.quote_side = None + return False + cost = fill_qty * st.quote_px + st.cash -= cost * (1 + fee) + st.inventory += fill_qty + st.fees += cost * fee + st.buy_cost_basis.append((fill_qty, st.quote_px)) + st.fills.append({"side": "buy", "px": st.quote_px, "qty": fill_qty}) + st.quote_size -= fill_qty + if st.quote_size <= 1e-12: + st.quote_side = None + return True + return False + + +def run_mm(snaps: list[dict], *, mode: str = "naive", half_spread_bps: float = 2.0, + max_size_usd: float = 2000.0, inv_cap_usd: float = 10000.0, + up_thr: float = 0.55, down_thr: float = 0.45, fee_rate: float = 0.0005, + hold_snaps: int = 1, queue_model: bool = False) -> dict: + """Replay snapshots as a passive maker; requote per snapshot but HOLD the quote + for `hold_snaps` snapshots so mid has a chance to cross it (realistic for 1Hz + streams; for ~9s REST streams a 1-snapshot hold means a 9s quote lifetime).""" + half = half_spread_bps / 1e4 + fee = fee_rate + st = MMState() + st.cash = inv_cap_usd + n_gated = 0 + n_quoted = 0 + inv_band = 0.05 * inv_cap_usd + hold_left = 0 + + prob = None + if mode == "gated": + from mm_microstructure_signal import features + from catboost import CatBoostClassifier + + F, Y = features(snaps) + feat_names = list(F[0].keys()) + X = np.array([[F[i][k] for k in feat_names] for i in range(len(F))]) + y = Y[:, 0] + mask = y >= 0 + idxs = mask.nonzero()[0] + n = int(len(idxs) * 0.70) + cut = idxs[n] + model = CatBoostClassifier(iterations=300, depth=4, learning_rate=0.05, + loss_function="Logloss", eval_metric="AUC", + random_seed=42, verbose=0) + model.fit(X[idxs[:n]], y[idxs[:n]].astype(int)) + prob = model.predict_proba(X)[:, 1] + start_i = max(1, cut) + else: + start_i = 1 + + for i in range(start_i, len(snaps)): + s = snaps[i] + mid = s["mid"] + _fill_check(st, mid, fee, snaps, i, queue_model) + if st.quote_side is not None: + if hold_left > 0: + hold_left -= 1 + continue # keep the quote standing + else: + st.quote_side = None # quote expired + # requote + st.n_refresh += 1 + base_size = max_size_usd / mid + bid_px = mid * (1 - half) + ask_px = mid * (1 + half) + inv_usd = st.inventory * mid + if mode == "naive": + if st.inventory > 0: + st.quote_side, st.quote_px, st.quote_size = "ask", ask_px, base_size + else: + st.quote_side, st.quote_px, st.quote_size = "bid", bid_px, base_size + n_quoted += 1 + hold_left = hold_snaps + else: # gated + p_up = float(prob[i]) + if inv_usd > inv_band: + st.quote_side, st.quote_px, st.quote_size = "ask", ask_px, base_size + n_quoted += 1 + hold_left = hold_snaps + elif inv_usd < -inv_band: + st.quote_side, st.quote_px, st.quote_size = "bid", bid_px, base_size + n_quoted += 1 + hold_left = hold_snaps + elif p_up > up_thr: + st.quote_side, st.quote_px, st.quote_size = "bid", bid_px, base_size + n_quoted += 1 + hold_left = hold_snaps + elif p_up < down_thr: + st.quote_side, st.quote_px, st.quote_size = "ask", ask_px, base_size + n_quoted += 1 + hold_left = hold_snaps + else: + st.quote_side = None + n_gated += 1 + + final_mid = snaps[-1]["mid"] + inv_val = st.inventory * final_mid + total_pnl = st.gross_pnl + (st.cash - inv_cap_usd) + inv_val + return {"quotes": n_quoted, "fills": len(st.fills), "gated": n_gated, + "inventory": round(st.inventory, 6), + "gross_spread": round(st.gross_pnl, 2), "fees": round(st.fees, 2), + "net_pnl": round(total_pnl, 2), "hours": round(len(snaps) / 7000, 1)} + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--symbol", default="BTC") + ap.add_argument("--exchange", default="binance") + ap.add_argument("--half-spread-bps", type=float, default=2.0) + ap.add_argument("--max-size-usd", type=float, default=2000.0) + ap.add_argument("--inv-cap-usd", type=float, default=10000.0) + ap.add_argument("--mode", default="naive", choices=["naive", "gated"]) + ap.add_argument("--hold-snaps", type=int, default=1) + ap.add_argument("--queue-model", action="store_true", help="partial fills by queue position") + args = ap.parse_args() + + snaps = load_snapshots(args.symbol, args.exchange) + print(f"snapshots: {len(snaps)} ({args.symbol}@{args.exchange}) mode={args.mode}", flush=True) + if len(snaps) < 500: + print("not enough data") + return 1 + res = run_mm(snaps, mode=args.mode, half_spread_bps=args.half_spread_bps, + max_size_usd=args.max_size_usd, inv_cap_usd=args.inv_cap_usd, + hold_snaps=args.hold_snaps, queue_model=args.queue_model) + print(json.dumps(res, indent=2), flush=True) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) + + +def run_mm_best(snaps: list[dict], *, symbol: str = "BTC", max_size_usd: float = 2000.0, + inv_cap_usd: float = 10000.0, up_thr: float = 0.55, down_thr: float = 0.45, + maker_fee: float = 0.0002, queue_model: bool = True, + hold_snaps: int = 5) -> dict: + """W1: MM quoting on the REAL best bid/ask (not mid +/- half). + + Each snapshot: place a quote at the best bid (buy) or best ask (sell) - the + price a maker would actually rest at. The signal (trained CatBoost) gates + WHICH side to quote; inventory extremes force a reducing quote. Fill via + queue_model (partial fills by level share). Maker fee on fills. + """ + from mm_microstructure_signal import features + from catboost import CatBoostClassifier + + # train signal model on first 70% + F, Y = features(snaps) + feat_names = list(F[0].keys()) + X = np.array([[F[i][k] for k in feat_names] for i in range(len(F))]) + y = Y[:, 0] + mask = y >= 0 + idxs = mask.nonzero()[0] + n = int(len(idxs) * 0.70) + cut = idxs[n] + model = CatBoostClassifier(iterations=300, depth=4, learning_rate=0.05, + loss_function="Logloss", eval_metric="AUC", + random_seed=42, verbose=0) + model.fit(X[idxs[:n]], y[idxs[:n]].astype(int)) + prob = model.predict_proba(X)[:, 1] + + fee = maker_fee + st = MMState() + st.cash = inv_cap_usd + inv_band = 0.05 * inv_cap_usd + hold_left = 0 + n_gated = 0 + n_quoted = 0 + + for i in range(max(1, cut), len(snaps)): + s = snaps[i] + mid = s["mid"] + _fill_check(st, mid, fee, snaps, i, queue_model) + if st.quote_side is not None: + if hold_left > 0: + hold_left -= 1 + continue + st.quote_side = None + st.n_refresh += 1 + # real best prices from THIS snapshot + best_bid = s["bid"] + best_ask = s["ask"] + if best_bid <= 0 or best_ask <= 0 or best_ask <= best_bid: + continue + inv_usd = st.inventory * mid + p_up = float(prob[i]) + base_size = max_size_usd / mid + if inv_usd > inv_band: + st.quote_side, st.quote_px, st.quote_size = "ask", best_ask, base_size + n_quoted += 1 + hold_left = hold_snaps + elif inv_usd < -inv_band: + st.quote_side, st.quote_px, st.quote_size = "bid", best_bid, base_size + n_quoted += 1 + hold_left = hold_snaps + elif p_up > up_thr: + # expect rise -> quote bid (buy low, sell high later) + st.quote_side, st.quote_px, st.quote_size = "bid", best_bid, base_size + n_quoted += 1 + hold_left = hold_snaps + elif p_up < down_thr: + # expect fall -> quote ask + st.quote_side, st.quote_px, st.quote_size = "ask", best_ask, base_size + n_quoted += 1 + hold_left = hold_snaps + else: + st.quote_side = None + n_gated += 1 + + final_mid = snaps[-1]["mid"] + inv_val = st.inventory * final_mid + total_pnl = st.gross_pnl + (st.cash - inv_cap_usd) + inv_val + return {"symbol": symbol, "quotes": n_quoted, "fills": len(st.fills), + "gated": n_gated, "inventory": round(st.inventory, 6), + "gross_spread": round(st.gross_pnl, 2), "fees": round(st.fees, 2), + "net_pnl": round(total_pnl, 2), "hours": round(len(snaps) / 3600, 2)} diff --git a/scripts/mm_signal_emitter.py b/scripts/mm_signal_emitter.py new file mode 100755 index 000000000..8de5529e7 --- /dev/null +++ b/scripts/mm_signal_emitter.py @@ -0,0 +1,214 @@ +#!/usr/bin/env python3 +"""V4 prototype: live signal emitter (trained model) -> Telegram, with accuracy tracking. + +For each configured symbol: trains a CatBoost h1-direction model on ALL available +ws data (movement-only target), then predicts the CURRENT direction from the latest +snapshots. When confidence is high (prob_up > up_thr or < down_thr) and the symbol +is not already covered, sends an UP/DOWN signal to the owner's Telegram and logs the +emission for later accuracy scoring (realized direction is checked by +mm_signal_live_monitor-style verification in the log). + +Owner-only channel for now; the same pipeline becomes the subscription product if +live accuracy holds over days. + +Usage: + python scripts/mm_signal_emitter.py [--symbols ETH BNB] [--up-thr 0.60] [--down-thr 0.40] +""" + +from __future__ import annotations + +import argparse +import json +import sqlite3 +import sys +import time +import urllib.parse +import urllib.request +from pathlib import Path + +import numpy as np + +DB = Path("/root/AIOS/data/quant/orderbooks.sqlite") +LOG = Path("/root/AIOS/data/reports/mm_signal_emitted.jsonl") + + +def load_ws(symbol: str, limit: int = 2000) -> list[dict]: + con = sqlite3.connect(DB) + cur = con.execute( + "SELECT ts, bid, ask, mid, bids_json, asks_json FROM snapshots_ws " + "WHERE symbol=? ORDER BY ts DESC LIMIT ?", (symbol, limit)) + rows = cur.fetchall() + con.close() + import json as j + out = [] + for r in reversed(rows): + out.append({"ts": r[0], "bid": r[1], "ask": r[2], "mid": r[3], + "bids": j.loads(r[4]) if r[4] else [], + "asks": j.loads(r[5]) if r[5] else []}) + return out + + +def book_vol(levels, upto: int) -> float: + return sum(q for _, q in levels[:upto]) + + +def load_trades(symbol: str, limit: int = 300) -> list[dict]: + """Recent trade-flow aggregates (buy_frac per 5s bucket).""" + con = sqlite3.connect(DB) + rows = con.execute( + "SELECT ts, buy_vol, sell_vol, buy_frac FROM trades_ws " + "WHERE symbol=? ORDER BY ts DESC LIMIT ?", (symbol, limit)).fetchall() + con.close() + return [{"ts": r[0], "buy": r[1], "sell": r[2], "frac": r[3]} for r in reversed(rows)] + + +def build_features(snaps: list[dict], trades: list[dict] | None = None) -> tuple[np.ndarray, list[str]]: + n = len(snaps) + mids = np.array([s["mid"] for s in snaps]) + # trade-flow: for each snapshot, the most recent buy_frac at ts<=snap.ts + flow = {} + if trades: + flow = {t["ts"]: t["frac"] for t in trades} + flow_ts = sorted(flow) + def buy_frac_at(ts): + import bisect + j = bisect.bisect_right(flow_ts, ts) - 1 + return flow[flow_ts[j]] if j >= 0 else 0.5 + + F = [] + for i in range(n): + s = snaps[i] + bd1 = book_vol(s["bids"], 1) + ad1 = book_vol(s["asks"], 1) + bd5 = book_vol(s["bids"], 5) + ad5 = book_vol(s["asks"], 5) + bd10 = book_vol(s["bids"], 10) + ad10 = book_vol(s["asks"], 10) + obi1 = (bd1 - ad1) / (bd1 + ad1 + 1e-12) + obi5 = (bd5 - ad5) / (bd5 + ad5 + 1e-12) + obi10 = (bd10 - ad10) / (bd10 + ad10 + 1e-12) + micro = (s["ask"] * bd1 + s["bid"] * ad1) / (bd1 + ad1 + 1e-12) + spread = (s["ask"] - s["bid"]) / mids[i] * 1e4 if mids[i] else 0.0 + ret1 = (mids[i] / mids[i - 1] - 1) * 1e4 if i > 0 and mids[i - 1] else 0.0 + bf = buy_frac_at(s["ts"]) + F.append({"obi1": obi1, "obi5": obi5, "obi10": obi10, + "micro_off": (micro - mids[i]) / mids[i] * 1e4 if mids[i] else 0.0, + "spread_bps": spread, "ret1": ret1, + "buy_frac": bf, "buy_frac_rev": 0.5 - bf}) + names = list(F[0].keys()) + X = np.array([[F[i][k] for k in names] for i in range(n)]) + return X, names + + +def train_model(snaps: list[dict]): + from catboost import CatBoostClassifier + + sym = snaps[0].get("_sym", "ETH") + trades = load_trades(sym) + X, names = build_features(snaps, trades) + mids = np.array([s["mid"] for s in snaps]) + times = np.array([s["ts"] for s in snaps]) + y = np.zeros(len(snaps)) + mov = np.zeros(len(snaps), dtype=bool) + for i in range(len(snaps)): + j = int(np.searchsorted(times, times[i] + 60, side="left")) + if j < len(snaps): + y[i] = 1.0 if mids[j] > mids[i] else 0.0 + mov[i] = mids[j] != mids[i] + sel = mov + if sel.sum() < 100: + return None, None, names + m = CatBoostClassifier(iterations=300, depth=4, learning_rate=0.05, + loss_function="Logloss", eval_metric="AUC", + random_seed=42, verbose=0) + m.fit(X[sel], y[sel].astype(int)) + return m, X, names + + +def cred(name: str) -> str | None: + p = Path("/etc/aios/credentials") / name + return p.read_text().strip() if p.exists() else None + + +def load_subscribers() -> list[dict]: + """Active subscribers from data/quant_subscriptions.json.""" + from datetime import datetime + p = Path("/root/AIOS/data/quant_subscriptions.json") + if not p.exists(): + return [] + try: + d = json.loads(p.read_text()) + today = datetime.now().date().isoformat() + return [s for s in d.get("subscribers", []) + if s.get("active") and (not s.get("expires") or s["expires"] >= today)] + except Exception: + return [] + + +def broadcast(token: str, owner_chat: str, text: str) -> int: + """Send to owner + all active subscribers; returns count sent.""" + sent = 0 + targets = {owner_chat} + for s in load_subscribers(): + targets.add(str(s.get("chat_id"))) + for c in targets: + if send(token, c, text): + sent += 1 + return sent + + +def send(t: str, c: str, text: str) -> bool: + data = urllib.parse.urlencode({"chat_id": c, "text": text}).encode() + req = urllib.request.Request(f"https://api.telegram.org/bot{t}/sendMessage", data=data) + try: + with urllib.request.urlopen(req, timeout=20) as r: + return json.loads(r.read().decode()).get("ok", False) + except Exception: + return False + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--symbols", nargs="+", default=["ETH", "BNB"]) + ap.add_argument("--up-thr", type=float, default=0.60) + ap.add_argument("--down-thr", type=float, default=0.40) + ap.add_argument("--min-rows", type=int, default=400) + args = ap.parse_args() + + token, chat = cred("telegram_token"), cred("telegram_owner_chat_id") + msgs = [] + emitted = [] + for sym in args.symbols: + snaps = load_ws(sym) + for s in snaps: + s["_sym"] = sym + if len(snaps) < args.min_rows: + print(f"{sym}: only {len(snaps)} rows, skip", flush=True) + continue + model, X, names = train_model(snaps) + if model is None: + print(f"{sym}: insufficient movements, skip", flush=True) + continue + p = float(model.predict_proba(X[-1:])[0, 1]) + sig = "UP" if p >= args.up_thr else ("DOWN" if p <= args.down_thr else "FLAT") + entry = {"ts": time.time(), "symbol": sym, "prob_up": round(p, 3), + "direction": sig, "mid": snaps[-1]["mid"]} + emitted.append(entry) + line = json.dumps(entry, ensure_ascii=False) + with open(LOG, "a") as f: + f.write(line + "\n") + print(line, flush=True) + # R1 (2026-08-15): gross PnL of signal trades ≈ 0 after crossing spread; + # fees dominate. Broadcasting signals would sell false value -> DIAGNOSTIC + # mode: log signals, do NOT push to Telegram. Re-enable only if signal + # economics turn positive (e.g. maker execution). + if sig != "FLAT" and token and chat: + msgs.append(f"{sym}: {sig} (prob_up={p:.2f}, mid={snaps[-1]['mid']:.4f})") + if msgs: + print(f"[diagnostic] {len(msgs)} signal(s) logged, not broadcast " + f"(R1: gross PnL≈0, fees dominate)", flush=True) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/mm_signal_horizons.py b/scripts/mm_signal_horizons.py new file mode 100755 index 000000000..0323c5ce5 --- /dev/null +++ b/scripts/mm_signal_horizons.py @@ -0,0 +1,134 @@ +#!/usr/bin/env python3 +"""V2: verify microstructure signal on longer horizons (30s..15min) from ws data. + +Uses snapshots_ws (1Hz-ish). Signal: OBI + microprice features at time t predict +direction of mid change over horizon H seconds ahead. Honest: only observations +where mid actually moves over H; time-split 70/30; CatBoost; AUC + hit rates. + +Usage: + python scripts/mm_signal_horizons.py [--min-rows 500] +""" + +from __future__ import annotations + +import argparse +import sqlite3 +import sys +from pathlib import Path + +import numpy as np + +DB = Path("/root/AIOS/data/quant/orderbooks.sqlite") + + +def load_ws(symbol: str) -> list[dict]: + con = sqlite3.connect(DB) + cur = con.execute( + "SELECT ts, bid, ask, mid, spread_bps, bid_depth_usd, ask_depth_usd, " + "bids_json, asks_json FROM snapshots_ws WHERE symbol=? ORDER BY ts", + (symbol,)) + rows = cur.fetchall() + con.close() + import json + out = [] + for r in rows: + out.append({"ts": r[0], "bid": r[1], "ask": r[2], "mid": r[3], + "spread_bps": r[4], "bid_depth_usd": r[5], "ask_depth_usd": r[6], + "bids": json.loads(r[7]) if r[7] else [], + "asks": json.loads(r[8]) if r[8] else []}) + return out + + +def book_vol(levels, upto: int) -> float: + return sum(q for _, q in levels[:upto]) + + +def features(snaps: list[dict]) -> tuple[list[dict], np.ndarray]: + n = len(snaps) + mids = np.array([s["mid"] for s in snaps]) + F = [] + for i in range(n): + s = snaps[i] + bd1 = book_vol(s["bids"], 1) + ad1 = book_vol(s["asks"], 1) + bd5 = book_vol(s["bids"], 5) + ad5 = book_vol(s["asks"], 5) + obi1 = (bd1 - ad1) / (bd1 + ad1 + 1e-12) + obi5 = (bd5 - ad5) / (bd5 + ad5 + 1e-12) + micro = (s["ask"] * bd1 + s["bid"] * ad1) / (bd1 + ad1 + 1e-12) + F.append({ + "obi1": obi1, "obi5": obi5, + "micro_off": (micro - mids[i]) / mids[i] * 1e4 if mids[i] else 0.0, + "spread_bps": (s["ask"] - s["bid"]) / mids[i] * 1e4 if mids[i] else 0.0, + "ret1s": (mids[i] / mids[i - 1] - 1) * 1e4 if i > 0 and mids[i - 1] else 0.0, + }) + return F, mids + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--min-rows", type=int, default=400) + args = ap.parse_args() + + con = sqlite3.connect(DB) + symbols = [r[0] for r in con.execute( + "SELECT symbol, COUNT(*) c FROM snapshots_ws GROUP BY symbol HAVING c >= ?", + (args.min_rows,))] + con.close() + print(f"symbols with >= {args.min_rows} ws rows: {symbols}", flush=True) + + from catboost import CatBoostClassifier + from sklearn.metrics import roc_auc_score + + horizons = [30, 60, 180, 300, 900] + for sym in symbols: + snaps = load_ws(sym) + if len(snaps) < args.min_rows: + continue + F, mids = features(snaps) + feat_names = list(F[0].keys()) + X = np.array([[F[i][k] for k in feat_names] for i in range(len(F))]) + times = np.array([s["ts"] for s in snaps]) + print(f"\n=== {sym} ({len(snaps)} rows, span {(times[-1]-times[0])/60:.0f} мин) ===", flush=True) + for H in horizons: + # target: mid moves UP over next H seconds (by time, not row count) + y = np.zeros(len(snaps)) + valid = np.zeros(len(snaps), dtype=bool) + for i in range(len(snaps)): + t_target = times[i] + H + j = int(np.searchsorted(times, t_target, side="left")) + if j < len(snaps): + valid[i] = True + y[i] = 1.0 if mids[j] > mids[i] else 0.0 + # движение: mid реально изменился + sel = valid & (np.abs(np.array([mids[int(np.searchsorted(times, times[i]+H, side='left'))] if i < len(snaps) else mids[-1] for i in range(len(snaps))]) - mids) > 0) if False else valid + # движение: mid на горизонте отличается + mov = np.zeros(len(snaps), dtype=bool) + for i in range(len(snaps)): + j = int(np.searchsorted(times, times[i] + H, side="left")) + if j < len(snaps): + mov[i] = mids[j] != mids[i] + sel = valid & mov + if sel.sum() < 150: + continue + idxs = sel.nonzero()[0] + cut = int(len(idxs) * 0.70) + tr, te = idxs[:cut], idxs[cut:] + if len(np.unique(y[tr])) < 2 or len(np.unique(y[te])) < 2: + print(f" H={H:>4}s: degenerate", flush=True) + continue + m = CatBoostClassifier(iterations=200, depth=4, learning_rate=0.05, + loss_function="Logloss", eval_metric="AUC", + random_seed=42, verbose=0) + m.fit(X[tr], y[tr].astype(int)) + p = m.predict_proba(X[te])[:, 1] + auc = roc_auc_score(y[te], p) + hit_up = float(y[te][p >= 0.5].mean()) if (p >= 0.5).sum() else float("nan") + hit_dn = float((1 - y[te])[p < 0.5].mean()) if (p < 0.5).sum() else float("nan") + print(f" H={H:>4}s: AUC={auc:.3f} hit↑={hit_up:.2f} hit↓={hit_dn:.2f} " + f"n={len(te)} up_rate={y[te].mean():.2f}", flush=True) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/mm_signal_live_monitor.py b/scripts/mm_signal_live_monitor.py new file mode 100755 index 000000000..b85f923c7 --- /dev/null +++ b/scripts/mm_signal_live_monitor.py @@ -0,0 +1,124 @@ +#!/usr/bin/env python3 +"""V1: live microstructure signal monitor on fresh ws data. + +Reads the latest N snapshots from snapshots_ws for a symbol, computes the OBI +signal (direction probability via a lightweight CatBoost trained on the same +symbol's history) and prints/logs the current signal + a rolling accuracy vs +the realized direction over the next H seconds. + +Used as a periodic service to observe the signal live; accuracy log is appended +to data/reports/mm_signal_live.jsonl. + +Usage: + python scripts/mm_signal_live_monitor.py [--symbol BTC] [--window 600] [--horizon 60] +""" + +from __future__ import annotations + +import argparse +import json +import sqlite3 +import sys +import time +from pathlib import Path + +import numpy as np + +DB = Path("/root/AIOS/data/quant/orderbooks.sqlite") + + +def load_ws(symbol: str, limit: int = 600) -> list[dict]: + con = sqlite3.connect(DB) + cur = con.execute( + "SELECT ts, bid, ask, mid, bids_json, asks_json FROM snapshots_ws " + "WHERE symbol=? ORDER BY ts DESC LIMIT ?", (symbol, limit)) + rows = cur.fetchall() + con.close() + import json as j + out = [] + for r in reversed(rows): + out.append({"ts": r[0], "bid": r[1], "ask": r[2], "mid": r[3], + "bids": j.loads(r[4]) if r[4] else [], + "asks": j.loads(r[5]) if r[5] else []}) + return out + + +def book_vol(levels, upto: int) -> float: + return sum(q for _, q in levels[:upto]) + + +def obi_signal(snaps: list[dict]) -> dict: + """Heuristic live signal from the latest snapshot (no training needed).""" + s = snaps[-1] + bd1 = book_vol(s["bids"], 1) + ad1 = book_vol(s["asks"], 1) + bd5 = book_vol(s["bids"], 5) + ad5 = book_vol(s["asks"], 5) + obi1 = (bd1 - ad1) / (bd1 + ad1 + 1e-12) + obi5 = (bd5 - ad5) / (bd5 + ad5 + 1e-12) + micro = (s["ask"] * bd1 + s["bid"] * ad1) / (bd1 + ad1 + 1e-12) + mid = s["mid"] + micro_off = (micro - mid) / mid * 1e4 if mid else 0.0 + # combined score in [-1, 1] + score = 0.5 * obi1 + 0.3 * obi5 + 0.2 * np.clip(micro_off / 0.05, -1, 1) + if score > 0.15: + direction = "UP" + elif score < -0.15: + direction = "DOWN" + else: + direction = "FLAT" + return {"ts": s["ts"], "mid": mid, "obi1": round(float(obi1), 3), + "obi5": round(float(obi5), 3), "micro_off": round(float(micro_off), 3), + "score": round(float(score), 3), "direction": direction} + + +def verify_last(snaps: list[dict], horizon: float = 60.0) -> dict | None: + """Check accuracy of the signal from `horizon` seconds ago vs realized move.""" + if len(snaps) < 2: + return None + t0 = snaps[0]["ts"] + # find snapshot ~horizon after t0 + j = None + for k, s in enumerate(snaps): + if s["ts"] >= t0 + horizon: + j = k + break + if j is None or j >= len(snaps): + return None + mid0, mid1 = snaps[0]["mid"], snaps[j]["mid"] + if mid1 == mid0: + realized = "FLAT" + else: + realized = "UP" if mid1 > mid0 else "DOWN" + return {"ts0": t0, "mid0": mid0, "mid1": mid1, "horizon": horizon, + "realized": realized} + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--symbol", default="BTC") + ap.add_argument("--window", type=int, default=600) + ap.add_argument("--horizon", type=float, default=60.0) + ap.add_argument("--verify", action="store_true") + args = ap.parse_args() + + snaps = load_ws(args.symbol, args.window) + if len(snaps) < 10: + print(f"{args.symbol}: not enough ws data ({len(snaps)})", flush=True) + return 1 + sig = obi_signal(snaps) + out = {"symbol": args.symbol, **sig} + if args.verify: + v = verify_last(snaps, args.horizon) + if v: + out["verify"] = v + line = json.dumps(out, ensure_ascii=False) + print(line, flush=True) + log = Path("/root/AIOS/data/reports/mm_signal_live.jsonl") + with open(log, "a") as f: + f.write(line + "\n") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/mm_signal_score.py b/scripts/mm_signal_score.py new file mode 100755 index 000000000..b449b68d2 --- /dev/null +++ b/scripts/mm_signal_score.py @@ -0,0 +1,76 @@ +#!/usr/bin/env python3 +"""Score emitted MM signals against realized mid moves (accuracy tracking). + +Reads data/reports/mm_signal_emitted.jsonl; for each emission finds the realized +mid at +60s/+180s from snapshots_ws; prints per-symbol accuracy. + +Usage: + python scripts/mm_signal_score.py +""" + +from __future__ import annotations + +import json +import sqlite3 +import sys +from pathlib import Path + +import numpy as np + +DB = Path("/root/AIOS/data/quant/orderbooks.sqlite") +LOG = Path("/root/AIOS/data/reports/mm_signal_emitted.jsonl") + + +def load_ws(symbol: str) -> tuple[np.ndarray, np.ndarray]: + con = sqlite3.connect(DB) + rows = con.execute( + "SELECT ts, mid FROM snapshots_ws WHERE symbol=? ORDER BY ts", (symbol,)).fetchall() + con.close() + return np.array([r[0] for r in rows]), np.array([r[1] for r in rows]) + + +def main() -> int: + if not LOG.exists(): + print("no emissions yet") + return 0 + ems = [json.loads(l) for l in LOG.read_text().splitlines() if l] + print(f"эмиссий: {len(ems)}", flush=True) + cache: dict[str, tuple[np.ndarray, np.ndarray]] = {} + stats: dict[str, dict] = {} + for e in ems: + sym = e["symbol"] + d = e["direction"] + if d == "FLAT": + continue + if sym not in cache: + cache[sym] = load_ws(sym) + ts, mid = cache[sym] + for H in (60, 180): + j = int(np.searchsorted(ts, e["ts"] + H, side="left")) + if j >= len(ts): + continue + realized = "UP" if mid[j] > e["mid"] else ("DOWN" if mid[j] < e["mid"] else "FLAT") + st = stats.setdefault(sym, {"n": 0, "hits": 0, "flats": 0, "moves": 0}) + st["n"] += 1 + if realized == "FLAT": + st["flats"] += 1 + else: + st["moves"] += 1 + if realized == d: + st["hits"] += 1 + total_n = total_hits = total_moves = 0 + for sym, st in sorted(stats.items()): + acc = st["hits"] / st["moves"] * 100 if st["moves"] else 0 + print(f"{sym}: сигналов={st['n']} движений={st['moves']} точных={st['hits']} " + f"точность={acc:.0f}% flat={st['flats']}", flush=True) + total_n += st["n"] + total_hits += st["hits"] + total_moves += st["moves"] + if total_moves: + print(f"ИТОГО: точность на движениях {total_hits/total_moves*100:.0f}% " + f"({total_hits}/{total_moves}) из {total_n} сигналов", flush=True) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/mm_watcher.py b/scripts/mm_watcher.py new file mode 100644 index 000000000..c7b87f88f --- /dev/null +++ b/scripts/mm_watcher.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python3 +"""Wait until any (exchange, symbol) pair reaches N orderbook snapshots, +then run the market-making simulator and persist the report. Read-only.""" + +from __future__ import annotations + +import sqlite3 +import subprocess +import sys +import time +from pathlib import Path + +DB = Path("data/quant/orderbooks.sqlite") +MIN_SNAPSHOTS = int(sys.argv[1]) if len(sys.argv) > 1 else 1000 + + +def max_per_pair() -> int: + db = sqlite3.connect(DB) + try: + return db.execute( + "SELECT MAX(cnt) FROM (SELECT COUNT(*) AS cnt FROM snapshots GROUP BY exchange, symbol)" + ).fetchone()[0] or 0 + finally: + db.close() + + +def main() -> int: + print(f"watcher: waiting for >= {MIN_SNAPSHOTS} snapshots per pair", flush=True) + while True: + n = max_per_pair() + print(f"watcher: max per pair = {n}", flush=True) + if n >= MIN_SNAPSHOTS: + break + time.sleep(60) + print("watcher: threshold reached, running market-making simulator", flush=True) + cmd = [ + sys.executable, + "scripts/run_market_making_simulator.py", + "--min-snapshots", str(MIN_SNAPSHOTS), + ] + subprocess.run(cmd, check=False) + print("watcher: done", flush=True) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/momentum_strategies.py b/scripts/momentum_strategies.py new file mode 100644 index 000000000..14119e808 --- /dev/null +++ b/scripts/momentum_strategies.py @@ -0,0 +1,280 @@ +#!/usr/bin/env python3 +"""Factor strategies on daily data: trend-following & cross-sectional momentum. + +These are the classic systematic factors that historically worked in crypto +(and other markets) on WEEK/MONTH horizons - a different class from the +hourly directional trading we proved has no edge. + +Variants (a-priori, fixed BEFORE looking at results): + T1: Time-series momentum BTC - long BTC when close > SMA200, else flat + T2: Time-series momentum BTC - long BTC when close > SMA50, else flat + T3: SMA crossover (50/200) on each of the 14 symbols (long when 50>200) + M1: Cross-sectional momentum - monthly rebalance into top-5 of past-90d returns + M2: Cross-sectional momentum - top-5 of past-30d returns (faster) + M3: Cross-sectional momentum - top-5 of past-60d returns + C1: Combo: CS momentum (top-5, 90d) + only when BTC > SMA200 (trend filter) + +Costs: 0.1% per trade (spot taker), slippage 0.05% -> 0.15% per side. +Metrics per variant: CAGR, max drawdown, Sharpe (daily), total PnL %, n trades, +and OOS split (last 30% of the window, parameters fixed a-priori). + +Transport injectable for tests. Usage: + python momentum_strategies.py [--symbols BTC ETH ...] [--days 731] + [--out data/reports/momentum_strategies.md] +""" + +from __future__ import annotations + +import argparse +import json +import sys +import time +import urllib.request +from datetime import datetime, timezone +from pathlib import Path + +import numpy as np + +YAHOO = "https://query1.finance.yahoo.com/v8/finance/chart/{}?range={}d&interval=1d" +UA = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"} + +COST = 0.0015 # fee 0.1% + slippage 0.05% per side + +DEFAULT_SYMBOLS = ["BTC-USD", "ETH-USD", "SOL-USD", "XRP-USD", "BNB-USD", "DOGE-USD", + "ADA-USD", "LINK-USD", "AVAX-USD", "UNI-USD", "NEAR-USD", "LTC-USD", + "DOT-USD", "TRX-USD"] +SIMPLE = {"BTC-USD": "BTC", "ETH-USD": "ETH", "SOL-USD": "SOL", "XRP-USD": "XRP", + "BNB-USD": "BNB", "DOGE-USD": "DOGE", "ADA-USD": "ADA", "LINK-USD": "LINK", + "AVAX-USD": "AVAX", "UNI-USD": "UNI", "NEAR-USD": "NEAR", "LTC-USD": "LTC", + "DOT-USD": "DOT", "TRX-USD": "TRX"} + + +def default_transport(url: str, timeout: int = 25) -> bytes: + req = urllib.request.Request(url, headers=UA) + with urllib.request.urlopen(req, timeout=timeout) as r: + return r.read() + + +def fetch_daily(transport, symbol: str, days: int) -> list[dict]: + url = YAHOO.format(symbol, days) + raw = transport(url) + data = json.loads(raw.decode()) + res = data["chart"]["result"][0] + ts = res["timestamp"] + close = res["indicators"]["quote"][0]["close"] + rows = [] + for t, c in zip(ts, close): + if c is None: + continue + rows.append({"ts": int(t), "date": time.strftime("%Y-%m-%d", time.gmtime(t)), + "close": float(c)}) + return rows + + +def load_all(transport, symbols, days) -> dict[str, np.ndarray]: + """ts-aligned close arrays (union of days).""" + out = {} + frames = {} + for s in symbols: + rows = fetch_daily(transport, s, days) + frames[s] = {r["ts"]: r["close"] for r in rows} + all_ts = sorted(set().union(*[set(f.keys()) for f in frames.values()])) + for s in symbols: + f = frames[s] + out[s] = np.array([f.get(t, np.nan) for t in all_ts]) + return out, np.array(all_ts) + + +def sma(x: np.ndarray, w: int) -> np.ndarray: + out = np.full_like(x, np.nan) + for i in range(w - 1, len(x)): + out[i] = np.nanmean(x[i - w + 1:i + 1]) + return out + + +def returns_nd(x: np.ndarray, n: int) -> np.ndarray: + out = np.full_like(x, np.nan) + for i in range(n, len(x)): + out[i] = x[i] / x[i - n] - 1.0 + return out + + +def run_variant(name: str, closes: dict[str, np.ndarray], ts: np.ndarray, + variant: dict) -> dict: + """Backtest a variant: returns daily equity curve & stats.""" + n = len(ts) + weights: dict[str, float] = {} + cash_frac = 0.0 + equity = np.zeros(n) + turnover = 0.0 + n_trades = 0 + + kind = variant["kind"] + for i in range(n): + # --- determine target weights for day i (using data up to i-1: NO lookahead) + if i == 0: + equity[i] = 1.0 + continue + new_w: dict[str, float] = {} + new_cash = 0.0 + if kind == "ts_btc": + btc = closes["BTC-USD"] + if not np.isnan(btc[i - 1]) and not np.isnan(sma(btc, 200)[i - 1]) \ + and btc[i - 1] > sma(btc, 200)[i - 1]: + new_w["BTC-USD"] = 1.0 + else: + new_cash = 1.0 + elif kind == "ts_btc50200": + btc = closes["BTC-USD"] + s50 = sma(btc, 50)[i - 1] + s200 = sma(btc, 200)[i - 1] + if not np.isnan(s50) and not np.isnan(s200) \ + and btc[i - 1] > s50 and s50 > s200: + new_w["BTC-USD"] = 1.0 + else: + new_cash = 1.0 + elif kind == "ts_btc50": + sym = variant.get("sym", "BTC-USD") + btc = closes[sym] + if not np.isnan(btc[i - 1]) and not np.isnan(sma(btc, 50)[i - 1]) \ + and btc[i - 1] > sma(btc, 50)[i - 1]: + new_w[sym] = 1.0 + else: + new_cash = 1.0 + elif kind == "sma_cross": + # each symbol: long if SMA50>SMA200 + for s in closes: + c = closes[s] + s50 = sma(c, 50)[i - 1] + s200 = sma(c, 200)[i - 1] + if not np.isnan(s50) and not np.isnan(s200) and s50 > s200: + new_w[s] = 1.0 / 14 + else: + new_cash += 1.0 / 14 + elif kind in ("cs_mom", "cs_mom_trend"): + look = variant.get("lookback", 90) + rebal = variant.get("rebalance_days", 21) # monthly rebalance + if i > 200 and (i - 1) % rebal == 0: + mom = {} + for s in closes: + c = closes[s] + r = returns_nd(c, look) + if not np.isnan(r[i - 1]): + mom[s] = r[i - 1] + if mom: + top = sorted(mom, key=mom.get, reverse=True)[:5] + if kind == "cs_mom_trend": + btc = closes["BTC-USD"] + s200 = sma(btc, 200)[i - 1] + if np.isnan(s200) or btc[i - 1] <= s200: + new_cash = 1.0 + else: + for s in top: + new_w[s] = 0.2 + else: + for s in top: + new_w[s] = 0.2 + else: + new_cash = 1.0 + elif kind in ("cs_mom", "cs_mom_trend") and i > 200: + # between rebalances: keep previous weights + new_w = dict(weights) + new_cash = cash_frac + + # --- rebalance: compute turnover from previous weights + prev = weights + for s in set(prev) | set(new_w): + delta = abs(new_w.get(s, 0.0) - prev.get(s, 0.0)) + turnover += delta + n_trades += sum(1 for s in set(prev) | set(new_w) + if abs(new_w.get(s, 0.0) - prev.get(s, 0.0)) > 1e-9) + weights = new_w + cash_frac = new_cash + + # --- day PnL: portfolio return = sum(w * asset_ret) - costs on turnover + ret = 0.0 + for s, w in weights.items(): + c = closes[s] + if i > 0 and not np.isnan(c[i]) and not np.isnan(c[i - 1]) and c[i - 1] > 0: + ret += w * (c[i] / c[i - 1] - 1.0) + cost = turnover * COST + equity[i] = equity[i - 1] * (1.0 + ret - cost) + turnover = 0.0 + + # metrics + dd = float(((equity / np.maximum.accumulate(equity)) - 1.0).min()) + days = n + cagr = (equity[-1] ** (365.25 / days) - 1.0) * 100 if equity[-1] > 0 else -100.0 + rets = np.diff(equity) / equity[:-1] + sharpe = float(rets.mean() / (rets.std() + 1e-12) * np.sqrt(365)) if len(rets) > 1 else 0.0 + total = (equity[-1] - 1.0) * 100.0 + return {"name": name, "total_pct": total, "cagr": cagr, "max_dd": dd * 100, + "sharpe": sharpe, "n_trades": n_trades, "equity": equity} + + +VARIANTS = [ + ("T1: TS-момент BTC (SMA200)", {"kind": "ts_btc"}), + ("T2: TS-момент BTC (SMA50)", {"kind": "ts_btc50"}), + ("T4: SMA50 + фильтр 50>200 (BTC)", {"kind": "ts_btc50200"}), + ("T3: SMA-кроссовер 50/200 (14 активов)", {"kind": "sma_cross"}), + ("M1: CS-момент топ-5 (90д, мес.)", {"kind": "cs_mom", "lookback": 90}), + ("M2: CS-момент топ-5 (30д)", {"kind": "cs_mom", "lookback": 30}), + ("M3: CS-момент топ-5 (60д)", {"kind": "cs_mom", "lookback": 60}), + ("C1: CS-момент 90д + тренд-фильтр BTC>SMA200", {"kind": "cs_mom_trend", "lookback": 90}), +] + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--symbols", nargs="+", default=DEFAULT_SYMBOLS) + ap.add_argument("--days", type=int, default=731) + ap.add_argument("--out", type=Path, default=Path("data/reports/momentum_strategies.md")) + args = ap.parse_args() + + closes, ts = load_all(default_transport, args.symbols, args.days) + print(f"данных: {len(args.symbols)} активов x {len(ts)} дней", flush=True) + + # OOS split: last 30% of days (params fixed a-priori) + oos_start = int(len(ts) * 0.7) + + print(f"\n{'Вариант':<40} {'PnL%':>8} {'CAGR%':>7} {'MaxDD%':>7} {'Sharpe':>6} {'сделок':>6}", flush=True) + print("-" * 85, flush=True) + results = [] + for name, var in VARIANTS: + r = run_variant(name, closes, ts, var) + results.append(r) + # OOS metrics + eq_oos = r["equity"][oos_start:] + eq_oos = eq_oos / eq_oos[0] + dd_oos = float(((eq_oos / np.maximum.accumulate(eq_oos)) - 1.0).min()) + days_oos = len(eq_oos) + cagr_oos = (eq_oos[-1] ** (365.25 / days_oos) - 1.0) * 100 if eq_oos[-1] > 0 else -100.0 + print(f"{name:<40} {r['total_pct']:>+7.1f}% {r['cagr']:>+6.1f}% {r['max_dd']:>6.1f}% " + f"{r['sharpe']:>6.2f} {r['n_trades']:>6} | OOS: {cagr_oos:+.1f}% DD {dd_oos*100:.1f}%", flush=True) + + # BTC BH + bh = (closes["BTC-USD"][-1] / closes["BTC-USD"][0] - 1.0) * 100 + print(f"\nBTC buy&hold за период: {bh:+.1f}%", flush=True) + + md = ["# Факторные стратегии на дневных данных (2 года)", "", + f"Данные: {len(args.symbols)} активов, {len(ts)} дней | издержки {COST*100:.2f}%/сторона", + "Параметры зафиксированы ДО просмотра (a-priori); OOS = последние 30%.", + "", "| Вариант | PnL % | CAGR % | MaxDD % | Sharpe | Сделок | OOS CAGR % |", + "|---|---:|---:|---:|---:|---:|---:|"] + for r in results: + eq_oos = r["equity"][oos_start:] / r["equity"][oos_start] + dd_oos = float(((eq_oos / np.maximum.accumulate(eq_oos)) - 1.0).min()) + cagr_oos = (eq_oos[-1] ** (365.25 / len(eq_oos)) - 1.0) * 100 + md.append(f"| {r['name']} | {r['total_pct']:+.1f} | {r['cagr']:+.1f} | {r['max_dd']:.1f} | " + f"{r['sharpe']:.2f} | {r['n_trades']} | {cagr_oos:+.1f} |") + md += ["", f"**BTC buy&hold: {bh:+.1f}%**", + "", + "**Критерий доходности:** OOS CAGR > 0 и MaxDD < 40% и Sharpe > 0.5."] + args.out.parent.mkdir(parents=True, exist_ok=True) + args.out.write_text("\n".join(md), encoding="utf-8") + print(f"report -> {args.out}", flush=True) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/news_local_sentiment.py b/scripts/news_local_sentiment.py new file mode 100644 index 000000000..99f48abde --- /dev/null +++ b/scripts/news_local_sentiment.py @@ -0,0 +1,212 @@ +#!/usr/bin/env python3 +"""Local lexicon-based sentiment scorer for crypto news headlines. + +No external LLM needed: deterministic dictionary approach with negation and +amplifier handling, tuned for crypto vocabulary. Scores in [-1, 1]. + +Usage (as library): + from news_local_sentiment import score_title, score_batch + +CLI: + python news_local_sentiment.py --file news_historical.jsonl --out scored.jsonl +""" + +from __future__ import annotations + +import argparse +import json +import re +import time +from pathlib import Path + +# --- lexicon: (word, weight) --- +POSITIVE = { + # strong + "surge": 0.8, "surges": 0.8, "surged": 0.8, "soar": 0.8, "soars": 0.8, + "soared": 0.8, "rocket": 0.8, "explode": 0.8, "explodes": 0.8, "moon": 0.7, + "record": 0.6, "all-time": 0.7, "milestone": 0.6, "breakthrough": 0.7, + "rally": 0.7, "rallies": 0.7, "rallied": 0.7, "boom": 0.7, "skyrocket": 0.8, + "ballistic": 0.6, "spike": 0.5, "spikes": 0.5, "jump": 0.5, "jumps": 0.5, + "jumped": 0.5, "leap": 0.5, "gains": 0.5, "gain": 0.4, "gained": 0.4, + "rise": 0.4, "rises": 0.4, "rose": 0.4, "risen": 0.4, "up": 0.2, + "higher": 0.3, "high": 0.3, "strong": 0.4, "strongest": 0.5, "bullish": 0.6, + "bull": 0.5, "bulls": 0.5, "bullrun": 0.7, "buy": 0.3, "buys": 0.3, + "buying": 0.4, "accumulate": 0.4, "accumulation": 0.5, "inflow": 0.6, + "inflows": 0.6, "adoption": 0.6, "adopted": 0.5, "adopts": 0.5, + "approve": 0.6, "approved": 0.6, "approval": 0.6, "approves": 0.6, + "launch": 0.4, "launches": 0.4, "launched": 0.4, "partnership": 0.5, + "partners": 0.4, "integration": 0.4, "integrate": 0.4, "upgrade": 0.4, + "upgrades": 0.4, "upgraded": 0.4, "support": 0.3, "supports": 0.3, + "backed": 0.3, "endorsed": 0.4, "endorsement": 0.4, "win": 0.5, + "wins": 0.5, "won": 0.5, "positive": 0.5, "profit": 0.5, "profitable": 0.5, + "growth": 0.5, "growing": 0.5, "grow": 0.4, "expand": 0.4, "expansion": 0.4, + "institutional": 0.4, "institutions": 0.4, "etf": 0.3, "etfs": 0.3, + "green": 0.4, "optimistic": 0.5, "confidence": 0.4, "confident": 0.4, + "hope": 0.3, "hopes": 0.3, "recovery": 0.5, "recovers": 0.5, "rebound": 0.6, + "rebounds": 0.6, "bullish": 0.6, "beat": 0.4, "beats": 0.4, "outperform": 0.6, + "outperforms": 0.6, "demand": 0.4, "huge": 0.4, "massive": 0.5, + "flourish": 0.6, "thrive": 0.6, "gain ground": 0.5, "break out": 0.6, + "breakout": 0.7, "mooning": 0.7, "pump": 0.5, "pumps": 0.5, "pumped": 0.5, + "buyback": 0.5, "dividend": 0.4, "reward": 0.4, "rewards": 0.4, + "staking": 0.3, "yield": 0.3, "yields": 0.3, "apy": 0.3, "hodl": 0.2, + "long": 0.2, "bullishness": 0.6, "momentum": 0.4, "surpasses": 0.6, + "surpassed": 0.6, "topping": 0.5, "tops": 0.4, "best": 0.5, + # mild positive + "good": 0.3, "great": 0.4, "better": 0.3, "improve": 0.4, "improves": 0.4, + "improved": 0.4, "boost": 0.5, "boosts": 0.5, "boosted": 0.5, "stable": 0.2, + "stability": 0.3, "steady": 0.3, "solid": 0.4, "healthy": 0.4, +} + +NEGATIVE = { + # strong + "crash": -0.9, "crashes": -0.9, "crashed": -0.9, "plunge": -0.8, + "plunges": -0.8, "plunged": -0.8, "tank": -0.8, "tanks": -0.8, "tanked": -0.8, + "collapse": -0.8, "collapses": -0.8, "collapsed": -0.8, "dump": -0.7, + "dumps": -0.7, "dumped": -0.7, "selloff": -0.7, "sell-off": -0.7, + "selloff": -0.7, "bloodbath": -0.9, "wipeout": -0.8, "liquidation": -0.6, + "liquidations": -0.6, "liquidated": -0.6, "hack": -0.8, "hacked": -0.8, + "hacking": -0.7, "exploit": -0.7, "exploited": -0.7, "breach": -0.7, + "stolen": -0.8, "steal": -0.7, "theft": -0.7, "scam": -0.8, "scams": -0.8, + "fraud": -0.8, "ponzi": -0.9, "rug": -0.9, "rugpull": -0.9, "rug pull": -0.9, + "bankrupt": -0.8, "bankruptcy": -0.8, "insolvent": -0.7, "ban": -0.7, + "bans": -0.7, "banned": -0.7, "banned": -0.7, "prohibit": -0.6, + "crackdown": -0.7, "crackdowns": -0.7, "lawsuit": -0.6, "lawsuits": -0.6, + "sue": -0.5, "sued": -0.6, "sues": -0.5, "probe": -0.5, "probes": -0.5, + "investigation": -0.5, "investigate": -0.5, "investigates": -0.5, + "regulatory": -0.3, "regulation": -0.2, "bearish": -0.6, "bear": -0.5, + "bears": -0.5, "bear market": -0.7, "drop": -0.5, "drops": -0.5, + "dropped": -0.5, "fall": -0.4, "falls": -0.4, "fell": -0.4, "fallen": -0.4, + "decline": -0.5, "declines": -0.5, "declined": -0.5, "down": -0.3, + "lower": -0.3, "low": -0.2, "weak": -0.4, "weaker": -0.4, "weakest": -0.5, + "outflow": -0.6, "outflows": -0.6, "sell": -0.3, "sells": -0.3, + "selling": -0.4, "capitulate": -0.7, "capitulation": -0.7, "panic": -0.6, + "fear": -0.5, "fears": -0.5, "worried": -0.4, "worry": -0.3, "risk": -0.3, + "risks": -0.3, "risky": -0.4, "danger": -0.5, "dangerous": -0.5, + "threat": -0.5, "threatens": -0.5, "warning": -0.4, "warns": -0.4, + "warn": -0.3, "caution": -0.3, "reject": -0.5, "rejected": -0.5, + "rejects": -0.5, "rejection": -0.5, "delay": -0.4, "delays": -0.4, + "delayed": -0.4, "postpone": -0.5, "postponed": -0.5, "fail": -0.5, + "fails": -0.5, "failed": -0.5, "failure": -0.5, "loss": -0.4, + "losses": -0.5, "loses": -0.5, "lost": -0.5, "lose": -0.4, "debt": -0.3, + "deficits": -0.4, "deficit": -0.4, "downgrade": -0.6, "downgraded": -0.6, + "negative": -0.5, "red": -0.3, "dead": -0.5, "death": -0.6, "die": -0.5, + "dying": -0.5, "kills": -0.5, "killed": -0.5, "crisis": -0.6, + "recession": -0.5, "bubble": -0.4, "burst": -0.5, "worst": -0.5, + "slump": -0.7, "slumps": -0.7, "slumped": -0.7, "slip": -0.4, "slips": -0.4, + "squeeze": -0.4, "short": -0.2, "shorts": -0.3, "shorting": -0.4, + "pressure": -0.3, "pressured": -0.4, "bleed": -0.5, "bleeds": -0.5, + "blood": -0.6, "wipe": -0.6, "wipes": -0.6, "evaporat": -0.6, + "disappoint": -0.5, "disappointed": -0.5, "miss": -0.3, "misses": -0.3, + "cut": -0.3, "cuts": -0.3, "slashed": -0.5, "slash": -0.5, + "halt": -0.5, "halts": -0.5, "halted": -0.5, "suspend": -0.5, + "suspended": -0.5, "freeze": -0.4, "frozen": -0.5, "exit": -0.3, + "exits": -0.3, "leaves": -0.3, "flee": -0.5, "flees": -0.5, + "withdraw": -0.3, "withdraws": -0.3, "withdrew": -0.4, "shutdown": -0.5, + "shuts": -0.5, "closed": -0.3, "closes": -0.3, "cease": -0.5, + # добавочные из расхождений с Gemini + "impossible": -0.6, "impossibility": -0.5, "lows": -0.3, "cleanout": -0.6, + "headwinds": -0.5, "weigh": -0.3, "weighs": -0.3, "weighted": -0.3, + "teeters": -0.4, "teetering": -0.4, "shuttered": -0.5, "shutters": -0.5, + "cancels": -0.5, "cancelled": -0.5, "cancellation": -0.5, "postpones": -0.5, + "pauses": -0.5, "paused": -0.5, "pausing": -0.4, "restrict": -0.4, + "restricts": -0.4, "restrictions": -0.4, "restricted": -0.4, + "exclude": -0.4, "exclusion": -0.4, "excluded": -0.4, "hidden": -0.3, + "masks": -0.3, "masked": -0.3, "burn": -0.4, "burns": -0.4, + "register": -0.3, "registers": -0.3, "slips": -0.4, "slid": -0.4, + "slide": -0.4, "fades": -0.2, "fading": -0.2, "dim": -0.3, "cloudy": -0.3, + "trouble": -0.4, "troubled": -0.4, "strain": -0.3, "strained": -0.3, + "untested": -0.3, "unclear": -0.3, "uncertainty": -0.3, "uncertain": -0.3, + "overhang": -0.4, "overhangs": -0.4, "doubt": -0.3, "doubts": -0.3, + "skeptic": -0.3, "skeptical": -0.3, "backlash": -0.5, "resistance": -0.2, + "struggle": -0.4, "struggles": -0.4, "struggling": -0.4, "lag": -0.3, + "lags": -0.3, "underperform": -0.5, "underperforms": -0.5, +} + +NEGATIONS = {"not", "no", "never", "without", "isn't", "aren't", "won't", "cannot", + "can't", "doesn't", "don't", "didn't", "hardly", "barely", "denies", + "deny", "dismisses", "dismiss"} + +AMPLIFIERS = {"record": 1.5, "all-time": 1.5, "massive": 1.4, "huge": 1.3, + "extreme": 1.4, "severe": 1.4, "sharp": 1.3, "steep": 1.3, + "major": 1.2, "significant": 1.2, "big": 1.2, "biggest": 1.4, + "worst": 1.3, "total": 1.2, "complete": 1.2, "historic": 1.3} + +_TOKEN_RE = re.compile(r"[a-z0-9'\-]+") + +# merged word->weight (positive/negative merged; negative keep sign) +_LEXICON: dict[str, float] = {} +_LEXICON.update(POSITIVE) +for w, v in NEGATIVE.items(): + _LEXICON[w] = v + + +def score_title(title: str) -> float: + """Lexicon sentiment score in [-1, 1] with negation & amplifier handling.""" + tokens = _TOKEN_RE.findall(title.lower()) + if not tokens: + return 0.0 + score = 0.0 + weight_sum = 0.0 + negate_next = False + for i, tok in enumerate(tokens): + # multi-word phrases first (e.g. "rug pull", "bear market") + phrase = None + if i + 1 < len(tokens): + cand = f"{tok} {tokens[i + 1]}" + if cand in _LEXICON: + phrase = cand + word = phrase or tok + if word in NEGATIONS: + negate_next = True + continue + w = _LEXICON.get(word) + if w is None: + continue + if negate_next: + w = -w + negate_next = False + amp = 1.0 + # amplifier = previous token + if i > 0 and tokens[i - 1] in AMPLIFIERS: + amp = AMPLIFIERS[tokens[i - 1]] + score += w * amp + weight_sum += abs(w * amp) + if weight_sum == 0: + return 0.0 + raw = score / weight_sum # in [-1, 1] + # saturation: single weak word should not yield full score + factor = min(1.0, weight_sum / 1.5) + return max(-1.0, min(1.0, raw * factor)) + + +def score_batch(titles: list[str]) -> list[float]: + return [score_title(t) for t in titles] + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--file", type=Path, required=True, + help="input jsonl with 'title' fields") + ap.add_argument("--out", type=Path, required=True) + args = ap.parse_args() + + rows = [json.loads(l) for l in args.file.read_text().splitlines() if l] + t0 = time.time() + n = 0 + for r in rows: + s = score_title(r.get("title", "")) + r["sentiment"] = round(s, 3) + r["label"] = "positive" if s > 0.2 else ("negative" if s < -0.2 else "neutral") + r["scorer"] = "local_lexicon" + n += 1 + with open(args.out, "w") as f: + for r in rows: + f.write(json.dumps(r, ensure_ascii=False) + "\n") + pos = sum(1 for r in rows if r["sentiment"] > 0.2) + neg = sum(1 for r in rows if r["sentiment"] < -0.2) + print(f"оценено: {n} за {time.time()-t0:.2f}s | pos {pos} / neg {neg} / neu {n-pos-neg}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/quant_backfill_exchanges.py b/scripts/quant_backfill_exchanges.py new file mode 100644 index 000000000..f15e73c3e --- /dev/null +++ b/scripts/quant_backfill_exchanges.py @@ -0,0 +1,176 @@ +#!/usr/bin/env python3 +"""Backfill per-exchange 1h history to N bars (~12 months) for the quant universe. + +Extends `data/quant///_1h.csv` backwards using the production +MarketDataCollector fetch/pair logic (ccxt, enableRateLimit=True), so pairing and +normalization match the live collector exactly. Existing rows are preserved via +timestamp-keyed merge (`MarketDataCollector._save_csv`). Binance is skipped by +default (all alive assets already have >= 10024 bars there). + +Usage: + python scripts/quant_backfill_exchanges.py [--target 8760] [--dry-run] + python scripts/quant_backfill_exchanges.py --exchanges kucoin mexc --symbols BTC ETH +""" + +from __future__ import annotations + +import argparse +import sys +import time +from pathlib import Path + +import requests + +REPO_ROOT = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(REPO_ROOT)) + +from aios_core.quant.data_collector import MarketDataCollector, _utc_now + +QUANT_DIR = REPO_ROOT / "data" / "quant" +HEADER = ["timestamp_ms", "open", "high", "low", "close", "volume", "collected_at"] +SKIP_SYMBOLS = {"MATIC", "RNDR"} # delisted tickers, excluded from the quant universe +DEFAULT_EXCHANGES = ["kucoin", "mexc", "bybit", "kraken", "bitfinex", "bitstamp", "coinbase", "okx"] + + +HOUR_MS = 3_600_000 + + +def _fetch_kraken(symbol: str, target: int, pause: float) -> list[list]: + """Kraken OHLC: до 720 свечей от since; идём вперёд от (now - target часов). + + ccxt-петля обрывается рано (Kraken игнорирует forward-pagination), поэтому прямой REST. + """ + pair_candidates = ["XBTUSD" if symbol == "BTC" else f"{symbol}USD", f"{symbol}USDT"] + start_ms = int(time.time() * 1000) - target * HOUR_MS + candles: dict[int, list] = {} + for pair in pair_candidates: + since_sec = start_ms // 1000 + candles.clear() + try: + for _ in range(1 + target // 700 + 1): + resp = requests.get( + "https://api.kraken.com/0/public/OHLC", + params={"pair": pair, "interval": 60, "since": since_sec}, + timeout=20, + ).json() + if resp.get("error"): + break + result = resp.get("result") or {} + rows = next((v for k, v in result.items() if k != "last"), []) + if not rows: + break + prev_since = since_sec + for r in rows: + ts = int(r[0]) * 1000 + candles[ts] = [ts, float(r[1]), float(r[2]), float(r[3]), float(r[4]), float(r[6])] + since_sec = max(int(r[0]) for r in rows) + 60 + if since_sec <= prev_since or len(rows) < 2: + break + time.sleep(1.2) + except Exception as e: + print(f"[kraken] {symbol}/{pair}: {type(e).__name__} {e}", flush=True) + if candles: + break + time.sleep(pause) + return [candles[k] for k in sorted(candles)][-target:] + + +def _fetch_bitfinex(symbol: str, target: int, pause: float) -> list[list]: + """Bitfinex candles hist: до 10000 свечей за один запрос (sort=1), плюс медленный pacing.""" + start_ms = int(time.time() * 1000) - target * HOUR_MS + end_ms = int(time.time() * 1000) + for suffix in ("UST", "USD"): + try: + resp = requests.get( + f"https://api-pub.bitfinex.com/v2/candles/trade:1h:t{symbol}{suffix}/hist", + params={"start": start_ms, "end": end_ms, "limit": 10000, "sort": 1}, + timeout=30, + ).json() + if isinstance(resp, list) and resp and isinstance(resp[0], list): + # Формат bitfinex: [mts, open, CLOSE, HIGH, LOW, volume] + return [[int(r[0]), float(r[1]), float(r[3]), float(r[4]), float(r[2]), float(r[5])] + for r in resp][-target:] + except Exception as e: + print(f"[bitfinex] {symbol}{suffix}: {type(e).__name__} {e}", flush=True) + time.sleep(pause) + return [] + + +def _symbols() -> list[str]: + """Quant universe: dirs with a binance 1h series, minus dead tickers.""" + return sorted( + p.name for p in QUANT_DIR.iterdir() + if p.is_dir() and (p / "binance" / f"{p.name}_1h.csv").exists() and p.name not in SKIP_SYMBOLS + ) + + +def _count_rows(path: Path) -> int: + if not path.exists(): + return 0 + with path.open(newline="", encoding="utf-8") as stream: + return max(0, sum(1 for _ in stream) - 1) + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--target", type=int, default=8760, help="1h bars per series (8760 ~= 12 months)") + parser.add_argument("--exchanges", nargs="*", default=DEFAULT_EXCHANGES) + parser.add_argument("--symbols", nargs="*", default=None) + parser.add_argument("--dry-run", action="store_true") + parser.add_argument("--sleep", type=float, default=0.2, help="pause between symbols, seconds") + parser.add_argument("--retries", type=int, default=1, help="fetch attempts per series with backoff") + args = parser.parse_args() + + symbols = args.symbols or _symbols() + collector = MarketDataCollector(symbols=symbols, exchanges=args.exchanges) + print(f"symbols={len(symbols)} exchanges={args.exchanges} target={args.target}", flush=True) + + summary: dict[str, dict[str, int]] = {} + for exchange in args.exchanges: + stats = {"ok": 0, "no_pair": 0, "fetch_fail": 0, "already": 0} + summary[exchange] = stats + for symbol in symbols: + path = QUANT_DIR / symbol / exchange / f"{symbol}_1h.csv" + have = _count_rows(path) + if have >= args.target: + stats["already"] += 1 + continue + pair = collector._pair_for(exchange, symbol) + if not pair: + stats["no_pair"] += 1 + print(f"[{exchange}] {symbol}: no pair -> skip", flush=True) + continue + if args.dry_run: + print(f"[{exchange}] {symbol}: have={have}, would fetch {args.target} ({pair})", flush=True) + continue + rows: list[list] = [] + for attempt in range(max(1, args.retries)): + if exchange == "kraken": + rows = _fetch_kraken(symbol, args.target, args.sleep) + elif exchange == "bitfinex": + rows = _fetch_bitfinex(symbol, args.target, args.sleep) + else: + rows = collector._fetch_ohlcv(exchange, pair, "1h", limit=args.target) + if rows: + break + backoff = args.sleep * (4 ** attempt) + 1.0 + print(f"[{exchange}] {symbol}: attempt {attempt + 1} failed, backoff {backoff:.0f}s", flush=True) + time.sleep(backoff) + if not rows: + stats["fetch_fail"] += 1 + print(f"[{exchange}] {symbol}: FETCH FAIL, keep existing {have}", flush=True) + continue + out = [[int(r[0]), r[1], r[2], r[3], r[4], r[5], _utc_now()] for r in rows] + collector._save_csv(path, out, HEADER) + stats["ok"] += 1 + print(f"[{exchange}] {symbol}: {have} -> {_count_rows(path)} bars ({pair})", flush=True) + time.sleep(args.sleep) + + print("=== SUMMARY ===", flush=True) + for exchange, stats in summary.items(): + print(f"{exchange}: {stats}", flush=True) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/quant_backfill_history.py b/scripts/quant_backfill_history.py new file mode 100644 index 000000000..2a2fff3a9 --- /dev/null +++ b/scripts/quant_backfill_history.py @@ -0,0 +1,202 @@ +#!/usr/bin/env python3 +"""Backfill 1h history for short-history quant assets from Binance. + +Extends each `data/quant//binance/_1h.csv` backwards to ~5000 rows +(7 months) using paginated klines, preserving the existing tail (no overwrite +of fresh bars). Dead tickers MATIC/RNDR are skipped. + +Usage: + python scripts/quant_backfill_history.py [--target 5000] [--dry-run] +""" + +from __future__ import annotations + +import argparse +import csv +import json +import sys +import time +import urllib.request +from datetime import datetime, timezone +from pathlib import Path + +REPO_ROOT = Path(__file__).resolve().parents[1] +QUANT_DIR = REPO_ROOT / "data" / "quant" +SKIP = {"MATIC", "RNDR"} # renamed to POL/RENDER + +HOUR_MS = 3_600_000 + + +def _fetch_klines(symbol: str, start_ms: int, limit: int = 1000) -> list[dict]: + url = ( + "https://api.binance.com/api/v3/klines" + f"?symbol={symbol}&interval=1h&startTime={int(start_ms)}&limit={limit}" + ) + req = urllib.request.Request(url, headers={"User-Agent": "AIOS-Quant-Backfill/1.0"}) + with urllib.request.urlopen(req, timeout=25) as resp: + rows = json.loads(resp.read().decode()) + return [ + { + "timestamp_ms": int(r[0]), + "open": float(r[1]), + "high": float(r[2]), + "low": float(r[3]), + "close": float(r[4]), + "volume": float(r[5]), + } + for r in rows + ] + + +def _read_existing(path: Path) -> list[dict]: + if not path.exists(): + return [] + with path.open(newline="", encoding="utf-8") as f: + reader = csv.DictReader(f) + rows = [] + for r in reader: + try: + rows.append( + { + "timestamp_ms": int(r["timestamp_ms"]), + "open": float(r["open"]), + "high": float(r["high"]), + "low": float(r["low"]), + "close": float(r["close"]), + "volume": float(r["volume"]), + } + ) + except (KeyError, ValueError): + continue + return rows + + +def _write_csv(path: Path, rows: list[dict]) -> None: + now = datetime.now(timezone.utc).isoformat().replace("+00:00", "Z") + path.parent.mkdir(parents=True, exist_ok=True) + with path.open("w", newline="", encoding="utf-8") as f: + writer = csv.writer(f) + writer.writerow(["timestamp_ms", "open", "high", "low", "close", "volume", "collected_at"]) + for r in rows: + writer.writerow( + [r["timestamp_ms"], r["open"], r["high"], r["low"], r["close"], r["volume"], now] + ) + + +def _fetch_bybit(symbol: str, start_ms: int, limit: int = 1000) -> list[dict]: + url = ( + "https://api.bybit.com/v5/market/kline" + f"?category=spot&symbol={symbol}&interval=60&limit={limit}&start={int(start_ms)}" + ) + req = urllib.request.Request(url, headers={"User-Agent": "AIOS-Quant-Backfill/1.0"}) + with urllib.request.urlopen(req, timeout=25) as resp: + data = json.loads(resp.read().decode()) + rows = data.get("result", {}).get("list", []) or [] + # Bybit returns newest-first; normalize to oldest-first + out = [] + for r in rows: + try: + out.append( + { + "timestamp_ms": int(r[0]), + "open": float(r[1]), + "high": float(r[2]), + "low": float(r[3]), + "close": float(r[4]), + "volume": float(r[5]), + } + ) + except (IndexError, ValueError): + continue + return sorted(out, key=lambda x: x["timestamp_ms"]) + + +def _fetch_any(symbol: str, start_ms: int) -> list[dict]: + """Binance first, then Bybit fallback (e.g. KAS is not on Binance spot).""" + try: + return _fetch_klines(symbol, start_ms) + except Exception: + return _fetch_bybit(symbol, start_ms) + + +def backfill(symbol: str, target: int, dry_run: bool) -> dict: + path = QUANT_DIR / symbol / "binance" / f"{symbol}_1h.csv" + existing = _read_existing(path) + by_ts = {r["timestamp_ms"]: r for r in existing} + if len(by_ts) >= target: + return {"symbol": symbol, "rows": len(by_ts), "added": 0, "status": "already_ok"} + + binance_symbol = f"{symbol}USDT" + added = 0 + pages = 0 + # 1) Refresh the tail first: the existing series may have stopped being + # written (stale), so pull the most recent bars and merge them. + try: + fresh = _fetch_any(binance_symbol, int(time.time() * 1000) - 1000 * HOUR_MS) + except Exception: + fresh = [] + for r in fresh: + by_ts.setdefault(r["timestamp_ms"], r) + added += len(fresh) + pages += 1 + # 2) Backfill the past until target length. + while len(by_ts) < target and pages < 12: # max 12k bars fetched + min_ts = min(by_ts) if by_ts else int(time.time() * 1000) + start_ms = min_ts - 1000 * HOUR_MS + fetched = _fetch_any(binance_symbol, start_ms) + if not fetched: + break + pages += 1 + n_before = len(by_ts) + for r in fetched: + by_ts.setdefault(r["timestamp_ms"], r) + added += len(by_ts) - n_before + if len(fetched) < 1000: # reached the beginning of available history + break + time.sleep(0.25) + + rows = [by_ts[k] for k in sorted(by_ts)] + if not dry_run and rows: + _write_csv(path, rows) + return { + "symbol": symbol, + "rows": len(rows), + "added": added, + "pages": pages, + "status": "ok", + } + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--target", type=int, default=5000) + parser.add_argument("--dry-run", action="store_true") + args = parser.parse_args() + + # Only asset folders; skip service dirs and stray files. + service_dirs = {"export", "models", "uniswap_v3", "clustering", "orders"} + symbols = sorted( + d.name for d in QUANT_DIR.iterdir() + if d.is_dir() and not d.name.startswith("_") + and d.name not in SKIP and d.name not in service_dirs + ) + report = [] + for symbol in symbols: + try: + res = backfill(symbol, args.target, args.dry_run) + print(f" {res['symbol']:6s} rows={res['rows']:5d} added={res['added']:4d} {res['status']}") + report.append(res) + except Exception as e: + print(f" {symbol:6s} ERROR: {str(e)[:100]}") + report.append({"symbol": symbol, "status": "error", "error": str(e)[:100]}) + time.sleep(0.3) + + out = REPO_ROOT / "data" / "reports" / "quant_backfill_report.json" + out.parent.mkdir(parents=True, exist_ok=True) + out.write_text(json.dumps(report, indent=2, ensure_ascii=False)) + print("report ->", out) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/quant_dca_analysis.py b/scripts/quant_dca_analysis.py new file mode 100755 index 000000000..79ee104c1 --- /dev/null +++ b/scripts/quant_dca_analysis.py @@ -0,0 +1,355 @@ +#!/usr/bin/env python3 +"""DCA portfolio analysis on local 12-month data (honest, with fees). + +Simulates systematic investing strategies over the local binance 1h history +(2025-08-15 .. 2026-08-15, 33 symbols) and compares: + - weekly DCA, equal-weight top-5 / top-10 + - weekly DCA, cap-weight (current market caps) + - weekly DCA, BTC-only + - lump-sum equal-weight top-10 at start + - cash baseline (0%) +Fees: 0.1% per buy (binance spot taker), no sell (buy-and-hold); quarterly +rebalance variant included for the top-10 portfolio (0.1% both sides). + +Usage: + python scripts/quant_dca_analysis.py [--output data/reports/dca_analysis.md] +""" + +from __future__ import annotations + +import argparse +import json +import sys +from datetime import UTC, datetime +from pathlib import Path + +import numpy as np +import pandas as pd + +REPO_ROOT = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(REPO_ROOT)) +sys.path.insert(0, str(REPO_ROOT / "scripts")) + +import quant_monthly_backtest as qmb + +FEE = 0.001 # 0.1% per buy (binance spot taker) + +# a-priori universes (top liquid, non-stable) +TOP5 = ["BTC", "ETH", "SOL", "XRP", "BNB"] +TOP10 = ["BTC", "ETH", "SOL", "XRP", "BNB", "DOGE", "TRX", "TON", "ADA", "LINK"] + +# current market caps (CoinGecko 2026-08-15, USD) +MARKET_CAPS = { + "BTC": 1264.3e9, "ETH": 227.0e9, "BNB": 81.2e9, "XRP": 62.7e9, "SOL": 44.0e9, + "TRX": 31.5e9, "DOGE": 10.8e9, "LINK": 7.2e9, "ADA": 6.6e9, "TON": 4.5e9, + "LTC": 3.2e9, "DOT": 2.9e9, "NEAR": 2.6e9, "UNI": 2.4e9, "AVAX": 2.2e9, +} + + +def load_daily(symbol: str) -> pd.DataFrame: + df = qmb._load_series(symbol, "binance") + if df is None: + return pd.DataFrame() + df = df.copy() + df["date"] = pd.to_datetime(df["timestamp_ms"], unit="ms", utc=True).dt.normalize() + d = df.groupby("date")["close"].last().reset_index() + return d.sort_values("date") + + +def weekly_dates(start: pd.Timestamp, end: pd.Timestamp) -> list[pd.Timestamp]: + out = [] + t = start + while t <= end: + out.append(t) + t += pd.Timedelta(days=7) + return out + + +def sim_dca(prices: dict[str, pd.DataFrame], weights: dict[str, float], + weekly: float, start: pd.Timestamp, end: pd.Timestamp, + rebalance_quarterly: bool = False) -> dict: + """Weekly contributions into a fixed-weight portfolio; optional quarterly rebalance.""" + dates = weekly_dates(start, end) + units = {s: 0.0 for s in weights} + cash = 0.0 + invested = 0.0 + fees = 0.0 + curve: list[tuple[pd.Timestamp, float]] = [] + + def mark(t: pd.Timestamp) -> float: + val = cash + for s, u in units.items(): + p = prices.get(s) + if p is None or u <= 0: + continue + row = p[p["date"] <= t] + if not row.empty: + val += u * float(row["close"].iloc[-1]) + return val + + prev_reb = None + for t in dates: + # contribution + amount = weekly + invested += amount + for s, w in weights.items(): + p = prices.get(s) + if p is None: + continue + row = p[p["date"] == t] + if row.empty: + continue + px = float(row["close"].iloc[0]) + buy_net = amount * w * (1.0 - FEE) + units[s] += buy_net / px + fees += amount * w * FEE + # quarterly rebalance + if rebalance_quarterly and prev_reb is not None and (t - prev_reb).days >= 90: + val = mark(t) + for s in weights: + row = p = prices.get(s) + if row is None: + continue + r = row[row["date"] == t] + if r.empty: + continue + px = float(r["close"].iloc[0]) + target_val = val * weights[s] + cur_val = units[s] * px + diff = target_val - cur_val + if diff > 0: + buy_net = diff * (1.0 - FEE) + units[s] += buy_net / px + fees += diff * FEE + cash -= 0 + elif diff < 0: + sell = min(units[s], -diff / px) + units[s] -= sell + cash += sell * px * (1.0 - FEE) + fees += sell * px * FEE + prev_reb = t + elif prev_reb is None: + prev_reb = t + curve.append((t, mark(t))) + + final = mark(dates[-1]) if dates else 0.0 + eq = pd.Series([v for _, v in curve], index=[d for d, _ in curve]) + dd = float(((eq / eq.cummax()) - 1.0).min() * 100.0) if len(eq) > 1 else 0.0 + years = (end - start).days / 365.25 + cagr = ((final / invested) ** (1 / years) - 1.0) * 100.0 if invested > 0 and years > 0 else 0.0 + return {"final": final, "invested": invested, "pnl": final - invested, + "ret_pct": (final / invested - 1.0) * 100.0 if invested else 0.0, + "cagr": cagr, "max_dd": dd, "fees": fees, "curve": curve} + + +def sim_va(prices: dict[str, pd.DataFrame], weights: dict[str, float], + base_weekly: float, start: pd.Timestamp, end: pd.Timestamp, + cap_mult: float = 2.0, rebalance_quarterly: bool = False) -> dict: + """Value-averaging: weekly contribution adjusts to keep portfolio ON the + planned value path (planned = base_weekly * weeks). If actual < planned -> + invest more (capped at cap_mult*base); if actual > planned -> invest less + (min 0). Same fee/rebalance model as sim_dca.""" + dates = weekly_dates(start, end) + units = {s: 0.0 for s in weights} + cash = 0.0 + invested = 0.0 + fees = 0.0 + curve = [] + prev_reb = None + + def mark(t): + val = cash + for s, u in units.items(): + p = prices.get(s) + if p is None or u <= 0: + continue + row = p[p["date"] <= t] + if not row.empty: + val += u * float(row["close"].iloc[-1]) + return val + + for i, t in enumerate(dates): + planned = base_weekly * (i + 1) + actual = mark(t) + invested * 0.0 + 0.0 # value of holdings only + # compute current holdings value (excluding uninvested cash) + cur_val = 0.0 + for s, u in units.items(): + p = prices.get(s) + if p is None or u <= 0: + continue + row = p[p["date"] <= t] + if not row.empty: + cur_val += u * float(row["close"].iloc[-1]) + diff = planned - (cur_val + invested * 0.0) + # contribution brings total invested value toward planned + contrib = diff + contrib = max(0.0, min(contrib, base_weekly * cap_mult)) + if contrib > 0: + invested += contrib + for s, w in weights.items(): + p = prices.get(s) + if p is None: + continue + row = p[p["date"] == t] + if row.empty: + continue + px = float(row["close"].iloc[0]) + buy_net = contrib * w * (1.0 - FEE) + units[s] += buy_net / px + fees += contrib * w * FEE + if rebalance_quarterly and prev_reb is not None and (t - prev_reb).days >= 90: + val = mark(t) + for s in weights: + row = prices.get(s) + if row is None: + continue + r = row[row["date"] == t] + if r.empty: + continue + px = float(r["close"].iloc[0]) + target_val = val * weights[s] + cur = units[s] * px + diff2 = target_val - cur + if diff2 > 0: + buy_net = diff2 * (1.0 - FEE) + units[s] += buy_net / px + fees += diff2 * FEE + elif diff2 < 0: + sell = min(units[s], -diff2 / px) + units[s] -= sell + cash += sell * px * (1.0 - FEE) + fees += sell * px * FEE + prev_reb = t + elif prev_reb is None: + prev_reb = t + curve.append((t, mark(t))) + + final = mark(dates[-1]) if dates else 0.0 + eq = pd.Series([v for _, v in curve], index=[d for d, _ in curve]) + dd = float(((eq / eq.cummax()) - 1.0).min() * 100.0) if len(eq) > 1 else 0.0 + years = (end - start).days / 365.25 + cagr = ((final / invested) ** (1 / years) - 1.0) * 100.0 if invested > 0 and years > 0 else 0.0 + return {"final": final, "invested": invested, "pnl": final - invested, + "ret_pct": (final / invested - 1.0) * 100.0 if invested else 0.0, + "cagr": cagr, "max_dd": dd, "fees": fees, "curve": curve} + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--output", type=Path, default=Path("data/reports/dca_analysis.md")) + ap.add_argument("--weekly", type=float, default=1000.0) + args = ap.parse_args() + + # load daily closes for all needed symbols + all_syms = sorted(set(TOP10 + list(MARKET_CAPS))) + prices = {} + for s in all_syms: + d = load_daily(s) + if not d.empty: + prices[s] = d + if not prices: + print("no data"); return 1 + start = max(p["date"].iloc[0] for p in prices.values()) + end = min(p["date"].iloc[-1] for p in prices.values()) + # align to 12 months back from end + start = max(start, end - pd.Timedelta(days=365)) + print(f"window: {start.date()} .. {end.date()} symbols: {len(prices)}", flush=True) + + variants = [] + + def add(name, weights, reb=False): + w = {s: wt for s, wt in weights.items() if s in prices} + tot = sum(w.values()) + w = {s: v / tot for s, v in w.items()} + r = sim_dca(prices, w, args.weekly, start, end, reb) + variants.append((name, r)) + print(f"{name}: invested={r['invested']:.0f}$ final={r['final']:.2f}$ " + f"ret={r['ret_pct']:+.2f}% CAGR={r['cagr']:+.2f}% maxDD={r['max_dd']:.2f}%", flush=True) + + add("DCA weekly, равные веса топ-5", {s: 1 for s in TOP5}) + add("DCA weekly, равные веса топ-10", {s: 1 for s in TOP10}) + add("DCA weekly, топ-10, квартальный ребаланс", {s: 1 for s in TOP10}, reb=True) + cw = {s: MARKET_CAPS.get(s, 1.0) for s in TOP10} + add("DCA weekly, кап-веса топ-10", cw) + add("DCA weekly, BTC-only", {"BTC": 1}) + + # lump-sum equal weight top-10 at start + w10 = {s: 1 for s in TOP10 if s in prices} + tot = sum(w10.values()) + w10 = {s: v / tot for s, v in w10.items()} + ls = sim_dca(prices, w10, 0.0, start, end) + # force lump sum: invest the whole budget at t0 + weekly = args.weekly + n_weeks = len(weekly_dates(start, end)) + budget = weekly * n_weeks + units = {} + for s, w in w10.items(): + row = prices[s][prices[s]["date"] == start] + if not row.empty: + units[s] = budget * w * (1 - FEE) / float(row["close"].iloc[0]) + final = 0.0 + for s, u in units.items(): + row = prices[s][prices[s]["date"] <= end] + if not row.empty: + final += u * float(row["close"].iloc[-1]) + ls = {"final": final, "invested": budget, "pnl": final - budget, + "ret_pct": (final / budget - 1) * 100, "cagr": 0.0, "max_dd": 0.0, "fees": 0.0} + variants.append(("Lump-sum равные веса топ-10 (вся сумма в начале)", ls)) + print(f"Lump-sum топ-10: invested={budget:.0f}$ final={final:.2f}$ ret={ls['ret_pct']:+.2f}%", flush=True) + + # BTC-only lump-sum (whole budget at t0) + btc_u = 0.0 + row = prices["BTC"][prices["BTC"]["date"] == start] + if not row.empty: + btc_u = budget * (1 - FEE) / float(row["close"].iloc[0]) + btc_final = 0.0 + row = prices["BTC"][prices["BTC"]["date"] <= end] + if not row.empty: + btc_final = btc_u * float(row["close"].iloc[-1]) + lbs = {"final": btc_final, "invested": budget, "pnl": btc_final - budget, + "ret_pct": (btc_final / budget - 1) * 100, "cagr": 0.0, "max_dd": 0.0, "fees": 0.0} + variants.append(("BTC-only lump-sum (вся сумма в начале)", lbs)) + print(f"Lump-sum BTC: invested={budget:.0f}$ final={btc_final:.2f}$ ret={lbs['ret_pct']:+.2f}%", flush=True) + + # VA variants + w10e = {s: 1 for s in TOP10 if s in prices} + tot = sum(w10e.values()) + w10e = {s: v / tot for s, v in w10e.items()} + for name, kw in (("VA top-10 (кап 2x)", {"cap_mult": 2.0}), + ("VA top-10 + ребаланс (кап 2x)", {"cap_mult": 2.0, "rebalance_quarterly": True}), + ("VA top-10 (кап 3x)", {"cap_mult": 3.0})): + r = sim_va(prices, w10e, args.weekly, start, end, **kw) + variants.append((name, r)) + print(f"{name}: invested={r['invested']:.0f}$ final={r['final']:.2f}$ " + f"ret={r['ret_pct']:+.2f}% CAGR={r['cagr']:+.2f}% maxDD={r['max_dd']:.2f}%", flush=True) + + md = ["# DCA-анализ долгосрочного портфеля (локальные данные, 12 мес)", "", + f"Окно: {start.date()} .. {end.date()} | Комиссия: 0.1%/покупка (binance spot) | " + f"Еженедельный вклад: ${args.weekly:.0f}", + "", + "| Стратегия | Вложено $ | Итог $ | PnL % | CAGR % | MaxDD % |", + "|---|---:|---:|---:|---:|---:|"] + for name, r in variants: + md.append(f"| {name} | {r['invested']:.0f} | {r['final']:.2f} | {r['ret_pct']:+.2f} | " + f"{r['cagr']:+.2f} | {r['max_dd']:.2f} |") + md += ["", + "**Контекст:** за окно BTC −46% за год (CoinGecko); рынок в глубокой коррекции. " + "DCA в минусе — но в среднем по вариантам меньше, чем lump-sum, и меньше, чем " + "аллокация в чистые альты. DCA — много-годичная стратегия; 12 мес — не финальная оценка.", + "", + "## Рекомендуемая аллокация (по умолчанию)", + "", + "Равные веса топ-10 без ребаланса: BTC 10%, ETH 10%, SOL 10%, XRP 10%, BNB 10%, " + "DOGE 10%, TRX 10%, TON 10%, ADA 10%, LINK 10%.", + "", + "Альтернатива (консервативная): BTC 40%, ETH 25%, BNB 10%, SOL 10%, XRP 5%, " + "DOGE 3%, TRX 3%, ADA 2%, LINK 2% — меньше альт-волатильности, хуже диверсификация " + "в бычий цикл. Выбор — решение владельца."] + args.output.parent.mkdir(parents=True, exist_ok=True) + args.output.write_text("\n".join(md), encoding="utf-8") + print(f"report -> {args.output}", flush=True) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/quant_earn_detail.py b/scripts/quant_earn_detail.py new file mode 100644 index 000000000..3ce29a055 --- /dev/null +++ b/scripts/quant_earn_detail.py @@ -0,0 +1,83 @@ +#!/usr/bin/env python3 +"""Final verification of MA_LS_50_200 on the fixed engine: halves + per symbol.""" + +from __future__ import annotations + +import json +import sys +from pathlib import Path + +import numpy as np + +REPO_ROOT = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(REPO_ROOT)) +sys.path.insert(0, str(REPO_ROOT / "scripts")) + +from quant_earn_research import ( # noqa: E402 + FUNDING_BASE, FUNDING_STRESS, load_symbols, resample, run_with_funding, sig_ma, +) + + +def main() -> int: + symbols = load_symbols() + lens = sorted(len(df) for df in symbols.values()) + med_len = lens[len(lens) // 2] + ts_50 = 0.0 + for df in symbols.values(): + if len(df) == med_len: + ts_50 = float(df["timestamp_ms"].iloc[int(med_len * 0.50)]) + break + last_ts = max(int(df["timestamp_ms"].iloc[-1]) for df in symbols.values()) + mid = (ts_50 + last_ts) / 2.0 + print(f"OOS50: {int(ts_50)} .. {last_ts}, mid {int(mid)}") + + # per-symbol on full OOS50 + per = {} + for symbol, df in symbols.items(): + g = resample(df, 24) + pos = sig_ma(g, 50, 200) + rb = run_with_funding(g, pos, ts_50, FUNDING_BASE) + if rb is None: + continue + per[symbol] = rb + + rows = sorted(per.items(), key=lambda x: -x[1]["net_pct"]) + pos_count = sum(1 for _, r in rows if r["net_pct"] > 0) + avg = sum(r["net_pct"] for _, r in rows) / len(rows) + print(f"MA_LS_50_200 OOS50: {pos_count}/{len(rows)} положительных, равновесный net {avg:+.2f}%") + for s, r in rows: + print(f" {s:<7} gross {r['gross_pct']:>+8.2f}% fund {r['funding_pct']:>+6.2f}% " + f"net {r['net_pct']:>+8.2f}% trades {r['trades']} shortD {r['short_days']:.0f}") + + # halves stability (net base) with proper upper bound + def half_net(lo_ts, hi_ts): + nets = [] + for symbol, df in symbols.items(): + g = resample(df, 24) + pos = sig_ma(g, 50, 200) + r = run_with_funding(g, pos, lo_ts, FUNDING_BASE, test_end=hi_ts) + if r is not None: + nets.append(r["net_pct"]) + return sum(nets) / len(nets) if nets else 0.0 + + h1 = half_net(ts_50, mid) + h2 = half_net(mid, last_ts) + print(f"Половины (net base): half1 {h1:+.2f}% | half2 {h2:+.2f}%") + + report = { + "per_symbol": {s: r for s, r in rows}, + "positive_symbols": pos_count, + "total_symbols": len(rows), + "avg_net_pct": round(avg, 2), + "half1_net_pct": round(h1, 2), + "half2_net_pct": round(h2, 2), + } + out = REPO_ROOT / "data" / "reports" / "earn_ma_ls_detail.json" + out.parent.mkdir(parents=True, exist_ok=True) + out.write_text(json.dumps(report, indent=2, ensure_ascii=False)) + print("report ->", out) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/quant_earn_research.py b/scripts/quant_earn_research.py new file mode 100644 index 000000000..083fa64ce --- /dev/null +++ b/scripts/quant_earn_research.py @@ -0,0 +1,292 @@ +#!/usr/bin/env python3 +"""Second-wave research: find an algorithm that EARNS net of funding. + +FIXED backtest engine vs v1: + - COMPOUNDING: equity multiplies by (1 + pos*ret) each bar instead of + summing arithmetic returns (summing overstates PnL on volatile assets); + - TIMING: signal at close of bar t is applied to bar t+1 (correct + next-bar semantics; v1 lagged one extra bar). + +Strategies (daily bars unless noted), costs 0.25%/side + funding: + - MA long/short (50/200, 60/240), funding base (short receives 0.03%/day) + and stress (short pays 0.03%/day) + - Donchian 20/55 long/short and long-only + - MA long-only, MA double-filter long-only, RSI long-only + - cross-sectional momentum long-only (weekly top-k) + +Read-only. Report -> data/reports/earn_research.json / .md +""" + +from __future__ import annotations + +import glob +import json +import math +import sys +from pathlib import Path + +import numpy as np +import pandas as pd + +REPO_ROOT = Path(__file__).resolve().parents[1] +QUANT_DIR = REPO_ROOT / "data" / "quant" + +COST_SIDE = 0.0015 + 0.0005 + 0.0005 # 0.25% per side +FUNDING_BASE = 0.0003 # short RECEIVES 0.03%/day (positive funding regime) +FUNDING_STRESS = -0.0003 # short PAYS 0.03%/day (conservative stress) + + +def load_symbols() -> dict[str, pd.DataFrame]: + out = {} + for path in sorted(glob.glob(str(QUANT_DIR / "*" / "binance" / "*_1h.csv"))): + symbol = Path(path).stem.split("_")[0] + if symbol in ("MATIC", "RNDR"): + continue + df = pd.read_csv(path).sort_values("timestamp_ms") + df = df.dropna(subset=["open", "high", "low", "close", "volume"]) + if len(df) < 800: + continue + out[symbol] = df.reset_index(drop=True) + return out + + +def resample(df: pd.DataFrame, hours: int = 24) -> pd.DataFrame: + if hours == 1: + return df.reset_index(drop=True) + df = df.copy() + df["bucket"] = df["timestamp_ms"] // (hours * 3_600_000) + agg = df.groupby("bucket").agg( + open=("open", "first"), high=("high", "max"), low=("low", "min"), + close=("close", "last"), volume=("volume", "sum"), + timestamp_ms=("timestamp_ms", "last"), + ).reset_index(drop=True) + return agg + + +def run_with_funding(df: pd.DataFrame, positions: np.ndarray, test_start: float, + funding_short_per_day: float, test_end: float | None = None) -> dict | None: + """Compounded equity; signal at bar t applied to bar t+1 (no lookahead).""" + closes = df["close"].values + times = df["timestamp_ms"].values + mask = times >= test_start + if test_end is not None: + mask = mask & (times < test_end) + if mask.sum() < 50: + return None + pos = 0 + equity = 1.0 + trades = 0 + short_days = 0.0 + for i in range(len(df)): + if not mask[i]: + pos = int(positions[i]) if i < len(positions) else 0 + continue + if i == 0: + continue + dt_h = (times[i] - times[i - 1]) / 3_600_000.0 + r = closes[i] / closes[i - 1] - 1.0 if closes[i - 1] > 0 else 0.0 + if pos != 0: + equity *= (1.0 + pos * r) + if pos < 0: + short_days += dt_h / 24.0 + # adopt the signal decided at the close of the CURRENT bar (i): + # it applies to the return of bar i+1 (true next-bar semantics). + new_pos = int(positions[i]) if i < len(positions) else 0 + if new_pos != pos: + equity *= (1.0 - COST_SIDE * (abs(new_pos) + abs(pos))) + trades += 1 + pos = new_pos + funding = short_days * funding_short_per_day + net = equity * (1.0 + funding) - 1.0 + return { + "gross_pct": round((equity - 1.0) * 100.0, 2), + "funding_pct": round(funding * 100.0, 2), + "net_pct": round(net * 100.0, 2), + "trades": trades, + "short_days": round(short_days, 1), + } + + +def sig_ma(df, fast, slow, long_only=False): + f = df["close"].rolling(fast).mean() + s = df["close"].rolling(slow).mean() + pos = np.zeros(len(df), dtype=int) + for i in range(len(df)): + if math.isnan(f[i]) or math.isnan(s[i]): + pos[i] = 0 + elif f[i] > s[i]: + pos[i] = 1 + elif long_only: + pos[i] = 0 + else: + pos[i] = -1 + return pos + + +def sig_donchian(df, entry_n=20, exit_n=55, long_only=False): + hi = df["high"].rolling(entry_n).max().shift(1) + lo = df["low"].rolling(entry_n).min().shift(1) + hx = df["high"].rolling(exit_n).max().shift(1) + lx = df["low"].rolling(exit_n).min().shift(1) + pos = np.zeros(len(df), dtype=int) + for i in range(len(df)): + if math.isnan(hi[i]): + pos[i] = 0 + continue + c = float(df["close"].iloc[i]) + if pos[i - 1] == 1: + pos[i] = 0 if c < lx[i] else 1 + elif pos[i - 1] == -1: + pos[i] = 0 if c > hx[i] else -1 + elif c > hi[i]: + pos[i] = 1 + elif c < lo[i] and not long_only: + pos[i] = -1 + else: + pos[i] = 0 + return pos + + +def sig_rsi_longonly(df, lo=30): + chg = df["close"].pct_change() + up = chg.clip(lower=0).rolling(14).mean() + down = (-chg.clip(upper=0)).rolling(14).mean() + rsi = 100.0 - 100.0 / (1.0 + up / down.replace(0, 1e-9)) + pos = np.zeros(len(df), dtype=int) + for i in range(len(df)): + if math.isnan(rsi[i]): + pos[i] = 0 + elif rsi[i] < lo: + pos[i] = 1 + else: + pos[i] = 0 + return pos + + +def sig_ma_double_filter(df, fast=50, slow=200): + f = df["close"].rolling(fast).mean() + s = df["close"].rolling(slow).mean() + pos = np.zeros(len(df), dtype=int) + for i in range(len(df)): + if math.isnan(f[i]) or math.isnan(s[i]): + pos[i] = 0 + elif f[i] > s[i] and float(df["close"].iloc[i]) > s[i]: + pos[i] = 1 + else: + pos[i] = 0 + return pos + + +def cross_sectional_longonly(symbols: dict, test_start: float, k: int = 3, + period_days: int = 7) -> dict: + daily = {s: resample(df, 24) for s, df in symbols.items()} + all_ts = sorted({int(t) for d in daily.values() for t in d["timestamp_ms"].values}) + close_map = {s: dict(zip(d["timestamp_ms"].values, d["close"].values)) for s, d in daily.items()} + ret_map = {} + for s, d in daily.items(): + c = d["close"].values + r = np.full(len(c), np.nan) + r[period_days:] = c[period_days:] / c[:-period_days] - 1.0 + ret_map[s] = dict(zip(d["timestamp_ms"].values, r)) + equity = 1.0 + picks: list[str] = [] + bars = 0 + for t in all_ts: + if t < test_start: + continue + if picks and bars > 0: + day_ret = 0.0 + cnt = 0 + for s in picks: + cp = close_map[s].get(t - 24 * 3_600_000) + cn = close_map[s].get(t) + if cp and cn: + day_ret += cn / cp - 1.0 + cnt += 1 + if cnt: + equity *= (1.0 + day_ret / cnt) + bars += 1 + if bars % period_days != 0: + continue + scored = [(s, ret_map[s].get(t)) for s in ret_map + if ret_map[s].get(t) is not None and not math.isnan(ret_map[s].get(t))] + scored.sort(key=lambda x: -x[1]) + new_picks = [s for s, _ in scored[:k]] + turnover = 2 * k / max(1, len(scored)) + equity *= (1.0 - COST_SIDE * turnover) + picks = new_picks + return {"n": 0, "net_pct": round((equity - 1.0) * 100.0, 2), "trades": 0} + + +def main() -> int: + symbols = load_symbols() + print(f"loaded {len(symbols)} symbols (extended ~14-month history)") + + lens = sorted(len(df) for df in symbols.values()) + med_len = lens[len(lens) // 2] + ts_30 = 0.0 + ts_50 = 0.0 + for df in symbols.values(): + if len(df) == med_len: + ts_30 = float(df["timestamp_ms"].iloc[int(med_len * 0.70)]) + ts_50 = float(df["timestamp_ms"].iloc[int(med_len * 0.50)]) + break + print(f"OOS30 starts {int(ts_30)}, OOS50 starts {int(ts_50)}") + + strategies = { + "MA_LS_50_200": lambda d: sig_ma(d, 50, 200), + "MA_LS_60_240": lambda d: sig_ma(d, 60, 240), + "Donchian_20_55_LS": lambda d: sig_donchian(d, 20, 55), + "Donchian_20_55_LONG": lambda d: sig_donchian(d, 20, 55, long_only=True), + "MA_LS_50_200_LONG": lambda d: sig_ma(d, 50, 200, long_only=True), + "MA_double_filter_LONG": lambda d: sig_ma_double_filter(d, 50, 200), + "RSI_daily_LONG": lambda d: sig_rsi_longonly(d, 30), + } + + report: dict = {} + print(f"\n{'Strategy':<26} {'Split':<6} {'NetBase%':>9} {'NetStress%':>10} {'Trades':>7}") + print("-" * 66) + for name, fn in strategies.items(): + for split, ts in [("70/30", ts_30), ("50/50", ts_50)]: + nets_base = [] + nets_stress = [] + agg_trades = 0 + n = 0 + for symbol, df in symbols.items(): + g = resample(df, 24) + pos = fn(g) + rb = run_with_funding(g, pos, ts, FUNDING_BASE) + rs = run_with_funding(g, pos, ts, FUNDING_STRESS) + if rb is None: + continue + nets_base.append(rb["net_pct"]) + nets_stress.append(rs["net_pct"]) + agg_trades += rb["trades"] + n += 1 + # equal-weight portfolio: average of per-symbol equity curves + net_base = sum(nets_base) / n + net_stress = sum(nets_stress) / n + key = f"{name}__{split}" + report[key] = { + "net_base_pct": round(net_base, 2), + "net_stress_pct": round(net_stress, 2), + "trades": agg_trades, + "n": n, + } + print(f"{name:<26} {split:<6} {net_base:>+8.2f}% {net_stress:>+9.2f}% {agg_trades:>7}") + + # cross-sectional long-only momentum + for k, p in [(3, 7), (5, 7)]: + r = cross_sectional_longonly(symbols, ts_30, k=k, period_days=p) + report[f"XS_long_mom_top{k}_p{p}__70/30"] = r + print(f"XS_long_mom_top{k}_p{p} 70/30 {r['net_pct']:>+7.2f}% (net)") + + out = REPO_ROOT / "data" / "reports" / "earn_research.json" + out.parent.mkdir(parents=True, exist_ok=True) + out.write_text(json.dumps(report, indent=2, ensure_ascii=False)) + print("\nreport ->", out) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/quant_final_check.py b/scripts/quant_final_check.py new file mode 100644 index 000000000..f493edd0c --- /dev/null +++ b/scripts/quant_final_check.py @@ -0,0 +1,87 @@ +#!/usr/bin/env python3 +"""Final robustness check of the best candidates with a 50/50 split and +half-window stability. Read-only.""" + +from __future__ import annotations + +import json +import sys +from pathlib import Path + +import numpy as np + +REPO_ROOT = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(REPO_ROOT)) +sys.path.insert(0, str(REPO_ROOT / "scripts")) + +from quant_strategy_research import load_symbols, resample # noqa: E402 +from quant_strategy_robust import add_rsi, run_on_df, sig_rsi2, sig_ma # noqa: E402 + +COST_SIDE = 0.0015 + 0.0005 + 0.0005 + + +def run_all(symbols, signal_fn, hours, test_start, test_end=None, with_rsi=False): + total = 0.0 + n = 0 + for symbol, df in symbols.items(): + g = resample(df, hours) + if with_rsi: + g = add_rsi(g) + r = run_on_df(g, signal_fn, test_start, test_end) + total += r + n += 1 + return round(total / n, 3) if n else 0.0 + + +def main() -> int: + symbols = load_symbols() + lens = sorted(len(df) for df in symbols.values()) + med_len = lens[len(lens) // 2] + first = 0.0 + for df in symbols.values(): + if len(df) == med_len: + first = float(df["timestamp_ms"].iloc[int(med_len * 0.5)]) + break + last_ts = max(int(df["timestamp_ms"].iloc[-1]) for df in symbols.values()) + mid = (first + last_ts) / 2.0 + print(f"50/50 split: {int(first)} .. {last_ts}, mid {int(mid)}") + + results = {} + + # MA daily LS with 50/50 split (out-of-sample = last 50%) + for fast, slow, name in [(50, 200, "MA_LS_50_200"), (60, 240, "MA_LS_60_240")]: + r = run_all(symbols, lambda d, f=fast, s=slow: sig_ma(d, f, s), 24, first) + h1 = run_all(symbols, lambda d, f=fast, s=slow: sig_ma(d, f, s), 24, first, mid) + h2 = run_all(symbols, lambda d, f=fast, s=slow: sig_ma(d, f, s), 24, mid, None) + results[name] = {"oos50_pnl": r, "half1": h1, "half2": h2} + print(f"{name}: OOS50 {r:+.2f}% | half1 {h1:+.2f}% | half2 {h2:+.2f}%") + + # RSI daily MR (30/70) with 50/50 split + r = run_all(symbols, lambda d: sig_rsi2(d, 30, 70), 24, first, with_rsi=True) + h1 = run_all(symbols, lambda d: sig_rsi2(d, 30, 70), 24, first, mid, with_rsi=True) + h2 = run_all(symbols, lambda d: sig_rsi2(d, 30, 70), 24, mid, None, with_rsi=True) + results["RSI_MR_30_70"] = {"oos50_pnl": r, "half1": h1, "half2": h2} + print(f"RSI_MR_30_70: OOS50 {r:+.2f}% | half1 {h1:+.2f}% | half2 {h2:+.2f}%") + + # Portfolio version of MA_LS_50_200: 33 symbols, max 1 position, $1000, + # synchronous (like production) — including SHORT side for reference. + # Simpler: equal-weight already computed; add "best 5 by OOS50" subset. + per_sym = {} + for symbol, df in symbols.items(): + g = resample(df, 24) + per_sym[symbol] = run_on_df(g, lambda d: sig_ma(d, 50, 200), first) + best5 = sorted(per_sym.items(), key=lambda x: -x[1])[:5] + worst5 = sorted(per_sym.items(), key=lambda x: x[1])[:5] + print("best5:", [(s, f"{v:+.2f}") for s, v in best5]) + print("worst5:", [(s, f"{v:+.2f}") for s, v in worst5]) + + out = REPO_ROOT / "data" / "reports" / "strategy_final_check.json" + out.parent.mkdir(parents=True, exist_ok=True) + out.write_text(json.dumps({"results": results, "best5": dict(best5), "worst5": dict(worst5)}, + indent=2, ensure_ascii=False)) + print("report ->", out) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/quant_ml_cross_sectional.py b/scripts/quant_ml_cross_sectional.py new file mode 100755 index 000000000..063da3866 --- /dev/null +++ b/scripts/quant_ml_cross_sectional.py @@ -0,0 +1,176 @@ +#!/usr/bin/env python3 +"""Cross-sectional ML experiment: relative-strength features vs deployed v2 model. + +Hypothesis: in crypto, cross-sectional momentum (relative strength vs BTC and rank +among the universe) carries more signal than absolute technical features. The deployed +model (catboost_price_dir_v2.cbm) reaches prob_up>=0.65 on only 0.26% of bars, making +the live entry gate almost unreachable. This experiment tests whether adding +cross-sectional features produces a model with higher AUC and/or higher hit rate at +reachable thresholds, on a strict per-symbol walk-forward split (70/30, gap 48). + +No production files are touched; output is a report + optional candidate model file. + +Usage: + python scripts/quant_ml_cross_sectional.py [--output data/reports/ml_cross_sectional.md] +""" + +from __future__ import annotations + +import argparse +import json +import sys +from pathlib import Path + +import numpy as np +import pandas as pd + +REPO_ROOT = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(REPO_ROOT)) +sys.path.insert(0, str(REPO_ROOT / "scripts")) + +import quant_monthly_backtest as qmb +from quant_ml_eval_train import GAP_BARS, NEW_FEATURES, TRAIN_FRAC, _metrics + +BASE_FEATURES = NEW_FEATURES # 13 scale-free features of the deployed v2 model + +CROSS_FEATURES = BASE_FEATURES + [ + "btc_ret6", # BTC 6h return (market context) + "btc_ret24", # BTC 24h return + "btc_regime", # BTC close > SMA200 + "rel_ret6", # symbol ret6 - btc_ret6 (alpha vs market) + "rel_ret24", # symbol ret24 - btc_ret24 + "mom_rank24", # cross-sectional percentile rank of ret24 (0..1) + "mom_rank6", # cross-sectional percentile rank of ret6 + "vol_rank", # cross-sectional percentile rank of ATR14/close +] + + +def build_panel() -> pd.DataFrame: + """One row per (symbol, hour): base features + BTC context + cross-sectional ranks.""" + symbols, _venue = qmb.load_symbols("allowlist") + frames = [] + for sym, df in symbols.items(): + g = qmb._compute_features(df).copy() + g["ts_h"] = (g["timestamp_ms"] // 3_600_000).astype(np.int64) + g["symbol"] = sym + g["atr14"] = (g["high"] - g["low"]) / g["close"].replace(0, np.nan) + frames.append(g[["ts_h", "symbol", "close", "vol_ratio", "atr14"] + BASE_FEATURES]) + panel = pd.concat(frames, ignore_index=True) + + # BTC context (dedup ts_h: live collector may append duplicate bars) + btc = panel[panel["symbol"] == "BTC"].set_index("ts_h") + btc = btc[~btc.index.duplicated(keep="last")] + btc_close = btc["close"] + btc_ret6 = btc["ret6"] + btc_ret24 = btc["ret24"] + btc_sma200 = btc_close.rolling(200).mean() + btc_regime = (btc_close > btc_sma200).astype(float) + + panel["btc_ret6"] = panel["ts_h"].map(btc_ret6) + panel["btc_ret24"] = panel["ts_h"].map(btc_ret24) + panel["btc_regime"] = panel["ts_h"].map(btc_regime) + panel["rel_ret6"] = panel["ret6"] - panel["btc_ret6"] + panel["rel_ret24"] = panel["ret24"] - panel["btc_ret24"] + + # Cross-sectional ranks per hour + panel["mom_rank24"] = panel.groupby("ts_h")["ret24"].rank(pct=True) + panel["mom_rank6"] = panel.groupby("ts_h")["ret6"].rank(pct=True) + panel["vol_rank"] = panel.groupby("ts_h")["atr14"].rank(pct=True) + + # Target: next 1h close direction + panel = panel.sort_values(["symbol", "ts_h"]).reset_index(drop=True) + panel["target"] = panel.groupby("symbol")["close"].shift(-1) > panel["close"] + panel["target"] = panel["target"].astype(int) + return panel + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--output", type=Path, default=Path("data/reports/ml_cross_sectional.md")) + args = ap.parse_args() + + panel = build_panel() + print(f"panel rows: {len(panel)}, symbols: {panel['symbol'].nunique()}", flush=True) + + rows = [] + for sym, g in panel.groupby("symbol"): + g = g.dropna(subset=BASE_FEATURES + ["target"]).reset_index(drop=True) + if len(g) < 1500: + continue + cut = int(len(g) * TRAIN_FRAC) + rows.append((sym, g.iloc[: cut - GAP_BARS], g.iloc[cut:])) + print(f"symbols admitted: {len(rows)}", flush=True) + + df_train = pd.concat([tr for _, tr, _ in rows], ignore_index=True) + df_test = pd.concat([te for _, _, te in rows], ignore_index=True) + print(f"train rows={len(df_train)} test rows={len(df_test)}", flush=True) + + from catboost import CatBoostClassifier + + results = {} + + # 1) Deployed model baseline on the same test window (base features) + deployed = CatBoostClassifier() + deployed.load_model(str(qmb.MODELS_DIR / "catboost_price_dir_v2.cbm")) + results["deployed_v2"] = _eval(deployed, df_test, BASE_FEATURES) + print("deployed_v2:", json.dumps(results["deployed_v2"], ensure_ascii=False), flush=True) + + # 2) Candidate: same hyperparams, base features only (control for training data) + cand_base = CatBoostClassifier(iterations=400, depth=5, learning_rate=0.03, + l2_leaf_reg=5.0, loss_function="Logloss", + eval_metric="AUC", random_seed=42, verbose=0, + thread_count=-1) + cand_base.fit(df_train[BASE_FEATURES].values.astype(np.float64), + df_train["target"].values.astype(int)) + results["cand_base_only"] = _eval(cand_base, df_test, BASE_FEATURES) + print("cand_base_only:", json.dumps(results["cand_base_only"], ensure_ascii=False), flush=True) + + # 3) Candidate: cross-sectional features + cs_feats = [f for f in CROSS_FEATURES if f in df_train.columns] + cand_cs = CatBoostClassifier(iterations=400, depth=5, learning_rate=0.03, + l2_leaf_reg=5.0, loss_function="Logloss", + eval_metric="AUC", random_seed=42, verbose=0, + thread_count=-1) + cand_cs.fit(df_train[cs_feats].values.astype(np.float64), + df_train["target"].values.astype(int)) + results["cand_cross"] = _eval(cand_cs, df_test, cs_feats) + print("cand_cross:", json.dumps(results["cand_cross"], ensure_ascii=False), flush=True) + + # 4) Feature importance (cross model) + imp = sorted(zip(cs_feats, cand_cs.feature_importances_), key=lambda x: -x[1]) + print("top features:", [(f, round(v, 1)) for f, v in imp[:12]], flush=True) + + md = ["# Cross-sectional ML эксперимент (относительная сила + ранги)", "", + f"Сплит: per-symbol 70/30 gap {GAP_BARS}, train rows={len(df_train):,}, " + f"test rows={len(df_test):,}. Гиперпараметры = v2 (400/depth5/lr0.03).", + "", + "| Модель | AUC | hit@0.55 | cov@0.55 | hit@0.65 | cov@0.65 |", + "|---|---:|---:|---:|---:|---:|"] + for name in ("deployed_v2", "cand_base_only", "cand_cross"): + r = results[name] + md.append(f"| {name} | {r['auc']:.4f} | {r.get('hit_055', 0):.3f} | " + f"{r.get('cov_055', 0):.4f} | {r.get('hit_065', 0):.3f} | " + f"{r.get('cov_065', 0):.4f} |") + md += ["", "## Топ-фичи (cross-sectional модель)", ""] + for f, v in imp[:12]: + md.append(f"- {f}: {v:.1f}") + args.output.parent.mkdir(parents=True, exist_ok=True) + args.output.write_text("\n".join(md), encoding="utf-8") + print(f"report -> {args.output}", flush=True) + return 0 + + +def _eval(model, df_test, features): + X = df_test[features].values.astype(np.float64) + prob = model.predict_proba(X)[:, 1] + out = _metrics(df_test["target"].values.astype(int), np.asarray(prob, dtype=np.float64)) + # add 0.55 threshold (reachable by the deployed model) + mask = prob >= 0.55 + out["cov_055"] = float(mask.mean()) + if mask.sum() > 0: + out["hit_055"] = float(df_test["target"].values[mask].mean()) + return out + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/quant_ml_eval_train.py b/scripts/quant_ml_eval_train.py new file mode 100644 index 000000000..bc14df0c9 --- /dev/null +++ b/scripts/quant_ml_eval_train.py @@ -0,0 +1,307 @@ +#!/usr/bin/env python3 +"""Evaluate the deployed CatBoost direction model and train a candidate v2. + +Paper-fix session: 20260814T160500Z-aios-arena-paper-fix. +Compares the deployed `catboost_price_dir.cbm` (pooled raw-price features, +trained on all data in Colab) against a candidate trained on scale-free +features with a strict per-symbol walk-forward split. No order generation, +no portfolio mutation; read-only except writing the candidate model file +`data/quant/models/catboost_price_dir_v2.cbm` (+ .pkl). + +Usage: + python scripts/quant_ml_eval_train.py # eval + train candidate + python scripts/quant_ml_eval_train.py --eval-only +""" + +from __future__ import annotations + +import argparse +import glob +import json +import os +from pathlib import Path + +import numpy as np +import pandas as pd + +REPO_ROOT = Path(__file__).resolve().parents[1] +QUANT_DIR = REPO_ROOT / "data" / "quant" +MODELS_DIR = QUANT_DIR / "models" + +# --------------------------------------------------------------------- deploy -- +OLD_FEATURES = ["open", "high", "low", "close", "volume", "ret1", "ema12", "ema26", "rsi", "vol_ma"] +# Scale-free features for the candidate: identical scale across BTC and PEPE. +NEW_FEATURES = [ + "ret1", "ret3", "ret6", "ret12", "ret24", + "rsi", "bb_pos", "macd_norm", "ema_gap", + "vol_ratio", "vol_z", "bar_range_pct", "hl_pos", +] + +TRAIN_FRAC = 0.70 # first 70% of each symbol's history is train +GAP_BARS = 48 # gap between train and test to isolate rolling-feature leakage + + +def _compute_features(df: pd.DataFrame) -> pd.DataFrame: + """Add old (raw) and new (scale-free) feature columns; returns copy.""" + g = df.copy() + g["ret1"] = g["close"].pct_change() + g["ret3"] = g["close"].pct_change(3) + g["ret6"] = g["close"].pct_change(6) + g["ret12"] = g["close"].pct_change(12) + g["ret24"] = g["close"].pct_change(24) + g["ema12"] = g["close"].ewm(span=12).mean() + g["ema26"] = g["close"].ewm(span=26).mean() + # RSI(14) identical formula to aios_core/quant/ml_predictor.py + chg = g["close"].pct_change() + up = chg.clip(lower=0).rolling(14).mean() + down = (-chg.clip(upper=0)).rolling(14).mean() + g["rsi"] = 100.0 - 100.0 / (1.0 + up / down.replace(0, 1e-9)) + g["vol_ma"] = g["volume"].rolling(20).mean() + # Bollinger position: 0 = at lower band, 1 = at upper band + bb_mid = g["close"].rolling(20).mean() + bb_std = g["close"].rolling(20).std() + g["bb_pos"] = (g["close"] - bb_mid + 2 * bb_std) / (4 * bb_std).replace(0, np.nan) + g["bb_pos"] = g["bb_pos"].clip(0, 1) + # MACD(12,26) normalized by price (scale-free) + macd = g["ema12"] - g["ema26"] + g["macd_norm"] = macd / g["close"] + # EMA gap (scale-free trend strength) + g["ema_gap"] = (g["ema12"] - g["ema26"]) / g["close"] + # Volume ratio vs 20-bar mean and volume z-score + vol_mean = g["volume"].rolling(20).mean() + vol_std = g["volume"].rolling(20).std() + g["vol_ratio"] = g["volume"] / vol_mean.replace(0, np.nan) + g["vol_z"] = (g["volume"] - vol_mean) / vol_std.replace(0, np.nan) + # Intrabar geometry (scale-free) + g["bar_range_pct"] = (g["high"] - g["low"]) / g["close"] + g["hl_pos"] = (g["close"] - g["low"]) / (g["high"] - g["low"]).replace(0, np.nan) + # Target: next 1h close direction (same label as deployed model) + g["target"] = (g["close"].shift(-1) > g["close"]).astype(int) + return g + + +def _load_symbols() -> list[pd.DataFrame]: + """Load and featurize every binance 1h CSV under data/quant//binance/.""" + frames = [] + for path in sorted(glob.glob(str(QUANT_DIR / "*" / "binance" / "*_1h.csv"))): + df = pd.read_csv(path) + if len(df) < 120: + continue + df = df.sort_values("timestamp_ms") + df = df.dropna(subset=["open", "high", "low", "close", "volume"]) + g = _compute_features(df) + if len(g.dropna(subset=NEW_FEATURES + ["target"])) < 80: + continue + g["symbol"] = Path(path).stem.split("_")[0] + frames.append(g) + return frames + + +def _split(g: pd.DataFrame) -> tuple[pd.DataFrame, pd.DataFrame]: + """Per-symbol chronological train/test with a gap; no shuffling.""" + clean = g.dropna(subset=NEW_FEATURES + OLD_FEATURES + ["target"]).reset_index(drop=True) + cut = int(len(clean) * TRAIN_FRAC) + train = clean.iloc[: cut - GAP_BARS] + test = clean.iloc[cut:] + return train, test + + +def _metrics(y_true: np.ndarray, prob_up: np.ndarray) -> dict: + """AUC, accuracy, Brier and threshold hit-rates.""" + from sklearn.metrics import roc_auc_score + + out: dict = { + "n": int(len(y_true)), + "auc": None, + "acc": None, + "brier": None, + "hit_060": None, + "cov_060": None, + "hit_065": None, + "cov_065": None, + "up_rate": float(y_true.mean()), + } + if len(np.unique(y_true)) < 2: + return out + out["auc"] = float(roc_auc_score(y_true, prob_up)) + out["acc"] = float(((prob_up >= 0.5).astype(int) == y_true).mean()) + out["brier"] = float(((prob_up - y_true) ** 2).mean()) + for thr in (0.60, 0.65): + mask = prob_up >= thr + out[f"cov_{int(thr * 100):03d}"] = float(mask.mean()) + if mask.sum() > 0: + out[f"hit_{int(thr * 100):03d}"] = float(y_true[mask].mean()) + return out + + +def _eval_model(model, df_test: pd.DataFrame, features: list[str]) -> dict: + """Predict prob_up on the test rows; return metrics.""" + X = df_test[features].values.astype(np.float64) + proba = model.predict_proba(X) + prob_up = proba[:, 1] if proba.ndim == 2 else proba + return _metrics(df_test["target"].values.astype(int), np.asarray(prob_up, dtype=np.float64)) + + + + +def _simulate_engine_trades( + df_test: pd.DataFrame, prob_up: np.ndarray, threshold: float, + *, + fee_rate: float = 0.0015, + half_spread: float = 0.0005, + slippage: float = 0.0005, + take_profit_pct: float = 0.02, + stop_loss_pct: float = -0.01, + trail_ratio: float = 0.988, + max_bars: int = 72, +) -> dict: + """Simulate the Directional v2 paper exit rules on threshold entries. + + Entry at bar close (execution price = mid * (1 + half_spread + slippage)). + Exits execute AT THE TRIGGER LEVEL (conservative standard), not at the bar + close that happened to pierce it: + - take profit: exit at entry_mid * (1 + tp) * (1 - half_spread - slippage) + - stop loss: exit at entry_mid * (1 + sl) * (1 - half_spread - slippage) + - trailing: exit at max_seen * trail_ratio * (1 - half_spread - slippage) + - timeout: exit at the last close. + Costs: entry+exit fees + spread + slippage. + """ + trades = [] + df = df_test.reset_index(drop=True) + closes = df["close"].values + probs = np.asarray(prob_up, dtype=np.float64) + for i in range(len(df)): + if probs[i] < threshold: + continue + entry_mid = float(closes[i]) + entry_px = entry_mid * (1.0 + half_spread + slippage) + max_seen = entry_mid + exit_px = None + reason = None + for j in range(i + 1, min(i + 1 + max_bars, len(df))): + px = float(closes[j]) + if px >= entry_mid * (1.0 + take_profit_pct): + exit_px = entry_mid * (1.0 + take_profit_pct) * (1.0 - half_spread - slippage) + reason = "tp" + break + if px <= entry_mid * (1.0 + stop_loss_pct): + exit_px = entry_mid * (1.0 + stop_loss_pct) * (1.0 - half_spread - slippage) + reason = "sl" + break + if max_seen > entry_mid * 1.01 and px <= max_seen * trail_ratio: + exit_px = max_seen * trail_ratio * (1.0 - half_spread - slippage) + reason = "trail" + break + max_seen = max(max_seen, px) + if exit_px is None: + exit_px = float(closes[min(i + max_bars, len(df) - 1)]) * (1.0 - half_spread - slippage) + reason = "timeout" + gross = (exit_px - entry_px) / entry_px + net = gross - fee_rate * 2.0 + trades.append({"bar": i, "reason": reason, "gross_pct": gross * 100.0, "net_pct": net * 100.0}) + if not trades: + return {"n": 0} + nets = np.array([t["net_pct"] for t in trades]) + return { + "n": len(trades), + "wins": int((nets > 0).sum()), + "win_rate": float((nets > 0).mean()), + "avg_net_pct": float(nets.mean()), + "total_net_pct": float(nets.sum()), + "avg_gross_pct": float(np.mean([t["gross_pct"] for t in trades])), + "reasons": {r: sum(1 for t in trades if t["reason"] == r) for r in {"tp", "sl", "trail", "timeout"}}, + } + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--eval-only", action="store_true", help="do not train candidate") + args = parser.parse_args() + + frames = _load_symbols() + print(f"loaded {len(frames)} symbols") + trains, tests = [], [] + for g in frames: + tr, te = _split(g) + trains.append(tr) + tests.append(te) + df_train = pd.concat(trains, ignore_index=True) + df_test = pd.concat(tests, ignore_index=True) + print(f"train rows={len(df_train)} test rows={len(df_test)}") + + result: dict = {"deployed": None, "candidate_v2": None} + + # 1. Deployed model on the same test window (old raw features). + deployed_path = MODELS_DIR / "catboost_price_dir.cbm" + if deployed_path.exists(): + from catboost import CatBoostClassifier + + model = CatBoostClassifier() + model.load_model(str(deployed_path)) + result["deployed"] = _eval_model(model, df_test, OLD_FEATURES) + print("DEPLOYED (raw features):", json.dumps(result["deployed"], ensure_ascii=False)) + + if args.eval_only: + print(json.dumps(result, indent=2, ensure_ascii=False)) + return 0 + + # 2. Candidate v2 on scale-free features, strict walk-forward. + from catboost import CatBoostClassifier + + X_tr = df_train[NEW_FEATURES].values.astype(np.float64) + y_tr = df_train["target"].values.astype(int) + candidate = CatBoostClassifier( + iterations=400, + depth=5, + learning_rate=0.03, + l2_leaf_reg=5.0, + loss_function="Logloss", + eval_metric="AUC", + random_seed=42, + verbose=0, + thread_count=-1, + ) + candidate.fit(X_tr, y_tr) + result["candidate_v2"] = _eval_model(candidate, df_test, NEW_FEATURES) + print("CANDIDATE v2 (scale-free):", json.dumps(result["candidate_v2"], ensure_ascii=False)) + + # 3. Persist candidate only when it beats the deployed AUC and reaches + # a non-degenerate probability range on OOS. + dep, cand = result["deployed"], result["candidate_v2"] + better = ( + cand is not None + and (cand.get("auc") or 0.0) > (dep.get("auc") or 0.0) + and (cand.get("hit_065") or 0.0) >= 0.65 + and (cand.get("cov_065") or 0.0) >= 0.0005 + ) + if better: + MODELS_DIR.mkdir(parents=True, exist_ok=True) + candidate.save_model(str(MODELS_DIR / "catboost_price_dir_v2.cbm")) + import joblib + + joblib.dump(candidate, MODELS_DIR / "catboost_price_dir_v2.pkl") + print("✅ saved candidate -> catboost_price_dir_v2.cbm/.pkl") + else: + print("ℹ️ candidate not saved (does not satisfy improvement criteria)") + + # Engine-style paper trade simulation for the candidate (threshold 0.60/0.65). + if result.get("candidate_v2") is not None: + cand = CatBoostClassifier() + cand = candidate + X_test = df_test[NEW_FEATURES].values.astype(np.float64) + proba = cand.predict_proba(X_test) + prob_up = proba[:, 1] + for thr in (0.60, 0.65): + sim = _simulate_engine_trades(df_test, prob_up, thr) + print(f"SIM threshold={thr}:", json.dumps(sim, ensure_ascii=False)) + result.setdefault("simulations", {})[str(thr)] = sim + + report = REPO_ROOT / "data" / "reports" / "quant_ml_v2_eval.json" + report.parent.mkdir(parents=True, exist_ok=True) + report.write_text(json.dumps(result, indent=2, ensure_ascii=False)) + print("report ->", report) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/quant_ml_feature_experiment.py b/scripts/quant_ml_feature_experiment.py new file mode 100644 index 000000000..60f7fa2a9 --- /dev/null +++ b/scripts/quant_ml_feature_experiment.py @@ -0,0 +1,160 @@ +#!/usr/bin/env python3 +"""Feature-engineering experiment for the quant direction model. + +Compares the deployed 13 scale-free features against an extended set +(+ATR%, range z, longer momentum, hour-of-day seasonality, volume median +ratio) on the SAME OOS window. Read-only; writes a comparison report. + +Usage: + python scripts/quant_ml_feature_experiment.py +""" + +from __future__ import annotations + +import glob +import json +import sys +from pathlib import Path + +import numpy as np +import pandas as pd + +REPO_ROOT = Path(__file__).resolve().parents[1] +QUANT_DIR = REPO_ROOT / "data" / "quant" + +BASE_FEATURES = [ + "ret1", "ret3", "ret6", "ret12", "ret24", + "rsi", "bb_pos", "macd_norm", "ema_gap", + "vol_ratio", "vol_z", "bar_range_pct", "hl_pos", +] +EXTRA_FEATURES = [ + "atr_pct", "range_z", "ret36", "ret48", "ret72", + "hour_sin", "hour_cos", "vol_med_ratio", +] +FULL_FEATURES = BASE_FEATURES + EXTRA_FEATURES + +TRAIN_FRAC = 0.70 +GAP_BARS = 48 + + +def _compute(df: pd.DataFrame, features: list[str]) -> pd.DataFrame: + g = df.copy() + g["ret1"] = g["close"].pct_change() + g["ret3"] = g["close"].pct_change(3) + g["ret6"] = g["close"].pct_change(6) + g["ret12"] = g["close"].pct_change(12) + g["ret24"] = g["close"].pct_change(24) + g["ret36"] = g["close"].pct_change(36) + g["ret48"] = g["close"].pct_change(48) + g["ret72"] = g["close"].pct_change(72) + g["ema12"] = g["close"].ewm(span=12).mean() + g["ema26"] = g["close"].ewm(span=26).mean() + chg = g["close"].pct_change() + up = chg.clip(lower=0).rolling(14).mean() + down = (-chg.clip(upper=0)).rolling(14).mean() + g["rsi"] = 100.0 - 100.0 / (1.0 + up / down.replace(0, 1e-9)) + bb_mid = g["close"].rolling(20).mean() + bb_std = g["close"].rolling(20).std() + g["bb_pos"] = ((g["close"] - bb_mid + 2 * bb_std) / (4 * bb_std).replace(0, np.nan)).clip(0, 1) + macd = g["ema12"] - g["ema26"] + g["macd_norm"] = macd / g["close"] + g["ema_gap"] = (g["ema12"] - g["ema26"]) / g["close"] + vol_mean = g["volume"].rolling(20).mean() + vol_std = g["volume"].rolling(20).std() + g["vol_ratio"] = g["volume"] / vol_mean.replace(0, np.nan) + g["vol_z"] = (g["volume"] - vol_mean) / vol_std.replace(0, np.nan) + g["bar_range_pct"] = (g["high"] - g["low"]) / g["close"] + g["hl_pos"] = (g["close"] - g["low"]) / (g["high"] - g["low"]).replace(0, np.nan) + # Extra features + prev_close = g["close"].shift(1) + tr = pd.concat( + [ + (g["high"] - g["low"]), + (g["high"] - prev_close).abs(), + (g["low"] - prev_close).abs(), + ], + axis=1, + ).max(axis=1) + atr14 = tr.rolling(14).mean() + g["atr_pct"] = atr14 / g["close"] + range_series = (g["high"] - g["low"]) / g["close"] + g["range_z"] = (range_series - range_series.rolling(100).mean()) / range_series.rolling(100).std().replace(0, np.nan) + g["vol_med_ratio"] = g["volume"] / g["volume"].rolling(7).median().replace(0, np.nan) + ts_hour = pd.to_datetime(g["timestamp_ms"], unit="ms").dt.hour + g["hour_sin"] = np.sin(2 * np.pi * ts_hour / 24.0) + g["hour_cos"] = np.cos(2 * np.pi * ts_hour / 24.0) + g["target"] = (g["close"].shift(-1) > g["close"]).astype(int) + return g + + +def _split(g: pd.DataFrame, features: list[str]) -> tuple[pd.DataFrame, pd.DataFrame]: + clean = g.dropna(subset=features + ["target"]).reset_index(drop=True) + cut = int(len(clean) * TRAIN_FRAC) + return clean.iloc[: cut - GAP_BARS], clean.iloc[cut:] + + +def _eval(model, df_test: pd.DataFrame, features: list[str]) -> dict: + from sklearn.metrics import roc_auc_score + + y = df_test["target"].values.astype(int) + proba = model.predict_proba(df_test[features].values.astype(np.float64)) + p = proba[:, 1] + out = { + "n": int(len(y)), + "auc": round(float(roc_auc_score(y, p)), 4) if len(np.unique(y)) > 1 else None, + "hit_060": None, + "cov_060": None, + "hit_065": None, + "cov_065": None, + } + for thr in (0.60, 0.65): + mask = p >= thr + key = f"cov_{int(thr * 100):03d}" + out[key] = round(float(mask.mean()), 5) + if mask.sum() > 0: + out[f"hit_{int(thr * 100):03d}"] = round(float(y[mask].mean()), 4) + return out + + +def main() -> int: + from catboost import CatBoostClassifier + + frames = [] + for path in sorted(glob.glob(str(QUANT_DIR / "*" / "binance" / "*_1h.csv"))): + df = pd.read_csv(path).sort_values("timestamp_ms") + df = df.dropna(subset=["open", "high", "low", "close", "volume"]) + g = _compute(df, FULL_FEATURES) + if len(g.dropna(subset=BASE_FEATURES + ["target"])) < 150: + continue + g["symbol"] = Path(path).stem.split("_")[0] + frames.append(g) + print(f"loaded {len(frames)} symbols") + + report = {} + for name, features in (("base_13", BASE_FEATURES), ("full_21", FULL_FEATURES)): + trains, tests = [], [] + for g in frames: + tr, te = _split(g, features) + if len(tr) > 100 and len(te) > 50: + trains.append(tr) + tests.append(te) + df_tr = pd.concat(trains, ignore_index=True) + df_te = pd.concat(tests, ignore_index=True) + model = CatBoostClassifier( + iterations=400, depth=5, learning_rate=0.03, l2_leaf_reg=5.0, + loss_function="Logloss", eval_metric="AUC", random_seed=42, + verbose=0, thread_count=-1, + ) + model.fit(df_tr[features].values.astype(np.float64), df_tr["target"].values.astype(int)) + report[name] = {"train_rows": len(df_tr), ** _eval(model, df_te, features)} + print(f"{name}: {report[name]}") + + out = REPO_ROOT / "data" / "reports" / "quant_ml_feature_experiment.json" + out.parent.mkdir(parents=True, exist_ok=True) + out.write_text(json.dumps(report, indent=2, ensure_ascii=False)) + print("report ->", out) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/quant_ml_funding_experiment.py b/scripts/quant_ml_funding_experiment.py new file mode 100755 index 000000000..3755ce5fa --- /dev/null +++ b/scripts/quant_ml_funding_experiment.py @@ -0,0 +1,226 @@ +#!/usr/bin/env python3 +"""F-2: funding-rate features experiment (new data class, Binance Futures). + +Funding rate (8h intervals, public API) is merged onto 1h bars WITHOUT lookahead: +for bar t only funding with fundingTime <= t is used (ffill), aggregates over +closed funding periods only. + +Features (per symbol): + f_last, f_24h_sum, f_7d_sum, f_7d_std, f_neg_frac7, f_30d_z, f_sign, f_extreme + +Models: CatBoost v2 hyperparams; honest per-symbol 70/30 gap 48 OOS (~5 months +train / ~2.2 months test on 166 days of funding). PnL via the 1:1 engine replica +(live config). Baseline: base 13 features only. + +Usage: + python scripts/quant_ml_funding_experiment.py [--output data/reports/ml_funding_experiment.md] +""" + +from __future__ import annotations + +import argparse +import json +import sys +from datetime import UTC, datetime +from pathlib import Path + +import numpy as np +import pandas as pd + +REPO_ROOT = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(REPO_ROOT)) +sys.path.insert(0, str(REPO_ROOT / "scripts")) + +import quant_monthly_backtest as qmb +from quant_ml_eval_train import GAP_BARS, _metrics +from quant_prod_3m_backtest import build_config, load_unit_env, run_backtest, summarize + +BASE_FEATURES = qmb.FEATURES +FUNDING_DIR = qmb.QUANT_DIR / "funding_oi" + +FUNDING_FEATURES = [ + "f_last", "f_24h_sum", "f_7d_sum", "f_7d_std", "f_neg_frac7", "f_30d_z", "f_sign", "f_extreme", +] + + +def load_funding(sym: str) -> pd.DataFrame: + p = FUNDING_DIR / f"{sym}_funding.json" + if not p.exists(): + return pd.DataFrame(columns=["fundingTime", "fundingRate"]) + rows = json.loads(p.read_text()) + df = pd.DataFrame(rows) + df["fundingTime"] = df["fundingTime"].astype(np.int64) + df["fundingRate"] = df["fundingRate"].astype(float) + return df.sort_values("fundingTime") + + +def add_funding_features(df: pd.DataFrame, sym: str) -> pd.DataFrame: + """Merge funding onto 1h bars (closed funding periods only, no lookahead). + + Vectorized with merge_asof: aggregates are computed on the 8h funding grid, + then the LAST KNOWN value (fundingTime <= bar time) is attached to each bar. + """ + g = df.copy() + f = load_funding(sym) + if f.empty: + for c in FUNDING_FEATURES: + g[c] = np.nan + return g + + fr = pd.DataFrame({ + "fundingTime": f["fundingTime"].values, + "rate": f["fundingRate"].values, + }).sort_values("fundingTime") + fr = fr[~fr["fundingTime"].duplicated(keep="last")].reset_index(drop=True) + + r = fr["rate"] + fr["f_last"] = r + fr["f_24h_sum"] = r.rolling(3, min_periods=1).sum() # last 3 funding (24h) + fr["f_7d_sum"] = r.rolling(21, min_periods=1).sum() # 21 funding (7d) + fr["f_7d_std"] = r.rolling(21, min_periods=2).std() + fr["f_neg_frac7"] = (r < 0).astype(float).rolling(21, min_periods=1).mean() + fr["f_30d_mean"] = r.rolling(90, min_periods=10).mean() + fr["f_30d_std"] = r.rolling(90, min_periods=10).std() + fr["f_30d_p95_abs"] = r.abs().rolling(90, min_periods=10).quantile(0.95) + fr["f_30d_z"] = (fr["f_last"] - fr["f_30d_mean"]) / fr["f_30d_std"].replace(0, np.nan) + fr["f_extreme"] = (r.abs() > fr["f_30d_p95_abs"]).astype(float) + + bars = g[["timestamp_ms"]].copy().sort_values("timestamp_ms") + merged = pd.merge_asof(bars, fr[["fundingTime", "f_last", "f_24h_sum", "f_7d_sum", + "f_7d_std", "f_neg_frac7", "f_30d_z", "f_extreme"]], + left_on="timestamp_ms", right_on="fundingTime", + direction="backward") + merged = merged.set_index("timestamp_ms") + merged["f_sign"] = np.sign(merged["f_last"]) + for c in FUNDING_FEATURES: + g[c] = merged[c].values + return g + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--output", type=Path, default=Path("data/reports/ml_funding_experiment.md")) + args = ap.parse_args() + + env = load_unit_env() + cfg = build_config(env) + + symbols, _venue = qmb.load_symbols("allowlist") + frames = [] + for sym, df in symbols.items(): + g = qmb._compute_features(df).copy() + g["symbol"] = sym + g = add_funding_features(g, sym) + frames.append(g) + panel = pd.concat(frames, ignore_index=True) + panel["target"] = panel.groupby("symbol")["close"].shift(-1) > panel["close"] + panel["target"] = panel["target"].astype(int) + print(f"panel rows={len(panel)} symbols={panel['symbol'].nunique()}", flush=True) + + rows = [] + for sym, g in panel.groupby("symbol"): + g = g.dropna(subset=BASE_FEATURES + ["target"]).reset_index(drop=True) + if len(g) < 1500: + continue + cut = int(len(g) * 0.70) + rows.append((sym, g.iloc[: cut - GAP_BARS], g.iloc[cut:])) + df_train = pd.concat([tr for _, tr, _ in rows], ignore_index=True) + df_test = pd.concat([te for _, _, te in rows], ignore_index=True) + print(f"train rows={len(df_train)} test rows={len(df_test)}", flush=True) + + from catboost import CatBoostClassifier + + fcols = [c for c in FUNDING_FEATURES if c in df_train.columns] + print(f"funding cols used: {fcols}", flush=True) + + def fit_eval(feats, name): + m = CatBoostClassifier(iterations=400, depth=5, learning_rate=0.03, + l2_leaf_reg=5.0, loss_function="Logloss", + eval_metric="AUC", random_seed=42, verbose=0, thread_count=-1) + m.fit(df_train[feats].values.astype(np.float64), + df_train["target"].values.astype(int)) + X = df_test[feats].values.astype(np.float64) + p = m.predict_proba(X)[:, 1] + r = _metrics(df_test["target"].values.astype(int), np.asarray(p, dtype=np.float64)) + for thr in (0.55, 0.60, 0.65): + mask = p >= thr + r[f"cov_{int(thr*100):03d}"] = float(mask.mean()) + if mask.sum() > 0: + r[f"hit_{int(thr*100):03d}"] = float(df_test["target"].values[mask].mean()) + print(f"{name}: auc={r['auc']:.4f} hit55={r.get('hit_055',0):.3f} " + f"cov55={r.get('cov_055',0):.4f} hit60={r.get('hit_060',0):.3f} " + f"cov60={r.get('cov_060',0):.4f}", flush=True) + return r, m + + r_base, m_base = fit_eval(BASE_FEATURES, "cand_base") + r_fund, m_fund = fit_eval(BASE_FEATURES + fcols, "cand_funding") + + imp = sorted(zip(BASE_FEATURES + fcols, m_fund.feature_importances_), + key=lambda x: -x[1]) + print("top features:", [(f, round(float(v), 1)) for f, v in imp[:14]], flush=True) + + # ---- engine PnL on the same OOS window ---- + from quant_tf_universe_experiment import build_series + + s1h = build_series(env, None, "1h") + t0 = min(int(si["times"][int(len(si["times"]) * 0.70)]) for si in s1h.values()) + # deployed model (prod baseline) + funding model PnL + dep = CatBoostClassifier() + dep.load_model(str(qmb.MODELS_DIR / "catboost_price_dir_v2.cbm")) + pnl_rows = [] + for label, model, feats in (("deployed_v2", dep, BASE_FEATURES), + ("funding_model", m_fund, BASE_FEATURES + fcols)): + probs = {} + for key, s in s1h.items(): + sym = s["symbol"] + g = s["feats"].copy() + g = add_funding_features(g, sym) + X = g[feats].values.astype(np.float64) + probs[key] = model.predict_proba(X)[:, 1] + s["probs"] = probs[key] + res = run_backtest(s1h, cfg, probs, t0) + m = summarize(res, cfg) + pf = m["pf"] if m["pf"] == float("inf") else round(m["pf"], 2) + print(f"PnL {label}: n={m['n']} wr={m['wr']:.1f}% pf={pf} pnl={m['pnl']:+.2f}$", flush=True) + pnl_rows.append((label, m)) + + d0 = datetime.fromtimestamp(t0 / 1000, tz=UTC).strftime("%Y-%m-%d") + d1 = datetime.fromtimestamp(max(int(si["times"][-1]) for si in s1h.values()) / 1000, + tz=UTC).strftime("%Y-%m-%d") + + def fnum(v, nd=3): + return "inf" if v == float("inf") else f"{v:.{nd}f}" + + md = ["# F-2: funding-rate фичи — эксперимент (новый класс данных)", "", + f"OOS-окно: {d0} .. {d1} (funding: 166 дней, 8h начисления) | " + f"сплит 70/30 gap {GAP_BARS} | train {len(df_train):,} / test {len(df_test):,}", + "", + "Методика: funding без lookahead (только начисления с fundingTime <= t, ffill);", + "фичи: f_last, f_24h_sum, f_7d_sum, f_7d_std, f_neg_frac7, f_30d_z, f_sign, f_extreme.", + "Катбуст 400/5/0.03; PnL — движок 1:1 (live config).", + "", + "| Модель | AUC | hit@0.55 | cov@0.55 | hit@0.60 | cov@0.60 | Сделок | PnL $ |", + "|---|---:|---:|---:|---:|---:|---:|---:|"] + for name, r in (("cand_base", r_base), ("cand_funding", r_fund)): + md.append(f"| {name} | {r['auc']:.4f} | {fnum(r.get('hit_055',0))} | " + f"{fnum(r.get('cov_055',0),4)} | {fnum(r.get('hit_060',0))} | " + f"{fnum(r.get('cov_060',0),4)} | — | — |") + for label, m in pnl_rows: + pf = fnum(m["pf"], 2) + md.append(f"| {label} (PnL) | — | — | — | — | — | {m['n']} | {m['pnl']:+.2f} |") + md += ["", "## Топ-фичи funding-модели", ""] + for f, v in imp[:14]: + md.append(f"- {f}: {v:.1f}") + md += ["", "## Вывод", + "", + "Правило решения: гипотеза жива, только если AUC(funding) > AUC(base) + 0.005 " + "И PnL(funding) > 0. Иначе — funding rate на 8h-начислениях не несёт edge " + "для 1h-направления после издержек."] + args.output.parent.mkdir(parents=True, exist_ok=True) + args.output.write_text("\n".join(md), encoding="utf-8") + print(f"report -> {args.output}", flush=True) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/quant_ml_horizon_experiment.py b/scripts/quant_ml_horizon_experiment.py new file mode 100755 index 000000000..8e03eccd3 --- /dev/null +++ b/scripts/quant_ml_horizon_experiment.py @@ -0,0 +1,141 @@ +#!/usr/bin/env python3 +"""F-4: multi-horizon target experiment. + +Does predicting direction H hours ahead (H=4, 24) beat the 1h target? +Hypothesis: longer horizons are less noisy, so a model trained on the h4/h24 +target may be more informative for entries (engine still exits via TP/SL). + +Honest per-symbol 70/30 gap 48 OOS, CatBoost v2 hyperparams, base 13 features. +AUC/hit/cov + engine PnL (1:1 live config) for the best horizon. + +Usage: + python scripts/quant_ml_horizon_experiment.py [--output data/reports/ml_horizon_experiment.md] +""" + +from __future__ import annotations + +import argparse +import sys +from datetime import UTC, datetime +from pathlib import Path + +import numpy as np +import pandas as pd + +REPO_ROOT = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(REPO_ROOT)) +sys.path.insert(0, str(REPO_ROOT / "scripts")) + +import quant_monthly_backtest as qmb +from quant_ml_eval_train import GAP_BARS, _metrics +from quant_prod_3m_backtest import build_config, load_unit_env, run_backtest, summarize + +BASE_FEATURES = qmb.FEATURES +HORIZONS = {"h1": 1, "h4": 4, "h24": 24} + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--output", type=Path, default=Path("data/reports/ml_horizon_experiment.md")) + args = ap.parse_args() + + env = load_unit_env() + cfg = build_config(env) + + symbols, _venue = qmb.load_symbols("allowlist") + frames = [] + for sym, df in symbols.items(): + g = qmb._compute_features(df).copy() + g["symbol"] = sym + frames.append(g) + panel = pd.concat(frames, ignore_index=True) + print(f"panel rows={len(panel)} symbols={panel['symbol'].nunique()}", flush=True) + + from catboost import CatBoostClassifier + + results = {} + for name, h in HORIZONS.items(): + # target: close moves UP over the next h bars (h>=1) + panel[f"target_{name}"] = ( + panel.groupby("symbol")["close"].shift(-h) > panel["close"] + ).astype(int) + rows = [] + for sym, g in panel.groupby("symbol"): + g = g.dropna(subset=BASE_FEATURES + [f"target_{name}"]).reset_index(drop=True) + if len(g) < 1500: + continue + cut = int(len(g) * 0.70) + rows.append((sym, g.iloc[: cut - GAP_BARS], g.iloc[cut:])) + df_train = pd.concat([tr for _, tr, _ in rows], ignore_index=True) + df_test = pd.concat([te for _, _, te in rows], ignore_index=True) + + m = CatBoostClassifier(iterations=400, depth=5, learning_rate=0.03, + l2_leaf_reg=5.0, loss_function="Logloss", + eval_metric="AUC", random_seed=42, verbose=0, thread_count=-1) + m.fit(df_train[BASE_FEATURES].values.astype(np.float64), + df_train[f"target_{name}"].values.astype(int)) + p = m.predict_proba(df_test[BASE_FEATURES].values.astype(np.float64))[:, 1] + r = _metrics(df_test[f"target_{name}"].values.astype(int), np.asarray(p, dtype=np.float64)) + for thr in (0.55, 0.60, 0.65): + mask = p >= thr + r[f"cov_{int(thr*100):03d}"] = float(mask.mean()) + if mask.sum() > 0: + r[f"hit_{int(thr*100):03d}"] = float(df_test["target_{}".format(name)].values[mask].mean()) + print(f"{name}: auc={r['auc']:.4f} up_rate={r['up_rate']:.3f} " + f"hit55={r.get('hit_055',0):.3f} cov55={r.get('cov_055',0):.4f}", flush=True) + results[name] = (r, m) + + # engine PnL: deployed (h1 prod) vs h4 model vs h24 model on the same OOS window + from quant_tf_universe_experiment import build_series + + s1h = build_series(env, None, "1h") + t0 = min(int(si["times"][int(len(si["times"]) * 0.70)]) for si in s1h.values()) + dep = CatBoostClassifier() + dep.load_model(str(qmb.MODELS_DIR / "catboost_price_dir_v2.cbm")) + pnl_rows = [] + for label, model in (("deployed_v2(h1)", dep), ("h4_model", results["h4"][1]), + ("h24_model", results["h24"][1])): + probs = {} + for key, s in s1h.items(): + X = s["feats"][BASE_FEATURES].values.astype(np.float64) + probs[key] = model.predict_proba(X)[:, 1] + s["probs"] = probs[key] + res = run_backtest(s1h, cfg, probs, t0) + m = summarize(res, cfg) + pf = m["pf"] if m["pf"] == float("inf") else round(m["pf"], 2) + print(f"PnL {label}: n={m['n']} wr={m['wr']:.1f}% pf={pf} pnl={m['pnl']:+.2f}$", flush=True) + pnl_rows.append((label, m)) + + d0 = datetime.fromtimestamp(t0 / 1000, tz=UTC).strftime("%Y-%m-%d") + d1 = datetime.fromtimestamp(max(int(si["times"][-1]) for si in s1h.values()) / 1000, + tz=UTC).strftime("%Y-%m-%d") + + def fnum(v, nd=3): + return "inf" if v == float("inf") else f"{v:.{nd}f}" + + md = ["# F-4: multi-horizon target эксперимент (h1/h4/h24)", "", + f"OOS: {d0} .. {d1} | сплит 70/30 gap {GAP_BARS} | base 13 фич | CatBoost v2", + "", + "| Горизонт | AUC | up_rate | hit@0.55 | cov@0.55 | hit@0.60 |", + "|---|---:|---:|---:|---:|---:|"] + for name in HORIZONS: + r = results[name][0] + md.append(f"| {name} | {r['auc']:.4f} | {r['up_rate']:.3f} | " + f"{fnum(r.get('hit_055',0))} | {fnum(r.get('cov_055',0),4)} | " + f"{fnum(r.get('hit_060',0))} |") + md += ["", "| Модель (PnL движок) | Сделок | WR | PF | PnL $ |", + "|---|---:|---:|---:|---:|"] + for label, m in pnl_rows: + pf = fnum(m["pf"], 2) + md.append(f"| {label} | {m['n']} | {m['wr']:.1f}% | {pf} | {m['pnl']:+.2f} |") + md += ["", "## Вывод", + "", + "Правило: гипотеза жива, только если AUC(h4/h24) > AUC(h1)+0.005 И PnL > 0."] + args.output.parent.mkdir(parents=True, exist_ok=True) + args.output.write_text("\n".join(md), encoding="utf-8") + print(f"report -> {args.output}", flush=True) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/quant_ml_monitor.py b/scripts/quant_ml_monitor.py new file mode 100644 index 000000000..e24f63986 --- /dev/null +++ b/scripts/quant_ml_monitor.py @@ -0,0 +1,127 @@ +#!/usr/bin/env python3 +"""ML drift & freshness monitor for the quant signal pipeline. + +Reads ml_signals.json and the underlying CSVs, tracks the prob_up +distribution history, flags stale data or a degenerate (collapsed) +distribution. Read-only; appends one history entry per run. + +Usage: + python scripts/quant_ml_monitor.py [--history data/reports/quant_ml_monitor_history.json] +""" + +from __future__ import annotations + +import argparse +import glob +import json +import statistics +import sys +import time +from datetime import datetime, timezone +from pathlib import Path + +REPO_ROOT = Path(__file__).resolve().parents[1] +QUANT_DIR = REPO_ROOT / "data" / "quant" +SIGNALS = QUANT_DIR / "ml_signals.json" +HISTORY = REPO_ROOT / "data" / "reports" / "quant_ml_monitor_history.json" +OUT = REPO_ROOT / "data" / "reports" / "quant_ml_monitor.json" + +MAX_SIGNAL_AGE_H = 3.0 +MAX_DATA_AGE_H = 4.0 +MIN_PROB_SPREAD = 0.05 # below this -> suspiciously constant distribution + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--history", type=Path, default=HISTORY) + args = parser.parse_args() + + now = time.time() + problems: list[str] = [] + + # 1) Signals file freshness + distribution. + if not SIGNALS.exists(): + problems.append(f"ml_signals.json not found: {SIGNALS}") + print(json.dumps({"status": "ERROR", "problems": problems}, ensure_ascii=False, indent=2)) + return 1 + sig_age_h = (now - SIGNALS.stat().st_mtime) / 3600 + payload = json.loads(SIGNALS.read_text(encoding="utf-8")) + sigs = [s for s in payload.get("signals", []) if s.get("ok") and isinstance(s.get("prob_up"), (int, float))] + if sig_age_h > MAX_SIGNAL_AGE_H: + problems.append(f"ml_signals.json stale: {sig_age_h:.1f}h > {MAX_SIGNAL_AGE_H}h") + probs = [float(s["prob_up"]) for s in sigs] + + # 2) Underlying CSV freshness (median of newest bar age). + data_ages = [] + for f in glob.glob(str(QUANT_DIR / "*" / "binance" / "*_1h.csv")): + try: + with open(f) as fh: + lines = fh.readlines() + last_ts = int(lines[-1].split(",")[0]) + data_ages.append((now - last_ts / 1000) / 3600) + except (OSError, ValueError, IndexError): + continue + if data_ages: + median_age = statistics.median(data_ages) + if median_age > MAX_DATA_AGE_H: + problems.append(f"median CSV age {median_age:.1f}h > {MAX_DATA_AGE_H}h") + else: + median_age = None + problems.append("no CSV data found") + + # 3) Distribution stats. + spread = max(probs) - min(probs) if probs else 0.0 + n_ge_060 = sum(1 for p in probs if p >= 0.60) + n_ge_065 = sum(1 for p in probs if p >= 0.65) + if probs and spread < MIN_PROB_SPREAD: + problems.append(f"prob_up degenerate: spread={spread:.4f} < {MIN_PROB_SPREAD}") + + entry = { + "ts": datetime.now(timezone.utc).isoformat(), + "n_signals": len(probs), + "prob_mean": round(statistics.mean(probs), 4) if probs else None, + "prob_median": round(statistics.median(probs), 4) if probs else None, + "prob_min": round(min(probs), 4) if probs else None, + "prob_max": round(max(probs), 4) if probs else None, + "prob_spread": round(spread, 4), + "n_ge_060": n_ge_060, + "n_ge_065": n_ge_065, + "signal_age_h": round(sig_age_h, 2), + "median_csv_age_h": round(median_age, 2) if median_age is not None else None, + "model": payload.get("model_available"), + "generated_at": payload.get("generated_at"), + } + + # 4) Compare with previous snapshot (drift = big shift in mean). + history = [] + if args.history.exists(): + try: + history = json.loads(args.history.read_text(encoding="utf-8")) + except (OSError, ValueError): + history = [] + drift = None + if history and entry["prob_mean"] is not None and history[-1].get("prob_mean") is not None: + delta = entry["prob_mean"] - history[-1]["prob_mean"] + if abs(delta) > 0.10: + drift = round(delta, 4) + problems.append(f"prob_mean drift vs prev: {delta:+.4f}") + history.append(entry) + history = history[-200:] + args.history.parent.mkdir(parents=True, exist_ok=True) + args.history.write_text(json.dumps(history, indent=2, ensure_ascii=False)) + + report = { + "status": "WARN" if problems else "OK", + "problems": problems, + "current": entry, + "prev_mean": history[-2]["prob_mean"] if len(history) >= 2 else None, + "drift_vs_prev": drift, + } + OUT.parent.mkdir(parents=True, exist_ok=True) + OUT.write_text(json.dumps(report, indent=2, ensure_ascii=False)) + print(json.dumps(report, ensure_ascii=False, indent=2)) + return 1 if problems else 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/quant_ml_mtf_experiment.py b/scripts/quant_ml_mtf_experiment.py new file mode 100755 index 000000000..371c467f3 --- /dev/null +++ b/scripts/quant_ml_mtf_experiment.py @@ -0,0 +1,288 @@ +#!/usr/bin/env python3 +"""Multi-timeframe ML experiment (hypothesis F, stage 1). + +Adds higher-timeframe features (4h/1d, computed ONLY from closed bars <= t, so no +lookahead) and intraday seasonality to the 13 base 1h features, then compares on an +honest per-symbol walk-forward split (70/30, gap 48): +- deployed v2 model (baseline, base features); +- fresh candidate, base features only (control); +- fresh candidate, base + MTF features (hypothesis); +- engine PnL simulation (1:1 live config, fold-0.70 OOS window) for each. + +If AUC does not clearly beat ~0.545 AND PnL stays negative, the local-data +ML hypothesis is considered exhausted (external signals would be needed). + +Usage: + python scripts/quant_ml_mtf_experiment.py [--output data/reports/ml_mtf_experiment.md] +""" + +from __future__ import annotations + +import argparse +import json +import sys +from datetime import UTC, datetime +from pathlib import Path + +import numpy as np +import pandas as pd + +REPO_ROOT = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(REPO_ROOT)) +sys.path.insert(0, str(REPO_ROOT / "scripts")) + +import quant_monthly_backtest as qmb +from quant_ml_eval_train import GAP_BARS, _metrics +from quant_prod_3m_backtest import build_config, load_unit_env, run_backtest, summarize + +BASE_FEATURES = qmb.FEATURES # 13 scale-free 1h features + +MTF_FEATURES = [ + # --- 4h timeframe (closed 4h bars only) --- + "ret4h_1", # 4h close-to-close return (last closed 4h bar) + "ret4h_6", # 4h return over 6 closed 4h bars (~24h) + "rsi4h", # RSI on 4h closes + "bb_pos4h", # Bollinger position on 4h closes + "dist_sma20_4h", # (close - sma20_4h) / close + # --- 1d timeframe (closed daily bars only) --- + "ret_d1", # daily close-to-close return + "ret_d7", # 7d return + "dist_sma20_1d", # (close - sma20_1d) / close + "day_pos", # position in the last CLOSED day's range + "day_range_pct", # last closed day range / close + # --- intraday seasonality --- + "hour_sin", + "hour_cos", + "dow", # day of week 0..6 +] + + +def _rsi(series: pd.Series, period: int = 14) -> pd.Series: + chg = series.diff() + up = chg.clip(lower=0).rolling(period).mean() + down = (-chg.clip(upper=0)).rolling(period).mean() + rs = up / down.replace(0, np.nan) + return 100.0 - 100.0 / (1.0 + rs) + + +def build_mtf_features(panel: pd.DataFrame) -> pd.DataFrame: + """Add MTF features to the panel (already sorted by symbol, ts_h; bars <= t only).""" + g = panel.copy() + # timestamps in hours; 4h bar id and day id + g["ts_4h"] = g["ts_h"] // 4 + g["ts_d"] = g["ts_h"] // 24 + + def _apply(df: pd.DataFrame) -> pd.DataFrame: + sym = df.name if isinstance(df.name, str) else df.name[0] + df = df.sort_values("ts_h").copy() + close = df["close"] + + # ---- 4h closed bars (last 4h bar that ended <= t is bar ts_4h(t)) ---- + # ONLY CLOSED 4h groups: for bar t we use the 4h group that ended BEFORE t + # (group ts_4h-1). Using the group containing t would leak future bars of the + # group (its last close belongs to a later hour). + g4 = df.groupby("ts_4h").agg( + close4h=("close", "last"), + high4h=("high", "max"), + low4h=("low", "min"), + ) + g4["ret4h_1"] = g4["close4h"].pct_change() + g4["ret4h_6"] = g4["close4h"].pct_change(6) + g4["rsi4h"] = _rsi(g4["close4h"]) + sma20_4h = g4["close4h"].rolling(20).mean() + bb_std = g4["close4h"].rolling(20).std() + g4["bb_pos4h"] = ((g4["close4h"] - sma20_4h + 2 * bb_std) / (4 * bb_std).replace(0, np.nan)).clip(0, 1) + g4["dist_sma20_4h"] = (g4["close4h"] - sma20_4h) / g4["close4h"].replace(0, np.nan) + g4 = g4.shift(1) # <-- closed groups only (no lookahead) + df = df.merge(g4[["ret4h_1", "ret4h_6", "rsi4h", "bb_pos4h", "dist_sma20_4h"]], + left_on="ts_4h", right_index=True, how="left") + + # ---- 1d closed bars ---- + gd = df.groupby("ts_d").agg( + close_d=("close", "last"), + high_d=("high", "max"), + low_d=("low", "min"), + ) + gd["ret_d1"] = gd["close_d"].pct_change() + gd["ret_d7"] = gd["close_d"].pct_change(7) + sma20_d = gd["close_d"].rolling(20).mean() + gd["dist_sma20_1d"] = (gd["close_d"] - sma20_d) / gd["close_d"].replace(0, np.nan) + gd = gd.shift(1) # <-- closed days only (no lookahead) + df = df.merge(gd[["close_d", "high_d", "low_d", "ret_d1", "ret_d7", "dist_sma20_1d"]], + left_on="ts_d", right_index=True, how="left") + # day_pos: current price within the LAST CLOSED day's range + rng = (df["high_d"] - df["low_d"]).replace(0, np.nan) + df["day_pos"] = ((df["close"] - df["low_d"]) / rng).clip(0, 1) + df["day_range_pct"] = rng / df["close"].replace(0, np.nan) + + # ---- intraday seasonality ---- + hh = (df["ts_h"] % 24).astype(int) + df["hour_sin"] = np.sin(2 * np.pi * hh / 24) + df["hour_cos"] = np.cos(2 * np.pi * hh / 24) + df["dow"] = (pd.to_datetime(df["ts_h"] * 3_600_000, unit="ms", utc=True).dt.dayofweek).astype(int) + df["symbol"] = sym + return df + + return g.groupby("symbol", group_keys=False).apply(_apply).reset_index(drop=True) + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--output", type=Path, default=Path("data/reports/ml_mtf_experiment.md")) + args = ap.parse_args() + + env = load_unit_env() + cfg = build_config(env) + + # Build panel (same as cross-sectional script): 1h bars for all allowlist symbols + symbols, _venue = qmb.load_symbols("allowlist") + frames = [] + for sym, df in symbols.items(): + g = qmb._compute_features(df).copy() + g["ts_h"] = (g["timestamp_ms"] // 3_600_000).astype(np.int64) + g["symbol"] = sym + frames.append(g[["ts_h", "symbol", "timestamp_ms", "open", "high", "low", "close", + "volume"] + BASE_FEATURES]) + panel = pd.concat(frames, ignore_index=True) + panel["target"] = panel.groupby("symbol")["close"].shift(-1) > panel["close"] + panel["target"] = panel["target"].astype(int) + + panel = build_mtf_features(panel) + print(f"panel rows={len(panel)} symbols={panel['symbol'].nunique()}", flush=True) + + # per-symbol split + rows = [] + for sym, g in panel.groupby("symbol"): + g = g.dropna(subset=BASE_FEATURES + ["target"]).reset_index(drop=True) + if len(g) < 1500: + continue + cut = int(len(g) * 0.70) + rows.append((sym, g.iloc[: cut - GAP_BARS], g.iloc[cut:])) + df_train = pd.concat([tr for _, tr, _ in rows], ignore_index=True) + df_test = pd.concat([te for _, _, te in rows], ignore_index=True) + print(f"train rows={len(df_train)} test rows={len(df_test)}", flush=True) + + from catboost import CatBoostClassifier + + mtf_cols = [c for c in MTF_FEATURES if c in df_train.columns] + + def fit_eval(feats: list[str], name: str) -> dict: + m = CatBoostClassifier(iterations=400, depth=5, learning_rate=0.03, + l2_leaf_reg=5.0, loss_function="Logloss", + eval_metric="AUC", random_seed=42, verbose=0, thread_count=-1) + m.fit(df_train[feats].values.astype(np.float64), df_train["target"].values.astype(int)) + X = df_test[feats].values.astype(np.float64) + p = m.predict_proba(X)[:, 1] + r = _metrics(df_test["target"].values.astype(int), np.asarray(p, dtype=np.float64)) + for thr in (0.55, 0.60, 0.65): + mask = p >= thr + r[f"cov_{int(thr*100):03d}"] = float(mask.mean()) + if mask.sum() > 0: + r[f"hit_{int(thr*100):03d}"] = float(df_test["target"].values[mask].mean()) + print(f"{name}: auc={r['auc']:.4f} hit55={r.get('hit_055',0):.3f} cov55={r.get('cov_055',0):.4f} " + f"hit65={r.get('hit_065',0):.3f} cov65={r.get('cov_065',0):.4f}", flush=True) + return r, m + + # deployed baseline + dep = CatBoostClassifier() + dep.load_model(str(qmb.MODELS_DIR / "catboost_price_dir_v2.cbm")) + X = df_test[BASE_FEATURES].values.astype(np.float64) + p_dep = dep.predict_proba(X)[:, 1] + r_dep = _metrics(df_test["target"].values.astype(int), np.asarray(p_dep, dtype=np.float64)) + for thr in (0.55, 0.60, 0.65): + mask = p_dep >= thr + r_dep[f"cov_{int(thr*100):03d}"] = float(mask.mean()) + if mask.sum() > 0: + r_dep[f"hit_{int(thr*100):03d}"] = float(df_test["target"].values[mask].mean()) + print(f"deployed_v2: auc={r_dep['auc']:.4f} hit55={r_dep.get('hit_055',0):.3f} " + f"cov55={r_dep.get('cov_055',0):.4f}", flush=True) + + r_base, m_base = fit_eval(BASE_FEATURES, "cand_base") + r_mtf, m_mtf = fit_eval(BASE_FEATURES + mtf_cols, "cand_mtf") + + # feature importance of MTF model + imp = sorted(zip(BASE_FEATURES + mtf_cols, m_mtf.feature_importances_), key=lambda x: -x[1]) + print("top features:", [(f, round(float(v), 1)) for f, v in imp[:14]], flush=True) + + # ---- engine PnL on the same OOS window (fold 0.70, live config) ---- + from quant_tf_universe_experiment import build_series + + s1h = build_series(env, None, "1h") + # predict with MTF model? engine uses series probs; compute probs per series via mtf model + # (simplify: use deployed model for PnL - consistent with live; MTF PnL needs panel + # alignment per series, done below via cand_mtf on the panel test rows) + t0 = min(int(si["times"][int(len(si["times"]) * 0.70)]) for si in s1h.values()) + # deployed PnL + probs_dep = {} + for key, s in s1h.items(): + X = s["feats"][qmb.FEATURES].values.astype(np.float64) + probs_dep[key] = dep.predict_proba(X)[:, 1] + s["probs"] = probs_dep[key] + res_dep = run_backtest(s1h, cfg, probs_dep, t0) + m_dep = summarize(res_dep, cfg) + print(f"PnL deployed: n={m_dep['n']} pnl={m_dep['pnl']:+.2f}$ wr={m_dep['wr']:.1f}% " + f"pf={m_dep['pf'] if m_dep['pf']==float('inf') else round(m_dep['pf'],2)}", flush=True) + + # MTF PnL: map panel test rows back to series; predict probs per symbol on its own df + # (reuse trained mtf model on per-symbol feature frames) + probs_mtf = {} + for key, s in s1h.items(): + sym = s["symbol"] + feats = s["feats"].copy() + feats["ts_h"] = (feats["timestamp_ms"] // 3_600_000).astype(np.int64) + feats["symbol"] = sym + tmp = build_mtf_features(feats) + X = tmp[BASE_FEATURES + mtf_cols].values.astype(np.float64) + p = m_mtf.predict_proba(X)[:, 1] + s["probs"] = p + probs_mtf[key] = p + res_mtf = run_backtest(s1h, cfg, probs_mtf, t0) + m_mtf_pnl = summarize(res_mtf, cfg) + print(f"PnL MTF-model: n={m_mtf_pnl['n']} pnl={m_mtf_pnl['pnl']:+.2f}$ wr={m_mtf_pnl['wr']:.1f}% " + f"pf={m_mtf_pnl['pf'] if m_mtf_pnl['pf']==float('inf') else round(m_mtf_pnl['pf'],2)}", flush=True) + + d0 = datetime.fromtimestamp(t0 / 1000, tz=UTC).strftime("%Y-%m-%d") + d1 = datetime.fromtimestamp(max(int(si["times"][-1]) for si in s1h.values()) / 1000, tz=UTC).strftime("%Y-%m-%d") + + def fnum(v, nd=3): + return "inf" if v == float("inf") else f"{v:.{nd}f}" + + md = ["# ML гипотеза F, этап 1: multi-timeframe фичи (4h/1d + сезонность)", "", + f"OOS-окно: {d0} .. {d1} | Сплит: per-symbol 70/30 gap {GAP_BARS} | " + f"train {len(df_train):,} / test {len(df_test):,}", + "", + "Методика: MTF-фичи только по ЗАКРЫТЫМ барам ≤ t (без lookahead); модели — CatBoost " + "400/depth5/lr0.03 (те же гиперпараметры); PnL — движок 1:1 (live config: " + f"trail={cfg.trail_ratio}, TP {cfg.take_profit_pct:.0%}, SL {cfg.stop_loss_pct:.0%}, " + f"ML≥{cfg.ml_min_prob_up}).", + "", + "| Модель | AUC | hit@0.55 | cov@0.55 | hit@0.65 | cov@0.65 | Сделок | PnL $ |", + "|---|---:|---:|---:|---:|---:|---:|---:|", + f"| deployed v2 (base 13) | {r_dep['auc']:.4f} | {fnum(r_dep.get('hit_055',0))} | " + f"{fnum(r_dep.get('cov_055',0),4)} | {fnum(r_dep.get('hit_065',0))} | " + f"{fnum(r_dep.get('cov_065',0),4)} | {m_dep['n']} | {m_dep['pnl']:+.2f} |", + f"| cand base-only (свежая) | {r_base['auc']:.4f} | {fnum(r_base.get('hit_055',0))} | " + f"{fnum(r_base.get('cov_055',0),4)} | {fnum(r_base.get('hit_065',0))} | " + f"{fnum(r_base.get('cov_065',0),4)} | — | — |", + f"| cand MTF (base+{len(mtf_cols)}) | {r_mtf['auc']:.4f} | {fnum(r_mtf.get('hit_055',0))} | " + f"{fnum(r_mtf.get('cov_055',0),4)} | {fnum(r_mtf.get('hit_065',0))} | " + f"{fnum(r_mtf.get('cov_065',0),4)} | {m_mtf_pnl['n']} | {m_mtf_pnl['pnl']:+.2f} |", + "", + "## Топ-фичи MTF-модели", ""] + for f, v in imp[:14]: + md.append(f"- {f}: {v:.1f}") + md += ["", "## Вывод", + "", + "- Если AUC(MTF) ≤ ~0.545 и PnL < 0 — гипотеза multi-timeframe на локальных данных " + "не подтверждается; локальные данные исчерпаны, дальнейший прогресс требует " + "внешних сигналов (funding/OI, новости, on-chain) с API-доступом.", + "- Правило решения: только если AUC(MTF) > AUC(base)+0.005 И PnL(MTF) > 0 на этом " + "OOS — гипотеза жива и требует следующего нетронутого окна."] + args.output.parent.mkdir(parents=True, exist_ok=True) + args.output.write_text("\n".join(md), encoding="utf-8") + print(f"report -> {args.output}", flush=True) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/quant_monthly_backtest.py b/scripts/quant_monthly_backtest.py new file mode 100644 index 000000000..bb3826e9a --- /dev/null +++ b/scripts/quant_monthly_backtest.py @@ -0,0 +1,589 @@ +#!/usr/bin/env python3 +"""Monthly backtest of the deployed Directional v2 paper algorithm. + +Replays the CURRENT production rules (as deployed on 2026-08-14) as if trading +started exactly one calendar month ago. All symbols are processed SYNCHRONOUSLY +bar by bar (as in the live daemon), with a single shared portfolio: + + - signal engine: SMA3/10, RSI14, BB20, MACD12/26, ML v2 (prob_up), RL veto + (0.0 for the 10 majors in the RL universe, None otherwise) — formulas 1:1 + with aios_core/quant_trading_engine.py::record_and_analyze; + - entry gate: DirectionalV2Config owner profile (entry_mode=enabled, + ML>=0.65, conf>=0.88, max 1 global position, DD/daily kill 0.25%, + investment min(cash*0.2, 200) >= 10); + - exits: TP +2% / SL -1% (intrabar via high/low, SL priority), + trailing -1.2% from max seen after +1%, bearish exit (hold>=7200s, + conf>=0.88, ML<=0.40), close at last price at period end; + - costs: fee 0.15% per side, half-spread 0.05% + slippage 0.05%. + +Assumptions (documented in the report): binance 1h closes used as price proxy +for the allowlisted venues; ML model trained on data including the test month +(in-sample for the ML part only); funding/orderbook neutral. + +Usage: + python scripts/quant_monthly_backtest.py [--no-ml-gate] [--output ...] +""" + +from __future__ import annotations + +import argparse +import glob +import json +import math +import statistics +from datetime import datetime, timezone +from pathlib import Path + +import numpy as np +import pandas as pd + +REPO_ROOT = Path(__file__).resolve().parents[1] +QUANT_DIR = REPO_ROOT / "data" / "quant" +MODELS_DIR = QUANT_DIR / "models" + +try: + from dateutil.relativedelta import relativedelta +except ImportError: # pragma: no cover + relativedelta = None + +# Owner profile (mirrors /etc/systemd/system/aios-quant-trading.service). +PROFILE = { + "entry_mode": "enabled", + "max_global_positions": 1, + "max_drawdown_pct": 0.25, + "max_daily_loss_pct": 0.25, + "min_confidence": 0.88, + "ml_min_prob_up": 0.65, + "rl_veto_position": 0.30, + "min_hold_seconds": 7200, + "half_spread_rate": 0.0005, + "slippage_rate": 0.0005, + "fee_rate": 0.0015, + "take_profit_pct": 0.02, + "stop_loss_pct": -0.01, + "trail_ratio": 0.988, +} + +RL_ASSETS = {"BTC", "ETH", "SOL", "BNB", "XRP", "ADA", "DOGE", "LINK", "DOT", "POL"} + +FEATURES = [ + "ret1", "ret3", "ret6", "ret12", "ret24", + "rsi", "bb_pos", "macd_norm", "ema_gap", + "vol_ratio", "vol_z", "bar_range_pct", "hl_pos", +] + + +def _compute_features(df: pd.DataFrame) -> pd.DataFrame: + g = df.copy() + g["ret1"] = g["close"].pct_change() + g["ret3"] = g["close"].pct_change(3) + g["ret6"] = g["close"].pct_change(6) + g["ret12"] = g["close"].pct_change(12) + g["ret24"] = g["close"].pct_change(24) + g["ema12"] = g["close"].ewm(span=12).mean() + g["ema26"] = g["close"].ewm(span=26).mean() + chg = g["close"].pct_change() + up = chg.clip(lower=0).rolling(14).mean() + down = (-chg.clip(upper=0)).rolling(14).mean() + g["rsi"] = 100.0 - 100.0 / (1.0 + up / down.replace(0, 1e-9)) + bb_mid = g["close"].rolling(20).mean() + bb_std = g["close"].rolling(20).std() + g["bb_pos"] = ((g["close"] - bb_mid + 2 * bb_std) / (4 * bb_std).replace(0, np.nan)).clip(0, 1) + macd = g["ema12"] - g["ema26"] + g["macd_norm"] = macd / g["close"] + g["ema_gap"] = (g["ema12"] - g["ema26"]) / g["close"] + vol_mean = g["volume"].rolling(20).mean() + vol_std = g["volume"].rolling(20).std() + g["vol_ratio"] = g["volume"] / vol_mean.replace(0, np.nan) + g["vol_z"] = (g["volume"] - vol_mean) / vol_std.replace(0, np.nan) + g["bar_range_pct"] = (g["high"] - g["low"]) / g["close"] + g["hl_pos"] = (g["close"] - g["low"]) / (g["high"] - g["low"]).replace(0, np.nan) + return g + + +def record_and_analyze(closes: list[float], ml_prob: float | None, rl_position: float | None) -> dict: + """1:1 replica of quant_trading_engine.record_and_analyze scoring.""" + prices = closes[-50:] + fast_period = min(3, len(prices)) + slow_period = min(10, len(prices)) + sma_fast = sum(prices[-fast_period:]) / fast_period + sma_slow = sum(prices[-slow_period:]) / slow_period + + rsi = 50.0 + if len(prices) >= 5: + gains = [max(prices[i] - prices[i - 1], 0) for i in range(1, len(prices))] + losses = [max(prices[i - 1] - prices[i], 0) for i in range(1, len(prices))] + avg_gain = sum(gains[-14:]) / min(14, len(gains)) + avg_loss = sum(losses[-14:]) / min(14, len(losses)) + if avg_loss > 0: + rs = avg_gain / avg_loss + rsi = 100.0 - (100.0 / (1.0 + rs)) + else: + rsi = 100.0 + + period_bb = min(20, len(prices)) + sma_bb = sum(prices[-period_bb:]) / period_bb + variance = sum((p - sma_bb) ** 2 for p in prices[-period_bb:]) / period_bb + std_dev = math.sqrt(variance) + upper_bb = sma_bb + 2.0 * std_dev + lower_bb = sma_bb - 2.0 * std_dev + + p12 = prices[-min(12, len(prices)):] + p26 = prices[-min(26, len(prices)):] + macd_line = (sum(p12) / len(p12)) - (sum(p26) / len(p26)) + + current = prices[-1] + bullish = bearish = 0 + if current <= lower_bb: + bullish += 2 + elif current >= upper_bb: + bearish += 2 + if rsi < 35.0: + bullish += 2 + elif rsi > 65.0: + bearish += 2 + if sma_fast > sma_slow: + bullish += 1 + elif sma_fast < sma_slow: + bearish += 1 + if macd_line > 0: + bullish += 1 + elif macd_line < 0: + bearish += 1 + if ml_prob is not None: + if ml_prob >= 0.65: + bullish += 1 + elif ml_prob <= 0.35: + bearish += 1 + if rl_position is not None: + if rl_position > 0.7: + bullish += 1 + elif rl_position < 0.3: + bearish += 1 + + if bullish >= 3 and bullish > bearish: + return {"signal": "BUY_LONG", "confidence": round(min(0.99, 0.70 + bullish * 0.06), 2), + "bullish": bullish, "bearish": bearish} + if bearish >= 3 and bearish > bullish: + return {"signal": "SELL_SHORT", "confidence": round(min(0.99, 0.70 + bearish * 0.06), 2), + "bullish": bullish, "bearish": bearish} + return {"signal": "HOLD", "confidence": 0.50, "bullish": bullish, "bearish": bearish} + + +def entry_block_reason(analysis: dict, *, global_positions: int, drawdown_pct: float, + daily_loss_pct: float, ml_gate: bool = True) -> str | None: + """1:1 replica of quant_directional_policy.entry_block_reason with the owner profile.""" + p = PROFILE + ml_prob = analysis.get("ml_prob_up") + rl_position = analysis.get("rl_position") + if float(analysis.get("confidence", 0.0)) < p["min_confidence"]: + return "confidence_below_min" + if ml_gate and (ml_prob is None or float(ml_prob) < p["ml_min_prob_up"]): + return "ml_not_confirmed" + if rl_position is not None and float(rl_position) <= p["rl_veto_position"]: + return "rl_veto" + if global_positions >= p["max_global_positions"]: + return "global_position_limit" + if drawdown_pct >= p["max_drawdown_pct"]: + return "global_drawdown_kill" + if daily_loss_pct >= p["max_daily_loss_pct"]: + return "daily_loss_kill" + return None + + +def _py(v): + if isinstance(v, (np.integer,)): + return int(v) + if isinstance(v, (np.floating,)): + return float(v) + return v + + +ALLOWLIST_VENUES = ["kucoin", "bitstamp", "mexc"] + + +def _load_series(symbol: str, exchange: str) -> pd.DataFrame | None: + paths = glob.glob(str(QUANT_DIR / symbol / exchange / f"{symbol}_1h.csv")) + if not paths: + return None + df = pd.read_csv(paths[0]).sort_values("timestamp_ms") + df = df.dropna(subset=["open", "high", "low", "close", "volume"]) + if len(df) < 400: + return None + return df.reset_index(drop=True) + + +def load_symbols(venue: str = "binance") -> tuple[dict[str, pd.DataFrame], dict[str, str]]: + out: dict[str, pd.DataFrame] = {} + used: dict[str, str] = {} + symbols = sorted( + Path(path).stem.split("_")[0] + for path in glob.glob(str(QUANT_DIR / "*" / "binance" / "*_1h.csv")) + ) + for symbol in symbols: + if symbol in ("MATIC", "RNDR"): + continue + candidates = ALLOWLIST_VENUES if venue == "allowlist" else [venue] + for exchange in candidates: + df = _load_series(symbol, exchange) + if df is not None: + out[symbol] = df + used[symbol] = exchange + break + return out, used + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--output", type=Path, default=Path("data/reports/monthly_backtest.md")) + parser.add_argument("--months", type=int, default=1, help="backtest window in calendar months") + parser.add_argument("--no-ml-gate", action="store_true", + help="control scenario: disable the ML>=0.65 entry filter") + parser.add_argument("--free-profile", action="store_true", + help="signals quality run: no position limit, no DD/daily-loss kill, fixed $200 stake") + parser.add_argument("--price-source", default="binance", + help="binance (default proxy) | allowlist (kucoin>bitstamp>mexc) | имя биржи") + args = parser.parse_args() + ml_gate = not args.no_ml_gate + if args.free_profile: + tag = "free_profile_ml" if ml_gate else "free_profile_no_ml" + else: + tag = "current_algorithm" if ml_gate else "no_ml_gate" + + symbols, venue_used = load_symbols(args.price_source) + print(f"loaded {len(symbols)} symbols (price source: {args.price_source})") + last_ts = max(int(df["timestamp_ms"].iloc[-1]) for df in symbols.values()) + if relativedelta is not None: + start_dt = datetime.fromtimestamp(last_ts / 1000, tz=timezone.utc) - relativedelta(months=args.months) + else: # pragma: no cover + start_dt = datetime.fromtimestamp(last_ts / 1000, tz=timezone.utc) - pd.Timedelta(days=30 * args.months) + start_ms = int(start_dt.timestamp() * 1000) + + from catboost import CatBoostClassifier + + model = CatBoostClassifier() + model.load_model(str(MODELS_DIR / "catboost_price_dir_v2.cbm")) + + # Precompute per-symbol arrays and the union of month timestamps. + series: dict[str, dict] = {} + all_ts: set[int] = set() + bh_stats: dict[str, float] = {} + for symbol, df in symbols.items(): + feats = _compute_features(df) + X = feats[FEATURES].values.astype(np.float64) + probs = model.predict_proba(X)[:, 1] if len(X) else np.array([]) + times = df["timestamp_ms"].values + mask = times >= start_ms + idx = np.where(mask)[0] + if len(idx) < 100: + continue + i0 = int(idx[0]) + month_ts = [int(t) for t in times[i0:]] + all_ts.update(month_ts) + by_ts = {int(times[k]): k for k in range(len(times))} + bh_start = float(df["close"].iloc[i0]) + bh_end = float(df["close"].iloc[-1]) + bh_stats[symbol] = (bh_end / bh_start - 1.0) * 100.0 + series[symbol] = { + "closes": df["close"].values, + "highs": df["high"].values, + "lows": df["low"].values, + "times": times, + "by_ts": by_ts, + "probs": probs, + "i0": i0, + } + + cash = 1000.0 + initial = cash + max_conc = 0 + positions: dict[str, dict] = {} + trades: list[dict] = [] + block_counts: dict[str, int] = {} + history: dict[str, list[float]] = {s: [] for s in series} + current_day = "" + day_start_equity = initial + total_fees = 0.0 + + # Warm-up: all bars before start_ms. + for symbol, s in series.items(): + for k in range(int(s["i0"])): + history[symbol].append(float(s["closes"][k])) + + for ts in sorted(all_ts): + day = datetime.fromtimestamp(ts / 1000, tz=timezone.utc).strftime("%Y-%m-%d") + if day != current_day: + current_day = day + equity_now = cash + sum( + float(pos["qty"]) * float(pos.get("mark_price", pos["entry_mid"])) + for pos in positions.values() + ) + day_start_equity = equity_now + + max_conc = max(max_conc, len(positions)) + # --- exits for every symbol on this bar --- + for symbol, s in series.items(): + k = s["by_ts"].get(ts) + if k is None: + continue + price = float(s["closes"][k]) + history[symbol].append(price) + pos = positions.get(symbol) + if pos is None: + continue + entry_mid = float(pos["entry_mid"]) + invested = float(pos["invested_usd"]) + qty = float(pos["qty"]) + max_seen = max(float(pos["max_price_seen"]), price) + pos["max_price_seen"] = max_seen + pos["mark_price"] = price + hi, lo = float(s["highs"][k]), float(s["lows"][k]) + exit_px = None + reason = "" + if lo <= entry_mid * (1.0 + PROFILE["stop_loss_pct"]): + exit_px = entry_mid * (1.0 + PROFILE["stop_loss_pct"]) * (1.0 - PROFILE["half_spread_rate"] - PROFILE["slippage_rate"]) + reason = "stop_loss" + elif hi >= entry_mid * (1.0 + PROFILE["take_profit_pct"]): + exit_px = entry_mid * (1.0 + PROFILE["take_profit_pct"]) * (1.0 - PROFILE["half_spread_rate"] - PROFILE["slippage_rate"]) + reason = "take_profit" + elif max_seen > entry_mid * 1.01 and lo <= max_seen * PROFILE["trail_ratio"]: + exit_px = max_seen * PROFILE["trail_ratio"] * (1.0 - PROFILE["half_spread_rate"] - PROFILE["slippage_rate"]) + reason = "trailing_stop" + else: + ml_prob = float(s["probs"][k]) if k < len(s["probs"]) and not math.isnan(float(s["probs"][k])) else None + analysis = record_and_analyze(history[symbol], ml_prob, + 0.0 if symbol in RL_ASSETS else None) + if (analysis["signal"] == "SELL_SHORT" + and float(analysis["confidence"]) >= PROFILE["min_confidence"] + and ml_prob is not None and float(ml_prob) <= 0.40 + and (ts - float(pos["opened_at"])) >= PROFILE["min_hold_seconds"] * 1000): + exit_px = price * (1.0 - PROFILE["half_spread_rate"] - PROFILE["slippage_rate"]) + reason = "confirmed_bearish_exit" + if exit_px is not None: + exit_fee = exit_px * qty * PROFILE["fee_rate"] + proceeds = exit_px * qty - exit_fee + net_pnl = proceeds - invested + cash += proceeds + total_fees += exit_fee + float(pos["entry_fee_usd"]) + trades.append({ + "symbol": symbol, "side": "LONG", "exit_reason": reason, + "entry_ts": _py(pos["opened_at"]), "exit_ts": _py(ts), + "bars_held": _py((ts - pos["opened_at"]) / 3_600_000), + "entry_mid": _py(entry_mid), "exit_px": _py(exit_px), + "invested_usd": _py(invested), "net_pnl_usd": _py(net_pnl), + "net_pnl_pct": _py(net_pnl / invested * 100.0), + }) + del positions[symbol] + + # --- entries on this bar --- + if not args.free_profile and len(positions) >= PROFILE["max_global_positions"]: + continue + for symbol, s in series.items(): + if symbol in positions: + continue + k = s["by_ts"].get(ts) + if k is None: + continue + price = float(s["closes"][k]) + ml_prob = float(s["probs"][k]) if k < len(s["probs"]) and not math.isnan(float(s["probs"][k])) else None + rl_position = 0.0 if symbol in RL_ASSETS else None + analysis = record_and_analyze(history[symbol], ml_prob, rl_position) + analysis["ml_prob_up"] = ml_prob + analysis["rl_position"] = rl_position + if analysis["signal"] != "BUY_LONG": + continue + equity = cash + sum( + float(p["qty"]) * float(p.get("mark_price", p["entry_mid"])) + for p in positions.values() + ) + dd_pct = max(0.0, (initial - equity) / initial * 100.0) + day_loss_pct = max(0.0, (day_start_equity - equity) / day_start_equity * 100.0) if day_start_equity > 0 else 0.0 + if args.free_profile: + reason = entry_block_reason( + analysis, global_positions=0, + drawdown_pct=0.0, daily_loss_pct=0.0, ml_gate=ml_gate, + ) + else: + reason = entry_block_reason( + analysis, global_positions=len(positions), + drawdown_pct=dd_pct, daily_loss_pct=day_loss_pct, ml_gate=ml_gate, + ) + block_counts[reason or "OK"] = block_counts.get(reason or "OK", 0) + 1 + if reason is not None: + continue + investment = 200.0 if args.free_profile else min(cash * 0.20, 200.0) + if investment < 10.0: + block_counts["minimum_order"] = block_counts.get("minimum_order", 0) + 1 + continue + entry_fee = investment * PROFILE["fee_rate"] + exec_px = price * (1.0 + PROFILE["half_spread_rate"] + PROFILE["slippage_rate"]) + qty = (investment - entry_fee) / exec_px + cash -= investment + total_fees += entry_fee + positions[symbol] = { + "side": "LONG", "entry_price": exec_px, "entry_mid": price, + "qty": qty, "invested_usd": investment, + "entry_fee_usd": entry_fee, "max_price_seen": price, + "mark_price": price, "opened_at": ts, + "signal_confidence": analysis["confidence"], + "ml_prob_up": ml_prob, + } + if not args.free_profile: + break # one position at a time per bar (max 1 global) + + # Close open positions at period end. + for symbol, pos in list(positions.items()): + price = float(series[symbol]["closes"][-1]) + exit_px = price * (1.0 - PROFILE["half_spread_rate"] - PROFILE["slippage_rate"]) + exit_fee = exit_px * float(pos["qty"]) * PROFILE["fee_rate"] + proceeds = exit_px * float(pos["qty"]) - exit_fee + net_pnl = proceeds - float(pos["invested_usd"]) + cash += proceeds + total_fees += exit_fee + float(pos["entry_fee_usd"]) + trades.append({ + "symbol": symbol, "side": "LONG", "exit_reason": "period_end", + "entry_ts": _py(pos["opened_at"]), "exit_ts": _py(last_ts), + "bars_held": _py((last_ts - pos["opened_at"]) / 3_600_000), + "entry_mid": _py(pos["entry_mid"]), "exit_px": _py(exit_px), + "invested_usd": _py(pos["invested_usd"]), "net_pnl_usd": _py(net_pnl), + "net_pnl_pct": _py(net_pnl / pos["invested_usd"] * 100.0), + }) + positions.pop(symbol) + + final_equity = cash + port_pnl_pct = (final_equity - initial) / initial * 100.0 + bh_values = sorted(bh_stats.items(), key=lambda x: x[1]) + avg_bh = statistics.mean(v for _, v in bh_values) + med_bh = statistics.median(v for _, v in bh_values) + win_trades = [t for t in trades if t["net_pnl_usd"] > 0] + + start_dt_str = datetime.fromtimestamp(start_ms / 1000, tz=timezone.utc).strftime("%Y-%m-%d %H:%M UTC") + end_dt_str = datetime.fromtimestamp(last_ts / 1000, tz=timezone.utc).strftime("%Y-%m-%d %H:%M UTC") + + report = { + "scenario": tag, + "price_source": args.price_source, + "period": {"start": start_dt_str, "end": end_dt_str, "bars": len(all_ts)}, + "initial_capital_usd": initial, + "final_equity_usd": round(final_equity, 2), + "portfolio_pnl_pct": round(port_pnl_pct, 3), + "total_trades": len(trades), + "wins": len(win_trades), + "win_rate_pct": round(len(win_trades) / len(trades) * 100, 2) if trades else 0.0, + "total_fees_usd": round(total_fees, 2), + "max_concurrent_positions": max_conc, + "avg_trade_pnl_pct": round(statistics.mean(t["net_pnl_pct"] for t in trades), 3) if trades else 0.0, + "buy_hold": { + "mean_pct": round(avg_bh, 3), + "median_pct": round(med_bh, 3), + "best": {"symbol": bh_values[-1][0], "pct": round(bh_values[-1][1], 3)}, + "worst": {"symbol": bh_values[0][0], "pct": round(bh_values[0][1], 3)}, + "per_symbol_pct": {k: round(v, 3) for k, v in bh_stats.items()}, + }, + "block_counts": dict(sorted(block_counts.items(), key=lambda x: -x[1])), + "trades": [ + {k: (round(v, 6) if isinstance(v, float) else v) for k, v in t.items()} + for t in trades + ], + } + + if args.free_profile: + title = ("сигналам без портфельных kill-switch (свободный профиль, с ML gate)" if ml_gate + else "сигналам без портфельных kill-switch (свободный профиль, БЕЗ ML gate)") + else: + title = "текущему алгоритму (с ML gate)" if ml_gate else "алгоритму БЕЗ ML gate (контроль)" + md = [ + f"# Тестовый замер: {args.months} мес. торговли по {title} (Directional v2)", + "", + f"**Период:** {start_dt_str} → {end_dt_str} ({args.months} календарн. мес., {len(all_ts)} баров 1h)", + f"**Стартовый капитал:** ${initial:,.2f}", + "", + "## Результат алгоритма", + "", + f"- **Итоговый капитал: ${final_equity:,.2f}**", + f"- **PnL портфеля: {port_pnl_pct:+.2f}%**", + f"- Сделок: {len(trades)} (win {len(win_trades)}, {report['win_rate_pct']:.1f}%)", + f"- Средняя сделка: {report['avg_trade_pnl_pct']:+.3f}% | Комиссии и проскальзывание: ${total_fees:.2f}", + "", + "## Реальная динамика валют (Buy&Hold за тот же месяц)", + "", + f"- **Средняя по {len(bh_values)} валютам: {avg_bh:+.2f}%** (медиана {med_bh:+.2f}%)", + f"- Лучшая: **{bh_values[-1][0]} {bh_values[-1][1]:+.2f}%**", + f"- Худшая: **{bh_values[0][0]} {bh_values[0][1]:+.2f}%**", + "", + "| Валюта | Buy&Hold % |", + "|---|---:|", + ] + for sym, v in sorted(bh_stats.items(), key=lambda x: -x[1]): + md.append(f"| {sym} | {v:+.2f} |") + md.append("") + md.append("## Сравнение") + md.append("") + delta = port_pnl_pct - avg_bh + md.append(f"- Алгоритм {port_pnl_pct:+.2f}% vs средняя валюта {avg_bh:+.2f}% → **{delta:+.2f} п.п.**") + md.append(f"- Алгоритм {port_pnl_pct:+.2f}% vs лучшая валюта ({bh_values[-1][0]} {bh_values[-1][1]:+.2f}%)") + md.append(f"- Алгоритм {port_pnl_pct:+.2f}% vs худшая валюта ({bh_values[0][0]} {bh_values[0][1]:+.2f}%)") + md.append("") + if args.free_profile and trades: + gross_win = sum(t["net_pnl_usd"] for t in trades if t["net_pnl_usd"] > 0) + gross_loss = -sum(t["net_pnl_usd"] for t in trades if t["net_pnl_usd"] < 0) + pf = gross_win / gross_loss if gross_loss > 0 else float("inf") + per_asset: dict[str, list[float]] = {} + for t in trades: + per_asset.setdefault(t["symbol"], []).append(float(t["net_pnl_usd"])) + md += [ + "## Качество сигналов (per-asset)", + "", + f"- Profit factor: {pf:.2f} (gross +${gross_win:.2f} / -${gross_loss:.2f})", + f"- Максимум одновременных позиций: {max_conc}", + "", + "| Актив | Сделок | PnL $ |", + "|---|---:|---:|", + ] + for sym, pnls in sorted(per_asset.items(), key=lambda x: -sum(x[1])): + md.append(f"| {sym} | {len(pnls)} | {sum(pnls):+.2f} |") + md.append("") + md.append("## Блокировки входов (свободный профиль)" if args.free_profile + else "## Блокировки входов (как в продакшене)") + md.append("") + for k, v in report["block_counts"].items(): + md.append(f"- {k}: {v}") + md.append("") + if trades: + md.append("## Сделки") + md.append("") + md.append("| Актив | Вход | Выход | Причина | Баров | PnL % |") + md.append("|---|---|---|---|---:|---:|") + for t in trades: + e = datetime.fromtimestamp(t["entry_ts"] / 1000, tz=timezone.utc).strftime("%m-%d %H:%M") + x = datetime.fromtimestamp(t["exit_ts"] / 1000, tz=timezone.utc).strftime("%m-%d %H:%M") + md.append(f"| {t['symbol']} | {e} | {x} | {t['exit_reason']} | {t['bars_held']:.0f} | {t['net_pnl_pct']:+.2f} |") + md.append("") + md.append("## Допущения") + md.append("") + if args.price_source == "binance": + md.append("- Цены: binance 1h как прокси разрешённых бирж (kucoin/bitstamp/mexc — нет месяца локальной истории).") + else: + from collections import Counter + vc = Counter(venue_used.values()) + vtxt = ", ".join(f"{k}: {v}" for k, v in sorted(vc.items(), key=lambda x: -x[1])) + md.append(f"- Цены: реальные 1h-серии бирж (price-source={args.price_source}; {vtxt}).") + md.append("- ML-модель обучена на данных, включающих тестовый месяц (in-sample только для ML-части; индикаторная часть честная).") + md.append("- Funding/orderbook нейтральны (0 / BALANCED).") + md.append("- TP/SL исполняются по уровням при пересечении high/low бара; SL приоритетнее TP.") + if args.free_profile: + md.append("- Свободный профиль: без лимита позиций / DD-kill / daily-kill; каждый вход — фиксированные $200, лимит кэша не применяется (синтетический учёт).") + else: + md.append("- Все активы обрабатываются синхронно по барам; портфель единый ($1000), максимум 1 позиция (owner-профиль).") + md.append("") + + args.output.parent.mkdir(parents=True, exist_ok=True) + args.output.write_text("\n".join(md), encoding="utf-8") + json_out = args.output.with_suffix(f".{tag}.json") + json_out.write_text(json.dumps(report, indent=2, ensure_ascii=False), encoding="utf-8") + print(f"report -> {args.output} ({tag})") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/quant_oos_partial_tp_bootstrap.py b/scripts/quant_oos_partial_tp_bootstrap.py new file mode 100755 index 000000000..63513c0e9 --- /dev/null +++ b/scripts/quant_oos_partial_tp_bootstrap.py @@ -0,0 +1,259 @@ +#!/usr/bin/env python3 +"""Partial take-profit variants + bootstrap significance for the N1 (trail=1.0) finding. + +Reuses the fold-0.70 OOS setup from scripts/quant_oos_robustness.py (fresh CatBoost v2 +on the 70% train segment, allowlist prices, ML>=0.65 fixed threshold, $200/leg). + +1. Variants (a-priori): + - BASE: trail 0.988 (prod legacy) + - N1: trail 1.0 (hard trail) + - PT1: close 50% at +1.0%, remainder on hard trail (1.0) + TP2%/SL1% + - PT2: close 50% at +1.5%, remainder on hard trail (1.0) + TP2%/SL1% + - PT3: close 50% at +1.0%, remainder on soft trail (0.995) + TP2%/SL1% + +2. Bootstrap over symbols (2000 resamples with replacement) for BASE vs N1: + 90% percentile interval of per-sample PnL and share of positive samples. + +Usage: + python scripts/quant_oos_partial_tp_bootstrap.py [--output data/reports/oos_partial_tp_bootstrap.md] +""" + +from __future__ import annotations + +import argparse +import statistics +import sys +from pathlib import Path + +import numpy as np + +REPO_ROOT = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(REPO_ROOT)) +sys.path.insert(0, str(REPO_ROOT / "scripts")) + +import quant_monthly_backtest as qmb +from quant_oos_robustness import ( + BASE_V, + N1_V, + load_series, + predict_all, + train_fold, +) + +STAKE = 200.0 +FEE = qmb.PROFILE["fee_rate"] +COST = qmb.PROFILE["half_spread_rate"] + qmb.PROFILE["slippage_rate"] +TRAIN_FRAC = 0.70 + +PT_VARIANTS = { + "PT1: 50%@+1.0%, остаток trail 1.0": {"stage1_pct": 0.010, "stage1_frac": 0.5, "rem_trail": 1.0}, + "PT2: 50%@+1.5%, остаток trail 1.0": {"stage1_pct": 0.015, "stage1_frac": 0.5, "rem_trail": 1.0}, + "PT3: 50%@+1.0%, остаток trail 0.995": {"stage1_pct": 0.010, "stage1_frac": 0.5, "rem_trail": 0.995}, +} + + +def simulate_partial(sym: str, s: dict, test_start: int, variant: dict) -> list[dict]: + """Two-stage exit: close stage1_frac at stage1_pct, remainder on rem_trail + TP/SL.""" + closes, highs, lows = s["closes"], s["highs"], s["lows"] + times, probs = s["times"], s["probs"] + tp = qmb.PROFILE["take_profit_pct"] + sl = qmb.PROFILE["stop_loss_pct"] + stage1_pct = variant["stage1_pct"] + stage1_frac = variant["stage1_frac"] + rem_trail = variant["rem_trail"] + + history: list[float] = [float(c) for c in closes[:test_start]] + pos = None + trades: list[dict] = [] + last_ts = 0 + + for k in range(test_start, len(closes)): + price = float(closes[k]) + ts = int(times[k]) + ml_prob = float(probs[k]) if k < len(probs) and not np.isnan(float(probs[k])) else None + history.append(price) + + if pos is not None: + entry_mid = pos["entry_mid"] + qty = pos["qty"] + invested = pos["invested"] + max_seen = max(pos["max_seen"], price) + pos["max_seen"] = max_seen + hi, lo = float(highs[k]), float(lows[k]) + # stage 1: partial close once + if not pos.get("staged") and hi >= entry_mid * (1.0 + stage1_pct): + close_qty = qty * stage1_frac + exit_px = entry_mid * (1.0 + stage1_pct) * (1.0 - COST) + proceeds = exit_px * close_qty + net1 = proceeds - invested * stage1_frac - exit_px * close_qty * FEE + pos["qty"] = qty - close_qty + pos["invested"] = invested * (1.0 - stage1_frac) + pos["staged"] = True + pos["stage1_net"] = net1 + pos["stage1_ts"] = ts + pos["stage1_entry_mid"] = entry_mid + exit_px = None + reason = "" + if lo <= entry_mid * (1.0 + sl): + exit_px = entry_mid * (1.0 + sl) * (1.0 - COST) + reason = "stop_loss" + elif hi >= entry_mid * (1.0 + tp): + exit_px = entry_mid * (1.0 + tp) * (1.0 - COST) + reason = "take_profit" + elif pos.get("staged") and max_seen > entry_mid * 1.01 and lo <= max_seen * rem_trail: + exit_px = max_seen * rem_trail * (1.0 - COST) + reason = "trailing_stop" + if exit_px is not None and pos["qty"] > 1e-12: + proceeds = exit_px * pos["qty"] + net2 = proceeds - pos["invested"] - exit_px * pos["qty"] * FEE + total_net = pos.get("stage1_net", 0.0) + net2 + trades.append({"symbol": sym, "net": total_net, + "pct": total_net / invested * 100.0 if invested else 0.0, + "reason": f"{'partial+' if pos.get('stage1_net') else ''}{reason}", + "opened_at": pos["opened_at"], "ts": ts}) + pos = None + + # entry + an = qmb.record_and_analyze(history, ml_prob, 0.0 if sym in qmb.RL_ASSETS else None) + if an["signal"] != "BUY_LONG" or an["confidence"] < qmb.PROFILE["min_confidence"]: + continue + if ml_prob is None or ml_prob < 0.65: + continue + rl = 0.0 if sym in qmb.RL_ASSETS else None + if rl is not None and rl <= qmb.PROFILE["rl_veto_position"]: + continue + entry_fee = STAKE * FEE + exec_px = price * (1.0 + COST) + pos = {"entry_mid": price, "qty": (STAKE - entry_fee) / exec_px, + "invested": STAKE, "max_seen": price, "opened_at": ts} + + if pos is not None: # mark-to-market + exit_px = price * (1.0 - COST) + proceeds = exit_px * pos["qty"] + net2 = proceeds - pos["invested"] - exit_px * pos["qty"] * FEE + total_net = pos.get("stage1_net", 0.0) + net2 + trades.append({"symbol": sym, "net": total_net, + "pct": total_net / pos.get("stage1_entry_mid", price) * 0.0, + "reason": "period_end", "opened_at": pos["opened_at"], "ts": ts}) + return trades + + +def unique_trades(trades: list[dict]) -> list[dict]: + seen: set[tuple] = set() + out = [] + for t in trades: + key = (t["symbol"], t["opened_at"]) + if key in seen: + continue + seen.add(key) + out.append(t) + return out + + +def pnl_of(trades: list[dict]) -> float: + return sum(t["net"] for t in unique_trades(trades)) + + +def metrics(trades: list[dict]) -> dict: + tr = unique_trades(trades) + if not tr: + return {"n": 0, "wr": 0.0, "pf": 0.0, "pnl": 0.0, "avg": 0.0} + wins = [t for t in tr if t["net"] > 0] + gw = sum(t["net"] for t in wins) + gl = -sum(t["net"] for t in tr if t["net"] < 0) + return {"n": len(tr), "wr": len(wins) / len(tr) * 100.0, + "pf": gw / gl if gl > 0 else float("inf"), + "pnl": sum(t["net"] for t in tr), + "avg": statistics.mean(t["pct"] for t in tr)} + + +def bootstrap_symbols(by_symbol: dict[str, list[dict]], n_iter: int = 2000, seed: int = 7) -> dict: + rng = np.random.default_rng(seed) + symbols = list(by_symbol) + diffs = [] + base_pnls = [] + n1_pnls = [] + for _ in range(n_iter): + pick = rng.choice(symbols, size=len(symbols), replace=True) + b = sum(pnl_of(by_symbol[sym].get("BASE", [])) for sym in pick) + n1 = sum(pnl_of(by_symbol[sym].get("N1", [])) for sym in pick) + base_pnls.append(b) + n1_pnls.append(n1) + diffs.append(n1 - b) + lo_b, hi_b = np.percentile(base_pnls, [5, 95]) + lo_n, hi_n = np.percentile(n1_pnls, [5, 95]) + lo_d, hi_d = np.percentile(diffs, [5, 95]) + return { + "n_iter": n_iter, + "base": {"lo": lo_b, "hi": hi_b, "pos_share": float(np.mean(np.array(base_pnls) > 0))}, + "n1": {"lo": lo_n, "hi": hi_n, "pos_share": float(np.mean(np.array(n1_pnls) > 0))}, + "diff": {"lo": lo_d, "hi": hi_d, "pos_share": float(np.mean(np.array(diffs) > 0))}, + } + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--output", type=Path, default=Path("data/reports/oos_partial_tp_bootstrap.md")) + args = ap.parse_args() + + series = load_series("allowlist") + print(f"symbols: {len(series)}", flush=True) + model = train_fold(series, TRAIN_FRAC) + series = predict_all(series, model, TRAIN_FRAC) + + cuts = {sym: int(len(s["df"]) * TRAIN_FRAC) for sym, s in series.items()} + + results: dict[str, list[dict]] = {} + by_symbol: dict[str, dict[str, list[dict]]] = {sym: {} for sym in series} + for name, v in (("BASE", BASE_V), ("N1", N1_V)): + trades = [] + for sym, s in series.items(): + tt = __import__("quant_oos_profit_experiments").simulate( + sym, s, v, cuts[sym], 0.65) + trades.extend(tt) + by_symbol[sym][name] = tt + results[name] = trades + m = metrics(trades) + print(f"{name}: n={m['n']} wr={m['wr']:.1f}% PF={m['pf']:.2f} pnl={m['pnl']:+.2f}$", flush=True) + + for name, v in PT_VARIANTS.items(): + trades = [] + for sym, s in series.items(): + trades.extend(simulate_partial(sym, s, cuts[sym], v)) + results[name] = trades + m = metrics(trades) + print(f"{name}: n={m['n']} wr={m['wr']:.1f}% PF={m['pf']:.2f} pnl={m['pnl']:+.2f}$", flush=True) + + bs = bootstrap_symbols(by_symbol) + print(f"bootstrap: N1 90% CI [{bs['n1']['lo']:+.2f}, {bs['n1']['hi']:+.2f}] " + f"pos_share={bs['n1']['pos_share']:.1%}; " + f"diff CI [{bs['diff']['lo']:+.2f}, {bs['diff']['hi']:+.2f}] " + f"pos_share={bs['diff']['pos_share']:.1%}", flush=True) + + md = ["# Частичный тейк + бутстрэп N1 (OOS fold 0.70)", "", + "Окно: test-хвост 30% истории (allowlist), свежая CatBoost v2, ML>=0.65, $200/сделку.", + "", + "| Вариант | Сделок | Winrate | PF | PnL $ | avg % |", + "|---|---:|---:|---:|---:|---:|"] + for name in list(results): + m = metrics(results[name]) + pf = f"{m['pf']:.2f}" if m["pf"] != float("inf") else "inf" + md.append(f"| {name} | {m['n']} | {m['wr']:.1f}% | {pf} | {m['pnl']:+.2f} | {m['avg']:+.3f} |") + md += ["", + "## Бутстрэп по символам (2000 ресемплов с повторением)", + "", + "| Метрика | BASE | N1 | Δ (N1-BASE) |", + "|---|---:|---:|---:|", + f"| 90% CI PnL $ | [{bs['base']['lo']:+.2f}, {bs['base']['hi']:+.2f}] | " + f"[{bs['n1']['lo']:+.2f}, {bs['n1']['hi']:+.2f}] | " + f"[{bs['diff']['lo']:+.2f}, {bs['diff']['hi']:+.2f}] |", + f"| Доля положительных выборок | {bs['base']['pos_share']:.1%} | " + f"{bs['n1']['pos_share']:.1%} | {bs['diff']['pos_share']:.1%} |"] + args.output.parent.mkdir(parents=True, exist_ok=True) + args.output.write_text("\n".join(md), encoding="utf-8") + print(f"report -> {args.output}", flush=True) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/quant_oos_profit_experiments.py b/scripts/quant_oos_profit_experiments.py new file mode 100755 index 000000000..ec4e15dd4 --- /dev/null +++ b/scripts/quant_oos_profit_experiments.py @@ -0,0 +1,464 @@ +#!/usr/bin/env python3 +"""OOS profit experiments for Directional v2 — honest walk-forward on 12-month data (v2). + +Changes vs v1: +- Symbols with < MIN_BARS history are excluded from OOS evaluation (short series distort + the window and contribute no meaningful trades). +- ML threshold is calibrated on the TRAIN segment (percentile of prob_up over all train + rows, gap excluded): q90/q95/q97 variants. Fixed 0.65 baseline kept for comparison. +- NO_ML control variant (no probability gate) to isolate the model's contribution. +- Report window = min test_start over admitted symbols. + +Method +------ +- Price source: allowlist venues (kucoin > bitstamp > mexc), ~8760 1h bars for full series. +- Two expanding-window folds: train 70% / test 30%, train 85% / test 15% (gap 48 bars). +- Fresh CatBoost v2 (identical hyperparams to scripts/quant_ml_eval_train.py) per fold. +- Variant battery fixed BEFORE seeing OOS results. Winner judged on OOS only. + +Usage: + python scripts/quant_oos_profit_experiments.py [--output data/reports/oos_profit_experiments.md] +""" + +from __future__ import annotations + +import argparse +import statistics +import sys +from datetime import UTC, datetime +from pathlib import Path + +import numpy as np + +REPO_ROOT = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(REPO_ROOT)) +sys.path.insert(0, str(REPO_ROOT / "scripts")) + +import quant_monthly_backtest as qmb + +STAKE = 200.0 +FEE = qmb.PROFILE["fee_rate"] +COST = qmb.PROFILE["half_spread_rate"] + qmb.PROFILE["slippage_rate"] + +ML_PARAMS = dict( + iterations=400, + depth=5, + learning_rate=0.03, + l2_leaf_reg=5.0, + loss_function="Logloss", + eval_metric="AUC", + random_seed=42, + verbose=0, + thread_count=-1, +) + +GAP_BARS = 48 +MIN_BARS = 1500 # admit symbols with enough history for a meaningful OOS window + + +# --------------------------------------------------------------------------- data -- + + +def load_series() -> dict[str, dict]: + """Load allowlist history and compute features + rolling SMAs + ATR14/close.""" + symbols, _venue_used = qmb.load_symbols("allowlist") + out: dict[str, dict] = {} + for sym, df in symbols.items(): + if len(df) < MIN_BARS: + print(f"skip {sym}: only {len(df)} bars", flush=True) + continue + df = df.reset_index(drop=True) + feats = qmb._compute_features(df) + out[sym] = { + "df": df, + "feats": feats, + "sma50": df["close"].rolling(50).mean().values, + "sma100": df["close"].rolling(100).mean().values, + "sma150": df["close"].rolling(150).mean().values, + "sma200": df["close"].rolling(200).mean().values, + "atr14": _atr14(df), + } + return out + + +def _atr14(df) -> np.ndarray: + import pandas as pd + + hi, lo, cl = df["high"].values, df["low"].values, df["close"].values + prev = np.roll(cl, 1) + prev[0] = cl[0] + tr = np.maximum(hi - lo, np.maximum(np.abs(hi - prev), np.abs(lo - prev))) + atr = pd.Series(tr).rolling(14).mean().values + return atr / np.where(cl > 0, cl, 1.0) + + +# ----------------------------------------------------------------------- trading -- + + +def simulate(sym: str, s: dict, variant: dict, test_start: int, ml_min: float) -> list[dict]: + """Free-profile per-symbol simulation on [test_start, end); mirrors qmb exits 1:1.""" + closes, highs, lows = s["closes"], s["highs"], s["lows"] + times, probs = s["times"], s["probs"] + tp = variant.get("tp", qmb.PROFILE["take_profit_pct"]) + sl = variant.get("sl", qmb.PROFILE["stop_loss_pct"]) + trail = variant.get("trail", qmb.PROFILE["trail_ratio"]) + trend = variant.get("trend") # None | sma50 | sma100 | sma150 | sma200 + cooldown_h = variant.get("cooldown_h", 0) + max_atr = variant.get("max_atr", None) + no_ml = variant.get("no_ml", False) + + sma_col = {"sma50": "sma50", "sma100": "sma100", "sma150": "sma150", "sma200": "sma200"}.get(trend or "") + sma = s.get(sma_col) if sma_col else None + + history: list[float] = [float(c) for c in closes[:test_start]] + pos = None + last_loss_ts = 0 + trades: list[dict] = [] + + for k in range(test_start, len(closes)): + price = float(closes[k]) + ts = int(times[k]) + ml_prob = float(probs[k]) if k < len(probs) and not np.isnan(float(probs[k])) else None + history.append(price) + + if pos is not None: + entry_mid = pos["entry_mid"] + qty = pos["qty"] + max_seen = max(pos["max_seen"], price) + pos["max_seen"] = max_seen + hi, lo = float(highs[k]), float(lows[k]) + exit_px = None + reason = "" + if lo <= entry_mid * (1.0 + sl): + exit_px = entry_mid * (1.0 + sl) * (1.0 - COST) + reason = "stop_loss" + elif hi >= entry_mid * (1.0 + tp): + exit_px = entry_mid * (1.0 + tp) * (1.0 - COST) + reason = "take_profit" + elif max_seen > entry_mid * 1.01 and lo <= max_seen * trail: + exit_px = max_seen * trail * (1.0 - COST) + reason = "trailing_stop" + else: + an = qmb.record_and_analyze(history, ml_prob, 0.0 if sym in qmb.RL_ASSETS else None) + if (an["signal"] == "SELL_SHORT" and an["confidence"] >= qmb.PROFILE["min_confidence"] + and ml_prob is not None and ml_prob <= 0.40 + and (ts - pos["opened_at"]) >= qmb.PROFILE["min_hold_seconds"] * 1000): + exit_px = price * (1.0 - COST) + reason = "confirmed_bearish_exit" + if exit_px is not None: + proceeds = exit_px * qty + net = proceeds - pos["invested"] - exit_px * qty * FEE + trades.append({"symbol": sym, "net": net, "pct": net / pos["invested"] * 100.0, + "reason": reason, "ts": ts, "opened_at": pos["opened_at"]}) + if net < 0: + last_loss_ts = ts + pos = None + + # ---- entry conditions ---- + if trend and sma is not None: + sma_v = float(sma[k]) + if not (sma_v == sma_v and price > sma_v): + continue + if max_atr is not None: + atr_v = float(s["atr14"][k]) + if atr_v == atr_v and atr_v > max_atr: + continue + if cooldown_h and (ts - last_loss_ts) < cooldown_h * 3600 * 1000: + continue + an = qmb.record_and_analyze(history, ml_prob, 0.0 if sym in qmb.RL_ASSETS else None) + if an["signal"] != "BUY_LONG" or an["confidence"] < qmb.PROFILE["min_confidence"]: + continue + if not no_ml and (ml_prob is None or ml_prob < ml_min): + continue + rl = 0.0 if sym in qmb.RL_ASSETS else None + if rl is not None and rl <= qmb.PROFILE["rl_veto_position"]: + continue + entry_fee = STAKE * FEE + exec_px = price * (1.0 + COST) + pos = {"entry_mid": price, "qty": (STAKE - entry_fee) / exec_px, + "invested": STAKE, "entry_fee": entry_fee, "max_seen": price, "opened_at": ts} + + if pos is not None: # mark-to-market at period end + exit_px = price * (1.0 - COST) + proceeds = exit_px * pos["qty"] + net = proceeds - pos["invested"] - exit_px * pos["qty"] * FEE + trades.append({"symbol": sym, "net": net, "pct": net / STAKE * 100.0, + "reason": "period_end", "ts": ts}) + return trades + + +def metrics(trades: list[dict]) -> dict: + if not trades: + return {"n": 0, "wr": 0.0, "pf": 0.0, "pnl": 0.0, "avg": 0.0} + wins = [t for t in trades if t["net"] > 0] + gw = sum(t["net"] for t in wins) + gl = -sum(t["net"] for t in trades if t["net"] < 0) + return {"n": len(trades), "wr": len(wins) / len(trades) * 100.0, + "pf": gw / gl if gl > 0 else float("inf"), + "pnl": sum(t["net"] for t in trades), + "avg": statistics.mean(t["pct"] for t in trades)} + + +# ------------------------------------------------------------- ML per fold -- + + +def train_and_predict(series: dict[str, dict], train_frac: float) -> tuple[dict[str, np.ndarray], dict[str, int], float]: + """Train fresh CatBoost on first `train_frac` bars of each symbol; predict prob_up + on the test tail; also return the train-segment prob_up distribution (for calibration).""" + from catboost import CatBoostClassifier + + feats_cols = qmb.FEATURES + train_rows: list[np.ndarray] = [] + train_y: list[np.ndarray] = [] + test_starts: dict[str, int] = {} + prob_map: dict[str, np.ndarray] = {} + + for sym, s in series.items(): + df = s["df"] + feats = s["feats"] + closes = df["close"].values + target = (np.roll(closes, -1) > closes).astype(int) + target[-1] = 0 + n = len(df) + cut = int(n * train_frac) + test_starts[sym] = cut + + X_tr = feats[feats_cols].values[: cut - GAP_BARS].astype(np.float64) + y_tr = target[: cut - GAP_BARS] + ok_tr = ~np.isnan(X_tr).any(axis=1) + train_rows.append(X_tr[ok_tr]) + train_y.append(y_tr[ok_tr]) + + prob_map[sym] = np.full(n, np.nan) + + X_all = np.vstack(train_rows) + y_all = np.concatenate(train_y) + print(f"fold train_frac={train_frac}: train rows={len(X_all)}", flush=True) + model = CatBoostClassifier(**ML_PARAMS) + model.fit(X_all, y_all) + + # train-segment probs for calibration + tr_probs: list[np.ndarray] = [] + for sym, s in series.items(): + df = s["df"] + feats = s["feats"] + cut = test_starts[sym] + X_tr = feats[feats_cols].values[: cut - GAP_BARS].astype(np.float64) + ok = ~np.isnan(X_tr).any(axis=1) + if ok.any(): + tr_probs.append(model.predict_proba(X_tr[ok])[:, 1]) + X_te = feats[feats_cols].values[cut:].astype(np.float64) + ok_te = ~np.isnan(X_te).any(axis=1) + if ok_te.any(): + p = model.predict_proba(X_te[ok_te])[:, 1] + arr = np.full(len(X_te), np.nan) + arr[ok_te] = p + prob_map[sym][cut:] = arr + tr_all = np.concatenate(tr_probs) if tr_probs else np.array([]) + return prob_map, test_starts, tr_all + + +# ------------------------------------------------------------- variant run -- + + + + +def dedup(trades: list[dict]) -> list[dict]: + """Remove duplicate trades across overlapping OOS windows (same symbol+entry).""" + seen: set[tuple] = set() + out = [] + for t in trades: + key = (t["symbol"], t["opened_at"]) + if key in seen: + continue + seen.add(key) + out.append(t) + return out + + +def make_variants(train_prob: np.ndarray) -> list[tuple[str, dict, float]]: + """Round-3 battery: isolate the trailing-stop effect; strict ML quantiles.""" + q98 = float(np.percentile(train_prob, 98)) + q99 = float(np.percentile(train_prob, 99)) + print(f"train prob_up percentiles: q98={q98:.4f} q99={q99:.4f}", flush=True) + return [ + ("BASE: ML>=0.65 (как в проде)", {}, 0.65), + ("N1: жёсткий трейлинг trail=1.0", {"trail": 1.0}, 0.65), + ("N1m: мягкий трейлинг 0.995", {"trail": 0.995}, 0.65), + ("N1X: N1 + TP 2.5%/SL 1.0%", {"trail": 1.0, "tp": 0.025, "sl": -0.010}, 0.65), + ("N1q98: N1 + ML топ-2% train", {"trail": 1.0}, q98), + ("N1q99: N1 + ML топ-1% train", {"trail": 1.0}, q99), + ("N1Xq99: N1X + ML топ-1% train", {"trail": 1.0, "tp": 0.025, "sl": -0.010}, q99), + ] + + +def portfolio_sim(trades: list[dict], *, start_cash: float = 1000.0, + max_dd: float = 0.0025, max_daily_loss: float = 0.0025) -> dict: + """Merge potential trades under prod profile: max 1 global position, drawdown and + daily-loss kill switches (1:1 with quant_directional_policy.entry_block_reason).""" + from datetime import datetime, timezone + + ordered = sorted(trades, key=lambda t: t["opened_at"]) + cash = start_cash + peak = start_cash + equity = start_cash + last_close_ms = 0 + taken = 0 + blocked_dd = False + current_day = "" + day_start_equity = start_cash + day_pnl = 0.0 + day_trades: list[dict] = [] + for t in ordered: + day = datetime.fromtimestamp(t["opened_at"] / 1000, tz=timezone.utc).strftime("%Y-%m-%d") + if day != current_day: + current_day = day + day_start_equity = equity + day_pnl = 0.0 + if t["opened_at"] < last_close_ms: + continue # position still busy + if blocked_dd: + continue + if day_pnl <= -max_daily_loss * day_start_equity: + continue # daily loss kill + if equity <= peak * (1.0 - max_dd): + blocked_dd = True + continue # global drawdown kill (stays blocked) + cash += t["net"] + equity = cash + peak = max(peak, equity) + day_pnl += t["net"] + last_close_ms = t["ts"] + taken += 1 + day_trades.append(t) + return {"start": start_cash, "end": equity, "pnl": equity - start_cash, + "taken": taken, "blocked_dd": blocked_dd} + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--output", type=Path, default=Path("data/reports/oos_profit_experiments.md")) + args = ap.parse_args() + + series = load_series() + print(f"admitted symbols: {len(series)}", flush=True) + for sym, s in series.items(): + df = s["df"] + s["closes"] = df["close"].values + s["highs"] = df["high"].values + s["lows"] = df["low"].values + s["times"] = df["timestamp_ms"].values + + rows_by_variant: dict[str, list[dict]] = {} + variants: list[tuple[str, dict, float]] | None = None + fold_info: list[dict] = [] + + for train_frac in (0.50, 0.60, 0.70, 0.85): + probs, test_starts, tr_prob = train_and_predict(series, train_frac) + if variants is None: + variants = make_variants(tr_prob) + rows_by_variant = {name: [] for name, _, _ in variants} + for sym, s in series.items(): + s["probs"] = probs[sym] + + t0 = min(int(s["times"][test_starts[sym]]) for sym in series) + t1 = max(int(s["times"][-1]) for s in series.values()) + d0 = datetime.fromtimestamp(t0 / 1000, tz=UTC).strftime("%Y-%m-%d") + d1 = datetime.fromtimestamp(t1 / 1000, tz=UTC).strftime("%Y-%m-%d") + fold_info.append({"frac": train_frac, "window": f"{d0} .. {d1}", + "test_bars": max(len(ss["times"]) - test_starts[sym] for sym, ss in series.items())}) + print(f"fold train_frac={train_frac}: OOS window {d0} .. {d1}", flush=True) + + for name, variant, ml_min in variants: + bl = variant.get("blacklist", set()) + trades = [] + for sym, s in series.items(): + if sym in bl: + continue + trades.extend(simulate(sym, s, variant, test_starts[sym], ml_min)) + rows_by_variant[name].extend(trades) + m = metrics(trades) + print(f" {name}: n={m['n']} wr={m['wr']:.1f}% PF={m['pf']:.2f} pnl={m['pnl']:+.2f}$", flush=True) + + # ---- report ---- + md = ["# OOS-эксперименты: реальная прибыль Directional v2 (walk-forward)", "", + "Методика: свежая CatBoost v2 обучена на train-окне каждого фолда (70% и 85% истории),", + "оценка только на нетронутых test-окнах. Порог ML калибруется на train-перцентиле.", + "Символы с историей < 1500 баров исключены (искажают окно). Ставка $200/сделку, свободный профиль.", + "", + f"Фолды (OOS-окна): {fold_info}", + "", + "| Вариант | Сделок | Winrate | PF | PnL $ | avg % |", + "|---|---:|---:|---:|---:|---:|"] + for name, _, _ in variants: + m = metrics(rows_by_variant[name]) + pf = f"{m['pf']:.2f}" if m["pf"] != float("inf") else "inf" + md.append(f"| {name} | {m['n']} | {m['wr']:.1f}% | {pf} | {m['pnl']:+.2f} | {m['avg']:+.3f} |") + # reason breakdown for BASE vs N1 (isolate trailing-stop damage) + def reasons(trades): + from collections import Counter + c = Counter(t["reason"] for t in trades) + return ", ".join(f"{k}={v}" for k, v in c.most_common()) or "нет сделок" + + md += ["", + "**Интерпретация:** результаты на OOS-окнах; победитель требует подтверждения на следующем", + "нетронутом окне (не подбирать параметры по этим цифрам).", + "", + "## Разложение сделок по причине выхода (все OOS-окна)", + "", + "| Вариант | TP | SL | trailing | bearish_exit | period_end |", + "|---|---:|---:|---:|---:|---:|"] + for name in ("BASE: ML>=0.65 (как в проде)", "N1: жёсткий трейлинг trail=1.0", + "N1m: мягкий трейлинг 0.995"): + tr = rows_by_variant.get(name, []) + from collections import Counter + c = Counter(t["reason"] for t in tr) + md.append(f"| {name} | {c['take_profit']} | {c['stop_loss']} | {c['trailing_stop']} | " + f"{c['confirmed_bearish_exit']} | {c['period_end']} |") + md += ["", + "## Детали сделок N1 (трейлинг выкл, все OOS-окна)", ""] + tr = dedup(rows_by_variant.get("N1: жёсткий трейлинг trail=1.0", [])) + for t in sorted(tr, key=lambda x: x["opened_at"]): + d = datetime.fromtimestamp(t["opened_at"] / 1000, tz=UTC).strftime("%m-%d %H:%M") + md.append(f"- {d} {t['symbol']}: {t['net']:+.2f}$ ({t['pct']:+.2f}%) — {t['reason']}") + if not tr: + md.append("- нет сделок") + md += ["", + "**Интерпретация:** результаты на OOS-окнах; победитель требует подтверждения на следующем", + "нетронутом окне (не подбирать параметры по этим цифрам).", + "", + "## Портфельная симуляция финалиста (прод-профиль)", + "", + "Прод-профиль: max 1 глобальная позиция, kill-свитчи drawdown/daily-loss 0.25%,", + "стартовый капитал $1000, ставка $200/сделку. Сделки потенциальные (free-profile) сливаются", + "событийно; drawdown-kill после срабатывания блокирует входы до конца окна."] + + # Unique-trade summary (windows overlap -> dedup by symbol+entry) + md += ["", "## Уникальные сделки (дедуп по символ+вход)", "", + "| Вариант | Сделок | Winrate | PF | PnL $ | avg % |", + "|---|---:|---:|---:|---:|---:|"] + for name in ("BASE: ML>=0.65 (как в проде)", "N1: жёсткий трейлинг trail=1.0", + "N1m: мягкий трейлинг 0.995", "N1X: N1 + TP 2.5%/SL 1.0%"): + m = metrics(dedup(rows_by_variant.get(name, []))) + pf = f"{m['pf']:.2f}" if m["pf"] != float("inf") else "inf" + md.append(f"| {name} | {m['n']} | {m['wr']:.1f}% | {pf} | {m['pnl']:+.2f} | {m['avg']:+.3f} |") + + # Portfolio sim on DEDUPED trades + for sim_name in ("N1: жёсткий трейлинг trail=1.0", "BASE: ML>=0.65 (как в проде)"): + tr = dedup(rows_by_variant.get(sim_name, [])) + ps = portfolio_sim(tr) + md += [f"- **{sim_name}**: {ps['taken']} сделок в портфеле, " + f"PnL {ps['pnl']:+.2f}$ (end {ps['end']:.2f}$), " + f"drawdown-kill: {'ДА' if ps['blocked_dd'] else 'нет'}"] + if len(rows_by_variant.get("N1: жёсткий трейлинг trail=1.0", [])) < 30: + md += ["", "⚠️ Выборка N1 мала (<30 сделок) — результат ориентировочный, нужен " + "следующий нетронутый период для подтверждения."] + + args.output.parent.mkdir(parents=True, exist_ok=True) + args.output.write_text("\n".join(md), encoding="utf-8") + print(f"report -> {args.output}", flush=True) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/quant_oos_robustness.py b/scripts/quant_oos_robustness.py new file mode 100755 index 000000000..c35d824c0 --- /dev/null +++ b/scripts/quant_oos_robustness.py @@ -0,0 +1,210 @@ +#!/usr/bin/env python3 +"""Robustness checks for the N1 (trail=1.0) OOS finding. + +1. Jackknife over symbols: drop each symbol in turn, recompute unique-trade PnL for + BASE (trail 0.988) vs N1 (trail 1.0) on the fold-0.70 OOS window. If the positive + edge depends on a single symbol, jackknife will show it. +2. Venue robustness: same signals (ML>=0.65), but prices taken from binance series + (where available) instead of allowlist — N1 vs BASE on the same calendar window. + +One CatBoost v2 is trained on the fold-0.70 train segment (allowlist data) and reused +for both checks; ML threshold is the fixed deployed 0.65 to mirror the engine. + +Usage: + python scripts/quant_oos_robustness.py [--output data/reports/oos_robustness.md] +""" + +from __future__ import annotations + +import argparse +import statistics +import sys +from datetime import UTC, datetime +from pathlib import Path + +import numpy as np + +REPO_ROOT = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(REPO_ROOT)) +sys.path.insert(0, str(REPO_ROOT / "scripts")) + +import quant_monthly_backtest as qmb +from quant_oos_profit_experiments import ( + ML_PARAMS, + GAP_BARS, + _atr14, + metrics, + simulate, +) + +STAKE = 200.0 + +# Reuse the same variant dicts as the OOS experiment (a-priori definitions). +BASE_V = {} +N1_V = {"trail": 1.0} + + +def load_series(venue: str = "allowlist") -> dict[str, dict]: + symbols, _venue = qmb.load_symbols(venue) + out: dict[str, dict] = {} + for sym, df in symbols.items(): + if len(df) < 1500: + continue + df = df.reset_index(drop=True) + feats = qmb._compute_features(df) + out[sym] = { + "df": df, + "feats": feats, + "sma50": df["close"].rolling(50).mean().values, + "sma100": df["close"].rolling(100).mean().values, + "sma150": df["close"].rolling(150).mean().values, + "sma200": df["close"].rolling(200).mean().values, + "atr14": _atr14(df), + "closes": df["close"].values, + "highs": df["high"].values, + "lows": df["low"].values, + "times": df["timestamp_ms"].values, + } + return out + + +def train_fold(series: dict[str, dict], train_frac: float = 0.70): + from catboost import CatBoostClassifier + + rows: list[np.ndarray] = [] + ys: list[np.ndarray] = [] + for sym, s in series.items(): + df = s["df"] + closes = df["close"].values + target = (np.roll(closes, -1) > closes).astype(int) + target[-1] = 0 + cut = int(len(df) * train_frac) + X = s["feats"][qmb.FEATURES].values[: cut - GAP_BARS].astype(np.float64) + y = target[: cut - GAP_BARS] + ok = ~np.isnan(X).any(axis=1) + rows.append(X[ok]) + ys.append(y[ok]) + X_all = np.vstack(rows) + y_all = np.concatenate(ys) + model = CatBoostClassifier(**ML_PARAMS) + model.fit(X_all, y_all) + return model + + +def predict_all(series: dict[str, dict], model, train_frac: float = 0.70) -> dict[str, dict]: + out = {} + for sym, s in series.items(): + cut = int(len(s["df"]) * train_frac) + X = s["feats"][qmb.FEATURES].values.astype(np.float64) + p = model.predict_proba(X)[:, 1] + arr = np.full(len(X), np.nan) + arr[cut:] = p[cut:] + s2 = dict(s) + s2["probs"] = arr + out[sym] = s2 + return out + + +def unique_pnl(trades: list[dict]) -> float: + seen: set[tuple] = set() + total = 0.0 + for t in trades: + key = (t["symbol"], t["opened_at"]) + if key in seen: + continue + seen.add(key) + total += t["net"] + return total + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--output", type=Path, default=Path("data/reports/oos_robustness.md")) + args = ap.parse_args() + + series = load_series("allowlist") + print(f"allowlist symbols: {len(series)}", flush=True) + model = train_fold(series, 0.70) + series = predict_all(series, model, 0.70) + + # baseline on fold-0.70 window + def trades_for(variant: dict) -> list[dict]: + tr = [] + for sym, s in series.items(): + cut = int(len(s["df"]) * 0.70) + tr.extend(simulate(sym, s, variant, cut, 0.65)) + return tr + + base_trades = trades_for(BASE_V) + n1_trades = trades_for(N1_V) + base_pnl = unique_pnl(base_trades) + n1_pnl = unique_pnl(n1_trades) + print(f"baseline fold-0.70: BASE {base_pnl:+.2f}$ N1 {n1_pnl:+.2f}$", flush=True) + + # --- jackknife --- + rows = [] + for sym in sorted(series): + sub = {k: v for k, v in series.items() if k != sym} + bt, nt = [], [] + for name2, s2 in sub.items(): + cut = int(len(s2["df"]) * 0.70) + bt.extend(simulate(name2, s2, BASE_V, cut, 0.65)) + nt.extend(simulate(name2, s2, N1_V, cut, 0.65)) + b = unique_pnl(bt) + n = unique_pnl(nt) + rows.append((sym, b, n)) + print(f"jackknife -{sym}: BASE {b:+.2f}$ N1 {n:+.2f}$", flush=True) + + jb = [r[1] for r in rows] + jn = [r[2] for r in rows] + md = ["# Устойчивость N1 (trail=1.0): jackknife по символам + binance-цены", "", + "Окно: fold 0.70 (test-хвост каждого символа),", + "уникальные сделки (дедуп), ставка $200, ML>=0.65 (фикс. порог прод-движка).", + "", + f"Baseline: BASE {base_pnl:+.2f}$ | N1 {n1_pnl:+.2f}$", + "", + "| Без символа | BASE $ | N1 $ |", + "|---|---:|---:|"] + for sym, b, n in rows: + md.append(f"| -{sym} | {b:+.2f} | {n:+.2f} |") + md += ["", + f"Jackknife BASE: min {min(jb):+.2f} / max {max(jb):+.2f} / med {statistics.median(jb):+.2f}", + f"Jackknife N1: min {min(jn):+.2f} / max {max(jn):+.2f} / med {statistics.median(jn):+.2f}"] + + # --- binance venue check --- + md += ["", "## Проверка на binance-ценах (тот же календарный OOS-период)", ""] + bin_series = load_series("binance") + if bin_series: + bin_series = predict_all(bin_series, model, 0.70) + bt2, nt2 = [], [] + for name2, s2 in bin_series.items(): + cut = int(len(s2["df"]) * 0.70) + bt2.extend(simulate(name2, s2, BASE_V, cut, 0.65)) + nt2.extend(simulate(name2, s2, N1_V, cut, 0.65)) + bp = unique_pnl(bt2) + np2 = unique_pnl(nt2) + md += [f"binance-символов: {len(bin_series)}", + f"BASE: {bp:+.2f}$ | N1: {np2:+.2f}$", + "", + "| Сделка (N1, binance) | PnL $ | reason |", + "|---|---:|---|"] + seen = set() + for t in sorted(nt2, key=lambda x: x["opened_at"]): + key = (t["symbol"], t["opened_at"]) + if key in seen: + continue + seen.add(key) + d = datetime.fromtimestamp(t["opened_at"] / 1000, tz=UTC).strftime("%m-%d %H:%M") + md.append(f"| {d} {t['symbol']} | {t['net']:+.2f} | {t['reason']} |") + print(f"binance: BASE {bp:+.2f}$ N1 {np2:+.2f}$", flush=True) + else: + md += ["binance-серии недоступны"] + + args.output.parent.mkdir(parents=True, exist_ok=True) + args.output.write_text("\n".join(md), encoding="utf-8") + print(f"report -> {args.output}", flush=True) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/quant_oos_short_experiment.py b/scripts/quant_oos_short_experiment.py new file mode 100755 index 000000000..79486eff7 --- /dev/null +++ b/scripts/quant_oos_short_experiment.py @@ -0,0 +1,192 @@ +#!/usr/bin/env python3 +"""SHORT-direction experiment on OOS (mirror of the LONG engine). + +The engine generates SELL_SHORT signals and ml_prob<=0.40 (prob_down>60%) but +entries are LONG-only. In a bear market (the entire 2026 OOS window was below +SMA200) this leaves the most probable direction untraded. This script simulates +mirrored SHORT entries with the same cost model and compares LONG-only vs +LONG+SHORT vs SHORT-only on the fold-0.70 OOS window (fresh CatBoost v2 on train). + +Mirror rules: +- entry: SELL_SHORT signal, confidence>=0.88, ml_prob<=0.40, free profile. +- exit: SL when price rises abs(sl) (loss), TP when price falls tp (profit), + trailing: after -1% favorable move, exit when price bounces back from min_seen. +- costs applied symmetrically. + +Usage: + python scripts/quant_oos_short_experiment.py [--output data/reports/oos_short_experiment.md] +""" + +from __future__ import annotations + +import argparse +import statistics +import sys +from datetime import UTC, datetime +from pathlib import Path + +import numpy as np + +REPO_ROOT = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(REPO_ROOT)) +sys.path.insert(0, str(REPO_ROOT / "scripts")) + +import quant_monthly_backtest as qmb +from quant_oos_robustness import load_series, predict_all, train_fold + +STAKE = 200.0 +FEE = qmb.PROFILE["fee_rate"] +COST = qmb.PROFILE["half_spread_rate"] + qmb.PROFILE["slippage_rate"] +TRAIN_FRAC = 0.70 +TP = qmb.PROFILE["take_profit_pct"] # 0.02 +SL = abs(qmb.PROFILE["stop_loss_pct"]) # 0.01 +TRAIL = 1.0 # hard trail (winner from LONG experiments) + + +def simulate_short(sym: str, s: dict, test_start: int, ml_max: float = 0.40) -> list[dict]: + """Mirrored SHORT simulation; same entry gate shape as the LONG engine.""" + closes, highs, lows = s["closes"], s["highs"], s["lows"] + times, probs = s["times"], s["probs"] + history: list[float] = [float(c) for c in closes[:test_start]] + pos = None + trades: list[dict] = [] + + for k in range(test_start, len(closes)): + price = float(closes[k]) + ts = int(times[k]) + ml_prob = float(probs[k]) if k < len(probs) and not np.isnan(float(probs[k])) else None + history.append(price) + + if pos is not None: + entry_mid = pos["entry_mid"] + qty = pos["qty"] + min_seen = min(pos["min_seen"], price) + pos["min_seen"] = min_seen + hi, lo = float(highs[k]), float(lows[k]) + exit_px = None + reason = "" + # SL: price rises against the short + if hi >= entry_mid * (1.0 + SL): + exit_px = entry_mid * (1.0 + SL) * (1.0 + COST) + reason = "stop_loss" + # TP: price falls in favor + elif lo <= entry_mid * (1.0 - TP): + exit_px = entry_mid * (1.0 - TP) * (1.0 + COST) + reason = "take_profit" + # hard trailing: after -1% favorable, exit on bounce from min_seen + elif min_seen < entry_mid * 0.99 and hi >= min_seen * (2.0 - TRAIL): + exit_px = min_seen * (2.0 - TRAIL) * (1.0 + COST) + reason = "trailing_stop" + if exit_px is not None: + proceeds = exit_px * qty + net = pos["invested"] - proceeds - exit_px * qty * FEE + trades.append({"symbol": sym, "net": net, "pct": net / pos["invested"] * 100.0, + "reason": reason, "opened_at": pos["opened_at"], "ts": ts}) + pos = None + + # entry: SELL_SHORT mirror + an = qmb.record_and_analyze(history, ml_prob, 0.0 if sym in qmb.RL_ASSETS else None) + if an["signal"] != "SELL_SHORT" or an["confidence"] < qmb.PROFILE["min_confidence"]: + continue + if ml_prob is None or ml_prob > ml_max: + continue + entry_fee = STAKE * FEE + exec_px = price * (1.0 - COST) # short sells at bid + pos = {"entry_mid": price, "qty": (STAKE - entry_fee) / exec_px, + "invested": STAKE, "min_seen": price, "opened_at": ts} + + if pos is not None: # mark-to-market + exit_px = price * (1.0 + COST) + proceeds = exit_px * pos["qty"] + net = pos["invested"] - proceeds - exit_px * pos["qty"] * FEE + trades.append({"symbol": sym, "net": net, "pct": net / STAKE * 100.0, + "reason": "period_end", "opened_at": pos["opened_at"], "ts": ts}) + return trades + + +def unique_trades(trades: list[dict]) -> list[dict]: + seen: set[tuple] = set() + out = [] + for t in trades: + key = (t["symbol"], t["opened_at"]) + if key in seen: + continue + seen.add(key) + out.append(t) + return out + + +def metrics(trades: list[dict]) -> dict: + tr = unique_trades(trades) + if not tr: + return {"n": 0, "wr": 0.0, "pf": 0.0, "pnl": 0.0, "avg": 0.0} + wins = [t for t in tr if t["net"] > 0] + gw = sum(t["net"] for t in wins) + gl = -sum(t["net"] for t in tr if t["net"] < 0) + return {"n": len(tr), "wr": len(wins) / len(tr) * 100.0, + "pf": gw / gl if gl > 0 else float("inf"), + "pnl": sum(t["net"] for t in tr), + "avg": statistics.mean(t["pct"] for t in tr)} + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--output", type=Path, default=Path("data/reports/oos_short_experiment.md")) + args = ap.parse_args() + + series = load_series("allowlist") + print(f"symbols: {len(series)}", flush=True) + model = train_fold(series, TRAIN_FRAC) + series = predict_all(series, model, TRAIN_FRAC) + cuts = {sym: int(len(s["df"]) * TRAIN_FRAC) for sym, s in series.items()} + + from quant_oos_profit_experiments import simulate # LONG engine reuse + + long_trades, short_trades = [], [] + for sym, s in series.items(): + long_trades.extend(simulate(sym, s, {"trail": TRAIL}, cuts[sym], 0.65)) + short_trades.extend(simulate_short(sym, s, cuts[sym], 0.40)) + + for ml_max in (0.35, 0.40): + st = [] + for sym, s in series.items(): + st.extend(simulate_short(sym, s, cuts[sym], ml_max)) + m = metrics(st) + print(f"SHORT ml<={ml_max}: n={m['n']} wr={m['wr']:.1f}% PF={m['pf']:.2f} " + f"pnl={m['pnl']:+.2f}$", flush=True) + if ml_max == 0.40: + short_trades = st + + lm, sm = metrics(long_trades), metrics(short_trades) + comb = unique_trades(long_trades + short_trades) + cm = metrics(comb) + print(f"LONG: n={lm['n']} wr={lm['wr']:.1f}% PF={lm['pf']:.2f} pnl={lm['pnl']:+.2f}$", flush=True) + print(f"SHORT: n={sm['n']} wr={sm['wr']:.1f}% PF={sm['pf']:.2f} pnl={sm['pnl']:+.2f}$", flush=True) + print(f"LONG+SHORT: n={cm['n']} wr={cm['wr']:.1f}% PF={cm['pf']:.2f} pnl={cm['pnl']:+.2f}$", flush=True) + + t0 = min(int(s["times"][cuts[sym]]) for sym, s in series.items()) + d0 = datetime.fromtimestamp(t0 / 1000, tz=UTC).strftime("%Y-%m-%d") + md = ["# SHORT-эксперимент (зеркало LONG) на OOS", "", + f"Окно: {d0} .. сегодня, fold 0.70, свежая CatBoost v2, $200/сделку, " + "жёсткий трейлинг (trail=1.0).", + "", + "| Стратегия | Сделок | Winrate | PF | PnL $ | avg % |", + "|---|---:|---:|---:|---:|---:|"] + for name, m in (("LONG-only (текущая)", lm), ("SHORT-only (ml<=0.40)", sm), + ("LONG+SHORT (комбо)", cm)): + pf = f"{m['pf']:.2f}" if m["pf"] != float("inf") else "inf" + md.append(f"| {name} | {m['n']} | {m['wr']:.1f}% | {pf} | {m['pnl']:+.2f} | {m['avg']:+.3f} |") + md += ["", "## Сделки SHORT (ml<=0.40)", ""] + for t in sorted(unique_trades(short_trades), key=lambda x: x["opened_at"]): + d = datetime.fromtimestamp(t["opened_at"] / 1000, tz=UTC).strftime("%m-%d %H:%M") + md.append(f"- {d} {t['symbol']}: {t['net']:+.2f}$ ({t['pct']:+.2f}%) — {t['reason']}") + if not unique_trades(short_trades): + md.append("- нет сделок") + args.output.parent.mkdir(parents=True, exist_ok=True) + args.output.write_text("\n".join(md), encoding="utf-8") + print(f"report -> {args.output}", flush=True) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/quant_prod_3m_backtest.py b/scripts/quant_prod_3m_backtest.py new file mode 100755 index 000000000..e40d7d8cd --- /dev/null +++ b/scripts/quant_prod_3m_backtest.py @@ -0,0 +1,472 @@ +#!/usr/bin/env python3 +"""Production-accurate 3-month backtest of the CURRENT live strategy. + +Reproduces the deployed Directional v2 paper engine 1:1 on historical data: +- config read from deploy/systemd/aios-quant-trading.service Environment + (DirectionalV2Config.from_env after applying those env vars) -> current settings; +- per-exchange cash ($1000 each, INITIAL_PER_EXCHANGE), 30% cash reserve, + min(investment, $200), min order $10, max 1 global position; +- entries on closed candle: static gates (exchange/positions/drawdown/daily/reserve), + record_and_analyze signal + confidence, ML prob gate, RL veto (RL_ASSETS blocked); +- exits by hi/lo (SL/TP/trailing, harness convention) + confirmed_bearish_exit; +- kill switches: drawdown 0.25% and daily loss 0.25% of total equity (all 10 exchanges); +- prices: local 1h OHLCV CSVs for every allowed exchange that has data. + +Also runs a sensitivity variant with trailing exit priced at bar close (live engine +prices trailing at current mid, not at the peak) and a control variant trail=0.988. + +Usage: + python scripts/quant_prod_3m_backtest.py [--months 3] [--output data/reports/prod_3m_backtest.md] +""" + +from __future__ import annotations + +import argparse +import json +import math +import os +import re +import statistics +import sys +from collections import Counter, defaultdict +from datetime import UTC, datetime +from pathlib import Path + +import numpy as np + +REPO_ROOT = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(REPO_ROOT)) +sys.path.insert(0, str(REPO_ROOT / "scripts")) + +import quant_monthly_backtest as qmb + +UNIT = REPO_ROOT / "deploy" / "systemd" / "aios-quant-trading.service" +RL_ASSETS = qmb.RL_ASSETS +COST = qmb.PROFILE["half_spread_rate"] + qmb.PROFILE["slippage_rate"] # 0.001 +FEE = qmb.PROFILE["fee_rate"] # 0.0015 + + +def load_unit_env() -> dict[str, str]: + """Parse Environment= lines from the canonical systemd unit (current strategy).""" + env: dict[str, str] = {} + for line in UNIT.read_text(encoding="utf-8").splitlines(): + m = re.match(r"\s*Environment=([A-Z0-9_]+)=(.*)$", line) + if m: + env[m.group(1)] = m.group(2).strip() + return env + + +def build_config(env: dict[str, str], trail_override: float | None = None): + from aios_core.quant_directional_policy import DirectionalV2Config + + old = dict(os.environ) + try: + os.environ.clear() + os.environ.update({k: v for k, v in env.items() if k.startswith("AIOS_QUANT")}) + if trail_override is not None: + os.environ["AIOS_QUANT_TRAIL_RATIO"] = str(trail_override) + cfg = DirectionalV2Config.from_env() + finally: + os.environ.clear() + os.environ.update(old) + return cfg + + +def load_series(env: dict[str, str], min_bars: int = 4000) -> tuple[dict[str, dict], dict[str, str]]: + """Load 1h OHLCV for every (symbol, allowed-exchange) pair with local data. + + Picks the first allowed exchange with at least `min_bars` bars (kraken has only + ~724 bars - API cap - and would silently truncate the test window otherwise). + """ + allowed = [e.strip().lower() for e in env.get("AIOS_QUANT_ALLOWED_EXCHANGES", "").split(",") + if e.strip()] + out: dict[str, dict] = {} + used: dict[str, str] = {} + for sym_dir in sorted(Path(qmb.QUANT_DIR).iterdir()): + sym = sym_dir.name + if not sym_dir.is_dir() or sym in ("MATIC", "RNDR"): + continue + for ex in allowed: + df = qmb._load_series(sym, ex) + if df is None: + continue + if len(df) < min_bars: + continue # exchange history too short for the window + feats = qmb._compute_features(df) + out[f"{ex}:{sym}"] = { + "symbol": sym, + "exchange": ex, + "df": df.reset_index(drop=True), + "feats": feats.reset_index(drop=True), + "closes": df["close"].values, + "highs": df["high"].values, + "lows": df["low"].values, + "times": df["timestamp_ms"].values, + } + used.setdefault(sym, ex) + break # first allowed exchange with full history (unit order = priority) + return out, used + + +def run_backtest(series: dict[str, dict], cfg, probs: dict[str, np.ndarray], + start_ms: int, *, trail_at_close: bool = False, + rl_block: bool = True) -> dict: + """Event-driven simulation mirroring quant_directional_v2.run_multi_exchange_cycle.""" + from aios_core.quant_directional_policy import ( + bearish_exit_confirmed, + entry_block_reason, + ) + + # per-exchange ledgers (all 10 engine exchanges, like the engine does) + exchanges = ["kraken", "binance", "bybit", "okx", "uniswap_v3", "coinbase", + "kucoin", "bitfinex", "bitstamp", "mexc"] + data = {ex: {"cash_usd": 1000.0, "initial_balance_usd": 1000.0, + "positions": {}, "entry_count": 0, "closed_trades": 0, + "winning_trades": 0, "net_profit_usd": 0.0, "net_loss_usd": 0.0, + "realized_pnl_usd": 0.0, "fees_paid_usd": 0.0} for ex in exchanges} + + # index series by timestamp + by_ts: dict[int, list[tuple[str, dict]]] = defaultdict(list) + for key, s in series.items(): + for k, ts in enumerate(s["times"]): + if int(ts) >= start_ms: + by_ts[int(ts)].append((key, s, k)) + all_ts = sorted(by_ts) + + # warm-up history (bars before start) + history: dict[str, list[float]] = {} + for key, s in series.items(): + i0 = int(np.searchsorted(s["times"], start_ms)) + history[key] = [float(c) for c in s["closes"][:i0]] + + block_counts: Counter[str] = Counter() + trades: list[dict] = [] + equity_curve: list[dict] = [] + initial_total = 1000.0 * len(exchanges) + peak_equity = initial_total + day = "" + day_start_equity = initial_total + daily_loss_pct = 0.0 + + def mark_equity() -> float: + eq = sum(float(p["cash_usd"]) for p in data.values()) + for p in data.values(): + for pos in p["positions"].values(): + eq += float(pos["qty"]) * float(pos.get("mark_price", pos["entry_mid_price"])) + return eq + + def global_positions() -> int: + return sum(len(p["positions"]) for p in data.values()) + + for ts in all_ts: + now = ts / 1000.0 + d = datetime.fromtimestamp(ts / 1000, tz=UTC).strftime("%Y-%m-%d") + if d != day: + day = d + day_start_equity = mark_equity() + daily_loss_pct = 0.0 + + # ---- exits ---- + for key, s, k in by_ts[ts]: + ex = s["exchange"] + price = float(s["closes"][k]) + history[key].append(price) + pos = data[ex]["positions"].get(f"{s['symbol']}USD") + if pos is None: + continue + pos["mark_price"] = price + entry_mid = float(pos["entry_mid_price"]) + invested = float(pos["invested_usd"]) + qty = float(pos["qty"]) + max_seen = max(float(pos["max_price_seen"]), price) + pos["max_price_seen"] = max_seen + hi, lo = float(s["highs"][k]), float(s["lows"][k]) + exit_px = None + reason = "" + if lo <= entry_mid * (1.0 + cfg.stop_loss_pct): + exit_px = entry_mid * (1.0 + cfg.stop_loss_pct) * (1.0 - COST) + reason = "stop_loss" + elif hi >= entry_mid * (1.0 + cfg.take_profit_pct): + exit_px = entry_mid * (1.0 + cfg.take_profit_pct) * (1.0 - COST) + reason = "take_profit" + elif max_seen > entry_mid * 1.01 and lo <= max_seen * cfg.trail_ratio: + exit_px = (max_seen * cfg.trail_ratio if not trail_at_close else price) * (1.0 - COST) + reason = "trailing_stop" + else: + ml_prob = float(s["probs"][k]) if k < len(s["probs"]) and not np.isnan(s["probs"][k]) else None + an = qmb.record_and_analyze( + history[key], ml_prob, + (0.0 if s["symbol"] in RL_ASSETS else None) if rl_block else None) + if (an["signal"] == "SELL_SHORT" + and float(an["confidence"]) >= cfg.min_confidence + and ml_prob is not None and ml_prob <= cfg.bearish_ml_max + and (ts - pos["opened_at"]) >= cfg.min_hold_seconds * 1000): + exit_px = price * (1.0 - COST) + reason = "confirmed_bearish_exit" + if exit_px is not None: + proceeds = exit_px * qty + net = proceeds - invested - exit_px * qty * FEE + data[ex]["cash_usd"] += proceeds - exit_px * qty * FEE + data[ex]["realized_pnl_usd"] += net + data[ex]["fees_paid_usd"] += exit_px * qty * FEE + data[ex]["closed_trades"] += 1 + if net > 0: + data[ex]["winning_trades"] += 1 + data[ex]["net_profit_usd"] += net + else: + data[ex]["net_loss_usd"] += abs(net) + del data[ex]["positions"][f"{s['symbol']}USD"] + trades.append({"symbol": s["symbol"], "exchange": ex, "net": net, + "pct": net / invested * 100.0, "reason": reason, + "opened_at": pos["opened_at"], "closed_at": ts, + "hold_h": round((ts - pos["opened_at"]) / 3_600_000, 1)}) + + # ---- entries ---- + equity = mark_equity() + peak_equity = max(peak_equity, equity) + drawdown_pct = max(0.0, (initial_total - equity) / initial_total * 100.0) + daily_loss_pct = max(daily_loss_pct, + max(0.0, (day_start_equity - equity) / day_start_equity * 100.0)) + for key, s, k in by_ts[ts]: + ex = s["exchange"] + sym = s["symbol"] + pos = data[ex]["positions"].get(f"{sym}USD") + price = float(s["closes"][k]) + if k < len(s["probs"]) and not np.isnan(s["probs"][k]): + ml_prob = float(s["probs"][k]) + else: + ml_prob = None + if pos is None: + reason = entry_block_reason( + cfg, + {"confidence": 1.0, "ml_prob_up": 1.0, "rl_position": 1.0}, + exchange=ex, + global_positions=global_positions(), + exchange_positions=len(data[ex]["positions"]), + drawdown_pct=drawdown_pct, + daily_loss_pct=daily_loss_pct, + candle_is_new=True, + ) + if reason: + block_counts[reason] += 1 + continue + reserve = 1000.0 * 0.30 + if float(data[ex]["cash_usd"]) <= reserve: + block_counts["cash_reserve"] += 1 + continue + an = qmb.record_and_analyze( + history[key], ml_prob, + (0.0 if sym in RL_ASSETS else None) if rl_block else None) + if an["signal"] != "BUY_LONG" or float(an["confidence"]) < cfg.min_confidence: + continue + if ml_prob is None or ml_prob < cfg.ml_min_prob_up: + block_counts["ml_not_confirmed"] += 1 + continue + rl = 0.0 if sym in RL_ASSETS else None + if rl is not None and rl <= cfg.rl_veto_position: + block_counts["rl_veto"] += 1 + continue + investment = min(float(data[ex]["cash_usd"]) * 0.20, 200.0) + if investment < 10.0: + block_counts["minimum_order"] += 1 + continue + entry_fee = investment * FEE + exec_px = price * (1.0 + COST) + qty = (investment - entry_fee) / exec_px + data[ex]["cash_usd"] -= investment + data[ex]["positions"][f"{sym}USD"] = { + "side": "LONG", + "entry_price": exec_px, + "entry_mid_price": price, + "qty": qty, + "invested_usd": investment, + "entry_fee_usd": round(entry_fee, 8), + "max_price_seen": price, + "opened_at": ts, + "mark_price": price, + } + data[ex]["entry_count"] += 1 + + if ts % 3_600_000 == 0 and (ts // 3_600_000) % 24 == 0: + equity_curve.append({"ts": ts, "equity": mark_equity()}) + + # final mark-to-market + for p in data.values(): + for pos in p["positions"].values(): + pos["open"] = True + final_equity = mark_equity() + return { + "initial_total": initial_total, + "final_equity": final_equity, + "pnl": final_equity - initial_total, + "trades": trades, + "block_counts": dict(block_counts), + "equity_curve": equity_curve, + "open_positions": {f"{ex}:{sym}": v for ex, p in data.items() + for sym, v in p["positions"].items()}, + } + + +def summarize(r: dict, cfg) -> dict: + tr = r["trades"] + wins = [t for t in tr if t["net"] > 0] + gw = sum(t["net"] for t in wins) + gl = -sum(t["net"] for t in tr if t["net"] < 0) + by_sym: Counter[str] = Counter() + pnl_sym: dict[str, float] = defaultdict(float) + for t in tr: + by_sym[t["symbol"]] += 1 + pnl_sym[t["symbol"]] += t["net"] + by_ex: Counter[str] = Counter() + pnl_ex: dict[str, float] = defaultdict(float) + for t in tr: + by_ex[t["exchange"]] += 1 + pnl_ex[t["exchange"]] += t["net"] + reasons = Counter(t["reason"] for t in tr) + return { + "n": len(tr), + "wr": len(wins) / len(tr) * 100.0 if tr else 0.0, + "pf": gw / gl if gl > 0 else float("inf"), + "pnl": sum(t["net"] for t in tr), + "avg_pct": statistics.mean(t["pct"] for t in tr) if tr else 0.0, + "reasons": dict(reasons), + "by_symbol": {s: (by_sym[s], round(pnl_sym[s], 2)) for s in by_sym}, + "by_exchange": {e: (by_ex[e], round(pnl_ex[e], 2)) for e in by_ex}, + "blocks": r["block_counts"], + "final_equity": r["final_equity"], + "total_pnl": r["pnl"], + } + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--months", type=int, default=3) + ap.add_argument("--output", type=Path, default=Path("data/reports/prod_3m_backtest.md")) + args = ap.parse_args() + + env = load_unit_env() + cfg = build_config(env) + print("config: trail_ratio=%.3f tp=%.3f sl=%.3f ml_min=%.2f conf=%.2f dd=%.2f%% " + "daily=%.2f%% exchanges=%s" % ( + cfg.trail_ratio, cfg.take_profit_pct, cfg.stop_loss_pct, cfg.ml_min_prob_up, + cfg.min_confidence, cfg.max_drawdown_pct, cfg.max_daily_loss_pct, + len(env.get("AIOS_QUANT_ALLOWED_EXCHANGES", "").split(","))), flush=True) + + series, used = load_series(env) + print(f"series: {len(series)} (symbols: {len(set(s['symbol'] for s in series.values()))})", flush=True) + + from catboost import CatBoostClassifier + + model = CatBoostClassifier() + model.load_model(str(qmb.MODELS_DIR / "catboost_price_dir_v2.cbm")) + probs: dict[str, np.ndarray] = {} + for key, s in series.items(): + X = s["feats"][qmb.FEATURES].values.astype(np.float64) + probs[key] = model.predict_proba(X)[:, 1] if len(X) else np.array([]) + s["probs"] = probs[key] + + last_ts = max(int(s["times"][-1]) for s in series.values()) + from dateutil.relativedelta import relativedelta + + start_ms = int((datetime.fromtimestamp(last_ts / 1000, tz=UTC) + - relativedelta(months=args.months)).timestamp() * 1000) + d0 = datetime.fromtimestamp(start_ms / 1000, tz=UTC).strftime("%Y-%m-%d") + d1 = datetime.fromtimestamp(last_ts / 1000, tz=UTC).strftime("%Y-%m-%d") + print(f"window: {d0} .. {d1}", flush=True) + + res = run_backtest(series, cfg, probs, start_ms) + summ = summarize(res, cfg) + + # sensitivity: trailing priced at close (live engine prices at mid) + res_c = run_backtest(series, cfg, probs, start_ms, trail_at_close=True) + summ_c = summarize(res_c, cfg) + + # control: trail 0.988 (A/B legacy) + cfg_ctl = build_config(env, trail_override=0.988) + res_ctl = run_backtest(series, cfg_ctl, probs, start_ms) + summ_ctl = summarize(res_ctl, cfg_ctl) + + # BTC buy&hold context + btc_key = next((k for k, s in series.items() if s["symbol"] == "BTC"), None) + bh = 0.0 + if btc_key: + s = series[btc_key] + i0 = int(np.searchsorted(s["times"], start_ms)) + bh = (float(s["closes"][-1]) / float(s["closes"][i0]) - 1.0) * 100.0 + + def fmt(m): + pf = f"{m['pf']:.2f}" if m["pf"] != float("inf") else "inf" + return (f"n={m['n']} wr={m['wr']:.1f}% pf={pf} pnl={m['pnl']:+.2f}$ " + f"(total {m['total_pnl']:+.2f}$)") + + print("MAIN :", fmt(summ), flush=True) + print("TRAIL@CLOSE:", fmt(summ_c), flush=True) + print("CTL-0.988:", fmt(summ_ctl), flush=True) + print("BTC buy&hold:", f"{bh:+.2f}%", flush=True) + print("blocks:", summ["blocks"], flush=True) + print("by_symbol:", summ["by_symbol"], flush=True) + print("by_exchange:", summ["by_exchange"], flush=True) + + md = ["# Тестовый замер трейдинга: старт 3 месяца назад, текущая стратегия", "", + f"Окно: **{d0} .. {d1}** | Конфиг: **из unit** `deploy/systemd/aios-quant-trading.service` " + f"(trail_ratio={cfg.trail_ratio}, TP {cfg.take_profit_pct:.1%}, SL {cfg.stop_loss_pct:.1%}, " + f"ML≥{cfg.ml_min_prob_up}, conf≥{cfg.min_confidence}, kill DD/daily {cfg.max_drawdown_pct:.2f}%)", + "", + "Методика: воспроизведение движка 1:1 (per-exchange $1000, reserve 30%, max $200/сделку, " + "1 глобальная позиция, kill-свитчи от суммарного equity всех 10 бирж), цены — локальные " + "1h OHLCV по всем разрешённым биржам (приоритет порядка в unit).", + "", + "| Прогон | Сделок | Winrate | PF | PnL закрытых $ | Итог equity $ |", + "|---|---:|---:|---:|---:|---:|", + f"| Текущая (trail={cfg.trail_ratio}) | {summ['n']} | {summ['wr']:.1f}% | " + f"{summ['pf'] if summ['pf']==float('inf') else round(summ['pf'],2)} | {summ['pnl']:+.2f} | " + f"{summ['final_equity']:.2f} |", + f"| Sensitivity: trail-выход по close | {summ_c['n']} | {summ_c['wr']:.1f}% | " + f"{summ_c['pf'] if summ_c['pf']==float('inf') else round(summ_c['pf'],2)} | {summ_c['pnl']:+.2f} | " + f"{summ_c['final_equity']:.2f} |", + f"| Контроль A/B: trail=0.988 | {summ_ctl['n']} | {summ_ctl['wr']:.1f}% | " + f"{summ_ctl['pf'] if summ_ctl['pf']==float('inf') else round(summ_ctl['pf'],2)} | {summ_ctl['pnl']:+.2f} | " + f"{summ_ctl['final_equity']:.2f} |", + "", + f"**BTC buy&hold за окно: {bh:+.2f}%** | Стартовый капитал: $1000 × 10 бирж = $10 000 " + "(виртуально, используется ~1 позиция).", + "", + "## Блокировки входов (текущая стратегия)", "", + "| Причина | Кол-во |", "|---|---:|"] + for k, v in sorted(summ["blocks"].items(), key=lambda x: -x[1]): + md.append(f"| {k} | {v} |") + md += ["", "## Сделки (текущая стратегия)", "", + "| # | Дата входа | Символ | Биржа | PnL $ | % | Причина | Держание ч |", + "|---|---:|---|---:|---:|---:|---:|---:|"] + for i, t in enumerate(sorted(res["trades"], key=lambda x: x["opened_at"]), 1): + dt = datetime.fromtimestamp(t["opened_at"] / 1000, tz=UTC).strftime("%m-%d %H:%M") + md.append(f"| {i} | {dt} | {t['symbol']} | {t['exchange']} | {t['net']:+.2f} | " + f"{t['pct']:+.2f} | {t['reason']} | {t['hold_h']} |") + if not res["trades"]: + md.append("| — | сделок нет | | | | | | |") + md += ["", "## По символам и биржам", "", + "| Символ | Сделок | PnL $ |", "|---|---:|---:|"] + for s, (n, p) in sorted(summ["by_symbol"].items(), key=lambda x: x[1][1]): + md.append(f"| {s} | {n} | {p:+.2f} |") + md += ["", "| Биржа | Сделок | PnL $ |", "|---|---:|---:|"] + for e, (n, p) in sorted(summ["by_exchange"].items(), key=lambda x: x[1][1]): + md.append(f"| {e} | {n} | {p:+.2f} |") + md += ["", "## Причины выхода", "", "| Причина | Кол-во |", "|---|---:|"] + for k, v in sorted(summ["reasons"].items(), key=lambda x: -x[1]): + md.append(f"| {k} | {v} |") + md += ["", + "**Допущения:** SL/TP/trailing по hi/lo бара (harness-конвенция); при trail=1.0 выход " + "по пику — оптимистично, sensitivity по close — пессимистично; live-движок между ними. " + "ML prob — catboost_price_dir_v2.cbm на 13 scale-free фичах; RL_ASSETS заблокированы " + "(rl_veto, как в live: PPO FLAT). Сделки после окончания окна не маркируются."] + args.output.parent.mkdir(parents=True, exist_ok=True) + args.output.write_text("\n".join(md), encoding="utf-8") + json.dump({"window": [d0, d1], "main": summ, "trail_close": summ_c, "control": summ_ctl, + "btc_bh": bh}, open(str(args.output).replace(".md", ".json"), "w"), + ensure_ascii=False, indent=2) + print(f"report -> {args.output}", flush=True) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/quant_strategy_research.py b/scripts/quant_strategy_research.py new file mode 100644 index 000000000..8bba3635e --- /dev/null +++ b/scripts/quant_strategy_research.py @@ -0,0 +1,444 @@ +#!/usr/bin/env python3 +"""Systematic strategy research: find a strategy with positive OOS PnL. + +Tests families of strategies over the same honest OOS window (last 30% of +history) with costs (0.15% fee + 0.05% half-spread + 0.05% slippage per side): + A. long-only baselines (Buy&Hold, cash) + B. trend-following long/short (daily & 4h SMA crosses) + C. RSI mean-reversion long/short (daily & 4h) + D. ML direction long/short (model retrained on the train window only!) + E. inverted-ML (contrarian) + F. regime filter (quant_regime_v3): trend_up -> long, trend_down -> short + G. cross-sectional momentum / mean-reversion (weekly top/bottom-3) + H. BTC-regime gate (trade BTC only when BTC daily trend is up) + +Signals are computed at bar close t and the position is applied to bar t+1 +(no lookahead). Equal-weight portfolio across symbols; position 100% of the +symbol slice. Read-only; report -> data/reports/strategy_research.json/.md. + +Usage: + python scripts/quant_strategy_research.py +""" + +from __future__ import annotations + +import glob +import json +import math +import sys +from pathlib import Path + +import numpy as np +import pandas as pd + +REPO_ROOT = Path(__file__).resolve().parents[1] +QUANT_DIR = REPO_ROOT / "data" / "quant" + +FEE = 0.0015 +HALF_SPREAD = 0.0005 +SLIPPAGE = 0.0005 +COST_SIDE = FEE + HALF_SPREAD + SLIPPAGE # 0.25% per side + +TRAIN_FRAC = 0.70 +GAP_BARS_1H = 48 + +FEATURES = [ + "ret1", "ret3", "ret6", "ret12", "ret24", + "rsi", "bb_pos", "macd_norm", "ema_gap", + "vol_ratio", "vol_z", "bar_range_pct", "hl_pos", +] + + +def _compute_features(df: pd.DataFrame) -> pd.DataFrame: + g = df.copy() + g["ret1"] = g["close"].pct_change() + g["ret3"] = g["close"].pct_change(3) + g["ret6"] = g["close"].pct_change(6) + g["ret12"] = g["close"].pct_change(12) + g["ret24"] = g["close"].pct_change(24) + g["ema12"] = g["close"].ewm(span=12).mean() + g["ema26"] = g["close"].ewm(span=26).mean() + chg = g["close"].pct_change() + up = chg.clip(lower=0).rolling(14).mean() + down = (-chg.clip(upper=0)).rolling(14).mean() + g["rsi"] = 100.0 - 100.0 / (1.0 + up / down.replace(0, 1e-9)) + bb_mid = g["close"].rolling(20).mean() + bb_std = g["close"].rolling(20).std() + g["bb_pos"] = ((g["close"] - bb_mid + 2 * bb_std) / (4 * bb_std).replace(0, np.nan)).clip(0, 1) + macd = g["ema12"] - g["ema26"] + g["macd_norm"] = macd / g["close"] + g["ema_gap"] = (g["ema12"] - g["ema26"]) / g["close"] + vol_mean = g["volume"].rolling(20).mean() + vol_std = g["volume"].rolling(20).std() + g["vol_ratio"] = g["volume"] / vol_mean.replace(0, np.nan) + g["vol_z"] = (g["volume"] - vol_mean) / vol_std.replace(0, np.nan) + g["bar_range_pct"] = (g["high"] - g["low"]) / g["close"] + g["hl_pos"] = (g["close"] - g["low"]) / (g["high"] - g["low"]).replace(0, np.nan) + return g + + +def resample(df: pd.DataFrame, hours: int) -> pd.DataFrame: + """Aggregate 1h bars to `hours` bars (close-to-close OHLCV).""" + if hours == 1: + return df.reset_index(drop=True) + df = df.copy() + df["bucket"] = df["timestamp_ms"] // (hours * 3_600_000) + agg = df.groupby("bucket").agg( + open=("open", "first"), + high=("high", "max"), + low=("low", "min"), + close=("close", "last"), + volume=("volume", "sum"), + timestamp_ms=("timestamp_ms", "last"), + ).reset_index(drop=True) + return agg + + +def load_symbols() -> dict[str, pd.DataFrame]: + out = {} + for path in sorted(glob.glob(str(QUANT_DIR / "*" / "binance" / "*_1h.csv"))): + symbol = Path(path).stem.split("_")[0] + if symbol in ("MATIC", "RNDR"): + continue + df = pd.read_csv(path).sort_values("timestamp_ms") + df = df.dropna(subset=["open", "high", "low", "close", "volume"]) + if len(df) < 600: + continue + out[symbol] = df.reset_index(drop=True) + return out + + +def run_strategy(symbols: dict[str, pd.DataFrame], signal_fn, *, hours: int = 1, + test_start: float) -> dict: + """Equal-weight portfolio; position = {1: long, 0: cash, -1: short} on next bar. + + signal_fn(history_df) -> position for the NEXT bar (no lookahead: the + signal uses only bars up to and including the current one). + """ + total_ret = 0.0 + n_traded = 0 + per_symbol = {} + for symbol, df1h in symbols.items(): + df = resample(df1h, hours) + closes = df["close"].values + times = df["timestamp_ms"].values + mask = times >= test_start + if mask.sum() < 100: + continue + # signals on the whole series + positions = signal_fn(df) + if positions is None or len(positions) != len(df): + continue + pos = 0 + ret_sum = 0.0 + trades = 0 + for i in range(len(df)): + if not mask[i]: + pos = positions[i] # keep updating position pre-test too + continue + if i == 0: + continue + # return of bar i applied to position held from previous close + r = closes[i] / closes[i - 1] - 1.0 if closes[i - 1] > 0 else 0.0 + if pos != 0: + ret_sum += pos * r + new_pos = positions[i - 1] # position decided at bar i-1 close + if new_pos != pos: + # transaction cost on the side being closed + opened + ret_sum -= COST_SIDE * (abs(new_pos) + abs(pos)) + trades += 1 + pos = new_pos + per_symbol[symbol] = round(ret_sum * 100.0, 3) + total_ret += ret_sum + n_traded += 1 + if n_traded == 0: + return {"n": 0, "pnl_pct": 0.0, "per_symbol": {}, "avg_trades": 0} + return { + "n": n_traded, + "pnl_pct": round(total_ret / n_traded * 100.0, 3), + "per_symbol": per_symbol, + "avg_trades": 0, + } + + +# ------------------------------------------------------------- signals ---- +def sig_bh(df): + return np.ones(len(df), dtype=int) + + +def sig_cash(df): + return np.zeros(len(df), dtype=int) + + +def sig_ma(df, fast, slow): + f = df["close"].rolling(fast).mean() + s = df["close"].rolling(slow).mean() + pos = np.zeros(len(df), dtype=int) + up = f > s + for i in range(len(df)): + if math.isnan(f[i]) or math.isnan(s[i]): + pos[i] = 0 + elif up[i]: + pos[i] = 1 + else: + pos[i] = -1 + return pos + + +def sig_rsi(df, lo=30, hi=70): + rsi = df["rsi"].values if "rsi" in df else None + pos = np.zeros(len(df), dtype=int) + for i in range(len(df)): + if rsi is None or math.isnan(rsi[i]): + pos[i] = 0 + elif rsi[i] < lo: + pos[i] = 1 + elif rsi[i] > hi: + pos[i] = -1 + else: + pos[i] = 0 + return pos + + +def sig_ml(df, prob_col, buy_thr, sell_thr, invert=False): + p = df[prob_col].values + pos = np.zeros(len(df), dtype=int) + for i in range(len(df)): + if math.isnan(p[i]): + pos[i] = 0 + elif not invert and p[i] >= buy_thr: + pos[i] = 1 + elif not invert and p[i] <= sell_thr: + pos[i] = -1 + elif invert and p[i] <= sell_thr: + pos[i] = 1 + elif invert and p[i] >= buy_thr: + pos[i] = -1 + else: + pos[i] = 0 + return pos + + +def sig_regime(df): + sys.path.insert(0, str(REPO_ROOT)) + from aios_core.quant_regime_v3 import compute_regime_features + + rows = [ + {"timestamp": float(r.timestamp_ms), "open": float(r.open), "high": float(r.high), + "low": float(r.low), "close": float(r.close), "volume": float(r.volume)} + for r in df.itertuples() + ] + feats = compute_regime_features(rows) + pos = np.zeros(len(df), dtype=int) + for i, f in enumerate(feats): + if f["regime"] == "trend_up": + pos[i] = 1 + elif f["regime"] == "trend_down": + pos[i] = -1 + else: + pos[i] = 0 + return pos + + +def sig_btc_gate(df, btc_daily_up: np.ndarray, btc_times: np.ndarray): + """Long BTC only when BTC daily trend is up; else cash.""" + pos = np.zeros(len(df), dtype=int) + ts = df["timestamp_ms"].values + for i in range(len(df)): + idx = np.searchsorted(btc_times, ts[i], side="right") - 1 + if idx >= 0 and btc_daily_up[idx]: + pos[i] = 1 + return pos + + +def main() -> int: + symbols = load_symbols() + print(f"loaded {len(symbols)} symbols") + + # Global test start = 70% of the longest series (common OOS window). + last_ts = max(int(df["timestamp_ms"].iloc[-1]) for df in symbols.values()) + # Use the median series length to define the train/test split fairly. + lens = sorted(len(df) for df in symbols.values()) + med_len = lens[len(lens) // 2] + # test start: 70% through the median-length series + test_start = 0.0 + for df in symbols.values(): + if len(df) == med_len: + test_start = float(df["timestamp_ms"].iloc[int(med_len * TRAIN_FRAC)]) + break + print("OOS window starts at ts", int(test_start)) + + # ---- ML: retrain on the train window only (honest) ---- + from catboost import CatBoostClassifier + + frames = [] + for symbol, df in symbols.items(): + g = _compute_features(df) + clean = g.dropna(subset=FEATURES + ["target"] if "target" in g else FEATURES) + g["target"] = (g["close"].shift(-1) > g["close"]).astype(int) + clean = g.dropna(subset=FEATURES + ["target"]).reset_index(drop=True) + cut = int(len(clean) * TRAIN_FRAC) + frames.append((symbol, clean.iloc[: cut - GAP_BARS_1H], clean.iloc[cut:])) + train_parts = [tr for _, tr, _ in frames if len(tr) > 100] + df_train = pd.concat(train_parts, ignore_index=True) + model = CatBoostClassifier( + iterations=400, depth=5, learning_rate=0.03, l2_leaf_reg=5.0, + loss_function="Logloss", eval_metric="AUC", random_seed=42, + verbose=0, thread_count=-1, + ) + model.fit(df_train[FEATURES].values.astype(np.float64), df_train["target"].values.astype(int)) + print("ML retrained on train window only") + + # Precompute ML probs per symbol (on features aligned to 1h bars). + ml_probs: dict[str, np.ndarray] = {} + for symbol, df in symbols.items(): + g = _compute_features(df) + X = g[FEATURES].values.astype(np.float64) + probs = model.predict_proba(X)[:, 1] + ml_probs[symbol] = probs + + # Precompute daily BTC trend for the BTC-gate strategy. + btc = resample(symbols["BTC"], 24) + btc_f = btc["close"].rolling(50).mean() + btc_s = btc["close"].rolling(200).mean() + btc_up = (btc_f > btc_s).values.astype(int) + btc_times = btc["timestamp_ms"].values + + # ---- assemble strategies ---- + strategies: list[tuple[str, dict]] = [] + for hours, name, fn in [ + (1, "BH", sig_bh), + (1, "Cash", sig_cash), + (24, "MA_daily_LS", lambda d: sig_ma(d, 50, 200)), + (4, "MA_4h_LS", lambda d: sig_ma(d, 20, 50)), + (24, "RSI_daily_MR", lambda d: sig_rsi(d)), + (4, "RSI_4h_MR", lambda d: sig_rsi(d)), + ]: + res = run_strategy(symbols, fn, hours=hours, test_start=test_start) + strategies.append((f"{name} [{hours}h]", res)) + + def ml_sig(symbol, buy, sell, invert=False): + def fn(df): + return sig_ml(df, "ml_prob", buy, sell, invert) + return fn + + # ML strategies per symbol need per-symbol probs -> custom runner. + for name, buy, sell, invert in [ + ("ML_LS_055_045", 0.55, 0.45, False), + ("ML_LS_050_045", 0.50, 0.45, False), + ("ML_INV_045_055", 0.55, 0.45, True), + ("ML_LS_060_040", 0.60, 0.40, False), + ]: + total_ret = 0.0 + n = 0 + per = {} + for symbol, df in symbols.items(): + g = _compute_features(df) + g["ml_prob"] = ml_probs[symbol] + res = run_strategy({symbol: g}, lambda d, s=symbol: sig_ml(d, "ml_prob", buy, sell, invert), + hours=1, test_start=test_start) + if res["n"]: + per[symbol] = res["pnl_pct"] + total_ret += res["pnl_pct"] + n += 1 + strategies.append((f"{name} [1h]", {"n": n, "pnl_pct": round(total_ret / n, 3) if n else 0.0, + "per_symbol": per, "avg_trades": 0})) + + # Regime strategy (1h) — single portfolio run is fine but slow; do per-symbol. + total_ret = 0.0 + n = 0 + per = {} + for symbol, df in symbols.items(): + res = run_strategy({symbol: df}, sig_regime, hours=1, test_start=test_start) + if res["n"]: + per[symbol] = res["pnl_pct"] + total_ret += res["pnl_pct"] + n += 1 + strategies.append(("Regime_LS [1h]", {"n": n, "pnl_pct": round(total_ret / n, 3) if n else 0.0, + "per_symbol": per, "avg_trades": 0})) + + # BTC-gate (trade only BTC with daily trend filter) + res = run_strategy({"BTC": symbols["BTC"]}, + lambda d: sig_btc_gate(d, btc_up, btc_times), + hours=1, test_start=test_start) + strategies.append(("BTC_daily_gate [1h]", res)) + + # Cross-sectional momentum / mean-reversion (weekly rebalance, top/bottom-3) + # Implemented directly on daily closes across symbols. + def cross_sectional(top: bool, k: int = 3, period_days: int = 7): + daily = {s: resample(df, 24) for s, df in symbols.items()} + # common daily timeline + all_ts = sorted({int(t) for d in daily.values() for t in d["timestamp_ms"].values}) + test_days = [t for t in all_ts if t >= test_start] + # build close matrix + close_map = {s: dict(zip(d["timestamp_ms"].values, d["close"].values)) for s, d in daily.items()} + ret_map = {} + for s, d in daily.items(): + c = d["close"].values + r = np.full(len(c), np.nan) + r[period_days:] = c[period_days:] / c[:-period_days] - 1.0 + ret_map[s] = dict(zip(d["timestamp_ms"].values, r)) + portfolio = 0.0 + invested = False + picks: list[str] = [] + bars = 0 + for t in test_days: + if invested and bars > 0: + # hold return of current picks for this day + day_ret = 0.0 + cnt = 0 + for s in picks: + c_prev = close_map[s].get(t - 24 * 3_600_000) + c_now = close_map[s].get(t) + if c_prev and c_now: + day_ret += c_now / c_prev - 1.0 + cnt += 1 + if cnt: + portfolio += day_ret / cnt + bars += 1 + if bars % period_days != 0: + continue + # rebalance day: rank by ret over period + scored = [] + for s, rm in ret_map.items(): + r = rm.get(t) + if r is not None and not math.isnan(r): + scored.append((s, r)) + scored.sort(key=lambda x: x[1], reverse=top) + new_picks = [s for s, _ in scored[:k]] + # costs on rebalance (turnover ~ 2*k / n) + turnover = 2 * k / max(1, len(scored)) + portfolio -= COST_SIDE * turnover + picks = new_picks + invested = True + return {"n": len(test_days), "pnl_pct": round(portfolio * 100.0, 3), "per_symbol": {}, "avg_trades": 0} + + strategies.append(("XS_momentum_top3 [1d]", cross_sectional(top=True))) + strategies.append(("XS_meanrev_bot3 [1d]", cross_sectional(top=False))) + + # ---- report ---- + rows = sorted(strategies, key=lambda x: -x[1]["pnl_pct"]) + print("\n=== STRATEGY RESEARCH (OOS window) ===") + print(f"{'Strategy':<24} {'PnL %':>9} {'Symbols':>8}") + print("-" * 46) + for name, res in rows: + print(f"{name:<24} {res['pnl_pct']:>+8.2f}% {res['n']:>8}") + + report = { + "test_start_ts": int(test_start), + "note": ( + "OOS = last 30% of history; costs 0.25%/side; signals on close t, " + "position applied to bar t+1; equal-weight symbols; ML retrained on " + "train window only; cross-sectional rebalances weekly." + ), + "strategies": {name: res for name, res in rows}, + } + out = REPO_ROOT / "data" / "reports" / "strategy_research.json" + out.parent.mkdir(parents=True, exist_ok=True) + out.write_text(json.dumps(report, indent=2, ensure_ascii=False)) + print("report ->", out) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/quant_strategy_robust.py b/scripts/quant_strategy_robust.py new file mode 100644 index 000000000..419fa6b73 --- /dev/null +++ b/scripts/quant_strategy_robust.py @@ -0,0 +1,257 @@ +#!/usr/bin/env python3 +"""Robustness check for the two positive OOS strategies + RSI fix. + +1. Fixes RSI after resampling (was 0.00% due to missing column). +2. MA_daily_LS: long-only variant (cash instead of short). +3. Parameter sensitivity: MA (40/160, 60/240), XS k in {2,3,4}, + XS period in {5,7,10}. +4. Splits the OOS window into two halves to check stability. + +Read-only. Report -> data/reports/strategy_research_robust.json +""" + +from __future__ import annotations + +import glob +import json +import math +import sys +from pathlib import Path + +import numpy as np +import pandas as pd + +REPO_ROOT = Path(__file__).resolve().parents[1] +QUANT_DIR = REPO_ROOT / "data" / "quant" +sys.path.insert(0, str(REPO_ROOT)) + +from quant_strategy_research import ( # noqa: E402 + COST_SIDE, TRAIN_FRAC, load_symbols, resample, run_strategy, sig_ma, +) + +FEE = 0.0015 +HALF_SPREAD = 0.0005 +SLIPPAGE = 0.0005 + + +def add_rsi(df: pd.DataFrame, period: int = 14) -> pd.DataFrame: + d = df.copy() + chg = d["close"].pct_change() + up = chg.clip(lower=0).rolling(period).mean() + down = (-chg.clip(upper=0)).rolling(period).mean() + d["rsi"] = 100.0 - 100.0 / (1.0 + up / down.replace(0, 1e-9)) + return d + + +def sig_rsi2(df, lo=30, hi=70): + rsi = df["rsi"].values + pos = np.zeros(len(df), dtype=int) + for i in range(len(df)): + if math.isnan(rsi[i]): + pos[i] = 0 + elif rsi[i] < lo: + pos[i] = 1 + elif rsi[i] > hi: + pos[i] = -1 + return pos + + +def sig_ma_longonly(df, fast, slow): + f = df["close"].rolling(fast).mean() + s = df["close"].rolling(slow).mean() + pos = np.zeros(len(df), dtype=int) + for i in range(len(df)): + if math.isnan(f[i]) or math.isnan(s[i]): + pos[i] = 0 + elif f[i] > s[i]: + pos[i] = 1 + else: + pos[i] = 0 # cash instead of short + return pos + + +def run_on_df(df: pd.DataFrame, signal_fn, test_start: float, test_end: float | None = None) -> float: + """Equity return % for one pre-resampled series (no re-resample).""" + closes = df["close"].values + times = df["timestamp_ms"].values + mask = times >= test_start + if test_end is not None: + mask = mask & (times < test_end) + if mask.sum() < 40: + return 0.0 + positions = signal_fn(df) + if positions is None or len(positions) != len(df): + return 0.0 + pos = 0 + ret_sum = 0.0 + for i in range(len(df)): + if not mask[i]: + pos = positions[i] + continue + if i == 0: + continue + r = closes[i] / closes[i - 1] - 1.0 if closes[i - 1] > 0 else 0.0 + if pos != 0: + ret_sum += pos * r + new_pos = positions[i - 1] + if new_pos != pos: + ret_sum -= COST_SIDE * (abs(new_pos) + abs(pos)) + pos = new_pos + return ret_sum * 100.0 + + +def main() -> int: + symbols = load_symbols() + lens = sorted(len(df) for df in symbols.values()) + med_len = lens[len(lens) // 2] + test_start = 0.0 + for df in symbols.values(): + if len(df) == med_len: + test_start = float(df["timestamp_ms"].iloc[int(med_len * TRAIN_FRAC)]) + break + last_ts = max(int(df["timestamp_ms"].iloc[-1]) for df in symbols.values()) + mid_oos = (test_start + last_ts) / 2.0 + print(f"OOS: {int(test_start)} .. {last_ts} (mid {int(mid_oos)})") + + results: dict[str, dict] = {} + + def add(name, res): + results[name] = res + print(f"{name:<28} {res['pnl_pct']:>+9.2f}% n={res['n']}") + + # --- 1. RSI fixed --- + for hours, name, lo, hi in [(24, "RSI_daily_MR_fixed", 30, 70), (4, "RSI_4h_MR_fixed", 30, 70), + (24, "RSI_daily_2550", 25, 50), (24, "RSI_daily_4020", 40, 20)]: + total_ret = 0.0 + n = 0 + per = {} + for symbol, df in symbols.items(): + g = add_rsi(resample(df, hours)) + r = run_on_df(g, lambda d: sig_rsi2(d, lo, hi), test_start) + if r != 0.0 or True: + per[symbol] = round(r, 3) + total_ret += r + n += 1 + add(f"{name} [{hours}h]", {"n": n, "pnl_pct": round(total_ret / n, 3) if n else 0.0, "per_symbol": per}) + + # --- 2. MA daily long/short + long-only, parameter variants --- + for fast, slow, name in [(50, 200, "MA_daily_LS_50_200"), (40, 160, "MA_daily_LS_40_160"), + (60, 240, "MA_daily_LS_60_240")]: + total_ret = 0.0 + n = 0 + per = {} + for symbol, df in symbols.items(): + g = resample(df, 24) + r = run_on_df(g, lambda d, f=fast, s=slow: sig_ma(d, f, s), test_start) + per[symbol] = round(r, 3) + total_ret += r + n += 1 + add(f"{name} [24h]", {"n": n, "pnl_pct": round(total_ret / n, 3) if n else 0.0, "per_symbol": per}) + + total_ret = 0.0 + n = 0 + for symbol, df in symbols.items(): + g = resample(df, 24) + r = run_on_df(g, lambda d: sig_ma_longonly(d, 50, 200), test_start) + total_ret += r + n += 1 + add("MA_daily_LONGONLY_50_200 [24h]", {"n": n, "pnl_pct": round(total_ret / n, 3) if n else 0.0}) + + # --- 3. XS mean-reversion variants --- + daily = {s: resample(df, 24) for s, df in symbols.items()} + all_ts = sorted({int(t) for d in daily.values() for t in d["timestamp_ms"].values}) + close_map = {s: dict(zip(d["timestamp_ms"].values, d["close"].values)) for s, d in daily.items()} + ret_map = {} + for s, d in daily.items(): + c = d["close"].values + r = np.full(len(c), np.nan) + r[10:] = c[10:] / c[:-10] - 1.0 + ret_map[s] = dict(zip(d["timestamp_ms"].values, r)) + + def xs_meanrev(k: int, period_days: int) -> dict: + portfolio = 0.0 + picks: list[str] = [] + bars = 0 + for t in all_ts: + if t < test_start: + continue + if picks and bars > 0: + day_ret = 0.0 + cnt = 0 + for s in picks: + cp = close_map[s].get(t - 24 * 3_600_000) + cn = close_map[s].get(t) + if cp and cn: + day_ret += cn / cp - 1.0 + cnt += 1 + if cnt: + portfolio += day_ret / cnt + bars += 1 + if bars % period_days != 0: + continue + scored = [(s, ret_map[s].get(t)) for s in ret_map if ret_map[s].get(t) is not None + and not math.isnan(ret_map[s].get(t))] + scored.sort(key=lambda x: x[1]) + new_picks = [s for s, _ in scored[:k]] + turnover = 2 * k / max(1, len(scored)) + portfolio -= COST_SIDE * turnover + picks = new_picks + days = sum(1 for t in all_ts if t >= test_start) + return {"n": days, "pnl_pct": round(portfolio * 100.0, 3)} + + for k, p in [(3, 7), (2, 7), (4, 7), (3, 5), (3, 10)]: + res = xs_meanrev(k, p) + add(f"XS_meanrev_bot{k}_p{p} [1d]", res) + + # --- 4. Stability: two halves of OOS for the main candidates --- + def oos_split(signal_fn, hours, half): + lo_ts, hi_ts = (test_start, mid_oos) if half == 0 else (mid_oos, last_ts) + total_ret = 0.0 + n = 0 + for symbol, df in symbols.items(): + g = resample(df, hours) + closes = g["close"].values + times = g["timestamp_ms"].values + mask = (times >= lo_ts) & (times < hi_ts) + if mask.sum() < 40: + continue + positions = signal_fn(g) + if positions is None or len(positions) != len(g): + continue + pos = 0 + ret_sum = 0.0 + for i in range(len(g)): + if not mask[i]: + pos = positions[i] + continue + if i == 0: + continue + r = closes[i] / closes[i - 1] - 1.0 if closes[i - 1] > 0 else 0.0 + if pos != 0: + ret_sum += pos * r + new_pos = positions[i - 1] + if new_pos != pos: + ret_sum -= COST_SIDE * (abs(new_pos) + abs(pos)) + pos = new_pos + total_ret += ret_sum + n += 1 + return round(total_ret / n * 100.0, 3) if n else 0.0 + + add("MA_daily_LS half1", {"n": 33, "pnl_pct": oos_split(lambda d: sig_ma(d, 50, 200), 24, 0)}) + add("MA_daily_LS half2", {"n": 33, "pnl_pct": oos_split(lambda d: sig_ma(d, 50, 200), 24, 1)}) + + report = { + "test_start_ts": int(test_start), + "last_ts": int(last_ts), + "note": "costs 0.25%/side; no lookahead; equal-weight symbols", + "results": results, + } + out = REPO_ROOT / "data" / "reports" / "strategy_research_robust.json" + out.parent.mkdir(parents=True, exist_ok=True) + out.write_text(json.dumps(report, indent=2, ensure_ascii=False)) + print("report ->", out) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/quant_tf_universe_experiment.py b/scripts/quant_tf_universe_experiment.py new file mode 100755 index 000000000..cb08f9880 --- /dev/null +++ b/scripts/quant_tf_universe_experiment.py @@ -0,0 +1,221 @@ +#!/usr/bin/env python3 +"""Timeframe & universe experiment: does 4h or a top-liquidity universe produce edge? + +Honest walk-forward comparison on the SAME calendar test window (~last 3.5 months): +- series resampled 1h -> 4h (no lookahead: aggregates of closed bars); +- a FRESH CatBoost v2 is trained per timeframe on the first 70% of each symbol's + history (gap 48 bars), predictions on the untouched 30% tail; +- engine run 1:1 (reuses run_backtest from quant_prod_3m_backtest) with the SAME + config as the live unit (trail=1.0, TP2%/SL1%, ML>=0.65, conf>=0.88, kill 0.25%); +- variants: timeframe (1h/4h) x universe (all 33 / top-12 by USD volume) x RL veto + (on/off). Top-12 chosen a-priori by last-30d USD volume (volume*close). + +Usage: + python scripts/quant_tf_universe_experiment.py [--output data/reports/tf_universe_experiment.md] +""" + +from __future__ import annotations + +import argparse +import statistics +import sys +from datetime import UTC, datetime +from pathlib import Path + +import numpy as np +import pandas as pd + +REPO_ROOT = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(REPO_ROOT)) +sys.path.insert(0, str(REPO_ROOT / "scripts")) + +import quant_monthly_backtest as qmb +from quant_ml_eval_train import GAP_BARS +from quant_prod_3m_backtest import ( + build_config, + load_unit_env, + run_backtest, + summarize, +) + +ML_PARAMS = dict(iterations=400, depth=5, learning_rate=0.03, l2_leaf_reg=5.0, + loss_function="Logloss", eval_metric="AUC", random_seed=42, + verbose=0, thread_count=-1) + + +def resample(df: pd.DataFrame, rule: str) -> pd.DataFrame: + """Resample 1h OHLCV to a higher timeframe (rule like '4h').""" + g = df.copy() + g["dt"] = pd.to_datetime(g["timestamp_ms"], unit="ms", utc=True) + g = g.set_index("dt").sort_index() + agg = g.resample(rule).agg({"open": "first", "high": "max", "low": "min", + "close": "last", "volume": "sum"}) + agg = agg.dropna(subset=["open", "high", "low", "close"]).reset_index() + # dtype is datetime64[ms, UTC] -> astype(int64) already yields milliseconds + agg["timestamp_ms"] = agg["dt"].astype("int64") + return agg[["timestamp_ms", "open", "high", "low", "close", "volume"]] + + +def build_series(env: dict, universe: set[str] | None, rule: str) -> dict[str, dict]: + """Series keyed 'ex:sym' for the given timeframe; universe filter optional.""" + from quant_prod_3m_backtest import load_series as load_1h_series + + all_series, _used = load_1h_series(env) + out: dict[str, dict] = {} + for key, s in all_series.items(): + sym = s["symbol"] + if universe is not None and sym not in universe: + continue + if rule == "1h": + df = s["df"] + else: + df = resample(s["df"], rule) + if len(df) < 600: + continue + feats = qmb._compute_features(df) + out[key] = { + "symbol": sym, + "exchange": s["exchange"], + "df": df.reset_index(drop=True), + "feats": feats.reset_index(drop=True), + "closes": df["close"].values, + "highs": df["high"].values, + "lows": df["low"].values, + "times": df["timestamp_ms"].values, + } + return out + + +def train_and_predict(series: dict[str, dict], train_frac: float = 0.70) -> dict[str, np.ndarray]: + from catboost import CatBoostClassifier + + rows: list[np.ndarray] = [] + ys: list[np.ndarray] = [] + cuts: dict[str, int] = {} + for key, s in series.items(): + closes = s["closes"] + target = (np.roll(closes, -1) > closes).astype(int) + target[-1] = 0 + cut = int(len(closes) * train_frac) + cuts[key] = cut + X = s["feats"][qmb.FEATURES].values[: cut - GAP_BARS].astype(np.float64) + y = target[: cut - GAP_BARS] + ok = ~np.isnan(X).any(axis=1) + rows.append(X[ok]) + ys.append(y[ok]) + X_all = np.vstack(rows) + y_all = np.concatenate(ys) + print(f" train rows={len(X_all)}", flush=True) + model = CatBoostClassifier(**ML_PARAMS) + model.fit(X_all, y_all) + probs: dict[str, np.ndarray] = {} + for key, s in series.items(): + X = s["feats"][qmb.FEATURES].values.astype(np.float64) + p = model.predict_proba(X)[:, 1] + arr = np.full(len(X), np.nan) + arr[cuts[key]:] = p[cuts[key]:] + probs[key] = arr + return probs + + +def top_universe(series: dict[str, dict], n: int = 12, days: int = 30) -> set[str]: + """Top-n symbols by average USD volume (volume*close) over the last `days` days.""" + usd_vol: dict[str, float] = {} + for key, s in series.items(): + df = s["df"].tail(days * 24) + v = float((df["volume"] * df["close"]).mean()) + usd_vol[s["symbol"]] = max(usd_vol.get(s["symbol"], 0.0), v) + top = [sym for sym, _ in sorted(usd_vol.items(), key=lambda x: -x[1])[:n]] + print(f" top-{n} by USD volume: {top}", flush=True) + return set(top) + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--output", type=Path, default=Path("data/reports/tf_universe_experiment.md")) + args = ap.parse_args() + + env = load_unit_env() + cfg = build_config(env) + print("cfg: trail=%.3f TP=%.2f%% SL=%.1f%% ML>=%.2f conf>=%.2f" % ( + cfg.trail_ratio, cfg.take_profit_pct * 100, cfg.stop_loss_pct * 100, + cfg.ml_min_prob_up, cfg.min_confidence), flush=True) + + # 1h full universe once; 4h derived + s1h = build_series(env, None, "1h") + top12 = top_universe(s1h, 12) + s4h = build_series(env, None, "4h") + print(f"series: 1h={len(s1h)} 4h={len(s4h)}", flush=True) + + # test window info (same calendar window across timeframes) + for rule, s in (("1h", s1h), ("4h", s4h)): + t0 = min(int(si["times"][int(len(si["times"]) * 0.70)]) for si in s.values()) + t1 = max(int(si["times"][-1]) for si in s.values()) + d0 = datetime.fromtimestamp(t0 / 1000, tz=UTC).strftime("%Y-%m-%d") + d1 = datetime.fromtimestamp(t1 / 1000, tz=UTC).strftime("%Y-%m-%d") + print(f" {rule}: OOS window {d0} .. {d1}", flush=True) + + variants = [ + ("1h, все 33, RL вкл (как прод)", "1h", None, True, None), + ("4h, все 33, RL вкл", "4h", None, True, None), + ("1h, все 33, RL выкл", "1h", None, False, None), + ("4h, все 33, RL выкл", "4h", None, False, None), + ("1h, топ-12 ликвидности, RL выкл", "1h", top12, False, None), + ("4h, топ-12 ликвидности, RL выкл", "4h", top12, False, None), + ("4h, все 33, RL выкл, TP3%/SL1.5%", "4h", None, False, + {"take_profit_pct": 0.03, "stop_loss_pct": -0.015}), + ] + + results = {} + for name, rule, universe, rl_on, override in variants: + print(f"=== {name} ===", flush=True) + s = s1h if rule == "1h" else s4h + sub = {k: v for k, v in s.items() if universe is None or v["symbol"] in universe} + probs = train_and_predict(sub) + for key in sub: + sub[key]["probs"] = probs[key] + vcfg = cfg + if override: + from dataclasses import replace + vcfg = replace(cfg, **override) + res = run_backtest(sub, vcfg, probs, int(min(si["times"][int(len(si["times"]) * 0.70)] + for si in sub.values())), + rl_block=rl_on) + m = summarize(res, vcfg) + results[name] = m + pf = f"{m['pf']:.2f}" if m["pf"] != float("inf") else "inf" + print(f" -> n={m['n']} wr={m['wr']:.1f}% pf={pf} pnl={m['pnl']:+.2f}$ " + f"total={m['total_pnl']:+.2f}$", flush=True) + + # BTC bh over the same OOS window + btc_key = next(k for k, s in s1h.items() if s["symbol"] == "BTC") + sbtc = s1h[btc_key] + i0 = int(len(sbtc["closes"]) * 0.70) + bh = (float(sbtc["closes"][-1]) / float(sbtc["closes"][i0]) - 1.0) * 100.0 + print(f"BTC buy&hold (OOS): {bh:+.2f}%", flush=True) + + md = ["# Эксперимент: таймфрейм (1h/4h) × универсум × RL-вето (честный OOS)", "", + "Методика: свежая CatBoost v2 per timeframe (train 70%, gap 48 баров), тест = последние " + "~3.5 мес (календарно одинаково для 1h/4h). Движок 1:1 (текущий unit config: " + f"trail={cfg.trail_ratio}, TP {cfg.take_profit_pct:.0%}, SL {cfg.stop_loss_pct:.0%}, " + f"ML≥{cfg.ml_min_prob_up}, conf≥{cfg.min_confidence}, kill 0.25%). " + "Топ-12 — по USD-объёму (volume×close) за 30 дней, выбор до прогона.", + "", + f"**BTC buy&hold за OOS-окно: {bh:+.2f}%**", + "", + "| Вариант | Сделок | Winrate | PF | PnL закрытых $ | Итог $ |", + "|---|---:|---:|---:|---:|---:|"] + for name, m in results.items(): + pf = f"{m['pf']:.2f}" if m["pf"] != float("inf") else "inf" + md.append(f"| {name} | {m['n']} | {m['wr']:.1f}% | {pf} | {m['pnl']:+.2f} | " + f"{m['total_pnl']:+.2f} |") + md += ["", "**Вывод:** если ни один вариант не дал PF>1.2 с n≥20 — edge не обнаружен " + "и на 4h, и на топ-универсуме; решение о дальнейшем направлении за владельцем."] + args.output.parent.mkdir(parents=True, exist_ok=True) + args.output.write_text("\n".join(md), encoding="utf-8") + print(f"report -> {args.output}", flush=True) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/quant_train_ppo.py b/scripts/quant_train_ppo.py new file mode 100644 index 000000000..86fa877ee --- /dev/null +++ b/scripts/quant_train_ppo.py @@ -0,0 +1,358 @@ +#!/usr/bin/env python3 +"""Train LSTM-PPO v9 exactly following data/kg_v8/aios-rl-v8.ipynb. + +Differences from v8: asset universe uses POL instead of delisted MATIC +(same sorted 32-asset order everywhere), data comes from local binance 1h +CSVs (last 1000 bars per asset) instead of live fetch, and the run is on CPU. + +Artifacts: + - data/quant/models/ppo_v9.pt ({"policy": state_dict, "assets": NAMES}) + - data/reports/ppo_v9_eval.json (validation vs current ppo_v8.pt) +""" + +from __future__ import annotations + +import glob +import json +import random +import time +from pathlib import Path + +import numpy as np +import pandas as pd +import torch +import torch.nn as nn +import torch.optim as optim + +REPO_ROOT = Path(__file__).resolve().parents[1] +QUANT_DIR = REPO_ROOT / "data" / "quant" +MODELS_DIR = QUANT_DIR / "models" + +torch.manual_seed(42) +np.random.seed(42) +random.seed(42) +device = torch.device("cuda" if torch.cuda.is_available() else "cpu") +print("device:", device) + + +# ------------------------------------------------------------------ env ---- +def build_assets(names: list[str], bars: int = 1000) -> dict: + """Replicate v8 feature engineering on local binance CSVs.""" + assets = {} + for name in names: + path = QUANT_DIR / name / "binance" / f"{name}_1h.csv" + if not path.exists(): + print(" missing", name) + continue + df = pd.read_csv(path) + if len(df) < 200: + print(" short", name, len(df)) + continue + df = df.tail(bars).reset_index(drop=True) + df["ret"] = df["close"].pct_change().fillna(0) + df["mom5"] = df["close"].pct_change(5).fillna(0) + df["mom12"] = df["close"].pct_change(12).fillna(0) + df["vol_chg"] = df["volume"].pct_change().fillna(0) + df["vol_ma"] = df["volume"].rolling(10).mean().fillna(df["volume"].mean()) + df["vol_ratio"] = df["volume"] / (df["vol_ma"] + 1e-9) + df["ret_vol"] = df["ret"].rolling(10).std().fillna(0.01) + df["vol_norm"] = df["ret_vol"] / (df["ret_vol"].mean() + 1e-9) + assets[name] = df + return assets + + +class MultiAssetEnv: + """1:1 copy of the v8 training environment.""" + + def __init__(self, assets, window=10, max_steps=300, commission=0.0005, risk_penalty=0.01): + self.assets = assets + self.names = sorted(assets.keys()) + self.window = window + self.n_assets = len(self.names) + self.n_feats = window + 4 + self.dim = self.n_feats + self.n_assets + self.max_steps = max_steps + self.commission = commission + self.risk_penalty = risk_penalty + self.step_count = 0 + self.pos = 0.0 + self.asset_idx = 0 + self.df = None + self.i = 0 + + def reset(self): + self.asset_idx = np.random.randint(0, self.n_assets) + self.df = self.assets[self.names[self.asset_idx]] + self.i = self.window + self.step_count = 0 + self.pos = 0.0 + return self._obs() + + def _obs(self): + if self.i >= len(self.df): + self.i = len(self.df) - 1 + rets = self.df["ret"].values[self.i - self.window:self.i] + if len(rets) < self.window: + rets = np.pad(rets, (self.window - len(rets), 0)) + mom5 = self.df["mom5"].values[self.i] + mom12 = self.df["mom12"].values[self.i] + vr = self.df["vol_ratio"].values[self.i] + vn = self.df["vol_norm"].values[self.i] + feats = np.concatenate([rets, [mom5, mom12, vr, vn]]).astype(np.float32) + onehot = np.zeros(self.n_assets, dtype=np.float32) + onehot[self.asset_idx] = 1.0 + return np.concatenate([feats, onehot]).astype(np.float32) + + def step(self, action): + new_pos = action / 2.0 + cost = self.commission * abs(new_pos - self.pos) + self.pos = new_pos + r = self.df["ret"].values[self.i] + reward = new_pos * r * 100.0 - cost * 100.0 - self.risk_penalty * new_pos * self.df["vol_norm"].values[self.i] + self.i += 1 + self.step_count += 1 + done = (self.step_count >= self.max_steps) or (self.i >= len(self.df) - 1) + if done: + self.asset_idx = np.random.randint(0, self.n_assets) + self.df = self.assets[self.names[self.asset_idx]] + self.i = self.window + self.step_count = 0 + self.pos = 0.0 + return self._obs(), float(reward), done, {} + + +# ---------------------------------------------------------------- model ---- +class LSTMPolicy(nn.Module): + """1:1 copy of the v8 LSTM policy.""" + + def __init__(self, obs_dim, act_dim, hidden=128, seq=10): + super().__init__() + self.seq = seq + self.static_dim = obs_dim - seq + self.lstm = nn.LSTM(1, hidden // 2, batch_first=True) + self.fc_pre = nn.Linear(self.static_dim + hidden // 2, hidden) + self.fc1 = nn.Linear(hidden, hidden) + self.mean = nn.Linear(hidden, act_dim) + self.logstd = nn.Parameter(torch.zeros(act_dim)) + self.value = nn.Linear(hidden, 1) + + def forward(self, x): + seq_part = x[:, :self.seq].unsqueeze(-1) + lstm_out, _ = self.lstm(seq_part) + lstm_last = lstm_out[:, -1, :] + static = x[:, self.seq:] + h = torch.cat([lstm_last, static], dim=-1) + h = torch.relu(self.fc_pre(h)) + h = torch.relu(self.fc1(h)) + return self.mean(h), self.logstd.exp(), self.value(h) + + +def compute_gae(rewards, values, dones, gamma=0.99, lam=0.97): + T = len(rewards) + gaes = np.zeros(T) + last_adv = 0.0 + last_val = 0.0 + for t in reversed(range(T)): + if dones[t]: + last_adv = 0.0 + last_val = 0.0 + delta = rewards[t] + gamma * last_val - values[t] + gaes[t] = delta + gamma * lam * last_adv + last_adv = gaes[t] + last_val = values[t] + return gaes + + +def rollout(policy, env, steps=800): + obs_list, act_list, rew_list, val_list, don_list, logp_list = [], [], [], [], [], [] + obs = env.reset() + ep_rewards = [] + ep_total = 0 + for _ in range(steps): + o_t = torch.tensor(obs, device=device).float().unsqueeze(0) + mean, std, val = policy(o_t) + dist = torch.distributions.Normal(mean, std) + act = dist.sample().clamp(-1, 1) + logp = dist.log_prob(act).sum(-1).item() + obs_list.append(obs) + act_list.append(act.detach().cpu().numpy()[0]) + val_list.append(val.item()) + logp_list.append(logp) + a0 = int((act[0][0].item() + 1) / 2 * 2) + obs2, rew, done, _ = env.step(a0) + rew_list.append(rew) + don_list.append(done) + ep_total += rew + if done: + ep_rewards.append(ep_total) + ep_total = 0 + obs = obs2 + return (obs_list, act_list, rew_list, val_list, don_list, logp_list), ep_rewards + + +def update(policy, opt, obs, act, adv, ret, old_logp, clip=0.2): + obs = torch.tensor(np.array(obs), device=device).float() + act = torch.tensor(np.array(act), device=device).float() + adv = torch.tensor(np.array(adv), device=device).float() + ret = torch.tensor(np.array(ret), device=device).float() + old_logp = torch.tensor(np.array(old_logp), device=device).float() + for _ in range(5): + mean, std, val = policy(obs) + dist = torch.distributions.Normal(mean, std) + logp = dist.log_prob(act).sum(-1) + ratio = (logp - old_logp).exp() + adv_n = (adv - adv.mean()) / (adv.std() + 1e-8) + surr1 = ratio * adv_n + surr2 = torch.clamp(ratio, 1 - clip, 1 + clip) * adv_n + loss = -torch.min(surr1, surr2).mean() + 0.5 * ((val.squeeze() - ret) ** 2).mean() - 0.01 * dist.entropy().mean() + opt.zero_grad() + loss.backward() + opt.step() + + +# ------------------------------------------------------------ validation ---- +def val_on_asset(policy, assets, name, names): + df = assets[name].iloc[len(assets[name]) // 2:].reset_index(drop=True) + ai = names.index(name) + window = 10 + onehot = np.zeros(len(names), dtype=np.float32) + onehot[ai] = 1.0 + total = 0.0 + bh = 0.0 + i = window + pos = 0.0 + n_long = n_flat = n_half = n_steps = 0 + while i < len(df) - 1: + rets = df["ret"].values[i - window:i] + if len(rets) < window: + rets = np.pad(rets, (window - len(rets), 0)) + feats = np.concatenate([rets, [df["mom5"].values[i], df["mom12"].values[i], + df["vol_ratio"].values[i], df["vol_norm"].values[i]]]).astype(np.float32) + obs = np.concatenate([feats, onehot]).astype(np.float32) + o_t = torch.tensor(obs, device=device).float().unsqueeze(0) + with torch.no_grad(): + mean, _, _ = policy(o_t) + act = mean[0][0].item() + # Clamp exactly like the inference bridge (rl_signal_bridge.py): + # without it, act < -1.5 silently becomes a SHORT position (-0.5) + # that is impossible in the deployed discrete {0, 0.5, 1} policy. + act = max(-1.0, min(1.0, act)) + new_pos = int((act + 1) / 2 * 2) / 2.0 + if new_pos > 0.5: + n_long += 1 + elif new_pos < 0.1: + n_flat += 1 + else: + n_half += 1 + r = df["ret"].values[i] + total += new_pos * r * 100.0 - 0.05 * abs(new_pos - pos) + bh += r * 100.0 + pos = new_pos + i += 1 + n_steps += 1 + return total, bh, n_long, n_flat, n_half, n_steps + + +def validate(policy, assets, names): + total_all = bh_all = 0.0 + nl = nf = nh = ns = 0 + per_asset = {} + for name in names: + v, bh, n1, n2, n3, n4 = val_on_asset(policy, assets, name, names) + total_all += v + bh_all += bh + nl += n1 + nf += n2 + nh += n3 + ns += n4 + per_asset[name] = {"rl": round(v, 2), "bh": round(bh, 2)} + return { + "sum_rl": round(float(total_all), 2), + "sum_bh": round(float(bh_all), 2), + "better_than_bh": bool(total_all > bh_all), + "positions": {"long": int(nl), "flat": int(nf), "half": int(nh), "steps": int(ns)}, + "per_asset": {k: {"rl": round(float(v["rl"]), 2), "bh": round(float(v["bh"]), 2)} + for k, v in per_asset.items()}, + } + + +# ------------------------------------------------------------------ main ---- +ASSETS_32 = sorted([ + "BTC", "ETH", "BNB", "SOL", "XRP", "ADA", "DOGE", "AVAX", "LINK", "DOT", + "POL", "LTC", "TRX", "ATOM", "UNI", "ETC", "FIL", "APT", "NEAR", "ARB", + "OP", "SUI", "TIA", "SEI", "TON", "INJ", "KAS", "FET", "WIF", "BONK", + "PEPE", "SHIB", +]) + + +def main() -> int: + t0 = time.time() + assets = build_assets(ASSETS_32) + missing = [n for n in ASSETS_32 if n not in assets] + if missing: + print("missing assets:", missing) + print("assets loaded:", len(assets), "names:", sorted(assets.keys())) + + env = MultiAssetEnv(assets) + print("env dim:", env.dim, "n_assets:", env.n_assets) + + policy = LSTMPolicy(env.dim, 3).to(device) + opt = optim.Adam(policy.parameters(), lr=2e-4) + + n_episodes = 300 + steps = 800 + for ep in range(n_episodes): + data, ep_rew = rollout(policy, env, steps) + obs, act, rew, val, don, logp = data + gae = compute_gae(rew, [v for v in val], don) + returns = [g + v for g, v in zip(gae, val)] + update(policy, opt, obs, act, gae, returns, logp) + avg = float(np.mean(ep_rew)) if ep_rew else 0.0 + if (ep + 1) % 25 == 0: + print(f"episode {ep + 1}/{n_episodes} avg={avg:.3f} elapsed={time.time() - t0:.0f}s") + + print("validation of new ppo_v9:") + res_v9 = validate(policy, assets, sorted(assets.keys())) + print(json.dumps(res_v9, ensure_ascii=False, indent=2)) + + # Compare with the current deployed model. + current_path = MODELS_DIR / "ppo_v8.pt" + res_v8 = None + if current_path.exists(): + ckpt = torch.load(current_path, map_location="cpu") + sd = ckpt.get("policy", ckpt) + names_v8 = sorted(ckpt.get("assets") or ASSETS_32) + # Rebuild assets for the same names the v8 model saw. + assets_v8 = build_assets(names_v8) + policy_v8 = LSTMPolicy(env.dim, 3).to(device) + policy_v8.load_state_dict(sd) + policy_v8.eval() + print("validation of current ppo_v8:") + res_v8 = validate(policy_v8, assets_v8, sorted(assets_v8.keys())) + print(json.dumps(res_v8, ensure_ascii=False, indent=2)) + + report = { + "n_episodes": n_episodes, + "steps": steps, + "assets": sorted(assets.keys()), + "ppo_v9": res_v9, + "ppo_v8": res_v8, + } + out = REPO_ROOT / "data" / "reports" / "ppo_v9_eval.json" + out.parent.mkdir(parents=True, exist_ok=True) + out.write_text(json.dumps(report, indent=2, ensure_ascii=False)) + + better = res_v8 is None or res_v9["sum_rl"] >= res_v8["sum_rl"] + if better: + MODELS_DIR.mkdir(parents=True, exist_ok=True) + torch.save({"policy": policy.state_dict(), "assets": sorted(assets.keys())}, + MODELS_DIR / "ppo_v9.pt") + print("✅ saved ppo_v9.pt (sum_rl", res_v9["sum_rl"], ")") + else: + print("ℹ️ ppo_v9 not saved: sum_rl", res_v9["sum_rl"], "<", res_v8["sum_rl"]) + print("elapsed:", round(time.time() - t0), "s") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/quant_train_ppo_v10.py b/scripts/quant_train_ppo_v10.py new file mode 100644 index 000000000..5815e6e7a --- /dev/null +++ b/scripts/quant_train_ppo_v10.py @@ -0,0 +1,366 @@ +#!/usr/bin/env python3 +"""Train LSTM-PPO v10 with an HONEST walk-forward split. + +Fixes the in-sample validation flaw of v8/v9 (validation used the same +second half of the data the training rollout touched). v10: + - training environment only sees the first 70% of each asset's history; + - validation runs on the last 30% (unseen bars), with a gap; + - same hyperparameters as v9 (300 episodes x 800 steps, GAE, clip 0.2). + +The current deployed ppo_v9.pt is also validated on the same unseen OOS +window for a fair comparison. ppo_v10.pt is saved only if its OOS sum_rl is +positive and >= v9 OOS sum_rl. + +Usage: + python scripts/quant_train_ppo_v10.py +""" + +from __future__ import annotations + +import json +import time +from pathlib import Path + +import numpy as np +import pandas as pd +import torch +import torch.nn as nn +import torch.optim as optim + +REPO_ROOT = Path(__file__).resolve().parents[1] +QUANT_DIR = REPO_ROOT / "data" / "quant" +MODELS_DIR = QUANT_DIR / "models" + +torch.manual_seed(42) +np.random.seed(42) +device = torch.device("cuda" if torch.cuda.is_available() else "cpu") +print("device:", device) + +TRAIN_FRAC = 0.70 +GAP_BARS = 48 + + +def build_assets(names: list[str], max_bars: int = 2000) -> dict: + assets = {} + for name in names: + path = QUANT_DIR / name / "binance" / f"{name}_1h.csv" + if not path.exists(): + continue + df = pd.read_csv(path) + if len(df) < 400: + continue + df = df.tail(max_bars).reset_index(drop=True) + df["ret"] = df["close"].pct_change().fillna(0) + df["mom5"] = df["close"].pct_change(5).fillna(0) + df["mom12"] = df["close"].pct_change(12).fillna(0) + df["vol_ma"] = df["volume"].rolling(10).mean().fillna(df["volume"].mean()) + df["vol_ratio"] = df["volume"] / (df["vol_ma"] + 1e-9) + df["ret_vol"] = df["ret"].rolling(10).std().fillna(0.01) + df["vol_norm"] = df["ret_vol"] / (df["ret_vol"].mean() + 1e-9) + assets[name] = df + return assets + + +class MultiAssetEnv: + """Same env as v9, but only allowed to sample the training window.""" + + def __init__(self, assets, window=10, max_steps=300, commission=0.0005, risk_penalty=0.01, + train_frac=1.0, gap=0): + self.assets = assets + self.names = sorted(assets.keys()) + self.window = window + self.n_assets = len(self.names) + self.n_feats = window + 4 + self.dim = self.n_feats + self.n_assets + self.max_steps = max_steps + self.commission = commission + self.risk_penalty = risk_penalty + self.step_count = 0 + self.pos = 0.0 + self.asset_idx = 0 + self.df = None + self.i = 0 + self._bounds = {} + for name, df in assets.items(): + hi = int(len(df) * train_frac) - gap + lo = window + self._bounds[name] = (lo, hi) if hi > lo + 100 else (lo, len(df) - 1) + + def reset(self): + self.asset_idx = np.random.randint(0, self.n_assets) + name = self.names[self.asset_idx] + self.df = self.assets[name] + lo, hi = self._bounds[name] + self.i = np.random.randint(lo, hi) + self.step_count = 0 + self.pos = 0.0 + return self._obs() + + def _obs(self): + if self.i >= len(self.df): + self.i = len(self.df) - 1 + rets = self.df["ret"].values[self.i - self.window:self.i] + if len(rets) < self.window: + rets = np.pad(rets, (self.window - len(rets), 0)) + mom5 = self.df["mom5"].values[self.i] + mom12 = self.df["mom12"].values[self.i] + vr = self.df["vol_ratio"].values[self.i] + vn = self.df["vol_norm"].values[self.i] + feats = np.concatenate([rets, [mom5, mom12, vr, vn]]).astype(np.float32) + onehot = np.zeros(self.n_assets, dtype=np.float32) + onehot[self.asset_idx] = 1.0 + return np.concatenate([feats, onehot]).astype(np.float32) + + def step(self, action): + new_pos = action / 2.0 + cost = self.commission * abs(new_pos - self.pos) + self.pos = new_pos + r = self.df["ret"].values[self.i] + reward = new_pos * r * 100.0 - cost * 100.0 - self.risk_penalty * new_pos * self.df["vol_norm"].values[self.i] + self.i += 1 + self.step_count += 1 + done = (self.step_count >= self.max_steps) or (self.i >= len(self.df) - 1) + if done: + self.asset_idx = np.random.randint(0, self.n_assets) + name = self.names[self.asset_idx] + self.df = self.assets[name] + lo, hi = self._bounds[name] + self.i = np.random.randint(lo, hi) + self.step_count = 0 + self.pos = 0.0 + return self._obs(), float(reward), done, {} + + +class LSTMPolicy(nn.Module): + def __init__(self, obs_dim, act_dim, hidden=128, seq=10): + super().__init__() + self.seq = seq + self.static_dim = obs_dim - seq + self.lstm = nn.LSTM(1, hidden // 2, batch_first=True) + self.fc_pre = nn.Linear(self.static_dim + hidden // 2, hidden) + self.fc1 = nn.Linear(hidden, hidden) + self.mean = nn.Linear(hidden, act_dim) + self.logstd = nn.Parameter(torch.zeros(act_dim)) + self.value = nn.Linear(hidden, 1) + + def forward(self, x): + seq_part = x[:, :self.seq].unsqueeze(-1) + lstm_out, _ = self.lstm(seq_part) + lstm_last = lstm_out[:, -1, :] + static = x[:, self.seq:] + h = torch.cat([lstm_last, static], dim=-1) + h = torch.relu(self.fc_pre(h)) + h = torch.relu(self.fc1(h)) + return self.mean(h), self.logstd.exp(), self.value(h) + + +def compute_gae(rewards, values, dones, gamma=0.99, lam=0.97): + T = len(rewards) + gaes = np.zeros(T) + last_adv = 0.0 + last_val = 0.0 + for t in reversed(range(T)): + if dones[t]: + last_adv = 0.0 + last_val = 0.0 + delta = rewards[t] + gamma * last_val - values[t] + gaes[t] = delta + gamma * lam * last_adv + last_adv = gaes[t] + last_val = values[t] + return gaes + + +def rollout(policy, env, steps=800): + obs_list, act_list, rew_list, val_list, don_list, logp_list = [], [], [], [], [], [] + obs = env.reset() + ep_rewards = [] + ep_total = 0 + for _ in range(steps): + o_t = torch.tensor(obs, device=device).float().unsqueeze(0) + mean, std, val = policy(o_t) + dist = torch.distributions.Normal(mean, std) + act = dist.sample().clamp(-1, 1) + logp = dist.log_prob(act).sum(-1).item() + obs_list.append(obs) + act_list.append(act.detach().cpu().numpy()[0]) + val_list.append(val.item()) + logp_list.append(logp) + a0 = int((act[0][0].item() + 1) / 2 * 2) + obs2, rew, done, _ = env.step(a0) + rew_list.append(rew) + don_list.append(done) + ep_total += rew + if done: + ep_rewards.append(ep_total) + ep_total = 0 + obs = obs2 + return (obs_list, act_list, rew_list, val_list, don_list, logp_list), ep_rewards + + +def update(policy, opt, obs, act, adv, ret, old_logp, clip=0.2): + obs = torch.tensor(np.array(obs), device=device).float() + act = torch.tensor(np.array(act), device=device).float() + adv = torch.tensor(np.array(adv), device=device).float() + ret = torch.tensor(np.array(ret), device=device).float() + old_logp = torch.tensor(np.array(old_logp), device=device).float() + for _ in range(5): + mean, std, val = policy(obs) + dist = torch.distributions.Normal(mean, std) + logp = dist.log_prob(act).sum(-1) + ratio = (logp - old_logp).exp() + adv_n = (adv - adv.mean()) / (adv.std() + 1e-8) + surr1 = ratio * adv_n + surr2 = torch.clamp(ratio, 1 - clip, 1 + clip) * adv_n + loss = (-torch.min(surr1, surr2).mean() + + 0.5 * ((val.squeeze() - ret) ** 2).mean() + - 0.01 * dist.entropy().mean()) + opt.zero_grad() + loss.backward() + opt.step() + + +def val_on_asset(policy, assets, name, names, window=10, oos_start=0.70, gap=48): + """Validate on the UNSEEN OOS window [oos_start .. end] of the asset.""" + df = assets[name] + start = int(len(df) * oos_start) + gap + df = df.iloc[start:].reset_index(drop=True) + if len(df) < window + 50: + return None + ai = names.index(name) + onehot = np.zeros(len(names), dtype=np.float32) + onehot[ai] = 1.0 + total = 0.0 + bh = 0.0 + i = window + pos = 0.0 + n_long = n_flat = n_half = n_steps = 0 + while i < len(df) - 1: + rets = df["ret"].values[i - window:i] + if len(rets) < window: + rets = np.pad(rets, (window - len(rets), 0)) + feats = np.concatenate([rets, [df["mom5"].values[i], df["mom12"].values[i], + df["vol_ratio"].values[i], df["vol_norm"].values[i]]]).astype(np.float32) + obs = np.concatenate([feats, onehot]).astype(np.float32) + o_t = torch.tensor(obs, device=device).float().unsqueeze(0) + with torch.no_grad(): + mean, _, _ = policy(o_t) + act = mean[0][0].item() + # Clamp exactly like the inference bridge (rl_signal_bridge.py): + # without it, act < -1.5 silently becomes a SHORT position (-0.5) + # that is impossible in the deployed discrete {0, 0.5, 1} policy. + act = max(-1.0, min(1.0, act)) + new_pos = int((act + 1) / 2 * 2) / 2.0 + if new_pos > 0.5: + n_long += 1 + elif new_pos < 0.1: + n_flat += 1 + else: + n_half += 1 + r = df["ret"].values[i] + total += new_pos * r * 100.0 - 0.05 * abs(new_pos - pos) + bh += r * 100.0 + pos = new_pos + i += 1 + n_steps += 1 + return total, bh, n_long, n_flat, n_half, n_steps + + +def validate_oos(policy, assets, names, oos_start=0.70, gap=48): + total_all = bh_all = 0.0 + nl = nf = nh = ns = 0 + per = {} + for name in names: + res = val_on_asset(policy, assets, name, names, oos_start=oos_start, gap=gap) + if res is None: + continue + v, bh, n1, n2, n3, n4 = res + total_all += v + bh_all += bh + nl += n1 + nf += n2 + nh += n3 + ns += n4 + per[name] = {"rl": round(float(v), 2), "bh": round(float(bh), 2)} + return { + "sum_rl": round(float(total_all), 2), + "sum_bh": round(float(bh_all), 2), + "better_than_bh": bool(total_all > bh_all), + "positions": {"long": int(nl), "flat": int(nf), "half": int(nh), "steps": int(ns)}, + "per_asset": per, + } + + +ASSETS_32 = sorted([ + "BTC", "ETH", "BNB", "SOL", "XRP", "ADA", "DOGE", "AVAX", "LINK", "DOT", + "POL", "LTC", "TRX", "ATOM", "UNI", "ETC", "FIL", "APT", "NEAR", "ARB", + "OP", "SUI", "TIA", "SEI", "TON", "INJ", "KAS", "FET", "WIF", "BONK", + "PEPE", "SHIB", +]) + + +def main() -> int: + t0 = time.time() + assets = build_assets(ASSETS_32, max_bars=2000) + missing = [n for n in ASSETS_32 if n not in assets] + print("assets:", len(assets), "missing:", missing or "none") + names = sorted(assets.keys()) + + # Training env sees only [window .. 70% - gap] of each asset. + env = MultiAssetEnv(assets, train_frac=TRAIN_FRAC, gap=GAP_BARS) + print("env dim:", env.dim) + + policy = LSTMPolicy(env.dim, 3).to(device) + opt = optim.Adam(policy.parameters(), lr=2e-4) + n_episodes = 300 + steps = 800 + for ep in range(n_episodes): + data, ep_rew = rollout(policy, env, steps) + obs, act, rew, val, don, logp = data + gae = compute_gae(rew, [v for v in val], don) + returns = [g + v for g, v in zip(gae, val)] + update(policy, opt, obs, act, gae, returns, logp) + if (ep + 1) % 50 == 0: + avg = float(np.mean(ep_rew)) if ep_rew else 0.0 + print(f"ep {ep + 1}/{n_episodes} avg={avg:.3f} elapsed={time.time() - t0:.0f}s", flush=True) + + # Honest OOS validation for v10 and for the deployed v9. + res_v10 = validate_oos(policy, assets, names) + print("v10 OOS:", json.dumps(res_v10, ensure_ascii=False)) + + res_v9 = None + v9_path = MODELS_DIR / "ppo_v9.pt" + if v9_path.exists(): + ckpt = torch.load(v9_path, map_location="cpu") + sd = ckpt.get("policy", ckpt) + names_v9 = sorted(ckpt.get("assets") or ASSETS_32) + policy_v9 = LSTMPolicy(env.dim, 3).to(device) + policy_v9.load_state_dict(sd) + policy_v9.eval() + res_v9 = validate_oos(policy_v9, assets, names_v9) + print("v9 OOS (same unseen window):", json.dumps(res_v9, ensure_ascii=False)) + + report = { + "train_frac": TRAIN_FRAC, + "gap_bars": GAP_BARS, + "n_episodes": n_episodes, + "assets": names, + "ppo_v10_oos": res_v10, + "ppo_v9_oos": res_v9, + } + out = REPO_ROOT / "data" / "reports" / "ppo_v10_oos_eval.json" + out.parent.mkdir(parents=True, exist_ok=True) + out.write_text(json.dumps(report, indent=2, ensure_ascii=False)) + + better = res_v10["sum_rl"] > 0 and (res_v9 is None or res_v10["sum_rl"] >= res_v9["sum_rl"]) + if better: + MODELS_DIR.mkdir(parents=True, exist_ok=True) + torch.save({"policy": policy.state_dict(), "assets": names}, MODELS_DIR / "ppo_v10.pt") + print("✅ saved ppo_v10.pt (OOS sum_rl", res_v10["sum_rl"], ")") + else: + print("ℹ️ ppo_v10 NOT saved: OOS sum_rl", res_v10["sum_rl"], "(v9 OOS:", res_v9["sum_rl"] if res_v9 else None, ")") + print("elapsed:", round(time.time() - t0), "s") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/quant_watch_backtest.py b/scripts/quant_watch_backtest.py new file mode 100644 index 000000000..762d0b6fa --- /dev/null +++ b/scripts/quant_watch_backtest.py @@ -0,0 +1,156 @@ +#!/usr/bin/env python3 +"""Historical verification of the Quant Signal Monitor WATCH rules. + +Replays the signal-product logic (regime + ML prob thresholds) over the OOS +tail of each symbol and measures how often WATCH_UP/WATCH_DOWN are confirmed +by the next-bar direction. Read-only; no orders, no state mutation. + +Usage: + python scripts/quant_watch_backtest.py [--oos-frac 0.30] +""" + +from __future__ import annotations + +import argparse +import glob +import json +import sys +from pathlib import Path + +import numpy as np +import pandas as pd + +REPO_ROOT = Path(__file__).resolve().parents[1] +QUANT_DIR = REPO_ROOT / "data" / "quant" +MODELS_DIR = QUANT_DIR / "models" + +sys.path.insert(0, str(REPO_ROOT)) +from aios_core.quant_regime_v3 import compute_regime_features # noqa: E402 + +FEATURES = [ + "ret1", "ret3", "ret6", "ret12", "ret24", + "rsi", "bb_pos", "macd_norm", "ema_gap", + "vol_ratio", "vol_z", "bar_range_pct", "hl_pos", +] + +WATCH_UP_RULES = {"prob_min": 0.60, "regime": "trend_up"} +WATCH_DOWN_RULES = {"prob_max": 0.40, "regime": "trend_down"} + + +def _features(df: pd.DataFrame) -> pd.DataFrame: + g = df.copy() + g["ret1"] = g["close"].pct_change() + g["ret3"] = g["close"].pct_change(3) + g["ret6"] = g["close"].pct_change(6) + g["ret12"] = g["close"].pct_change(12) + g["ret24"] = g["close"].pct_change(24) + g["ema12"] = g["close"].ewm(span=12).mean() + g["ema26"] = g["close"].ewm(span=26).mean() + chg = g["close"].pct_change() + up = chg.clip(lower=0).rolling(14).mean() + down = (-chg.clip(upper=0)).rolling(14).mean() + g["rsi"] = 100.0 - 100.0 / (1.0 + up / down.replace(0, 1e-9)) + bb_mid = g["close"].rolling(20).mean() + bb_std = g["close"].rolling(20).std() + g["bb_pos"] = ((g["close"] - bb_mid + 2 * bb_std) / (4 * bb_std).replace(0, np.nan)).clip(0, 1) + macd = g["ema12"] - g["ema26"] + g["macd_norm"] = macd / g["close"] + g["ema_gap"] = (g["ema12"] - g["ema26"]) / g["close"] + vol_mean = g["volume"].rolling(20).mean() + vol_std = g["volume"].rolling(20).std() + g["vol_ratio"] = g["volume"] / vol_mean.replace(0, np.nan) + g["vol_z"] = (g["volume"] - vol_mean) / vol_std.replace(0, np.nan) + g["bar_range_pct"] = (g["high"] - g["low"]) / g["close"] + g["hl_pos"] = (g["close"] - g["low"]) / (g["high"] - g["low"]).replace(0, np.nan) + return g + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--oos-frac", type=float, default=0.30) + args = parser.parse_args() + + from catboost import CatBoostClassifier + + model = CatBoostClassifier() + model.load_model(str(MODELS_DIR / "catboost_price_dir_v2.cbm")) + + results = [] + total_up = total_down = conf_up = conf_down = 0 + for path in sorted(glob.glob(str(QUANT_DIR / "*" / "binance" / "*_1h.csv"))): + symbol = Path(path).stem.split("_")[0] + df = pd.read_csv(path).sort_values("timestamp_ms") + df = df.dropna(subset=["open", "high", "low", "close", "volume"]) + g = _features(df) + clean = g.dropna(subset=FEATURES).reset_index(drop=True) + if len(clean) < 300: + continue + cut = int(len(clean) * (1.0 - args.oos_frac)) + oos = clean.iloc[cut:].reset_index(drop=True) + + # Regime per bar (same code path as the signal product). + rows = [ + { + "timestamp": float(r.timestamp_ms), + "open": float(r.open), + "high": float(r.high), + "low": float(r.low), + "close": float(r.close), + "volume": float(r.volume), + } + for r in oos.itertuples() + ] + regimes = compute_regime_features(rows) + probs = model.predict_proba(oos[FEATURES].values.astype(np.float64))[:, 1] + + n_up = n_down = hit_up = hit_down = 0 + for i in range(len(oos) - 1): + regime = regimes[i]["regime"] + p = probs[i] + nxt_dir = 1 if oos["close"].iloc[i + 1] > oos["close"].iloc[i] else 0 + if regime == WATCH_UP_RULES["regime"] and p >= WATCH_UP_RULES["prob_min"]: + n_up += 1 + hit_up += nxt_dir + if regime == WATCH_DOWN_RULES["regime"] and p <= WATCH_DOWN_RULES["prob_max"]: + n_down += 1 + hit_down += 1 - nxt_dir + results.append( + { + "symbol": symbol, + "bars_oos": len(oos), + "watch_up": n_up, + "watch_up_hit": hit_up, + "watch_down": n_down, + "watch_down_hit": hit_down, + } + ) + total_up += n_up + conf_up += hit_up + total_down += n_down + conf_down += hit_down + + report = { + "oos_frac": args.oos_frac, + "watch_up": { + "signals": total_up, + "confirmed": conf_up, + "precision": round(conf_up / total_up, 4) if total_up else None, + }, + "watch_down": { + "signals": total_down, + "confirmed": conf_down, + "precision": round(conf_down / total_down, 4) if total_down else None, + }, + "per_symbol": results, + } + out = REPO_ROOT / "data" / "reports" / "quant_watch_backtest.json" + out.parent.mkdir(parents=True, exist_ok=True) + out.write_text(json.dumps(report, indent=2, ensure_ascii=False)) + print(json.dumps({k: v for k, v in report.items() if k != "per_symbol"}, ensure_ascii=False, indent=2)) + print("watch_up symbols:", sum(1 for r in results if r["watch_up"]), + "| watch_down symbols:", sum(1 for r in results if r["watch_down"])) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/quant_winrate_experiments.py b/scripts/quant_winrate_experiments.py new file mode 100644 index 000000000..8dd406c49 --- /dev/null +++ b/scripts/quant_winrate_experiments.py @@ -0,0 +1,215 @@ +#!/usr/bin/env python3 +"""Winrate experiment battery over the yearly backtest harness (read-only, in-sample). + +Reuses 1:1 signal/feature functions from scripts/quant_monthly_backtest.py. +Free profile per symbol (identical to --free-profile trades, verified vs BASE). +Variants: trend gates, ML threshold, exit grid, donor blacklist. + +Usage: + python scripts/quant_winrate_experiments.py [--months 12] [--output data/reports/winrate_experiments_1y.md] +""" + +from __future__ import annotations + +import argparse +import statistics +import sys +from pathlib import Path + +import numpy as np + +REPO_ROOT = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(REPO_ROOT)) +sys.path.insert(0, str(REPO_ROOT / "scripts")) + +from datetime import UTC + +import quant_monthly_backtest as qmb + +STAKE = 200.0 +FEE = qmb.PROFILE["fee_rate"] +COST = qmb.PROFILE["half_spread_rate"] + qmb.PROFILE["slippage_rate"] + + +def simulate(sym: str, s: dict, variant: dict) -> list[dict]: + """Per-symbol free-profile simulation; mirrors qmb exits 1:1.""" + closes, highs, lows = s["closes"], s["highs"], s["lows"] + times, probs = s["times"], s["probs"] + i0 = s["i0"] + ml_min = variant.get("ml_min", qmb.PROFILE["ml_min_prob_up"]) + tp = variant.get("tp", qmb.PROFILE["take_profit_pct"]) + sl = variant.get("sl", qmb.PROFILE["stop_loss_pct"]) + trail = variant.get("trail", qmb.PROFILE["trail_ratio"]) + trend = variant.get("trend") # None | "asset" | "btc" + history: list[float] = [float(c) for c in closes[:i0]] + + pos = None + trades: list[dict] = [] + for k in range(i0, len(closes)): + price = float(closes[k]) + ts = int(times[k]) + ml_prob = float(probs[k]) if k < len(probs) and not np.isnan(float(probs[k])) else None + history.append(price) + + if pos is not None: + entry_mid = pos["entry_mid"] + qty = pos["qty"] + max_seen = max(pos["max_seen"], price) + pos["max_seen"] = max_seen + hi, lo = float(highs[k]), float(lows[k]) + exit_px = None + reason = "" + if lo <= entry_mid * (1.0 + sl): + exit_px = entry_mid * (1.0 + sl) * (1.0 - COST) + reason = "stop_loss" + elif hi >= entry_mid * (1.0 + tp): + exit_px = entry_mid * (1.0 + tp) * (1.0 - COST) + reason = "take_profit" + elif max_seen > entry_mid * 1.01 and lo <= max_seen * trail: + exit_px = max_seen * trail * (1.0 - COST) + reason = "trailing_stop" + else: + an = qmb.record_and_analyze(history, ml_prob, 0.0 if sym in qmb.RL_ASSETS else None) + if (an["signal"] == "SELL_SHORT" and an["confidence"] >= qmb.PROFILE["min_confidence"] + and ml_prob is not None and ml_prob <= 0.40 + and (ts - pos["opened_at"]) >= qmb.PROFILE["min_hold_seconds"] * 1000): + exit_px = price * (1.0 - COST) + reason = "confirmed_bearish_exit" + if exit_px is not None: + proceeds = exit_px * qty + net = proceeds - pos["invested"] - exit_px * qty * FEE # entry_fee уже в qty + trades.append({"symbol": sym, "net": net, + "pct": net / pos["invested"] * 100.0, "reason": reason}) + pos = None + + if trend == "asset" and s["sma200"][k] and not (price > s["sma200"][k]): + continue + if trend == "btc" and s["btc_up"].get(ts) is False: + continue + an = qmb.record_and_analyze(history, ml_prob, 0.0 if sym in qmb.RL_ASSETS else None) + if an["signal"] != "BUY_LONG" or an["confidence"] < qmb.PROFILE["min_confidence"]: + continue + if ml_prob is None or ml_prob < ml_min: + continue + rl = 0.0 if sym in qmb.RL_ASSETS else None + if rl is not None and rl <= qmb.PROFILE["rl_veto_position"]: + continue + entry_fee = STAKE * FEE + exec_px = price * (1.0 + COST) + pos = {"entry_mid": price, "qty": (STAKE - entry_fee) / exec_px, + "invested": STAKE, "entry_fee": entry_fee, "max_seen": price, "opened_at": ts} + + if pos is not None: # mark-to-market at period end + exit_px = price * (1.0 - COST) + proceeds = exit_px * pos["qty"] + net = proceeds - pos["invested"] - exit_px * pos["qty"] * FEE # entry_fee уже в qty + trades.append({"symbol": sym, "net": net, "pct": net / STAKE * 100.0, "reason": "period_end"}) + return trades + + +def metrics(trades: list[dict]) -> dict: + if not trades: + return {"n": 0, "wr": 0.0, "pf": 0.0, "pnl": 0.0, "avg": 0.0} + wins = [t for t in trades if t["net"] > 0] + gw = sum(t["net"] for t in wins) + gl = -sum(t["net"] for t in trades if t["net"] < 0) + return {"n": len(trades), "wr": len(wins) / len(trades) * 100.0, + "pf": gw / gl if gl > 0 else float("inf"), + "pnl": sum(t["net"] for t in trades), + "avg": statistics.mean(t["pct"] for t in trades)} + + +VARIANTS = [ + ("BASE: текущая (ML>=0.65)", {}), + ("T1: тренд-гейт asset>SMA200", {"trend": "asset"}), + ("T2: тренд-гейт рынка (BTC>SMA200)", {"trend": "btc"}), + ("M1: ML>=0.70", {"ml_min": 0.70}), + ("M2: ML>=0.75", {"ml_min": 0.75}), + ("X1: TP+1.0%/SL-1.0%", {"tp": 0.010, "sl": -0.010}), + ("X2: TP+1.2%/SL-0.8%", {"tp": 0.012, "sl": -0.008}), + ("X3: TP+3.0%/SL-1.5%", {"tp": 0.030, "sl": -0.015}), + ("B1: блэклист доноров (SEI,OP,KAS,UNI)", {"blacklist": {"SEI", "OP", "KAS", "UNI"}}), + ("C1: T1 + ML>=0.70", {"trend": "asset", "ml_min": 0.70}), + ("C2: T1 + ML0.70 + B1", {"trend": "asset", "ml_min": 0.70, + "blacklist": {"SEI", "OP", "KAS", "UNI"}}), +] + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--months", type=int, default=12) + ap.add_argument("--output", type=Path, default=Path("data/reports/winrate_experiments_1y.md")) + args = ap.parse_args() + + from datetime import datetime + + from catboost import CatBoostClassifier + from dateutil.relativedelta import relativedelta + + symbols, _venue_used = qmb.load_symbols("allowlist") + print(f"symbols: {len(symbols)}", flush=True) + model = CatBoostClassifier() + model.load_model(str(qmb.MODELS_DIR / "catboost_price_dir_v2.cbm")) + + last_ts = max(int(df["timestamp_ms"].iloc[-1]) for df in symbols.values()) + start_ms = int((datetime.fromtimestamp(last_ts / 1000, tz=UTC) + - relativedelta(months=args.months)).timestamp() * 1000) + + series: dict[str, dict] = {} + for sym, df in symbols.items(): + feats = qmb._compute_features(df) + X = feats[qmb.FEATURES].values.astype(np.float64) + probs = model.predict_proba(X)[:, 1] if len(X) else np.array([]) + idx = np.where(df["timestamp_ms"].values >= start_ms)[0] + if len(idx) < 100: + continue + series[sym] = { + "closes": df["close"].values, "highs": df["high"].values, "lows": df["low"].values, + "times": df["timestamp_ms"].values, "probs": probs, "i0": int(idx[0]), + "sma200": df["close"].rolling(200).mean().values, + "btc_up": {}, + } + + # BTC market-regime map (close > SMA200 by timestamp) + btc = series.get("BTC") + if btc: + by_ts = {int(t): k for k, t in enumerate(btc["times"])} + for ts, k in by_ts.items(): + sma = btc["sma200"][k] + btc["btc_up"][ts] = bool(sma == sma and btc["closes"][k] > sma) + for sym, s in series.items(): + if sym != "BTC": + s["btc_up"] = btc["btc_up"] if btc else {} + + print(f"series ready: {len(series)}; running {len(VARIANTS)} variants...", flush=True) + rows = [] + for name, variant in VARIANTS: + bl = variant.get("blacklist", set()) + trades = [] + for sym, s in series.items(): + if sym in bl: + continue + trades.extend(simulate(sym, s, variant)) + m = metrics(trades) + rows.append((name, m)) + print(f"{name}: n={m['n']} wr={m['wr']:.1f}% PF={m['pf']:.2f} pnl={m['pnl']:+.2f}$", flush=True) + + base = rows[0][1] + md = ["# Эксперименты по поднятию винрейта (1 год, in-sample)", "", + f"Период: последние {args.months} мес. | Цены: allowlist (kucoin/bitstamp) | " + f"Ставка фикс ${STAKE:.0f}/сделку | Профиль: свободный (без kill-switch)", "", + "| Вариант | Сделок | Winrate | PF | PnL $ | Δ к базе $ |", "|---|---:|---:|---:|---:|---:|"] + for name, m in rows: + pf = f"{m['pf']:.2f}" if m["pf"] != float("inf") else "inf" + md.append(f"| {name} | {m['n']} | {m['wr']:.1f}% | {pf} | {m['pnl']:+.2f} | " + f"{m['pnl'] - base['pnl']:+.2f} |") + md += ["", "**Важно:** все результаты in-sample (тот же год, что обучение ML и подбор параметров). " + "Победитель сетки обязан пройти свежий OOS walk-forward перед любым выводом о проде."] + args.output.parent.mkdir(parents=True, exist_ok=True) + args.output.write_text("\n".join(md), encoding="utf-8") + print(f"report -> {args.output}", flush=True) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/run_dca_paper.py b/scripts/run_dca_paper.py new file mode 100755 index 000000000..e02f6e361 --- /dev/null +++ b/scripts/run_dca_paper.py @@ -0,0 +1,189 @@ +#!/usr/bin/env python3 +"""Long-term DCA portfolio paper tracker (daily mark-to-market). + +Config: data/dca_portfolio.json + { + "weekly_amount_usd": 1000, + "weights": {"BTC": 0.1, "ETH": 0.1, ...}, # equal-weight top-10 default + "fee_rate": 0.001, + "rebalance_quarterly": true, + "start_date": "2026-08-15" + } +State: data/dca_paper_state.json (deposits, holdings, cash, fees) +Value history: data/dca_paper_value.jsonl (one line per mark) + +On every run: if a weekly deposit is due -> deposit & buy at live binance spot +prices; quarterly rebalance if due; then mark to market and append the value line. + +Usage: + python scripts/run_dca_paper.py [--once] +""" + +from __future__ import annotations + +import json +import sys +import urllib.request +from datetime import UTC, datetime, timedelta +from pathlib import Path + +REPO = Path("/root/AIOS") +import os as _os +_port = _os.environ.get("DCA_CONFIG", "dca_portfolio") +CONFIG = REPO / "data" / f"{_port}.json" +if _port == "dca_portfolio": + # keep legacy filenames for the original portfolio + STATE = REPO / "data" / "dca_paper_state.json" + VALUE_LOG = REPO / "data" / "dca_paper_value.jsonl" +else: + suffix = _port.replace("dca_portfolio_", "").replace("dca_", "") + STATE = REPO / "data" / f"dca_paper_state_{suffix}.json" + VALUE_LOG = REPO / "data" / f"dca_paper_value_{suffix}.jsonl" + +DEFAULT_WEIGHTS = { + "BTC": 0.10, "ETH": 0.10, "SOL": 0.10, "XRP": 0.10, "BNB": 0.10, + "DOGE": 0.10, "TRX": 0.10, "TON": 0.10, "ADA": 0.10, "LINK": 0.10, +} + + +def fetch_prices(symbols: list[str]) -> dict[str, float]: + """Live binance spot prices (public API).""" + out = {} + for s in symbols: + try: + url = f"https://api.binance.com/api/v3/ticker/price?symbol={s}USDT" + req = urllib.request.Request(url, headers={"User-Agent": "Mozilla/5.0"}) + with urllib.request.urlopen(req, timeout=15) as r: + out[s] = float(json.loads(r.read().decode())["price"]) + except Exception as e: + print(f" price {s} fail: {e}", flush=True) + return out + + +def load_config() -> dict: + if CONFIG.exists(): + cfg = json.loads(CONFIG.read_text()) + else: + cfg = {} + cfg.setdefault("weekly_amount_usd", 1000.0) + cfg.setdefault("mode", "dca") # "dca" | "va" (value-averaging) + cfg.setdefault("va_cap_mult", 2.0) # max weekly contribution = weekly * cap + cfg.setdefault("weights", DEFAULT_WEIGHTS) + cfg.setdefault("fee_rate", 0.001) + cfg.setdefault("rebalance_quarterly", True) + cfg.setdefault("start_date", datetime.now(UTC).strftime("%Y-%m-%d")) + w = cfg["weights"] + tot = sum(w.values()) + cfg["weights"] = {k: v / tot for k, v in w.items()} + return cfg + + +def load_state() -> dict: + if STATE.exists(): + return json.loads(STATE.read_text()) + return {"last_deposit": None, "last_rebalance": None, "holdings": {}, + "cash_usd": 0.0, "deposited_usd": 0.0, "fees_usd": 0.0, "buys": []} + + +def save_state(s: dict) -> None: + STATE.write_text(json.dumps(s, ensure_ascii=False, indent=2)) + + +def mark_value(state: dict, prices: dict[str, float]) -> float: + val = state["cash_usd"] + for s, qty in state["holdings"].items(): + px = prices.get(s) + if px: + val += qty * px + return val + + +def main() -> int: + cfg = load_config() + state = load_state() + today = datetime.now(UTC).date() + start = datetime.strptime(cfg["start_date"], "%Y-%m-%d").date() + weights = cfg["weights"] + symbols = list(weights) + + prices = fetch_prices(symbols) + if not prices: + print("no prices, abort", flush=True) + return 1 + + # weekly deposit + if state["last_deposit"] is None: + due = today >= start + else: + last = datetime.strptime(state["last_deposit"], "%Y-%m-%d").date() + due = (today - last).days >= 7 + + if due: + amount = cfg["weekly_amount_usd"] + if cfg.get("mode") == "va": + # value-averaging: bring portfolio value to the planned path + val_now = mark_value(state, prices) + weeks = max(1, (today - start).days // 7 + 1) + planned = cfg["weekly_amount_usd"] * weeks + gap = planned - val_now + amount = max(0.0, min(gap, cfg["weekly_amount_usd"] * cfg.get("va_cap_mult", 2.0))) + state["cash_usd"] += amount + state["deposited_usd"] += amount + state["last_deposit"] = today.isoformat() + for s, w in weights.items(): + px = prices.get(s) + if not px: + continue + net = amount * w * (1.0 - cfg["fee_rate"]) + qty = net / px + state["holdings"][s] = state["holdings"].get(s, 0.0) + qty + state["cash_usd"] -= amount * w + state["fees_usd"] += amount * w * cfg["fee_rate"] + state["buys"].append({"date": today.isoformat(), "symbol": s, + "price": px, "qty": qty, "usd": amount * w}) + print(f"deposit {amount:.0f}$ on {today}", flush=True) + + # quarterly rebalance + if cfg["rebalance_quarterly"] and state["last_rebalance"] is not None: + last_r = datetime.strptime(state["last_rebalance"], "%Y-%m-%d").date() + if (today - last_r).days >= 90: + val = mark_value(state, prices) + for s, w in weights.items(): + px = prices.get(s) + if not px: + continue + cur = state["holdings"].get(s, 0.0) * px + target = val * w + diff = target - cur + if diff > 0: + net = diff * (1.0 - cfg["fee_rate"]) + state["holdings"][s] = state["holdings"].get(s, 0.0) + net / px + state["cash_usd"] -= diff + state["fees_usd"] += diff * cfg["fee_rate"] + elif diff < 0: + sell = min(state["holdings"].get(s, 0.0), -diff / px) + state["holdings"][s] -= sell + state["cash_usd"] += sell * px * (1.0 - cfg["fee_rate"]) + state["fees_usd"] += sell * px * cfg["fee_rate"] + state["last_rebalance"] = today.isoformat() + print(f"quarterly rebalance on {today}", flush=True) + elif state["last_rebalance"] is None: + state["last_rebalance"] = today.isoformat() + + val = mark_value(state, prices) + line = {"date": today.isoformat(), "value_usd": round(val, 2), + "deposited_usd": round(state["deposited_usd"], 2), + "fees_usd": round(state["fees_usd"], 4), + "cash_usd": round(state["cash_usd"], 2), + "prices": {k: round(v, 6) for k, v in prices.items()}} + with open(VALUE_LOG, "a") as f: + f.write(json.dumps(line) + "\n") + save_state(state) + pnl = val - state["deposited_usd"] + print(f"value={val:.2f}$ deposited={state['deposited_usd']:.2f}$ " + f"pnl={pnl:+.2f}$ ({pnl/state['deposited_usd']*100:+.2f}%)", flush=True) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/run_market_making_simulator_v2.py b/scripts/run_market_making_simulator_v2.py new file mode 100644 index 000000000..75615a45e --- /dev/null +++ b/scripts/run_market_making_simulator_v2.py @@ -0,0 +1,125 @@ +#!/usr/bin/env python3 +"""Inventory-aware market-making simulator (research v2, read-only). + +Fixes the naive passive MM flaw found in the v1 run (adverse selection): +- quotes are only considered "filled" when the next mid moves IN FAVOR of the + resting quote (conservative: we only capture the spread when the market + confirms our side); +- inventory limit: after a fill, the next opposite quote is cancelled until + the position is offset by a favorable move (no stacking); +- skips consecutive same-side snapshots (no double-counting fills). + +Usage: + python scripts/run_market_making_simulator_v2.py [--db ...] [--min-snapshots 500] [--output ...] +""" + +from __future__ import annotations + +import argparse +import json +import sqlite3 +import statistics +from collections import defaultdict +from pathlib import Path + + +def evaluate(path: Path, min_snapshots: int = 500) -> dict: + db = sqlite3.connect(path) + rows = db.execute( + "SELECT ts, exchange, symbol, bid, ask, mid, spread_bps " + "FROM snapshots ORDER BY exchange, symbol, ts" + ).fetchall() + db.close() + + groups: dict[tuple[str, str], list] = defaultdict(list) + for row in rows: + groups[(row[1], row[2])].append(row) + + results = [] + for (exchange, symbol), items in groups.items(): + if len(items) < min_snapshots: + continue + fills = 0 + win = 0 + pnl = 0.0 + inventory = 0 # +1 long (bought at bid), -1 short (sold at ask) + for current, nxt in zip(items, items[1:]): + _ts, _ex, _sym, bid, ask, mid, spread = current + next_mid = nxt[5] + # A resting bid (buy) fills when price rises through/above our bid: + # we bought at bid, market moved up -> we capture (next_mid - bid). + if inventory <= 0 and next_mid >= ask: # our ask (sell) was hit on an up-move + # Sold at ask; if next mid stays above, we buy back later. + # Conservative: realize only if we can close at bid on a later down-move. + pass + # Inventory-aware rule: + # - with no inventory: quote both sides; a fill happens only on a + # favorable move (next_mid > ask => we sold high; next_mid < bid + # => we bought low). Both are adverse-selection free by construction + # because we only count the fill when price moved through our level + # and then returned (mean-reversion capture). + # - with inventory: only the closing side is quoted. + if inventory == 0: + if next_mid <= bid: # price fell through our bid -> we "bought low" + inventory = 1 + fills += 1 + elif next_mid >= ask: # price rose through our ask -> we "sold high" + inventory = -1 + fills += 1 + elif inventory == 1 and next_mid >= ask: + # We hold long; our ask gets hit on an up-move -> close with profit + pnl += ask - bid - ask * 0.001 # crossed the spread net of fees + win += 1 + inventory = 0 + elif inventory == -1 and next_mid <= bid: + # We hold short; our bid gets hit on a down-move -> close with profit + pnl += bid - ask - ask * 0.001 + win += 1 + inventory = 0 + # else: hold; the market moved against the open position -> risk, + # which is what inventory management is supposed to avoid; with the + # mean-reversion capture above it is bounded. + + results.append( + { + "exchange": exchange, + "symbol": symbol, + "snapshots": len(items), + "fills": fills, + "round_trips": win, + "pnl_per_unit": round(pnl, 8), + "median_spread_bps": round(statistics.median(x[6] for x in items), 6), + } + ) + + ready = bool(results) + return { + "ready": ready, + "minimum_snapshots": min_snapshots, + "total_snapshots": len(rows), + "eligible_pairs": len(results), + "results": results, + } + + +def main() -> int: + p = argparse.ArgumentParser(description=__doc__) + p.add_argument("--db", type=Path, default=Path("data/quant/orderbooks.sqlite")) + p.add_argument("--min-snapshots", type=int, default=500) + p.add_argument("--output", type=Path, default=Path("data/reports/market_making_simulation_v2.json")) + a = p.parse_args() + r = evaluate(a.db, a.min_snapshots) + a.output.parent.mkdir(parents=True, exist_ok=True) + a.output.write_text(json.dumps(r, indent=2) + "\n") + print(json.dumps({k: r[k] for k in ("ready", "total_snapshots", "eligible_pairs")})) + for item in r["results"]: + print( + f" {item['exchange']:9s} {item['symbol']:4s} n={item['snapshots']:5d} " + f"fills={item['fills']:4d} rt={item['round_trips']:4d} " + f"pnl={item['pnl_per_unit']:12.4f} spread_med={item['median_spread_bps']:.3f}bps" + ) + return 0 if r["ready"] else 1 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/run_t2_executor.py b/scripts/run_t2_executor.py new file mode 100644 index 000000000..a220706ff --- /dev/null +++ b/scripts/run_t2_executor.py @@ -0,0 +1,187 @@ +#!/usr/bin/env python3 +"""T2 real-money executor scaffold (Binance spot). + +Executes the validated T2 momentum signal (run_t2_momentum.py logic) on a real +Binance account: reads today's signal per symbol, compares with the last known +position (state file), and submits MARKET orders via the Binance REST API +(ccxt). Nothing is executed unless --live is passed; the default mode is +--dry (prints what it WOULD do). + +Production rules (identical to run_t2_momentum.py): +- CASH -> LONG when last closed daily close > SMA(in_w) +- LONG -> CASH when last closed daily close <= SMA(out_w) +- BNB/NEAR: in_w == out_w == 50 (no hysteresis) + +Risk controls (hard-coded, do not disable): +- one order per symbol per day (idempotent via state file) +- max position size per symbol = min(stake_frac * equity, max_order_usdt) +- symbol whitelist + max daily orders limit +- only SPOT market orders; leverage always 1 + +Usage: + python run_t2_executor.py --dry --config config_executor.json # simulate + python run_t2_executor.py --live --config config_executor.json # real orders + +State: data/t2_executor_state.json (per-symbol last signal + position) +""" + +from __future__ import annotations + +import argparse +import json +import sys +import time +import urllib.request +from pathlib import Path + +UA = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"} + +DEFAULT_CONFIG = { + "exchange": "binance", + "api_key": "", # set in your config file (never commit real keys) + "api_secret": "", + "symbols": ["BTC/USDT", "ETH/USDT", "SOL/USDT", "BNB/USDT", "NEAR/USDT"], + "windows": {"BNB/USDT": [50, 50], "NEAR/USDT": [50, 50]}, # others: [50, 40] + "stake_frac": 0.20, # fraction of free USDT per symbol + "max_order_usdt": 2000, # per-order cap + "max_daily_orders": 4, # global cap + "state_file": "data/t2_executor_state.json", + "cost_bps": 10, # 0.1% assumed taker cost (for PnL logging only) +} + + +def fetch_closes(symbol: str, transport=None, limit: int = 400) -> list[dict]: + """Daily closed bars {date, close} from Binance klines (primary) / Yahoo.""" + t = transport or _default_transport + base = symbol.split("/")[0].upper() + url = (f"https://api.binance.com/api/v3/klines?symbol={base}USDT" + f"&interval=1d&limit={limit}") + try: + raw = t(url) + klines = json.loads(raw.decode()) + rows = [] + for k in klines: + rows.append({"date": time.strftime("%Y-%m-%d", time.gmtime(k[0] / 1000)), + "close": float(k[4])}) + if len(rows) >= 60: + return rows + except Exception: + pass + # fallback Yahoo + yurl = (f"https://query1.finance.yahoo.com/v8/finance/chart/{base}-USD" + f"?range={limit + 10}d&interval=1d") + raw = t(yurl) + data = json.loads(raw.decode()) + res = data["chart"]["result"][0] + ts, close = res["timestamp"], res["indicators"]["quote"][0]["close"] + rows = [] + for x, c in zip(ts, close): + if c is not None: + rows.append({"date": time.strftime("%Y-%m-%d", time.gmtime(x)), "close": float(c)}) + if len(rows) >= 60: + return rows + raise RuntimeError(f"cannot fetch closes for {symbol}") + + +def compute_signal(rows: list[dict], in_w: int, out_w: int | None = None) -> tuple[str, float, float]: + """Return (signal, sma_in, sma_out) on the LAST CLOSED bar (no lookahead).""" + out_w = out_w or in_w + closes = [r["close"] for r in rows] + last = closes[-1] + if len(closes) < max(in_w, out_w): + return "CASH", 0.0, 0.0 + s_in = sum(closes[-in_w:]) / in_w + s_out = sum(closes[-out_w:]) / out_w + sig = "LONG" if last > s_in else "CASH" + return sig, s_in, s_out + + +class State: + def __init__(self, path: Path): + self.path = path + if path.exists(): + self.data = json.loads(path.read_text()) + else: + self.data = {"date": None, "positions": {}, "orders_today": 0, "day": None} + + def save(self): + self.path.parent.mkdir(parents=True, exist_ok=True) + tmp = self.path.with_suffix(".tmp") + tmp.write_text(json.dumps(self.data, ensure_ascii=False, indent=2)) + tmp.replace(self.path) + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--config", default="config_executor.json") + ap.add_argument("--dry", action="store_true", default=True, + help="simulate only (default, safe)") + ap.add_argument("--live", action="store_true", help="REAL orders (requires keys)") + ap.add_argument("--transport", help="injectable transport (tests)") + a = ap.parse_args() + if a.live: + a.dry = False + cfg = DEFAULT_CONFIG | json.loads(Path(a.config).read_text()) + if not a.dry and (not cfg["api_key"] or not cfg["api_secret"]): + print("ERROR: --live requires api_key/api_secret in config", file=sys.stderr) + return 2 + + st = State(Path(cfg["state_file"])) + today = time.strftime("%Y-%m-%d", time.gmtime()) + if st.data.get("day") != today: + st.data["day"] = today + st.data["orders_today"] = 0 + + # positions: {"BTC/USDT": "LONG|CASH"} last applied per symbol + for sym in cfg["symbols"]: + in_w, out_w = cfg["windows"].get(sym, [50, 40]) + rows = fetch_closes(sym, transport=a.transport) + sig, s_in, s_out = compute_signal(rows, in_w, out_w) + cur = st.data["positions"].get(sym, "CASH") + # hysteresis: production checks exit only while LONG + if cur == "LONG": + sig = "LONG" if rows[-1]["close"] > s_out else "CASH" + if sig == cur: + print(f"{sym}: no change ({cur})") + continue + if st.data["orders_today"] >= cfg["max_daily_orders"]: + print(f"{sym}: SKIP (daily order cap {cfg['max_daily_orders']} reached)") + continue + if a.dry: + print(f"{sym}: WOULD {cur}->{sig} (close={rows[-1]['close']:.4f}, " + f"sma_in={s_in:.4f}, sma_out={s_out:.4f})") + else: + ex = _make_exchange(cfg) + bal = ex.fetch_balance() + free_usdt = float(bal["USDT"]["free"]) + if sig == "LONG": + amount = min(cfg["stake_frac"] * free_usdt, cfg["max_order_usdt"]) + amount = amount / float(ex.fetch_ticker(sym)["last"]) + ex.create_market_buy_order(sym, amount) + else: + pos = ex.fetch_balance()["free"].get(sym.split("/")[0], 0) + if float(pos) > 0: + ex.create_market_sell_order(sym, float(pos)) + print(f"{sym}: EXECUTED {cur}->{sig}") + st.data["positions"][sym] = sig + st.data["orders_today"] += 1 + st.save() + return 0 + + +def _make_exchange(cfg): + import ccxt + return getattr(ccxt, cfg["exchange"])({ + "apiKey": cfg["api_key"], "secret": cfg["api_secret"], + "enableRateLimit": True, + }) + + +def _default_transport(url: str, timeout: int = 25) -> bytes: + req = urllib.request.Request(url, headers=UA) + with urllib.request.urlopen(req, timeout=timeout) as r: + return r.read() + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/scripts/run_t2_momentum.py b/scripts/run_t2_momentum.py new file mode 100644 index 000000000..bb81dcf64 --- /dev/null +++ b/scripts/run_t2_momentum.py @@ -0,0 +1,311 @@ +#!/usr/bin/env python3 +"""T2 momentum paper-loop: daily signal (BTC close vs SMA50) + state + TG alerts. + +Backtest-proven strategy (docs/MOMENTUM_STRATEGIES_RESULT_2026-08-16_RU.md): +long BTC while close > SMA50 (1d), cash otherwise. This paper loop runs daily: + + 1. fetch daily closes (Yahoo BTC-USD, fallback Binance spot); + 2. compute SMA50 over CLOSED bars only; + 3. signal for today = last closed close > SMA50 (same rule as the backtest); + 4. if position changes -> apply 0.15% cost, log the trade, notify Telegram; + 5. mark equity daily (close/close) and append to value log. + +State: data/t2_paper_state.json ; history: data/t2_paper_equity.jsonl +Idempotent: re-running the same day does not double-log. + +Usage: + python run_t2_momentum.py [--notify] [--state FILE] [--log FILE] +""" + +from __future__ import annotations + +import argparse +import json +import time +import urllib.request +from pathlib import Path + +def _urls(symbol: str) -> tuple[str, str]: + """Binance (primary) and Yahoo (fallback) URLs for a symbol like 'BTC-USD'.""" + base = symbol.split("-")[0].upper() + binance_sym = base + "USDT" + return (f"https://api.binance.com/api/v3/klines?symbol={binance_sym}&interval=1d&limit=400", + f"https://query1.finance.yahoo.com/v8/finance/chart/{symbol}?range=400d&interval=1d") +UA = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"} + +SMA_W = 50 +COST = 0.0015 # per side, same as backtest + + +def default_transport(url: str, timeout: int = 25) -> bytes: + req = urllib.request.Request(url, headers=UA) + with urllib.request.urlopen(req, timeout=timeout) as r: + return r.read() + + +def fetch_closes(transport=None, symbol: str = "BTC-USD") -> list[dict]: + """List of {date, close} for closed daily bars (oldest first).""" + t = transport or default_transport + binance_url, yahoo_url = _urls(symbol) + errs = [] + # primary: Binance spot (эталон ликвидности) + try: + raw = t(binance_url) + klines = json.loads(raw.decode()) + rows = [] + for k in klines: + rows.append({"date": time.strftime("%Y-%m-%d", time.gmtime(k[0] / 1000)), + "close": float(k[4])}) + if len(rows) >= 100: + return rows + errs.append(f"binance: only {len(rows)} rows") + except Exception as e: + errs.append(f"binance: {e}") + # fallback: Yahoo + try: + raw = t(yahoo_url) + data = json.loads(raw.decode()) + res = data["chart"]["result"][0] + ts = res["timestamp"] + close = res["indicators"]["quote"][0]["close"] + rows = [] + for x, c in zip(ts, close): + if c is None: + continue + rows.append({"date": time.strftime("%Y-%m-%d", time.gmtime(x)), + "close": float(c)}) + if len(rows) >= 100: + return rows + errs.append(f"yahoo: only {len(rows)} rows") + except Exception as e: + errs.append(f"yahoo: {e}") + raise RuntimeError("; ".join(errs)) + + +def sma(closes: list[float], w: int) -> float | None: + if len(closes) < w: + return None + return sum(closes[-w:]) / w + + +def check_price_discrepancy(rows: list[dict], transport=None) -> str | None: + """Cross-check the last close from Yahoo vs Binance spot; warn if > 0.5% off.""" + if not rows: + return None + t = transport or default_transport + sym = "BTCUSDT" if "BTC" in rows[-1].get("_sym", "BTC-USD") else "ETHUSDT" + try: + import urllib.parse + url = f"https://api.binance.com/api/v3/ticker/price?symbol={sym}" + raw = t(url) + binance_close = float(json.loads(raw.decode())["price"]) + yahoo_close = rows[-1]["close"] + diff = abs(binance_close - yahoo_close) / yahoo_close * 100 + if diff > 0.5: + return (f"⚠️ Расхождение цен {sym}: Yahoo {yahoo_close:.2f} vs " + f"Binance {binance_close:.2f} ({diff:.2f}%)") + except Exception: + return None + return None + + +def compute_signal(rows: list[dict], in_w: int = SMA_W, out_w: int | None = None) -> dict: + """Signal on the LAST CLOSED bar (no lookahead). + + in_w/out_w implement hysteresis: enter LONG when close > SMA(in_w), + exit when close <= SMA(out_w). out_w=None -> single SMA (enter/exit same). + """ + closes = [r["close"] for r in rows] + last = rows[-1] + if out_w is None: + out_w = in_w + s_in = sma(closes, in_w) + s_out = sma(closes, out_w) + if s_in is None or s_out is None: + return {"date": last["date"], "close": last["close"], "sma50": None, + "signal": "CASH", "reason": "not_enough_history"} + # вход: close > SMA(in); выход: close <= SMA(out) + sig = "LONG" if last["close"] > s_in else "CASH" + # если уже в позиции (state передаётся снаружи) - выход по out_w; + # здесь возвращаем оба уровня, решение принимает run_daily + return {"date": last["date"], "close": last["close"], + "sma_in": round(s_in, 2), "sma_out": round(s_out, 2), + "signal": sig, "reason": "close_gt_sma_in" if sig == "LONG" else "close_le_sma_in", + "in_w": in_w, "out_w": out_w} + + +class T2State: + def __init__(self, path: Path): + self.path = path + if path.exists(): + self.data = json.loads(path.read_text()) + else: + self.data = {"position": "CASH", "entry_date": None, "entry_price": None, + "equity": 10000.0, "last_signal_date": None, + "trades": [], "cash_equiv": 10000.0} + + def save(self): + self.path.parent.mkdir(parents=True, exist_ok=True) + tmp = self.path.with_suffix(".tmp") + tmp.write_text(json.dumps(self.data, ensure_ascii=False, indent=2)) + tmp.replace(self.path) + + +_CTX = {"symbol": "BTC-USD"} + + +def run_daily(state_path: Path, log_path: Path, rows: list[dict], notify=None, + variant: dict | None = None, entry_filter=None) -> dict: + variant = variant or {} + """One daily step: compute signal, update state, log, notify on change.""" + st = T2State(state_path) + in_w = variant.get("in_w", SMA_W) + out_w = variant.get("out_w") + sig = compute_signal(rows, in_w, out_w) + last = rows[-1] + prev = rows[-2] if len(rows) >= 2 else None + # гистерезис: выход по SMA(out), вход по SMA(in) + if st.data["position"] == "LONG": + # в позиции -> сигнал выхода по sma_out + sig["signal"] = "LONG" if last["close"] > sig["sma_out"] else "CASH" + sig["reason"] = "close_gt_sma_out" if sig["signal"] == "LONG" else "close_le_sma_out" + else: + sig["signal"] = "LONG" if last["close"] > sig["sma_in"] else "CASH" + sig["reason"] = "close_gt_sma_in" if sig["signal"] == "LONG" else "close_le_sma_in" + if sig["signal"] == "LONG" and entry_filter is not None: + if not entry_filter(_CTX.get("symbol", "BTC-USD")): + sig["signal"] = "CASH" + sig["reason"] = "meta_filter_denied" + + # idempotency: already processed this bar? + if st.data.get("last_signal_date") == sig["date"]: + # just re-mark equity and return current state + return {"status": "already_processed", "signal": sig["signal"], + "equity": st.data["equity"]} + + # mark previous day's PnL first (close/close while in position) + if prev is not None and st.data["position"] == "LONG" and st.data["entry_price"]: + st.data["equity"] *= last["close"] / prev["close"] + # buy&hold reference (cash_equiv = always-long equity, for comparison) + if prev is not None: + st.data["cash_equiv"] = st.data.get("cash_equiv", 10000.0) * last["close"] / prev["close"] + + # position change? cost applies on ANY transition (same as backtest) + if st.data["position"] != sig["signal"]: + old = st.data["position"] + st.data["equity"] *= (1.0 - COST) + if sig["signal"] == "LONG": + st.data["entry_price"] = last["close"] + st.data["entry_date"] = sig["date"] + else: + st.data["entry_price"] = None + st.data["entry_date"] = None + st.data["position"] = sig["signal"] + st.data["trades"].append({"date": sig["date"], "from": old, "to": sig["signal"], + "close": last["close"], + "sma50": sig.get("sma_in") or sig.get("sma50"), + "equity": round(st.data["equity"], 2)}) + if notify: + notify(sig, old) + st.data["last_signal_date"] = sig["date"] + st.save() + + # append to value log + bh_equity = st.data.get("cash_equiv", 10000.0) + entry = {"date": sig["date"], "close": last["close"], + "sma50": sig.get("sma_in") or sig.get("sma50"), + "signal": sig["signal"], "position": st.data["position"], + "equity": round(st.data["equity"], 2), + "bh_equity": round(bh_equity, 2)} + log_path.parent.mkdir(parents=True, exist_ok=True) + with open(log_path, "a") as f: + f.write(json.dumps(entry) + "\n") + return {"status": "ok", "signal": sig["signal"], "position": st.data["position"], + "equity": st.data["equity"], + "sma50": sig.get("sma_in") or sig.get("sma50"), "close": last["close"]} + + +def tg_send(text: str) -> bool: + token_p = Path("/etc/aios/credentials/telegram_token") + chat_p = Path("/etc/aios/credentials/telegram_owner_chat_id") + if not token_p.exists() or not chat_p.exists(): + return False + token, chat = token_p.read_text().strip(), chat_p.read_text().strip() + import urllib.parse + data = urllib.parse.urlencode({"chat_id": chat, "text": text}).encode() + req = urllib.request.Request(f"https://api.telegram.org/bot{token}/sendMessage", data=data) + try: + with urllib.request.urlopen(req, timeout=20) as r: + return json.loads(r.read().decode()).get("ok", False) + except Exception: + return False + + +def daily_report(symbol: str, state_path: Path) -> str | None: + """One-line daily report (position, equity, BH) - sent every day.""" + st = T2State(state_path).data + eq = float(st.get("equity", 10000.0)) + bh = float(st.get("cash_equiv", 10000.0)) + pct = (eq / 10000 - 1) * 100 + bh_pct = (bh / 10000 - 1) * 100 + tag = symbol.replace("-", "") + return (f"📈 T2-{tag} {time.strftime('%Y-%m-%d')}: {st.get('position')} | " + f"equity ${eq:,.0f} ({pct:+.1f}%) | BH {bh_pct:+.1f}%") + + +def meta_allow(symbol: str) -> bool: + """Meta-labeling filter: allow T2 entry only if the trained model says yes.""" + import sys as _sys + _sys.path.insert(0, str(Path(__file__).resolve().parent)) + from meta_labeling import predict + r = predict(symbol) + if r is None: + return True # no model -> allow (fail-open) + return bool(r.get("allow", True)) + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--symbol", default="BTC-USD") + ap.add_argument("--in-w", type=int, default=SMA_W) + ap.add_argument("--out-w", type=int, default=None) + ap.add_argument("--state", type=Path, default=None) + ap.add_argument("--log", type=Path, default=None) + ap.add_argument("--notify", action="store_true") + ap.add_argument("--daily-report", action="store_true", + help="send a one-line report every run (not only on change)") + ap.add_argument("--meta-filter", action="store_true", + help="apply meta-labeling filter before entering LONG") + ap.add_argument("--transport", default=None, help="injectable (tests)") + args = ap.parse_args() + + variant = {"in_w": args.in_w, "out_w": args.out_w} + sym_tag = args.symbol.replace("-", "").lower() + if args.state is None: + args.state = Path(f"/root/AIOS/data/t2_paper_state_{sym_tag}.json") + if args.log is None: + args.log = Path(f"/root/AIOS/data/t2_paper_equity_{sym_tag}.jsonl") + + rows = fetch_closes(args.transport, args.symbol) + global _CTX + _CTX = {"symbol": args.symbol} + if args.daily_report: + report = daily_report(args.symbol, args.state) + if report: + tg_send(report) + def notify(sig, old): + txt = (f"📈 T2-сигнал: {sig['date']}\n" + f"{old} -> {sig['signal']} | close {sig['close']:.0f} " + f"SMA{int(sig.get('in_w', 50))}/{int(sig.get('out_w', sig.get('in_w', 50)))} " + f"{sig.get('sma_in') or sig.get('sma50')}\n" + f"причина: {sig['reason']}") + tg_send(txt) + res = run_daily(args.state, args.log, rows, notify if args.notify else None, + variant=variant, + entry_filter=(meta_allow if args.meta_filter else None)) + print(json.dumps(res, ensure_ascii=False)) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/score_historical_sentiment.py b/scripts/score_historical_sentiment.py new file mode 100755 index 000000000..d9d33604d --- /dev/null +++ b/scripts/score_historical_sentiment.py @@ -0,0 +1,165 @@ +#!/usr/bin/env python3 +"""Score historical news headlines with Gemini sentiment (batched, rate-limited). + +Reads data/quant/news_historical.jsonl, scores entries without a 'sentiment' +field, appends scores back (rewrites file). Batches of 8, 4s sleep between +requests (Gemini free tier ~15 RPM), 3 keys rotated. + +Usage: + python scripts/score_historical_sentiment.py [--batch-limit 200] +""" + +from __future__ import annotations + +import argparse +import json +import re +import time +import urllib.request +from pathlib import Path + +ROOT = Path("/root/AIOS") +SRC = ROOT / "data" / "quant" / "news_historical.jsonl" +OUT = ROOT / "data" / "quant" / "news_historical_scored.jsonl" + +PROMPT = ( + "You are a crypto sentiment analyst. For each news headline return a JSON " + "array of objects: {\"sentiment\": } - one per headline, same " + "order. Positive news (adoption, growth, ETF inflow, price rise) -> positive; " + "negative (hacks, bans, liquidations, price fall) -> negative. Reply ONLY " + "with the JSON array, no other text." +) + + +def gemini_keys() -> list[str]: + """Return keys not ruled out by DEFINITIVE auth errors (401/403/404). + + 429 (rate limit) and timeouts are transient -> key kept (scoring retries + with backoff anyway). If every request fails transiently, return all + candidates rather than giving up. + """ + env = (ROOT / ".env").read_text() + candidates = [m.group(1) for m in re.finditer(r"^GEMINI_API_KEY_[0-9]+=(\S+)", env, re.M)] + if not candidates: + return [] + good = [] + transient = 0 + for k in candidates: + body = json.dumps({"contents": [{"parts": [{"text": "Reply: ok"}]}]}).encode() + url = (f"https://generativelanguage.googleapis.com/v1beta/models/" + f"gemini-2.5-flash:generateContent?key={k}") + req = urllib.request.Request(url, data=body, headers={"Content-Type": "application/json"}) + try: + with urllib.request.urlopen(req, timeout=20) as r: + json.loads(r.read().decode()) + good.append(k) + except urllib.error.HTTPError as e: + if e.code in (401, 403, 404): + continue # definitively bad key/model + transient += 1 # 429/5xx: keep + good.append(k) + except Exception: + transient += 1 # timeout/network: keep + good.append(k) + return good or (candidates if transient else []) + + +def score_batch(key: str, titles: list[str]) -> list[float] | None: + body = json.dumps({ + "contents": [{"parts": [{"text": PROMPT + "\n\n" + + "\n".join(f"{i+1}. {t}" for i, t in enumerate(titles))}]}], + }).encode() + url = (f"https://generativelanguage.googleapis.com/v1beta/models/" + f"gemini-2.5-flash:generateContent?key={key}") + req = urllib.request.Request(url, data=body, headers={"Content-Type": "application/json"}) + with urllib.request.urlopen(req, timeout=60) as r: + data = json.loads(r.read().decode()) + text = data["candidates"][0]["content"]["parts"][0]["text"] + cleaned = re.sub(r"^```(?:json)?\s*|\s*```$", "", text.strip()) + m = re.search(r"\[.*\]", cleaned, re.S) + if not m: + return None + arr = json.loads(m.group(0)) + out = [] + for item in arr: + try: + out.append(max(-1.0, min(1.0, float(item.get("sentiment", 0.0))))) + except (TypeError, ValueError): + out.append(0.0) + return out + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--batch-limit", type=int, default=200) + args = ap.parse_args() + + keys = gemini_keys() + if not keys: + print("нет Gemini ключей") + return 1 + + # merge: scored file accumulates; source may still be appended by the collector + scored_rows = {} + if OUT.exists(): + for l in OUT.read_text().splitlines(): + try: + r = json.loads(l) + scored_rows[r["url"]] = r + except Exception: + pass + fresh = {} + if SRC.exists(): + for l in SRC.read_text().splitlines(): + try: + r = json.loads(l) + fresh[r["url"]] = r + except Exception: + pass + # merge source into scored (keep existing scores) + for url, r in fresh.items(): + if url not in scored_rows: + scored_rows[url] = r + rows = list(scored_rows.values()) + todo = [r for r in rows if "sentiment" not in r] + print(f"всего: {len(rows)}, к оценке: {len(todo)}", flush=True) + + ki = 0 + done = 0 + for i in range(0, len(todo), 8): + batch = todo[i:i + 8] + titles = [b["title"] for b in batch] + scores = None + for attempt in range(4): + key = keys[ki % len(keys)] + ki += 1 + try: + scores = score_batch(key, titles) + if scores is not None: + break + except Exception as e: + wait = 6 + attempt * 8 + print(f" попытка {attempt+1} fail: {e} (жду {wait}s)", flush=True) + time.sleep(wait) + if scores is None: + print(" батч не оценён — квота/сеть недоступны, прерываю (resume позже)", flush=True) + break + for b, s in zip(batch, scores): + b["sentiment"] = round(s, 3) + b["label"] = "positive" if s > 0.2 else ("negative" if s < -0.2 else "neutral") + done += len(batch) + if done % 40 <= 8: + print(f" оценено: {done}/{len(todo)}", flush=True) + time.sleep(12) # ~5 батчей/мин (1 рабочий ключ, 15 RPM лимит) + + with open(OUT, "w") as f: + for r in rows: + f.write(json.dumps(r, ensure_ascii=False) + "\n") + pos = sum(1 for r in rows if r.get("sentiment", 0) > 0.2) + neg = sum(1 for r in rows if r.get("sentiment", 0) < -0.2) + print(f"готово: оценено {done}, всего с сентиментом {pos+neg+sum(1 for r in rows if r.get('label')=='neutral')}", flush=True) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/sentiment_price_historical.py b/scripts/sentiment_price_historical.py new file mode 100755 index 000000000..7e96b8704 --- /dev/null +++ b/scripts/sentiment_price_historical.py @@ -0,0 +1,152 @@ +#!/usr/bin/env python3 +"""Historical sentiment-price link test. + +For each historical news item (with sentiment): match the headline's publication +date to 1h OHLCV prices (binance) of the mentioned coins (or BTC if none), then +compute forward returns over +1h / +24h / +72h / +7d and correlation with +sentiment, plus event-study averages for positive vs negative news. + +Usage: + python scripts/sentiment_price_historical.py [--min-n 30] +""" + +from __future__ import annotations + +import argparse +import json +import re +import sys +from collections import defaultdict +from pathlib import Path + +import numpy as np +import pandas as pd + +REPO = Path("/root/AIOS") +sys.path.insert(0, str(REPO / "scripts")) + +import quant_monthly_backtest as qmb + +NEWS = REPO / "data" / "quant" / "news_historical.jsonl" +# prefer locally-scored file if it exists (local lexicon, no LLM quota) +SCORED = REPO / "data" / "quant" / "news_historical_local_scored.jsonl" + +COIN_ALIASES = { + "BTC": ["bitcoin", "btc"], "ETH": ["ethereum", "eth", "ether"], + "SOL": ["solana", "sol"], "XRP": ["xrp", "ripple"], + "BNB": ["bnb", "binance coin", "binance"], "DOGE": ["dogecoin", "doge"], + "ADA": ["cardano", "ada"], "TRX": ["tron", "trx"], + "TON": ["toncoin", "ton"], "LINK": ["chainlink", "link"], + "AVAX": ["avalanche", "avax"], "LTC": ["litecoin", "ltc"], + "DOT": ["polkadot", "dot"], "UNI": ["uniswap", "uni"], + "NEAR": ["near protocol", "near"], "SUI": ["sui"], + "APT": ["aptos", "apt"], "ARB": ["arbitrum", "arb"], + "OP": ["optimism"], "INJ": ["injective", "inj"], +} + + +def detect_coins(title: str) -> list[str]: + t = title.lower() + found = [] + for sym, aliases in COIN_ALIASES.items(): + for a in aliases: + if re.search(rf"\b{a}\b", t): + found.append(sym) + break + return found + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--min-n", type=int, default=30) + args = ap.parse_args() + + src_file = SCORED if SCORED.exists() else NEWS + if not src_file.exists(): + print("нет исторических новостей") + return 0 + rows = [json.loads(l) for l in src_file.read_text().splitlines() if l] + scored = [r for r in rows if "sentiment" in r] + print(f"новостей: {len(rows)}, с сентиментом: {len(scored)}", flush=True) + if len(scored) < args.min_n: + print(f"мало для теста (нужно >= {args.min_n})") + return 0 + + # грузим цены (binance 1h) + prices: dict[str, pd.DataFrame] = {} + symbols, _ = qmb.load_symbols("binance") + for sym, df in symbols.items(): + prices[sym] = df[["timestamp_ms", "close"]].copy() + prices[sym]["dt"] = pd.to_datetime(prices[sym]["timestamp_ms"], unit="ms", utc=True) + + results: dict[str, list[tuple[float, float]]] = defaultdict(list) + matched = 0 + for r in scored: + # время: из pubDate (RSS) или snapshot date + pub = r.get("pub", "") + m = re.search(r"\d{1,2} \w+ \d{4} \d{2}:\d{2}", pub) + if not m: + continue + try: + t = pd.to_datetime(m.group(0), format="%d %b %Y %H:%M", utc=True) + except Exception: + continue + coins = detect_coins(r["title"]) + if not coins: + coins = ["BTC"] + sent = float(r["sentiment"]) + for sym in coins: + if sym not in prices: + continue + df = prices[sym] + row = df[df["dt"] <= t] + if row.empty: + continue + base = float(row["close"].iloc[-1]) + if base <= 0: + continue + for H, tag in ((3600, "1h"), (86400, "24h"), (259200, "3d"), (604800, "7d")): + fut = df[(df["dt"] > t) & (df["dt"] <= t + pd.Timedelta(seconds=H))] + if fut.empty: + continue + ret = (float(fut["close"].iloc[-1]) / base - 1.0) * 100.0 + results[f"{sym}@{tag}"].append((sent, ret)) + matched += 1 + + print(f"совпадений новость→цена: {matched}", flush=True) + print(f"\n{'пара':<10} {'n':>5} {'corr':>8} {'pos_avg':>9} {'neg_avg':>9} {'diff':>9}", flush=True) + total = 0 + for key in sorted(results): + vals = results[key] + sents = np.array([v[0] for v in vals]) + rets = np.array([v[1] for v in vals]) + if len(vals) < 10: + continue + corr = float(np.corrcoef(sents, rets)[0, 1]) + pos = rets[sents > 0.2].mean() if (sents > 0.2).any() else float("nan") + neg = rets[sents < -0.2].mean() if (sents < -0.2).any() else float("nan") + diff = pos - neg if not (np.isnan(pos) or np.isnan(neg)) else float("nan") + print(f"{key:<10} {len(vals):>5} {corr:>+8.3f} {pos:>+8.3f}% {neg:>+8.3f}% {diff:>+8.3f}%", flush=True) + total += len(vals) + + # агрегат по горизонту (все монеты) + print("\nагрегат по горизонту (все монеты):", flush=True) + for tag in ("1h", "24h", "3d", "7d"): + vals = [] + for k, v in results.items(): + if k.endswith(f"@{tag}"): + vals.extend(v) + if len(vals) < 20: + continue + sents = np.array([v[0] for v in vals]) + rets = np.array([v[1] for v in vals]) + corr = float(np.corrcoef(sents, rets)[0, 1]) + pos = rets[sents > 0.2].mean() if (sents > 0.2).any() else float("nan") + neg = rets[sents < -0.2].mean() if (sents < -0.2).any() else float("nan") + print(f" {tag}: n={len(vals)} corr={corr:+.3f} pos={pos:+.3f}% neg={neg:+.3f}% " + f"diff={pos-neg:+.3f}%", flush=True) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/sentiment_price_test.py b/scripts/sentiment_price_test.py new file mode 100755 index 000000000..9aa87a2d5 --- /dev/null +++ b/scripts/sentiment_price_test.py @@ -0,0 +1,80 @@ +#!/usr/bin/env python3 +"""P2: early sentiment-price link test (N2-lite). + +For each news item in news_sentiment.jsonl: find BTC/ETH mid at news time and +at +30/+60 min (from snapshots_ws); compute correlation sentiment -> forward +return. Early indicator only (data so far is hours, not weeks). + +Usage: + python scripts/sentiment_price_test.py +""" + +from __future__ import annotations + +import json +import sqlite3 +from collections import defaultdict +from pathlib import Path + +import numpy as np + +ROOT = Path("/root/AIOS") +DB = ROOT / "data" / "quant" / "orderbooks.sqlite" +NEWS = ROOT / "data" / "quant" / "news_sentiment.jsonl" + + +def load_mids(symbol: str) -> tuple[np.ndarray, np.ndarray]: + con = sqlite3.connect(DB) + rows = con.execute( + "SELECT ts, mid FROM snapshots_ws WHERE symbol=? ORDER BY ts", (symbol,)).fetchall() + con.close() + return np.array([r[0] for r in rows]), np.array([r[1] for r in rows]) + + +def main() -> int: + if not NEWS.exists(): + print("нет новостей") + return 0 + rows = [json.loads(l) for l in NEWS.read_text().splitlines() if l] + print(f"новостей: {len(rows)}", flush=True) + if not rows: + return 0 + + cache = {} + pairs: dict[str, list[tuple[float, float]]] = defaultdict(list) + for r in rows: + # время новости (ts в секундах) + ts = float(r.get("ts", 0)) + if not ts: + continue + sent = float(r.get("sentiment", 0.0)) + coins = r.get("coins", []) or [] + syms = [c for c in ("BTC", "ETH") if c in str(coins) or not coins] + if not syms: + syms = ["BTC"] + for sym in syms: + if sym not in cache: + cache[sym] = load_mids(sym) + t, m = cache[sym] + for H, tag in ((1800, "30m"), (3600, "1h")): + j0 = int(np.searchsorted(t, ts, side="right")) - 1 + j1 = int(np.searchsorted(t, ts + H, side="left")) + if j0 < 0 or j0 >= len(t) or j1 >= len(t) or m[j0] <= 0: + continue + ret = (m[j1] / m[j0] - 1.0) * 100.0 # % + pairs[f"{sym}@{tag}"].append((sent, ret)) + + print(f"{'пара':<10} {'n':>4} {'corr':>7} {'avg_ret_pos':>11} {'avg_ret_neg':>11}", flush=True) + for key in sorted(pairs): + vals = pairs[key] + sents = np.array([v[0] for v in vals]) + rets = np.array([v[1] for v in vals]) + corr = float(np.corrcoef(sents, rets)[0, 1]) if len(vals) > 2 else float("nan") + pos = rets[sents > 0.2].mean() if (sents > 0.2).any() else float("nan") + neg = rets[sents < -0.2].mean() if (sents < -0.2).any() else float("nan") + print(f"{key:<10} {len(vals):>4} {corr:>+7.3f} {pos:>+10.3f}% {neg:>+10.3f}%", flush=True) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/signal_pnl_maker.py b/scripts/signal_pnl_maker.py new file mode 100755 index 000000000..c2f5d27db --- /dev/null +++ b/scripts/signal_pnl_maker.py @@ -0,0 +1,128 @@ +#!/usr/bin/env python3 +"""W4: maker-entry signal trading - limit entry at best price instead of market. + +For each emission: UP -> place limit BUY at the best bid (wait for fill up to +`wait_s`), DOWN -> limit SELL at the best ask. Exit: market after H seconds from +the FILL (not from emission). Costs: maker fee on entry (0.02%), taker on exit +(0.1%). Compares to R1 (market/market, gross≈0, net -19.6$). + +If maker entry fills often and the direction signal holds, this can flip the +economics (cheaper entry + better price). Honest: unfilled orders = no trade. + +Usage: + python scripts/signal_pnl_maker.py [--fee-maker 0.0002] [--fee-taker 0.001] + [--stake 100] [--wait-s 60] [--horizon 180] +""" + +from __future__ import annotations + +import argparse +import json +import sqlite3 +from collections import defaultdict +from pathlib import Path + +import numpy as np + +DB = Path("/root/AIOS/data/quant/orderbooks.sqlite") +LOG = Path("/root/AIOS/data/reports/mm_signal_emitted.jsonl") + + +def load_snaps(symbol: str) -> tuple[np.ndarray, np.ndarray, np.ndarray]: + con = sqlite3.connect(DB) + rows = con.execute( + "SELECT ts, bid, ask FROM snapshots_ws WHERE symbol=? ORDER BY ts", + (symbol,)).fetchall() + con.close() + return (np.array([r[0] for r in rows]), np.array([r[1] for r in rows]), + np.array([r[2] for r in rows])) + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--fee-maker", type=float, default=0.0002) + ap.add_argument("--fee-taker", type=float, default=0.001) + ap.add_argument("--stake", type=float, default=100.0) + ap.add_argument("--wait-s", type=int, default=60) + ap.add_argument("--horizon", type=int, default=180) + args = ap.parse_args() + + if not LOG.exists(): + print("no emissions"); return 0 + ems = [json.loads(l) for l in LOG.read_text().splitlines() if l] + cache: dict[str, tuple] = {} + stats: dict[str, dict] = defaultdict(lambda: {"n": 0, "filled": 0, "wins": 0, + "net": 0.0, "gross": 0.0}) + for e in ems: + sym = e["symbol"] + d = e["direction"] + if d not in ("UP", "DOWN"): + continue + if sym not in cache: + cache[sym] = load_snaps(sym) + ts, bids, asks = cache[sym] + i0 = int(np.searchsorted(ts, e["ts"], side="right")) - 1 + if i0 < 0 or i0 >= len(ts): + continue + # limit order at best price in the signal direction + if d == "UP": + lim_px = float(bids[i0]) # buy at best bid + else: + lim_px = float(asks[i0]) # sell at best ask + if lim_px <= 0: + continue + # wait for fill: price reaches lim_px within wait_s + j_fill = None + for j in range(i0 + 1, len(ts)): + if ts[j] > e["ts"] + args.wait_s: + break + if d == "UP" and asks[j] <= lim_px: + j_fill = j + break + if d == "DOWN" and bids[j] >= lim_px: + j_fill = j + break + st = stats[sym] + st["n"] += 1 + if j_fill is None: + continue # no fill -> no trade + st["filled"] += 1 + qty = args.stake / lim_px + # exit market after horizon from FILL + j_exit = int(np.searchsorted(ts, ts[j_fill] + args.horizon, side="left")) + if j_exit >= len(ts): + continue + exit_px = float(bids[j_exit]) if d == "UP" else float(asks[j_exit]) + if exit_px <= 0: + continue + gross = ((exit_px - lim_px) if d == "UP" else (lim_px - exit_px)) * qty + fees = args.stake * args.fee_maker + args.stake * args.fee_taker + net = gross - fees + st["gross"] += gross + st["net"] += net + if net > 0: + st["wins"] += 1 + + print(f"сигналов: {len(ems)} | maker-вход (wait {args.wait_s}s), taker-выход " + f"({args.horizon}s) | stake ${args.stake:.0f}", flush=True) + print(f"{'символ':<8} {'сигн':>4} {'филлы':>5} {'fill%':>6} {'WR':>5} " + f"{'gross $':>8} {'net $':>8}", flush=True) + tn = tf = tw = 0 + tnet = tgross = 0.0 + for sym in sorted(stats): + st = stats[sym] + fill_pct = st["filled"] / st["n"] * 100 if st["n"] else 0 + wr = st["wins"] / st["filled"] * 100 if st["filled"] else 0 + print(f"{sym:<8} {st['n']:>4} {st['filled']:>5} {fill_pct:>5.0f}% {wr:>4.0f}% " + f"{st['gross']:>+8.2f} {st['net']:>+8.2f}", flush=True) + tn += st["n"]; tf += st["filled"]; tw += st["wins"] + tnet += st["net"]; tgross += st["gross"] + if tf: + print(f"{'ИТОГО':<8} {tn:>4} {tf:>5} {tf/tn*100:>5.0f}% {tw/tf*100:>4.0f}% " + f"{tgross:>+8.2f} {tnet:>+8.2f}", flush=True) + print(f"\nСравнение с R1 (market/market): net был -19.61$ на 98 сделках.", flush=True) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/signal_pnl_sim.py b/scripts/signal_pnl_sim.py new file mode 100755 index 000000000..ff478a1e4 --- /dev/null +++ b/scripts/signal_pnl_sim.py @@ -0,0 +1,127 @@ +#!/usr/bin/env python3 +"""R1: signal PnL simulation - does trading the emitted MM signals make money? + +For each emission in data/reports/mm_signal_emitted.jsonl: + - entry: cross the spread at emission time (UP -> buy at ask, DOWN -> sell at bid), + stake $100; + - exit: after H seconds (60/180) at the market (UP -> sell at bid, DOWN -> buy at ask); + - costs: taker fee on both sides (binance spot 0.1%, configurable), spread crossing + is inherent via bid/ask; + - report: total PnL, winrate, profit factor, per-symbol, per-horizon. + +This answers: does 63% direction accuracy on mid MOVES translate into profit after +execution costs? (Direction accuracy on moves is NOT the same as mid-return PnL.) + +Usage: + python scripts/signal_pnl_sim.py [--fee 0.001] [--stake 100] [--horizons 60 180] +""" + +from __future__ import annotations + +import argparse +import json +import sqlite3 +import statistics +from collections import defaultdict +from pathlib import Path + +import numpy as np + +DB = Path("/root/AIOS/data/quant/orderbooks.sqlite") +LOG = Path("/root/AIOS/data/reports/mm_signal_emitted.jsonl") + + +def load_snaps(symbol: str) -> tuple[np.ndarray, np.ndarray, np.ndarray]: + con = sqlite3.connect(DB) + rows = con.execute( + "SELECT ts, bid, ask, mid FROM snapshots_ws WHERE symbol=? ORDER BY ts", + (symbol,)).fetchall() + con.close() + return (np.array([r[0] for r in rows]), np.array([r[1] for r in rows]), + np.array([r[2] for r in rows])) + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--fee", type=float, default=0.001) + ap.add_argument("--stake", type=float, default=100.0) + ap.add_argument("--horizons", nargs="+", type=int, default=[60, 180]) + args = ap.parse_args() + + if not LOG.exists(): + print("no emissions"); return 0 + ems = [json.loads(l) for l in LOG.read_text().splitlines() if l] + cache: dict[str, tuple] = {} + summary: dict[str, dict] = defaultdict(lambda: {"n": 0, "wins": 0, "pnl": 0.0, + "gross": 0.0, "fees": 0.0}) + + for e in ems: + sym = e["symbol"] + d = e["direction"] + if d not in ("UP", "DOWN"): + continue + if sym not in cache: + cache[sym] = load_snaps(sym) + ts, bids, asks = cache[sym] + # entry: snapshot at/before emission time + i0 = int(np.searchsorted(ts, e["ts"], side="right")) - 1 + if i0 < 0 or i0 >= len(ts): + continue + entry_px = float(asks[i0]) if d == "UP" else float(bids[i0]) + if entry_px <= 0: + continue + qty = args.stake / entry_px + for H in args.horizons: + j = int(np.searchsorted(ts, e["ts"] + H, side="left")) + if j >= len(ts): + continue + exit_px = float(bids[j]) if d == "UP" else float(asks[j]) + if exit_px <= 0: + continue + # PnL: LONG (UP): buy@ask, sell@bid -> (exit - entry)*qty + # SHORT (DOWN): sell@bid, buy@ask -> (entry - exit)*qty + direction_pnl = (exit_px - entry_px) if d == "UP" else (entry_px - exit_px) + gross = direction_pnl * qty + fees = args.stake * args.fee * 2 # taker both sides + net = gross - fees + key = f"{sym}@{H}s" + st = summary[key] + st["n"] += 1 + st["pnl"] += net + st["gross"] += gross + st["fees"] += fees + if net > 0: + st["wins"] += 1 + + print(f"сигналов: {len(ems)} | ставка ${args.stake:.0f} | fee {args.fee:.3f} " + f"(taker обе стороны)", flush=True) + print(f"{'сигнал':<14} {'n':>4} {'WR':>6} {'gross $':>9} {'fees $':>8} {'net $':>9}", flush=True) + total_n = total_wins = 0 + total_pnl = 0.0 + for key in sorted(summary): + st = summary[key] + wr = st["wins"] / st["n"] * 100 if st["n"] else 0 + print(f"{key:<14} {st['n']:>4} {wr:>5.0f}% {st['gross']:>+9.2f} {st['fees']:>8.2f} " + f"{st['pnl']:>+9.2f}", flush=True) + total_n += st["n"] + total_wins += st["wins"] + total_pnl += st["pnl"] + if total_n: + print(f"{'ИТОГО':<14} {total_n:>4} {total_wins/total_n*100:>5.0f}% " + f"{'':>9} {'':>8} {total_pnl:>+9.2f}", flush=True) + # per-symbol aggregate + print("\nпо символам:", flush=True) + by_sym: dict[str, dict] = defaultdict(lambda: {"n": 0, "pnl": 0.0}) + for e in ems: + if e["direction"] in ("UP", "DOWN"): + by_sym[e["symbol"]]["n"] += 1 + for k, st in summary.items(): + sym = k.split("@")[0] + by_sym[sym]["pnl"] += st["pnl"] + for sym in sorted(by_sym): + print(f" {sym}: n={by_sym[sym]['n']} net={by_sym[sym]['pnl']:+.2f}$", flush=True) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/subscription_manage.py b/scripts/subscription_manage.py new file mode 100755 index 000000000..32c071613 --- /dev/null +++ b/scripts/subscription_manage.py @@ -0,0 +1,111 @@ +#!/usr/bin/env python3 +"""Q5: subscription management for the MM signal product. + +Manages data/quant_subscriptions.json: active subscribers with tokens, tiers, +expiry. The signal emitter broadcasts to active subscribers. + +Commands: + python scripts/subscription_manage.py add --chat [--days 30] [--tier basic] + python scripts/subscription_manage.py list + python scripts/subscription_manage.py revoke + python scripts/subscription_manage.py clean (deactivate expired) +""" + +from __future__ import annotations + +import argparse +import json +import secrets +import sys +from datetime import UTC, datetime, timedelta +from pathlib import Path + +FILE = Path("/root/AIOS/data/quant_subscriptions.json") + + +def load() -> dict: + if FILE.exists(): + d = json.loads(FILE.read_text()) + if isinstance(d, dict): + return d + return {"subscribers": []} + + +def save(d: dict) -> None: + FILE.parent.mkdir(parents=True, exist_ok=True) + FILE.write_text(json.dumps(d, ensure_ascii=False, indent=2)) + + +def active_subscribers(d: dict) -> list[dict]: + today = datetime.now(UTC).date().isoformat() + out = [] + for s in d.get("subscribers", []): + if s.get("active") and (not s.get("expires") or s["expires"] >= today): + out.append(s) + return out + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + sub = ap.add_subparsers(dest="cmd", required=True) + + p = sub.add_parser("add") + p.add_argument("--chat", type=int, required=True) + p.add_argument("--days", type=int, default=30) + p.add_argument("--tier", default="basic") + + p = sub.add_parser("list") + p = sub.add_parser("clean") + + p = sub.add_parser("revoke") + p.add_argument("token") + + args = ap.parse_args() + d = load() + + if args.cmd == "add": + token = secrets.token_hex(8) + expires = (datetime.now(UTC) + timedelta(days=args.days)).date().isoformat() + d["subscribers"].append({ + "token": token, "chat_id": args.chat, "tier": args.tier, + "active": True, "expires": expires, + "created": datetime.now(UTC).date().isoformat(), + }) + save(d) + print(f"added: token={token} chat={args.chat} tier={args.tier} expires={expires}") + return 0 + + if args.cmd == "list": + for s in d.get("subscribers", []): + mark = "active" if s.get("active") else "revoked" + print(f"{s['token']} chat={s['chat_id']} tier={s['tier']} " + f"expires={s.get('expires')} [{mark}]") + print(f"active: {len(active_subscribers(d))}") + return 0 + + if args.cmd == "revoke": + for s in d.get("subscribers", []): + if s["token"] == args.token: + s["active"] = False + save(d) + print(f"revoked {args.token}") + return 0 + print("token not found") + return 1 + + if args.cmd == "clean": + today = datetime.now(UTC).date().isoformat() + n = 0 + for s in d.get("subscribers", []): + if s.get("active") and s.get("expires") and s["expires"] < today: + s["active"] = False + n += 1 + save(d) + print(f"deactivated {n} expired") + return 0 + + return 1 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/t2_portfolio.py b/scripts/t2_portfolio.py new file mode 100644 index 000000000..683519e80 --- /dev/null +++ b/scripts/t2_portfolio.py @@ -0,0 +1,46 @@ +#!/usr/bin/env python3 +"""T2 portfolio 50/50 (BTC+ETH): daily mark-to-market of the two paper loops. + +Reads the per-symbol state files and produces a combined equity view: + portfolio_equity = 0.5 * equity_btc + 0.5 * equity_eth (on $10k each). +Appends to data/t2_portfolio_equity.jsonl for charting in the weekly digest. + +Usage: + python t2_portfolio.py +""" +from __future__ import annotations +import json +from pathlib import Path + +ROOT = Path("/root/AIOS") +OUT = ROOT / "data" / "t2_portfolio_equity.jsonl" + +def load_state(name: str) -> dict: + p = ROOT / "data" / name + return json.loads(p.read_text()) if p.exists() else {} + +def main() -> int: + import time + names = [("BTC", "t2_paper_state.json"), ("ETH", "t2_paper_state_ethusd.json"), + ("SOL", "t2_paper_state_solusd.json"), ("BNB", "t2_paper_state_bnbusd.json"), + ("NEAR", "t2_paper_state_nearusd.json")] + eqs, bhs = {}, {} + for tag, fname in names: + st = load_state(fname) + eqs[tag] = float(st.get("equity", 10000.0)) + bhs[tag] = float(st.get("cash_equiv", 10000.0)) + # Riskfolio-оптимизированные веса (Max Sharpe, обучены на 7-летних T2-кривых) + OPT_WEIGHTS = {"BTC": 0.403, "ETH": 0.058, "SOL": 0.282, + "BNB": 0.134, "NEAR": 0.123} + port = sum(eqs[tag] * OPT_WEIGHTS.get(tag, 1/len(names)) for tag in eqs) + port_bh = sum(bhs[tag] * OPT_WEIGHTS.get(tag, 1/len(names)) for tag in bhs) + date = time.strftime("%Y-%m-%d") + entry = {"date": date, "portfolio": round(port, 2), "bh": round(port_bh, 2), + **{tag.lower(): round(v, 2) for tag, v in eqs.items()}} + with open(OUT, "a") as f: + f.write(json.dumps(entry) + "\n") + print(json.dumps(entry)) + return 0 + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/t2_validation.py b/scripts/t2_validation.py new file mode 100644 index 000000000..e5eba9a22 --- /dev/null +++ b/scripts/t2_validation.py @@ -0,0 +1,131 @@ +#!/usr/bin/env python3 +"""T2 validation: 5-year test, rolling windows (bootstrap-ish), SMA calibration. + +Honest robustness checks for the T2 momentum strategy before real money: + V6: 5 years (full market cycle) - BTC/ETH/SOL + V5: rolling 2-year windows over 5 years (9 windows) - stability + V7: SMA period calibration per symbol (20..150) - is SMA50 a plateau or a lucky point? + +All logic mirrors the paper loop (close vs SMA on closed bars, 0.15% cost +per transition). Transport injectable for tests. + +Usage: + python t2_validation.py [--days 1827] [--symbols BTC-USD ETH-USD SOL-USD] +""" + +from __future__ import annotations + +import argparse +import json +import sys +import time +from pathlib import Path + +import numpy as np + +T = Path(__file__).resolve().parent +sys.path.insert(0, str(T)) + +import momentum_strategies as ms +from run_t2_momentum import COST + + +def t2_equity(closes: np.ndarray, sma_w: int = 50, cost: float = COST) -> tuple[np.ndarray, int]: + """Simulate T2 on a close array. Returns equity curve and trade count.""" + n = len(closes) + eq = np.ones(n) + in_pos = False + trades = 0 + for i in range(1, n): + sig = False + if i - 1 >= sma_w - 1: + s = closes[i - sma_w:i].mean() # SMA over CLOSED bars only + sig = closes[i - 1] > s + ret = 0.0 + if sig and not in_pos: + in_pos = True + trades += 1 + eq[i] = eq[i - 1] * (1.0 - cost) + elif not sig and in_pos: + in_pos = False + trades += 1 + eq[i] = eq[i - 1] * (1.0 - cost) + else: + eq[i] = eq[i - 1] + if in_pos and closes[i] > 0 and closes[i - 1] > 0: + eq[i] *= closes[i] / closes[i - 1] + return eq, trades + + +def stats(eq: np.ndarray, days: int) -> dict: + cagr = (eq[-1] ** (365.25 / days) - 1.0) * 100 if eq[-1] > 0 else -100.0 + dd = float(((eq / np.maximum.accumulate(eq)) - 1.0).min() * 100.0) + rets = np.diff(eq) / eq[:-1] + sharpe = float(rets.mean() / (rets.std() + 1e-12) * np.sqrt(365)) if len(rets) > 1 else 0.0 + return {"total": (eq[-1] - 1.0) * 100.0, "cagr": cagr, "maxdd": dd, "sharpe": sharpe} + + +def load(symbol: str, days: int) -> np.ndarray: + url = (f"https://query1.finance.yahoo.com/v8/finance/chart/{symbol}" + f"?range={days + 10}d&interval=1d") + req = ms.urllib.request.Request(url, headers=ms.UA) + with ms.urllib.request.urlopen(req, timeout=30) as r: + data = json.loads(r.read().decode()) + res = data["chart"]["result"][0] + close = res["indicators"]["quote"][0]["close"] + return np.array([c for c in close if c is not None], dtype=float) + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--days", type=int, default=1827) + ap.add_argument("--symbols", nargs="+", default=["BTC-USD", "ETH-USD", "SOL-USD"]) + ap.add_argument("--windows", type=int, default=9) + args = ap.parse_args() + + for sym in args.symbols: + closes = load(sym, args.days) + n = len(closes) + print(f"\n=== {sym}: {n} дней (5 лет, полный цикл) ===") + + # V6: 5 лет SMA50 + eq5, tr5 = t2_equity(closes, 50) + s5 = stats(eq5, n) + bh5 = (closes[-1] / closes[0] - 1) * 100 + print(f" 5 лет SMA50: {s5['total']:+.1f}% (CAGR {s5['cagr']:+.1f}%, DD {s5['maxdd']:.1f}%, " + f"Sharpe {s5['sharpe']:.2f}, {tr5} сделок) | BH {bh5:+.1f}%") + + # V5: ролл-окна по 2 года (730 дней), шаг ~183 дня + win = 730 + print(f" ролл-окна 2 года:") + pos = neg = 0 + for i in range(0, n - win + 1, max(1, (n - win) // (args.windows - 1))): + seg = closes[i:i + win] + eqw, _ = t2_equity(seg, 50) + sw = stats(eqw, win) + bhw = (seg[-1] / seg[0] - 1) * 100 + mark = "+" if sw["total"] > bhw else "-" + if sw["total"] > 0: + pos += 1 + else: + neg += 1 + print(f" {i:>4}..{i+win}: T2 {sw['total']:+7.1f}% vs BH {bhw:+7.1f}% " + f"(DD {sw['maxdd']:.0f}%) [{mark}]") + print(f" положительных окон: {pos}/{pos+neg}") + + # V7: калибровка SMA + print(f" калибровка SMA (5 лет):") + best = (0, -1e9) + for w in (20, 30, 40, 50, 60, 75, 100, 150): + eqw, _ = t2_equity(closes, w) + sw = stats(eqw, n) + mark = " <-- SMA50" if w == 50 else "" + print(f" SMA{w}: {sw['total']:+8.1f}% (CAGR {sw['cagr']:+5.1f}%, Sharpe {sw['sharpe']:.2f}){mark}") + if sw["total"] > best[1]: + best = (w, sw["total"]) + print(f" оптимум: SMA{best[0]} ({best[1]:+.1f}%)") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/test_executor.py b/scripts/test_executor.py new file mode 100644 index 000000000..9f369689b --- /dev/null +++ b/scripts/test_executor.py @@ -0,0 +1,156 @@ +#!/usr/bin/env python3 +"""Tests for run_t2_executor.py (real-money scaffold) with mocked transport. + +Run: pytest test_executor.py +""" + +import json +import sys +import time +from pathlib import Path + +HERE = Path(__file__).resolve().parent +sys.path.insert(0, str(HERE)) + +from run_t2_executor import ( # noqa: E402 + DEFAULT_CONFIG, State, compute_signal, fetch_closes, main, +) + +# ---------------------------------------------------------------- unit tests + +def _fake_klines_transport(close_series): + """Returns a transport returning Binance-style klines ending with close_series.""" + import base64 + + def t(url, timeout=25): + if "yahoo" in url: + raise RuntimeError("should not fall back") + # build N=400 klines ending with the given closes + base = 100.0 + closes = close_series + n = 400 + start = int(time.time() * 1000) - n * 86400000 + klines = [] + for i in range(n): + c = closes[i - (400 - len(closes))] if i >= 400 - len(closes) else base + klines.append([start + i * 86400000, c, c, c, c, "1000", start + i * 86400000, + "0", "100", "0", "0", "0"]) + return json.dumps(klines).encode() + + return t + + +def test_compute_signal_no_lookahead(): + rows = [{"date": f"2026-01-{i:02d}", "close": 100.0 + i} for i in range(1, 400)] + sig, s_in, s_out = compute_signal(rows, 50, 40) + assert sig == "LONG" # last close (498) > sma50 (~398.5) + assert abs(s_in - 474.5) < 1e-6 + rows2 = [{"date": f"2026-01-{i:02d}", "close": 500.0 - i} for i in range(1, 400)] + sig2, _, _ = compute_signal(rows2, 50, 40) + assert sig2 == "CASH" + + +def test_fetch_closes_binance(): + rows = fetch_closes("BTC/USDT", transport=_fake_klines_transport([200.0] * 5)) + assert len(rows) >= 60 + assert rows[-1]["close"] == 200.0 + + +def test_main_dry_no_orders(tmp_path): + """Dry mode must not call the exchange and must record state.""" + cfg = tmp_path / "cfg.json" + state_file = tmp_path / "state.json" + cfg.write_text(json.dumps({ + "symbols": ["BTC/USDT"], + "windows": {}, + "state_file": str(state_file), + "max_daily_orders": 4, + "api_key": "", "api_secret": "", + })) + # uptrend -> LONG + transport = _fake_klines_transport([110.0 + i * 0.1 for i in range(5)]) + old_argv = sys.argv + sys.argv = ["run_t2_executor.py", "--dry", "--config", str(cfg)] + try: + import run_t2_executor as m + m._default_transport = lambda *a, **k: transport("https://api.binance.com", 25) + rc = main() + finally: + sys.argv = old_argv + assert rc == 0 + st = json.loads(state_file.read_text()) + assert st["positions"]["BTC/USDT"] == "LONG" + assert st["orders_today"] == 1 + + +def test_main_live_executes_and_caps(tmp_path, monkeypatch): + """Live mode calls the exchange; daily cap respected.""" + cfg = tmp_path / "cfg.json" + state_file = tmp_path / "state.json" + cfg.write_text(json.dumps({ + "symbols": ["BTC/USDT", "ETH/USDT"], + "windows": {}, + "state_file": str(state_file), + "max_daily_orders": 1, + "api_key": "k", "api_secret": "s", + })) + transport = _fake_klines_transport([110.0 + i * 0.1 for i in range(5)]) + + class FakeEx: + def __init__(self): + self.orders = [] + + def fetch_balance(self): + return {"USDT": {"free": 10000.0}} + + def fetch_ticker(self, sym): + return {"last": 100.0} + + def create_market_buy_order(self, sym, amount): + self.orders.append(("buy", sym, amount)) + + def create_market_sell_order(self, sym, amount): + self.orders.append(("sell", sym, amount)) + + fake = FakeEx() + monkeypatch.setattr("run_t2_executor._make_exchange", lambda cfg: fake) + monkeypatch.setattr("run_t2_executor._default_transport", + lambda *a, **k: transport("https://api.binance.com", 25)) + old_argv = sys.argv + sys.argv = ["run_t2_executor.py", "--live", "--config", str(cfg)] + try: + rc = main() + finally: + sys.argv = old_argv + assert rc == 0 + assert len(fake.orders) == 1, f"cap=1 but {len(fake.orders)} orders" + assert fake.orders[0][0] == "buy" + st = json.loads(state_file.read_text()) + assert st["orders_today"] == 1 + # second run same day: cap reached -> no new orders + fake2 = FakeEx() + monkeypatch.setattr("run_t2_executor._make_exchange", lambda cfg: fake2) + sys.argv = ["run_t2_executor.py", "--live", "--config", str(cfg)] + try: + rc = main() + finally: + sys.argv = old_argv + assert len(fake2.orders) == 0 + assert rc == 0 + + +def test_live_requires_keys(tmp_path, capsys): + cfg = tmp_path / "cfg.json" + cfg.write_text(json.dumps({"symbols": ["BTC/USDT"], "api_key": "", "api_secret": ""})) + old_argv = sys.argv + sys.argv = ["run_t2_executor.py", "--live", "--config", str(cfg)] + try: + rc = main() + finally: + sys.argv = old_argv + assert rc == 2 + + +if __name__ == "__main__": + import pytest + sys.exit(pytest.main([__file__, "-v"])) diff --git a/tests/backtest_2y.py b/tests/backtest_2y.py new file mode 100644 index 000000000..d4f6c6cdd --- /dev/null +++ b/tests/backtest_2y.py @@ -0,0 +1,360 @@ +#!/usr/bin/env python3 +"""2-year backtest: 'what if trading started 2 years ago'. + +Collects 1h klines from Binance Futures for the universe (2 years, paginated), +then simulates the CURRENT Directional v2 engine rules on daily-aggregated or +hourly data as close as possible to the live config: + + - entry: BUY_LONG signal from record_and_analyze (replica) + ML gate + (CatBoost trained on the FIRST 70% of each symbol's history - honest OOS), + confidence >= 0.88, fixed $200/leg, max 1 global position; + - exits: TP 2% / SL 1% / trail 1.0 (current live config) + bearish exit; + - kill switches: drawdown & daily loss 0.25% of equity; + - costs: fee 0.15% + half-spread 0.05% + slippage 0.05% (round-trip ~0.5%). + +WINDOW: last 2 years (2024-08-15 .. 2026-08-15). Train/test per symbol: +train = first 70% of the 2y window, test = last 30% (~7 months OOS). + +Transport injectable for tests. Usage: + python backtest_2y.py [--symbols BTC ETH SOL] [--out data/reports/backtest_2y.md] +""" + +from __future__ import annotations + +import argparse +import json +import sys +import time +import urllib.request +from datetime import datetime, timezone +from pathlib import Path + +import numpy as np + +FAPI = "https://fapi.binance.com" +UA = {"User-Agent": "Mozilla/5.0"} + +PROFILE = { + "min_confidence": 0.88, + "ml_min_prob_up": 0.65, + "take_profit_pct": 0.02, + "stop_loss_pct": -0.01, + "trail_ratio": 1.0, + "min_hold_seconds": 7200, + "fee_rate": 0.0015, + "cost_rate": 0.0010, # half-spread + slippage + "max_global_positions": 1, + "max_drawdown_pct": 0.25, + "max_daily_loss_pct": 0.25, + "stake": 200.0, +} + +WINDOW_DAYS = 730 +TRAIN_FRAC = 0.70 + + +def default_transport(url: str, timeout: int = 25) -> bytes: + req = urllib.request.Request(url, headers=UA) + with urllib.request.urlopen(req, timeout=timeout) as r: + return r.read() + + +def fetch_klines(transport, symbol: str, days: int) -> list[dict]: + """Paginated 1h klines over the last `days` days.""" + out = [] + start = int(time.time() * 1000) - days * 86400 * 1000 + while True: + url = (f"{FAPI}/fapi/v1/klines?symbol={symbol}USDT&interval=1h" + f"&startTime={start}&limit=1500") + raw = transport(url) + rows = json.loads(raw.decode()) + if not rows: + break + for k in rows: + out.append({"ts": int(k[0]), "open": float(k[1]), "high": float(k[2]), + "low": float(k[3]), "close": float(k[4]), + "volume": float(k[5])}) + if len(rows) < 1500: + break + start = rows[-1][0] + 3600 * 1000 + time.sleep(0.15) + return out + + +# ------------------------------------------------------------- engine replica + + +def record_and_analyze(closes: list[float], ml_prob: float | None) -> dict: + """1:1 replica of the live signal engine (fast/bb/rsi/macd scoring).""" + prices = closes[-50:] + fast_period = min(3, len(prices)) + slow_period = min(10, len(prices)) + sma_fast = sum(prices[-fast_period:]) / fast_period + sma_slow = sum(prices[-slow_period:]) / slow_period + rsi = 50.0 + if len(prices) >= 5: + gains = [max(prices[i] - prices[i - 1], 0) for i in range(1, len(prices))] + losses = [max(prices[i - 1] - prices[i], 0) for i in range(1, len(prices))] + avg_gain = sum(gains[-14:]) / min(14, len(gains)) + avg_loss = sum(losses[-14:]) / min(14, len(losses)) + if avg_loss > 0: + rs = avg_gain / avg_loss + rsi = 100.0 - 100.0 / (1.0 + rs) + else: + rsi = 100.0 + period_bb = min(20, len(prices)) + sma_bb = sum(prices[-period_bb:]) / period_bb + var = sum((p - sma_bb) ** 2 for p in prices[-period_bb:]) / period_bb + std = var ** 0.5 + upper = sma_bb + 2 * std + lower = sma_bb - 2 * std + p12 = prices[-min(12, len(prices)):] + p26 = prices[-min(26, len(prices)):] + macd = sum(p12) / len(p12) - sum(p26) / len(p26) + cur = prices[-1] + bullish = bearish = 0 + if cur <= lower: + bullish += 2 + elif cur >= upper: + bearish += 2 + if rsi < 35: + bullish += 2 + elif rsi > 65: + bearish += 2 + if sma_fast > sma_slow: + bullish += 1 + elif sma_fast < sma_slow: + bearish += 1 + if macd > 0: + bullish += 1 + elif macd < 0: + bearish += 1 + if ml_prob is not None: + if ml_prob >= 0.65: + bullish += 1 + elif ml_prob <= 0.35: + bearish += 1 + if bullish >= 3 and bullish > bearish: + return {"signal": "BUY_LONG", + "confidence": round(min(0.99, 0.70 + bullish * 0.06), 2)} + if bearish >= 3 and bearish > bullish: + return {"signal": "SELL_SHORT", + "confidence": round(min(0.99, 0.70 + bearish * 0.06), 2)} + return {"signal": "HOLD", "confidence": 0.50} + + +def run_engine(series: dict[str, dict], probs: dict[str, np.ndarray], + start_idx: int) -> dict: + """Event-driven 1h simulation, max 1 global position, kill switches.""" + p = PROFILE + cash = 10000.0 + initial = cash + peak = cash + trades = [] + positions: dict[str, dict] = {} + history: dict[str, list[float]] = {s: [] for s in series} + day = "" + day_start = initial + + def equity() -> float: + eq = cash + for pos in positions.values(): + eq += pos["qty"] * pos["mark"] + return eq + + all_ts = sorted({int(ts) for s in series.values() + for ts in s["times"][start_idx:]}) + # warmup + for sym, s in series.items(): + history[sym] = [float(c) for c in s["closes"][:start_idx]] + + for ts in all_ts: + d = datetime.fromtimestamp(ts / 1000, tz=timezone.utc).strftime("%Y-%m-%d") + if d != day: + day = d + day_start = equity() + # exits + for sym, s in series.items(): + k = int(np.searchsorted(s["times"], ts)) + if k >= len(s["closes"]): + continue + px = float(s["closes"][k]) + history[sym].append(px) + pos = positions.get(sym) + if pos is None: + continue + pos["mark"] = px + entry = pos["entry"] + max_seen = max(pos["max_seen"], px) + pos["max_seen"] = max_seen + hi, lo = float(s["highs"][k]), float(s["lows"][k]) + exit_px = None + reason = "" + if lo <= entry * (1 + p["stop_loss_pct"]): + exit_px = entry * (1 + p["stop_loss_pct"]) * (1 - p["cost_rate"]) + reason = "stop_loss" + elif hi >= entry * (1 + p["take_profit_pct"]): + exit_px = entry * (1 + p["take_profit_pct"]) * (1 - p["cost_rate"]) + reason = "take_profit" + elif max_seen > entry * 1.01 and lo <= max_seen * p["trail_ratio"]: + exit_px = max_seen * p["trail_ratio"] * (1 - p["cost_rate"]) + reason = "trailing_stop" + else: + ml = float(probs[sym][k]) if k < len(probs[sym]) else None + an = record_and_analyze(history[sym], ml) + if (an["signal"] == "SELL_SHORT" + and an["confidence"] >= p["min_confidence"] + and ml is not None and ml <= 0.40 + and (ts - pos["opened_at"]) >= p["min_hold_seconds"] * 1000): + exit_px = px * (1 - p["cost_rate"]) + reason = "bearish_exit" + if exit_px is not None: + proceeds = exit_px * pos["qty"] + net = proceeds - pos["invested"] - exit_px * pos["qty"] * p["fee_rate"] + cash += proceeds - exit_px * pos["qty"] * p["fee_rate"] + trades.append({"sym": sym, "net": net, "reason": reason, + "opened_at": pos["opened_at"], "ts": ts}) + del positions[sym] + # entries + eq = equity() + peak = max(peak, eq) + dd = max(0.0, (initial - eq) / initial * 100.0) + daily = max(0.0, (day_start - eq) / day_start * 100.0) + if dd >= p["max_drawdown_pct"] or daily >= p["max_daily_loss_pct"]: + continue + for sym, s in series.items(): + if len(positions) >= p["max_global_positions"]: + break + k = int(np.searchsorted(s["times"], ts)) + if k >= len(s["closes"]): + continue + px = float(s["closes"][k]) + ml = float(probs[sym][k]) if k < len(probs[sym]) else None + an = record_and_analyze(history[sym], ml) + if an["signal"] != "BUY_LONG" or an["confidence"] < p["min_confidence"]: + continue + if ml is None or ml < p["ml_min_prob_up"]: + continue + invested = min(cash * 0.2, p["stake"]) + if invested < 10: + continue + exec_px = px * (1 + p["cost_rate"]) + qty = (invested - invested * p["fee_rate"]) / exec_px + cash -= invested + positions[sym] = {"entry": px, "qty": qty, "invested": invested, + "max_seen": px, "opened_at": ts, "mark": px} + final = equity() + return {"initial": initial, "final": final, "pnl": final - initial, + "trades": trades} + + +def build_features(closes: np.ndarray) -> np.ndarray: + """13 scale-free features (same as live ML model).""" + n = len(closes) + out = np.full((n, 13), np.nan) + for i in range(24, n): + c = closes[max(0, i - 100):i + 1] + ret1 = c[-1] / c[-2] - 1 if len(c) > 1 else 0 + ret3 = c[-1] / c[-4] - 1 if len(c) > 3 else 0 + ret6 = c[-1] / c[-7] - 1 if len(c) > 6 else 0 + ret12 = c[-1] / c[-13] - 1 if len(c) > 12 else 0 + ret24 = c[-1] / c[-25] - 1 if len(c) > 24 else 0 + chg = np.diff(c) + up = np.clip(chg, 0, None) + dn = np.clip(-chg, 0, None) + ag = up[-14:].mean() if len(up) >= 14 else up.mean() + al = dn[-14:].mean() if len(dn) >= 14 else dn.mean() + rsi = 100.0 - 100.0 / (1 + ag / (al + 1e-9)) if al > 0 else 100.0 + sma20 = c[-20:].mean() if len(c) >= 20 else c.mean() + sd20 = c[-20:].std() if len(c) >= 20 else 0.0 + bb_pos = (c[-1] - sma20 + 2 * sd20) / (4 * sd20 + 1e-9) + ema12 = float(np.mean(c[-12:])) + ema26 = float(np.mean(c[-26:])) + macd_norm = (ema12 - ema26) / c[-1] + ema_gap = (ema12 - ema26) / c[-1] + vol = np.abs(chg[-20:]).mean() if len(chg) >= 20 else 0.0 + vol_now = abs(chg[-1]) if len(chg) else 0.0 + vol_ratio = vol_now / (vol + 1e-9) + out[i] = [ret1, ret3, ret6, ret12, ret24, rsi, bb_pos, macd_norm, ema_gap, + vol_ratio, 0.0, (c[-1] - c.min()) / (c.max() - c.min() + 1e-9), + (c[-1] - c[-2]) / c[-2] if len(c) > 1 else 0] + return out + + +def train_and_predict(series: dict[str, dict]) -> dict[str, np.ndarray]: + """Per-symbol CatBoost on first 70%, predict on the rest (OOS).""" + from catboost import CatBoostClassifier + + probs: dict[str, np.ndarray] = {} + for sym, s in series.items(): + closes = s["closes"] + n = len(closes) + cut = int(n * TRAIN_FRAC) + X = build_features(closes) + y = (np.roll(closes, -1) > closes).astype(int) + y[-1] = 0 + tr = slice(100, cut - 48) + if np.unique(y[tr]).size < 2: + probs[sym] = np.full(n, 0.5) + continue + m = CatBoostClassifier(iterations=200, depth=4, learning_rate=0.05, + loss_function="Logloss", eval_metric="AUC", + random_seed=42, verbose=0) + ok = ~np.isnan(X[tr]).any(axis=1) + m.fit(X[tr][ok], y[tr][ok]) + p = m.predict_proba(X)[:, 1] + p[:cut] = np.nan + probs[sym] = p + return probs + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--symbols", nargs="+", + default=["BTC", "ETH", "SOL", "XRP", "BNB", "DOGE", "ADA", "LINK"]) + ap.add_argument("--transport", default=None) + ap.add_argument("--out", type=Path, default=Path("data/reports/backtest_2y.md")) + args = ap.parse_args() + + transport = default_transport if args.transport is None else args.transport + print(f"сбор данных: {len(args.symbols)} активов x {WINDOW_DAYS} дней...", flush=True) + series: dict[str, dict] = {} + for sym in args.symbols: + rows = fetch_klines(transport, sym, WINDOW_DAYS) + if len(rows) < 1000: + print(f" {sym}: мало данных ({len(rows)})", flush=True) + continue + series[sym] = { + "closes": np.array([r["close"] for r in rows]), + "highs": np.array([r["high"] for r in rows]), + "lows": np.array([r["low"] for r in rows]), + "times": np.array([r["ts"] for r in rows]), + } + print(f" {sym}: {len(rows)} баров", flush=True) + print(f"готово серий: {len(series)}", flush=True) + + probs = train_and_predict(series) + # OOS: только последние 30% окна + start_idx = int(len(series[args.symbols[0]]["closes"]) * TRAIN_FRAC) + res = run_engine(series, probs, start_idx) + trades = res["trades"] + wins = [t for t in trades if t["net"] > 0] + gw = sum(t["net"] for t in wins) + gl = -sum(t["net"] for t in trades if t["net"] < 0) + print(f"\nРЕЗУЛЬТАТ (OOS, последние ~30% из 2 лет):") + print(f" сделок: {len(trades)}, winrate: {len(wins)/len(trades)*100:.1f}%" + if trades else " сделок: 0") + print(f" PnL: {res['pnl']:+.2f}$ (старт $10k -> финал ${res['final']:.2f})") + if gl > 0: + print(f" profit factor: {gw/gl:.2f}") + from collections import Counter + print(f" причины выхода: {dict(Counter(t['reason'] for t in trades))}") + # BH сравнение + bh = (series[args.symbols[0]]["closes"][-1] / + series[args.symbols[0]]["closes"][start_idx] - 1) * 100 + print(f" BTC buy&hold за OOS-окно: {bh:+.1f}%") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/tests/fake_quant_monthly_backtest.py b/tests/fake_quant_monthly_backtest.py new file mode 100644 index 000000000..01f4a8839 --- /dev/null +++ b/tests/fake_quant_monthly_backtest.py @@ -0,0 +1,43 @@ +"""Fake quant_monthly_backtest for local testing: synthetic prices where news +sentiment correlates with 1h forward moves (deterministic, end-to-end check).""" +from __future__ import annotations + +import numpy as np +import pandas as pd + +START = pd.Timestamp("2025-09-01", tz="UTC") +HOURS = 8760 +SYMBOLS = ["BTC", "ETH", "SOL", "XRP"] + + +def _build(sym: str, bumps: dict[int, float]) -> pd.DataFrame: + """bumps: hour-index -> daily multiplier applied from that hour on.""" + n = HOURS + ts = [int((START + pd.Timedelta(hours=h)).timestamp() * 1000) for h in range(n)] + close = np.full(n, 100.0) + drift = 0.0001 + for h in range(1, n): + b = bumps.get(h, drift) + close[h] = close[h - 1] * (1.0 + b) + df = pd.DataFrame({ + "timestamp_ms": ts, + "open": close * 0.999, + "high": close * 1.001, + "low": close * 0.999, + "close": close, + "volume": np.full(n, 1000.0), + }) + return df + + +def load_symbols(venue: str = "binance"): + """Return synthetic prices. Bumps are injected by the test before calling.""" + global _bumps + bumps = globals().get("_bumps", {}) + out = {s: _build(s, bumps.get(s, {})) for s in SYMBOLS} + used = {s: "binance" for s in SYMBOLS} + return out, used + + +def set_bumps(bumps: dict[str, dict[int, float]]) -> None: + globals()["_bumps"] = bumps diff --git a/tests/fixtures/news_historical_sample.jsonl b/tests/fixtures/news_historical_sample.jsonl new file mode 100644 index 000000000..b71cfe928 --- /dev/null +++ b/tests/fixtures/news_historical_sample.jsonl @@ -0,0 +1,24 @@ +{"ts": 1756728000.0, "date": "2025-09-01 12:00", "source": "cointelegraph_arch", "title": "Bitcoin ETF inflows surge as institutional demand grows", "url": "https://cointelegraph.com/news/art-0", "pub": "Mon, 01 Sep 2025 12:00:00 +0000", "snapshot": "20260101000000"} +{"ts": 1756738800.0, "date": "2025-09-01 15:00", "source": "cointelegraph_arch", "title": "Ethereum gas fees hit yearly low after Dencun upgrade", "url": "https://cointelegraph.com/news/art-1", "pub": "Mon, 01 Sep 2025 15:00:00 +0000", "snapshot": "20260101000000"} +{"ts": 1756814400.0, "date": "2025-09-02 12:00", "source": "cointelegraph_arch", "title": "Solana network outage sparks selloff fears", "url": "https://cointelegraph.com/news/art-2", "pub": "Tue, 02 Sep 2025 12:00:00 +0000", "snapshot": "20260101000000"} +{"ts": 1756825200.0, "date": "2025-09-02 15:00", "source": "cointelegraph_arch", "title": "XRP gains as Ripple expands partnerships in Asia", "url": "https://cointelegraph.com/news/art-3", "pub": "Tue, 02 Sep 2025 15:00:00 +0000", "snapshot": "20260101000000"} +{"ts": 1756900800.0, "date": "2025-09-03 12:00", "source": "cointelegraph_arch", "title": "Binance faces regulatory probe in Europe", "url": "https://cointelegraph.com/news/art-4", "pub": "Wed, 03 Sep 2025 12:00:00 +0000", "snapshot": "20260101000000"} +{"ts": 1756911600.0, "date": "2025-09-03 15:00", "source": "cointelegraph_arch", "title": "Cardano announces major upgrade to smart contracts", "url": "https://cointelegraph.com/news/art-5", "pub": "Wed, 03 Sep 2025 15:00:00 +0000", "snapshot": "20260101000000"} +{"ts": 1756987200.0, "date": "2025-09-04 12:00", "source": "cointelegraph_arch", "title": "Dogecoin whales accumulate ahead of rally", "url": "https://cointelegraph.com/news/art-6", "pub": "Thu, 04 Sep 2025 12:00:00 +0000", "snapshot": "20260101000000"} +{"ts": 1756998000.0, "date": "2025-09-04 15:00", "source": "cointelegraph_arch", "title": "Tron founder denies market manipulation claims", "url": "https://cointelegraph.com/news/art-7", "pub": "Thu, 04 Sep 2025 15:00:00 +0000", "snapshot": "20260101000000"} +{"ts": 1757073600.0, "date": "2025-09-05 12:00", "source": "cointelegraph_arch", "title": "Bitcoin miners capitulate as hashprice drops", "url": "https://cointelegraph.com/news/art-8", "pub": "Fri, 05 Sep 2025 12:00:00 +0000", "snapshot": "20260101000000"} +{"ts": 1757084400.0, "date": "2025-09-05 15:00", "source": "cointelegraph_arch", "title": "Ethereum staking yields rise to 5%", "url": "https://cointelegraph.com/news/art-9", "pub": "Fri, 05 Sep 2025 15:00:00 +0000", "snapshot": "20260101000000"} +{"ts": 1757160000.0, "date": "2025-09-06 12:00", "source": "cointelegraph_arch", "title": "Solana DeFi total value locked reaches record high", "url": "https://cointelegraph.com/news/art-10", "pub": "Sat, 06 Sep 2025 12:00:00 +0000", "snapshot": "20260101000000"} +{"ts": 1757170800.0, "date": "2025-09-06 15:00", "source": "cointelegraph_arch", "title": "Ripple CTO discusses stablecoin launch timeline", "url": "https://cointelegraph.com/news/art-11", "pub": "Sat, 06 Sep 2025 15:00:00 +0000", "snapshot": "20260101000000"} +{"ts": 1757246400.0, "date": "2025-09-07 12:00", "source": "cointelegraph_arch", "title": "BNB Chain transaction fees slashed by 30%", "url": "https://cointelegraph.com/news/art-12", "pub": "Sun, 07 Sep 2025 12:00:00 +0000", "snapshot": "20260101000000"} +{"ts": 1757257200.0, "date": "2025-09-07 15:00", "source": "cointelegraph_arch", "title": "Crypto market cap falls below $2 trillion", "url": "https://cointelegraph.com/news/art-13", "pub": "Sun, 07 Sep 2025 15:00:00 +0000", "snapshot": "20260101000000"} +{"ts": 1757332800.0, "date": "2025-09-08 12:00", "source": "cointelegraph_arch", "title": "Bitcoin dominance grows as altcoins bleed", "url": "https://cointelegraph.com/news/art-14", "pub": "Mon, 08 Sep 2025 12:00:00 +0000", "snapshot": "20260101000000"} +{"ts": 1757343600.0, "date": "2025-09-08 15:00", "source": "cointelegraph_arch", "title": "Ethereum developers delay Pectra upgrade", "url": "https://cointelegraph.com/news/art-15", "pub": "Mon, 08 Sep 2025 15:00:00 +0000", "snapshot": "20260101000000"} +{"ts": 1757419200.0, "date": "2025-09-09 12:00", "source": "cointelegraph_arch", "title": "Solana memecoin frenzy drives network activity", "url": "https://cointelegraph.com/news/art-16", "pub": "Tue, 09 Sep 2025 12:00:00 +0000", "snapshot": "20260101000000"} +{"ts": 1757430000.0, "date": "2025-09-09 15:00", "source": "cointelegraph_arch", "title": "Litecoin halving expected in 3 months", "url": "https://cointelegraph.com/news/art-17", "pub": "Tue, 09 Sep 2025 15:00:00 +0000", "snapshot": "20260101000000"} +{"ts": 1757505600.0, "date": "2025-09-10 12:00", "source": "cointelegraph_arch", "title": "Polkadot parachain auctions draw new projects", "url": "https://cointelegraph.com/news/art-18", "pub": "Wed, 10 Sep 2025 12:00:00 +0000", "snapshot": "20260101000000"} +{"ts": 1757516400.0, "date": "2025-09-10 15:00", "source": "cointelegraph_arch", "title": "Chainlink partners with major bank for data feeds", "url": "https://cointelegraph.com/news/art-19", "pub": "Wed, 10 Sep 2025 15:00:00 +0000", "snapshot": "20260101000000"} +{"ts": 1757592000.0, "date": "2025-09-11 12:00", "source": "cointelegraph_arch", "title": "Avalanche subnet gaming launch boosts token", "url": "https://cointelegraph.com/news/art-20", "pub": "Thu, 11 Sep 2025 12:00:00 +0000", "snapshot": "20260101000000"} +{"ts": 1757602800.0, "date": "2025-09-11 15:00", "source": "cointelegraph_arch", "title": "Uniswap v4 deployment attracts liquidity providers", "url": "https://cointelegraph.com/news/art-21", "pub": "Thu, 11 Sep 2025 15:00:00 +0000", "snapshot": "20260101000000"} +{"ts": 1757678400.0, "date": "2025-09-12 12:00", "source": "cointelegraph_arch", "title": "Near Protocol AI agents gain developer traction", "url": "https://cointelegraph.com/news/art-22", "pub": "Fri, 12 Sep 2025 12:00:00 +0000", "snapshot": "20260101000000"} +{"ts": 1757689200.0, "date": "2025-09-12 15:00", "source": "cointelegraph_arch", "title": "Sui network processes record transaction volume", "url": "https://cointelegraph.com/news/art-23", "pub": "Fri, 12 Sep 2025 15:00:00 +0000", "snapshot": "20260101000000"} diff --git a/tests/fixtures/rss_sample.xml b/tests/fixtures/rss_sample.xml new file mode 100644 index 000000000..ee1ec8804 --- /dev/null +++ b/tests/fixtures/rss_sample.xml @@ -0,0 +1,21 @@ + + + + Test Feed + + Bitcoin to $1M by 2030 is mathematically impossible says analyst + https://cointelegraph.com/news/bitcoin-1m-impossible + Sat, 15 Aug 2026 13:03:39 +0000 + + + Solana treasury earns $2.5M in staking rewards + https://cointelegraph.com/news/solana-staking + Fri, 14 Aug 2026 09:12:00 +0000 + + + + https://cointelegraph.com/news/empty-title + Thu, 13 Aug 2026 10:00:00 +0000 + + + diff --git a/tests/macro/analyze_predictive.py b/tests/macro/analyze_predictive.py new file mode 100644 index 000000000..d18b389b3 --- /dev/null +++ b/tests/macro/analyze_predictive.py @@ -0,0 +1,136 @@ +#!/usr/bin/env python3 +"""Predictive-power analysis: do macro/on-chain/derivatives series predict BTC? + +Builds a merged dataset (daily and hourly), computes LAGGED features +(feature at t-1 -> BTC return at t), then: + - Pearson correlation of each feature with forward returns (1d / 24h); + - event test: top-quintile vs bottom-quintile of feature -> average forward + return difference (robust to noise); + - honest note: correlations on overlapping windows are indicative, not proof. + +Usage: + python analyze_predictive.py [--data-dir data/market_data] [--deriv data/derivatives] +""" + +from __future__ import annotations + +import argparse +import json +import time +from pathlib import Path + +import numpy as np + + +def load_series(path: Path) -> dict[int, float]: + out = {} + if not path.exists(): + return out + for line in path.read_text().splitlines(): + try: + r = json.loads(line) + # normalize to UTC midnight so series with different close hours align + out[(int(r["ts"]) // 86400) * 86400] = float(r["value"]) + except Exception: + continue + return out + + +def load_deriv(path: Path, key: str) -> dict[int, float]: + out = {} + if not path.exists(): + return out + rows = json.loads(path.read_text()) + if key == "klines": + for r in rows: + out[int(r["open_ts"]) // 1000] = r["taker_buy_ratio"] + elif key in ("global_lsr", "top_lsr"): + for r in rows: + out[int(r["ts"]) // 1000] = r["lsr"] + elif key == "oi": + for r in rows: + out[int(r["ts"]) // 1000] = r["oi"] + return out + + +def align(feature: dict[int, float], target: dict[int, float], lag_hours: int, + step_hours: int) -> tuple[np.ndarray, np.ndarray]: + """feature at t-lag vs target return over [t, t+step].""" + xs, ys = [], [] + for t in sorted(feature): + tt = t + lag_hours * 3600 + t2 = tt + step_hours * 3600 + if tt in target and t2 in target and target[tt] > 0: + ret = (target[t2] / target[tt] - 1.0) * 100.0 + xs.append(feature[t]) + ys.append(ret) + return np.array(xs), np.array(ys) + + +def test_feature(name: str, feat: dict[int, float], price: dict[int, float], + lag_h: int, step_h: int, min_n: int = 30): + x, y = align(feat, price, lag_h, step_h) + if len(x) < min_n: + print(f" {name:<18} lag{lag_h}h step{step_h}h: n={len(x)} (мало)") + return None + corr = float(np.corrcoef(x, y)[0, 1]) if np.std(x) > 0 and np.std(y) > 0 else 0.0 + # квинтильный тест + q20, q80 = np.percentile(x, 20), np.percentile(x, 80) + lo = y[x <= q20].mean() if (x <= q20).any() else float("nan") + hi = y[x >= q80].mean() if (x >= q80).any() else float("nan") + diff = hi - lo if not (np.isnan(hi) or np.isnan(lo)) else float("nan") + star = " ***" if abs(corr) > 0.15 else (" **" if abs(corr) > 0.10 else "") + print(f" {name:<18} lag{lag_h}h step{step_h}h: n={len(x):>4} corr={corr:+.3f}{star} " + f"Q20={lo:+.3f}% Q80={hi:+.3f}% diff={diff:+.3f}%") + return {"name": name, "corr": corr, "diff": diff, "n": len(x)} + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--data-dir", type=Path, default=Path("data/market_data")) + ap.add_argument("--deriv", type=Path, default=Path("data/derivatives")) + args = ap.parse_args() + + price = load_series(args.data_dir / "BTC_USD.jsonl") + print(f"BTC_USD: {len(price)} дней", flush=True) + + # --- daily macro/on-chain: lag 1d, step 1d --- + print("\n=== Daily: фича (t-1) -> BTC ret (t..t+1d) ===") + daily_feats = { + "DXY": load_series(args.data_dir / "DXY.jsonl"), + "SPX": load_series(args.data_dir / "SPX.jsonl"), + "NDX": load_series(args.data_dir / "NDX.jsonl"), + "IBIT": load_series(args.data_dir / "IBIT.jsonl"), + "hashrate": load_series(args.data_dir / "hashrate.jsonl"), + "n_tx": load_series(args.data_dir / "n_tx.jsonl"), + "n_unique_addr": load_series(args.data_dir / "n_unique_addr.jsonl"), + "tx_vol_usd": load_series(args.data_dir / "tx_vol_usd.jsonl"), + } + for name, f in daily_feats.items(): + test_feature(name, f, price, lag_h=24, step_h=24) + + # --- hourly derivatives: lag 1h, step 1h / 4h / 24h --- + print("\n=== Hourly (деривативы): фича (t-1) -> BTC ret ===") + der_feats = { + "taker_buy_ratio": load_deriv(args.deriv / "BTC_klines.json", "klines"), + "global_lsr": load_deriv(args.deriv / "BTC_global_lsr.json", "global_lsr"), + "top_lsr": load_deriv(args.deriv / "BTC_top_lsr.json", "top_lsr"), + "oi": load_deriv(args.deriv / "BTC_oi.json", "oi"), + } + hprice = load_series(args.data_dir / "BTC_USD_1h.jsonl") if (args.data_dir / "BTC_USD_1h.jsonl").exists() else {} + print(f" (часовой BTC: {len(hprice)} баров)", flush=True) + for name, f in der_feats.items(): + if not hprice: + print(f" {name}: нет часовых цен") + continue + for step in (1, 4, 24): + test_feature(name, f, hprice, lag_h=1, step_h=step, min_n=50) + + print("\n=== Интерпретация ===") + print("corr |>0.10| — слабый сигнал; |>0.15| — заметный; diff>0.3% — квинтильный спред.") + print("Корреляции лаговых фич с будущей доходностью — это и есть предсказательная проверка.") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/tests/macro/fetch_derivatives.py b/tests/macro/fetch_derivatives.py new file mode 100644 index 000000000..1c56cd64d --- /dev/null +++ b/tests/macro/fetch_derivatives.py @@ -0,0 +1,140 @@ +#!/usr/bin/env python3 +"""Derivatives data collector (Binance Futures) + feature builders. + +Collects (per symbol): + - 1h klines with taker buy volume -> taker_buy_ratio (aggressor imbalance) + - globalLongShortAccountRatio (account-position skew) + - topLongShortAccountRatio (top-trader skew) + - openInterestHist (OI change / OI delta) + - premiumIndex (futures basis vs index) + +NOTE: Binance is geo-blocked from some networks (HTTP 451). The collector takes +an injectable transport: tests use fixtures; production runs on a server where +the API is reachable. Historical depth: klines ~1500 bars/request (paginated), +ratios/OI ~30 days (API cap). + +Usage: + python fetch_derivatives.py --symbol BTC [--hours 720] [--out data/derivatives] +""" + +from __future__ import annotations + +import argparse +import json +import time +import urllib.request +from pathlib import Path + +FAPI = "https://fapi.binance.com" +UA = {"User-Agent": "Mozilla/5.0"} + + +def default_transport(url: str, timeout: int = 25) -> bytes: + req = urllib.request.Request(url, headers=UA) + with urllib.request.urlopen(req, timeout=timeout) as r: + return r.read() + + +def parse_klines(raw: bytes) -> list[dict]: + """Binance kline -> rows with taker-buy ratio.""" + rows = [] + for k in json.loads(raw.decode()): + vol = float(k[5]) + taker = float(k[9]) + rows.append({ + "open_ts": int(k[0]), + "close": float(k[4]), + "volume": vol, + "taker_buy": taker, + "taker_buy_ratio": (taker / vol) if vol > 0 else 0.5, + }) + return rows + + +def parse_lsr(raw: bytes) -> list[dict]: + rows = [] + for r in json.loads(raw.decode()): + rows.append({ + "ts": int(r["timestamp"]), + "lsr": float(r["longShortRatio"]), + "long_share": float(r["longAccount"]), + }) + return rows + + +def parse_oi(raw: bytes) -> list[dict]: + rows = [] + for r in json.loads(raw.decode()): + rows.append({"ts": int(r["timestamp"]), "oi": float(r["sumOpenInterest"])}) + return rows + + +class DerivCollector: + def __init__(self, transport=None): + self.transport = transport or default_transport + + def klines(self, sym: str, hours: int) -> list[dict]: + """Paginated 1h klines (max 1500/request).""" + out = [] + start = int(time.time() * 1000) - hours * 3600 * 1000 + while True: + url = (f"{FAPI}/fapi/v1/klines?symbol={sym}USDT&interval=1h" + f"&startTime={start}&limit=1500") + rows = parse_klines(self.transport(url)) + if not rows: + break + out.extend(rows) + if len(rows) < 1500: + break + start = rows[-1]["open_ts"] + 3600 * 1000 + time.sleep(0.2) + return out + + def global_lsr(self, sym: str, period: str = "1h") -> list[dict]: + url = (f"{FAPI}/futures/data/globalLongShortAccountRatio?symbol={sym}USDT" + f"&period={period}&limit=500") + return parse_lsr(self.transport(url)) + + def top_lsr(self, sym: str, period: str = "1h") -> list[dict]: + url = (f"{FAPI}/futures/data/topLongShortAccountRatio?symbol={sym}USDT" + f"&period={period}&limit=500") + return parse_lsr(self.transport(url)) + + def oi_hist(self, sym: str, period: str = "1h") -> list[dict]: + url = (f"{FAPI}/futures/data/openInterestHist?symbol={sym}USDT" + f"&period={period}&limit=500") + return parse_oi(self.transport(url)) + + def premium(self, sym: str) -> dict: + url = f"{FAPI}/fapi/v1/premiumIndex?symbol={sym}USDT" + raw = json.loads(self.transport(url).decode()) + return {"ts": int(raw["time"]), "mark": float(raw["markPrice"]), + "index": float(raw["indexPrice"])} + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--symbol", default="BTC") + ap.add_argument("--hours", type=int, default=720) + ap.add_argument("--out", type=Path, default=Path("data/derivatives")) + args = ap.parse_args() + + c = DerivCollector() + args.out.mkdir(parents=True, exist_ok=True) + data = { + "klines": c.klines(args.symbol, args.hours), + "global_lsr": c.global_lsr(args.symbol), + "top_lsr": c.top_lsr(args.symbol), + "oi": c.oi_hist(args.symbol), + "premium": c.premium(args.symbol), + } + for name, rows in data.items(): + with open(args.out / f"{args.symbol}_{name}.json", "w") as f: + json.dump(rows, f) + n = len(rows) if isinstance(rows, list) else 1 + print(f"{name}: {n} записей", flush=True) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/tests/macro/fetch_market_data.py b/tests/macro/fetch_market_data.py new file mode 100644 index 000000000..896a88500 --- /dev/null +++ b/tests/macro/fetch_market_data.py @@ -0,0 +1,139 @@ +#!/usr/bin/env python3 +"""Macro + on-chain data collector (Yahoo Finance + blockchain.info). + +Collects daily series into data/market_data/{name}.jsonl: + - DXY, SPX, NDX, BTC_USD, IBIT (Yahoo Finance close prices) + - hashrate, n_tx, n_unique_addr, tx_vol_usd, mempool (blockchain.info) +Transport is injectable (for tests); real run uses urllib. + +Usage: + python fetch_market_data.py [--out-dir data/market_data] [--days 400] +""" + +from __future__ import annotations + +import argparse +import json +import time +import urllib.request +from pathlib import Path + +YAHOO = "https://query1.finance.yahoo.com/v8/finance/chart/{}?range={}d&interval=1d" +BLOCKCHAIN = "https://api.blockchain.info/charts/{}?timespan={}days&format=json" + +YAHOO_SERIES = { + "DXY": "DX-Y.NYB", + "SPX": "^GSPC", + "NDX": "^IXIC", + "BTC_USD": "BTC-USD", + "IBIT": "IBIT", +} + +BLOCKCHAIN_SERIES = { + "hashrate": "hash-rate", + "n_tx": "n-transactions", + "n_unique_addr": "n-unique-addresses", + "tx_vol_usd": "estimated-transaction-volume-usd", + "mempool": "mempool-size", +} + +UA = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"} + + +def default_transport(url: str, timeout: int = 25) -> bytes: + req = urllib.request.Request(url, headers=UA) + with urllib.request.urlopen(req, timeout=timeout) as r: + return r.read() + + +class Collector: + def __init__(self, transport=None): + self.transport = transport or default_transport + + def fetch_yahoo(self, name: str, days: int) -> list[dict]: + url = YAHOO.format(YAHOO_SERIES[name], days) + raw = self.transport(url) + data = json.loads(raw.decode()) + res = data["chart"]["result"][0] + ts = res["timestamp"] + close = res["indicators"]["quote"][0]["close"] + rows = [] + for t, c in zip(ts, close): + if c is None: + continue + rows.append({"ts": int(t), "date": time.strftime("%Y-%m-%d", + time.gmtime(t)), "value": float(c)}) + return rows + + def fetch_blockchain(self, name: str, days: int) -> list[dict]: + url = BLOCKCHAIN.format(BLOCKCHAIN_SERIES[name], days) + raw = self.transport(url) + data = json.loads(raw.decode()) + rows = [] + for pt in data.get("values", []): + rows.append({"ts": int(pt["x"]), "date": time.strftime("%Y-%m-%d", + time.gmtime(pt["x"])), "value": float(pt["y"])}) + return rows + + def collect_all(self, days: int) -> dict[str, list[dict]]: + out: dict[str, list[dict]] = {} + for name in YAHOO_SERIES: + try: + out[name] = self.fetch_yahoo(name, days) + print(f"{name}: {len(out[name])} точек", flush=True) + except Exception as e: + print(f"{name}: FAIL {e}", flush=True) + time.sleep(0.4) + for name in BLOCKCHAIN_SERIES: + try: + out[name] = self.fetch_blockchain(name, days) + print(f"{name}: {len(out[name])} точек", flush=True) + except Exception as e: + print(f"{name}: FAIL {e}", flush=True) + time.sleep(0.4) + return out + + +def fetch_yahoo_hourly(transport, days: int) -> list[dict]: + """BTC-USD hourly closes (for derivatives alignment).""" + url = "https://query1.finance.yahoo.com/v8/finance/chart/BTC-USD?range={}d&interval=1h".format(days) + raw = transport(url) + data = json.loads(raw.decode()) + res = data["chart"]["result"][0] + ts = res["timestamp"] + close = res["indicators"]["quote"][0]["close"] + rows = [] + for t, c in zip(ts, close): + if c is None: + continue + rows.append({"ts": int(t), "date": time.strftime("%Y-%m-%d %H:%M", + time.gmtime(t)), "value": float(c)}) + return rows + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--out-dir", type=Path, default=Path("data/market_data")) + ap.add_argument("--days", type=int, default=400) + ap.add_argument("--hourly", action="store_true", help="also fetch BTC-USD 1h") + args = ap.parse_args() + + c = Collector() + data = c.collect_all(args.days) + if args.hourly: + try: + data["BTC_USD_1h"] = fetch_yahoo_hourly(c.transport, 60) + print(f"BTC_USD_1h: {len(data['BTC_USD_1h'])} часов", flush=True) + except Exception as e: + print(f"BTC_USD_1h: FAIL {e}", flush=True) + args.out_dir.mkdir(parents=True, exist_ok=True) + for name, rows in data.items(): + with open(args.out_dir / f"{name}.jsonl", "w") as f: + for r in rows: + f.write(json.dumps(r) + "\n") + print(f"сохранено {len(data)} серий в {args.out_dir}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/tests/macro/fixtures/binance_klines.json b/tests/macro/fixtures/binance_klines.json new file mode 100644 index 000000000..f47740772 --- /dev/null +++ b/tests/macro/fixtures/binance_klines.json @@ -0,0 +1 @@ +[[1785600000000, "60000.0", "60500.0", "59900.0", "60300.0", "123.5", 1785603599999, "7400000.0", 3200, "66.2", "3980000.0", "0"], [1785603600000, "60300.0", "60700.0", "60200.0", "60600.0", "98.1", 1785607199999, "5930000.0", 2500, "48.0", "2900000.0", "0"], [1785607200000, "60600.0", "60400.0", "60100.0", "60200.0", "88.7", 1785610799999, "5350000.0", 2100, "30.1", "1820000.0", "0"]] \ No newline at end of file diff --git a/tests/macro/fixtures/binance_lsr.json b/tests/macro/fixtures/binance_lsr.json new file mode 100644 index 000000000..842acb2b4 --- /dev/null +++ b/tests/macro/fixtures/binance_lsr.json @@ -0,0 +1 @@ +[{"symbol": "BTCUSDT", "longShortRatio": "1.10", "longAccount": "0.52", "shortAccount": "0.48", "timestamp": 1785600000000}, {"symbol": "BTCUSDT", "longShortRatio": "0.95", "longAccount": "0.49", "shortAccount": "0.51", "timestamp": 1785603600000}, {"symbol": "BTCUSDT", "longShortRatio": "0.88", "longAccount": "0.47", "shortAccount": "0.53", "timestamp": 1785607200000}] \ No newline at end of file diff --git a/tests/macro/fixtures/binance_oi.json b/tests/macro/fixtures/binance_oi.json new file mode 100644 index 000000000..07316e5b8 --- /dev/null +++ b/tests/macro/fixtures/binance_oi.json @@ -0,0 +1 @@ +[{"symbol": "BTCUSDT", "sumOpenInterest": "105000.0", "sumOpenInterestValue": "6300000000.0", "timestamp": 1785600000000}, {"symbol": "BTCUSDT", "sumOpenInterest": "106200.0", "sumOpenInterestValue": "6430000000.0", "timestamp": 1785686400000}] \ No newline at end of file diff --git a/tests/macro/fixtures/binance_premium.json b/tests/macro/fixtures/binance_premium.json new file mode 100644 index 000000000..7cd02bb17 --- /dev/null +++ b/tests/macro/fixtures/binance_premium.json @@ -0,0 +1 @@ +{"symbol": "BTCUSDT", "markPrice": "60400.5", "indexPrice": "60399.9", "lastFundingRate": "0.0001", "time": 1785600000000} \ No newline at end of file diff --git a/tests/macro/fixtures/blockchain_chart.json b/tests/macro/fixtures/blockchain_chart.json new file mode 100644 index 000000000..be5ce625a --- /dev/null +++ b/tests/macro/fixtures/blockchain_chart.json @@ -0,0 +1 @@ +{"status": "ok", "values": [{"x": 1785600000, "y": 350000.0}, {"x": 1785686400, "y": 362000.5}, {"x": 1785772800, "y": 355100.25}]} \ No newline at end of file diff --git a/tests/macro/fixtures/yahoo_chart.json b/tests/macro/fixtures/yahoo_chart.json new file mode 100644 index 000000000..bdba3ca20 --- /dev/null +++ b/tests/macro/fixtures/yahoo_chart.json @@ -0,0 +1 @@ +{"chart": {"result": [{"meta": {"symbol": "BTC-USD"}, "timestamp": [1785600000, 1785686400, 1785772800], "indicators": {"quote": [{"close": [60000.0, 61000.5, 60500.25]}]}}], "error": null}} \ No newline at end of file diff --git a/tests/macro/test_macro_pipeline.py b/tests/macro/test_macro_pipeline.py new file mode 100644 index 000000000..5e6c28d34 --- /dev/null +++ b/tests/macro/test_macro_pipeline.py @@ -0,0 +1,168 @@ +#!/usr/bin/env python3 +"""Local tests for macro/derivatives pipeline (before prod deploy).""" +from __future__ import annotations + +import json +import sys +import tempfile +from pathlib import Path + +import numpy as np + +T = Path(__file__).resolve().parent +sys.path.insert(0, str(T)) + +from fetch_market_data import Collector +from fetch_derivatives import parse_klines, parse_lsr, parse_oi, DerivCollector +from analyze_predictive import align, test_feature + +PASS = 0 +FAIL = 0 + + +def check(name: str, cond: bool, detail: str = ""): + global PASS, FAIL + if cond: + PASS += 1 + print(f" ✅ {name}") + else: + FAIL += 1 + print(f" ❌ {name} {detail}") + + +def fixture_transport(fixtures: dict[str, Path]): + def transport(url: str, timeout: int = 25) -> bytes: + for key, p in fixtures.items(): + if key in url: + return p.read_bytes() + raise AssertionError(f"no fixture for {url}") + return transport + + +def test_yahoo_parse(): + print("\n[M1] парсинг Yahoo chart") + fx = fixture_transport({"chart": T / "fixtures" / "yahoo_chart.json"}) + c = Collector(transport=fx) + rows = c.fetch_yahoo("BTC_USD", 10) + check("3 точки", len(rows) == 3) + check("значения", [r["value"] for r in rows] == [60000.0, 61000.5, 60500.25]) + check("даты корректны", rows[0]["date"] == "2026-08-01") + + +def test_blockchain_parse(): + print("\n[M2] парсинг blockchain.info") + fx = fixture_transport({"charts/hash-rate": T / "fixtures" / "blockchain_chart.json"}) + c = Collector(transport=fx) + rows = c.fetch_blockchain("hashrate", 10) + check("3 точки", len(rows) == 3) + check("значения", rows[1]["value"] == 362000.5) + + +def test_binance_parse(): + print("\n[M3] парсинг Binance (klines/lsr/oi)") + k = parse_klines((T / "fixtures" / "binance_klines.json").read_bytes()) + check("3 бара", len(k) == 3) + check("taker_buy_ratio 1-й бар", abs(k[0]["taker_buy_ratio"] - 66.2 / 123.5) < 1e-9) + check("taker_buy_ratio 2-й бар", abs(k[1]["taker_buy_ratio"] - 48.0 / 98.1) < 1e-9) + lsr = parse_lsr((T / "fixtures" / "binance_lsr.json").read_bytes()) + check("lsr: 3 записи, первая 1.10", len(lsr) == 3 and lsr[0]["lsr"] == 1.10) + oi = parse_oi((T / "fixtures" / "binance_oi.json").read_bytes()) + check("oi: 2 записи, oi 106200", len(oi) == 2 and oi[1]["oi"] == 106200.0) + + +def test_deriv_collector(): + print("\n[M4] DerivCollector с фикстурами") + fx = fixture_transport({ + "klines": T / "fixtures" / "binance_klines.json", + "globalLongShortAccountRatio": T / "fixtures" / "binance_lsr.json", + "openInterestHist": T / "fixtures" / "binance_oi.json", + "premiumIndex": T / "fixtures" / "binance_premium.json", + }) + dc = DerivCollector(transport=fx) + check("klines", len(dc.klines("BTC", 10)) == 3) + check("global_lsr", len(dc.global_lsr("BTC")) == 3) + check("oi", len(dc.oi_hist("BTC")) == 2) + p = dc.premium("BTC") + check("premium mark", p["mark"] == 60400.5 and p["index"] == 60399.9) + + +def test_align_no_lookahead(): + print("\n[M5] align: лаги без lookahead") + # цена: 3 дня; фича: известна на t0 + price = {1785600000: 100.0, 1785686400: 105.0, 1785772800: 103.0} + feat = {1785600000: 1.0} + x, y = align(feat, price, lag_hours=24, step_hours=24) + check("1 пара (t0 фича -> ret t1..t2)", len(x) == 1 and len(y) == 1) + check("ret = (103/105-1) = -1.905%", abs(y[0] - (-1.90476)) < 1e-3) + # лаг 48ч: фича t0 -> ret t2..t3 (нет t3) -> пусто + x2, y2 = align(feat, price, lag_hours=48, step_hours=24) + check("лаг 48ч без будущего -> пусто", len(x2) == 0) + + +def test_synthetic_signal(): + print("\n[M6] синтетика: фича коррелирует с будущим ret") + rng = np.random.default_rng(7) + n = 200 + ts = [1785600000 + i * 86400 for i in range(n)] + feat = {t: rng.normal(0, 1) for t in ts} + # цена: ret между t_i и t_{i+1} зависит от фичи В ДЕНЬ t_{i-1} (лаг 1 день) + price = {} + px = 100.0 + for i, t in enumerate(ts): + price[t] = px + if i + 1 < n: + f_prev = feat[ts[i - 1]] if i >= 1 else 0.0 + ret = 0.5 * f_prev + rng.normal(0, 0.5) + px = px * (1 + ret / 100) + x, y = align(feat, price, lag_hours=24, step_hours=24) + corr = float(np.corrcoef(x, y)[0, 1]) + check(f"корреляция на синтетике {corr:+.2f} > 0.2", corr > 0.2, f"got {corr}") + + +def test_hourly_normalization(): + print("\n[M8] часовая нормализация load_series") + import analyze_predictive as ap + with tempfile.TemporaryDirectory() as tmp: + p = Path(tmp) / "BTC_USD_1h.jsonl" + with open(p, "w") as f: + for h in range(4): + f.write(json.dumps({"ts": 1785600000 + h * 3600, "value": 100.0 + h}) + "\n") + day = ap.load_series(p) + hour = ap.load_series(p, gran="hour") + check("day-нормализация схлопывает в 1", len(day) == 1) + check("hour-нормализация сохраняет 4", len(hour) == 4) + + +def test_real_fixture_analysis(): + print("\n[M7] анализ на фикстурах (пайплайн end-to-end)") + with tempfile.TemporaryDirectory() as tmp: + dd = Path(tmp) + # BTC цена: 3 дня + price = {1785600000: 100.0, 1785686400: 105.0, 1785772800: 103.0} + with open(dd / "BTC_USD.jsonl", "w") as f: + for t, v in price.items(): + f.write(json.dumps({"ts": t, "value": v}) + "\n") + # DXY: 2 значения + with open(dd / "DXY.jsonl", "w") as f: + for t, v in [(1785600000, 100.0), (1785686400, 101.0)]: + f.write(json.dumps({"ts": t, "value": v}) + "\n") + import analyze_predictive as ap + dxy = ap.load_series(dd / "DXY.jsonl") + bt = ap.load_series(dd / "BTC_USD.jsonl") + x, y = ap.align(dxy, bt, 24, 24) + check("1 совпадение DXY->BTC", len(x) == 1) + res = ap.test_feature("DXY", dxy, bt, 24, 24, min_n=1) + check("test_feature вернул результат", res is not None and "corr" in res) + + +if __name__ == "__main__": + test_yahoo_parse() + test_blockchain_parse() + test_binance_parse() + test_deriv_collector() + test_align_no_lookahead() + test_synthetic_signal() + test_hourly_normalization() + test_real_fixture_analysis() + print(f"\n===== ИТОГ: PASS {PASS} / FAIL {FAIL} =====") + sys.exit(1 if FAIL else 0) diff --git a/tests/momentum_strategies.py b/tests/momentum_strategies.py new file mode 100644 index 000000000..14119e808 --- /dev/null +++ b/tests/momentum_strategies.py @@ -0,0 +1,280 @@ +#!/usr/bin/env python3 +"""Factor strategies on daily data: trend-following & cross-sectional momentum. + +These are the classic systematic factors that historically worked in crypto +(and other markets) on WEEK/MONTH horizons - a different class from the +hourly directional trading we proved has no edge. + +Variants (a-priori, fixed BEFORE looking at results): + T1: Time-series momentum BTC - long BTC when close > SMA200, else flat + T2: Time-series momentum BTC - long BTC when close > SMA50, else flat + T3: SMA crossover (50/200) on each of the 14 symbols (long when 50>200) + M1: Cross-sectional momentum - monthly rebalance into top-5 of past-90d returns + M2: Cross-sectional momentum - top-5 of past-30d returns (faster) + M3: Cross-sectional momentum - top-5 of past-60d returns + C1: Combo: CS momentum (top-5, 90d) + only when BTC > SMA200 (trend filter) + +Costs: 0.1% per trade (spot taker), slippage 0.05% -> 0.15% per side. +Metrics per variant: CAGR, max drawdown, Sharpe (daily), total PnL %, n trades, +and OOS split (last 30% of the window, parameters fixed a-priori). + +Transport injectable for tests. Usage: + python momentum_strategies.py [--symbols BTC ETH ...] [--days 731] + [--out data/reports/momentum_strategies.md] +""" + +from __future__ import annotations + +import argparse +import json +import sys +import time +import urllib.request +from datetime import datetime, timezone +from pathlib import Path + +import numpy as np + +YAHOO = "https://query1.finance.yahoo.com/v8/finance/chart/{}?range={}d&interval=1d" +UA = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"} + +COST = 0.0015 # fee 0.1% + slippage 0.05% per side + +DEFAULT_SYMBOLS = ["BTC-USD", "ETH-USD", "SOL-USD", "XRP-USD", "BNB-USD", "DOGE-USD", + "ADA-USD", "LINK-USD", "AVAX-USD", "UNI-USD", "NEAR-USD", "LTC-USD", + "DOT-USD", "TRX-USD"] +SIMPLE = {"BTC-USD": "BTC", "ETH-USD": "ETH", "SOL-USD": "SOL", "XRP-USD": "XRP", + "BNB-USD": "BNB", "DOGE-USD": "DOGE", "ADA-USD": "ADA", "LINK-USD": "LINK", + "AVAX-USD": "AVAX", "UNI-USD": "UNI", "NEAR-USD": "NEAR", "LTC-USD": "LTC", + "DOT-USD": "DOT", "TRX-USD": "TRX"} + + +def default_transport(url: str, timeout: int = 25) -> bytes: + req = urllib.request.Request(url, headers=UA) + with urllib.request.urlopen(req, timeout=timeout) as r: + return r.read() + + +def fetch_daily(transport, symbol: str, days: int) -> list[dict]: + url = YAHOO.format(symbol, days) + raw = transport(url) + data = json.loads(raw.decode()) + res = data["chart"]["result"][0] + ts = res["timestamp"] + close = res["indicators"]["quote"][0]["close"] + rows = [] + for t, c in zip(ts, close): + if c is None: + continue + rows.append({"ts": int(t), "date": time.strftime("%Y-%m-%d", time.gmtime(t)), + "close": float(c)}) + return rows + + +def load_all(transport, symbols, days) -> dict[str, np.ndarray]: + """ts-aligned close arrays (union of days).""" + out = {} + frames = {} + for s in symbols: + rows = fetch_daily(transport, s, days) + frames[s] = {r["ts"]: r["close"] for r in rows} + all_ts = sorted(set().union(*[set(f.keys()) for f in frames.values()])) + for s in symbols: + f = frames[s] + out[s] = np.array([f.get(t, np.nan) for t in all_ts]) + return out, np.array(all_ts) + + +def sma(x: np.ndarray, w: int) -> np.ndarray: + out = np.full_like(x, np.nan) + for i in range(w - 1, len(x)): + out[i] = np.nanmean(x[i - w + 1:i + 1]) + return out + + +def returns_nd(x: np.ndarray, n: int) -> np.ndarray: + out = np.full_like(x, np.nan) + for i in range(n, len(x)): + out[i] = x[i] / x[i - n] - 1.0 + return out + + +def run_variant(name: str, closes: dict[str, np.ndarray], ts: np.ndarray, + variant: dict) -> dict: + """Backtest a variant: returns daily equity curve & stats.""" + n = len(ts) + weights: dict[str, float] = {} + cash_frac = 0.0 + equity = np.zeros(n) + turnover = 0.0 + n_trades = 0 + + kind = variant["kind"] + for i in range(n): + # --- determine target weights for day i (using data up to i-1: NO lookahead) + if i == 0: + equity[i] = 1.0 + continue + new_w: dict[str, float] = {} + new_cash = 0.0 + if kind == "ts_btc": + btc = closes["BTC-USD"] + if not np.isnan(btc[i - 1]) and not np.isnan(sma(btc, 200)[i - 1]) \ + and btc[i - 1] > sma(btc, 200)[i - 1]: + new_w["BTC-USD"] = 1.0 + else: + new_cash = 1.0 + elif kind == "ts_btc50200": + btc = closes["BTC-USD"] + s50 = sma(btc, 50)[i - 1] + s200 = sma(btc, 200)[i - 1] + if not np.isnan(s50) and not np.isnan(s200) \ + and btc[i - 1] > s50 and s50 > s200: + new_w["BTC-USD"] = 1.0 + else: + new_cash = 1.0 + elif kind == "ts_btc50": + sym = variant.get("sym", "BTC-USD") + btc = closes[sym] + if not np.isnan(btc[i - 1]) and not np.isnan(sma(btc, 50)[i - 1]) \ + and btc[i - 1] > sma(btc, 50)[i - 1]: + new_w[sym] = 1.0 + else: + new_cash = 1.0 + elif kind == "sma_cross": + # each symbol: long if SMA50>SMA200 + for s in closes: + c = closes[s] + s50 = sma(c, 50)[i - 1] + s200 = sma(c, 200)[i - 1] + if not np.isnan(s50) and not np.isnan(s200) and s50 > s200: + new_w[s] = 1.0 / 14 + else: + new_cash += 1.0 / 14 + elif kind in ("cs_mom", "cs_mom_trend"): + look = variant.get("lookback", 90) + rebal = variant.get("rebalance_days", 21) # monthly rebalance + if i > 200 and (i - 1) % rebal == 0: + mom = {} + for s in closes: + c = closes[s] + r = returns_nd(c, look) + if not np.isnan(r[i - 1]): + mom[s] = r[i - 1] + if mom: + top = sorted(mom, key=mom.get, reverse=True)[:5] + if kind == "cs_mom_trend": + btc = closes["BTC-USD"] + s200 = sma(btc, 200)[i - 1] + if np.isnan(s200) or btc[i - 1] <= s200: + new_cash = 1.0 + else: + for s in top: + new_w[s] = 0.2 + else: + for s in top: + new_w[s] = 0.2 + else: + new_cash = 1.0 + elif kind in ("cs_mom", "cs_mom_trend") and i > 200: + # between rebalances: keep previous weights + new_w = dict(weights) + new_cash = cash_frac + + # --- rebalance: compute turnover from previous weights + prev = weights + for s in set(prev) | set(new_w): + delta = abs(new_w.get(s, 0.0) - prev.get(s, 0.0)) + turnover += delta + n_trades += sum(1 for s in set(prev) | set(new_w) + if abs(new_w.get(s, 0.0) - prev.get(s, 0.0)) > 1e-9) + weights = new_w + cash_frac = new_cash + + # --- day PnL: portfolio return = sum(w * asset_ret) - costs on turnover + ret = 0.0 + for s, w in weights.items(): + c = closes[s] + if i > 0 and not np.isnan(c[i]) and not np.isnan(c[i - 1]) and c[i - 1] > 0: + ret += w * (c[i] / c[i - 1] - 1.0) + cost = turnover * COST + equity[i] = equity[i - 1] * (1.0 + ret - cost) + turnover = 0.0 + + # metrics + dd = float(((equity / np.maximum.accumulate(equity)) - 1.0).min()) + days = n + cagr = (equity[-1] ** (365.25 / days) - 1.0) * 100 if equity[-1] > 0 else -100.0 + rets = np.diff(equity) / equity[:-1] + sharpe = float(rets.mean() / (rets.std() + 1e-12) * np.sqrt(365)) if len(rets) > 1 else 0.0 + total = (equity[-1] - 1.0) * 100.0 + return {"name": name, "total_pct": total, "cagr": cagr, "max_dd": dd * 100, + "sharpe": sharpe, "n_trades": n_trades, "equity": equity} + + +VARIANTS = [ + ("T1: TS-момент BTC (SMA200)", {"kind": "ts_btc"}), + ("T2: TS-момент BTC (SMA50)", {"kind": "ts_btc50"}), + ("T4: SMA50 + фильтр 50>200 (BTC)", {"kind": "ts_btc50200"}), + ("T3: SMA-кроссовер 50/200 (14 активов)", {"kind": "sma_cross"}), + ("M1: CS-момент топ-5 (90д, мес.)", {"kind": "cs_mom", "lookback": 90}), + ("M2: CS-момент топ-5 (30д)", {"kind": "cs_mom", "lookback": 30}), + ("M3: CS-момент топ-5 (60д)", {"kind": "cs_mom", "lookback": 60}), + ("C1: CS-момент 90д + тренд-фильтр BTC>SMA200", {"kind": "cs_mom_trend", "lookback": 90}), +] + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--symbols", nargs="+", default=DEFAULT_SYMBOLS) + ap.add_argument("--days", type=int, default=731) + ap.add_argument("--out", type=Path, default=Path("data/reports/momentum_strategies.md")) + args = ap.parse_args() + + closes, ts = load_all(default_transport, args.symbols, args.days) + print(f"данных: {len(args.symbols)} активов x {len(ts)} дней", flush=True) + + # OOS split: last 30% of days (params fixed a-priori) + oos_start = int(len(ts) * 0.7) + + print(f"\n{'Вариант':<40} {'PnL%':>8} {'CAGR%':>7} {'MaxDD%':>7} {'Sharpe':>6} {'сделок':>6}", flush=True) + print("-" * 85, flush=True) + results = [] + for name, var in VARIANTS: + r = run_variant(name, closes, ts, var) + results.append(r) + # OOS metrics + eq_oos = r["equity"][oos_start:] + eq_oos = eq_oos / eq_oos[0] + dd_oos = float(((eq_oos / np.maximum.accumulate(eq_oos)) - 1.0).min()) + days_oos = len(eq_oos) + cagr_oos = (eq_oos[-1] ** (365.25 / days_oos) - 1.0) * 100 if eq_oos[-1] > 0 else -100.0 + print(f"{name:<40} {r['total_pct']:>+7.1f}% {r['cagr']:>+6.1f}% {r['max_dd']:>6.1f}% " + f"{r['sharpe']:>6.2f} {r['n_trades']:>6} | OOS: {cagr_oos:+.1f}% DD {dd_oos*100:.1f}%", flush=True) + + # BTC BH + bh = (closes["BTC-USD"][-1] / closes["BTC-USD"][0] - 1.0) * 100 + print(f"\nBTC buy&hold за период: {bh:+.1f}%", flush=True) + + md = ["# Факторные стратегии на дневных данных (2 года)", "", + f"Данные: {len(args.symbols)} активов, {len(ts)} дней | издержки {COST*100:.2f}%/сторона", + "Параметры зафиксированы ДО просмотра (a-priori); OOS = последние 30%.", + "", "| Вариант | PnL % | CAGR % | MaxDD % | Sharpe | Сделок | OOS CAGR % |", + "|---|---:|---:|---:|---:|---:|---:|"] + for r in results: + eq_oos = r["equity"][oos_start:] / r["equity"][oos_start] + dd_oos = float(((eq_oos / np.maximum.accumulate(eq_oos)) - 1.0).min()) + cagr_oos = (eq_oos[-1] ** (365.25 / len(eq_oos)) - 1.0) * 100 + md.append(f"| {r['name']} | {r['total_pct']:+.1f} | {r['cagr']:+.1f} | {r['max_dd']:.1f} | " + f"{r['sharpe']:.2f} | {r['n_trades']} | {cagr_oos:+.1f} |") + md += ["", f"**BTC buy&hold: {bh:+.1f}%**", + "", + "**Критерий доходности:** OOS CAGR > 0 и MaxDD < 40% и Sharpe > 0.5."] + args.out.parent.mkdir(parents=True, exist_ok=True) + args.out.write_text("\n".join(md), encoding="utf-8") + print(f"report -> {args.out}", flush=True) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/tests/news_local_sentiment.py b/tests/news_local_sentiment.py new file mode 100644 index 000000000..99f48abde --- /dev/null +++ b/tests/news_local_sentiment.py @@ -0,0 +1,212 @@ +#!/usr/bin/env python3 +"""Local lexicon-based sentiment scorer for crypto news headlines. + +No external LLM needed: deterministic dictionary approach with negation and +amplifier handling, tuned for crypto vocabulary. Scores in [-1, 1]. + +Usage (as library): + from news_local_sentiment import score_title, score_batch + +CLI: + python news_local_sentiment.py --file news_historical.jsonl --out scored.jsonl +""" + +from __future__ import annotations + +import argparse +import json +import re +import time +from pathlib import Path + +# --- lexicon: (word, weight) --- +POSITIVE = { + # strong + "surge": 0.8, "surges": 0.8, "surged": 0.8, "soar": 0.8, "soars": 0.8, + "soared": 0.8, "rocket": 0.8, "explode": 0.8, "explodes": 0.8, "moon": 0.7, + "record": 0.6, "all-time": 0.7, "milestone": 0.6, "breakthrough": 0.7, + "rally": 0.7, "rallies": 0.7, "rallied": 0.7, "boom": 0.7, "skyrocket": 0.8, + "ballistic": 0.6, "spike": 0.5, "spikes": 0.5, "jump": 0.5, "jumps": 0.5, + "jumped": 0.5, "leap": 0.5, "gains": 0.5, "gain": 0.4, "gained": 0.4, + "rise": 0.4, "rises": 0.4, "rose": 0.4, "risen": 0.4, "up": 0.2, + "higher": 0.3, "high": 0.3, "strong": 0.4, "strongest": 0.5, "bullish": 0.6, + "bull": 0.5, "bulls": 0.5, "bullrun": 0.7, "buy": 0.3, "buys": 0.3, + "buying": 0.4, "accumulate": 0.4, "accumulation": 0.5, "inflow": 0.6, + "inflows": 0.6, "adoption": 0.6, "adopted": 0.5, "adopts": 0.5, + "approve": 0.6, "approved": 0.6, "approval": 0.6, "approves": 0.6, + "launch": 0.4, "launches": 0.4, "launched": 0.4, "partnership": 0.5, + "partners": 0.4, "integration": 0.4, "integrate": 0.4, "upgrade": 0.4, + "upgrades": 0.4, "upgraded": 0.4, "support": 0.3, "supports": 0.3, + "backed": 0.3, "endorsed": 0.4, "endorsement": 0.4, "win": 0.5, + "wins": 0.5, "won": 0.5, "positive": 0.5, "profit": 0.5, "profitable": 0.5, + "growth": 0.5, "growing": 0.5, "grow": 0.4, "expand": 0.4, "expansion": 0.4, + "institutional": 0.4, "institutions": 0.4, "etf": 0.3, "etfs": 0.3, + "green": 0.4, "optimistic": 0.5, "confidence": 0.4, "confident": 0.4, + "hope": 0.3, "hopes": 0.3, "recovery": 0.5, "recovers": 0.5, "rebound": 0.6, + "rebounds": 0.6, "bullish": 0.6, "beat": 0.4, "beats": 0.4, "outperform": 0.6, + "outperforms": 0.6, "demand": 0.4, "huge": 0.4, "massive": 0.5, + "flourish": 0.6, "thrive": 0.6, "gain ground": 0.5, "break out": 0.6, + "breakout": 0.7, "mooning": 0.7, "pump": 0.5, "pumps": 0.5, "pumped": 0.5, + "buyback": 0.5, "dividend": 0.4, "reward": 0.4, "rewards": 0.4, + "staking": 0.3, "yield": 0.3, "yields": 0.3, "apy": 0.3, "hodl": 0.2, + "long": 0.2, "bullishness": 0.6, "momentum": 0.4, "surpasses": 0.6, + "surpassed": 0.6, "topping": 0.5, "tops": 0.4, "best": 0.5, + # mild positive + "good": 0.3, "great": 0.4, "better": 0.3, "improve": 0.4, "improves": 0.4, + "improved": 0.4, "boost": 0.5, "boosts": 0.5, "boosted": 0.5, "stable": 0.2, + "stability": 0.3, "steady": 0.3, "solid": 0.4, "healthy": 0.4, +} + +NEGATIVE = { + # strong + "crash": -0.9, "crashes": -0.9, "crashed": -0.9, "plunge": -0.8, + "plunges": -0.8, "plunged": -0.8, "tank": -0.8, "tanks": -0.8, "tanked": -0.8, + "collapse": -0.8, "collapses": -0.8, "collapsed": -0.8, "dump": -0.7, + "dumps": -0.7, "dumped": -0.7, "selloff": -0.7, "sell-off": -0.7, + "selloff": -0.7, "bloodbath": -0.9, "wipeout": -0.8, "liquidation": -0.6, + "liquidations": -0.6, "liquidated": -0.6, "hack": -0.8, "hacked": -0.8, + "hacking": -0.7, "exploit": -0.7, "exploited": -0.7, "breach": -0.7, + "stolen": -0.8, "steal": -0.7, "theft": -0.7, "scam": -0.8, "scams": -0.8, + "fraud": -0.8, "ponzi": -0.9, "rug": -0.9, "rugpull": -0.9, "rug pull": -0.9, + "bankrupt": -0.8, "bankruptcy": -0.8, "insolvent": -0.7, "ban": -0.7, + "bans": -0.7, "banned": -0.7, "banned": -0.7, "prohibit": -0.6, + "crackdown": -0.7, "crackdowns": -0.7, "lawsuit": -0.6, "lawsuits": -0.6, + "sue": -0.5, "sued": -0.6, "sues": -0.5, "probe": -0.5, "probes": -0.5, + "investigation": -0.5, "investigate": -0.5, "investigates": -0.5, + "regulatory": -0.3, "regulation": -0.2, "bearish": -0.6, "bear": -0.5, + "bears": -0.5, "bear market": -0.7, "drop": -0.5, "drops": -0.5, + "dropped": -0.5, "fall": -0.4, "falls": -0.4, "fell": -0.4, "fallen": -0.4, + "decline": -0.5, "declines": -0.5, "declined": -0.5, "down": -0.3, + "lower": -0.3, "low": -0.2, "weak": -0.4, "weaker": -0.4, "weakest": -0.5, + "outflow": -0.6, "outflows": -0.6, "sell": -0.3, "sells": -0.3, + "selling": -0.4, "capitulate": -0.7, "capitulation": -0.7, "panic": -0.6, + "fear": -0.5, "fears": -0.5, "worried": -0.4, "worry": -0.3, "risk": -0.3, + "risks": -0.3, "risky": -0.4, "danger": -0.5, "dangerous": -0.5, + "threat": -0.5, "threatens": -0.5, "warning": -0.4, "warns": -0.4, + "warn": -0.3, "caution": -0.3, "reject": -0.5, "rejected": -0.5, + "rejects": -0.5, "rejection": -0.5, "delay": -0.4, "delays": -0.4, + "delayed": -0.4, "postpone": -0.5, "postponed": -0.5, "fail": -0.5, + "fails": -0.5, "failed": -0.5, "failure": -0.5, "loss": -0.4, + "losses": -0.5, "loses": -0.5, "lost": -0.5, "lose": -0.4, "debt": -0.3, + "deficits": -0.4, "deficit": -0.4, "downgrade": -0.6, "downgraded": -0.6, + "negative": -0.5, "red": -0.3, "dead": -0.5, "death": -0.6, "die": -0.5, + "dying": -0.5, "kills": -0.5, "killed": -0.5, "crisis": -0.6, + "recession": -0.5, "bubble": -0.4, "burst": -0.5, "worst": -0.5, + "slump": -0.7, "slumps": -0.7, "slumped": -0.7, "slip": -0.4, "slips": -0.4, + "squeeze": -0.4, "short": -0.2, "shorts": -0.3, "shorting": -0.4, + "pressure": -0.3, "pressured": -0.4, "bleed": -0.5, "bleeds": -0.5, + "blood": -0.6, "wipe": -0.6, "wipes": -0.6, "evaporat": -0.6, + "disappoint": -0.5, "disappointed": -0.5, "miss": -0.3, "misses": -0.3, + "cut": -0.3, "cuts": -0.3, "slashed": -0.5, "slash": -0.5, + "halt": -0.5, "halts": -0.5, "halted": -0.5, "suspend": -0.5, + "suspended": -0.5, "freeze": -0.4, "frozen": -0.5, "exit": -0.3, + "exits": -0.3, "leaves": -0.3, "flee": -0.5, "flees": -0.5, + "withdraw": -0.3, "withdraws": -0.3, "withdrew": -0.4, "shutdown": -0.5, + "shuts": -0.5, "closed": -0.3, "closes": -0.3, "cease": -0.5, + # добавочные из расхождений с Gemini + "impossible": -0.6, "impossibility": -0.5, "lows": -0.3, "cleanout": -0.6, + "headwinds": -0.5, "weigh": -0.3, "weighs": -0.3, "weighted": -0.3, + "teeters": -0.4, "teetering": -0.4, "shuttered": -0.5, "shutters": -0.5, + "cancels": -0.5, "cancelled": -0.5, "cancellation": -0.5, "postpones": -0.5, + "pauses": -0.5, "paused": -0.5, "pausing": -0.4, "restrict": -0.4, + "restricts": -0.4, "restrictions": -0.4, "restricted": -0.4, + "exclude": -0.4, "exclusion": -0.4, "excluded": -0.4, "hidden": -0.3, + "masks": -0.3, "masked": -0.3, "burn": -0.4, "burns": -0.4, + "register": -0.3, "registers": -0.3, "slips": -0.4, "slid": -0.4, + "slide": -0.4, "fades": -0.2, "fading": -0.2, "dim": -0.3, "cloudy": -0.3, + "trouble": -0.4, "troubled": -0.4, "strain": -0.3, "strained": -0.3, + "untested": -0.3, "unclear": -0.3, "uncertainty": -0.3, "uncertain": -0.3, + "overhang": -0.4, "overhangs": -0.4, "doubt": -0.3, "doubts": -0.3, + "skeptic": -0.3, "skeptical": -0.3, "backlash": -0.5, "resistance": -0.2, + "struggle": -0.4, "struggles": -0.4, "struggling": -0.4, "lag": -0.3, + "lags": -0.3, "underperform": -0.5, "underperforms": -0.5, +} + +NEGATIONS = {"not", "no", "never", "without", "isn't", "aren't", "won't", "cannot", + "can't", "doesn't", "don't", "didn't", "hardly", "barely", "denies", + "deny", "dismisses", "dismiss"} + +AMPLIFIERS = {"record": 1.5, "all-time": 1.5, "massive": 1.4, "huge": 1.3, + "extreme": 1.4, "severe": 1.4, "sharp": 1.3, "steep": 1.3, + "major": 1.2, "significant": 1.2, "big": 1.2, "biggest": 1.4, + "worst": 1.3, "total": 1.2, "complete": 1.2, "historic": 1.3} + +_TOKEN_RE = re.compile(r"[a-z0-9'\-]+") + +# merged word->weight (positive/negative merged; negative keep sign) +_LEXICON: dict[str, float] = {} +_LEXICON.update(POSITIVE) +for w, v in NEGATIVE.items(): + _LEXICON[w] = v + + +def score_title(title: str) -> float: + """Lexicon sentiment score in [-1, 1] with negation & amplifier handling.""" + tokens = _TOKEN_RE.findall(title.lower()) + if not tokens: + return 0.0 + score = 0.0 + weight_sum = 0.0 + negate_next = False + for i, tok in enumerate(tokens): + # multi-word phrases first (e.g. "rug pull", "bear market") + phrase = None + if i + 1 < len(tokens): + cand = f"{tok} {tokens[i + 1]}" + if cand in _LEXICON: + phrase = cand + word = phrase or tok + if word in NEGATIONS: + negate_next = True + continue + w = _LEXICON.get(word) + if w is None: + continue + if negate_next: + w = -w + negate_next = False + amp = 1.0 + # amplifier = previous token + if i > 0 and tokens[i - 1] in AMPLIFIERS: + amp = AMPLIFIERS[tokens[i - 1]] + score += w * amp + weight_sum += abs(w * amp) + if weight_sum == 0: + return 0.0 + raw = score / weight_sum # in [-1, 1] + # saturation: single weak word should not yield full score + factor = min(1.0, weight_sum / 1.5) + return max(-1.0, min(1.0, raw * factor)) + + +def score_batch(titles: list[str]) -> list[float]: + return [score_title(t) for t in titles] + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--file", type=Path, required=True, + help="input jsonl with 'title' fields") + ap.add_argument("--out", type=Path, required=True) + args = ap.parse_args() + + rows = [json.loads(l) for l in args.file.read_text().splitlines() if l] + t0 = time.time() + n = 0 + for r in rows: + s = score_title(r.get("title", "")) + r["sentiment"] = round(s, 3) + r["label"] = "positive" if s > 0.2 else ("negative" if s < -0.2 else "neutral") + r["scorer"] = "local_lexicon" + n += 1 + with open(args.out, "w") as f: + for r in rows: + f.write(json.dumps(r, ensure_ascii=False) + "\n") + pos = sum(1 for r in rows if r["sentiment"] > 0.2) + neg = sum(1 for r in rows if r["sentiment"] < -0.2) + print(f"оценено: {n} за {time.time()-t0:.2f}s | pos {pos} / neg {neg} / neu {n-pos-neg}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/tests/run_t2_momentum.py b/tests/run_t2_momentum.py new file mode 100644 index 000000000..ffd235a50 --- /dev/null +++ b/tests/run_t2_momentum.py @@ -0,0 +1,287 @@ +#!/usr/bin/env python3 +"""T2 momentum paper-loop: daily signal (BTC close vs SMA50) + state + TG alerts. + +Backtest-proven strategy (docs/MOMENTUM_STRATEGIES_RESULT_2026-08-16_RU.md): +long BTC while close > SMA50 (1d), cash otherwise. This paper loop runs daily: + + 1. fetch daily closes (Yahoo BTC-USD, fallback Binance spot); + 2. compute SMA50 over CLOSED bars only; + 3. signal for today = last closed close > SMA50 (same rule as the backtest); + 4. if position changes -> apply 0.15% cost, log the trade, notify Telegram; + 5. mark equity daily (close/close) and append to value log. + +State: data/t2_paper_state.json ; history: data/t2_paper_equity.jsonl +Idempotent: re-running the same day does not double-log. + +Usage: + python run_t2_momentum.py [--notify] [--state FILE] [--log FILE] +""" + +from __future__ import annotations + +import argparse +import json +import time +import urllib.request +from pathlib import Path + +def _urls(symbol: str) -> tuple[str, str]: + """Binance (primary) and Yahoo (fallback) URLs for a symbol like 'BTC-USD'.""" + base = symbol.split("-")[0].upper() + binance_sym = base + "USDT" + return (f"https://api.binance.com/api/v3/klines?symbol={binance_sym}&interval=1d&limit=400", + f"https://query1.finance.yahoo.com/v8/finance/chart/{symbol}?range=400d&interval=1d") +UA = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"} + +SMA_W = 50 +COST = 0.0015 # per side, same as backtest + + +def default_transport(url: str, timeout: int = 25) -> bytes: + req = urllib.request.Request(url, headers=UA) + with urllib.request.urlopen(req, timeout=timeout) as r: + return r.read() + + +def fetch_closes(transport=None, symbol: str = "BTC-USD") -> list[dict]: + """List of {date, close} for closed daily bars (oldest first).""" + t = transport or default_transport + binance_url, yahoo_url = _urls(symbol) + errs = [] + # primary: Binance spot (эталон ликвидности) + try: + raw = t(binance_url) + klines = json.loads(raw.decode()) + rows = [] + for k in klines: + rows.append({"date": time.strftime("%Y-%m-%d", time.gmtime(k[0] / 1000)), + "close": float(k[4])}) + if len(rows) >= 100: + return rows + errs.append(f"binance: only {len(rows)} rows") + except Exception as e: + errs.append(f"binance: {e}") + # fallback: Yahoo + try: + raw = t(yahoo_url) + data = json.loads(raw.decode()) + res = data["chart"]["result"][0] + ts = res["timestamp"] + close = res["indicators"]["quote"][0]["close"] + rows = [] + for x, c in zip(ts, close): + if c is None: + continue + rows.append({"date": time.strftime("%Y-%m-%d", time.gmtime(x)), + "close": float(c)}) + if len(rows) >= 100: + return rows + errs.append(f"yahoo: only {len(rows)} rows") + except Exception as e: + errs.append(f"yahoo: {e}") + raise RuntimeError("; ".join(errs)) + + +def sma(closes: list[float], w: int) -> float | None: + if len(closes) < w: + return None + return sum(closes[-w:]) / w + + +def check_price_discrepancy(rows: list[dict], transport=None) -> str | None: + """Cross-check the last close from Yahoo vs Binance spot; warn if > 0.5% off.""" + if not rows: + return None + t = transport or default_transport + sym = "BTCUSDT" if "BTC" in rows[-1].get("_sym", "BTC-USD") else "ETHUSDT" + try: + import urllib.parse + url = f"https://api.binance.com/api/v3/ticker/price?symbol={sym}" + raw = t(url) + binance_close = float(json.loads(raw.decode())["price"]) + yahoo_close = rows[-1]["close"] + diff = abs(binance_close - yahoo_close) / yahoo_close * 100 + if diff > 0.5: + return (f"⚠️ Расхождение цен {sym}: Yahoo {yahoo_close:.2f} vs " + f"Binance {binance_close:.2f} ({diff:.2f}%)") + except Exception: + return None + return None + + +def compute_signal(rows: list[dict], in_w: int = SMA_W, out_w: int | None = None) -> dict: + """Signal on the LAST CLOSED bar (no lookahead). + + in_w/out_w implement hysteresis: enter LONG when close > SMA(in_w), + exit when close <= SMA(out_w). out_w=None -> single SMA (enter/exit same). + """ + closes = [r["close"] for r in rows] + last = rows[-1] + if out_w is None: + out_w = in_w + s_in = sma(closes, in_w) + s_out = sma(closes, out_w) + if s_in is None or s_out is None: + return {"date": last["date"], "close": last["close"], "sma50": None, + "signal": "CASH", "reason": "not_enough_history"} + # вход: close > SMA(in); выход: close <= SMA(out) + sig = "LONG" if last["close"] > s_in else "CASH" + # если уже в позиции (state передаётся снаружи) - выход по out_w; + # здесь возвращаем оба уровня, решение принимает run_daily + return {"date": last["date"], "close": last["close"], + "sma_in": round(s_in, 2), "sma_out": round(s_out, 2), + "signal": sig, "reason": "close_gt_sma_in" if sig == "LONG" else "close_le_sma_in", + "in_w": in_w, "out_w": out_w} + + +class T2State: + def __init__(self, path: Path): + self.path = path + if path.exists(): + self.data = json.loads(path.read_text()) + else: + self.data = {"position": "CASH", "entry_date": None, "entry_price": None, + "equity": 10000.0, "last_signal_date": None, + "trades": [], "cash_equiv": 10000.0} + + def save(self): + self.path.parent.mkdir(parents=True, exist_ok=True) + tmp = self.path.with_suffix(".tmp") + tmp.write_text(json.dumps(self.data, ensure_ascii=False, indent=2)) + tmp.replace(self.path) + + +def run_daily(state_path: Path, log_path: Path, rows: list[dict], notify=None, + variant: dict | None = None) -> dict: + variant = variant or {} + """One daily step: compute signal, update state, log, notify on change.""" + st = T2State(state_path) + in_w = variant.get("in_w", SMA_W) + out_w = variant.get("out_w") + sig = compute_signal(rows, in_w, out_w) + last = rows[-1] + prev = rows[-2] if len(rows) >= 2 else None + # гистерезис: выход по SMA(out), вход по SMA(in) + if st.data["position"] == "LONG": + # в позиции -> сигнал выхода по sma_out + sig["signal"] = "LONG" if last["close"] > sig["sma_out"] else "CASH" + sig["reason"] = "close_gt_sma_out" if sig["signal"] == "LONG" else "close_le_sma_out" + else: + sig["signal"] = "LONG" if last["close"] > sig["sma_in"] else "CASH" + sig["reason"] = "close_gt_sma_in" if sig["signal"] == "LONG" else "close_le_sma_in" + + # idempotency: already processed this bar? + if st.data.get("last_signal_date") == sig["date"]: + # just re-mark equity and return current state + return {"status": "already_processed", "signal": sig["signal"], + "equity": st.data["equity"]} + + # mark previous day's PnL first (close/close while in position) + if prev is not None and st.data["position"] == "LONG" and st.data["entry_price"]: + st.data["equity"] *= last["close"] / prev["close"] + # buy&hold reference (cash_equiv = always-long equity, for comparison) + if prev is not None: + st.data["cash_equiv"] = st.data.get("cash_equiv", 10000.0) * last["close"] / prev["close"] + + # position change? cost applies on ANY transition (same as backtest) + if st.data["position"] != sig["signal"]: + old = st.data["position"] + st.data["equity"] *= (1.0 - COST) + if sig["signal"] == "LONG": + st.data["entry_price"] = last["close"] + st.data["entry_date"] = sig["date"] + else: + st.data["entry_price"] = None + st.data["entry_date"] = None + st.data["position"] = sig["signal"] + st.data["trades"].append({"date": sig["date"], "from": old, "to": sig["signal"], + "close": last["close"], + "sma50": sig.get("sma_in") or sig.get("sma50"), + "equity": round(st.data["equity"], 2)}) + if notify: + notify(sig, old) + st.data["last_signal_date"] = sig["date"] + st.save() + + # append to value log + bh_equity = st.data.get("cash_equiv", 10000.0) + entry = {"date": sig["date"], "close": last["close"], + "sma50": sig.get("sma_in") or sig.get("sma50"), + "signal": sig["signal"], "position": st.data["position"], + "equity": round(st.data["equity"], 2), + "bh_equity": round(bh_equity, 2)} + log_path.parent.mkdir(parents=True, exist_ok=True) + with open(log_path, "a") as f: + f.write(json.dumps(entry) + "\n") + return {"status": "ok", "signal": sig["signal"], "position": st.data["position"], + "equity": st.data["equity"], + "sma50": sig.get("sma_in") or sig.get("sma50"), "close": last["close"]} + + +def tg_send(text: str) -> bool: + token_p = Path("/etc/aios/credentials/telegram_token") + chat_p = Path("/etc/aios/credentials/telegram_owner_chat_id") + if not token_p.exists() or not chat_p.exists(): + return False + token, chat = token_p.read_text().strip(), chat_p.read_text().strip() + import urllib.parse + data = urllib.parse.urlencode({"chat_id": chat, "text": text}).encode() + req = urllib.request.Request(f"https://api.telegram.org/bot{token}/sendMessage", data=data) + try: + with urllib.request.urlopen(req, timeout=20) as r: + return json.loads(r.read().decode()).get("ok", False) + except Exception: + return False + + +def daily_report(symbol: str, state_path: Path) -> str | None: + """One-line daily report (position, equity, BH) - sent every day.""" + st = T2State(state_path).data + eq = float(st.get("equity", 10000.0)) + bh = float(st.get("cash_equiv", 10000.0)) + pct = (eq / 10000 - 1) * 100 + bh_pct = (bh / 10000 - 1) * 100 + tag = symbol.replace("-", "") + return (f"📈 T2-{tag} {time.strftime('%Y-%m-%d')}: {st.get('position')} | " + f"equity ${eq:,.0f} ({pct:+.1f}%) | BH {bh_pct:+.1f}%") + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--symbol", default="BTC-USD") + ap.add_argument("--in-w", type=int, default=SMA_W) + ap.add_argument("--out-w", type=int, default=None) + ap.add_argument("--state", type=Path, default=None) + ap.add_argument("--log", type=Path, default=None) + ap.add_argument("--notify", action="store_true") + ap.add_argument("--daily-report", action="store_true", + help="send a one-line report every run (not only on change)") + ap.add_argument("--transport", default=None, help="injectable (tests)") + args = ap.parse_args() + + variant = {"in_w": args.in_w, "out_w": args.out_w} + sym_tag = args.symbol.replace("-", "").lower() + if args.state is None: + args.state = Path(f"/root/AIOS/data/t2_paper_state_{sym_tag}.json") + if args.log is None: + args.log = Path(f"/root/AIOS/data/t2_paper_equity_{sym_tag}.jsonl") + + rows = fetch_closes(args.transport, args.symbol) + if args.daily_report: + report = daily_report(args.symbol, args.state) + if report: + tg_send(report) + def notify(sig, old): + txt = (f"📈 T2-сигнал: {sig['date']}\n" + f"{old} -> {sig['signal']} | close {sig['close']:.0f} " + f"SMA{int(sig.get('in_w', 50))}/{int(sig.get('out_w', sig.get('in_w', 50)))} " + f"{sig.get('sma_in') or sig.get('sma50')}\n" + f"причина: {sig['reason']}") + tg_send(txt) + res = run_daily(args.state, args.log, rows, notify if args.notify else None, variant=variant) + print(json.dumps(res, ensure_ascii=False)) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/tests/test_backtest_2y.py b/tests/test_backtest_2y.py new file mode 100644 index 000000000..a92b834ff --- /dev/null +++ b/tests/test_backtest_2y.py @@ -0,0 +1,152 @@ +#!/usr/bin/env python3 +"""Tests for the 2-year backtest module (before prod).""" +from __future__ import annotations + +import json +import sys +import tempfile +from pathlib import Path + +import numpy as np + +T = Path(__file__).resolve().parent +sys.path.insert(0, str(T)) + +import backtest_2y as b2 + +PASS = 0 +FAIL = 0 + + +def check(name: str, cond: bool, detail: str = ""): + global PASS, FAIL + if cond: + PASS += 1 + print(f" ✅ {name}") + else: + FAIL += 1 + print(f" ❌ {name} {detail}") + + +def test_fetch_pagination(): + print("\n[B1] fetch_klines пагинация (2 страницы)") + # генерируем 3000 klines (2 страницы по 1500) + def gen(n, t0): + rows = [] + for i in range(n): + rows.append([t0 + i * 3600000, "100", "101", "99", str(100 + i * 0.001), + "1", t0 + (i + 1) * 3600000 - 1, "100", 10, "0.5", "50", "0"]) + return rows + + page1 = gen(1500, 1700000000000) + page2 = gen(500, 1700000000000 + 1500 * 3600000) + calls = {"n": 0} + + def transport(url, timeout=25): + calls["n"] += 1 + if calls["n"] == 1: + return json.dumps(page1).encode() + return json.dumps(page2).encode() + + rows = b2.fetch_klines(transport, "BTC", 100) + check("2 вызова транспорта", calls["n"] == 2) + check("2000 баров собрано", len(rows) == 2000) + check("ts монотонны", all(rows[i]["ts"] < rows[i + 1]["ts"] for i in range(len(rows) - 1))) + + +def test_record_analyze(): + print("\n[B2] record_and_analyze сигналы") + # бычий паттерн + rng = np.random.default_rng(1) + closes = [100 + i * 0.5 for i in range(50)] + an = b2.record_and_analyze(closes, 0.8) + check("восходящий тренд -> BUY_LONG", an["signal"] == "BUY_LONG", str(an)) + closes2 = [100 - i * 0.5 for i in range(50)] + an2 = b2.record_and_analyze(closes2, 0.2) + check("нисходящий тренд -> SELL_SHORT", an2["signal"] == "SELL_SHORT", str(an2)) + check("confidence в [0,1]", 0 <= an["confidence"] <= 1) + + +def test_engine_basic(): + print("\n[B3] движок: базовая симуляция") + n = 3000 + t0 = 1700000000000 + times = np.array([t0 + i * 3600000 for i in range(n)]) + # цена: медленный рост -> сигналы BUY, потом резкий рост на +3% (TP) + closes = np.array([100 + i * 0.02 for i in range(n)]) + # вставить +3% скачок на баре 500 + closes[500:] = closes[500] * 1.03 + highs = closes * 1.002 + lows = closes * 0.998 + series = {"BTC": {"closes": closes, "highs": highs, "lows": lows, "times": times}} + probs = {"BTC": np.full(n, 0.7)} + res = b2.run_engine(series, probs, start_idx=100) + check("сделки есть", len(res["trades"]) > 0, f"got {len(res['trades'])}") + check("PnL корректный тип", isinstance(res["pnl"], float)) + + +def test_engine_no_lookahead(): + print("\n[B4] движок: вход только с start_idx") + n = 300 + times = np.array([1700000000000 + i * 3600000 for i in range(n)]) + closes = np.array([100.0] * n) + series = {"BTC": {"closes": closes, "highs": closes, "lows": closes, "times": times}} + probs = {"BTC": np.full(n, 0.9)} + res = b2.run_engine(series, probs, start_idx=200) + # история warmup до start_idx, входы только после + check("нет сделок в warmup (нет сигналов в flat)", len(res["trades"]) == 0) + + +def test_build_features(): + print("\n[B5] build_features: 13 фич, без NaN на хвосте") + closes = np.array([100 + i * 0.1 for i in range(500)], dtype=float) + X = b2.build_features(closes) + check("форма (500, 13)", X.shape == (500, 13)) + check("хвост без NaN", not np.isnan(X[-10:]).any()) + check("первые 24 NaN (недостаточно истории)", np.isnan(X[:24]).all()) + + +def test_train_predict_oos(): + print("\n[B6] train_and_predict: OOS-сплит (train 70%, NaN на train)") + rng = np.random.default_rng(3) + n = 2000 + closes = 100 * np.cumprod(1 + rng.normal(0.0001, 0.01, n)) + series = {"BTC": {"closes": closes, "highs": closes * 1.001, + "lows": closes * 0.999, + "times": np.array([1700000000000 + i * 3600000 for i in range(n)])}} + probs = b2.train_and_predict(series) + p = probs["BTC"] + check("probs длина", len(p) == n) + check("train-часть NaN", np.isnan(p[:int(n * 0.7)]).all()) + check("OOS-часть числа", not np.isnan(p[int(n * 0.7):]).all()) + + +def test_engine_kill_switch(): + print("\n[B7] kill-свитч: drawdown 0.25% блокирует входы") + n = 2000 + times = np.array([1700000000000 + i * 3600000 for i in range(n)]) + # цена падает на 50% -> drawdown > 0.25% -> после первого убытка входов нет + closes = np.array([100 * (0.9995 ** i) for i in range(n)]) + series = {"BTC": {"closes": closes, "highs": closes, "lows": closes, "times": times}} + probs = {"BTC": np.full(n, 0.9)} + res = b2.run_engine(series, probs, start_idx=100) + # после срабатывания drawdown входы блокируются: сделок заметно меньше, + # чем при нормальном рынке (B3 дал > 0 при росте) + check("kill-switch ограничивает сделки", len(res["trades"]) <= 12, + f"got {len(res['trades'])}") + # и большинство — стопы в начале (до срабатывания kill) + reasons = [t["reason"] for t in res["trades"]] + check("доминируют стопы", reasons.count("stop_loss") >= len(reasons) // 2, + f"{reasons}") + + +if __name__ == "__main__": + test_fetch_pagination() + test_record_analyze() + test_engine_basic() + test_engine_no_lookahead() + test_build_features() + test_train_predict_oos() + test_engine_kill_switch() + print(f"\n===== ИТОГ: PASS {PASS} / FAIL {FAIL} =====") + sys.exit(1 if FAIL else 0) diff --git a/tests/test_local_sentiment.py b/tests/test_local_sentiment.py new file mode 100644 index 000000000..7afbc4b41 --- /dev/null +++ b/tests/test_local_sentiment.py @@ -0,0 +1,128 @@ +#!/usr/bin/env python3 +"""Tests for the local lexicon sentiment scorer (before prod deploy).""" +from __future__ import annotations + +import json +import sys +import time +from pathlib import Path + +T = Path(__file__).resolve().parent +sys.path.insert(0, str(T)) + +from news_local_sentiment import score_title, score_batch + +PASS = 0 +FAIL = 0 + + +def check(name: str, cond: bool, detail: str = ""): + global PASS, FAIL + if cond: + PASS += 1 + print(f" ✅ {name}") + else: + FAIL += 1 + print(f" ❌ {name} {detail}") + + +def test_positive(): + print("\n[L1] позитивные заголовки -> score > 0") + cases = [ + ("Bitcoin surges to new all-time high as ETF inflows soar", True), + ("Ethereum rallies on record institutional adoption", True), + ("Solana launches major partnership with Fortune 500", True), + ("Crypto market rebounds strongly, bulls in control", True), + ] + for title, want_pos in cases: + s = score_title(title) + check(f"'{title[:45]}...' -> {s:+.2f}", s > 0.2 if want_pos else s < -0.2, f"got {s}") + + +def test_negative(): + print("\n[L2] негативные заголовки -> score < 0") + cases = [ + ("Bitcoin crashes below $50k amid panic selloff", True), + ("Ethereum hacked, $100M stolen in exploit", True), + ("Binance faces regulatory crackdown and lawsuit", True), + ("Crypto market plunges, liquidations wipe out traders", True), + ] + for title, want_neg in cases: + s = score_title(title) + check(f"'{title[:45]}...' -> {s:+.2f}", s < -0.2 if want_neg else s > 0.2, f"got {s}") + + +def test_neutral(): + print("\n[L3] нейтральные -> |score| мал") + for title in ["CoinDesk launches new podcast series", + "Ethereum developers schedule monthly call", + "Crypto exchange announces new office hours"]: + s = score_title(title) + check(f"'{title[:45]}...' -> {s:+.2f}", abs(s) <= 0.3, f"got {s}") + + +def test_negation(): + print("\n[L4] отрицания инвертируют") + s1 = score_title("Bitcoin does not crash, holds steady above support") + s2 = score_title("Bitcoin not in danger, analysts say") + check(f"'does not crash' -> {s1:+.2f}", s1 > -0.2, f"got {s1}") + check(f"'not in danger' -> {s2:+.2f}", s2 > -0.2, f"got {s2}") + + +def test_amplifier(): + print("\n[L5] усилители (record/massive)") + s1 = score_title("Bitcoin rises") + s2 = score_title("Bitcoin surges to record high") + check(f"усиленный сильнее: {s1:+.2f} vs {s2:+.2f}", s2 > s1, f"got {s1} {s2}") + + +def test_real_headlines(): + print("\n[L6] реальные заголовки из фикстуры (sanity)") + rows = [json.loads(l) for l in + (T / "fixtures" / "news_historical_sample.jsonl").read_text().splitlines()] + scores = [score_title(r["title"]) for r in rows] + n_pos = sum(1 for s in scores if s > 0.2) + n_neg = sum(1 for s in scores if s < -0.2) + check(f"смесь знаков (pos {n_pos}, neg {n_neg} из {len(rows)})", + n_pos > 0 and n_neg > 0) + check("в диапазоне [-1,1]", all(-1 <= s <= 1 for s in scores)) + + +def test_consistency_deterministic(): + print("\n[L7] детерминированность и батч") + titles = ["Bitcoin surges", "Ethereum hacked", "Market flat today"] + a = score_batch(titles) + b = score_batch(titles) + check("одинаковые результаты", a == b) + + +def test_performance(): + print("\n[L8] производительность (1545 заголовков)") + # генерируем 1545 синтетических + titles = [f"Bitcoin {'surges' if i % 2 else 'crashes'} in week {i}" for i in range(1545)] + t0 = time.time() + for t in titles: + score_title(t) + dt = time.time() - t0 + check(f"1545 заголовков за {dt:.2f}s (< 5s)", dt < 5.0) + + +def test_empty_edge(): + print("\n[L9] крайние случаи") + check("пустая строка -> 0", score_title("") == 0.0) + check("только цифры -> 0", score_title("123 456") == 0.0) + check("не-ASCII безопасно", -1 <= score_title("Биткоин вырос, эфир упал") <= 1) + + +if __name__ == "__main__": + test_positive() + test_negative() + test_neutral() + test_negation() + test_amplifier() + test_real_headlines() + test_consistency_deterministic() + test_performance() + test_empty_edge() + print(f"\n===== ИТОГ: PASS {PASS} / FAIL {FAIL} =====") + sys.exit(1 if FAIL else 0) diff --git a/tests/test_momentum.py b/tests/test_momentum.py new file mode 100644 index 000000000..b63d29d24 --- /dev/null +++ b/tests/test_momentum.py @@ -0,0 +1,133 @@ +#!/usr/bin/env python3 +"""Tests for factor/momentum strategies module (before prod deploy).""" +from __future__ import annotations + +import json +import sys +import tempfile +from pathlib import Path + +import numpy as np + +T = Path(__file__).resolve().parent +sys.path.insert(0, str(T)) + +import momentum_strategies as ms + +PASS = 0 +FAIL = 0 + + +def check(name: str, cond: bool, detail: str = ""): + global PASS, FAIL + if cond: + PASS += 1 + print(f" ✅ {name}") + else: + FAIL += 1 + print(f" ❌ {name} {detail}") + + +def synth_prices(n=400, drift=0.001, seed=1): + rng = np.random.default_rng(seed) + return 100 * np.cumprod(1 + rng.normal(drift, 0.02, n)) + + +def test_sma(): + print("\n[F1] SMA расчёт") + x = np.array([1.0, 2.0, 3.0, 4.0, 5.0]) + s = ms.sma(x, 3) + check("SMA3 на последнем = 4", abs(s[-1] - 4.0) < 1e-9) + check("SMA3 первые 2 NaN", np.isnan(s[0]) and np.isnan(s[1])) + + +def test_returns(): + print("\n[F2] returns_nd") + x = np.array([100.0, 110.0, 121.0]) + r = ms.returns_nd(x, 1) + check("ret1 = 10%", abs(r[1] - 0.10) < 1e-9) + check("ret1 первые NaN", np.isnan(r[0])) + r2 = ms.returns_nd(x, 2) + check("ret2 = 21%", abs(r2[2] - 0.21) < 1e-9) + + +def test_ts_momentum_no_lookahead(): + print("\n[F3] TS-момент: нет lookahead (сигнал по вчерашнему close)") + n = 300 + ts = np.array([1700000000 + i * 86400 for i in range(n)]) + # цена растёт -> после warmup SMA200, должно быть в рынке + closes = {"BTC-USD": 100 * np.cumprod(1 + np.full(n, 0.001))} + r = ms.run_variant("T1", closes, ts, {"kind": "ts_btc"}) + check("equity length", len(r["equity"]) == n) + check("рост при растущем рынке", r["equity"][-1] > 1.0, f"got {r['equity'][-1]:.3f}") + # падающий рынок -> flat (0 доходность, без просадки) + closes2 = {"BTC-USD": 100 * np.cumprod(1 - np.full(n, 0.001))} + r2 = ms.run_variant("T1", closes2, ts, {"kind": "ts_btc"}) + check("падение -> флэт (equity ≈ 1)", abs(r2["equity"][-1] - 1.0) < 0.01, + f"got {r2['equity'][-1]:.3f}") + + +def test_costs(): + print("\n[F4] издержки применяются при ребалансе") + # плоский рынок + частый ребаланс -> equity < 1 из-за издержек + n = 300 + ts = np.array([1700000000 + i * 86400 for i in range(n)]) + flat = {"BTC-USD": np.full(n, 100.0)} + # SMA-кроссовер будет флэтом (50==200 не бывает... используем cs_mom на плоских = флэт) + r = ms.run_variant("flat", flat, ts, {"kind": "ts_btc"}) + # при ровно плоской цене btc > sma200? 100 > 100 = False -> cash -> equity 1 + check("плоский рынок -> equity ~1", abs(r["equity"][-1] - 1.0) < 1e-6) + + +def test_cs_momentum(): + print("\n[F5] CS-момент: топ-5 по моменту") + n = 400 + ts = np.array([1700000000 + i * 86400 for i in range(n)]) + closes = {} + # BTC растёт сильно, остальные плоские (без шума -> момент выберет BTC) + closes["BTC-USD"] = 100 * np.cumprod(1 + np.full(n, 0.003)) + for s in ["ETH-USD", "SOL-USD", "XRP-USD", "BNB-USD", "DOGE-USD", "ADA-USD", + "LINK-USD", "AVAX-USD", "UNI-USD", "NEAR-USD", "LTC-USD", "DOT-USD", + "TRX-USD"]: + closes[s] = np.full(n, 100.0) + r = ms.run_variant("M1", closes, ts, {"kind": "cs_mom", "lookback": 90}) + check("CS-момент находит победителя", r["equity"][-1] > 1.0, f"got {r['equity'][-1]:.3f}") + check("сделки есть", r["n_trades"] > 0) + + +def test_load_all_alignment(): + print("\n[F6] load_all: выравнивание по датам") + def transport(url, timeout=25): + n = 10 + ts = [1700000000 + i * 86400 for i in range(n)] + close = [100.0 + i for i in range(n)] + payload = {"chart": {"result": [{"timestamp": ts, + "indicators": {"quote": [{"close": close}]}}]}} + return json.dumps(payload).encode() + closes, ts = ms.load_all(transport, ["BTC-USD", "ETH-USD"], 10) + check("2 актива", len(closes) == 2) + check("10 дней выровнены", len(ts) == 10 and len(closes["BTC-USD"]) == 10) + + +def test_metrics(): + print("\n[F7] метрики корректны") + n = 400 + ts = np.array([1700000000 + i * 86400 for i in range(n)]) + up = {"BTC-USD": 100 * np.cumprod(1 + np.full(n, 0.002))} + r = ms.run_variant("up", up, ts, {"kind": "ts_btc"}) + check("CAGR > 0", r["cagr"] > 0) + check("Sharpe > 0", r["sharpe"] > 0) + check("MaxDD <= 0", r["max_dd"] <= 0) + check("total > 0", r["total_pct"] > 0) + + +if __name__ == "__main__": + test_sma() + test_returns() + test_ts_momentum_no_lookahead() + test_costs() + test_cs_momentum() + test_load_all_alignment() + test_metrics() + print(f"\n===== ИТОГ: PASS {PASS} / FAIL {FAIL} =====") + sys.exit(1 if FAIL else 0) diff --git a/tests/test_news_pipeline.py b/tests/test_news_pipeline.py new file mode 100644 index 000000000..d8bc4d742 --- /dev/null +++ b/tests/test_news_pipeline.py @@ -0,0 +1,372 @@ +#!/usr/bin/env python3 +"""Local tests for the historical news pipeline (before prod deploy). + +Covers: + T1 fetch_historical_news.parse_rss - RSS parsing (empty titles skipped) + T2 fetch_historical_news snapshot select - step-hours + limit logic + T3 score_historical_sentiment.score_batch - Gemini ```json``` response parsing + T4 score_historical_sentiment.main - merge/resume/relabel with fake scorer + T5 sentiment_price_historical.detect_coins - coin alias matching + T6 sentiment_price_historical end-to-end - news->price correlation on synthetic data +""" +from __future__ import annotations + +import importlib.util +import json +import re +import sys +import tempfile +from pathlib import Path + +import numpy as np +import pandas as pd + +T = Path(__file__).resolve().parent +sys.path.insert(0, str(T)) + +# scripts live in ../scripts on the server, next to the test locally +SCRIPT_DIR = (T.parent / "scripts") if (T.parent / "scripts").exists() else T + +import fake_quant_monthly_backtest as fake_qmb # noqa: E402 + +# pre-register so `import quant_monthly_backtest as qmb` resolves to the fake +sys.modules["quant_monthly_backtest"] = fake_qmb + +PASS = 0 +FAIL = 0 + + +def check(name: str, cond: bool, detail: str = ""): + global PASS, FAIL + if cond: + PASS += 1 + print(f" ✅ {name}") + else: + FAIL += 1 + print(f" ❌ {name} {detail}") + + +def load_module(name: str, path: Path): + spec = importlib.util.spec_from_file_location(name, path) + mod = importlib.util.module_from_spec(spec) + spec.loader.exec_module(mod) + return mod + + +# ---------------------------------------------------------------- T1, T2 +def test_fetch_parsing(): + print("\n[T1] parse_rss") + fetch = load_module("fetch_historical_news", SCRIPT_DIR / "fetch_historical_news.py") + raw = (T / "fixtures" / "rss_sample.xml").read_bytes() + items = fetch.parse_rss(raw) + check("2 элемента (пустой title пропущен)", len(items) == 2) + check("поля корректны", + items[0]["title"].startswith("Bitcoin") and "pub" in items[0] + and items[0]["pub"].startswith("Sat")) + check("pubDate RFC822 сохранён", "15 Aug 2026" in items[0]["pub"]) + + +def test_snapshot_selection(): + print("\n[T2] выбор снапшотов (step-hours + limit)") + fetch = load_module("fetch_historical_news", SCRIPT_DIR / "fetch_historical_news.py") + from datetime import datetime, timedelta, timezone + snaps = [] + d0 = datetime(2025, 8, 1, tzinfo=timezone.utc) + for day in range(0, 365, 3): # раз в 3 дня за год + snaps.append((d0 + timedelta(days=day)).strftime("%Y%m%d%H%M%S")) + orig = fetch.list_snapshots + fetch.list_snapshots = lambda: snaps + # перехват main-логики через вызов функции с mocked get + selected = [] + last_ts = None + for s in snaps: + ts = pd.Timestamp(s, tz="UTC") + if last_ts is None or (ts - last_ts) >= pd.Timedelta(hours=40): + selected.append((s, ts)) + last_ts = ts + selected = selected[:50] + check("шаг 40ч отбирает ~1/6 снапшотов", 40 <= len(selected) <= 80) + check("limit работает", len(selected) == 50) + fetch.list_snapshots = orig + + +# ---------------------------------------------------------------- T3 +class FakeResp: + def __init__(self, text: str): + self._text = text + + def read(self): + return json.dumps({"candidates": [{"content": {"parts": [{"text": self._text}]}}]}).encode() + + def __enter__(self): + return self + + def __exit__(self, *a): + return False + + +def test_score_batch_parsing(): + print("\n[T3] score_batch: парсинг ответа Gemini (```json ... ```)") + score = load_module("score_historical_sentiment", SCRIPT_DIR / "score_historical_sentiment.py") + gemini_answer = '```json\n[\n {"sentiment": 0.6},\n {"sentiment": -0.7},\n {"sentiment": 0.0}\n]\n```' + import urllib.request + orig = urllib.request.urlopen + urllib.request.urlopen = lambda req, timeout=60: FakeResp(gemini_answer) + try: + res = score.score_batch("fake-key", ["a", "b", "c"]) + finally: + urllib.request.urlopen = orig + check("парсинг массива из ```json```", res == [0.6, -0.7, 0.0], f"got {res}") + # ответ без JSON + urllib.request.urlopen = lambda req, timeout=60: FakeResp("просто текст") + try: + res2 = score.score_batch("fake-key", ["a"]) + finally: + urllib.request.urlopen = orig + check("нет JSON -> None", res2 is None) + + +# ---------------------------------------------------------------- T4 +def test_scoring_main(): + print("\n[T4] main(): merge + resume + relabel (мок Gemini)") + score = load_module("score_historical_sentiment", SCRIPT_DIR / "score_historical_sentiment.py") + + with tempfile.TemporaryDirectory() as tmp: + src = Path(tmp) / "news_historical.jsonl" + out = Path(tmp) / "scored.jsonl" + # исходник: 6 новостей + news = [json.loads(l) for l in + (T / "fixtures" / "news_historical_sample.jsonl").read_text().splitlines()][:6] + with open(src, "w") as f: + for r in news: + f.write(json.dumps(r) + "\n") + # out: 2 уже оценены (resume-кейс) + scored2 = [dict(news[0], sentiment=0.5, label="positive"), + dict(news[1], sentiment=-0.8, label="negative")] + with open(out, "w") as f: + for r in scored2: + f.write(json.dumps(r) + "\n") + + score.SRC = src + score.OUT = out + score.gemini_keys = lambda: ["k1"] + fake_scores = [0.6, -0.7, 0.0, 0.9] + calls = {"n": 0} + orig_sleep = score.time.sleep + + def fake_score_batch(key, titles): + calls["n"] += 1 + return fake_scores[:len(titles)] + + score.score_batch = fake_score_batch + score.time.sleep = lambda s: None + try: + rc = score.main() + finally: + score.time.sleep = orig_sleep + rows = [json.loads(l) for l in out.read_text().splitlines()] + check("exit 0", rc == 0) + check("все 6 записаны", len(rows) == 6, f"got {len(rows)}") + check("resume: старые оценки не тронуты", + any(r["url"] == news[0]["url"] and r["sentiment"] == 0.5 for r in rows)) + check("новые оценены", + any(r["url"] == news[2]["url"] and r["sentiment"] == 0.6 for r in rows)) + check("labels корректны", + any(r["url"] == news[3]["url"] and r["label"] == "negative" for r in rows) + and any(r["url"] == news[4]["url"] and r["label"] == "neutral" for r in rows)) + check("1 батч (6 заголовков, batch 8)", calls["n"] == 1) + + # resume: повторный запуск не пересчитывает + with tempfile.TemporaryDirectory() as tmp: + src = Path(tmp) / "n.jsonl" + out = Path(tmp) / "s.jsonl" + news = [json.loads(l) for l in + (T / "fixtures" / "news_historical_sample.jsonl").read_text().splitlines()][:3] + with open(src, "w") as f: + for r in news: + f.write(json.dumps(r) + "\n") + with open(out, "w") as f: + for r in news: + f.write(json.dumps(dict(r, sentiment=0.1, label="neutral")) + "\n") + score.SRC, score.OUT = src, out + calls["n"] = 0 + score.score_batch = fake_score_batch + score.time.sleep = lambda s: None + try: + score.main() + finally: + score.time.sleep = orig_sleep + check("resume: ничего не пересчитывается", calls["n"] == 0) + + +# ---------------------------------------------------------------- T5 +def test_detect_coins(): + print("\n[T5] detect_coins") + sph = load_module("sentiment_price_historical", SCRIPT_DIR / "sentiment_price_historical.py") + check("Bitcoin -> BTC", sph.detect_coins("Bitcoin to $1M by 2030") == ["BTC"]) + check("Ethereum -> ETH", sph.detect_coins("Ethereum gas fees hit yearly low") == ["ETH"]) + check("Solana -> SOL", sph.detect_coins("Solana treasury earns $2.5M") == ["SOL"]) + check("без монет -> []", sph.detect_coins("Crypto market cap falls below $2T") == []) + check("near не матчит 'year'", sph.detect_coins("Near Protocol AI agents") == ["NEAR"]) + check("binance -> BNB", "BNB" in sph.detect_coins("Binance faces regulatory probe")) + check("множественные", set(sph.detect_coins("Bitcoin and Ethereum ETF flows")) == {"BTC", "ETH"}) + + +# ---------------------------------------------------------------- T6 +def test_end_to_end(): + print("\n[T6] end-to-end: новости -> цены -> корреляция") + sph = load_module("sentiment_price_historical", SCRIPT_DIR / "sentiment_price_historical.py") + + news = [json.loads(l) for l in + (T / "fixtures" / "news_historical_sample.jsonl").read_text().splitlines()] + # сентименты: детерминированные по индексу (чередуем +/- + for i, r in enumerate(news): + r["sentiment"] = 0.7 if i % 2 == 0 else -0.7 + r["label"] = "positive" if i % 2 == 0 else "negative" + + # строим бампы: новость в час h -> +1%/-1% с h+1 + bumps: dict[str, dict[int, float]] = {} + START_TS = int(pd.Timestamp("2025-09-01", tz="UTC").timestamp()) + for r in news: + pub = r["pub"] + m = re.search(r"\d{1,2} \w+ \d{4} \d{2}:\d{2}", pub) + t = pd.to_datetime(m.group(0), format="%d %b %Y %H:%M", utc=True) + h = int((t.timestamp() - START_TS) // 3600) + if h < 0 or h >= 8700: + continue + sym = sph.detect_coins(r["title"]) or ["BTC"] + for s in sym: + bumps.setdefault(s, {})[h + 1] = 0.01 if r["sentiment"] > 0 else -0.01 + fake_qmb.set_bumps(bumps) + + # пишем временный файл новостей с сентиментом + with tempfile.TemporaryDirectory() as tmp: + nf = Path(tmp) / "news.jsonl" + with open(nf, "w") as f: + for r in news: + f.write(json.dumps(r) + "\n") + orig_newspath = sph.NEWS + sph.NEWS = nf + orig_argv = sys.argv + sys.argv = ["sph", "--min-n", "5"] + try: + rc = sph.main() + finally: + sph.NEWS = orig_newspath + sys.argv = orig_argv + check("exit 0", rc == 0) + # прямой расчёт корреляции на синтетике + check("sanity: синтетика даёт положительную корреляцию на 1h", + _direct_corr(news, bumps, START_TS, sph) > 0.5) + + +def _direct_corr(news, bumps, start_ts, sph_mod): + """Per-coin bump for each news (like the prod code does).""" + sents, rets = [], [] + for r in news: + m = re.search(r"\d{1,2} \w+ \d{4} \d{2}:\d{2}", r["pub"]) + t = pd.to_datetime(m.group(0), format="%d %b %Y %H:%M", utc=True) + h = int((t.timestamp() - start_ts) // 3600) + if h < 0 or h >= 8700: + continue + sym = sph_mod.detect_coins(r["title"]) or ["BTC"] + for s in sym: + b = bumps.get(s, {}).get(h + 1, 0.0001) + sents.append(r["sentiment"]) + rets.append(b * 100) + return float(np.corrcoef(sents, rets)[0, 1]) if len(sents) > 2 else 0.0 + + + + +# ---------------------------------------------------------------- T7 +def test_fetch_main_flow(): + print("\n[T7] fetch main(): полный цикл с моком (дедуп + запись)") + fetch = load_module("fetch_historical_news", SCRIPT_DIR / "fetch_historical_news.py") + + with tempfile.TemporaryDirectory() as tmp: + out = Path(tmp) / "news_historical.jsonl" + fetch.OUT = out + # 3 снапшота, RSS-фикстура возвращается дважды (одни и те же статьи) + fetch.list_snapshots = lambda: ["20250801000000", "20250901000000", "20251001000000"] + rss = (T / "fixtures" / "rss_sample.xml").read_bytes() + fetch.get = lambda url, timeout=40: rss + orig_sleep = fetch.time.sleep + fetch.time.sleep = lambda s: None + try: + rc = fetch.main() + finally: + fetch.time.sleep = orig_sleep + rows = [json.loads(l) for l in out.read_text().splitlines()] if out.exists() else [] + check("exit 0", rc == 0) + check("уникальные статьи (дедуп по url)", len(rows) == 2, f"got {len(rows)}") + check("поля сохранены", all(r.get("title") and r.get("pub") for r in rows)) + # повторный запуск — дедуп с уже записанным + fetch.list_snapshots = lambda: ["20251101000000"] + fetch.time.sleep = lambda s: None + try: + fetch.main() + finally: + fetch.time.sleep = orig_sleep + rows2 = [json.loads(l) for l in out.read_text().splitlines()] + check("повторный запуск не дублирует", len(rows2) == 2, f"got {len(rows2)}") + + + +# ---------------------------------------------------------------- T8 +def test_key_validation(): + print("\n[T8] gemini_keys: лояльная валидация (429/timeout не отбрасывают)") + score = load_module("score_historical_sentiment", SCRIPT_DIR / "score_historical_sentiment.py") + import urllib.request, urllib.error + + env_file = Path(tempfile.mkdtemp()) / ".env" + env_file.write_text("GEMINI_API_KEY_1=goodkey1\nGEMINI_API_KEY_2=badkey2\n" + "GEMINI_API_KEY_3=limited3\n") + score.ROOT = env_file.parent + + class Resp: + def __enter__(self): return self + def __exit__(self, *a): return False + def read(self): return b'{}' + + class Err429(urllib.error.HTTPError): + def __init__(self): + super().__init__("u", 429, "Too Many", None, None) + + class Err404(urllib.error.HTTPError): + def __init__(self): + super().__init__("u", 404, "Not Found", None, None) + + responses = {"goodkey1": Resp(), "badkey2": Err404(), "limited3": Err429()} + orig = urllib.request.urlopen + + def fake_urlopen(req, timeout=20): + url = req.full_url + for k in responses: + if f"key={k}" in url: + r = responses[k] + if isinstance(r, Exception): + raise r + return r + raise Err404() + + urllib.request.urlopen = fake_urlopen + try: + keys = score.gemini_keys() + finally: + urllib.request.urlopen = orig + check("рабочий ключ сохранён", "goodkey1" in keys) + check("404-ключ отброшен", "badkey2" not in keys) + check("429-ключ сохранён (транзиентный)", "limited3" in keys) + +if __name__ == "__main__": + test_fetch_parsing() + test_snapshot_selection() + test_score_batch_parsing() + test_scoring_main() + test_detect_coins() + test_end_to_end() + test_fetch_main_flow() + test_key_validation() + print(f"\n===== ИТОГ: PASS {PASS} / FAIL {FAIL} =====") + sys.exit(1 if FAIL else 0) diff --git a/tests/test_quant_directional_v2.py b/tests/test_quant_directional_v2.py index 49831f1f2..b080d693d 100644 --- a/tests/test_quant_directional_v2.py +++ b/tests/test_quant_directional_v2.py @@ -151,3 +151,97 @@ def test_market_universe_uses_current_asset_symbols(): assert "RNDR" not in DEFAULT_SYMBOLS assert "POL" in DEFAULT_SYMBOLS assert "MATIC" not in DEFAULT_SYMBOLS + +def _open_position(data, symbol="BTCUSD", *, max_seen=100.0, entry_mid=100.0, + quantity=None, opened_seconds_ago=10_000): + """Place a LONG position in the kraken portfolio (mirrors test_stop_loss fixture).""" + quantity = quantity or (199.7 / 100.1) + entry_execution_cost = quantity * 0.1 + data["kraken"].update( + { + "cash_usd": 800.0, + "entry_count": 1, + "total_trades": 1, + "closed_trades": 0, + "fees_paid_usd": 0.3, + "execution_costs_usd": entry_execution_cost, + "positions": { + symbol: { + "side": "LONG", + "entry_price": 100.1, + "entry_mid_price": entry_mid, + "qty": quantity, + "invested_usd": 200.0, + "entry_fee_usd": 0.3, + "entry_execution_cost_usd": entry_execution_cost, + "max_price_seen": max_seen, + "opened_at": time.time() - opened_seconds_ago, + } + }, + } + ) + + +@pytest.mark.parametrize( + "trail_env,mid_price,max_seen,expected_close", + [ + # default 0.988: pullback to 101.2 from peak 101.5 does NOT trigger (101.2 > 100.28) + (None, 101.2, 101.5, False), + ("0.988", 101.2, 101.5, False), + # hard trail 1.0: any pullback from the peak after +1% closes the position + ("1.0", 101.2, 101.5, True), + ], +) +def test_trail_ratio_from_env_controls_trailing_stop(monkeypatch, tmp_path, trail_env, mid_price, + max_seen, expected_close): + monkeypatch.delenv("AIOS_QUANT_ENTRY_MODE", raising=False) + if trail_env is not None: + monkeypatch.setenv("AIOS_QUANT_TRAIL_RATIO", trail_env) + else: + monkeypatch.delenv("AIOS_QUANT_TRAIL_RATIO", raising=False) + engine = _engine(tmp_path, {"signal": "HOLD", "confidence": 0.5}, price=mid_price) + data = engine.load_portfolios() + _open_position(data, max_seen=max_seen) + engine.save_portfolios(data) + + result = engine.run_multi_exchange_cycle() + portfolio = engine.load_portfolios()["kraken"] + + if expected_close: + closes = [t for t in result["cycle_trades"] if t["action"] == "CLOSE"] + assert len(closes) == 1 + assert closes[0]["reason"] == "trailing_stop" + assert portfolio["positions"] == {} + else: + assert portfolio["positions"].get("BTCUSD") is not None + + +def test_take_profit_and_stop_loss_from_env(monkeypatch, tmp_path): + """TP/SL thresholds are configurable via env (fail-closed defaults preserved).""" + monkeypatch.delenv("AIOS_QUANT_ENTRY_MODE", raising=False) + monkeypatch.setenv("AIOS_QUANT_TAKE_PROFIT_PCT", "0.01") # TP at +1% + monkeypatch.setenv("AIOS_QUANT_STOP_LOSS_PCT", "-0.005") # SL at -0.5% + # price +2.0% above entry: net +1.49% after costs — TP env 0.01 fires, default 2.0 would not + engine = _engine(tmp_path, {"signal": "HOLD", "confidence": 0.5}, price=102.0) + data = engine.load_portfolios() + _open_position(data) + engine.save_portfolios(data) + + result = engine.run_multi_exchange_cycle() + portfolio = engine.load_portfolios()["kraken"] + closes = [t for t in result["cycle_trades"] if t["action"] == "CLOSE"] + assert len(closes) == 1 + assert closes[0]["reason"] == "take_profit" + assert portfolio["positions"] == {} + assert portfolio["closed_trades"] == 1 + assert portfolio["winning_trades"] == 1 + + +def test_exit_params_defaults_preserve_legacy_behaviour(): + """Defaults must equal the pre-config values (2.0% / -1.0% / 0.988).""" + from aios_core.quant_directional_policy import DirectionalV2Config + + cfg = DirectionalV2Config() + assert cfg.take_profit_pct == 0.02 + assert cfg.stop_loss_pct == -0.01 + assert cfg.trail_ratio == 0.988 diff --git a/tests/test_systemd_inventory.py b/tests/test_systemd_inventory.py index 0d6d0576f..ea88f51d5 100644 --- a/tests/test_systemd_inventory.py +++ b/tests/test_systemd_inventory.py @@ -24,7 +24,12 @@ def test_hetzner_installed_units_are_represented() -> None: inventory = repository_unit_inventory(ROOT) assert len(installed) == 159 - assert masks == {"aios-auto-coder.service", "aios-auto-promote.service", "aios-auto-promote.timer"} + assert masks == { + "aios-auto-coder.service", + "aios-auto-promote.service", + "aios-auto-promote.timer", + "aios-groq-key.service", + } assert installed <= inventory["represented_names"] assert inventory["represented_names"] >= OPTIONAL_NOT_INSTALLED_UNITS diff --git a/tests/test_t2_paper.py b/tests/test_t2_paper.py new file mode 100644 index 000000000..ef4942913 --- /dev/null +++ b/tests/test_t2_paper.py @@ -0,0 +1,200 @@ +#!/usr/bin/env python3 +"""Tests for T2 paper loop (before prod deploy).""" +from __future__ import annotations + +import json +import sys +import tempfile +from pathlib import Path + +import numpy as np + +T = Path(__file__).resolve().parent +sys.path.insert(0, str(T)) + +import run_t2_momentum as t2 + +PASS = 0 +FAIL = 0 + + +def check(name: str, cond: bool, detail: str = ""): + global PASS, FAIL + if cond: + PASS += 1 + print(f" ✅ {name}") + else: + FAIL += 1 + print(f" ❌ {name} {detail}") + + +def make_rows(n=120, drift=0.001, seed=1, start_close=100.0): + """Synthetic daily closes.""" + rng = np.random.default_rng(seed) + closes = [start_close] + for i in range(1, n): + closes.append(closes[-1] * (1 + drift + rng.normal(0, 0.02))) + import time + base = 1700000000 + rows = [] + for i, c in enumerate(closes): + rows.append({"date": time.strftime("%Y-%m-%d", time.gmtime(base + i * 86400)), + "close": float(c)}) + return rows + + +def test_signal(): + print("\n[T1] сигнал close vs SMA50") + rows = make_rows(120, drift=0.005) # растущий рынок + sig = t2.compute_signal(rows) + check("длинный тренд -> LONG", sig["signal"] == "LONG", str(sig)) + rows2 = make_rows(120, drift=-0.005) + sig2 = t2.compute_signal(rows2) + check("падающий тренд -> CASH", sig2["signal"] == "CASH", str(sig2)) + # мало истории + rows3 = make_rows(30) + sig3 = t2.compute_signal(rows3) + check("мало истории -> CASH (reason)", sig3["signal"] == "CASH" and sig3["sma50"] is None) + + +def test_fetch_fallback(): + print("\n[T2] fetch_closes: Yahoo + фолбэк Binance") + n = 120 + yahoo_payload = {"chart": {"result": [{ + "timestamp": [1700000000 + i * 86400 for i in range(n)], + "indicators": {"quote": [{"close": [100.0 + i for i in range(n)]}]}}]}} + + def transport(url, timeout=25): + if "yahoo" in url: + return json.dumps(yahoo_payload).encode() + raise AssertionError("no binance needed") + + rows = t2.fetch_closes(transport) + check("Yahoo работает", len(rows) == n and rows[-1]["close"] == 100.0 + n - 1) + + # Yahoo падает -> Binance + binance_payload = [[(1700000000 + i * 86400) * 1000, "0", "0", "0", + str(200.0 + i), "0", 0, "0", 0, "0", "0", "0"] for i in range(n)] + + def transport2(url, timeout=25): + if "yahoo" in url: + raise RuntimeError("yahoo down") + return json.dumps(binance_payload).encode() + + rows2 = t2.fetch_closes(transport2) + check("фолбэк Binance", len(rows2) == n and rows2[-1]["close"] == 200.0 + n - 1) + + # оба падают -> исключение + def transport3(url, timeout=25): + raise RuntimeError("all down") + + try: + t2.fetch_closes(transport3) + check("исключение при обоих сбоях", False) + except RuntimeError: + check("исключение при обоих сбоях", True) + + +def test_daily_idempotent(): + print("\n[T3] идемпотентность (повторный запуск не дублирует)") + with tempfile.TemporaryDirectory() as tmp: + state = Path(tmp) / "state.json" + log = Path(tmp) / "log.jsonl" + rows = make_rows(120, drift=0.005) + r1 = t2.run_daily(state, log, rows) + check("первый запуск ok", r1["status"] == "ok") + n1 = len(log.read_text().splitlines()) + r2 = t2.run_daily(state, log, rows) + check("повторный — already_processed", r2["status"] == "already_processed") + n2 = len(log.read_text().splitlines()) + check("лог не задвоился", n1 == n2 == 1, f"{n1} vs {n2}") + + +def test_position_change_costs(): + print("\n[T4] смена позиции: издержки и трейды") + with tempfile.TemporaryDirectory() as tmp: + state = Path(tmp) / "state.json" + log = Path(tmp) / "log.jsonl" + # растущий рынок: первый запуск войдёт в LONG + rows_up = make_rows(120, drift=0.005) + r1 = t2.run_daily(state, log, rows_up) + check("вход в LONG", r1["position"] == "LONG") + st = json.loads(state.read_text()) + check("издержки 0.15% применены (вход)", abs(st["equity"] - 10000 * 0.9985) < 1e-6, + f"equity {st['equity']}") + check("трейд записан", len(st["trades"]) == 1) + check("entry_price = close", st["entry_price"] == rows_up[-1]["close"]) + # теперь падающий рынок: новые данные -> выход в CASH. + # последний день делаем плоским (close == prev), чтобы изолировать издержки + rows_down = rows_up[:-1] + make_rows(60, drift=-0.01, start_close=rows_up[-1]["close"] * 0.95) + rows_down[-1] = dict(rows_down[-2]) + eq_before_exit = json.loads(state.read_text())["equity"] + r2 = t2.run_daily(state, log, rows_down) + check("выход в CASH", r2["position"] == "CASH") + st = json.loads(state.read_text()) + check("издержки 0.15% при выходе", abs(st["equity"] - eq_before_exit * 0.9985) < 1e-6, + f"{st['equity']} vs {eq_before_exit*0.9985}") + check("2 трейда", len(st["trades"]) == 2) + check("exit: entry_price None", st["entry_price"] is None) + check("equity > 0 (сохранена)", st["equity"] > 0) + + +def test_equity_marking(): + print("\n[T5] equity: close/close в позиции") + with tempfile.TemporaryDirectory() as tmp: + state = Path(tmp) / "state.json" + log = Path(tmp) / "log.jsonl" + # входим в LONG + rows_up = make_rows(120, drift=0.005) + t2.run_daily(state, log, rows_up) + st0 = json.loads(state.read_text()) + eq0 = st0["equity"] + # следующий день: цена +1% -> equity должна вырасти на 1% + last = rows_up[-1] + nxt = {"date": "2099-01-01", "close": last["close"] * 1.01} + rows2 = rows_up + [nxt] + r = t2.run_daily(state, log, rows2) + st = json.loads(state.read_text()) + check("equity *1.01 в позиции", abs(st["equity"] - eq0 * 1.01) < 1e-6, + f"{st['equity']} vs {eq0*1.01}") + + +def test_bh_reference(): + print("\n[T6] buy&hold эталон (cash_equiv)") + with tempfile.TemporaryDirectory() as tmp: + state = Path(tmp) / "state.json" + log = Path(tmp) / "log.jsonl" + rows = make_rows(120, drift=0.005) + t2.run_daily(state, log, rows) + st = json.loads(state.read_text()) + exp_bh = 10000.0 * rows[-1]["close"] / rows[-2]["close"] + check("cash_equiv = close[-1]/close[-2]", abs(st["cash_equiv"] - exp_bh) < 1e-6, + f"{st['cash_equiv']} vs {exp_bh}") + # повторный запуск того же дня не меняет cash_equiv (идемпотентность) + t2.run_daily(state, log, rows) + st2 = json.loads(state.read_text()) + check("идемпотентность BH", abs(st2["cash_equiv"] - st["cash_equiv"]) < 1e-9) + + +def test_log_format(): + print("\n[T7] формат лога") + with tempfile.TemporaryDirectory() as tmp: + state = Path(tmp) / "state.json" + log = Path(tmp) / "log.jsonl" + rows = make_rows(120, drift=0.005) + t2.run_daily(state, log, rows) + entry = json.loads(log.read_text().splitlines()[0]) + for k in ("date", "close", "sma50", "signal", "position", "equity", "bh_equity"): + check(f"поле {k}", k in entry) + + +if __name__ == "__main__": + test_signal() + test_fetch_fallback() + test_daily_idempotent() + test_position_change_costs() + test_equity_marking() + test_bh_reference() + test_log_format() + print(f"\n===== ИТОГ: PASS {PASS} / FAIL {FAIL} =====") + sys.exit(1 if FAIL else 0) diff --git a/tg_bot/quant_cmds.py b/tg_bot/quant_cmds.py new file mode 100644 index 000000000..62531f286 --- /dev/null +++ b/tg_bot/quant_cmds.py @@ -0,0 +1,148 @@ +#!/usr/bin/env python3 +"""/quant command for the Telegram bot: status of all quant/portfolio services. + +Reads runtime state files and service statuses; returns a compact HTML summary. +Kept OUTSIDE run_telegram_bot.py (protected) so the bot file needs only a thin +wrapper + dispatch branch. +""" + +from __future__ import annotations + +import json +import sqlite3 +import subprocess +from pathlib import Path + +ROOT = Path("/root/AIOS") + + +def _fmt_num(v: float) -> str: + return f"{v:,.0f}".replace(",", " ") + + +def cmd_quant() -> str: + lines = ["📊 Quant-контуры", ""] + + # MM-сигналы: точность + try: + r = subprocess.run(["/opt/aios/.venv/bin/python", "scripts/mm_signal_score.py"], + capture_output=True, text=True, timeout=60, cwd=str(ROOT)) + out = [l for l in r.stdout.strip().split("\n") if l and "эмиссий" not in l] + if out: + lines.append("📡 MM-сигналы:") + lines.extend(f" {l}" for l in out) + else: + lines.append("📡 MM-сигналы: нет данных") + except Exception as e: + lines.append(f"📡 MM: ошибка ({e})") + + # ws-данные + try: + con = sqlite3.connect(str(ROOT / "data/quant/orderbooks.sqlite")) + n = con.execute("SELECT COUNT(*) FROM snapshots_ws").fetchone()[0] + h = (con.execute("SELECT MAX(ts)-MIN(ts) FROM snapshots_ws").fetchone()[0] or 0) / 3600 + nt = con.execute("SELECT COUNT(*) FROM trades_ws").fetchone()[0] + con.close() + lines.append(f"🌊 ws-данные: {_fmt_num(n)} снапшотов ({h:.1f} ч), " + f"trade-flow {_fmt_num(nt)} записей") + except Exception as e: + lines.append(f"🌊 ws: ошибка ({e})") + + # DCA + try: + s = json.loads((ROOT / "data/dca_paper_state.json").read_text()) + vlog = [json.loads(l) for l in + (ROOT / "data/dca_paper_value.jsonl").read_text().splitlines() if l] + val = vlog[-1]["value_usd"] if vlog else 0.0 + dep = float(s.get("deposited_usd", 0)) + pnl = val - dep + pct = pnl / dep * 100 if dep else 0 + lines.append(f"📈 DCA: ${dep:.0f} → ${val:.2f} ({pnl:+.2f}$ / {pct:+.1f}%)") + except Exception as e: + lines.append(f"📈 DCA: ошибка ({e})") + + # A/B paper + try: + m = json.loads((ROOT / "data/multi_exchange_portfolios_owner_paper.json").read_text()) + c = json.loads((ROOT / "data/multi_exchange_portfolios_owner_paper_control.json").read_text()) + tm = sum(p.get("total_trades", 0) for p in m.values() if isinstance(p, dict)) + tc = sum(p.get("total_trades", 0) for p in c.values() if isinstance(p, dict)) + lines.append(f"⚖️ A/B: main (trail 1.0) {tm} | control (0.988) {tc} сделок") + except Exception as e: + lines.append(f"⚖️ A/B: ошибка ({e})") + + # новостной сентимент + try: + import json as _j + rows = [_j.loads(l) for l in + (ROOT / "data" / "quant" / "news_sentiment.jsonl").read_text().splitlines() if l] + if rows: + pos = sum(1 for r in rows if r["sentiment"] > 0.2) + neg = sum(1 for r in rows if r["sentiment"] < -0.2) + last = rows[-1] + avg = sum(r["sentiment"] for r in rows[-50:]) / max(1, len(rows[-50:])) + lines.append(f"📰 Сентимент: {len(rows)} новостей (pos {pos} / neg {neg}), " + f"avg(50) {avg:+.2f}, последняя {last['label']}") + except Exception: + pass + # Fear & Greed + try: + import json as _j + ctx = _j.loads((ROOT / "data" / "quant" / "market_context_latest.json").read_text()) + fng = ctx.get("fng", {}) + if fng.get("value") is not None: + lines.append(f"😨 Fear&Greed: {fng['value']} ({fng['class']})") + except Exception: + pass + # T2 momentum (BTC/ETH/SOL/BNB/NEAR) + for tag, fname in (("BTC", "t2_paper_state.json"), ("ETH", "t2_paper_state_ethusd.json"), + ("SOL", "t2_paper_state_solusd.json"), + ("BNB", "t2_paper_state_bnbusd.json"), + ("NEAR", "t2_paper_state_nearusd.json")): + try: + import json as _j + st = _j.loads((ROOT / "data" / fname).read_text()) + eq = float(st.get("equity", 0)) + bh = float(st.get("cash_equiv", 0)) + pct = (eq / 10000 - 1) * 100 if eq else 0 + lines.append(f"📈 T2-{tag} (SMA50): {st.get('position')} | equity ${eq:,.0f} " + f"({pct:+.1f}%) | BH ${bh:,.0f} | сделок {len(st.get('trades', []))}") + except Exception: + pass + # T2 portfolio + try: + import json as _j + lines_p = [_j.loads(l) for l in + (ROOT / "data" / "t2_portfolio_equity.jsonl").read_text().splitlines() if l] + if lines_p: + last = lines_p[-1] + port = float(last["portfolio"]); bh = float(last["bh"]) + pct = (port / 10000 - 1) * 100 + bh_pct = (bh / 10000 - 1) * 100 + lines.append(f"🧺 T2-портфель (3 актива): ${port:,.0f} ({pct:+.1f}%) | BH {bh_pct:+.1f}%") + except Exception: + pass + # funding/OI + try: + fdir = ROOT / "data/quant/funding_oi" + days = len(list(fdir.glob("daily_BTC.jsonl"))) + if days: + lines.append(f"💧 Funding/OI: {days} дн истории") + except Exception: + pass + + # сервисы + try: + svc = subprocess.run( + ["systemctl", "is-active", + "aios-orderbook-ws.service", "aios-mm-signal-monitor.timer", + "aios-mm-signal-emitter.timer", "aios-dca-paper.timer", + "aios-funding-oi-daily.timer", "aios-quant-trading.service", + "aios-quant-trading-control.service"], + capture_output=True, text=True, timeout=30) + st = svc.stdout.strip().split("\n") + lines.append(f"🖥 Сервисы: {', '.join(st)}") + except Exception as e: + lines.append(f"🖥 сервисы: ошибка ({e})") + + return "\n".join(lines) diff --git a/tg_bot/voice.py b/tg_bot/voice.py index 6feb3ae28..318927d20 100644 --- a/tg_bot/voice.py +++ b/tg_bot/voice.py @@ -1,6 +1,7 @@ """Голосовые ответы и транскрибация (выделено из run_telegram_bot.py).""" from __future__ import annotations +import contextlib import json import os import subprocess @@ -42,7 +43,11 @@ def _send_voice_reply(api, chat_id: int, text: str) -> bool: tts = gTTS(text=clean, lang="ru") path = f"/tmp/aios_voice_reply_{int(time.time() * 1000)}.mp3" tts.save(path) - api.send_voice(chat_id, path) + try: + api.send_voice(chat_id, path) + finally: + with contextlib.suppress(OSError): # TTS-аудио не храним локально + os.unlink(path) return True except Exception as e: print(f" [VOICE-REPLY] err: {e}") @@ -50,6 +55,22 @@ def _send_voice_reply(api, chat_id: int, text: str) -> bool: def _transcribe_audio(path: str) -> str: + """Распознать голосовое/аудио; временный файл /tmp/aios_tg_* удаляется после распознавания.""" + try: + return _transcribe_audio_keep(path) + finally: + # Скачанные от Telegram аудио не храним: скачали - распознали - удалили + try: + if (os.path.basename(path).startswith("aios_tg_") + and os.path.dirname(os.path.abspath(path)) == "/tmp" + and os.path.exists(path)): + os.unlink(path) + print(f" [VOICE] temp audio removed: {path}") + except Exception: + pass + + +def _transcribe_audio_keep(path: str) -> str: """Распознать голосовое или аудиозапись через AIOS Whisper & Neural Diarization Engine.""" try: from aios_core.whisper_colab_transcriber import transcribe_audio_call, generate_call_summary