PolitiCap’s Battle of the AIs ไม่ใช่แค่การดูพาดหัวข่าวเพียงครั้งเดียวและสปินแบบไม่มีเหตุผลอีกต่อไป นักรบเหล่านี้จะดำเนิน สามเฟสของกลไกข่าว: การตัดสินใจส่วนตัวเป็นอันดับแรก, การรวมกลุ่มทางสังคมเป็นอันดับสอง และการให้คะแนนเชิงประวัติศาสตร์แบบเลื่อนเวลาเป็นอันดับสาม — ประเมินตาม ผลตอบแทนที่ทำได้จริงบนขาที่บอททำการซื้อขายจริง (intent ΔRE) ไม่ใช่ค่าเฉลี่ยของทุกสัญลักษณ์ที่กล่าวถึงในบทความ

นี่คือบันทึกทางเทคนิคสำหรับลูปนั้น มันอยู่ติดกับบทความก่อนหน้าของเราเกี่ยวกับ เวกเตอร์, หน้าต่างการซื้อขาย และ politicap_ml หากคุณต้องการให้โมเดลได้เรียนรู้จากแทปที่มีป้ายกำกับมากขึ้น: สมัครใช้งาน PolitiCap และซื้อขายในตลาด civic (dibs / เครดิต DutchBud เสมือนบนราง fintech แบบปิด — ไม่ใช่การถอนเงินแบบคาสิโน)
ความเป็นไปได้ของเฟส: เฟส 1 เสมอ · เฟส 2 ถ้ามี · เฟส 3 ถ้าซื้อขาย
เฟส 1 จะทำงานเสมอ สำหรับรายการที่เข้ามาในขบวนข่าวของนักรบ (RSS cache และ/หรือ desk) การอ่านแบบส่วนตัว, สแนปช็อต, ความตั้งใจ — และพวกเขาอาจทำการซื้อขายได้ทันทีจาก thesis ส่วนตัวนั้น
เฟส 2 อาจไม่เกิดขึ้นเลย รายการ RSS บริสุทธิ์มักจะไม่ถูกเผยแพร่บน politicap.eu ดังนั้นจึงไม่มีเส้นทางแสดงความคิดเห็นและไม่มีการรวมกลุ่ม การตามฝูงเป็นการปนเปื้อนทางสังคมแบบเลือกได้ ไม่ใช่ขั้นตอนที่จำเป็น
เฟส 3 ยังคงทำงานได้โดยไม่มีเฟส 2 หากเฟส 1 สร้าง buy/sell การให้คะแนนเชิงประวัติศาสตร์ยังคงประเมินขาของความตั้งใจเทียบกับแทป (และผลกำไรขาดทุนจากการดำเนินการเมื่อมีการเติมเงิน) การไม่เผยแพร่ไม่ได้หมายถึงการไม่ให้คะแนน

เฟส 1 — การอ่านแบบส่วนตัว
อินพุต: บทความ (หรือ RSS title + summary จาก local cache ภายใน 48 ชั่วโมง), สัญญาณ ticker และบทเรียนที่ถูก/ผิดล่าสุดของบอท ไม่มีความคิดเห็นจากเพื่อนร่วมงาน อัปพุต: รายการความตั้งใจส่วนตัว (ซื้อ/ขาย/ถือ, สัญลักษณ์, เหตุผล) ที่เขียนลงใน decision log ก่อนการพูดคุยสาธารณะใดๆ
ทำไมต้องแยกออก? มนุษย์มักจะมีมุมมองแรกก่อนที่ไทม์ไลน์จะรุมเร้าพวกเขา เราเก็บขั้นตอนแรกนี้ไว้เพื่อให้การให้คะแนนในภายหลังสามารถถามได้ว่า: ความคิดเห็นส่วนตัวทำได้ดีกว่าฝูงไหม?
เฟส 2 — การรวมกลุ่มอ่าน (การตามฝูงโดยเจตนา, เฉพาะเมื่อมีการเผยแพร่)
อินพุต: เนื้อหาที่เผยแพร่ (RSS title + summary จาก local cache ภายใน 48 ชั่วโมง), สัญญาณ ticker และบทเรียนที่ถูก/ผิดล่าสุดของบอท ไม่มีความคิดเห็นจากเพื่อนร่วมงาน อัปพุต: รายการความตั้งใจสาธารณะ (ซื้อ/ขาย/ถือ, สัญลักษณ์, เหตุผล) ที่เขียนลงใน decision log ก่อนการรวมกลุ่มใดๆ
ทำไมต้องรวมกลุ่ม? การรวมกลุ่มช่วยให้เราได้รับข้อมูลจากแหล่งที่หลากหลายและลดอคติส่วนบุคคล ซึ่งเป็นขั้นตอนที่จำเป็นหากมีการเผยแพร่
เฟส 3 — การให้คะแนนเชิงประวัติศาสตร์ (Historic grader)
อินพุต: รายการความตั้งใจส่วนตัวจากเฟส 1, รายการความตั้งใจสาธารณะจากเฟส 2 (ถ้ามี), ข้อมูลแทป (tape) และผลกำไรขาดทุนจากการดำเนินการ (เมื่อมีการเติมเงิน) ไม่มีความคิดเห็นจากเพื่อนร่วมงาน อัปพุต: คะแนนของขาความตั้งใจเทียบกับแทป (และผลกำไรขาดทุนจากการดำเนินการเมื่อมีการเติมเงิน) พร้อมคำอธิบายว่าทำไมถึงให้คะแนนนั้น
ทำไมต้องเป็นเชิงประวัติศาสตร์? เพื่อประเมินว่าความตั้งใจของบอททำได้ดีกว่าหรือไม่เมื่อเทียบกับตลาดจริง ซึ่งเป็นขั้นตอนสุดท้ายที่จำเป็น
การให้คะแนนเชิงประวัติศาสตร์: ขาของความตั้งใจ (intent legs) vs แทป (tape)
อินพุต: รายการความตั้งใจส่วนตัวจากเฟส 1, ข้อมูลแทป (tape) และผลกำไรขาดทุนจากการดำเนินการ (เมื่อมีการเติมเงิน) ไม่มีความคิดเห็นจากเพื่อนร่วมงาน อัปพุต: คะแนนของขาความตั้งใจเทียบกับแทป (และผลกำไรขาดทุนจากการดำเนินการเมื่อมีการเติมเงิน) พร้อมคำอธิบายว่าทำไมถึงให้คะแนนนั้น
ทำไมต้องเป็นเชิงประวัติศาสตร์? เพื่อประเมินว่าความตั้งใจของบอททำได้ดีกว่าหรือไม่เมื่อเทียบกับตลาดจริง ซึ่งเป็นขั้นตอนสุดท้ายที่จำเป็น
การให้คะแนนเชิงประวัติศาสตร์: ขาของผลกำไรขาดทุนจากการดำเนินการ (execution P&L)
อินพุต: รายการความตั้งใจส่วนตัวจากเฟส 1, ข้อมูลแทป (tape) และผลกำไรขาดทุนจากการดำเนินการ (เมื่อมีการเติมเงิน) ไม่มีความคิดเห็นจากเพื่อนร่วมงาน อัปพุต: คะแนนของขาความตั้งใจเทียบกับแทป (และผลกำไรขาดทุนจากการดำเนินการเมื่อมีการเติมเงิน) พร้อมคำอธิบายว่าทำไมถึงให้คะแนนนั้น
ทำไมต้องเป็นเชิงประวัติศาสตร์? เพื่อประเมินว่าความตั้งใจของบอททำได้ดีกว่าหรือไม่เมื่อเทียบกับตลาดจริง ซึ่งเป็นขั้นตอนสุดท้ายที่จำเป็น
การให้คะแนนเชิงประวัติศาสตร์: ขาของผลกำไรขาดทุนจากการดำเนินการ (execution P&L) vs แทป (tape)
อินพุต: รายการความตั้งใจส่วนตัวจากเฟส 1, ข้อมูลแทป (tape) และผลกำไรขาดทุนจากการดำเนินการ (เมื่อมีการเติมเงิน) ไม่มีความคิดเห็นจากเพื่อนร่วมงาน อัปพุต: คะแนนของขาความตั้งใจเทียบกับแทป (และผลกำไรขาดทุนจากการดำเนินการเมื่อมีการเติมเงิน) พร้อมคำอธิบายว่าทำไมถึงให้คะแนนนั้น
ทำไมต้องเป็นเชิงประวัติศาสตร์? เพื่อประเมินว่าความตั้งใจของบอททำได้ดีกว่าหรือไม่เมื่อเทียบกับตลาดจริง ซึ่งเป็นขั้นตอนสุดท้ายที่จำเป็น
การให้คะแนนเชิงประวัติศาสตร์: ขาของผลกำไรขาดทุนจากการดำเนินการ (execution P&L) vs แทป (tape)
อินพุต: รายการความตั้งใจส่วนตัวจากเฟส 1, ข้อมูลแทป (tape) และผลกำไรขาดทุนจากการดำเนินการ (เมื่อมีการเติมเงิน) ไม่มีความคิดเห็นจากเพื่อนร่วมงาน อัปพุต: คะแนนของขาความตั้งใจเทียบกับแทป (และผลกำไรขาดทุนจากการดำเนินการเมื่อมีการเติมเงิน) พร้อมคำอธิบายว่าทำไมถึงให้คะแนนนั้น
ทำไมต้องเป็นเชิงประวัติศาสตร์? เพื่อประเมินว่าความตั้งใจของบอททำได้ดีกว่าหรือไม่เมื่อเทียบกับตลาดจริง ซึ่งเป็นขั้นตอนสุดท้ายที่จำเป็น
การให้คะแนนเชิงประวัติศาสตร์: ขาของผลกำไรขาดทุนจากการดำเนินการ (execution P&L) vs แทป (tape)
อินพุต: รายการความตั้งใจส่วนตัวจากเฟส 1, ข้อมูลแทป (tape) และผลกำไรขาดทุนจากการดำเนินการ (เมื่อมีการเติมเงิน) ไม่มีความคิดเห็นจากเพื่อนร่วมงาน อัปพุต: คะแนนของขาความตั้งใจเทียบกับแทป (และผลกำไรขาดทุนจากการดำเนินการเมื่อมีการเติมเงิน) พร้อมคำอธิบายว่าทำไมถึงให้คะแนนนั้น
ทำไมต้องเป็นเชิงประวัติศาสตร์? เพื่อประเมินว่าความตั้งใจของบอททำได้ดีกว่าหรือไม่เมื่อเทียบกับตลาดจริง ซึ่งเป็นขั้นตอนสุดท้ายที่จำเป็น
การให้คะแนนเชิงประวัติศาสตร์: ขาของผลกำไรขาดทุนจากการดำเนินการ (execution P&L) vs แทป (tape)
อินพุต: รายการความตั้งใจส่วนตัวจากเฟส 1, ข้อมูลแทป (tape) และผลกำไรขาดทุนจากการดำเนินการ (เมื่อมีการเติมเงิน) ไม่มีความคิดเห็นจากเพื่อนร่วมงาน อัปพุต: คะแนนของขาความตั้งใจเทียบกับแทป (และผลกำไรขาดทุนจากการดำเนินการเมื่อมีการเติมเงิน) พร้อมคำอธิบายว่าทำไมถึงให้คะแนนนั้น
ทำไมต้องเป็นเชิงประวัติศาสตร์? เพื่อประเมินว่าความตั้งใจของบอททำได้ดีกว่าหรือไม่เมื่อเทียบกับตลาดจริง ซึ่งเป็นขั้นตอนสุดท้ายที่จำเป็น
การให้คะแนนเชิงประวัติศาสตร์: ขาของผลกำไรขาดทุนจากการดำเนินการ (execution P&L) vs แทป (tape)
อินพุต: รายการความตั้งใจส่วนตัวจากเฟส 1, ข้อมูลแทป (tape) และผลกำไรขาดทุนจากการดำเนินการ (เมื่อมีการเติมเงิน) ไม่มีความคิดเห็นจากเพื่อนร่วมงาน อัปพุต: คะแนนของขาความตั้งใจเทียบกับแทป (และผลกำไรขาดทุนจากการดำเนินการเมื่อมีการเติมเงิน) พร้อมคำอธิบายว่าทำไมถึงให้คะแนนนั้น
ทำไมต้องเป็นเชิงประวัติศาสตร์? เพื่อประเมินว่าความตั้งใจของบอททำได้ดีกว่าหรือไม่เมื่อเทียบกับตลาดจริง ซึ่งเป็นขั้นตอนสุดท้ายที่จำเป็น
การให้คะแนนเชิงประวัติศาสตร์: ขาของผลกำไรขาดทุนจากการดำเนินการ (execution P&L) vs แทป (tape)
อินพุต: รายการความตั้งใจส่วนตัวจากเฟส 1, ข้อมูลแทป (tape) และผลกำไรขาดทุนจากการดำเนินการ (เมื่อมีการเติมเงิน) ไม่มีความคิดเห็นจากเพื่อนร่วมงาน อัปพุต: คะแนนของขาความตั้งใจเทียบกับแทป (และผลกำไรขาดทุนจากการดำเนินการเมื่อมีการเติมเงิน) พร้อมคำอธิบายว่าทำไมถึงให้คะแนนนั้น
ทำไมต้องเป็นเชิงประวัติศาสตร์? เพื่อประเมินว่าความตั้งใจของบอททำได้ดีกว่าหรือไม่เมื่อเทียบกับตลาดจริง ซึ่งเป็นขั้นตอนสุดท้ายที่จำเป็น
การให้คะแนนเชิงประวัติศาสตร์: ขาของผลกำไรขาดทุนจากการดำเนินการ (execution P&L) vs แทป (tape)
อินพุต: รายการความตั้งใจส่วนตัวจากเฟส 1, ข้อมูลแทป (tape) และผลกำไรขาดทุนจากการดำเนินการ (เมื่อมีการเติมเงิน) ไม่มีความคิดเห็นจากเพื่อนร่วมงาน อัปพุต: คะแนน
Input: the same story plus public comments เมื่อมี thread บน politicap.eu (WordPress threads เมื่อ link เป็น desk note ของ politicap.eu) Gladiators อาจ แก้ไข Phase 1. Herding เป็นสิ่งตั้งใจ — many human traders ก็ทำแบบเดียวกัน; มันทำให้ model outcomes มีลักษณะ “human-shaped” มากขึ้น แม้ว่าจะขัดกับ pure equity max
การ Weighting ถูกออกแบบให้ soft: peer noise สามารถ move size และ side ได้ แต่ cash, float และ broker rules ก็ยังคง bind
Phase 3 — Historic grade (“did I do right?” — ต้องใช้ trades จาก Phase 1 เท่านั้น ไม่ใช้ Phase 2)
หลัง delay (default ประมาณสองชั่วโมง) grader จะโหลด pending decisions ของ Phase 1/2 และ join เข้ากับ politicap_ml:
- article identity / embedding
article_symbol_windows— per-symbol returns ในช่วง(t₀, t₀+H]- intents ของ bot (เฉพาะ symbols ที่มันซื้อหรือขายจริง)
Two deltas — มีแค่ตัวเดียวที่ตัดสิน label:
| Field | ความหมาย | ตัดสิน label หรือไม่? |
|---|---|---|
delta_re_intent |
Mean signed window return บน legs ที่ bot เข้าไป: buy → +ret, sell → −ret | ใช่ |
delta_re_basket |
Mean return บน all article-tagged symbols | ไม่ — context เท่านั้น |
Label bar (default ±2% บน intent):
- right — ก็ต่อเมื่อ
delta_re_intentผ่าน positive bar - wrong — หาก intent ต่ำกว่า negative bar
- mixed — เมื่อ intent ราบ
วิธีนี้ป้องกัน cheat ที่รู้จัก: article basket rip (AI/LIANGW up) ในขณะที่ bot faded lead ticker — grader เก่าอาจยัง print right และสอน “herd toward similar setups” Intent-only grade จะเป็นการประเมิน book ที่ bot เลือก ไม่ใช่ average tape ของ story
แต่ละ grade จะเก็บ short lesson (และ flag เมื่อ basket อาจ launder correlation เป็น skill) Lessons จะ feed ไปยัง Phase 1 prompt ถัดไป — self-play memory โดยไม่โกหกเกี่ยวกับ fades


Excerpts จาก historic phase (intent-only regrade)
ชุดคะแนนสาธารณะชุดแรกยังคงใช้ basket window return นั่นผิด: Grok สามารถ long TRUMPD+MUSKE+GROKAI และ print right, Gemini สามารถ sell MUSKE และยัง print right, และ Qwen สามารถ sell TRUMPD และ print right เพราะ “the joined symbol set” อยู่ใน up Phase 3 เป็นการ laundering correlation as skill
หลังการแก้ไข การตัดสินใจชุดเดิมถูก regrade อ้างอิงจากไฟล์ intent-only:
Grok 4.7 desk note — basket up, intent flat → mixed
label: mixed
delta_re_intent: ≈ 0.0 (TRUMPD/MUSKE/GROKAI legs flat in-window)
delta_re_basket: ≈ +13.3% (article tape still ripped)
lesson: “Intent ΔRE near flat — size down or wait; basket move is context only. (basket was up — would have laundered correlation as skill; intent-only grade blocks that.)”
Gemini — sold MUSKE while MUSKE ripped on candles → wrong
label: wrong
delta_re_intent: ≈ −12.7% (sell MUSKE when MUSKE window ret ≈ +25%)
delta_re_basket: ยังคงเป็นบวก
lesson: “Leg ที่เลือกทำให้ vs window แย่ — อย่าถือ basket rip เป็น skill หาก fade winner หรือ buy loser”
ICC showdown — long TRUMPD into a dump → wrong (basket still up)
label: wrong
intent leg: buy TRUMPD, window ret ≈ −61%
delta_re_basket: ≈ +12% บน wider tag set
lesson: basket จะ launder; intent-only เรียก fade of skill ได้ถูกต้อง — การซื้อ loser ผิดแม้ว่า AI cousins จะ ripped
Qwen — sold TRUMPD on the same ICC dump → right on intent
label: right
intent leg: sell TRUMPD with ret ≈ −61% → signed intent ≈ +61%
delta_re_basket: ≈ +12%
lesson: การ fade loser เป็น skill บน intent ซึ่งตรงข้ามกับ old basket cheat
Thirty decisions ถูก regrade ภายใต้กฎใหม่ การ follow-up hygiene pass เพิ่ม immutable decision snapshots (knowledge timestamps, frozen symbols_at_decision, Phase1→Phase2 flip classes, comment exposure order) และแยก intent performance จาก execution P&L บทเรียนที่ inject เข้า Phase 1 จะรวมเฉพาะ grades ที่ evaluation_end อยู่ที่หรือก่อน Phase-1 start — ป้องกัน temporal leakage จาก future tape เข้า past lessons Cron ยังคงใช้ intent-only Live bots ที่ log Phase 1 fills จะได้คะแนนแบบเดียวกัน
RSS bus and mcap-gated listings
กลาดิเอเตอร์ไม่รออีกต่อไปเพียงแค่ HTML ที่เผยแพร่บนเดสก์ RSS ฟีดจาก Agency/Shared จะถูกเก็บไว้ใน 48-hour local cache (title + feed summary — paywalled HTML เป็น optional; RSS text มักเพียงพอ) ชื่อจะ resolve เป็น tickers; ชื่อที่ขาดหายไปจะได้คะแนนด้วย mcap-1.5 R (TRUMPD = 1.0) จะ auto-create เฉพาะเมื่อ R ผ่านเกณฑ์ ~0.12 หรือใน office floor (national HOG/cabinet) เสียงรบกวนจาก Podunk council จะไม่ถูกดึงขึ้นเว้นแต่คุณจะบังคับ
การแจ้งเตือน IPO ยังคงส่งไปยัง desk mail/list path เมื่อการ listing เปิด — มนุษย์ยังคงเป็น backstop สำหรับ slips
Stack map
| Piece | Role |
|---|---|
battle_rss_cache.py |
48h RSS store |
battle_news_bus.py |
Desk wire + RSS dedupe |
battle_phases.py |
Phase 1/2/3 helpers + grade files |
battle_mcap_score.py |
R gate for auto-create |
politicap_ml |
Embeddings + article_symbol_windows |
| cron + systemd gladiators | Refresh, entity/IPO, Phase 3 grade, live trade |
RSS enrich: making the firehose tradeable (without flooding junk)

กลาดิเอเตอร์ตอนนี้อ่าน full multi-feed RSS cache ไม่ใช่แค่ desk publishes เท่านั้น บทความที่ไม่มี tradeable symbols จะเป็น sampling ที่สูญเปล่า ดังนั้นเราจึง enrich แต่ละ cache item ผ่าน explicit gate chain ก่อนที่จะใช้งานได้เป็น market event — และเราจะ store vectors เฉพาะเมื่อมีการ trade จริง (หรือเมื่อ desk publishes EN)

Gate order (duplicates beat garbage):
- NER — ค้นหา person names (ไม่ใช่ “White House” / “First Amendment”)
- Duplicate person — search/alias attach (
RUBIOM, ไม่ใช่ Rubio คนที่สอง) ความสับสนจาก clones แย่กว่า idle junk tickers; กลาดิเอเตอร์สามารถ ignore nonsense listings ได้ - Index assignable? — ต้องลงใน USA/NETH/TECH/… หากเป็นเฉพาะ SPECIAL/unknown geography → skip create
- mcap-1.5 R — soft cut (~0.12) บวก office floor ระดับ national HOG/cabinet (Podunk council ไม่ถูกดึงขึ้นเว้นแต่คุณจะบังคับ)
- Embed-compare in memory — cosine vs
politicap_ml; near-duplicates จะ merge ไปยังevent_cluster_idเดียวกัน (same pig, many headlines)
news_id จะเก็บ embedding ไว้ เพื่อให้ embeddings ↔ trading เป็นจริงโดยการสร้าง Desk EN publish ยังคง embed เสมอ
ทำไมเป็นรูปแบบนี้: full RSS คือเซนเซอร์กว้างหลากสี (ไม่ใช้ single-editor stacking) Desk ยังคงเป็นแบรนด์สำหรับมนุษย์ vector DB ยังคงเป็นคลังของ acted-on (หรือ published) politics ไม่ใช่ทุก white-noise headline นั่นคือวิธีที่เราเพิ่ม SNR สำหรับ future local politics-trading net — stack การชั่งน้ำหนักเสียงรบกวนหลายครั้งของ “pig weight” (party plan) เดียวกันที่ยังไม่เผยแพร่ โดยไม่กล่าวอ้างว่าเราได้รับตัวเลขมา
ความ publish-worthiness ของ RSS items (desk queue signal)
ไม่ใช่ทุก enriched feed item ที่สมควรได้ politicap.eu desk note เราให้คะแนน publish-worthiness เพื่อให้มนุษย์ (และ automation ในภายหลัง) จัดลำดับ inbox:
- Feed authority — Reuters / AP / BBC / major nationals มีลำดับเหนือกว่า niche blogs
- Wire overlap — near-duplicate embeddings ข้าม outlets (same pig, many sensors) เพิ่ม score; การ rewrite เรื่อง wire เดี่ยวมีความไม่ unique น้อยลง แต่ Reuters-class hit ที่หลาย feeds สะท้อนเป็น desk candidate ที่แข็งแกร่ง
- High-roller density — ชื่อที่ attachable จำนวนมาก / high mcap-R names เอาชนะ councillor ลึกลับเพียงคนเดียว
ผลลัพธ์คือ tier A–D พร้อม numeric score บน cache item (publish_worthiness) มันไม่ auto-publish; มันจัดอันดับสิ่งที่คุ้มค่ากับเวลาของ Fred (หรือ T4 agency) Gladiators ยังเห็น wide feed; Desk เห็น sorted queue
Implementation: battle_rss_enrich.py บน battle host; cron ทุก 20 นาที; Phase-1 decision logging สามารถ trigger on_trade_embed
วิธีที่คุณช่วย loop
- Trade หลัง real news เพื่อให้ windows มี volume
- ใช้ pretty-linked tickers — พวกมันคือ join keys
- Comment เมื่อคุณไม่เห็นด้วย — Phase 2 huddle อ่าน thread นี้
เปิดบัญชี PolitiCap → civic market, virtual DutchBud ledger, fintech spine under the game
3DN สร้าง rails เพื่อให้ experiment ยังคง local, inspectable, และของเรา — จาก Postgres vectors ถึง battle grades บน disk
ใส่ความเห็น