คู่มือคำสั่ง ea-bt.exe
หน้านี้ใช้เมื่ออยากพิมพ์คำสั่งเองใน PowerShell แทนการกดปุ่มใน dashboard หรือเมื่อเจอชื่อเครื่องมือในบทเรียนแล้วอยากรู้ว่ามันทำอะไร · มีครบทุกเครื่องมือที่ bt\ea-bt.exe --list แสดง แบ่งตามจังหวะที่ใช้
ยังไม่เคยเห็นระบบนี้เลย → เริ่มที่ ภาพรวมระบบ backtest ก่อน
ea-bt.exe คืออะไร
bt\ea-bt.exe คือ program ตัวเดียวที่รวมเครื่องมือทุกตัวของ kit ไว้ (ไม่ต้องติดตั้ง Python) · dashboard ก็เรียก program นี้ — กดปุ่มกับพิมพ์คำสั่งได้ผลเหมือนกัน (คู่มือ dashboard)
วิธีเรียก: เปิด PowerShell ใน folder kit (ใน File Explorer: click ขวาที่ว่างใน folder kit → Open in Terminal) แล้วพิมพ์
bt\ea-bt.exe <เครื่องมือ> [argument]
bt\ea-bt.exe --list # รายชื่อเครื่องมือทั้งหมด
bt\ea-bt.exe <เครื่องมือ> --help # argument ทั้งหมดของเครื่องมือนั้น
path ทุกตัวในหน้านี้เทียบกับ folder kit · <...> คือส่วนที่ต้องแทนด้วยของคุณ · ตัวอย่างที่ชี้ lab\reports\... ใช้รายงานตัวอย่างที่มากับ kit จึงพิมพ์ตามได้ทันที
คำที่ใช้ในหน้านี้
| คำ | ความหมาย |
|---|---|
| EA | program trade อัตโนมัติใน MT5 · source .mq5 · file ที่ run ได้ .ex5 |
| backtest / tester | ให้ EA trade บนราคาย้อนหลังใน Strategy Tester ของ MT5 |
| broker · terminal | บริษัทที่เปิดบัญชี demo ให้ · MT5 หนึ่งตัว (terminal64.exe) · ใน kit หนึ่งบัญชี = MT5 หนึ่งตัวที่ mt5\MT5_<ชื่อ>\ |
| tick | ราคาทุกครั้งที่เปลี่ยน · ช่วงที่ไม่มี tick จริง MT5 สร้างจาก bar M1 ให้เงียบ ๆ ผลจะเชื่อไม่ได้ |
.set / preset |
file ค่า input ของ EA หนึ่งชุด |
| config | file bt\config*.yaml ที่บอกว่าจะ backtest อะไร (คู่มือ config) |
| รายงาน | file .htm ผล backtest หนึ่งงาน |
| IS / OOS | in-sample = ช่วงที่ใช้คัดเลือก · out-of-sample = ช่วงที่เก็บไว้ยืนยัน ห้ามใช้เลือกอะไร |
| R | กำไร/ขาดทุนของหนึ่ง trade หารด้วยจำนวนที่เสี่ยงไว้ตอนเข้า · ขาดทุนเต็ม SL = −1R |
| E[R] | R เฉลี่ยต่อ trade · มากกว่า 0 = มี edge (ได้เปรียบ) ในข้อมูลชุดนั้น |
| CI (bootstrap 95%) | ช่วงที่ E[R] จริงน่าจะอยู่ · ขอบล่างต่ำกว่า 0 = ยังแยกจากความบังเอิญไม่ได้ |
| DD (drawdown) | ทุนร่วงจากจุดสูงสุดกี่ % |
| shuffle / DD p95 | สลับลำดับ trade หลายพันครั้ง · DD p95 = DD ที่แย่กว่า 95% ของลำดับที่สุ่ม — ใช้เป็นตัวเลขที่ต้องทนได้ |
| t | ขนาด edge เทียบกับความแกว่ง · ยิ่งสูงยิ่งไม่ใช่ความบังเอิญ |
| PF (profit factor) | กำไรรวม ÷ ขาดทุนรวม · ใช้ประกอบเท่านั้น ไม่ใช้ตัดสิน (S5) |
| overfit | ปรับค่าจนเข้ากับข้อมูลที่ test พอดี แต่ใช้กับข้อมูลใหม่ไม่ได้ |
| compounding | ทบต้น · lot โตตามทุน |
| contract size | ขนาดสัญญาต่อ 1 lot · ทองมี 1 / 10 / 100 แล้วแต่ broker และสัญลักษณ์ |
| G1 · G2 · G4 | ชื่อด่าน (gate): G1 = ต้นทุน · G2 = โครงสร้าง (research\README.md) · ในตาราง verdict G2 ดูว่า win% เกิน need% และ G4 ดูว่า t ถึงเส้นตัดสิน |
| walk-forward | run .set เดียวซ้ำหลายช่วงเวลาที่เลื่อนไป (แต่ละช่วงคือ test period) |
| R1–R6 | ด่าน robustness หลังผ่านรอบแรก: เวลา · broker · ต้นทุน · การส่งคำสั่ง · parameter · ข้อมูลรบกวน (research\5-verdict\robustness.md) |
| slippage | ราคาที่ broker fill ต่างจากราคาที่ขอ |
| magic | เลขประจำ EA ที่ติดกับทุก order ใช้แยก trade ของ EA แต่ละตัวในบัญชีเดียวกัน |
column ใช้ใน: Standard = ใช้ใน course นี้ · Advanced = สอนใน course Advanced · ต้องใช้ข้อมูลที่ kit ไม่มี = code ใน kit ระบุว่าผูกกับข้อมูลหรือ EA ของผู้สอน กดหรือพิมพ์ได้แต่ไม่ได้ผลที่ใช้ได้
1 · เตรียมบัญชีและข้อมูล
ใช้ก่อน backtest งานแรก: เพิ่มบัญชี · check ว่ามี tick จริง · หาช่วงวันที่ · check spec สัญลักษณ์
| เครื่องมือ | ทำอะไร | ใช้ตอนไหน | ใช้ใน |
|---|---|---|---|
add_account |
เพิ่มบัญชี demo: copy MT5 ต้นแบบ (mt5\_template) เป็น mt5\MT5_<ชื่อ>\ · login · เพิ่มเข้า brokers ใน config |
ครั้งแรก และทุกครั้งที่เพิ่ม broker | Standard |
tick_depth |
เปิด MT5 ของบัญชีนั้น ดึง tick ย้อนหลังจาก broker แล้วปิดเอง · --from ตอบว่ามี tick จริงตั้งแต่เดือนนั้นไหม |
หลังเพิ่มบัญชี · ก่อนตั้งช่วงวันที่ใหม่ · ปิด MT5 ตัวนั้นก่อน | Standard |
tick_years |
อ่าน tick ที่ดึงลงเครื่องแล้ว บอกว่าแต่ละบัญชีมีถึงปีไหน · ไม่เปิด MT5 | หลัง tick_depth |
Standard |
is_oos |
ให้ date_from / date_to ของช่วง IS/OOS มาตรฐาน (แบ่งครึ่งปี สุ่มครั้งเดียว lock ถาวร) |
ทุกครั้งที่ตั้งช่วงวันที่ — ห้ามพิมพ์วันที่เอง | Standard |
symbol_check |
อ่าน spec ของสัญลักษณ์จาก MT5: contract size · tick value · digits · ช่วงข้อมูล | ก่อนตั้ง risk% หรือเมื่อผลดูผิดสัดส่วน | Standard |
lot_check |
คิด lot จาก risk% แล้วบอก risk% ที่เกิดจริง · --bug แสดง case จริงที่ตั้ง 7% แต่ยิงจริง 22.7 lot = 136% ของทุน |
ก่อนเชื่อสูตรคิด lot ของ EA | Standard |
power |
ต้องมีกี่ trade ถึงจะแยก edge จากความบังเอิญได้ · --from ใช้ n และความแกว่งจริงจากรายงาน |
ก่อนตั้งความยาวช่วงทดสอบ | Standard |
tick_coverage |
แต่ละ broker มี tick ถึงเดือนไหน และ build ของ MT5 ตามหลังไหม · ค่าตั้งต้น --config คือ bt/config_warm_ticks.yaml ซึ่งไม่มีใน kit ต้องใส่ --config เอง |
เทียบหลาย broker | Advanced |
add_broker |
เพิ่ม MT5 ที่มีอยู่แล้วเข้าระบบวัดต้นทุนของผู้สอน | — | ต้องใช้ข้อมูลที่ kit ไม่มี · Standard ใช้ add_account |
bt\ea-bt.exe add_account --name RoboForex-Demo --login <เลขบัญชี> --server RoboForex-ECN --symbol XAUUSD --dry-run
bt\ea-bt.exe add_account --open-template # เปิด MT5 ต้นแบบให้ค้นชื่อ broker (ห้าม login)
bt\ea-bt.exe tick_depth --terminal mt5\MT5_RoboForex-Demo --from 2026-01
bt\ea-bt.exe tick_years --own
bt\ea-bt.exe is_oos --year 2026 --yaml
bt\ea-bt.exe is_oos --check 2026-01-01 2026-04-30
bt\ea-bt.exe symbol_check --terminal mt5\MT5_RoboForex-Demo --symbol XAUUSD
bt\ea-bt.exe lot_check --balance 10000 --risk 1 --sl 10 --contract 100 --ccy USD
bt\ea-bt.exe power --from lab\reports\tick-quality\Robo\A1-base.htm
อ่านผล:
add_accountไม่ใส่--dry-run= ทำจริง · รหัสผ่านพิมพ์ในหน้าต่างที่ถาม (หรือใช้ฟอร์มใน dashboard) · ขั้นตอนเต็มอยู่ใน คู่มือติดตั้งtick_depth --fromต้องได้ticks yes· ได้NO — only M1 bars= ช่วงนั้นไม่มี tick จริง ใช้บัญชีนี้กับช่วงนั้นไม่ได้ (ตั้งenabled: false) · ไม่ใส่--from= หาขอบล่างสุด ซึ่งไม่นิ่งบนบัญชีใหม่ ห้ามใช้ตั้งdate_fromis_oos --yamlพิมพ์ทั้งบรรทัด IS และ OOS · copy เฉพาะคู่ที่ comment ท้ายบรรทัดเขียนว่าIS <ปี>ลง config ·--checkexit 1 ถ้าช่วงที่ให้ไม่ใช่ block ใดlot_checkดูบรรทัด real risk% ไม่ใช่ lot · บัญชี cent ใส่--balanceเป็นเซนต์และ--ccy USCpowerบอกว่า trade ที่มีพอไหม (บรรทัดneeds ... trades for power 80%)

ผลจริงของ tick_depth --from 2026-01 แล้ว tick_years --own บนบัญชี demo ใหม่: บรรทัด ticks yes — ... · column first = 202512*
2 · เตรียม EA
รับ EA เข้าระบบ · compile · ตรวจเลข version ก่อน run
| เครื่องมือ | ทำอะไร | ใช้ตอนไหน | ใช้ใน |
|---|---|---|---|
intake |
รับ EA ดิบเป็นกอง · ตัด MT4 · indicator · ตัวซ้ำ · copy เข้า research\0-intake\sources\ แล้ววาง .ex5/.mq5 และ .set ตั้งต้นใน research\1-screen\ |
EA ที่ download หรือซื้อมา | Standard |
compile |
compile .mq5 → .ex5 เฉพาะตัวที่ยังไม่มี .ex5 หรือ .ex5 เก่ากว่า source · --all ใหม่ทุกตัว · --check ดูอย่างเดียว |
EA ที่เขียนเอง (หรือปล่อยให้ run compile ให้) |
Standard |
check_version |
เลข version ใน .mq5 ตรงกับชื่อ file ทุกจุดไหม · exit 0 = ตรงหมด |
ก่อน run EA ที่เขียนหรือแก้เอง | Standard |
check_ping_log |
EA ทุกตัวที่ส่งคำสั่ง trade ต้องจด ping ลง CSV · exit 0 = ครบ | ก่อน run EA ที่เขียนหรือแก้เอง | Standard |
audit_lot |
ไล่ตรวจว่า EA ที่คิด lot เองทำครบกฎคิด lot 6 ข้อไหม | ตรวจ code EA | Advanced |
bt\ea-bt.exe intake --src research\0-intake\inbox --dry-run
bt\ea-bt.exe intake --src research\0-intake\inbox
bt\ea-bt.exe intake --report # ตารางจากรอบล่าสุด
bt\ea-bt.exe compile --config bt\config_<ชื่อ>.yaml --check
bt\ea-bt.exe compile --config bt\config_<ชื่อ>.yaml
bt\ea-bt.exe check_version --only <ชื่อ>
bt\ea-bt.exe check_ping_log --only <ชื่อ>
intake --srcต้องเป็น folder แม่ (inbox) ไม่ใช่ folder ของ EA ตัวเดียว · ดู--dry-runก่อนว่าตัวไหนรับ ตัวไหนไม่รับ เพราะอะไรcheck_ping_log --list-skippedแสดง file ที่ถูกข้ามเพราะตัวตรวจมองว่า "ไม่ส่งคำสั่ง" — ดูด้วยตาว่าไม่มี EA ที่ trade จริงหลุดอยู่ในนั้น
3 · run backtest
| เครื่องมือ | ทำอะไร | ใช้ตอนไหน | ใช้ใน |
|---|---|---|---|
dashboard |
เปิดหน้า web คุมระบบ (http://127.0.0.1:8770) · ปกติเปิดผ่าน 2-เปิดหน้าคุม.bat |
ทุกวัน | Standard |
run |
run ทุก .set ที่เลือก × ทุก broker ใน config · แต่ละ broker run คนละ MT5 · จบแล้วทำ summary.csv |
งานหลัก · ใช้ผ่าน queue ใน dashboard | Standard |
walk |
walk-forward: run .set เดียวซ้ำหลาย test period · ผลลง <backtest_root>\_walk\ |
ด่าน R1 (เวลา) | Standard |
bt\ea-bt.exe run --config bt\config.yaml --dry-run # ดูแผน ไม่ run จริง
bt\ea-bt.exe run --config bt\config.yaml --summary-only # ทำ summary จากรายงานที่มี ไม่ run
bt\ea-bt.exe walk --config bt\config.yaml --set default --list
★ ใน course นี้ คุณกด start ใน dashboard เอง — run ที่ไม่มี --dry-run / --summary-only และ walk ที่ไม่มี --list / --report-only คือเริ่ม backtest จริงทันที (ไม่ผ่าน queue) · ใช้ dashboard → card queue งาน → เริ่ม queue แทน
argument ของ run |
ทำอะไร |
|---|---|
--config <file> |
เลือก file config |
--dry-run |
พิมพ์แผน: ช่วงวันที่ · TF · model · broker · กี่งาน · กี่งานถูกข้าม · .set ไหนยังไม่มี .ex5 |
--limit 1 |
run 1 งานต่อ broker (ตรวจระบบก่อนปล่อยงานยาว) |
--broker <ชื่อ,ชื่อ> |
run เฉพาะ broker ที่ระบุ |
--no-skip |
run ทับงานที่มีผลแล้ว |
--retry-failed |
run เฉพาะงานที่ล้มเหลวรอบก่อน |
--serial |
run ทีละงาน ไม่ขนาน |
--no-compile |
ไม่ compile ก่อน run |
--summary-only · --no-summary |
ทำแค่ summary · ข้าม summary |
argument ของ walk |
ทำอะไร |
|---|---|
--set <preset> |
preset หรือชื่อ file .set (ไม่ใส่ = walk_set ใน config) |
--window <วัน> · --step <วัน> |
ความยาว test period · ระยะเลื่อน (ไม่ใส่ = window_days 30 · step_days 5) |
--list |
แสดงรายการ test period ไม่ run |
--report-only |
สร้างรายงานจากผลที่มี |
4 · อ่านผล
ใช้หลัง run จบ · แปลงรายงาน .htm เป็นตัวเลขที่ MT5 ไม่มีให้ · อ่าน History Quality ในรายงานก่อนเสมอ ต่ำกว่า 90% = ทิ้งรายงานนั้น (S5)
| เครื่องมือ | ทำอะไร | ใช้ตอนไหน | ใช้ใน |
|---|---|---|---|
mc |
Monte Carlo จากลำดับ trade จริง: E[R] + CI · DD ของลำดับจริงเทียบ DD p95 ของ shuffle · ที่ risk% หลายระดับ | ทุกรายงานที่จะตัดสิน | Standard |
corr |
หลาย EA run พร้อมกันแล้ววันแย่มาพร้อมกันไหม · correlation ของ R รายวัน + DD ของตะกร้า | คิดจะ run หลายตัวพร้อมกัน | Standard |
streaks |
แพ้ติดกันกี่ trade บ่อยแค่ไหน · จากลำดับจริงและจาก shuffle | เตรียมใจก่อน forward | Advanced |
equity |
equity curve และ DD ของ EA หลายตัวในช่วงเดียวกัน · ป้อนหน้ารายงาน HTML | ทำรายงานเทียบหลายตัว | Advanced |
prop_check |
ตรวจกติกา prop firm (บริษัทที่ให้ทุน trade): ช่วงไม่มี trade ยาวสุด · วันแย่สุด% | จะใช้ EA กับ prop firm | Advanced |
compare_deals |
เทียบรายงานสองใบว่า trade เหมือนกันทุก deal ไหม · exit 0 = ตรงกันทุก deal และทุก order | แก้ code ที่ไม่ควรเปลี่ยนการ trade แล้วต้องพิสูจน์ (ขั้น 6 release) | Advanced |
match_trades |
จับคู่ trade ทีละใบระหว่างรายงานสองใบ · บอกว่าจับคู่ได้กี่ % ของฝั่งอ้างอิง | เทียบ EA สอง version | Advanced |
decode_orders |
ถอดพฤติกรรม EA จาก order ที่มันวางในรายงาน — สำหรับ .ex5 ที่ไม่มี source |
ขั้น 2 decode | Advanced |
bt\ea-bt.exe mc lab\reports\tick-quality\Robo\A1-base.htm --daily
bt\ea-bt.exe mc research\4-backtest\<ชื่อ>_IS2026\<EA>\<version>\*\<preset>.htm --each
bt\ea-bt.exe corr <รายงาน A>.htm <รายงาน B>.htm
bt\ea-bt.exe streaks lab\reports\tick-quality\Robo\A1-base.htm
bt\ea-bt.exe prop_check research\4-backtest\<ชื่อ>_IS2026\<EA>\<version> 10000
bt\ea-bt.exe compare_deals <รายงานอ้างอิง>.htm <รายงานใหม่>.htm
argument ของ mc |
ทำอะไร |
|---|---|
| หลาย file | รวมเป็นชุดเดียว · ใส่ * ได้ |
--daily |
ยุบเป็น R รายวันก่อนจำลอง — trade ที่เปิดซ้อนในวันเดียวนับครั้งเดียว · ใช้กับ EA ที่ยิงหลาย trade ต่อวัน |
--each |
แสดงผลแยกราย file ด้วย · รวมหลาย broker ทำให้ t เฟ้อ ให้ตัดสินจากราย broker |
--draws <n> |
จำนวนรอบสุ่ม (ค่าตั้งต้น 2000) |
--from · --to <YYYY-MM-DD> |
ตัดเฉพาะ trade ที่ปิดในช่วงนี้จากรายงานเดิม โดยไม่ run ใหม่ · ใช้ได้เฉพาะ EA ที่ไม่มีสถานะข้าม trade (ไม่หยุดหลังแพ้ · ไม่มีเพดานรายวัน · ไม่ทบ lot) |
prop_check รับ folder แล้วทุนเป็นตัวที่สอง (ไม่ใส่ = 10000) · ทุนต้องตรงกับที่รายงาน run มาจริง
5 · ตัดสินผล และด่าน robustness
| เครื่องมือ | ทำอะไร | ใช้ตอนไหน | ใช้ใน |
|---|---|---|---|
verdict |
ตารางตัดสินของทุกรายงานใน folder broker หนึ่งตัว: จำนวน trade · กำไรต่อ trade · R · t · t สุทธิ (t net) · PF · win% · need% (win% ขั้นต่ำที่ต้องได้) · DDrel% · ผล PASS/FAIL |
หลัง mc · เทียบกับเกณฑ์ที่เขียนก่อน run |
Standard |
stability |
อ่าน stats.csv ของ walk-forward แล้วดูว่าอันดับ preset นิ่งข้าม test period หรือสลับไปมา |
ด่าน R1 · ต้องมีผล walk หลาย preset | Standard |
sensitivity |
ด่าน R5: ขยับ input ตัวเลขทีละตัว ±10% → ได้ .set เพื่อนบ้าน → run → อ่านผล · ผลดีเฉพาะจุดเดียว (ยอดแหลม) = น่าจะ overfit |
ด่าน R5 | Standard |
ea_status |
สรุป EA ทุกตัวว่าอยู่ขั้นไหน สถานะอะไร จาก research\status.yaml · --check exit 1 ถ้าข้อมูลขัดกัน |
ทุกครั้งที่แก้ status.yaml และตอนเปิด session |
Standard |
rank_window |
จัดอันดับ EA จากรายงานที่มี โดยตัดเฉพาะช่วงเวลาที่ขอ ไม่ต้อง run ใหม่ | คัดกรองกองใหญ่ | Advanced |
match_dd |
เทียบ EA หลายตัวที่ DD เท่ากัน ด้วยตัวคูณทุนแบบ compounding | เลือกระหว่างหลายตัว | Advanced |
analyze_arms |
เทียบหลาย arm (ทางเลือกในรอบทดสอบเดียว) ด้วย E[R] ต่อ trade | รอบทดลองหลาย arm | Advanced |
bt\ea-bt.exe verdict lab\reports\tick-quality\Robo
bt\ea-bt.exe verdict research\4-backtest\<ชื่อ>_IS2026\<EA>\<version>\<broker> --sort t
bt\ea-bt.exe stability research\4-backtest\<ชื่อ>_IS2026\_walk\<EA>\<version>\<broker>
bt\ea-bt.exe sensitivity list set\<ชื่อ>\V0.01\<ชื่อ>_v0.01_default.set
bt\ea-bt.exe sensitivity make set\<ชื่อ>\V0.01\<ชื่อ>_v0.01_default.set
bt\ea-bt.exe sensitivity read <backtest_root ของรอบ R5>\<EA>\<version>\<broker>
bt\ea-bt.exe ea_status --check
verdictต้องชี้ folder ของ broker หนึ่งตัว (ที่มี.htmข้างใน) ไม่ใช่ folder version · เส้นตัดสิน t สุทธิ ≥ 2.0 เมื่อลอง preset เดียว และขยับขึ้นตามจำนวน preset ที่ลอง (code: 10 preset → 2.80 · 20 → 3.02) · ลอง preset กับข้อมูลชุดเดิมมาก่อนแล้ว ให้ใส่--trials <จำนวนรวม>·--sortเลือกได้edge·t·ratio·net·name(เปลี่ยนแค่ลำดับแถว)stabilityใช้--metricเลือก column ของstats.csv(profit·expected_payoff·profit_factor)sensitivity makeใช้--params A,B(เลือก input) ·--pct(ค่าตั้งต้น 10) ·--steps(ค่าตั้งต้น 1) ·readใช้--keep(ค่าตั้งต้น 0.5 = เพื่อนบ้านต้องได้ E[R] ≥ ครึ่งหนึ่งของ center) · เพื่อนบ้านที่ดีกว่าห้ามเอาไปใช้แทนเงียบ ๆ (ต้องเขียน prereg ใหม่)
6 · forward และวัด slippage
forward = ปล่อย EA trade จริงบนบัญชี demo แล้วเก็บประวัติมาเทียบกับ backtest · ใน Standard ใช้เพื่อวัด slippage ของด่าน R3 เท่านั้น (README ของ kit หัวข้อ "วัด slippage จากบัญชี demo ของตัวเอง")
| เครื่องมือ | ทำอะไร | ใช้ตอนไหน | ใช้ใน |
|---|---|---|---|
fw |
pull = ดึงประวัติ trade จาก MT5 ของบัญชีใน research\8-forward\accounts.yaml ลง research\8-forward\_raw\<เลขบัญชี>.json · report = ตาราง R ต่อ EA ต่อสัปดาห์ + warning flag |
หลังบัญชี demo trade ไปแล้ว | Standard (pull) · Advanced (report) |
slip_gate |
ด่าน R3: กำไรต่อ trade ใน backtest เหลือพอจ่าย slippage จริงไหม · --raw อ่านจากที่ fw pull ดึงไว้ · ดูคำตัดสินที่ p90 |
หลังมีอย่างน้อย 30 trade ที่ปิดแล้ว | Standard |
fwbt |
เทียบ backtest กับ forward ช่วงเดียวกัน trade-by-trade ว่าเหมือนกันกี่ % · --make-config สร้าง config backtest ช่วงที่บัญชีเพิ่ง trade |
ขั้น 9 evaluate | Advanced |
drift |
E[R] ของจริงยังอยู่ในช่วง CI ของ backtest ไหม | ขั้น 9 evaluate | Advanced |
bt\ea-bt.exe fw pull --days 60
bt\ea-bt.exe fw pull --days 14 --open # เปิด MT5 ตาม accounts.yaml ให้เอง แล้วปิดหลังดึง
bt\ea-bt.exe slip_gate --live --raw
bt\ea-bt.exe slip_gate research\4-backtest\<ชื่อ>_IS2026\<EA>\<version>\<broker>\<preset>.htm --raw --entry market
fw pullไม่ใส่--open= ต่อเข้า MT5 ที่เปิดอยู่เท่านั้น ·--daysต้องครอบตั้งแต่วันแรกที่ EA ขึ้น chartslip_gate --entry= วิธีที่ EA เข้า trade (marketหรือstop) · ต่ำกว่า 30 trade = "ตอบไม่ได้" ไม่ใช่ผ่าน · ★ ผลจากบัญชี demo เป็นตัวเลขเบื้องต้น ห้ามเขียนว่า R3 ผ่าน — demo กับบัญชีจริงคนละ serverfwbtและdriftใช้ในresearch\9-evaluate\README.mdของ kit ·fwbt --allอ่านรายชื่อบัญชีจากresearch\8-forward\accounts.yaml
7 · เครื่องมือเฉพาะทาง
เครื่องมือกลุ่มนี้อยู่ใน ea-bt.exe แต่ไม่ได้ใช้ใน Standard · บางตัวผูกกับข้อมูลหรือ EA ในเครื่องผู้สอน — dashboard ของ kit ซ่อน cap_scan · costs · cost_html · risk_sizing · make_cap_configs · add_broker ไว้ (comment ใน code bt/dashboard.py: "กดได้แต่ไม่มีผล" · "ผู้เรียนใช้ไม่ได้")
| เครื่องมือ | ทำอะไร (จากคำอธิบายใน code) | ใช้ใน |
|---|---|---|
cap_scan |
อ่านผลชุด "run ทุกทุน" แล้วบอกว่าทุนไหนของ broker ไหนผลใช้ไม่ได้ (lot ชนเพดาน) | ต้องใช้ข้อมูลที่ kit ไม่มี |
make_cap_configs |
สร้าง config สำหรับ run ทุกทุน × ทุก broker | ต้องใช้ข้อมูลที่ kit ไม่มี |
costs |
อ่านผลวัดต้นทุนแล้วคิด gate G1 ใหม่โดยรวม commission | ต้องใช้ข้อมูลที่ kit ไม่มี |
cost_html |
ตาราง cost ทุก broker × ทุกสินค้า เป็น HTML | ต้องใช้ข้อมูลที่ kit ไม่มี |
risk_sizing |
หา risk% จากลำดับ trade ของ EA ผู้สอน · ใน kit พิมพ์ตารางว่าง (0 trade) |
ต้องใช้ข้อมูลที่ kit ไม่มี |
make_v_sets |
สร้าง .set ที่ปรับระยะตามความผันผวนของสินค้า สำหรับ EA ของผู้สอน |
ต้องใช้ข้อมูลที่ kit ไม่มี |
regime_band |
บอกว่าตลาดทองอยู่ mode ไหน (V = median ระยะวิ่งรายวัน 20 วัน) · ใน kit ใช้ --live (ต้องเปิด MT5 ไว้) · criteria ตั้งต้นเป็นของ EA ผู้สอน · --set <file.set> ใช้ค่าจาก preset |
Advanced |
passport |
รวมตาราง spec สินค้า × broker + gate G1 จาก file ที่ script วัด spec เขียนไว้ใน Common\Files ของ MT5 แต่ละตัว |
Advanced |
make_multi_configs |
สร้างชุด config คัดกรอง EA ข้ามหลายสินค้า | Advanced |
collect_m1 |
ย้าย file ราคา M1 ที่ EA เก็บข้อมูลเขียนไว้ใน Common\Files ไปที่ research/0-intake/sources/goldprice |
Advanced |
เครื่องมือที่ --help ใช้ไม่ได้
ตรวจกับ ea-bt.exe ใน kit วันที่ 2026-11-03 — สี่ตัวนี้ไม่แสดงวิธีใช้เมื่อพิมพ์ --help · ใช้ตัวอย่างในหน้านี้แทน
| เครื่องมือ | สิ่งที่เกิด | วิธีเรียกที่ถูก |
|---|---|---|
prop_check |
error IndexError |
prop_check <folder version> [ทุน] |
slip_gate |
อ่าน --help เป็นชื่อ file รายงานแล้ว error |
ดูหัวข้อ 6 |
regime_band |
ไปหา file ราคา CSV ของผู้สอนแล้ว error | regime_band --live |
risk_sizing |
run เลยโดยไม่แสดงวิธีใช้ (ไม่มี argument) | — |
ดูต่อ
- ภาพรวมระบบ backtest — เริ่มที่นี่ถ้ายังไม่รู้จักระบบ
- ทดสอบ EA ของตัวเอง — ใช้คำสั่งเหล่านี้ตามลำดับทีละขั้น
- คู่มือ dashboard — ปุ่มที่เรียกคำสั่งเดียวกัน
- คู่มือ config — key ที่
runและwalkอ่าน - ติดตั้ง kit และเพิ่มบัญชี demo · ปัญหาที่พบบ่อย
- S4-LAB · backtest งานแรกตั้งแต่ต้นจนจบ · S5 · อ่านรายงาน