หมวดหมู่
เทคนิค
ระดับความยาก
เริ่มต้น
ใช้ใน
การออกแบบกลยุทธ์การบริหารความเสี่ยงการใช้งาน MT5

Average True Range (ATR)

อินดิเคเตอร์วัดความผันผวนที่บอกขนาดเฉลี่ยของการเคลื่อนไหวราคาช่วงล่าสุดในหน่วยราคา อีเอใช้มันกำหนดระยะจุดตัดขาดทุนและขนาดสถานะที่ปรับตามสภาพตลาดปัจจุบัน แทนที่จะอิงสภาพของเมื่อวาน

หรือ: ATR, True Range

อัปเดต

อธิบายแบบเข้าใจง่าย

ตลาดนี้มักเดินทางไกลแค่ไหนในหนึ่งแท่ง คิดเป็นค่าเฉลี่ยของช่วงที่ผ่านมาไม่นาน มันไม่มีความเห็นเรื่องทิศทางเลย มันคือไม้บรรทัดวัดระยะ และเกือบทุกอย่างที่อีเอวัดเป็นพิปนั้นวัดด้วยหน่วยนี้ได้ดีกว่า

ทำไมจึงสำคัญ

ทุกระยะภายในอีเอ ไม่ว่าจะเป็นจุดตัดขาดทุน เป้าหมาย ระยะเลื่อนสต็อป หรือเกณฑ์การทะลุกรอบ ล้วนเป็นจำนวนพิปที่ใครสักคนเลือกไว้ ATR คือสิ่งที่แปลงตัวเลขตายตัวเหล่านั้นให้เป็นสัดส่วนที่ยังคงความหมายเดิมเมื่อตลาดเร่งขึ้นหรือช้าลง

  • มันคือรูปแบบใช้งานจริงของความผันผวน อีเอคำนวณส่วนเบี่ยงเบนมาตรฐานของผลตอบแทนทุกทิกได้ยาก แต่อ่านค่า ATR จากแฮนเดิลอินดิเคเตอร์เพียงตัวเดียวได้
  • มันอยู่ในหน่วยราคา จึงแปลงเป็นระยะจุดตัดขาดทุนได้ตรง ๆ โดยไม่ต้องผ่านขั้นตอนทางสถิติใด ๆ
  • มันทำให้กลยุทธ์เทียบกันได้ข้ามสินทรัพย์และข้ามกรอบเวลา สองพิปคือสต็อปที่กว้างบนสินทรัพย์หนึ่งแต่จมอยู่ในสัญญาณรบกวนบนอีกสินทรัพย์ ส่วนสอง ATR คือคำพูดเดียวกันในทุกที่
  • มันรวมช่องว่างราคาไว้ด้วย ซึ่งช่วงสูงสุดลบต่ำสุดธรรมดาทำไม่ได้ เพราะพิสัยจริงวัดเทียบกับราคาปิดก่อนหน้าด้วย ไม่ใช่เทียบเฉพาะแท่งปัจจุบัน

ใน MetaTrader 5

อยู่ตรงไหนใน MT5

  • Insert → Indicators → Oscillators → Average True Range — เพิ่มลงกราฟพร้อมพารามิเตอร์คาบเวลา
  • Navigator → Indicators → Average True Range — ลากลงกราฟก็ได้ผลเหมือนกัน
  • อินดิเคเตอร์วาดในหน้าต่างแยก เพราะสเกลของมันคือระยะราคา ไม่ใช่ราคา
  • Strategy Tester → Inputs — คาบเวลา ATR และตัวคูณของอีเอเป็นค่าอินพุต และทั้งคู่ปรับจนโอเวอร์ฟิตได้ง่าย

EA ใช้อย่างไร

  • สร้างแฮนเดิลเพียงครั้งเดียวใน OnInit — iATR(_Symbol, PERIOD_CURRENT, 14) — แล้วอ่านค่าด้วย CopyBuffer แทนการสร้างแฮนเดิลภายใน OnTick
  • ระยะสต็อป = ตัวคูณ × ATR ณ จุดเข้า เพื่อให้สต็อปวางอยู่นอกการเคลื่อนไหวปกติ แทนที่จะวางที่จำนวนพิปกลม ๆ
  • ขนาดสถานะ = เงินที่ยอมเสี่ยง ÷ (ระยะสต็อป × มูลค่าต่อพิป) ซึ่งทำให้ขนาดล็อตลดลงเองเมื่อความผันผวนสูงขึ้น
  • ระยะเลื่อนสต็อปคือแนวคิดเดียวกันที่ใช้อย่างต่อเนื่อง ระยะจะกว้างขึ้นในตลาดเร็วและแคบลงในตลาดสงบ
  • อ่าน ATR จากแท่งที่ปิดแล้ว (ดัชนี 1) ไม่ใช่แท่งที่กำลังก่อตัว (ดัชนี 0) ซึ่งค่าจะเปลี่ยนทุกทิก
  • อย่าเหมาว่า iATR คือ ATR ของไวล์เดอร์ ATR ที่มากับ MetaTrader ใช้การกลิ้งหน้าต่างคงที่ ในจุดที่ไวล์เดอร์ใช้การถัวเฉลี่ยแบบเรียบ ทั้งสองจึงตอบสนองด้วยนาฬิกาคนละเรือน หลังความผันผวนพุ่งขึ้นสามเท่า เราวัดได้ 19 แท่งเทียบกับ 59 แท่งกว่าจะถึง 90% ของระดับใหม่

ค่าตั้งทั่วไป

ค่าตั้ง ค่าที่ใช้ทั่วไป หมายเหตุ
คาบเวลา 14 ค่าเริ่มต้นที่ใช้กันทั่วไป คาบสั้น (7–10) ตอบสนองเร็วกว่า ส่วนคาบยาว (20–30) เรียบกว่าและเหมาะกับระบบรายวัน
ตัวคูณของสต็อป 1.5–2.5 × ATR ต่ำกว่าราว 1.5 สต็อปจะไปอยู่ในการเคลื่อนไหวปกติของสินทรัพย์ส่วนใหญ่
ตัวคูณของการเลื่อนสต็อป 2–3 × ATR มักกว้างกว่าสต็อปตอนเข้า เพื่อไม่ให้การย่อตัวปกติปิดไม้เทรนด์ไปเสียก่อน
ตัวคูณของเป้าหมาย 2–4 × ATR รักษาอัตราส่วนความเสี่ยงต่อผลตอบแทนให้คงที่เมื่อสภาพตลาดเปลี่ยน
กรอบเวลาที่ใช้อ่านค่า กรอบเวลาของกลยุทธ์เอง ATR บน M5 กับบน D1 อธิบายคนละคำถาม การนำมาปนกันจะเปลี่ยนทุกระยะอย่างเงียบ ๆ

ปัญหาการใช้งานที่พบบ่อย

  • สร้างแฮนเดิลอินดิเคเตอร์ภายใน OnTick ซึ่งทำให้แฮนเดิลรั่วและล้มเหลวในที่สุด ที่ของแฮนเดิลคือ OnInit
  • CopyBuffer คืนค่ามาน้อยกว่าที่ขอตอนเริ่มทำงาน ก่อนที่ข้อมูลย้อนหลังจะโหลดพอ ทำให้ได้ ATR เท่ากับศูนย์ และจึงได้สต็อปที่ระยะเป็นศูนย์
  • อ่าน ATR จากแท่งที่กำลังก่อตัว ทำให้ระยะสต็อปขึ้นกับว่าสัญญาณเกิดที่ช่วงใดของแท่ง
  • สับสนระหว่างพอยต์กับพิป ATR คืนค่ามาเป็นหน่วยราคา และราคาเสนอแบบ 5 หลักหมายถึง 0.00120 ไม่ใช่ 12 การคูณมันราวกับเป็นพิปจะได้สต็อปที่กว้างหรือแคบเกินไปร้อยเท่า
  • ปรับคาบเวลา ATR พร้อมกับตัวคูณบนช่วงข้อมูลเดียวกัน ซึ่งทำให้ทั้งคู่เข้ารูปกับการย่อตัวเฉพาะของช่วงข้อมูลนั้น

ฟังก์ชัน MT5 ที่เกี่ยวข้อง

iATR(symbol, timeframe, ma_period)
สร้างแฮนเดิลอินดิเคเตอร์ เรียกครั้งเดียวใน OnInit แล้วเก็บแฮนเดิลไว้
CopyBuffer(handle, 0, start, count, array)
อ่านค่า ATR จากบัฟเฟอร์ 0 ซึ่งเป็นบัฟเฟอร์เดียวที่อินดิเคเตอร์นี้มี
SymbolInfoDouble(symbol, SYMBOL_POINT)
แปลง ATR ที่เป็นหน่วยราคาให้เป็นพอยต์ ซึ่งเป็นหน่วยที่ใช้บอกระยะสต็อป
NormalizeDouble(price, _Digits)
ปัดระดับสต็อปที่คำนวณได้ให้ตรงกับความละเอียดของสัญลักษณ์ก่อนส่งคำสั่ง

ตัวอย่าง

กฎความเสี่ยงเดียวกัน ใช้ในสองสภาวะความผันผวน ไม่มีอะไรในอีเอเปลี่ยนเลย สิ่งที่เปลี่ยนคือไม้บรรทัดที่มันใช้วัด

สภาวะสงบ — ATR(14)
12 พิป
สต็อป 2 × ATR เท่ากับ 24 พิป
สภาวะผันผวน — ATR(14)
34 พิป
สต็อป 2 × ATR เดิมเท่ากับ 68 พิป
ความเสี่ยงต่อไม้
1% ของ 10,000 ดอลลาร์ = 100 ดอลลาร์
ขนาดล็อต สงบ / ผันผวน
0.42 / 0.15
เงินที่เสี่ยงเท่ากัน ระยะต่างกัน ขนาดจึงต่างกัน

ถ้าขยายสต็อปโดยไม่ลดล็อต เงินที่เสี่ยงจะเพิ่มเป็นสามเท่า ATR ช่วยได้ก็ต่อเมื่อทั้งสองส่วนขยับไปด้วยกัน

การคำนวณ 100 ÷ (24 × 10) = 0.42 · 100 ÷ (68 × 10) = 0.15

ผลลัพธ์ กฎความเสี่ยงข้อเดียวที่ให้ระยะสต็อปสองค่าและขนาดสถานะสองค่า

ใช้อย่างไร

ATR คือระยะ ไม่ใช่สัญญาณ มันบอกอีเอว่าจะวางสิ่งต่าง ๆ ไกลแค่ไหน ไม่เคยบอกว่าควรวางหรือไม่

ช่วงค่า ความหมาย
ATR ปัจจุบันต่ำกว่าค่าเฉลี่ยของแบ็คเทสต์มาก เป้าหมายที่นิยามด้วย ATR หดลงตามไปด้วย กลยุทธ์จึงได้กำไรก้อนเล็กลงขณะที่ต้นทุนยังคงเดิม
ATR ปัจจุบันใกล้ค่าเฉลี่ยของแบ็คเทสต์ คือสภาวะที่ใช้ปรับค่าตั้งไว้ ความคาดหวังที่เผยแพร่ไว้ยังใช้ได้
ATR ปัจจุบันสูงกว่าค่าเฉลี่ยของแบ็คเทสต์ชัดเจน สต็อปแบบพิปคงที่ตอนนี้จมอยู่ในสัญญาณรบกวน ส่วนสต็อปที่อิง ATR จะกว้างขึ้น และต้องลดขนาดสถานะเพื่อชดเชย
ใช้ ATR เป็นสัญญาณเข้า เป็นการใช้ผิดทาง มันไม่มีทิศทาง ค่าที่สูงบอกว่าตลาดกำลังเคลื่อนไหว ไม่ได้บอกว่าไปทางไหน
  • แปลงทุกระยะในอีเอให้เป็นตัวคูณของ ATR แล้วค่อยปรับตัวคูณนั้นแทนจำนวนพิป ผลลัพธ์จะย้ายข้ามสินทรัพย์และข้ามสภาวะตลาดได้ดีกว่ามาก
  • อย่าเทียบค่า ATR ดิบข้ามสินทรัพย์เด็ดขาด สี่สิบพิปบน GBP/JPY กับสี่สิบพิปบน EUR/USD คือระดับความเคลื่อนไหวคนละอย่าง ถ้าจำเป็นต้องเทียบให้หารด้วยราคา
  • จับคู่คาบเวลาของ ATR กับระยะเวลาถือครอง นักเก็งกำไรระยะสั้นที่อ่าน ATR รายวันกำลังกำหนดขนาดสำหรับการเคลื่อนไหวที่เขาจะไม่มีวันอยู่ในนั้น
  • ตรวจว่าตัวคูณมีเสถียรภาพเมื่อขยับไปค่าข้างเคียงหรือไม่ สต็อปที่ทำงานได้ที่ 2.0 × ATR แต่ไม่ได้ที่ 1.8 หรือ 2.2 คือสต็อปที่ถูกดัดให้เข้ากับช่วงข้อมูลทดสอบ

[หน้าอินดิเคเตอร์ ATR ฉบับเต็ม](/th/indicators/atr) อธิบายการคำนวณและการตั้งค่าอย่างละเอียด ในนั้นมีผลการวัดของเราด้วยว่า iATR ของ MetaTrader คือหน้าต่างเลื่อน ไม่ใช่การถัวเฉลี่ยแบบเรียบของไวล์เดอร์ ส่วนรายการนี้ว่าด้วยบทบาทของ ATR ภายในกฎความเสี่ยงของอีเอ

ความเข้าใจผิดที่พบบ่อย

ใช้ ATR เป็นสัญญาณบอกทิศทาง

มันวัดระยะที่เคลื่อนที่ไป ไม่ได้วัดว่าไปทางไหน ATR ที่สูงขึ้นแปลว่าตลาดเคลื่อนไหวมากขึ้น ซึ่งเกิดได้ทั้งในเทรนด์ ในภาวะดิ่ง และในกรอบที่เหวี่ยงแรงพอ ๆ กัน

ขยายสต็อปตาม ATR โดยไม่ลดล็อต

สาระทั้งหมดของสต็อปแบบปรับตัวคือความเสี่ยงต่อไม้ต้องคงที่ ถ้าระยะเพิ่มเป็นสามเท่าแล้วขนาดไม่ลด สิ่งที่เพิ่มเป็นสามเท่าคือผลขาดทุน

สับสนระหว่างหน่วยราคากับพิป

iATR คืนค่าเป็นระยะราคา คือ 0.00120 บน EUR/USD แบบ 5 หลัก ไม่ใช่ 12 โค้ดที่มองว่าเป็นพิปจะวางสต็อปไกลหรือใกล้เกินไปร้อยเท่า และข้อผิดพลาดนี้หลุดรอดการทดสอบได้ง่ายเพราะผลลัพธ์แค่แย่ ไม่ได้พังจนเห็นชัด

อ่าน ATR จากแท่งที่กำลังก่อตัว

ดัชนี 0 เปลี่ยนทุกทิก สัญญาณเดียวกันจึงให้สต็อปต่างกันตามจังหวะที่มันเกิด ใช้แท่งที่ปิดล่าสุดสำหรับทุกอย่างที่ต้องทำซ้ำได้

คำถามที่พบบ่อย

อีเอควรใช้คาบเวลา ATR เท่าไร
สิบสี่คือค่าเริ่มต้นที่ใช้กันทั่วไปและเป็นจุดตั้งต้นที่สมเหตุสมผล คาบสั้นเจ็ดถึงสิบตอบสนองต่อการเปลี่ยนสภาพตลาดได้เร็วกว่าแต่มีสัญญาณรบกวนมากกว่า ส่วนยี่สิบถึงสามสิบเรียบกว่าและเหมาะกับกลยุทธ์บนแท่งรายวัน สิ่งที่สำคัญกว่าค่าที่แน่นอนคือค่านั้นยังเสถียรเมื่อขยับไปยังค่าข้างเคียงตอนทดสอบ
แปลง ATR เป็นระยะจุดตัดขาดทุนอย่างไร
คูณมัน สต็อปที่ 2 × ATR อยู่ห่างจากจุดเข้าเท่ากับช่วงแท่งเฉลี่ยสองแท่ง ซึ่งอยู่นอกการเคลื่อนไหวปกติของสินทรัพย์ส่วนใหญ่ ขั้นตอนที่สองซึ่งขาดไม่ได้คือคำนวณขนาดล็อตจากระยะนั้นกับเพดานความเสี่ยงของคุณ เพื่อให้สต็อปที่กว้างขึ้นหมายถึงสถานะที่เล็กลง ไม่ใช่ผลขาดทุนที่ใหญ่ขึ้น
ATR ดีกว่าสต็อปแบบพิปคงที่ไหม
สำหรับอีเอที่รันโดยไม่มีคนเฝ้าเป็นปี ๆ โดยทั่วไปดีกว่า เพราะระยะคงที่มีความหมายต่างกันในแต่ละสภาวะความผันผวน ขณะที่ตัวคูณของ ATR มีความหมายเดียวกันตลอด สิ่งที่ต้องแลกคือมีพารามิเตอร์เพิ่มอีกหนึ่งตัวที่ต้องระวังไม่ให้ปรับจนโอเวอร์ฟิต
ATR ของ MT5 เหมือน ATR ของไวล์เดอร์หรือไม่
ไม่เหมือนเสียทีเดียว และเรื่องนี้สำคัญเมื่อคุณย้ายค่าตั้งข้ามแพลตฟอร์ม ไวล์เดอร์ถัวเฉลี่ยพิสัยจริงแบบเรียบ ทำให้ทุกแท่งในอดีตยังคงค่อย ๆ จางอยู่ในค่าเดิม ส่วน ATR ที่มากับ MetaTrader กลับกลิ้งหน้าต่างคงที่ ซึ่งก็คือค่าเฉลี่ยเคลื่อนที่อย่างง่าย ทั้งคู่เป็นตัวกรองเชิงเส้นที่ผลรวมน้ำหนักเท่ากับหนึ่ง ระดับระยะยาวจึงตรงกัน เราวัดได้ 9.571 เทียบกับ 9.573 พิป บน 2,700 แท่งที่คาบ 20 สิ่งที่ต่างคือการตอบสนอง หลังความผันผวนพุ่งขึ้นสามเท่าที่แท่งหนึ่ง เวอร์ชันของ MetaTrader ไปถึง 90% ของระดับใหม่ใน 19 แท่ง ส่วนของไวล์เดอร์ใช้ 59 แท่ง ดังนั้นสต็อป 2 × ATR จึงกว้างขึ้นเร็วกว่าบน MT5 เมื่อเทียบกับกฎเดียวกันบนแพลตฟอร์มที่อิงไวล์เดอร์ และการปรับคาบให้เท่ากันก็ไม่ได้ทำให้ทั้งสองรวมเป็นอันเดียว คาบ iATR ที่ใกล้เคียงกับคาบ 20 ของไวล์เดอร์ที่สุดวัดได้ที่ 32–33
ATR บอกทิศทางของเทรนด์ได้ไหม
ไม่ได้ มันเป็นการวัดระยะล้วน ๆ และไม่มีองค์ประกอบเชิงทิศทางเลย ADX คือตัวช่วยที่ใช้คู่กันตามปกติสำหรับวัดความแข็งแรงของเทรนด์ ส่วนทิศทางมาจากเส้นค่าเฉลี่ยเคลื่อนที่หรือโครงสร้างราคา

บทความที่เกี่ยวข้อง