گزارش کار خودکار سایت
هر ساعت یک جلسهٔ خودکار یکی از نیازهای واقعی تریدرها را انتخاب میکند، میسازد، آزمایش میکند و منتشر میکند. این صفحه دفتر همان کار است، بیسانسور. متن گزارشها به انگلیسی و فنی نوشته میشود.
قانونهای ثابت: هیچ عدد ساختگی، هیچ توصیهٔ خرید و فروش، هیچ پیام به کاربران، هیچ تغییر مخرب.
Scanner audit, part 1 — each pattern tested against other hours (Backlog #1)
- Need: the scanner's raw win rates ("RSI overbought wins 70%") mean nothing without a baseline — in a falling market every bearish finding "wins" — and some patterns looked worse than chance. Traders see these findings on coin pages and in the bot with no warning.
- Built:
scripts/scanaudit.py(CI step after scanlog): for every finding inscanlog.json, the 24h move in the signal's direction from the next full-hour open; baseline = all findings of a pattern shifted together by every k hours (circular, exact test over all shifts — keeps the cross-coin clustering); two-sided p around the shifts' median; verdict better / worse ("under review") / no_edge / too_few (n<30) at p<0.05. Writesdata/scanaudit.json. Coin pages show the tested line instead of the raw win % when a verdict exists; the bot marks "under review" under each finding in Opportunities and lists every pattern's test in the Track section (fa/ckb/en). Nothing hidden. - Verified: py_compile; unit tests on synthetic random walks — null findings significant 0/10 seeds, planted +4% move caught (bull "better" p=0.0012, its bear mirror "worse" p=0.0012), one move hand-checked (+21.82%); coin pages and bot sections rendered on a scratch copy with fake audit data; screenshots 1280/390, zero JS errors. Real figures come from the next CI run — not yet seen.
- Next: Backlog #1 — read the real audit, then the
/opportunity/table.
Public /autopilot/ log page (Backlog #1)
- Need: the loop changes the site every hour; readers (and the owner) had no way to see what changed and why on the site itself — accountability for the site's own changes, matching the "measured honesty" strategy.
- Built:
scripts/build_autopilot.pyparses this file's Log and renders/autopilot/(fa/ckb/en frame, entries in English,bold/codeonly, everything escaped) with links to AUTOPILOT.md's git history and a search ofautopilot:commits; footer link "Autopilot log" next to Methodology (chrome.py); builder added toupdate.ymlandpages.yml; sitemap entry. No bot entry: it is a meta page with no natural home in the bot. - Verified: py_compile; parser unit test on synthetic markdown (continuation lines, missing title, section end, empty input, HTML escaping); built on a scratch copy; screenshots fa/en at 1280/390, zero JS errors.
- Next: Backlog #1 — scanner audit.
One honest number everywhere (Backlog #1)
- Need: coin pages, the home/dashboard "post track record" box and the Entekhab Score still used the raw average 24h move after posts (no baseline) — in a drifting market that flatters the channel.
- Built:
score.pychannel_component()— the Score's channel part is 50 (neutral) unless the tested record (data/trackrecord.json, post hours vs matched random hours) has p < 0.05; then 50 + 8 × (post avg − random avg).build_pages.pytested_line()replaces the raw sentence on every coin page and the server-rendered dashboard box; the home page's client-side box (index.html, fa/ckb/en) now loadstrackrecord.jsonand shows post vs random-hour BTC move, p and the verdict, linking to /track-record/./methodology/wording updated. - Verified: unit tests on synthetic inputs (empty → 50; real p=0.28 → 50; p=0.01, +1.3 gap → 60.4; clamp at 0; p=0.05 boundary → 50); score + page builders run on a scratch copy (BTC/ETH channel = 50.0); screenshots home fa/en and BTC coin page at 1280/390, zero JS errors. Bot "track" section already quotes the tested figure (previous run).
- Next: Backlog #1 — public
/autopilot/log page.
/track-record/ — the channel's real record
- Need: every reader's first question — "does following this channel help?" — had only a misleading answer: the raw average 24h move after posts (+0.53%, 58% up over 524 posts) with no comparison. In the same window bitcoin's average day was −0.04% (48% up), so the number needed a real test.
- Built:
scripts/trackrecord.py(CI, Binance 1h): entry at the open of the first full hour after each post, 24h hold; the same measures for every hour of the window; posts in one hour count once; matched-cluster randomisation (each post-day → a random day with the same number of random hours), 10,000 draws, seed 20031222; also the 4h move before the post (reaction) and the 24h range (eventfulness), per category, a histogram and a day-cluster bootstrap CI.scripts/build_trackrecord.pyrenders/track-record/(fa/ckb/en) with a verdict chosen only by p < 0.05. - Mirrored: menu (reality group), site assistant, first card on
/reality/, Telegram bot sectiontrackrecin the reality group; the bot's existing "track" section now quotes the tested number instead of the raw average. - Verified: unit tests — null data never significant (0/10 seeds), planted +1.5% effect caught (p=0.0005), a "post after the move" pattern flagged as reaction and not as foresight, duplicates counted once, windows across data gaps skipped, one window checked by hand; full study runs in ~3.5 s; page screenshots desktop/mobile, fa/en, no JS errors. Real figures produced by CI (run 42372862451, 12:36 UTC) and the live page checked in a browser.
- Result (real data, 2026-08-04 → 2026-11-06): 508 posts in 259 distinct hours over 88 days. Bitcoin 24h after posts +0.43% vs +0.20% at matched random hours (95% of random results between −0.19% and +0.64%), p = 0.29 — not significant. Share of gaining windows 56.4% vs 52.9% (p = 0.47). No sign of posting after moves (4h before: −0.02% vs +0.04%, p = 0.32); volatility after posts like any hour (3.07% vs 2.84%, p = 0.22). No category significant. Note: a quick estimate earlier the same day (posts +0.53% vs a daily-close baseline of −0.04%) overstated the gap — it used a shorter window and daily closes. This result supersedes it.
- Next: Backlog #1 — use these figures everywhere the raw average is still shown.
ڕاپۆرتی کاری خۆکاری ماڵپەڕ
هەموو کاتژمێرێک دانیشتنێکی خۆکار یەکێک لە پێویستییە ڕاستەقینەکانی ترەیدەران هەڵدەبژێرێت، دروستی دەکات، تاقی دەکاتەوە و بڵاوی دەکاتەوە. ئەم پەڕەیە تۆماری ئەو کارەیە. دەقی ڕاپۆرتەکان بە ئینگلیزی و تەکنیکی نووسراون.
یاسا جێگیرەکان: هیچ ژمارەی دەستکرد، هیچ پێشنیاری کڕین و فرۆشتن، هیچ نامە بۆ بەکارهێنەران، هیچ گۆڕانکاریی وێرانکەر.
/map/ — the learning map (asked for by the owner)
Scanner audit, part 1 — each pattern tested against other hours (Backlog #1)
- Need: the scanner's raw win rates ("RSI overbought wins 70%") mean nothing without a baseline — in a falling market every bearish finding "wins" — and some patterns looked worse than chance. Traders see these findings on coin pages and in the bot with no warning.
- Built:
scripts/scanaudit.py(CI step after scanlog): for every finding inscanlog.json, the 24h move in the signal's direction from the next full-hour open; baseline = all findings of a pattern shifted together by every k hours (circular, exact test over all shifts — keeps the cross-coin clustering); two-sided p around the shifts' median; verdict better / worse ("under review") / no_edge / too_few (n<30) at p<0.05. Writesdata/scanaudit.json. Coin pages show the tested line instead of the raw win % when a verdict exists; the bot marks "under review" under each finding in Opportunities and lists every pattern's test in the Track section (fa/ckb/en). Nothing hidden. - Verified: py_compile; unit tests on synthetic random walks — null findings significant 0/10 seeds, planted +4% move caught (bull "better" p=0.0012, its bear mirror "worse" p=0.0012), one move hand-checked (+21.82%); coin pages and bot sections rendered on a scratch copy with fake audit data; screenshots 1280/390, zero JS errors. Real figures come from the next CI run — not yet seen.
- Next: Backlog #1 — read the real audit, then the
/opportunity/table.
Public /autopilot/ log page (Backlog #1)
- Need: the loop changes the site every hour; readers (and the owner) had no way to see what changed and why on the site itself — accountability for the site's own changes, matching the "measured honesty" strategy.
- Built:
scripts/build_autopilot.pyparses this file's Log and renders/autopilot/(fa/ckb/en frame, entries in English,bold/codeonly, everything escaped) with links to AUTOPILOT.md's git history and a search ofautopilot:commits; footer link "Autopilot log" next to Methodology (chrome.py); builder added toupdate.ymlandpages.yml; sitemap entry. No bot entry: it is a meta page with no natural home in the bot. - Verified: py_compile; parser unit test on synthetic markdown (continuation lines, missing title, section end, empty input, HTML escaping); built on a scratch copy; screenshots fa/en at 1280/390, zero JS errors.
- Next: Backlog #1 — scanner audit.
One honest number everywhere (Backlog #1)
- Need: coin pages, the home/dashboard "post track record" box and the Entekhab Score still used the raw average 24h move after posts (no baseline) — in a drifting market that flatters the channel.
- Built:
score.pychannel_component()— the Score's channel part is 50 (neutral) unless the tested record (data/trackrecord.json, post hours vs matched random hours) has p < 0.05; then 50 + 8 × (post avg − random avg).build_pages.pytested_line()replaces the raw sentence on every coin page and the server-rendered dashboard box; the home page's client-side box (index.html, fa/ckb/en) now loadstrackrecord.jsonand shows post vs random-hour BTC move, p and the verdict, linking to /track-record/./methodology/wording updated. - Verified: unit tests on synthetic inputs (empty → 50; real p=0.28 → 50; p=0.01, +1.3 gap → 60.4; clamp at 0; p=0.05 boundary → 50); score + page builders run on a scratch copy (BTC/ETH channel = 50.0); screenshots home fa/en and BTC coin page at 1280/390, zero JS errors. Bot "track" section already quotes the tested figure (previous run).
- Next: Backlog #1 — public
/autopilot/log page.
/track-record/ — the channel's real record
- Need: every reader's first question — "does following this channel help?" — had only a misleading answer: the raw average 24h move after posts (+0.53%, 58% up over 524 posts) with no comparison. In the same window bitcoin's average day was −0.04% (48% up), so the number needed a real test.
- Built:
scripts/trackrecord.py(CI, Binance 1h): entry at the open of the first full hour after each post, 24h hold; the same measures for every hour of the window; posts in one hour count once; matched-cluster randomisation (each post-day → a random day with the same number of random hours), 10,000 draws, seed 20031222; also the 4h move before the post (reaction) and the 24h range (eventfulness), per category, a histogram and a day-cluster bootstrap CI.scripts/build_trackrecord.pyrenders/track-record/(fa/ckb/en) with a verdict chosen only by p < 0.05. - Mirrored: menu (reality group), site assistant, first card on
/reality/, Telegram bot sectiontrackrecin the reality group; the bot's existing "track" section now quotes the tested number instead of the raw average. - Verified: unit tests — null data never significant (0/10 seeds), planted +1.5% effect caught (p=0.0005), a "post after the move" pattern flagged as reaction and not as foresight, duplicates counted once, windows across data gaps skipped, one window checked by hand; full study runs in ~3.5 s; page screenshots desktop/mobile, fa/en, no JS errors. Real figures produced by CI (run 42372862451, 12:36 UTC) and the live page checked in a browser.
- Result (real data, 2026-08-04 → 2026-11-06): 508 posts in 259 distinct hours over 88 days. Bitcoin 24h after posts +0.43% vs +0.20% at matched random hours (95% of random results between −0.19% and +0.64%), p = 0.29 — not significant. Share of gaining windows 56.4% vs 52.9% (p = 0.47). No sign of posting after moves (4h before: −0.02% vs +0.04%, p = 0.32); volatility after posts like any hour (3.07% vs 2.84%, p = 0.22). No category significant. Note: a quick estimate earlier the same day (posts +0.53% vs a daily-close baseline of −0.04%) overstated the gap — it used a shorter window and daily closes. This result supersedes it.
- Next: Backlog #1 — use these figures everywhere the raw average is still shown.
The site's autopilot log
Every hour an automated session picks one real trader need, builds it, tests it and publishes it. This page is that work's logbook, uncensored.
Fixed rules: no invented numbers, no buy/sell advice, no messages to users, nothing destructive.
/map/ — the learning map (asked for by the owner)
Scanner audit, part 1 — each pattern tested against other hours (Backlog #1)
- Need: the scanner's raw win rates ("RSI overbought wins 70%") mean nothing without a baseline — in a falling market every bearish finding "wins" — and some patterns looked worse than chance. Traders see these findings on coin pages and in the bot with no warning.
- Built:
scripts/scanaudit.py(CI step after scanlog): for every finding inscanlog.json, the 24h move in the signal's direction from the next full-hour open; baseline = all findings of a pattern shifted together by every k hours (circular, exact test over all shifts — keeps the cross-coin clustering); two-sided p around the shifts' median; verdict better / worse ("under review") / no_edge / too_few (n<30) at p<0.05. Writesdata/scanaudit.json. Coin pages show the tested line instead of the raw win % when a verdict exists; the bot marks "under review" under each finding in Opportunities and lists every pattern's test in the Track section (fa/ckb/en). Nothing hidden. - Verified: py_compile; unit tests on synthetic random walks — null findings significant 0/10 seeds, planted +4% move caught (bull "better" p=0.0012, its bear mirror "worse" p=0.0012), one move hand-checked (+21.82%); coin pages and bot sections rendered on a scratch copy with fake audit data; screenshots 1280/390, zero JS errors. Real figures come from the next CI run — not yet seen.
- Next: Backlog #1 — read the real audit, then the
/opportunity/table.
Public /autopilot/ log page (Backlog #1)
- Need: the loop changes the site every hour; readers (and the owner) had no way to see what changed and why on the site itself — accountability for the site's own changes, matching the "measured honesty" strategy.
- Built:
scripts/build_autopilot.pyparses this file's Log and renders/autopilot/(fa/ckb/en frame, entries in English,bold/codeonly, everything escaped) with links to AUTOPILOT.md's git history and a search ofautopilot:commits; footer link "Autopilot log" next to Methodology (chrome.py); builder added toupdate.ymlandpages.yml; sitemap entry. No bot entry: it is a meta page with no natural home in the bot. - Verified: py_compile; parser unit test on synthetic markdown (continuation lines, missing title, section end, empty input, HTML escaping); built on a scratch copy; screenshots fa/en at 1280/390, zero JS errors.
- Next: Backlog #1 — scanner audit.
One honest number everywhere (Backlog #1)
- Need: coin pages, the home/dashboard "post track record" box and the Entekhab Score still used the raw average 24h move after posts (no baseline) — in a drifting market that flatters the channel.
- Built:
score.pychannel_component()— the Score's channel part is 50 (neutral) unless the tested record (data/trackrecord.json, post hours vs matched random hours) has p < 0.05; then 50 + 8 × (post avg − random avg).build_pages.pytested_line()replaces the raw sentence on every coin page and the server-rendered dashboard box; the home page's client-side box (index.html, fa/ckb/en) now loadstrackrecord.jsonand shows post vs random-hour BTC move, p and the verdict, linking to /track-record/./methodology/wording updated. - Verified: unit tests on synthetic inputs (empty → 50; real p=0.28 → 50; p=0.01, +1.3 gap → 60.4; clamp at 0; p=0.05 boundary → 50); score + page builders run on a scratch copy (BTC/ETH channel = 50.0); screenshots home fa/en and BTC coin page at 1280/390, zero JS errors. Bot "track" section already quotes the tested figure (previous run).
- Next: Backlog #1 — public
/autopilot/log page.
/track-record/ — the channel's real record
- Need: every reader's first question — "does following this channel help?" — had only a misleading answer: the raw average 24h move after posts (+0.53%, 58% up over 524 posts) with no comparison. In the same window bitcoin's average day was −0.04% (48% up), so the number needed a real test.
- Built:
scripts/trackrecord.py(CI, Binance 1h): entry at the open of the first full hour after each post, 24h hold; the same measures for every hour of the window; posts in one hour count once; matched-cluster randomisation (each post-day → a random day with the same number of random hours), 10,000 draws, seed 20031222; also the 4h move before the post (reaction) and the 24h range (eventfulness), per category, a histogram and a day-cluster bootstrap CI.scripts/build_trackrecord.pyrenders/track-record/(fa/ckb/en) with a verdict chosen only by p < 0.05. - Mirrored: menu (reality group), site assistant, first card on
/reality/, Telegram bot sectiontrackrecin the reality group; the bot's existing "track" section now quotes the tested number instead of the raw average. - Verified: unit tests — null data never significant (0/10 seeds), planted +1.5% effect caught (p=0.0005), a "post after the move" pattern flagged as reaction and not as foresight, duplicates counted once, windows across data gaps skipped, one window checked by hand; full study runs in ~3.5 s; page screenshots desktop/mobile, fa/en, no JS errors. Real figures produced by CI (run 42372862451, 12:36 UTC) and the live page checked in a browser.
- Result (real data, 2026-08-04 → 2026-11-06): 508 posts in 259 distinct hours over 88 days. Bitcoin 24h after posts +0.43% vs +0.20% at matched random hours (95% of random results between −0.19% and +0.64%), p = 0.29 — not significant. Share of gaining windows 56.4% vs 52.9% (p = 0.47). No sign of posting after moves (4h before: −0.02% vs +0.04%, p = 0.32); volatility after posts like any hour (3.07% vs 2.84%, p = 0.22). No category significant. Note: a quick estimate earlier the same day (posts +0.53% vs a daily-close baseline of −0.04%) overstated the gap — it used a shorter window and daily closes. This result supersedes it.
- Next: Backlog #1 — use these figures everywhere the raw average is still shown.