คลังความรู้ · ระบบและการทดสอบ
บอทเรียนรู้เสริมแรงบนทอง 60% นอกตัวอย่าง — และสิ่งที่เครื่องมือโอเพนซอร์ส 11 ตัวบอกเรื่องการพิสูจน์
CodeTrading ปล่อยบอท RL เทรดทอง 20 ปี ได้ 60% บนข้อมูลที่ไม่เคยเห็น แล้วใช้ครึ่งคลิปพยายามหักล้างผลของตัวเอง · ⭐ ด่านที่ดีที่สุดของเขาคือ ประตูความสม่ำเสมอ — ไม่ถามว่ากำไรรวมเท่าไร แต่ถามว่า มีกี่ช่วงเวลาที่ทำเงินได้เองโดยอิสระ · ⚑⚑ และเขาโชว์ตัวอย่างโมเดลที่เทรน +86% เหลือ +12% ตอนตรวจสอบ และ +6.9% บนข้อมูลจริง · เราเทียบกับเครื่องมือโอเพนซอร์ส 11 ตัวที่ผู้ใช้ส่งมา และวัดสิ่งที่คลิปไม่ได้วัดบนทองของเราเอง
วิดีโอต้นทาง
“I Built a Gold RL Trading Bot With 60% OOS Returns [Free Code]”
โดย CodeTrading · ผู้พูด: CodeTrading
หน้านี้เป็นการเรียบเรียงเป็นภาษาไทยโดย XAULearn ไม่ใช่การถอดคำต่อคำและไม่ใช่คำบรรยายทางการของช่อง ลิขสิทธิ์เนื้อหาต้นฉบับเป็นของผู้ผลิตวิดีโอ ตัวเลขเวลาในบทความอ้างอิงตำแหน่งในคลิปเพื่อให้กลับไปดูต้นทางได้ เปิดใน YouTube →
สรุป 9 ข้อ
- ⭐ ประตูความสม่ำเสมอ คือของดีที่สุดในคลิป (10:22) — ไม่ถามว่ากำไรรวมเท่าไร แต่ถามว่า *มีกี่ช่วงเวลาที่ทำเงินได้เองโดยอิสระ* · เขาพูดไว้ตั้งแต่ 3:06 ว่า "ถ้าช่วงเวลาส่วนใหญ่ออกมาเป็นบวก นั่นคือลายนิ้วมือของขอบที่มีจริง ไม่ใช่ความบังเอิญในช่วงเดียว"
- ⚑⚑ ตัวเลขที่ควรจำที่สุดคือตัวเลขที่เขาเอามาเตือน (12:11–12:21) — โมเดลหนึ่งให้ +86% ตอนเทรน → +12% ตอนตรวจสอบ → +6.9% บนข้อมูลที่ไม่เคยเห็น และเขาบอกว่าบางครั้งตัวสุดท้ายติดลบด้วยซ้ำ
- หน้าต่างเลื่อนขนาดคงที่ (3:30) — เทรน ตรวจสอบ และทดสอบ เลื่อนไปข้างหน้าพร้อมกัน ข้อมูลเก่าสุดหล่นออก · ต่างจากการแบ่งครั้งเดียวที่ใช้กันทั่วไป
- เลือกจุดบันทึกด้วยสองคะแนน ไม่ใช่เอาตัวสุดท้าย (7:28) — บันทึกหลายจุดระหว่างเทรน แต่ละจุดต้องผ่านคะแนนบนหางของข้อมูลเทรน *และ* บนข้อมูลตรวจสอบ
- รางวัล = เงินที่ทำได้ ลบ บทลงโทษเมื่อขาดทุนสะสมลึก (8:53) — ไม่ใช่กำไรดิบ · เขาเรียกฟังก์ชันรางวัลว่า "หัวใจของการเรียนรู้เสริมแรง" (3:48)
- ⭐ กฎการนำเสนอที่เขาย้ำท้ายคลิป (20:06) — *"อย่าใช้ค่าสัมบูรณ์ ... ถ้าผมบอกว่าทองอยู่ที่ 4,100 ดอลลาร์ตอนนี้ มันไม่มีความหมายอะไรเลย แต่ถ้าผมบอกว่าพิสัยคือ 10 ดอลลาร์ต่อชั่วโมง นั่นมีความหมายเรื่องความผันผวน"* — ป้อนอัตราส่วนให้โมเดล ไม่ใช่ราคา
- ⚑ เครื่องมือโอเพนซอร์ส 11 ตัวที่สำรวจ — 6 ตัวเป็นคริปโตล้วน (freqtrade · hummingbot · Superalgos · OctoBot · jesse และ repo ของคลิป) · backtrader หยุดพัฒนาแล้ว (พุชล่าสุด 19 ส.ค. 2024) · ตัวที่ใช้กับทองสปอตได้จริงคือ Lean · nautilus_trader · qlib
- ⭐ สามอย่างที่เครื่องมือเหล่านั้นมีและเรายังไม่มี — แบบจำลองความหน่วง (nautilus) · สลิปเพจตามส่วนแบ่งปริมาณและผลกระทบตลาด (Lean มี 7 แบบ) · และกรอบตัดสินใจซ้อนชั้นที่แยก TF ของสัญญาณออกจาก TF ของการส่งคำสั่ง (qlib)
- ⚑⚑ และสิ่งที่เรามีแต่เครื่องมือเหล่านั้นไม่มี — ต้นทุนที่ วัดจากโบรกเกอร์จริงบนสินทรัพย์จริง (สเปรด 0.42 bp ตามรูปชั่วโมง · สลิปสต็อป +0.287 bp จากการตรวจจริง 394 ไม้) ของเขาทุกตัวเป็นแบบจำลองที่ต้องไปคาลิเบรตเอง
ทำไมหน้านี้อยู่ในคลัง — เพราะครึ่งหลังของคลิปคือสิ่งที่คลังนี้ทำมาตลอด: ได้ตัวเลขที่ดูดีมาแล้วพยายามหักล้างมันเอง · และเพราะผู้พูดแสดงตัวเลขที่ทำลายข้ออ้างของตัวเองให้ดูด้วย ซึ่งหายากในหมวดนี้ · ส่วนที่เราเติมคือการสำรวจเครื่องมือ 11 ตัว และสิ่งที่เราวัดเองบนทอง
1. ข้อเสนอหลัก และสิ่งที่ผู้พูดทำกับมัน 0:02
เขาเปิดด้วยตัวเลข: บอทเรียนรู้เสริมแรงเทรดทองบนข้อมูล 20 ปี ได้ 60% บนข้อมูลนอกตัวอย่าง แล้วพูดประโยคที่ทำให้คลิปนี้ต่างจากคลิปอื่นในหมวดเดียวกันทันที
“นั่นอาจเป็นขอบที่มีจริง หรือเป็นการรันที่โชคดีครั้งเดียว · โปรเจกต์ทั้งหมดนี้คือความพยายามของผมที่จะแยกสองอย่างนั้นออกจากกัน”
ตัวแทน (agent) ทำได้แค่สามอย่าง — ซื้อ ขาย หรืออยู่เฉย (1:22) · เมื่อเปิดไม้ มันตั้งสต็อปจาก ATR ณ ขณะนั้น ความเสี่ยงจึงปรับตามความผันผวนของทองเอง และตั้งเป้าเป็นตัวคูณของความเสี่ยง · เขาจงใจให้ชุดการตัดสินใจเล็กและสะอาด “เพื่อให้เราเห็นจริง ๆ ว่าอะไรทำงาน”
2. โครงการพิสูจน์สามชั้น
ชั้นที่ 1 — หน้าต่างเลื่อนขนาดคงที่ 3:30
แทนการแบ่งข้อมูลครั้งเดียวเป็นเทรน/ตรวจสอบ/ทดสอบ เขาให้ทั้งสามส่วนเลื่อนไปข้างหน้าพร้อมกัน และข้อมูลเก่าสุดหล่นออก ทำให้ได้ช่วงเวลาหลายช่วง (folds) แทนที่จะได้คำตอบเดียว
เหตุผลอยู่ที่ 3:06: “ถ้าช่วงเวลาส่วนใหญ่ออกมาเป็นบวก นั่นคือลายนิ้วมือของขอบที่มีจริง ไม่ใช่ความบังเอิญในช่วงเดียว”
ชั้นที่ 2 — เลือกจุดบันทึกด้วยสองคะแนน 7:28
โมเดลไม่ได้ถูกบันทึกแค่ตอนจบการเทรน · เขาบันทึกหลายจุดระหว่างทาง และทุกจุดต้องผ่านคะแนนสองตัว — ตัวหนึ่งบนหางของข้อมูลเทรน อีกตัวบนข้อมูลตรวจสอบ เพื่อเลี่ยงทั้งการจำข้อมูลและการเลือกโมเดลที่ไม่เข้ากับช่วงนั้น
ฟังก์ชันรางวัล ซึ่งเขาเรียกว่า “หัวใจของการเรียนรู้เสริมแรง” (3:48) คือ เงินที่ทำได้ ลบบทลงโทษเมื่อขาดทุนสะสมลึก (8:53) ไม่ใช่กำไรดิบ
⭐ ชั้นที่ 3 — ประตูความสม่ำเสมอ 10:22
นี่คือส่วนที่มีค่าที่สุดของคลิป และเป็นสิ่งที่เอาไปใช้กับงานอะไรก็ได้ ไม่ใช่แค่ RL
“ประตูนี้ถามคำถามง่าย ๆ ว่า มีช่วงเวลามากพอไหมที่ทำเงินได้เองโดยอิสระ”
ไม่ใช่ “กำไรรวมเป็นบวกไหม” เพราะกำไรรวมบวกได้จากช่วงเดียวที่ระเบิด · เป็นด่านเดียวกับที่คลังนี้ใช้ตอนรายงานผลรายปี และเป็นเหตุผลที่เราเขียนกำกับไว้เสมอว่า “บวกกี่ปีจาก 5 ปี”
3. ⚑⚑ ตัวเลขที่เขาเอามาทำลายข้ออ้างตัวเอง 12:11
เขาเปิดโมเดลที่โอเวอร์ฟิตให้ดูเป็นตัวอย่าง:
| ชุดข้อมูล | ผลตอบแทน |
|---|---|
| เทรน | +86% |
| ตรวจสอบ | +12% |
| ทดสอบ (ไม่เคยเห็น) | +6.9% |
และเติมที่ 12:23 ว่า “บางครั้งคุณอาจได้ค่าติดลบตรงนี้ ซึ่งไม่น่าแปลกใจ”
86 → 12 → 6.9 คือรูปร่างของการโอเวอร์ฟิตที่อ่านได้ด้วยตาเปล่า และการที่เขาเอามาโชว์เองทำให้ตัวเลข 60% ในหัวคลิปน่าเชื่อถือขึ้น ไม่ใช่น้อยลง — เพราะเขาแสดงให้เห็นว่าเขารู้ว่ากำลังระวังอะไรอยู่
เขายังเทียบกับเส้นฐานที่เป็น EMA (14:13) ไม่ใช่เทียบกับศูนย์ ซึ่งตรงกับกฎของคลังนี้
4. เครื่องมือโอเพนซอร์ส 11 ตัว — อะไรใช้กับทองได้จริง
สำรวจจาก API ของ GitHub เมื่อ 5 ตุลาคม 2026 ทุกตัวเลขดึงสด:
| เครื่องมือ | ดาว | ไลเซนส์ | อัปเดตล่าสุด | ใช้กับทองสปอตได้ไหม |
|---|---|---|---|---|
| OpenBB | 73,861 | NOASSERTION | 2026-10-02 | เป็นแพลตฟอร์มข้อมูล ไม่ใช่เครื่องทดสอบ |
| freqtrade | 55,042 | GPL-3.0 | 2026-10-05 | ⚑ คริปโตล้วน |
| qlib | 49,155 | MIT | 2026-09-22 | ✅ หุ้นเป็นหลัก แต่กรอบประเมินย้ายมาได้ |
| nautilus_trader | 29,633 | LGPL-3.0 | 2026-10-05 | ✅ หลายสินทรัพย์ · เขียนด้วย Rust |
| backtrader | 23,396 | GPL-3.0 | 2024-08-19 | ⚑⚑ หยุดพัฒนาไปแล้วกว่า 2 ปี |
| Lean | 21,864 | Apache-2.0 | 2026-10-05 | ✅ รองรับ CFD/ฟอเร็กซ์/ฟิวเจอร์สจริง |
| hummingbot | 20,308 | Apache-2.0 | 2026-10-05 | ⚑ คริปโตล้วน · เน้นทำตลาด |
| jesse | 8,611 | MIT | 2026-10-05 | ⚑ คริปโตล้วน |
| OctoBot | 6,679 | GPL-3.0 | 2026-10-05 | ⚑ คริปโตล้วน |
| Superalgos | 5,674 | Apache-2.0 | 2026-10-04 | ⚑ คริปโตล้วน |
| repo ของคลิปนี้ | 160 | ไม่มีไลเซนส์ | 2026-06-16 | อ่านได้ ⚑ ไม่มีไฟล์ LICENSE = สงวนสิทธิ์ทั้งหมด นำโค้ดไปใช้ซ้ำไม่ได้ตามกฎหมาย |
⭐ สามอย่างที่เครื่องมือเหล่านี้มี และเรายังไม่มี
ตรวจจากโครงสร้างไฟล์จริงในแต่ละ repo:
- แบบจำลองความหน่วง —
nautilus_traderมีcrates/execution/src/models/latency.rsและเครื่องจับคู่คำสั่งเต็มรูปแบบ · ของเรามีแค่ด่าน “หน่วงฟิล 1 นาที” ซึ่งเป็นด่าน ไม่ใช่แบบจำลอง - สลิปเพจตามขนาดไม้ —
Leanมี 7 แบบจำลองสลิปเพจ รวมถึงMarketImpactSlippageModelและVolumeShareSlippageModelและ 36 แบบจำลองค่าธรรมเนียม · ของเราไม่ขึ้นกับขนาดไม้เลย - กรอบตัดสินใจซ้อนชั้น —
qlibมีexamples/nested_decision_executionซึ่งแยก TF ของการตัดสินใจออกจาก TF ของการส่งคำสั่งอย่างเป็นทางการ · เป็นรูปแบบเดียวกับที่เราทำด้วยมือทุกครั้งที่ใช้ H1 เป็นบริบทแล้วส่งคำสั่งบน M3
⚑⚑ และสิ่งที่เรามี แต่เครื่องมือเหล่านั้นไม่มี
ต้นทุนที่วัดจากโบรกเกอร์จริงบนสินทรัพย์จริง — สเปรด 0.42 bp ตามรูปชั่วโมง และสลิปสต็อป +0.287 bp ที่มาจากการตรวจจริง ไม่ใช่การสมมติ
แบบจำลองทุกตัวในเครื่องมือเหล่านั้นเป็นโครงที่ต้องเอาตัวเลขไปใส่เอง · การย้ายไปใช้เครื่องมือเหล่านั้นจึงไม่ได้ทำให้การทดสอบแม่นขึ้นโดยอัตโนมัติ — ต้องไปหาตัวเลขเดิมที่เราวัดมาแล้วใส่กลับเข้าไปอยู่ดี
5. การวิเคราะห์ — สิ่งที่เราวัดแล้ว
เราไม่ได้รันบอท RL ซ้ำ แต่เราเอาวินัยของเขาไปใช้กับงานของเราเองในวันเดียวกัน และมันจับของปลอมได้สองครั้ง
ประตูความสม่ำเสมอทำงาน — ในงานภายในเรื่องระดับ VWAP ของเรา ช่องหนึ่งให้ส่วนเกิน +0.124R ที่ z 3.40 ซึ่งสูงกว่าทุกอย่างที่โปรแกรมเราเคยวัดได้ แต่มันบวกแค่ช่องเดียวจากหกช่องในตารางเดียวกัน ส่วนเพื่อนบ้านให้ +0.018 / −0.033 / +0.036 · ตามเกณฑ์ของเขา (“ช่วงเวลาส่วนใหญ่ต้องเป็นบวกเอง”) ช่องนี้ตกทันที — และด่านระดับปลอมก็ยืนยันหลังจากนั้นว่ามันไม่จริง
กฎ “อย่าใช้ค่าสัมบูรณ์” ของเขามีราคาที่วัดได้ — เราวัดการกระจายตัวของราคารอบ VWAP บนทอง M1 ปี 2015–2019 แล้วพบว่า ส่วนเบี่ยงเบนมาตรฐานที่สะสมภายในเซสชันเป็นตัวหารที่กลบหางของตัวเอง (ส่วนเกินความโก่ง −0.3 ถึง −0.5 คือหางบางกว่าปกติ) แต่เมื่อเปลี่ยนไปใช้ค่าที่รู้ล่วงหน้าจากพิสัยของเซสชันเดียวกัน 20 ครั้งก่อน ค่าเดียวกันกลายเป็น +4.0 ถึง +68 ซึ่งคือหางอ้วนของจริง · เป็นข้อเดียวกับที่เขาพูดที่ 20:06 แต่ในรูปที่ตรวจสอบได้
และสิ่งที่เราวัดได้ซึ่งคลิปไม่มี — หลังราคาแตะระดับสุดขั้ว มันกลับเข้าหา VWAP ก่อนจะไปต่อ มากกว่าที่การเดินสุ่มทำนายไว้ 16 ถึง 23 จุดเปอร์เซ็นต์ ในทั้ง 12 ช่องที่วัด (z −4.0 ถึง −16.7) · นั่นเป็นพฤติกรรมที่มีจริงและใหญ่ แต่ยังแปลงเป็นการเทรดไม่ได้ เพราะสต็อปที่ตรรกะนั้นเรียกร้องอยู่ที่ 0.10–0.16 เท่าของ ATR ซึ่งต่ำกว่าเส้นที่เราวัดไว้ว่าสต็อปเริ่มถูกข้าม
6. สิ่งที่คลิปไม่มี
- ไม่มีต้นทุนที่ตรวจสอบได้ — คลิปไม่ได้ระบุสเปรด ค่าคอมมิชชัน หรือสลิปเพจที่ใช้ · บนทอง ต้นทุนคือตัวแปรที่ฆ่ากลยุทธ์มากที่สุด
- ไม่มีจำนวนไม้ในผลหลัก — มีการพูดถึงจำนวนไม้ที่ 16:27 แต่ตัวเลข 60% ไม่ได้มาพร้อมขนาดตัวอย่างหรือช่วงความเชื่อมั่น
- ไม่เทียบกับการถือทอง — เส้นฐานเป็น EMA ซึ่งดีกว่าเทียบศูนย์ แต่ทองขึ้นมามากในช่วง 20 ปี การถือเฉย ๆ ที่ปรับความเสี่ยงเท่ากันคือคู่เทียบที่ตรงกว่า
- 60% คือผลตอบแทนสะสม ไม่ใช่ต่อปี และไม่มีค่าขาดทุนสะสมสูงสุดกำกับในหัวคลิป
7. ตั้งคำถามกับคลิปนี้
“60% นอกตัวอย่าง แปลว่ามีขอบไหม” — คลิปเองไม่ได้อ้างแบบนั้น เขาอ้างว่า พยายามแยกให้ออกว่าเป็นขอบหรือโชค และเปิดตัวอย่างโมเดลที่พังให้ดู · เขายังขอให้คนช่วยตรวจโค้ด (20:49) และบอกว่าตรวจการรั่วของข้อมูลแล้วไม่เจอ (20:42) ซึ่งเป็นการอ้างที่ตรวจสอบได้ เพราะโค้ดเปิดอยู่
“ทำไม repo ถึงสำคัญกว่าที่คิด” — เพราะมันมีไฟล์ชื่อ leakage_checks.py, baselines.py และ final_holdout_eval.py อยู่จริง นั่นคือวินัยที่เขาอ้าง แปลงเป็นโมดูลถาวร ไม่ใช่การตรวจครั้งเดียว ⚑ แต่ repo ไม่มีไฟล์ LICENSE จึงอ่านเพื่อเรียนรู้ได้ นำโค้ดไปใช้ซ้ำไม่ได้
8. ใคร ทำอะไร ที่ไหน อย่างไร
| ใคร | CodeTrading — ช่องสอนเขียนโค้ดเทรด · เผยแพร่ 18 มิถุนายน 2026 · ยาว 21 นาที |
| ทำอะไร | เทรนตัวแทน PPO ให้เทรดทองด้วยชุดการตัดสินใจ 3 อย่าง สต็อปจาก ATR เป้าเป็นตัวคูณความเสี่ยง |
| ที่ไหน | ข้อมูลทอง 20 ปี · โค้ด Python เปิดอยู่บน GitHub |
| อย่างไร | หน้าต่างเลื่อนขนาดคงที่ → เลือกจุดบันทึกด้วยสองคะแนน → ประตูความสม่ำเสมอ → ทดสอบบนข้อมูลที่ไม่เคยเห็น |
| ขายอะไร | ไม่มีสินค้า · โค้ดฟรี · ขอความช่วยเหลือในการตรวจสอบแทน |
9. นำไปใช้กับ XAUUSD
- เอาประตูความสม่ำเสมอไปใช้ก่อนเอาโมเดลไปใช้ — ถามว่า “กี่ช่วงเวลาที่บวกเอง” ก่อนถาม “กำไรรวมเท่าไร” · ด่านนี้ไม่ต้องใช้ RL และจับของปลอมได้แล้วในงานของเราเอง
- ป้อนอัตราส่วน ไม่ใช่ราคา — ตามกฎของเขาที่ 20:06 · และบนทองปี 2026 เรื่องนี้สำคัญเป็นพิเศษ เพราะความผันผวนต่างจากปี 2015–2019 ราว 8 เท่า ค่าที่เป็นดอลลาร์จึงย้ายข้ามยุคไม่ได้เลย
- ถ้าจะย้ายไปเครื่องมือโอเพนซอร์ส เลือกได้แค่สามตัว — Lean (ครบที่สุดเรื่องสินทรัพย์และต้นทุน) · nautilus_trader (ความหน่วงและการจับคู่คำสั่งจริง) · qlib (กรอบประเมินและตัดสินใจซ้อนชั้น) · ที่เหลือเป็นคริปโตหรือหยุดพัฒนาแล้ว
- อย่าคาดว่าการย้ายเครื่องมือจะทำให้ผลแม่นขึ้น — แบบจำลองต้นทุนในเครื่องมือเหล่านั้นเป็นโครงเปล่า ตัวเลขจริงยังต้องมาจากการวัดโบรกเกอร์ของตัวเองอยู่ดี
10. ข้อจำกัด
- เราไม่ได้รันโค้ดของเขาซ้ำ ข้อสรุปเรื่องวิธีการมาจากคลิปและจากรายชื่อไฟล์ใน repo ไม่ใช่จากการตรวจโค้ดบรรทัดต่อบรรทัด
- ตัวเลขทั้งหมดที่เราอ้างว่าเป็นของเรา วัดบนทอง XAUUSD ปี 2015–2019 ซึ่งเป็นโซนพัฒนา และยังไม่ผ่านโซนตรวจสอบ
- สถิติของ GitHub ดึงเมื่อ 5 ตุลาคม 2026 · ดาวและวันอัปเดตเปลี่ยนได้ตลอด
- ไม่ใช่คำแนะนำการลงทุน
11. สรุป
คลิปนี้มีค่าไม่ใช่เพราะเลข 60% แต่เพราะโครงที่ใช้ตรวจสอบเลข 60% — หน้าต่างเลื่อน การเลือกจุดบันทึกด้วยสองคะแนน และโดยเฉพาะประตูความสม่ำเสมอ ที่ถามว่า มีกี่ช่วงเวลาที่ทำเงินได้เอง แทนที่จะถามว่ากำไรรวมเท่าไร · และตัวเลข 86 → 12 → 6.9 ที่เขาเอามาเตือนเองคือภาพของการโอเวอร์ฟิตที่ควรจำไว้
ส่วนเครื่องมือโอเพนซอร์ส 11 ตัว เมื่อตรวจของจริงแล้วเหลือ สามตัวที่ใช้กับทองสปอตได้ และสิ่งที่พวกมันเพิ่มให้เราได้คือ ความหน่วง สลิปเพจตามขนาดไม้ และกรอบตัดสินใจซ้อนชั้น — ส่วนตัวเลขต้นทุนจริง ยังเป็นสิ่งที่ต้องวัดเอง ไม่มีใครให้ได้
หัวข้อในคลิป