แท่งเทียน Heikin-Ashi: สูตรคำนวณ ราคาจำลอง (Synthetic Prices) และราคาที่จับคู่ซื้อขายจริง
เรียนรู้วิธีที่แท่งเทียน Heikin-Ashi ช่วยปรับกราฟให้เรียบเนียนขึ้น เหตุใดค่า OHLC จึงไม่ใช่ราคาที่มีการซื้อขายจริง และวิธีแยกแยะระหว่างสัญญาณที่เห็นบนกราฟกับการส่งคำสั่งซื้อขาย
ในคู่มือนี้แยกภาพแท่งเทียนออกจากราคาที่มีการซื้อขายจริง
สรุปสั้น
แท่งเทียน Heikin-Ashi นำข้อมูลแท่งเทียนปกติมาคำนวณใหม่ด้วยสูตรหาค่าเฉลี่ยแบบต่อเนื่อง (recursive averaging) ตัวแท่งเทียนที่ดูเรียบเนียนขึ้นช่วยให้อ่านแนวโน้มราคาได้ง่าย แต่ค่า Open, High, Low และ Close ที่ได้นั้นเป็นเพียงค่าที่แสดงบนกราฟ ไม่ใช่ข้อมูลการซื้อขายชุดที่สอง ให้ลองคำนวณแท่งเทียนหนึ่งแท่ง สังเกตตำแหน่งที่ไส้เทียนจำลอง (synthetic wick) อาจปรากฏขึ้น จากนั้นแยกตรรกะของสัญญาณออกจากราคาที่ใช้ส่งคำสั่งซื้อขายจริง
แยกภาพแท่งเทียนออกจากราคาที่มีการซื้อขายจริง
แท่งเทียนมาตรฐานจะแสดงค่า Open, High, Low และ Close ของสินทรัพย์สำหรับแท่งเทียนนั้นๆ Heikin-Ashi (HA) จะแปลงค่าต่างๆ ดังนี้: ค่า Close ของ HA คือค่าเฉลี่ยของ OHLC ปกติในปัจจุบัน ในขณะที่ค่า Open ของ HA ขึ้นอยู่กับค่า Open และ Close ของ HA ในแท่งก่อนหน้า กระบวนการคำนวณแบบต่อเนื่อง (recursive) นี้ช่วยลดความผันผวนทางสายตาที่เกิดขึ้นระหว่างแท่งเทียน แต่ก็หมายความว่าแท่งเทียน HA ไม่ได้แสดงเส้นทางการซื้อขายที่เกิดขึ้นจริงอย่างแม่นยำ TradingView ระบุว่าค่า HA เป็นค่าเฉลี่ยมากกว่าที่จะเป็นราคาจริง และตั้งข้อสังเกตว่าค่าเหล่านี้มีความแม่นยำน้อยกว่าสำหรับการกำหนดจุดเข้าและจุดออกที่เจาะจง ควรใช้การแสดงผลนี้เพื่ออธิบายกฎการปรับให้เรียบ (smoothing rule) ที่เลือกใช้ ไม่ใช่เพื่อระบุระดับราคาที่คำนวณขึ้นมาใหม่ (synthetic level) ว่าเป็นราคาล่าสุดของตลาด แนวรับ หรือราคาที่สามารถจับคู่คำสั่งซื้อขายได้จริง {source:tradingViewHeikinAshiGuide}
คำนวณแต่ละค่าโดยใช้ข้อมูลนำเข้าที่ถูกต้อง
สำหรับแท่งเทียนปกติในปัจจุบันที่มีค่า Open (O), High (H), Low (L) และ Close (C) สูตรคือ HA_Close = (O + H + L + C) / 4 โดยมีกระบวนการคำนวณต่อเนื่องคือ HA_Open = (previous HA_Open + previous HA_Close) / 2 จากนั้นจะได้ HA_High = max(H, HA_Open, HA_Close) และ HA_Low = min(L, HA_Open, HA_Close) ค่า Close ปัจจุบันใช้ค่า OHLC ของแท่งเทียนปัจจุบัน ส่วนค่า Open ปัจจุบันจะนำสถานะ HA ของแท่งก่อนหน้ามาใช้ ตัวแท่งเทียน HA ที่เป็นขาขึ้น (bullish) ตามกฎสีปกติ หมายความว่า HA_Close > HA_Open ซึ่งไม่ได้หมายความว่าแท่งเทียนปกติปิดสูงกว่าราคาเปิดเสมอไป สูตรนี้กำหนดค่าที่คำนวณได้สี่ค่า แต่อย่างไรก็ตาม กราฟอาจมีการกำหนดสีแยกต่างหากโดยอิงจากราคาปิดก่อนหน้า ดังนั้นควรสังเกตด้วยว่าคุณกำลังดูการแสดงสีแบบใดอยู่
ใช้ตัวอย่างกรณีเกิดช่องว่างราคา (Gap) เพื่อสังเกตตำแหน่งไส้เทียนจำลอง
สมมติว่าค่า Open ของ HA ก่อนหน้าคือ 100 และค่า Close ของ HA ก่อนหน้าคือ 102 แท่งเทียนของสินทรัพย์ในปัจจุบันเปิดที่ 110 (หลังจากราคาปิดจริงก่อนหน้าอยู่ที่ 108) ขึ้นไปสูงสุดที่ 112 ลงต่ำสุดที่ 109 และปิดที่ 111 ค่า Open ของ HA ปัจจุบันคือ (100 + 102) / 2 = 101 ค่า Close คือ (110 + 112 + 109 + 111) / 4 = 110.5 ค่า High ของ HA คือ 112 และค่า Low ของ HA คือ min(109, 101, 110.5) = 101 แท่งราคาจริงซื้อขายไม่ต่ำกว่า 109 แต่ไส้เทียน HA ขยายไปถึง 101 เนื่องจากราคาเปิดแบบวนซ้ำเป็นส่วนหนึ่งของจุดต่ำสุดสังเคราะห์ สูตรของ TradingView ใช้ราคาสูงสุดหรือต่ำสุดปัจจุบันร่วมกับราคาเปิดและปิด HA สำหรับจุดสูงสุดและต่ำสุดเหล่านั้น ดังนั้น การแตะระดับ 101 ในแท่ง HA นี้จึงไม่ใช่หลักฐานที่พิสูจน์ได้ว่ามีคำสั่งซื้อขายเกิดขึ้นที่นั่น {source:tradingViewHeikinAshiGuide}
ลองพิจารณาตัวอย่างโดยขยับไปที่แท่งราคาถัดไปเพื่อดูว่าลักษณะการคำนวณแบบวนซ้ำ (recursion) ยังคงดำเนินต่อไปอย่างไร โดยใช้ค่า HA open ที่ 101 และ HA close ที่ 110.5 จากแท่งก่อนหน้าเป็นจุดเริ่มต้นสำหรับแท่งราคาจริงถัดไป (O=114, H=116, L=113.5, C=115) ซึ่งมีค่า HA open เท่ากับ (101 + 110.5) / 2 = 105.75 และค่า HA close เท่ากับ (114 + 116 + 113.5 + 115) / 4 = 114.625 ส่วนค่า HA low นั้นมีค่าเท่ากับค่า synthetic open ดังกล่าว ทั้งนี้ แท่งราคาจริงมีการซื้อขายอยู่เฉพาะในช่วงระหว่างค่า low และ high ที่ระบุไว้ข้างต้นเท่านั้น ดังนั้น ค่า synthetic open ที่ถูกส่งต่อมานี้จึงทำให้เกิดไส้เทียน (wick) ยื่นลงมาต่ำกว่าจุดต่ำสุดจริงของแท่งราคา ซึ่งถือเป็นค่าที่ได้จากการคำนวณทางกราฟ ไม่ใช่ราคาที่มีการซื้อขายเกิดขึ้นจริงในตลาด {source:tradingViewHeikinAshiGuide}

มองว่าการปรับกราฟให้เรียบเนียนคือการแลกเปลี่ยน (tradeoff) ในแง่ของการแสดงผล
ราคาเปิดแบบวนซ้ำช่วยให้การแสดงผลจดจำได้: ราคาเปิด HA ใหม่แต่ละครั้งจะอยู่กึ่งกลางระหว่างราคาเปิด HA ก่อนหน้าและราคาปิด HA ก่อนหน้า ดังนั้น การเปลี่ยนแปลงในราคาปิด HA ก่อนหน้าจะทำให้ราคาเปิด HA ถัดไปเปลี่ยนแปลงไปครึ่งหนึ่ง โดยที่ปัจจัยอื่นๆ คงที่ การเฉลี่ย O, H, L และ C สำหรับราคาปิด HA ปัจจุบันอาจทำให้สีและขนาดของตัวแท่งเทียนแตกต่างจากแท่งเทียนทั่วไป แท่งเทียนที่มีสีเดียวกันยาวๆ อาจมองเห็นได้ง่ายกว่า แต่การปรับให้เรียบไม่ได้ขจัดช่องว่าง ค่าธรรมเนียม การเลือกที่ไม่เหมาะสม หรือความเป็นไปได้ของการกลับตัวอย่างรวดเร็ว นอกจากนี้ยังเปลี่ยนตำแหน่งและบางครั้งช่วงของแท่งเทียนด้วย รูปแบบภาพเป็นการอธิบายชุดข้อมูลที่เปลี่ยนแปลงไป ไม่ใช่หลักฐานที่บ่งชี้ว่าราคาจะเปลี่ยนแปลงต่อไปหรือกลับทิศทาง หากไม่มีการทดสอบกฎเกณฑ์แยกต่างหาก
พิจารณาสีและรูปแบบไส้เทียนว่าเป็นเพียงข้อมูลอธิบายลักษณะ
กฎการกำหนดสีและรูปร่างของไส้เทียนสามารถใช้เป็นคำนิยามสั้นๆ สำหรับสิ่งที่ได้จากการแปลงข้อมูล ตัวอย่างเช่น นักวิเคราะห์กราฟบางคนเรียกแท่งเทียนขาขึ้น (bullish candle) ที่ไม่มีไส้เทียนด้านล่างหรือมีเพียงเล็กน้อยว่า "แท่งขาขึ้นที่ดูแข็งแกร่ง" (strong-looking up bar) วลีดังกล่าวอธิบายถึงค่า HA ที่ถูกสร้างขึ้นมา แต่มิได้ยืนยันว่าฝั่งผู้ซื้อเป็นผู้ควบคุมทุกธุรกรรม หรือระบุว่าควรวางจุดตัดขาดทุน (stop loss) ไว้ที่ระดับต่ำสุดของ HA หรือคาดการณ์ว่าแท่งเทียนถัดไปจะเป็นไปตามรูปแบบนี้เสมอไป แพลตฟอร์มอาจกำหนดสีของแท่งเทียนโดยเปรียบเทียบราคาปิด HA กับราคาเปิด HA หรืออาจมีตัวเลือกแยกต่างหากเพื่อเปรียบเทียบราคาปิดกับราคาปิดของแท่งก่อนหน้า ทางเลือกเหล่านี้อาจทำให้ข้อมูล OHLC ชุดเดียวกันแสดงผลออกมาแตกต่างกันได้ ดังนั้น ควรระบุกฎการกำหนดสีและสูตรคำนวณแท่งเทียนให้ชัดเจนก่อนที่จะเริ่มนับจำนวนรอบแนวโน้ม (runs) แท่งเทียนที่มีลักษณะคล้าย Doji หรือการเปลี่ยนแปลงของไส้เทียนในการวิเคราะห์
กำหนดกฎเกณฑ์สำหรับแท่งเทียน ช่วงเวลา (session) และการเริ่มต้นระบบให้ชัดเจนและคงที่
HA ถูกสร้างขึ้นจากแท่งราคาปกติ ดังนั้นกรอบเวลา (timeframe) และช่วงเวลาการซื้อขาย (session) จึงเป็นตัวกำหนดว่าค่า OHLC ปกติใดบ้างที่จะถูกนำมาใช้ในการคำนวณแต่ละครั้ง แท่งเทียน 5 นาทีที่สร้างจากเวลาทำการปกติอาจแตกต่างจากแท่งเทียนที่รวมช่วงเวลาซื้อขายขยายเวลา (extended trading) เข้าไปด้วย ส่วนขอบเขตของแท่งเทียนรายวันจะขึ้นอยู่กับปฏิทินและเขตเวลาของตลาดนั้นๆ นอกจากนี้ การแตกหุ้น (splits) การเปลี่ยนสัญญาฟิวเจอร์ส (futures rolls) แท่งราคาที่ขาดหายไป และข้อมูลย้อนหลังแบบปรับค่าแล้วเทียบกับแบบไม่ปรับค่า ก็อาจส่งผลให้ข้อมูลดิบที่นำมาคำนวณเปลี่ยนแปลงไปได้เช่นกัน เนื่องจาก HA มีลักษณะการคำนวณแบบวนซ้ำ (recursive) ค่าเริ่มต้น (seed) และปริมาณข้อมูลย้อนหลังที่โหลดเข้ามาจึงอาจส่งผลต่อค่าที่คำนวณได้ในช่วงแรก แม้ว่าอิทธิพลของค่าเริ่มต้นจะลดลงเรื่อยๆ จากการหาค่าเฉลี่ยซ้ำๆ แต่ก็ไม่ควรละเลยปัจจัยนี้ในการตรวจสอบความสามารถในการทำซ้ำของผลลัพธ์ (reproducibility check) ควรบันทึกข้อมูลเกี่ยวกับสัญลักษณ์ (symbol) ตลาด (venue) กรอบเวลา ช่วงเวลาการซื้อขาย การปรับราคา จุดเริ่มต้นของข้อมูลย้อนหลัง และหลักเกณฑ์การแสดงผล HA ของแพลตฟอร์มเอาไว้ ทั้งนี้ ค่าต่างๆ ของแท่งเทียนปัจจุบันอาจเปลี่ยนแปลงได้ก่อนที่แท่งราคาปกติจะปิดลง {source:tradingViewPineChartInformation}
แยกสัญญาณบนกราฟออกจากราคาที่จับคู่จริงในการทดสอบย้อนหลัง (backtest)
ในกราฟแบบ Heikin-Ashi กลยุทธ์ที่เขียนด้วยภาษา Pine สามารถกำหนดพารามิเตอร์ fill_orders_on_standard_ohlc ได้ โดยค่าเริ่มต้นของพารามิเตอร์นี้คือ false แต่หากตั้งค่าเป็น true ระบบจำลองการซื้อขาย (broker emulator) จะใช้ข้อมูล OHLC แบบมาตรฐานในการจำลองการจับคู่คำสั่งซื้อขาย (fill) ซึ่งการตั้งค่านี้จะส่งผลต่อราคาที่ใช้ในการจำลองการจับคู่คำสั่งเท่านั้น ในขณะที่สัญญาณการซื้อขายที่อ้างอิงค่าจากกราฟ Heikin-Ashi จะยังคงใช้ค่าที่ถูกคำนวณขึ้นใหม่ (synthetic values) ตามปกติ และการตั้งค่านี้ไม่ได้เปลี่ยนรูปแบบกราฟอย่าง Renko, Kagi หรือกราฟรูปแบบอื่นที่ไม่ใช่มาตรฐาน ให้กลายเป็นกราฟราคาแบบมาตรฐานแต่อย่างใด ทั้งนี้ TradingView มีคำเตือนว่า การทำ Backtest บนกราฟที่ไม่ใช่มาตรฐานโดยไม่ใช้การตั้งค่าดังกล่าว อาจทำให้ระบบใช้ข้อมูล OHLC ที่ถูกคำนวณขึ้นใหม่ในการจับคู่คำสั่งซื้อขาย ซึ่งอาจไม่สะท้อนสภาวะตลาดที่แท้จริง {source:tradingViewNonstandardChartBacktesting} {source:tradingViewPineStrategyDeclaration}
เขียนกฎสำหรับการส่งคำสั่งซื้อขายโดยอิงจากราคาจริง
ควรกำหนดกฎเกณฑ์โดยแบ่งเป็นสองขั้นตอน ขั้นแรก ให้ระบุบทบาทของข้อมูลชุด HA เช่น ราคาปิด HA ที่สูงกว่าราคาเปิด HA อาจใช้เป็นตัวกรอง (filter) สำหรับเงื่อนไขการเข้าเทรด จากนั้นจึงกำหนดรายละเอียดคำสั่งซื้อขายโดยอิงจากราคาตลาดจริง ได้แก่ เวลาที่ส่งคำสั่ง ประเภทคำสั่ง แหล่งที่มาของเงื่อนไขกระตุ้น (trigger source) ระดับราคาที่ยอมรับได้ จุดออก (exit) ขนาดคำสั่ง การจัดการกับช่องว่างราคา (gap handling) และต้นทุนต่างๆ หากคำสั่งนั้นเป็นคำสั่ง Stop ที่ระดับราคาต่ำสุดของ HA (HA low) ให้แปลงแนวคิดดังกล่าวเป็นกฎที่อิงกับราคาดิบที่ซื้อขายได้จริง แทนที่จะสมมติว่าระดับราคาแบบสังเคราะห์นั้นมีอยู่จริงในตลาด เปรียบเทียบกลยุทธ์นี้กับการส่งคำสั่งซื้อขายตามราคา OHLC ปกติและเกณฑ์มาตรฐาน (baseline) ที่เหมาะสมในช่วงเวลาเดียวกัน พร้อมทั้งใช้วิธีการประเมินแบบ holdout (แยกข้อมูลทดสอบตามลำดับเวลา) หรือ walk-forward สำหรับการตัดสินใจต่างๆ ในระหว่างการพัฒนากลยุทธ์ ทั้งนี้ กราฟที่ดูเรียบเนียนกว่าไม่ได้เป็นเครื่องยืนยันถึงการส่งคำสั่งซื้อขายที่ดีกว่าหรือผลการดำเนินงานในอนาคตที่ดีกว่าเสมอไป
คำถามที่พบบ่อย
Q1ราคา Heikin-Ashi ถือเป็นราคาจริงหรือไม่?
ไม่ ค่า OHLC ของ HA นั้นคำนวณมาจากแท่งเทียนปกติและสถานะของ HA ก่อนหน้า โดยราคาตลาดมาตรฐานยังคงเป็นเกณฑ์หลักในการตัดสินว่าคำสั่งซื้อขายจะสามารถจับคู่ได้หรือไม่
Q2ฉันสามารถตั้งคำสั่ง Stop ที่ระดับราคา Low ของ Heikin-Ashi ได้หรือไม่?
คุณสามารถเขียนกลยุทธ์ที่อ้างอิงค่าดังกล่าวได้ แต่ระดับราคา Low ของ HA อาจไม่ใช่ราคาที่มีการซื้อขายจริง ดังนั้นควรระบุจุด Stop และเงื่อนไขการทำงาน (trigger) โดยใช้ราคาจริง พร้อมทั้งจำลองสถานการณ์เรื่องช่องว่างของราคา (gaps) และการจับคู่คำสั่งซื้อขาย
Q3การใช้ราคา OHLC มาตรฐานสำหรับการจับคู่คำสั่งช่วยขจัดอคติ (bias) ทั้งหมดในการทดสอบย้อนหลังด้วย Heikin-Ashi หรือไม่?
ไม่ แม้ว่าจะสามารถเปลี่ยนการจำลองการจับคู่คำสั่งให้เป็นราคา OHLC มาตรฐานได้ในกลยุทธ์ HA ที่รองรับ แต่สัญญาณซื้อขายอาจยังคงใช้ค่า HA ที่ถูกสร้างขึ้นใหม่ (synthetic HA values) อยู่ นอกจากนี้ วิธีนี้ยังไม่สามารถยืนยันผลการดำเนินงานในอนาคตหรือสะท้อนต้นทุนที่เกิดขึ้นจริงได้
แหล่งข้อมูลและการอ่านเพิ่มเติม
รายงานปัญหา
เราจะเตรียมอีเมลพร้อมลิงก์บทความนี้ Mark จะได้รับรายงานเมื่อคุณส่งอีเมลแล้วเท่านั้น
ตรวจสอบอย่างรวดเร็ว
อ่านคู่มือจบแล้ว ลองตอบคำถาม 3 ข้อ
คำถาม 01
ราคาปิดของ Heikin-Ashi ในปัจจุบันมีวิธีการคำนวณอย่างไร?
เลือกคำตอบเพื่อดูคำอธิบาย
อภิธานศัพท์ออปชัน
คำจำกัดความที่ชัดเจนของคำสำคัญ ตั้งแต่ call, put และตารางออปชัน ไปจนถึง IV กรีก ดอกเบี้ยคงค้าง และ max pain
ดูอภิธานศัพท์ออปชัน