Archived
research(5m): разбор 133 источников по 5 направлениям + сводка «что брать в бэктест»
ЧТО: directions/*.md+json (поток заявок, кросс-секция, издержки и исполнение, ML, волатильность), сводный sources/ALL_SOURCES.json (133 источника с URL, горизонтом, заложенными издержками, вердиктом), docs/SYNTHESIS.md — итог со страницы вики. ПОЧЕМУ: сверить наши прогоны с литературой и взять готовые проверяемые формулировки правил. ГЛАВНОЕ: ни одной работы с net-плюсом на 1-15м при издержках >=10 б.п.; пик валового эджа 1,3 б.п. на 15м и 0,15 б.п. на 5м (Kitron & Wengrowicz 2026, 183 пары) против нашего круга 11 б.п. КАК ПРОВЕРЕНО: JSON всех пяти направлений валидны (15/24/27/29/38 = 133 записи), отчёты 43-61 КБ.
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,33 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Свод источников исследования 5м-стратегий: объединение 5 направлений + выборка «что брать в бэктест»."""
|
||||
import glob
|
||||
import json
|
||||
import os
|
||||
|
||||
D = "/opt/data/work/5m_research/directions"
|
||||
OUT = "/opt/data/work/5m_research/sources/ALL_SOURCES.json"
|
||||
|
||||
all_src = []
|
||||
for path in sorted(glob.glob(os.path.join(D, "*.json"))):
|
||||
direction = os.path.basename(path).replace(".json", "")
|
||||
try:
|
||||
items = json.load(open(path, encoding="utf-8"))
|
||||
except Exception as e:
|
||||
print(f"{direction}: НЕ ЧИТАЕТСЯ ({e})")
|
||||
continue
|
||||
for it in items:
|
||||
if isinstance(it, dict):
|
||||
it["direction"] = direction
|
||||
all_src.append(it)
|
||||
print(f"{direction}: {len(items)} источников")
|
||||
|
||||
os.makedirs(os.path.dirname(OUT), exist_ok=True)
|
||||
json.dump(all_src, open(OUT, "w", encoding="utf-8"), ensure_ascii=False, indent=1)
|
||||
print(f"\nВСЕГО: {len(all_src)} источников → {OUT}")
|
||||
|
||||
impl = [s for s in all_src if str(s.get("implementable")).lower() not in ("false", "none", "", "no")]
|
||||
print(f"\n=== потенциально применимые ({len(impl)}) ===")
|
||||
for s in impl:
|
||||
print(f"- [{s.get('direction')}] {str(s.get('title'))[:80]} ({s.get('year')}) | "
|
||||
f"горизонт: {str(s.get('horizon'))[:30]} | издержки: {str(s.get('costs_assumed'))[:40]} | "
|
||||
f"вердикт: {str(s.get('verdict'))[:90]}")
|
||||
Reference in New Issue
Block a user