บันทึกการเทรด — สมุดงาน สถิติ และทบทวนผล
คู่มือครบสำหรับสร้างสมุดงานบันทึกในราว 20 นาที (เวลาโดยประมาณสำหรับผู้คุ้นพื้นฐานสมุดงาน การนำเข้าครั้งแรกและตรวจข้อมูลอาจนานกว่า): 26 คอลัมน์ชื่อทางเทคนิคตรงกับ บทความ 15.9สูตรแต่ละแถวและแดชบอร์ดเก้าตัวชี้วัดในสองรูปแบบ (Excel ภาษาโปแลนด์และอังกฤษ; การตั้งค่าสมุดงานคลาวด์อธิบายด้านล่าง) พร้อม CSV เริ่มต้นที่สร้างในเบราว์เซอร์ คุณดาวน์โหลด XLSX สำเร็จรูปหรือสร้างเองตามคำแนะนำเต็มด้านล่างได้ การเรียนรู้สูตรช่วยให้เข้าใจการคำนวณและแก้ได้เอง ด้วยชื่อคอลัมน์ร่วมกัน ไฟล์ส่งออก CSV จากบันทึกนี้ที่เลือกตัวคั่น การเข้ารหัส และรูปแบบวันที่ถูกต้อง ใช้กับสคริปต์สำเร็จรูป S1–S3 จาก ส่วนเสริม I และสคริปต์จาก พรอมป์ต์ P5; การตรวจ P6–P7 ต้องเพิ่มสองคอลัมน์ (ด้านล่าง)
- 26 คอลัมน์ในห้ากลุ่ม: การระบุ บริบท แผนเทียบการดำเนินการ ต้นทุนและผล กระบวนการ มีสูตรเฉพาะค่าที่ได้จากช่องอื่น (slippage, r_net, execution_drag)
- แดชบอร์ดเก้าสูตร: จำนวนเทรด อัตราชนะ profit factor ค่าคาดหวัง R รวม drawdown สูงสุดเป็น R ค่าเฉลี่ย MAE/MFE อัตราดำเนินการไม่ผิดพลาด ตัวชี้วัดผลงานคำนวณจาก r_net ส่วนตัวชี้วัดกระบวนการมาจากคอลัมน์แยก ขอบเขต MAE/MFE อธิบายด้านล่าง
- สูตรสองรูปแบบ: Excel PL (ŚREDNIA, LICZ.JEŻELI, อัฒภาค) และ Excel EN (AVERAGE, COUNTIF, จุลภาค) มีสวิตช์และปุ่มคัดลอกแต่ละกลุ่ม
- ตัวชี้วัดอธิบายตัวอย่างตั้งแต่รายการแรก: ราว 50 เทรดเป็นตัวอย่างจุดทบทวนในหลักสูตร ไม่ใช่ขั้นต่ำสากลหรือหลักฐานความได้เปรียบ ข้อสรุปขึ้นกับการกระจาย ความสัมพันธ์ระหว่างผล และแผนทดสอบ การละเมิดขีดจำกัดหรือข้อมูลผิดต้องตอบสนองทันที การเปลี่ยนกฎกลยุทธ์ต้องมีสมมติฐานและการตรวจสอบแยก
บันทึก XLSX สำเร็จรูป
ดาวน์โหลดบันทึกการเทรด — XLSX ภาษาไทย
ไฟล์มีสามแผ่นงาน: Statistics (สถิติ), Journal (บันทึก) และ Instructions (คำแนะนำ) มีแถวเตรียมไว้ 999 แถว พร้อมสูตรกำไรขาดทุนสุทธิ R, slippage และ drawdown คอลัมน์ A–Z คงรูปแบบที่อธิบายด้านล่าง นอกจากนี้มี AA–AC (ประเมินตนเองจาก 15.9), AD (หมายเหตุ), AE–AF (เส้นทุนและ drawdown) และ AG (ดำเนินการไม่ผิดพลาด) การส่งออก CSV สำหรับสคริปต์ครอบคลุม A:Z เซลล์สีเหลืองรับข้อมูล อย่าเขียนทับคอลัมน์คำนวณด้วยไฟล์โบรกเกอร์ หากสวอปหรือค่าคอมมิชชันศูนย์จริง ให้กรอก 0 ข้อมูลที่ขาดยังถือว่าขาด
ตัวอย่างในคู่มือนี้ไม่ป้อนเข้าสถิติของไฟล์ Drawdown รวมจุดเริ่ม 0 R: ขาดทุนครั้งแรก −1 R ทำให้ drawdown 1 R เรียงเทรดตามเวลาปิด หากเวลาเท่ากันให้ใช้ลำดับสม่ำเสมอ อย่าเรียงเฉพาะ C ข้อมูลทุกช่องของระเบียนต้องอยู่ด้วยกัน หลังย้ายแถวให้ตรวจว่า AE/AF ยังสะสมจากแถว 2 คอลัมน์ช่วยเพิ่มเติม coded_clean ไม่ถือว่ารหัสข้อผิดพลาดว่างคือดำเนินการไม่ผิดพลาด
สมุดงานแสดงค่าเฉลี่ย MAE และ MFE ของทุกค่าที่กรอก (รวมศูนย์) ส่วนรูปแบบเพิ่มเติมสำหรับวิเคราะห์เทรดชนะและแพ้อยู่ด้านล่าง ไฟล์คำนวณ profit factor ใน R ไม่ใช่สกุลเงินบัญชี เติมกำไรขาดทุนตามแผนใน T เฉพาะการออกชนิดเดียวกัน: SL ตามแผนเทียบ SL จริง และ TP เทียบ TP หากออกโดยไม่มีคู่เทียบให้เว้นว่าง
ฉบับ PL ใช้ PLN ในช่อง *_pln ของไฟล์ ต้นฉบับภาษาอังกฤษ มีลำดับคอลัมน์เดียวกันและชื่อช่องจำนวนเงินแบบกลาง โดยไม่มีคำต่อท้าย _pln ; ระบุสกุลเงินบัญชีในคำแนะนำ เมื่อโอน CSV ข้ามภาษา ให้จับคู่หัวคอลัมน์และตรวจสกุลเงิน เปลี่ยนป้ายสกุลเงินอย่างเดียวไม่แปลงค่า
สมุดงานสำเร็จรูปหรือสร้างเอง
- สองเส้นทางสู่บันทึกเดียวกัน: XLSX สำเร็จรูปมีสูตรที่มองเห็นได้ และคู่มือเต็มให้สร้างสมุดงานขึ้นใหม่เอง ไฟล์ไม่มีแมโครหรือการเชื่อมต่อโบรกเกอร์ CSV เริ่มต้นยังสร้างในเบราว์เซอร์ของคุณ ดูเวอร์ชันไฟล์บนแผ่นงาน Instructions (ปัจจุบัน 1.2 ลงวันที่ 21 กันยายน 2026; บทความมีเลขเวอร์ชันแยก)
- คุณเข้าใจสมุดงานที่สร้างเองทุกส่วน: เมื่อสูตรผิดพลาดหลายปีให้หลัง (คู่ใหม่ รูปแบบส่งออกต่างไป) จะหาสาเหตุง่ายกว่าเพราะรู้ว่าคำนวณอะไร แม่แบบ “มหัศจรรย์” อาจพังเงียบ ๆ และบันทึกที่ให้ข้อมูลผิดแย่กว่าไม่มีบันทึก
- ชื่อคอลัมน์ใช้ร่วมกันทั้งหลักสูตร: หัวคอลัมน์มาจากข้อกำหนด CSV ย่อใน 15.9 (สมุดงานครอบคลุมราว 20 จาก 29 ช่องเชิงตรรกะที่มีหมายเลขใน 15.9 ช่องที่ขาดอยู่ใต้แหล่งอ้างอิง) และสคริปต์สำเร็จรูป S1–S3 จาก ส่วนเสริม I กับสคริปต์จากพรอมป์ต์ P5 ต้องใช้ชื่อเดียวกัน การตรวจ P6–P7 ในเวิร์กช็อป AI ยังต้องมีสถานะทำตามแผนและหมายเหตุสภาพ เพิ่มดังนี้: status = “plan” สำหรับ error_code 0, “breach” สำหรับรหัส 1–9 ส่วนรหัส 10 (โครงสร้างพื้นฐาน) ให้ตัดแถวนั้นออกจากไฟล์ P6 หรือติดสถานะ “infrastructure” และอธิบายในพรอมป์ต์ สร้างหมายเหตุสภาพจากช่องประเมินตนเอง (AA–AC) ใช้รูปแบบเดียว ลดการแปลงข้อมูลระหว่างเครื่องมือ
- คลาวด์สะดวก แต่ข้อมูลเหล่านี้คือข้อมูลบัญชี: ขนาดสถานะ ผลลัพธ์ และข้อผิดพลาดกระบวนการ เลือกคลาวด์หรือการเก็บในอุปกรณ์อย่างตั้งใจ ใช้เกณฑ์เดียวกับการวางข้อมูลในโมเดล AI (หัวข้อสุขอนามัยข้อมูลใน ส่วนเสริม H).
โครงสร้าง: 26 คอลัมน์ใน 5 กลุ่ม
ตัวอักษรคอลัมน์ (A–Z) ตรงกับผังที่สูตรด้านล่างใช้ หากเปลี่ยนลำดับให้แก้การอ้างอิง คงหัวคอลัมน์ทางเทคนิคเป็นภาษาอังกฤษเพื่อให้ CSV ใช้กับสคริปต์ P5 ได้โดยไม่จับคู่ใหม่ เพิ่มสามช่องประเมินตนเอง (mental_state, sleep_hours, decision_quality จาก 15.9) เป็น AA–AC แบบไม่บังคับได้ (มีแล้วในไฟล์) สูตรไม่จำเป็นต้องใช้
| คอลัมน์ | หัวคอลัมน์ | กลุ่ม 1: การระบุ | ตัวอย่าง |
|---|---|---|---|
| A | trade_id | เลขลำดับหรือ ID จากแพลตฟอร์ม | 2026-041 |
| B | open_time_utc | วันเวลาเปิดแบบ UTC ไฟล์ MT4/MT5 ใช้เวลาเซิร์ฟเวอร์โบรกเกอร์ (เช่น GMT+2/+3 ตรวจข้อกำหนดโบรกเกอร์) ให้แปลงจากเขตเวลาเซิร์ฟเวอร์ (15.9); รูปแบบ YYYY-MM-DD HH:MM | 2026-07-08 07:42 |
| C | close_time_utc | วันเวลาปิดแบบ UTC (เช่น B) เป็นค่าวันเวลาจริงในสมุดงาน ไม่ใช่ข้อความ ว่าง = เทรดเปิด ไม่รวมในตัวชี้วัด; วันที่ไม่ถูกต้องหรือปิดก่อนเวลาเปิดที่กรอกทำให้ไม่มี R | 2026-07-08 13:15 |
| D | pair | ตราสาร 6 อักขระ ไม่มีตัวคั่นหรือคำต่อท้ายโบรกเกอร์ (EURUSD ไม่ใช่ EUR/USD หรือ EURUSD.m) สูตร pip ใช้กับคู่ FX เท่านั้น (หนึ่ง pip คือ 0.0001 หรือ 0.01 สำหรับคู่ JPY โดยตรวจจากส่วนท้าย) ตราสารอื่นให้กรอกขนาด pip จากข้อกำหนดและเปลี่ยนตัวคูณ | EURUSD |
| E | direction | long / short (ตัวพิมพ์เล็ก สูตร slippage เปรียบเทียบข้อความ) | long |
| คอลัมน์ | หัวคอลัมน์ | กลุ่ม 2: บริบท | ตัวอย่าง |
|---|---|---|---|
| F | setup | ชื่อรูปแบบจากคู่มือ (ส่วนเสริม E) | asia-london-breakout |
| G | setup_class | A+ / A / B / C — ระดับในคู่มือขณะเข้า รายการในไฟล์อ้างอิง 15.9 อย่าจัดระดับจากผลที่เกิดภายหลัง | A+ |
| H | session | ช่วงตลาดที่เข้า (เอเชีย / ลอนดอน / NY / ช่วงซ้อน) | ลอนดอน |
| คอลัมน์ | หัวคอลัมน์ | กลุ่ม 3: แผนเทียบการดำเนินการ | ตัวอย่าง |
|---|---|---|---|
| I | planned_entry | จุดเข้าตามแผน (บันทึกก่อนส่งคำสั่ง) | 1.0850 |
| J | actual_entry | ราคาดำเนินการจริงจากแพลตฟอร์ม | 1.0852 |
| K | planned_sl | stop-loss ตามแผน | 1.0820 |
| L | planned_tp | take-profit ตามแผน | 1.0910 |
| M | actual_exit | ราคาปิดจริง | 1.0907 |
| N | spread_pips | สเปรดตอนเข้า | 0.7 |
| O | slippage_entry_pips | สูตร — slippage ตอนเข้าเป็น pip บวก = ได้ราคาแย่กว่า | 2.0 |
| คอลัมน์ | หัวคอลัมน์ | กลุ่ม 4: ต้นทุนและผล | ตัวอย่าง |
|---|---|---|---|
| P | swap | จำนวนสวอปพร้อมเครื่องหมายในสกุลเงินบัญชี (ต้นทุนเป็นลบ) | −3.20 |
| Q | commission | ค่าคอมมิชชันเป็นต้นทุนไม่ติดลบ; 0 หากไม่มี แปลงต้นทุนลบจากไฟล์โบรกเกอร์เป็นบวก เพื่อไม่ให้สูตรนำไปบวกกำไร | 7.00 |
| R | broker_gross_pnl | กำไรขาดทุนก่อนต้นทุนจากแพลตฟอร์ม: หลังสเปรดและการดำเนินราคาจริง ก่อนสวอปและค่าคอมมิชชัน | 201.67 |
| S | broker_net_pnl | สูตร (หรือกรอกเองหากโบรกเกอร์รายงานกำไรขาดทุนสุทธิ) | 191.47 |
| T | planned_gross_pnl | กำไรขาดทุนตามแผนสำหรับ การออกชนิดเดียวกัน (จำนวนเงิน): TP ตามแผนเมื่อออกด้วย TP, SL ตามแผนเมื่อออกด้วย stop; เว้นว่างหากออกด้วยมือหรือตามเวลา ไฟล์จะเว้น W ว่าง ขณะที่ 15.9 คำนวณ drag จากผลรวม slippage ตอนเข้า ค่าคอมมิชชัน และสวอปใน R: (O × มูลค่า pip + Q − P) / U โดยสวอป P คงเครื่องหมาย (ลบ = ต้นทุน) คำนวณด้วยมือนอกสูตร | 220.00 |
| U | planned_risk | ความเสี่ยงตามแผนในสกุลเงินบัญชี (ตัวอย่างใช้ USD; ระยะจากจุดเข้าตามแผน → SL ตามแผนเป็น pip × มูลค่า pip ของขนาดตามแผน) นี่คือตัวหาร R คงที่ของเทรด ไม่ปรับภายหลังให้ตรงขาดทุน ไม่ใช่ขาดทุนสูงสุดที่รับประกัน เพราะช่องว่างราคา slippage และต้นทุนอาจเพิ่มขาดทุน | 110.00 |
| V | r_net | สูตร — กำไรขาดทุนสุทธิเป็น R คอลัมน์ที่ป้อนตัวชี้วัดผลงาน | 1.74 |
| W | execution_drag_R | สูตร — ส่วนต่างระหว่างกำไรขาดทุนก่อนต้นทุนตามแผนกับกำไรขาดทุนสุทธิจริงเป็น R อาจติดลบเมื่อผลดีกว่าแผน | 0.26 |
| คอลัมน์ | หัวคอลัมน์ | กลุ่ม 5: กระบวนการ | ตัวอย่าง |
|---|---|---|---|
| X | mae_r | การเคลื่อนไหวราคาสวนทางสูงสุดตลอดอายุสถานะ เป็น R (นิยาม: 15.9 ส่วน 7) | 0.35 |
| Y | mfe_r | การเคลื่อนไหวราคาทางที่ได้เปรียบสูงสุดตลอดอายุสถานะ เป็น R | 2.10 |
| Z | error_code | 0 = ดำเนินการไม่ผิดพลาด; 1–9 = รหัสผิดพลาดการตัดสินใจ; 10 = ผิดพลาดโครงสร้างพื้นฐาน (รายการ: 15.9) | 0 |
สูตรแต่ละแถว — คอลัมน์คำนวณ
รูปแบบสูตร:
การตั้งค่า: PL ใช้ชื่อฟังก์ชันโปแลนด์และอัฒภาค ส่วน EN ใช้ชื่ออังกฤษและจุลภาค ตัวคั่นขึ้นกับการตั้งค่าภูมิภาค ใน Google Sheets ตั้งภาษาฟังก์ชันแยกได้ เมื่อนำเข้า ตั้ง B/C เป็นวันเวลาแล้วตรวจ =CZY.LICZBA(C2) (EN: =ISNUMBER(C2)): ผลที่ถูกต้องคือ PRAWDA/TRUE เปลี่ยนรูปลักษณ์เซลล์อย่างเดียวไม่เพียงพอ
ใส่สูตรในแถว 2 แล้วเติมลง (หรือคัดลอกลงช่วง) ช่วงอ้างอิงถึงแถว 1000 หากบันทึกยาวกว่านั้น ให้ขยายสูตรแถว การตรวจข้อมูล และทุกช่วงแดชบอร์ด รวมการตรวจความครบถ้วน
=JEŻELI(ORAZ(CZY.LICZBA(I2);CZY.LICZBA(J2);DŁ(D2)=6;LUB(E2="long";E2="short"));JEŻELI(E2="long";J2-I2;I2-J2)*JEŻELI(PRAWY(D2;3)="JPY";100;10000);"")
=IF(AND(ISNUMBER(I2),ISNUMBER(J2),LEN(D2)=6,OR(E2="long",E2="short")),IF(E2="long",J2-I2,I2-J2)*IF(RIGHT(D2,3)="JPY",100,10000),"")
=JEŻELI(ORAZ(ILE.LICZB(P2:R2)=3;Q2>=0);R2+P2-Q2;"")
=IF(AND(COUNT(P2:R2)=3,Q2>=0),R2+P2-Q2,"")
=JEŻELI(ORAZ(CZY.LICZBA(C2);CZY.LICZBA(S2);CZY.LICZBA(U2));JEŻELI(ORAZ(C2>=1;C2<2958466;U2>0;LUB(B2="";ORAZ(CZY.LICZBA(B2);B2>=1;B2<=C2)));S2/U2;"");"")
=IF(AND(ISNUMBER(C2),ISNUMBER(S2),ISNUMBER(U2)),IF(AND(C2>=1,C2<2958466,U2>0,OR(B2="",AND(ISNUMBER(B2),B2>=1,B2<=C2))),S2/U2,""),"")
=JEŻELI(ORAZ(CZY.LICZBA(V2);CZY.LICZBA(T2));(T2-S2)/U2;"")
=IF(AND(ISNUMBER(V2),ISNUMBER(T2)),(T2-S2)/U2,"")
แดชบอร์ด: 9 ตัวชี้วัดและการตีความ
วางตัวชี้วัดในแผ่นงานแยก (เช่นในไฟล์ เติมชื่อแผ่นงานหน้าทุกช่วง เช่น 'Journal'!V2:V1000) หรือเหนือตาราง หากทำแบบหลัง หัวคอลัมน์จะย้ายจากแถว 1 และต้องปรับการอ้างอิง การคัดลอกหนึ่งกลุ่มให้หลายสูตรแยกบรรทัด วางแต่ละสูตรในเซลล์ที่เหมาะสม AE2, AF2 และ AG2 ต้องอยู่ใน Journal ไม่ใช่ Statistics
บันทึกว่างให้ N = 0, R รวม = 0 และ drawdown สูงสุด = 0; WR, PF ค่าคาดหวัง และค่าเฉลี่ยที่ไม่มีค่าการวัดยังว่าง PF ว่างเมื่อไม่มีขาดทุนด้วย เพราะอัตราส่วนไม่มีค่าจำกัด ผลใน R ต้องมีกำไรขาดทุนสุทธิใน S ค่า U บวก และวันเวลาเชิงตัวเลขใน C อยู่ในช่วงวันที่ Excel หากกรอก B ต้องเป็นวันที่ที่ระบบรู้จักและไม่หลัง C Excel เก็บวันที่เป็นตัวเลข การจัดรูปแบบเซลล์ไม่แปลงข้อความเป็นวันที่และไม่ตรวจว่าเวลาที่กรอกเป็น UTC จริง
ไฟล์ 1.2 ใช้การตรวจแบบ Stop สำหรับวันที่ ทิศทาง ระดับ ต้นทุนค่าคอมมิชชัน ความเสี่ยง MAE/MFE และรหัส การวางข้อมูลอาจข้ามการตรวจได้ V จึงปฏิเสธวันที่ข้อความและความเสี่ยงไม่บวก S ปฏิเสธต้นทุนค่าคอมมิชชันลบ และ AG รับเฉพาะรหัสจำนวนเต็ม 0–10 การตรวจใน Statistics แถว 16–19 แสดงรายการปิดที่ไม่มี R เทรดมี R แต่ไม่มีรหัสถูกต้อง และค่าการวัด MAE/MFE ที่ผิด สูตรวันที่ที่คืนข้อความว่างถือว่าขาดเวลาปิด ไม่ใช่เทรดปิดที่ผิด ทุกจำนวนที่มากกว่าศูนย์ต้องอธิบายก่อนประเมินตัวอย่างทั้งหมด
ตัวชี้วัดผลงานใช้ V ส่วนค่าเฉลี่ย MAE/MFE จากทุกค่าที่กรอกใช้ตัวอย่างแยก รวมจำนวนไม่ติดลบรวมศูนย์แม้ V ยังว่าง จำนวนลบ ข้อความ (รวม “0.5” ที่เก็บเป็นข้อความ) ช่องว่าง หรือค่าบูลีนในคอลัมน์การวัดทำให้ค่าเฉลี่ยนั้นไม่คำนวณจนแก้ไข แทนการบิดผลอย่างเงียบ ๆ ดูจำนวนเซลล์ผิดใน Statistics B18 สำหรับ MAE และ B19 สำหรับ MFE ข้อผิดพลาดคอลัมน์หนึ่งไม่บล็อกค่าเฉลี่ยที่ถูกต้องอีกคอลัมน์ อย่าเทียบขนาดตัวอย่างเหล่านี้กับจำนวนเทรดปิดโดยอัตโนมัติ กรอกค่าไม่ติดลบที่วัดในช่วงอายุสถานะซึ่งนิยามเหมือนกัน ค่าที่ขาดให้เว้นว่าง รูปแบบผู้ชนะ/ผู้แพ้ด้านล่างเลือกชุดย่อยจาก V
จำนวนเทรด: =ILE.LICZB(V2:V1000) อัตราชนะ: =JEŻELI(ILE.LICZB(V2:V1000)=0;"";LICZ.JEŻELI(V2:V1000;">0")/ILE.LICZB(V2:V1000)) Profit factor: =JEŻELI(LICZ.JEŻELI(V2:V1000;"<0")=0;"";SUMA.JEŻELI(V2:V1000;">0")/-SUMA.JEŻELI(V2:V1000;"<0")) ค่าคาดหวัง (R): =JEŻELI(ILE.LICZB(V2:V1000)=0;"";ŚREDNIA(V2:V1000)) R รวม: =SUMA(V2:V1000)
จำนวนเทรด: =COUNT(V2:V1000) อัตราชนะ: =IF(COUNT(V2:V1000)=0,"",COUNTIF(V2:V1000,">0")/COUNT(V2:V1000)) Profit factor: =IF(COUNTIF(V2:V1000,"<0")=0,"",SUMIF(V2:V1000,">0")/-SUMIF(V2:V1000,"<0")) ค่าคาดหวัง (R): =IF(COUNT(V2:V1000)=0,"",AVERAGE(V2:V1000)) R รวม: =SUM(V2:V1000)
AE2 (เส้นทุน): =JEŻELI(CZY.LICZBA(V2);SUMA($V$2:V2);"") AF2 (drawdown): =JEŻELI(CZY.LICZBA(AE2);MAX(0;$AE$2:AE2)-AE2;"") Drawdown สูงสุด (R): =MAX(AF2:AF1000)
AE2 (เส้นทุน): =IF(ISNUMBER(V2),SUM($V$2:V2),"") AF2 (drawdown): =IF(ISNUMBER(AE2),MAX(0,$AE$2:AE2)-AE2,"") Drawdown สูงสุด (R): =MAX(AF2:AF1000)
MAE เฉลี่ย (ทั้งหมด): =JEŻELI(WIERSZE(X2:X1000)-LICZ.PUSTE(X2:X1000)-ILE.LICZB(X2:X1000)+LICZ.JEŻELI(X2:X1000;"<0")>0;"";JEŻELI(ILE.LICZB(X2:X1000)=0;"";ŚREDNIA(X2:X1000))) (เช่นในไฟล์, B11) MFE เฉลี่ย (ทั้งหมด): =JEŻELI(WIERSZE(Y2:Y1000)-LICZ.PUSTE(Y2:Y1000)-ILE.LICZB(Y2:Y1000)+LICZ.JEŻELI(Y2:Y1000;"<0")>0;"";JEŻELI(ILE.LICZB(Y2:Y1000)=0;"";ŚREDNIA(Y2:Y1000))) (เช่นในไฟล์, B12) MAE เฉลี่ยของเทรดชนะ: =JEŻELI(WIERSZE(X2:X1000)-LICZ.PUSTE(X2:X1000)-ILE.LICZB(X2:X1000)+LICZ.JEŻELI(X2:X1000;"<0")>0;"";JEŻELI.BŁĄD(ŚREDNIA.JEŻELI(V2:V1000;">0";X2:X1000);"")) MFE เฉลี่ยของเทรดแพ้: =JEŻELI(WIERSZE(Y2:Y1000)-LICZ.PUSTE(Y2:Y1000)-ILE.LICZB(Y2:Y1000)+LICZ.JEŻELI(Y2:Y1000;"<0")>0;"";JEŻELI.BŁĄD(ŚREDNIA.JEŻELI(V2:V1000;"<0";Y2:Y1000);"")) AG2 (coded_clean): =JEŻELI(ORAZ(CZY.LICZBA(V2);CZY.LICZBA(Z2));JEŻELI(ORAZ(Z2>=0;Z2<=10;Z2=LICZBA.CAŁK(Z2));JEŻELI(Z2=0;1;0);"");"") ดำเนินการไม่ผิดพลาด: =JEŻELI(ILE.LICZB(AG2:AG1000)=0;"";ŚREDNIA(AG2:AG1000)) Execution drag เฉลี่ย: =JEŻELI(ILE.LICZB(W2:W1000)=0;"";ŚREDNIA(W2:W1000)) (ไม่บังคับ ไม่มีในไฟล์)
MAE เฉลี่ย (ทั้งหมด): =IF(ROWS(X2:X1000)-COUNTBLANK(X2:X1000)-COUNT(X2:X1000)+COUNTIF(X2:X1000,"<0")>0,"",IF(COUNT(X2:X1000)=0,"",AVERAGE(X2:X1000))) (เช่นในไฟล์, B11) MFE เฉลี่ย (ทั้งหมด): =IF(ROWS(Y2:Y1000)-COUNTBLANK(Y2:Y1000)-COUNT(Y2:Y1000)+COUNTIF(Y2:Y1000,"<0")>0,"",IF(COUNT(Y2:Y1000)=0,"",AVERAGE(Y2:Y1000))) (เช่นในไฟล์, B12) MAE เฉลี่ยของเทรดชนะ: =IF(ROWS(X2:X1000)-COUNTBLANK(X2:X1000)-COUNT(X2:X1000)+COUNTIF(X2:X1000,"<0")>0,"",IFERROR(AVERAGEIF(V2:V1000,">0",X2:X1000),"")) MFE เฉลี่ยของเทรดแพ้: =IF(ROWS(Y2:Y1000)-COUNTBLANK(Y2:Y1000)-COUNT(Y2:Y1000)+COUNTIF(Y2:Y1000,"<0")>0,"",IFERROR(AVERAGEIF(V2:V1000,"<0",Y2:Y1000),"")) AG2 (coded_clean): =IF(AND(ISNUMBER(V2),ISNUMBER(Z2)),IF(AND(Z2>=0,Z2<=10,Z2=INT(Z2)),IF(Z2=0,1,0),""),"") ดำเนินการไม่ผิดพลาด: =IF(COUNT(AG2:AG1000)=0,"",AVERAGE(AG2:AG1000)) Execution drag เฉลี่ย: =IF(COUNT(W2:W1000)=0,"",AVERAGE(W2:W1000)) (ไม่บังคับ ไม่มีในไฟล์)
ปิดแต่ไม่มี R: =WIERSZE(C2:C1000)-LICZ.PUSTE(C2:C1000)-ILE.LICZB(V2:V1000) มี R แต่ไม่มีรหัส: =ILE.LICZB(V2:V1000)-ILE.LICZB(AG2:AG1000) MAE ไม่ถูกต้อง: =WIERSZE(X2:X1000)-LICZ.PUSTE(X2:X1000)-ILE.LICZB(X2:X1000)+LICZ.JEŻELI(X2:X1000;"<0") MFE ไม่ถูกต้อง: =WIERSZE(Y2:Y1000)-LICZ.PUSTE(Y2:Y1000)-ILE.LICZB(Y2:Y1000)+LICZ.JEŻELI(Y2:Y1000;"<0")
ปิดแต่ไม่มี R: =ROWS(C2:C1000)-COUNTBLANK(C2:C1000)-COUNT(V2:V1000) มี R แต่ไม่มีรหัส: =COUNT(V2:V1000)-COUNT(AG2:AG1000) MAE ไม่ถูกต้อง: =ROWS(X2:X1000)-COUNTBLANK(X2:X1000)-COUNT(X2:X1000)+COUNTIF(X2:X1000,"<0") MFE ไม่ถูกต้อง: =ROWS(Y2:Y1000)-COUNTBLANK(Y2:Y1000)-COUNT(Y2:Y1000)+COUNTIF(Y2:Y1000,"<0")
| ตัวชี้วัด | วิธีอ่านผลและข้อจำกัด |
|---|---|
| อัตราชนะ | ลำพังค่านี้ไม่บอกความได้เปรียบ ดูกราฟด้านล่าง ว่างเมื่อไม่มีเทรดปิด; 0% หมายถึงตัวอย่างไม่มีเทรดชนะ ใช้เทียบผลกับสมมติฐานคู่มือ ไม่ใช่ตัดสินว่า “เราเก่งหรือยัง?” |
| Profit factor | ต่ำกว่า 1.0 = ผลใน R ของตัวอย่างที่ทบทวนติดลบ ต้องดูควบคู่จำนวนเทรดและ drawdown หากไม่มีขาดทุนในตัวอย่างคือหารด้วยศูนย์ ไม่ใช่ “ความได้เปรียบอนันต์” |
| ค่าคาดหวัง (R) | ตัวเลขสำคัญที่สุดของบันทึก: ผลสุทธิเฉลี่ยต่อเทรด ค่าบวกหลังต้นทุนอธิบายตัวอย่างนี้ แต่ไม่พิสูจน์ความได้เปรียบด้วยตัวเอง ประเมินการกระจาย ความสัมพันธ์ระหว่างผล ความคงที่ของภาวะ และผลตรวจสอบตาม ระเบียบการทดสอบ (N)ตัวเลข 50 เป็นตัวอย่างจุดทบทวน และการตัดสินใจขยายขนาดต้องปฏิบัติตามแผนความเสี่ยงด้วย |
| Drawdown สูงสุด (R) | วัดทั้งประวัติ: AF คำนวณ drawdown จากจุดสูงสุดของเส้น จึงไม่ใช่ขาดทุนของสัปดาห์ ขีดจำกัดรายสัปดาห์ในแผน (ส่วนเสริม E) เป็นฐาน R ของแผนหรือเปอร์เซ็นต์เงินทุน อย่าเทียบกับ r_net รวมโดยตรงหาก U แต่ละเทรดต่างกัน หากฐาน R เป็นสกุลเงินบัญชีคงที่ ผลช่วงนั้นในหน่วยแผนคือผลรวมกำไรขาดทุนสุทธิใน S ของช่วงหารด้วยจำนวนเงินฐาน R สำหรับขีดจำกัดเปอร์เซ็นต์ ใช้ฐานเงินทุนที่แผนระบุ AF อธิบายเส้นทาง R สะสมของเทรด ไม่ใช่ drawdown ของยอดเงินหรือส่วนของเจ้าของ Drawdown ผิดปกติควรนำไปตรวจข้อมูล ภาวะ และสมมติฐานทดสอบ |
| ค่าเฉลี่ย MAE ของเทรดชนะ | ต่ำ (เช่น < 0.4R) = สมมติฐานว่าจุดตัดขาดทุนกว้างเกินจำเป็น ต้องทดสอบกับตัวอย่างใหม่ ไม่บีบทันที (15.9); ใกล้ 1R = เทรดชนะเคยเคลื่อนไหวสวนเกือบเต็มความเสี่ยง ตรวจจุดเข้าและการวาง stop ก่อนสรุปว่าเป็นปัญหาการดำเนินคำสั่ง |
| MFE เฉลี่ยของเทรดแพ้ | สูง = ราคาเคลื่อนไหวให้ประโยชน์แล้วกลับทิศ ตรวจทบทวนกฎออกและการแบ่งทำกำไร |
| Execution drag (เฉลี่ย) | สูตรไม่บังคับด้านบน คำนวณเฉพาะเทรดที่กรอก T ค่าสูงต่อเนื่องบอกช่องว่างระหว่างกำไรขาดทุนก่อนต้นทุนตามแผนกับสุทธิจริงสำหรับการออกที่เทียบกันได้ รวมต้นทุนและความต่างราคาดำเนินการ การออกด้วยมือ/ก่อนกำหนดที่ไม่มีคู่เทียบไม่รวมในค่าเฉลี่ยนี้ อย่ารวมกับค่าประมาณต้นทุนแบบย่อสำหรับการออกเหล่านั้น |
| ดำเนินการไม่ผิดพลาด | เปอร์เซ็นต์เทรดปิดที่ error_code = 0 (AG นับเฉพาะเทรดมี R ถูกต้องและรหัสจำนวนเต็มจาก 0 ถึง 10; ขาดรหัสไม่นับว่าไม่ผิดพลาด) ราว 90% อาจเป็นเกณฑ์ใช้งานของแผนหนึ่ง ไม่ใช่มาตรฐานคุณภาพ ตรวจจำนวนเทรดที่ประเมินและรหัสที่ขาด: 100% จากรหัส 0 เพียงครั้งเดียวกับช่องว่างอีกมากไม่อธิบายทั้งบันทึก การละเมิดสำคัญต้องจัดการไม่ว่าเปอร์เซ็นต์เท่าไร ตัวชี้วัดจากเทรดผิดกฎไม่ใช่การทดสอบกฎอย่างสะอาด |
CSV เริ่มต้นและการนำเข้า
ปุ่มสร้าง CSV ในเบราว์เซอร์ของคุณทั้งหมด ไม่ส่งข้อมูลหรือร้องขอเครือข่ายแยก: หัวคอลัมน์ 26 ชื่อกับสองแถวตัวอย่าง เทรดชนะและแพ้ เพื่อให้สูตรมีข้อมูลสาธิต PL ใช้อัฒภาคกับจุลภาคทศนิยม (เลือกตัวคั่นชัดเจนตอนนำเข้า พฤติกรรมดับเบิลคลิกขึ้นกับระบบ) ส่วน EN ใช้จุลภาคกับจุดทศนิยม หลังนำเข้า แทนคอลัมน์คำนวณ (O, S, V, W) ของแถวตัวอย่างด้วยสูตรด้านบน แล้วลบตัวอย่างก่อนบันทึกเทรดแรก หรือเก็บแยกไฟล์ CSV อาจส่งออกเพียงความละเอียดที่โปรแกรมแสดง ใน XLSX 1.2 คอลัมน์ V และ W ใช้ทศนิยมหกตำแหน่ง CSV เริ่มต้นก็ใช้หกตำแหน่ง คำนวณจากจำนวนเงินแต่ละแถว การปัดนี้ทำให้ความคลาดเคลื่อนของ R แต่ละค่าไม่เกิน 0.0000005 R ส่วน PF อาจไวกว่าเมื่อผลรวมขาดทุนเล็กมาก ผลที่มีค่าสัมบูรณ์ต่ำกว่า 0.0000005 R อาจปัดเป็นศูนย์ เปลี่ยนการจัดชนะ/แพ้และอัตราชนะ กรณีนั้นเพิ่มความละเอียดก่อนส่งออก งานที่ต้องละเอียดขึ้นต้องเพิ่มก่อนส่งออก ไม่ใช่ค่อยเพิ่มในสคริปต์
yyyy-mm-dd hh:mm (หน้าจอโปแลนด์อาจแสดง rrrr-mm-dd gg:mm) และ V/W อย่างน้อยหกตำแหน่งทศนิยม โดยไม่มีตัวคั่นหลักพัน บันทึก CSV UTF-8 ก่อนรวมไฟล์ตรวจว่า trade_id ไม่ซ้ำ S1 ไม่ลบรายการซ้ำ รวมการดำเนินการบางส่วนของสถานะเดียวตามหน่วยเทรดที่เลือก รวมต้นทุนและคง U เดิม อย่านับเทรดเดียวทั้งเป็นหลาย fill และเป็นสรุปเดียว เปิดสำเนาด้วยตัวแก้ข้อความ ตรวจ 26 ช่องต่อระเบียน ตัวคั่น วันที่ UTC และตัวเลข CSV มีค่า ไม่เก็บสูตรหรือแผ่นงานอื่น จึงเก็บ XLSX ต้นฉบับไว้ สำหรับ S1 ตั้ง PL: CSV_SEP=";", DECIMAL=","; EN: CSV_SEP=",", DECIMAL=".". UTF-8 ที่มี BOM อ่านด้วย utf-8-sig.ตรวจตัวอย่างสองแถว: กำไรขาดทุนสุทธิ USD 191.47 กับความเสี่ยง USD 110 ให้ 1.740636 R; สุทธิ −USD 113.10 กับความเสี่ยง USD 105 ให้ −1.077143 R จากค่าหกตำแหน่งนี้ สคริปต์ควรได้ N = 2, WR = 50%, รวม 0.663493 R, ค่าคาดหวัง 0.3317465 R, PF ประมาณ 1.615974852 และ max DD 1.077143 R ส่วน S2 แสดงค่าปัด: WR 0.5; PF 1.62; ค่าคาดหวัง 0.332 R; รวม 0.66 R; max DD 1.08 R สูตร XLSX เต็มคำนวณจากอัตราส่วนไม่ปัด หลักท้ายจึงอาจต่าง S1 หยุดวิเคราะห์เมื่อเทรดปิดไม่ถูกต้อง ส่วน P5 สั่งให้สคริปต์ตัดรายการนั้นและรายงาน เทียบตัวชี้วัดหลังตรวจให้ตัวอย่างตรงกันเท่านั้น P5 เป็นคำสั่งให้สร้างสคริปต์ ไม่ใช่ไฟล์สำเร็จที่รับประกันผล
สร้างทีละขั้น
- สร้างสมุดงานว่าง ใน Excel หรือ LibreOffice Calc; สมุดงานคลาวด์ก็ใช้ได้ แต่เป็นข้อมูลบัญชี จึงเลือกอย่างตั้งใจ
- นำเข้า CSV เริ่มต้น (หรือคัดลอกหัวคอลัมน์จากตารางโครงสร้าง) ตรวจว่าตัวเลขนำเข้าเป็นตัวเลข หาก “1.0850” เป็นข้อความ รูปแบบตัวคั่นไม่ตรงการตั้งค่าระบบ
- วางสูตรแต่ละแถว ใน O2, S2, V2 และ W2 แล้วเติมลงเผื่อแถวไว้
- วางแดชบอร์ด (ตัวชี้วัด 1–9) เหนือตารางหรือบนแผ่นงานแยก เติมคอลัมน์ช่วย AE, AF และ AG ลงเช่นเดียวกับสูตรแถวจนถึงแถวที่เตรียมสุดท้าย
- ตั้งกิจวัตร: บันทึกหลังทุกเทรดปิด (รายการ EOD ใน ส่วนเสริม J รวมข้อนี้) อ่านตัวชี้วัดรายสัปดาห์ และตัดสินใจเรื่องคู่มือรายไตรมาส (ส่วนเสริม E).
คำถามที่พบบ่อย
Excel, LibreOffice หรือสมุดงานคลาวด์?
สูตรใช้ฟังก์ชันพื้นฐานที่มีใน Excel, LibreOffice Calc และ Google Sheets แต่ชื่อฟังก์ชันกับตัวคั่นขึ้นกับโปรแกรมและไฟล์ PL แสดงชื่อโปแลนด์กับอัฒภาค EN แสดงชื่ออังกฤษกับจุลภาค สมุดงานคลาวด์อาจต้องใช้ชื่ออังกฤษกับอัฒภาค เราไม่ได้อ้างว่าทดสอบทุกเวอร์ชัน ความต่างจริงอยู่อีกจุด: บันทึกมีขนาดสถานะ ผลลัพธ์ และรายการข้อผิดพลาดของคุณ บนคลาวด์ข้อมูลอยู่ภายใต้นโยบายผู้ให้บริการและนอกไดรฟ์ตนเอง กฎในหมวดนี้คือเก็บข้อมูลบัญชีในอุปกรณ์เป็นค่าเริ่มต้น เลือกคลาวด์อย่างตั้งใจและส่งออกสำเนาสำรอง เป็นการตัดสินใจเดียวกับหัวข้อสุขอนามัยข้อมูลในส่วนเสริม H ก่อนวางบันทึกลงแชต
ต้องกี่เทรดตัวชี้วัดจึงมีความหมาย?
ตัวชี้วัดอธิบายตัวอย่างตั้งแต่เทรดแรก ราวห้าสิบเป็นตัวอย่างจุดทำงานสำหรับทบทวนระบบครั้งแรก ไม่ใช่เกณฑ์นัยสำคัญ ก่อนหน้านั้นค่าคาดหวังและอัตราชนะเปลี่ยนมากหลังแต่ละชุด และบอกเกี่ยวกับชุดล่าสุดมากกว่าระบบ การกระจายและความสัมพันธ์ระหว่างผลก็สำคัญ (จึงมีจำนวนเดียวกันในคู่มือส่วนเสริม E เป็นเกณฑ์ระดับ A+) ไม่ได้แปลว่าบันทึกใช้ไม่ได้ก่อนหน้านั้น ตัวชี้วัดกระบวนการทำงานตั้งแต่รายการแรก ทั้งอัตราดำเนินการไม่ผิดพลาดและความครบถ้วน และกำหนดว่าตัวเลขระบบจะเชื่อถือได้หรือไม่ ลำดับเหมือนเดิมเสมอ: กระบวนการก่อน จากนั้นตัวอย่าง แล้วจึงประเมินระบบ หมายเหตุสำหรับภาค E ฉบับปัจจุบัน: ประมาณห้าสิบเทรดที่กล่าวถึงเป็นเพียงตัวอย่างจุดทบทวน ไม่ใช่เกณฑ์ A+ ใน playbook ปัจจุบัน ระดับขึ้นกับเงื่อนไขจำเป็นและเกณฑ์คุณภาพที่กำหนดล่วงหน้า ขนาดตัวอย่างเพียงอย่างเดียวไม่ได้กำหนดระดับ
ทำไมต้องมี error_code ทั้งที่เห็นผลแล้ว?
เพราะผลกับคุณภาพการตัดสินใจเป็นคนละมิติ เทรดกำไรอาจผิดแผน (อันตรายที่สุด เพราะการละเมิดที่ได้รางวัลจะถูกเสริมแรง) และการดำเนินการดีเยี่ยมก็จบขาดทุนได้ Error_code 0–10 ทำให้คำนวณค่าคาดหวังเฉพาะการดำเนินการไม่ผิดพลาดได้ หากตัดการละเมิดแล้วระบบมีกำไร อาจชี้ปัญหาการปฏิบัติมากกว่ากฎ แต่ความต่างระหว่างกลุ่มยังไม่พิสูจน์สาเหตุ เพียงชี้ว่าควรตรวจตรงไหน แยกรหัส 10 (โครงสร้างพื้นฐาน) จากข้อผิดพลาดการตัดสินใจ ขั้นตอนกรณีเหล่านี้อยู่ใน ส่วนเสริม Kส่วนรายการรหัส 1–9 อยู่ใน 15.9
Excel ไม่รับสูตร ควรตรวจอะไร?
เกือบทุกครั้งมาจากหนึ่งในสามเรื่อง แรก รูปแบบ: ภาษาฟังก์ชันกับตัวคั่นอาร์กิวเมนต์ตั้งแยกกัน สวิตช์ให้สองชุดที่พบบ่อย (PL: ชื่อโปแลนด์ + อัฒภาค; EN: ชื่ออังกฤษ + จุลภาค) แต่ต้องตรวจการตั้งค่าภูมิภาค ใน Google Sheets ตรวจตัวเลือกชื่อฟังก์ชันอังกฤษด้วย สอง ตัวคั่นทศนิยม: ระบบจุลภาคอ่าน “1.0850” เป็นข้อความ จึงมี CSV สองรูปแบบ สาม เครื่องหมายคำพูด: คัดลอกผ่านแอปข้อความอาจเปลี่ยนเครื่องหมายตรงเป็นแบบพิมพ์สวย ใช้ปุ่มบนหน้านี้โดยไม่ผ่านแอปกลาง หากยังคำนวณไม่ได้ พรอมป์ต์ P3 ส่วนเสริม H ตรวจสูตรได้เช่นเดียวกับโค้ด
เนื้อหาหลักสูตรที่เกี่ยวข้อง
- 15.9 บันทึกการเทรดและตัวชี้วัด — รายการช่องครบ (รวมรหัสผิดพลาด 0–10) นิยาม MAE/MFE และตัวชี้วัดขั้นสูง (SQN, Sortino)
- 15.10 ตรวจทบทวนกลยุทธ์ — สรุปอะไรจากตัวชี้วัดได้ และต้องใช้ตัวอย่างแบบไหน
- ส่วนเสริม I — ชุดโค้ด — สคริปต์ S1–S3 สำเร็จรูปที่ทดสอบแล้ว อ่าน CSV ส่งออกสมุดงานนี้ (A–Z) คำนวณตัวชี้วัดและวาดเส้นทุน
- ส่วนเสริม H, พรอมป์ต์ P5–P7 — สคริปต์คำนวณตัวชี้วัดจาก CSV สมุดงานนี้ พร้อมตรวจรูปแบบ (P6–P7: เพิ่มสถานะทำตามแผนและหมายเหตุสภาพ; P7 ต้องการตัวชี้วัดรายสัปดาห์ คัดแถวที่ปิดในสัปดาห์ไปแผ่นงานแยกและคำนวณสูตรเดียวกันที่นั่น ตัวกรองอัตโนมัติอย่างเดียวไม่เปลี่ยนผล COUNT/SUM/AVERAGE)
- ส่วนเสริม E — แม่แบบแผน — คู่มือที่ปรับรายไตรมาสโดยใช้ตัวเลขจากบันทึกนี้
- ส่วนเสริม J — รายการตรวจสอบ — กิจวัตร EOD/EOW ที่ทำให้ใช้บันทึกต่อเนื่อง
แหล่งอ้างอิง
- Van K. Tharp, Trade Your Way to Financial Freedom, ฉบับที่ 2, McGraw-Hill 2007 — แนวคิดจำนวนเท่าของ R และค่าคาดหวังเป็นตัวชี้วัดหลักของระบบ ซึ่งเป็นฐานของ r_net และแดชบอร์ด
- ภายใน: 15.9 บันทึกการเทรดและตัวชี้วัด (โครงสร้างช่อง รหัสผิดพลาด MAE/MFE) และ 15.10 ตรวจทบทวนกลยุทธ์ (อนุมานจากตัวอย่างอย่างมีวินัย) 26 คอลัมน์ A–Z กับ 3 ช่องประเมินตนเองรวมเป็น 29 คอลัมน์ในไฟล์ แต่สมุดงานครอบคลุมราว 20 จาก 29 ช่องเชิงตรรกะที่มีหมายเลขใน 15.9 ช่องที่ขาดคือ regime, actual_tp, slippage_exit_pips และอีกสี่ช่องที่ 15.9 ขอให้เพิ่มเอง (“สมุดงานสร้างก่อนหัวข้อนี้”): lots, pip_value_at_open, strategy_version, evidence_link — หากใช้สคริปต์จาก 15.9 เพิ่มเป็นคอลัมน์ไม่บังคับตั้งแต่ AH เพื่อไม่ทับ AA–AG ที่มีอยู่ สคริปต์ที่คาด A:Z ให้ส่งออกเฉพาะช่วงนั้นต่อไป
- เอกสาร: Microsoft — ตัวคั่นอาร์กิวเมนต์และ CSV, Microsoft — นำเข้าและส่งออก CSV, Google Sheets — ภูมิภาคและภาษาฟังก์ชัน. ตรวจเมื่อ 21 กันยายน 2026 เป็นกฎการตั้งค่า ไม่ใช่คำกล่าวว่าทดสอบทุกแอปแล้ว
- NIST — ความไม่แน่นอนของค่าเฉลี่ย: ขึ้นกับขนาดตัวอย่างและการกระจาย ไม่รองรับเกณฑ์สากล 50 เทรด ตรวจเมื่อ 21 กันยายน 2026