LearnForexHub
EA

EA: Stochastic RSI Reversal Expert Advisor

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

อินดิเคเตอร์วาดเส้นแล้วรอให้คุณตัดสินใจ ส่วน Expert Advisor ตัดสินใจเองแล้วส่งออร์เดอร์ ความต่างนั้นคือเหตุผลทั้งหมดที่ EA ตัวนี้เข้มงวดกว่าอินดิเคเตอร์ Stochastic RSI ที่มันสร้างขึ้นมาจาก คนที่นั่งดู oscillator ที่เร็วสามารถเมินค่าที่ดูไร้สาระได้ แต่ซอฟต์แวร์ทำไม่ได้ กฎที่มันใช้จึงต้องแคบพอที่ทุกสัญญาณที่มันสร้างจะเป็นสัญญาณที่ควรรับ: EA ตัวนี้รอให้ %K ตัด %D ขณะที่ oscillator ยังอยู่ภายใน โซน Oversold หรือ Overbought เปิดโพซิชันเดียวพร้อม Stop Loss และ Take Profit ที่มาจากความผันผวนปัจจุบัน แล้วปล่อยการเทรดนั้นไว้เฉยๆ

กลยุทธ์ทำงานอย่างไร

กลยุทธ์นี้มีสัญญาณเดียวและไม่มีตัวกรองเทรนด์ ในทุกแท่งที่ปิดสมบูรณ์ EA จะคำนวณ Stochastic RSI ใหม่ทั้งหมดตั้งแต่ต้น — เส้น raw การ smooth เป็น %K และเส้นสัญญาณ %D — แล้วเปรียบเทียบสองแท่งล่าสุดเพื่อหาการตัดกัน

การตัดกันเพียงอย่างเดียวยังไม่พอ EA ยังตรวจด้วยว่าการตัดกันนั้นเกิด ตรงไหน การตัดขึ้นที่ค่า 55 คือ oscillator เดินเล่นอยู่กลาง range และถูกเมินไปทั้งหมด ส่วนการตัดแบบเดียวกันที่ค่า 12 คือการหันกลับจากก้น range ล่าสุดของ RSI เอง และนั่นคือเวอร์ชันเดียวที่ EA เทรด ฝั่ง Overbought เป็นภาพสะท้อนเป๊ะๆ เพราะ Stochastic RSI แปะติดที่ 0 และ 100 เป็นช่วงยาว เงื่อนไขเรื่องตำแหน่งนี้จึงทำหน้าที่กรองเป็นส่วนใหญ่ — ถ้าไม่มีมัน กลยุทธ์นี้จะเข้าเทรดประมาณทุกๆ ไม่กี่แท่ง

ทุกอย่างประเมินจากแท่งที่ปิดแล้วเท่านั้น ค่าที่ shift 1 เป็นค่าสุดท้ายที่แน่นอน ส่วนค่าบนแท่งที่กำลังก่อตัวไม่ใช่ และ EA ที่ลงมือกับมันจะเปิดและปิดโพซิชันไปเรื่อยๆ ตามที่แท่งเทียนเปลี่ยนใจ

Stop Loss, Take Profit และขนาดโพซิชัน

PriceTake Profit (TP)Stop Loss (SL)BUY8020Stochastic RSI (RSI 14, Stoch 14, %K 3, %D 3 — bounded 0–100)%K%D
Entry conditions: BUY when %K crosses above %D inside the oversold zone — SELL on the mirrored cross inside overbought — SL and TP are placed automatically from ATR

ระยะ Stop Loss เท่ากับ ATRMultiplier × ATR — ค่าเริ่มต้นคือสองเท่าของ ATR period 14 — และ Take Profit เท่ากับ RiskRewardRatio × ระยะ Stop Loss ซึ่งเริ่มต้นที่ 2.0 ทั้งสองค่าคำนวณ ณ เวลาเข้าเทรดจาก ATR ของแท่งที่เพิ่งปิด ดังนั้นการเทรดที่เปิดในช่วง session เอเชียที่เงียบจะได้ stop ที่แคบกว่าการเทรดที่เปิดเข้าสู่ช่วงเปิดลอนดอนที่ผันผวน และทั้งคู่เสี่ยงเงินเท่ากัน

ส่วนหลังนั่นคือเหตุผลของการจับคู่ stop แบบ ATR เข้ากับการคำนวณขนาดตามความเสี่ยงแทนที่จะใช้ lot คงที่ ขนาด lot มาจาก RiskPercent ของยอดเงินในบัญชี หารด้วยระยะ stop ที่วัดเป็น tick แล้วคูณด้วยมูลค่าต่อ tick — เป็นการคำนวณทีละขั้นตามที่สอนไว้ใน พื้นฐานการบริหารความเสี่ยง จากนั้นปรับให้เข้ากับข้อจำกัดขั้นต่ำ ขั้นสูง และ step ของ broker ตามที่อธิบายใน ทำความเข้าใจขนาด Lot ระยะ stop จาก ATR ที่กว้างขึ้นจะให้โพซิชันที่เล็กลงโดยอัตโนมัติ ความผันผวนที่กว้างขึ้นจึงเปลี่ยนรูปร่างของการเทรด แต่ไม่เปลี่ยนขนาดของการขาดทุน ส่วน UseFixedLot ปิดการคำนวณนี้สำหรับคนที่ชอบใช้ lot คงที่

EA ตัวนี้ไม่ขยับ stop หลังเข้าเทรด มันไม่มีขั้น Break-Even และไม่มีการ trail ดังนั้นทุกการเทรดจะจบที่หนึ่งในสองระดับที่ตั้งไว้ตอนเข้า — เป็นการเลือกโดยตั้งใจเพื่อให้สถิติของกลยุทธ์สะอาด แม้ว่าใครที่แก้ไข source code จะพบว่า Trailing Stop คือส่วนขยายแรกที่ชัดเจนที่สุด

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

  • BUY — บนแท่งที่เพิ่งปิด %K ตัดขึ้นเหนือ %D และ %K ของแท่งก่อนหน้าอยู่ต่ำกว่า OversoldLevel (ค่าเริ่มต้น 20)
  • SELL — บนแท่งที่เพิ่งปิด %K ตัดลงใต้ %D และ %K ของแท่งก่อนหน้าอยู่สูงกว่า OverboughtLevel (ค่าเริ่มต้น 80)

กลไกความปลอดภัยสี่อย่างควบคุมทุกการเทรด ตรงตามมาตรฐานที่ใช้กับทุก EA บนเว็บนี้ ตรรกะการเข้าเทรดทำงานครั้งเดียวต่อแท่งใหม่ โดยติดตามจากเวลาเปิดของแท่ง แท่งที่เข้าเงื่อนไขหนึ่งแท่งจึงยิงซ้ำไม่ได้เมื่อ tick ไหลเข้ามา มีโพซิชันเปิดได้ครั้งละหนึ่งเท่านั้น ตรวจด้วยการนับการเทรดที่กรองด้วย symbol และ magic number ของ EA ตัวนี้ — ไม่มีการทบและไม่มีการถัวเฉลี่ยขาดทุน spread ปัจจุบันถูกเทียบกับ MaxSpreadPoints (ค่าเริ่มต้น 30) ก่อนส่งออร์เดอร์ใดๆ การเข้าเทรดจึงถูกข้ามในสภาวะที่สภาพคล่องต่ำซึ่งจะได้ราคาแย่ และทุกออร์เดอร์ถูกติดป้ายด้วย MagicNumber (ค่าเริ่มต้น 20260911) ซึ่งหมายความว่าตรรกะการนับและการจัดการของ EA จะไม่เห็นและไม่แตะโพซิชันที่คุณเปิดเองหรือที่เป็นของ EA ตัวอื่นบนบัญชีเดียวกัน

Parameters

  • RSIPeriod (ค่าเริ่มต้น 14) — period ที่มองย้อนกลับไปของ RSI ที่ oscillator นี้สร้างขึ้นมาจาก
  • StochPeriod (ค่าเริ่มต้น 14) — หน้าต่างที่ใช้วัด range สูงสุด-ต่ำสุดของ RSI เอง การลดค่านี้ทำให้ค่าสุดขั้วเกิดบ่อยขึ้นมากและ EA เทรดถี่ขึ้นมาก การเพิ่มไปทาง 21 ให้ผลตรงกันข้าม
  • SlowingPeriod (ค่าเริ่มต้น 3) — การ smooth ที่เปลี่ยนเส้น raw ให้เป็น %K ค่าที่สูงกว่า 5 ทำให้การตัดกันเกิดน้อยลงและช้าลงอย่างเห็นได้ชัด
  • SignalPeriod (ค่าเริ่มต้น 3) — moving average ของ %K ที่กลายเป็น %D และจึงเป็นเส้นที่ใช้วัดการตัดกัน
  • OversoldLevel (ค่าเริ่มต้น 20) — BUY ต้องการให้ %K ของแท่งก่อนหน้าอยู่ต่ำกว่าค่านี้ การบีบเป็น 10 เรียกร้องจุดสุดขั้วที่ลึกกว่าและลดความถี่ในการเทรดลงอย่างมาก
  • OverboughtLevel (ค่าเริ่มต้น 80) — เงื่อนไขภาพสะท้อนสำหรับการเข้า SELL

input ที่เหลือไม่ได้เฉพาะเจาะจงกับกลยุทธ์นี้ — มันเป็นของ risk engine ที่ใช้ร่วมกันทั้งชุด EA และอธิบายไว้ที่เดียวบน หน้ารวม EA EA ตัวนี้ระบุการเทรดของตัวเองด้วย magic number 20260911

ทำไมการตัดกันต้องเกิดภายในโซน

เงื่อนไขเรื่องโซนคือความต่างระหว่างกลยุทธ์กับเครื่องยิงสัญญาณ และควรเข้าใจเหตุผลมากกว่าจะเชื่อตามๆ กันไป

Stochastic RSI สร้างการตัดกันของ %K กับ %D อยู่ตลอดเวลา เพราะ %K คือค่าเฉลี่ยสามแท่งของเส้นที่แกว่งเต็ม range 0-100 จากการเคลื่อนไหวเล็กๆ การตัดกันส่วนใหญ่เกิดกลาง range และไม่มีความหมายอะไร — มันคือ oscillator ที่ตอบสนองต่อ RSI ที่ไหลไปสองสามจุดภายในหน้าต่างที่เงียบ การกรองด้วยตำแหน่งตัดทั้งหมวดนั้นทิ้งไป สิ่งที่เหลือคือการตัดกันที่เกิดหลังจาก RSI ไปถึงก้นหรือยอดของ range ล่าสุดจริงๆ ซึ่งอย่างน้อยก็เป็นสภาวะที่ควรค่าแก่การลงมือ

มันมีราคาที่ต้องจ่าย การบังคับให้ค่าต้องต่ำกว่า 20 แปลว่า EA ซื้อตลาดที่กำลังลงและขายตลาดที่กำลังขึ้นอย่างเป็นระบบ โดยไม่ตรวจเลยว่าการลงหรือการขึ้นนั้นมีแนวโน้มจะไปต่อหรือไม่ ในเทรนด์ที่ต่อเนื่อง oscillator จะแปะติดที่จุดสุดขั้วและสร้างการตัดกันสวนทางกับการเคลื่อนไหวครั้งแล้วครั้งเล่า และ EA ก็จะรับมันทั้งหมด นี่คือจุดอ่อนเชิงโครงสร้างที่รู้กันดีของระบบสวนเทรนด์ที่ไม่มีตัวกรองทุกตัว และมันถูกทิ้งไว้โดยตั้งใจเพื่อให้ไฟล์นี้อ่านเป็น reference implementation ที่สะอาด เทรดเดอร์ที่ต้องการเวอร์ชันที่มีตัวกรองมีทางเลือกตรงไปตรงมาสามทาง: รันบน timeframe ที่สูงขึ้นซึ่งจุดสุดขั้วหายากกว่า บีบระดับเป็น 10 และ 90 หรือตรวจ โครงสร้างตลาด ของคู่เงินนั้นเอง แล้วเปิด EnableTrading ไว้เฉพาะตอนที่คู่เงินนั้นเป็น range จริงๆ

ข้อควรระวัง

รันตัวนี้บนบัญชี demo ก่อน ทดลองหลายคู่เงินและทั้งช่วงเงียบและช่วงผันผวน ก่อนที่จะมีเงินจริงเข้ามาเกี่ยวข้อง — backtest ที่ดีหรือเดือน demo ที่ดีเป็นหลักฐานเกี่ยวกับอดีตเท่านั้น ไม่ใช่มากกว่านั้น EA ตัวนี้จะขาดทุนในการเทรดแต่ละครั้ง และเพราะมันเทรดสวนการเคลื่อนไหวที่กำลังเกิดขึ้นโดยไม่มีตัวกรองเทรนด์ มันจะขาดทุนติดกันหลายครั้งระหว่างการวิ่งทิศทางเดียวที่แข็งแรง นั่นคือกลยุทธ์ที่ทำงานตามที่ออกแบบไว้ ไม่ใช่ข้อผิดพลาดของโค้ด Stochastic RSI ยังเป็น oscillator ที่เร็วที่สุดและมี noise มากที่สุดบนเว็บนี้ ดังนั้นให้คาดหวังจำนวนการเทรดที่สูงกว่ากลยุทธ์ RSI ที่เทียบเคียงกันอย่างมีนัยสำคัญ พร้อมกับความได้เปรียบเฉลี่ยต่อการเทรดที่เล็กลงตามไปด้วย ทั้งไฟล์ MT4 และ MT5 ด้านล่างเป็น source code: อ่านให้ครบ เข้าใจว่าแต่ละ parameter ทำอะไร และทำให้ตัวเองมั่นใจในตรรกะของมัน ก่อนแนบตัวนี้กับบัญชีจริงใดๆ ไม่มีอะไรในหน้านี้เป็นคำแนะนำการลงทุนส่วนบุคคล — มันคือการให้ความรู้ทั่วไปว่าเครื่องมือนี้ทำงานอย่างไร

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

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

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

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

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

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

วิธีติดตั้ง

EA ติดตั้งลงโฟลเดอร์ Experts ไม่ใช่ Indicators — เป็นขั้นตอนที่คนพลาดบ่อยที่สุด

MetaTrader 4

  1. ดาวน์โหลดไฟล์ stochastic-rsi-reversal-ea.mq4 ด้านบน
  2. เปิด MetaTrader 4FileOpen Data Folder
  3. นำไฟล์ไปวางในโฟลเดอร์ MQL4/Experts
  4. รีสตาร์ท MetaTrader 4 จากนั้นลากจากหน้าต่าง Navigator ไปวางบนกราฟ
  5. เปิด AutoTrading (MT4) หรือ Algo Trading (MT5) ใน toolbar — EA จะไม่เปิดออร์เดอร์ใด ๆ ขณะที่ปิดอยู่ แม้จะแนบบนกราฟแล้วก็ตาม
  6. ตรวจสอบและปรับค่า input parameter ใน settings dialog ก่อนยืนยัน

MetaTrader 5

  1. ดาวน์โหลดไฟล์ stochastic-rsi-reversal-ea.mq5 ด้านบน
  2. เปิด MetaTrader 5FileOpen Data Folder
  3. นำไฟล์ไปวางในโฟลเดอร์ MQL5/Experts
  4. รีสตาร์ท MetaTrader 5 จากนั้นลากจากหน้าต่าง Navigator ไปวางบนกราฟ
  5. เปิด AutoTrading (MT4) หรือ Algo Trading (MT5) ใน toolbar — EA จะไม่เปิดออร์เดอร์ใด ๆ ขณะที่ปิดอยู่ แม้จะแนบบนกราฟแล้วก็ตาม
  6. ตรวจสอบและปรับค่า input parameter ใน settings dialog ก่อนยืนยัน

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

บทเรียนที่เกี่ยวข้อง

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

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

Stochastic RSI วัดว่า RSI อยู่ตรงไหนใน range ของตัวเองอย่างไร ทำไมมันถึงแปะติดที่ 0 และ 100 สัญญาณตัดกันของ %K/%D ที่ทำให้มันเทรดได้ และมันต่างจาก RSI กับ Stochastic ธรรมดาอย่างไร พร้อมอินดิเคเตอร์แจ้งเตือน MT4 และ MT5 ฟรี

ดาวน์โหลดได้ · MetaTrader 4 / MetaTrader 5
อินดิเคเตอร์

อินดิเคเตอร์: ATR คืออะไร? ตั้ง Stop Loss ให้เข้ากับความผันผวน

วัดว่าราคาเคลื่อนไหวจริงมากแค่ไหน แล้วนำไปใช้กำหนด Stop Loss และขนาดโพซิชัน พร้อมไฟล์ MT4/MT5

ดาวน์โหลดได้ · MetaTrader 4 / MetaTrader 5
พื้นฐาน

พื้นฐานการบริหารความเสี่ยง: ขนาดล็อต, Stop Loss, Risk:Reward

หลักการบริหารความเสี่ยงที่ช่วยให้อยู่รอดในตลาดได้ในระยะยาว ก่อนไปศึกษาเรื่องอินดิเคเตอร์