หน้าแรก การเทรดด้วยระบบ โพสต์

การใช้ RSI หรือ MFI ในการเทรดด้วย EA ที่ปรับตัวเองได้สำหรับ MetaTrader 4

ไฟล์แนบ
19392.zip (4.86 KB, ดาวน์โหลด 1 ครั้ง)

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

มีการตั้งค่ามากมายที่ระบุไว้สำหรับหุ่นยนต์นี้ ผมได้รวมฟีเจอร์เสริมที่ผมชอบเล่นด้วย มาเพลิดเพลินกันนะครับ

การตั้งค่า (Inputs)

  • magic = 4376 - หมายเลขเฉพาะสำหรับ EA นี้
  • optimizingPeriods = 144 - ช่วงเวลาสำหรับการปรับแต่ง (แท่ง) นี่คือจำนวนแท่งที่คุณต้องการให้การปรับแต่งทำงาน ยกตัวอย่างเช่น หากคุณใช้กราฟแบบรายชั่วโมงและเลือก 144 หุ่นยนต์จะมองย้อนกลับไป 144 ชั่วโมง ซึ่งเท่ากับหกวัน
  • inAggressive = false - ทำให้ EA มีความเสี่ยงมากขึ้น? โหมดนี้จะทำให้ EA ทำการเทรดในลักษณะที่ก้าวร้าวมากขึ้น แทนที่จะรอให้เกิดการตัดกันของระดับ overbought หรือ oversold ในโหมดก้าวร้าว หุ่นยนต์จะทำการซื้อหากการซื้อมีผลกำไรมากกว่าการขายในช่วงเวลาล่าสุด และในทางกลับกัน
  • inTradeReverse = false - การเทรดย้อนทิศทาง การเทรดย้อนทิศทางจะสลับทิศทางของการเทรดของคุณ
  • inOneOrderAtATime = true - เปิดคำสั่งเพียงคำสั่งเดียวในเวลาเดียวกัน? หากตั้งค่าเป็นจริง หุ่นยนต์จะมีคำสั่งเพียงคำสั่งเดียวในเวลาเดียวกัน หากตั้งค่าเป็นเท็จ จะเปิดคำสั่งได้ไม่จำกัดตามเงื่อนไขการเข้า
  • Lot_sizing_dynamic_invalidates_static - เพียงช่องว่างเพื่อแยกกลไกการตั้งค่าขนาดล็อตจากการตั้งค่าอื่น ๆ
  • Lots = 0.01 - ขนาดล็อตคงที่ของคำสั่ง ระบุขนาดล็อตสำหรับคำสั่งของคุณโดยใช้หมายเลขคงที่
  • inUseDynamicLotSize = true - ใช้ขนาดล็อตแบบไดนามิก เปิดใช้การตั้งค่าขนาดล็อตแบบไดนามิก ซึ่งจะใช้แทนขนาดล็อตคงที่ อย่างไรก็ตาม หากขนาดล็อตแบบไดนามิกไม่ถูกต้อง หุ่นยนต์จะใช้ขนาดล็อตคงที่
  • inPercentageOfRisk = 2 - เปอร์เซ็นต์ของยอดเงินที่เสี่ยงในการเทรดแต่ละครั้ง (2 = 2%) เมื่อใช้ขนาดล็อตแบบไดนามิก คุณจะระบุขนาดล็อตเป็นเปอร์เซ็นต์ของยอดเงินของคุณ 2 เท่ากับ 2 เปอร์เซ็นต์
  • Index_Indicator_Values - เพียงช่องว่างเพื่อแยกพารามิเตอร์ดัชนีจากการตั้งค่าอื่น ๆ
  • indicator index = _RSI_ - เลือกดัชนีที่ต้องการใช้ คุณสามารถเลือกได้ว่าจะใช้ดัชนีใด เช่น RSI หรือ MFI
  • IndicatorTopValue = 100 - ค่าที่สูงสุดที่คุณจะทำการเทรด นี่คือค่าที่คุณจะใช้ในการเทรดตามดัชนีที่คุณเลือก
  • IndicatorBottomValue = 0 - ค่าต่ำสุดที่คุณจะทำการเทรด ค่านี้คือค่าต่ำสุดที่คุณจะใช้ในการเทรดตามดัชนีที่คุณเลือก
  • IndyTimeframe = PERIOD_CURRENT - กรอบเวลาสำหรับดัชนี เลือกรูปแบบเวลาที่คุณต้องการใช้สำหรับดัชนีระหว่างการปรับแต่งและการเทรด
  • inIndyPeriods = 14 - ช่วงเวลาที่ใช้ในการเฉลี่ยสำหรับดัชนีและการคำนวณ ATR
  • IndyAppPrice = PRICE_CLOSE - ราคาที่ใช้สำหรับดัชนีหากจำเป็น
  • SL_TP_Dynamic_invalidates_static_values - ช่องว่างเพื่อแยกพารามิเตอร์การหยุดขาดทุนและการทำกำไรจากการตั้งค่าอื่น ๆ
  • iStoploss = 1000 - ค่าหยุดขาดทุนคงที่ในจุด
  • iTakeprofit = 2000 - ค่าทำกำไรคงที่ในจุด
  • input inDynamic = true - ใช้การหยุดขาดทุนและการทำกำไรแบบไดนามิกตาม ATR หรือไม่? หากคุณเปิดการตั้งค่าหยุดขาดทุนและทำกำไรแบบไดนามิก จะใช้แทนการหยุดขาดทุนและทำกำไรแบบคงที่
  • inStoplossMultiple = 2 - SL แบบไดนามิก = X * ATR (ช่วงเวลาเฉลี่ย)
  • inTakeProfitMultiple = 7 - TP แบบไดนามิก = X * ATR (ช่วงเวลาเฉลี่ย)
  • Break_Even_Settings - ช่องว่างสำหรับการตั้งค่าเบรกอีเวน
  • bUseBreakEven = true - ใช้เบรกอีเวน (BE) หรือไม่?
  • inTrigger = 200 - หาก BE = [true] ตั้งค่าจุดกำไรเพื่อกระตุ้น
  • inPadding = 100 - จุดกำไรเพื่อเพิ่มในการเบรกอีเวน

หุ่นยนต์นี้ปรับตัวเองได้อย่างไร? นี่คือความลับ หุ่นยนต์จะทดสอบค่าต่าง ๆ ในดัชนีสองครั้ง หากดัชนีมีค่าที่เป็นไปได้ 100 ค่าหุ่นยนต์จะนำค่าทุกค่าไปทดสอบการเทรดในช่วงเวลาที่กำหนด (optimizingPeriods) จากนั้นจะให้คะแนนค่าตามจำนวนเงินที่ทำกำไรหรือขาดทุนจากการเทรดที่ค่านั้น มันอาจจะซับซ้อนกว่านั้น แต่คุณกำลังอ่านเพื่อดูรายละเอียดมากขึ้น

เมื่อดัชนีตัดข้ามค่าที่ overbought จากด้านบน จะมีการออกคำสั่งขาย และจะมีการออกคำสั่งซื้อเมื่อดัชนีตัดจากด้านล่างขึ้นไปข้ามค่าที่ oversold ยกตัวอย่างเช่น หากค่าที่ overbought ตั้งไว้ที่ 80 และค่าของดัชนีของคุณอยู่ที่ 85 ในแท่งก่อนหน้า และค่าของดัชนีในแท่งล่าสุดคือ 79 จะมีการออกคำสั่งขาย 85 → 79 ตัดลงต่ำกว่า 80 จะมีการออกคำสั่งขาย หาก oversold = 23 แล้ว 19 → 27 ขึ้นไปจะสร้างคำสั่งซื้อ

หุ่นยนต์จะทำการทดสอบค่าทุกค่าของดัชนีจาก IndicatorTopValue - และ IndicatorBottomValue - และทำการทดสอบ สองการทดสอบโดยเฉพาะ มันจะทำการทดสอบการซื้อและการขายในแต่ละค่า ตัวอย่างเช่น หากค่าที่สูงสุดคือ 100 จะนำค่าที่สูงสุดนั้นไปทำการทดสอบย้อนหลังใน optimizingPeriods - สมมุติว่าเป็น 144 ช่วงเวลา ดังนั้นมันจะดูว่าการซื้อที่ 100 และการขายที่ 100 จะทำกำไรได้หรือไม่ในช่วง 144 ช่วงเวลา หากมีกำไร มันจะเก็บค่าจำนวนนั้นไว้

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

แนวคิดการขยายในอนาคต

  • ทำการเทรดคู่เงินหลายคู่พร้อมกัน โดยอาจจะกรองตามขนาดของสเปรด
  • การเรียนรู้ด้วยตนเอง ซึ่งมันจะเรียนรู้จากการเทรดของตัวเอง
  • การทดสอบย้อนหลังอาจรวมถึงการทดสอบข้างหน้า
  • เพิ่มตัวชี้วัดให้เลือกมากขึ้น

โปรดแสดงความคิดเห็นและข้อเสนอแนะของคุณ และอย่าลืมให้คะแนนด้วยนะครับ!

ตอนนี้สามารถดาวน์โหลดได้ที่ตลาด MetaTrader: https://www.mql5.com/en/market/product/26332

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

โพสต์ที่เกี่ยวข้อง

ความคิดเห็น (0)