LearnForexHub
อินดิเคเตอร์

Stochastic RSI: oscillator ที่สร้างบน oscillator อีกตัว

เขียนโดย , ผู้ก่อตั้งและบรรณาธิการอัปเดตล่าสุด วิธีที่เราเขียนและตรวจทานบทเรียน

Tushar Chande และ Stanley Kroll เผยแพร่ Stochastic RSI ในปี 1994 เพื่อแก้ข้อร้องเรียนที่เทรดเดอร์พูดถึง RSI มาเป็นสิบปี: บนคู่เงินหลายคู่ ในหลายสภาวะ มันไม่เคยไปถึง 70 หรือ 30 เลย ตลาดสามารถไหลลงเรื่อยๆ เป็นสัปดาห์โดยที่ RSI แกว่งอยู่อย่างสุภาพระหว่าง 40 ถึง 60 ไม่สร้างสัญญาณอะไรเลย ทั้งที่การแกว่งจริงๆ เทรดได้สบายมาก วิธีแก้ของพวกเขาไม่ใช่การเปลี่ยน RSI แต่เป็นการวัดมันด้วยวิธีใหม่ — แทนที่จะถามว่า "RSI สูงในเชิงสัมบูรณ์หรือไม่" ให้ถามว่า "ตอนนี้ RSI อยู่ตรงไหนเมื่อเทียบกับ range ของตัวมันเองเมื่อเร็วๆ นี้" การเปลี่ยนกรอบคิดนั้นคืออินดิเคเตอร์ทั้งตัว และมันเปลี่ยนเส้นที่แทบไม่เคยไปถึงจุดสุดขั้วให้กลายเป็นเส้นที่ไปถึงตลอดเวลา

Stochastic RSI คำนวณอย่างไร

ใช้สูตร Stochastic มาตรฐาน แต่ป้อนค่า RSI เข้าไปแทนราคา:

  • Raw StochRSI = 100 × (RSI − RSI ต่ำสุดในช่วง n) / (RSI สูงสุดในช่วง n − RSI ต่ำสุดในช่วง n)
  • %K = simple moving average ของเส้น raw ตลอด SlowingPeriod แท่ง
  • %D = simple moving average ของ %K ตลอด SignalPeriod แท่ง

ด้วยค่ามาตรฐาน 14 / 14 / 3 / 3 เส้น raw ตอบคำถามว่า "จาก range ที่ RSI ครอบคลุมใน 14 แท่งที่ผ่านมา ตอนนี้มันอยู่ที่สัดส่วนเท่าไหร่" ค่า 0 ไม่ได้แปลว่า RSI อยู่ที่ 0 — มันแปลว่า RSI อยู่ที่ค่า ต่ำที่สุด ที่มันพิมพ์ออกมาในสิบสี่แท่ง ไม่ว่าค่านั้นจะเป็นเท่าไหร่ก็ตาม ถ้า RSI ใช้เวลาสองสัปดาห์อยู่ระหว่าง 41 ถึง 58 ค่า Stochastic RSI เท่ากับ 0 ก็ตรงกับ RSI ที่ 41 ซึ่งไม่มีกฎ Overbought/Oversold ข้อไหนจะจับได้

เส้น raw หยักเกินกว่าจะเทรดได้ นั่นคือเหตุผลที่มีการ smooth สองขั้น %K คือเส้นที่คุณเฝ้าดู ส่วน %D คือเส้นอ้างอิงที่ช้ากว่าซึ่ง %K ตัดผ่าน MetaTrader ทั้งสอง version ไม่มี Stochastic RSI ในตัว ดังนั้น stochastic-rsi-alert.mq4/.mq5 จึงคำนวณทั้งสามขั้นเอง — ไฟล์ MT4 อ่านค่าจาก iRSI โดยตรง ส่วนไฟล์ MT5 ดึงชุดข้อมูลเดียวกันออกจาก handle ของ RSI ด้วย CopyBuffer

เงื่อนไขการเข้าเทรด

PriceBUYSELL8020Stochastic RSI (RSI 14, Stoch 14, %K 3, %D 3 — bounded 0–100)%K%D
Entry conditions: BUY when %K crosses above %D below 20 — SELL when %K crosses below %D above 80

เพราะอินดิเคเตอร์ตัวนี้ใช้เวลาอยู่ที่จุดสุดขั้วนานมาก กฎง่ายๆ แบบซื้อเมื่อต่ำกว่า 20 ขายเมื่อสูงกว่า 80 จึงยิงสัญญาณแทบไม่หยุดและแทบไม่มีค่าเลย สัญญาณที่ไฟล์ในหน้านี้แจ้งเตือนเพิ่มเงื่อนไขที่สองเข้ามา: การตัดกันของ %K กับ %D ที่เกิดขึ้นภายในโซน BUY เมื่อ %K ตัดขึ้นเหนือ %D ขณะที่ %K ยังอยู่ต่ำกว่า 20 และ SELL เมื่อ %K ตัดลงใต้ %D ขณะที่ยังอยู่สูงกว่า 80

การจับคู่แบบนี้คือสิ่งที่ทำให้อินดิเคเตอร์ตัวนี้ใช้งานได้ การอยู่ต่ำกว่า 20 บอกว่า RSI อยู่ก้น range ล่าสุดของมัน — เป็นสภาวะ ไม่ใช่เหตุการณ์ ส่วนการตัดกันคือเหตุการณ์: การที่ %K หันขึ้นผ่านค่าเฉลี่ยของตัวเองคือสัญญาณแรกที่วัดได้ว่าแรงกดดันขาลงหยุดแล้ว การบังคับให้มีทั้งสองอย่างหมายความว่าคุณลงมือกับการหันกลับที่เกิดขึ้นในที่ที่มีความหมาย แทนที่จะลงมือกับระดับที่ตลาดในเทรนด์สามารถนั่งแช่อยู่ได้ยี่สิบแท่ง

ทำไมเส้นถึงแปะติดที่ 0 และ 100

ผู้ใช้ใหม่มักคิดว่า Stochastic RSI ที่แปะติดอยู่ที่ 100 แปลว่าอินดิเคเตอร์เสีย มันไม่เสีย — มันทำงานตามที่ออกแบบไว้ และการเข้าใจว่าทำไมช่วยป้องกันความผิดพลาดส่วนใหญ่ที่เกิดกับมัน

ตัวหารคือ range สูงสุด-ต่ำสุดของ RSI เองตลอดช่วงที่มองย้อนกลับไป ระหว่างเทรนด์ที่เดินสม่ำเสมอ RSI ของทุกแท่งจะเป็นค่าสูงสุด (หรือต่ำสุด) ของหน้าต่างนั้น ตัวเศษจึงเท่ากับตัวหารพอดี และผลลัพธ์คือ 100 (หรือ 0) เป๊ะ เส้นจะอยู่ตรงนั้นจนกว่า RSI จะพิมพ์ค่าที่ ไม่ใช่ จุดสุดขั้วใหม่ พูดอีกแบบ Stochastic RSI ที่แปะติดคือลายเซ็นของเทรนด์ที่ยังไม่ถูกขัดจังหวะ และช่วงเวลาที่มันหลุดออกมาคือข้อมูลของจริง

เรื่องนี้ยังอธิบายชื่อเสียงเรื่อง noise ของมันด้วย เพราะตัวหารหดลงทุกครั้งที่ RSI เงียบ การเคลื่อนไหวเล็กๆ ของ RSI ในตลาดที่นิ่งจึงสร้างการแกว่งมหาศาลในผลลัพธ์ การขยับ RSI สองจุดภายใน range สามจุดทำให้ Stochastic RSI ขยับ 67 จุด อินดิเคเตอร์ตัวนี้ไม่ได้วัดขนาดของอะไรทั้งสิ้น — วัดแค่ตำแหน่งภายใน range ดังนั้นหน้าตาที่ดูดราม่าของมันจึงไม่ใช่หลักฐานว่าตลาดกำลังดราม่า

Stochastic RSI เทียบกับ RSI และ Stochastic

ทั้งสามตัวสับสนกันง่ายและมีพฤติกรรมต่างกันมาก RSI วัดอัตราส่วนของค่าเฉลี่ยการปิดขึ้นต่อค่าเฉลี่ยการปิดลง แล้วรายงานระดับโมเมนตัมในเชิงสัมบูรณ์ มันช้า เนียน และค่า 70/30 ของมันค่อนข้างหายากและค่อนข้างมีความหมาย Stochastic วัดว่าราคาปิดอยู่ตรงไหนใน range สูงสุด-ต่ำสุดของราคาในช่วงนั้น — ความสัมพัทธ์หนึ่งชั้น ใช้กับราคา ส่วน Stochastic RSI ใช้ความสัมพัทธ์แบบเดียวกันนั้นกับ RSI มันจึงห่างจากราคาไปสองชั้น และมันก็แสดงออกให้เห็น

สิ่งที่ต้องแลกในทางปฏิบัติคือความไวแลกกับความน่าเชื่อถือ Stochastic RSI สร้างสัญญาณมากกว่ามากและสร้างเร็วกว่า ส่วน RSI สร้างน้อยกว่าและช้ากว่าแต่มีสัญญาณหลอกน้อยกว่า ถ้ากลยุทธ์ต้องการสัญญาณเตือนล่วงหน้าเพื่อเตรียมการเทรด Stochastic RSI คือเครื่องมือที่ดีกว่า ถ้าต้องการตัวกรองที่กันไม่ให้เข้าเทรดแย่ๆ RSI คือคำตอบ เทรดเดอร์ที่มีประสบการณ์หลายคนใช้ทั้งสองตัว: RSI นิยามสภาพแวดล้อม และ Stochastic RSI จับจังหวะเข้าเทรดภายในสภาพแวดล้อมนั้น

Parameters

  • RSIPeriod (ค่าเริ่มต้น 14) — period ที่มองย้อนกลับไปของ RSI ที่เป็นฐาน การลดค่านี้ทำให้อินดิเคเตอร์ทั้งตัวเร็วขึ้นตั้งแต่ระดับรากฐาน เทรดเดอร์ส่วนใหญ่ปล่อยไว้ที่ 14 แล้วไปปรับชั้น stochastic แทน
  • StochPeriod (ค่าเริ่มต้น 14) — หน้าต่างที่ใช้วัด range สูงสุด-ต่ำสุดของ RSI นี่คือ parameter ที่ควบคุมว่าเส้นจะไปถึงจุดสุดขั้วบ่อยแค่ไหน: หน้าต่างที่สั้นกว่าหมายถึง range ที่แคบกว่า ซึ่งหมายถึงค่า 0 และ 100 ที่มากขึ้น
  • SlowingPeriod (ค่าเริ่มต้น 3) — การ smooth ที่ใช้กับเส้น raw เพื่อสร้าง %K การเพิ่มเป็น 5 ลดความหยักลงอย่างเห็นได้ชัด โดยแลกกับความล่าช้าหนึ่งถึงสองแท่ง
  • SignalPeriod (ค่าเริ่มต้น 3) — moving average ของ %K ที่กลายเป็น %D เส้นสัญญาณที่ยาวกว่าหมายถึงการตัดกันที่เกิดน้อยลงและช้าลง
  • OversoldLevel / OverboughtLevel (ค่าเริ่มต้น 20 / 80) — โซนที่การตัดกันต้องเกิดขึ้นภายในจึงจะแจ้งเตือน การบีบเป็น 10 / 90 ทำให้สัญญาณหายากขึ้นและคัดกรองมากขึ้นอย่างมาก
  • EnableAlert / EnablePush — เปิด/ปิดการแจ้งเตือนบนหน้าจอและ push notification บนมือถือแยกจากกัน

วิธีที่เทรดเดอร์ใช้ Stochastic RSI ร่วมกับเครื่องมืออื่น

ถ้าใช้เดี่ยวๆ อินดิเคเตอร์ตัวนี้จะสู้กับเทรนด์ เพราะในเทรนด์มันจะส่งสัญญาณการกลับตัวที่ไม่เคยมาจริงซ้ำแล้วซ้ำอีก วิธีแก้มาตรฐานคือตัวกรองทิศทางที่ลดบทบาทมันเหลือเป็นเครื่องมือจับจังหวะทางเดียว: เมื่อราคาอยู่เหนือ Moving Average เส้นยาว หรือเมื่อ ADX แสดงว่ามีเทรนด์อยู่ ให้รับเฉพาะการตัดขึ้นฝั่งขาขึ้น และถือว่าการตัดลงเป็นเพียง noise ข้อจำกัดข้อเดียวนั้นตัดสัญญาณที่ขาดทุนส่วนใหญ่ของอินดิเคเตอร์ตัวนี้ออกไป

มันยังเข้าคู่ได้ดีกับ divergence — เพราะมันไปถึงจุดสุดขั้วได้ง่าย จุดต่ำที่สูงขึ้นและจุดสูงที่ต่ำลงซึ่งนิยาม divergence จึงเห็นได้ชัดบนมัน — และกับ การวิเคราะห์หลาย timeframe ที่ค่าบน H4 กำหนดทิศทางและการตัดกันบน M15 กำหนดจุดเข้า สำหรับเวอร์ชันที่เป็นกลไกล้วนของกฎการตัดกันนี้ พร้อม stop จาก ATR และการคำนวณขนาดโพซิชัน ดูที่ Stochastic RSI Reversal EA

ข้อควรระวัง

ทุกคำวิจารณ์ที่คนมีต่อ oscillator ใช้ได้กับตัวนี้เป็นสองเท่า เพราะมันคือ oscillator ที่สร้างบน oscillator อีกที มันเร็วและมี noise มาก และในเทรนด์ที่แข็งแรงมันจะสร้างสัญญาณสวนเทรนด์เป็นชุดที่ผิดทั้งหมดตลอดเวลาที่เทรนด์ยังอยู่ ค่าในโซนก็กำกวมจริงๆ ในแบบที่ค่าของ RSI ไม่เป็น: 0 อาจหมายถึงการเทขายที่หมดแรงและกำลังจะเด้ง หรือเทรนด์ขาลงที่เป็นระเบียบซึ่งทำจุดต่ำใหม่ทุกแท่ง และตัวอินดิเคเตอร์เองบอกไม่ได้ว่าเป็นแบบไหน ไม่มีอะไรในนี้ที่ทดแทนความจำเป็นที่ต้องรู้ว่าตลาด เป็นเทรนด์หรือเป็น range ก่อนลงมือกับค่าที่อ่านได้ ถือว่ามันเป็นเครื่องมือจับจังหวะเข้าเทรดภายในกรอบที่มีทิศทางอยู่แล้ว ไม่ใช่ระบบกลับตัวเดี่ยวๆ

ดาวน์โหลดอินดิเคเตอร์

custom indicator นี้พล็อต Stochastic RSI เป็นเส้น %K และ %D ในหน้าต่างแยกพร้อมระดับ 20/50/80 และแจ้งเตือนเมื่อทั้งสองเส้นตัดกันภายในโซน Oversold หรือ Overbought มีให้ทั้งสำหรับ MetaTrader 4 และ MetaTrader 5 ด้านล่าง

ดาวน์โหลด stochastic-rsi-alert.mq4

สำหรับ MetaTrader 4 — นี่คือ source code (.mq4) เปิดและตรวจสอบให้ครบถ้วนก่อนใช้งาน

ดาวน์โหลดไฟล์

ดาวน์โหลด stochastic-rsi-alert.mq5

สำหรับ MetaTrader 5 — นี่คือ source code (.mq5) เปิดและตรวจสอบให้ครบถ้วนก่อนใช้งาน

ดาวน์โหลดไฟล์

วิธีติดตั้ง

MetaTrader 4

  1. ดาวน์โหลดไฟล์ stochastic-rsi-alert.mq4 ด้านบน
  2. เปิด MetaTrader 4FileOpen Data Folder
  3. นำไฟล์ไปวางในโฟลเดอร์ MQL4/Indicators
  4. รีสตาร์ท MetaTrader 4 จากนั้นลากจากหน้าต่าง Navigator ไปวางบนกราฟ

MetaTrader 5

  1. ดาวน์โหลดไฟล์ stochastic-rsi-alert.mq5 ด้านบน
  2. เปิด MetaTrader 5FileOpen Data Folder
  3. นำไฟล์ไปวางในโฟลเดอร์ MQL5/Indicators
  4. รีสตาร์ท MetaTrader 5 จากนั้นลากจากหน้าต่าง Navigator ไปวางบนกราฟ

ทั้งสองไฟล์เป็นซอร์สโค้ด เปิดอ่านใน MetaEditor ก่อนนำไปรันกับบัญชีใด ๆ เสมอ