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

Smart Trend Follower - ระบบเทรดอัจฉริยะสำหรับ MetaTrader 5

ไฟล์แนบ
53022.zip (3.5 KB, ดาวน์โหลด 0 ครั้ง)

1. ประเภทของ Enum (enumJnsSignal, enumOrderType)

enumJnsSignal ระบุประเภทของสัญญาณที่ใช้ใน EA มีตัวเลือกสัญญาณสองแบบ:

  • eTypeCrossMA: ใช้สัญญาณจาก Cross 2 MA (การตัดกันของสอง Moving Averages)
  • eTypeTrend: ติดตาม แนวโน้ม โดยใช้ Moving Averages และ Stochastic

enumOrderType ระบุประเภทของคำสั่ง:

  • eBuy: คำสั่ง ซื้อ
  • eSell: คำสั่ง ขาย
  • eNone: ไม่มีการดำเนินการคำสั่ง

2. พารามิเตอร์การตั้งค่า

  • inMagicNumber: หมายเลขระบุเฉพาะสำหรับแยกคำสั่งจาก EA นี้
  • inLotSize: ขนาดล็อตเริ่มต้นสำหรับแต่ละคำสั่ง
  • inMultiply: ปัจจัยการคูณที่ใช้ในกลยุทธ์ขนาดล็อต
  • inJarakLayer: ระยะระหว่างตำแหน่งการเทรดในกลยุทธ์กริด/layer
  • inMAPeriodFast & inMAPeriodSlow: ระยะเวลาสำหรับ Moving Averages เร็วและช้า
  • inSTOKPeriod, inSTODPeriod, inSTOSlowing: พารามิเตอร์สำหรับ Stochastic Oscillator
  • inTakeProfit & inStopLoss: การตั้งค่าคำสั่ง Take Profit และ Stop Loss

3. โครงสร้างข้อมูล Trades

โครงสร้างนี้ใช้เก็บข้อมูลที่เกี่ยวข้องกับตำแหน่งการเทรดที่เปิดอยู่ เช่น จำนวนตำแหน่งทั้งหมด (ttlPos), ราคากลางของตำแหน่ง (hargaTA, hargaTB), และปริมาณรวม (ttlLot)

4. ฟังก์ชัน OnInit()

ฟังก์ชันนี้จัดการการเริ่มต้นของ EA รวมถึงการตรวจสอบพารามิเตอร์ที่ป้อน (เช่น การตรวจสอบว่า MA เร็วมีค่าต่ำกว่าช้า) และสร้าง handle สำหรับ MA และ Stochastic indicators

5. ฟังก์ชัน OnTick()

ฟังก์ชันหลักที่ทำงานทุกครั้งที่ราคาเปลี่ยน (tick)

  • เรียกใช้ฟังก์ชันเพื่อตรวจสอบสัญญาณใหม่ด้วย GetSignal() และถ้าพบสัญญาณจะใช้ manageTrading() ในการดำเนินการซื้อขาย
  • ยังเรียกใช้ setTPSL() เพื่อให้แน่ใจว่า Take Profit และ Stop Loss จะถูกอัปเดตเสมอ

6. ฟังก์ชัน isNewCandle()

ฟังก์ชันนี้ตรวจสอบว่ามีเทียนใหม่เกิดขึ้นหรือไม่ ซึ่งเป็นสิ่งสำคัญเนื่องจาก EA จะตรวจสอบสัญญาณเฉพาะเมื่อเกิดการสร้างเทียนใหม่

7. ฟังก์ชัน GetSignal()

ฟังก์ชันนี้กำหนดว่ามีสัญญาณการเทรดที่ถูกต้องหรือไม่ตามกลยุทธ์ที่เลือก:

  • สำหรับ eTypeCrossMA, สัญญาณจะถูกกำหนดโดยการตัดกันของ Moving Averages เร็วและช้า
  • สำหรับ eTypeTrend, สัญญาณจะใช้การยืนยันจาก MA และ Stochastic

8. ฟังก์ชัน manageTrading()

ฟังก์ชันนี้จัดการการดำเนินการซื้อขาย

  • ถ้าพบสัญญาณที่ถูกต้อง EA จะเปิดตำแหน่งใหม่โดยใช้ขนาดล็อตที่กำหนดโดยฟังก์ชัน getLotSize()
  • ใช้กลยุทธ์กริด/layer เพื่อเปิดตำแหน่งเพิ่มเติมตามระยะห่างของราคา (inJarakLayer)

9. ฟังก์ชัน updateDataTrades()

ฟังก์ชันนี้อัปเดตข้อมูลที่เกี่ยวข้องกับตำแหน่งการเทรดที่กำลังดำเนินการ เช่น การคำนวณราคากลางและปริมาณรวมของตำแหน่งที่เปิดอยู่

10. ฟังก์ชัน openTrade()

ฟังก์ชันนี้เปิดตำแหน่งการเทรดใหม่ตามสัญญาณที่สร้างขึ้นและขนาดล็อตที่คำนวณ มันจะใช้ OrderSend() ในการดำเนินการคำสั่ง

11. ฟังก์ชัน setTPSL()

ฟังก์ชันนี้ตั้งค่าหรืออัปเดต Take Profit และ Stop Loss สำหรับแต่ละตำแหน่งที่เปิดอยู่

12. ฟังก์ชัน modifTPSL()

ฟังก์ชันนี้แก้ไข Take Profit และ Stop Loss ของตำแหน่งที่มีอยู่หากค่าแตกต่างจากที่ตั้งไว้ก่อนหน้านี้

13. ฟังก์ชัน validateLot()

ฟังก์ชันนี้ตรวจสอบให้แน่ใจว่าขนาดล็อตที่ใช้เป็นไปตามช่วงขั้นต่ำและสูงสุดที่อนุญาต รวมถึงสอดคล้องกับขั้นตอนขั้นต่ำของล็อต (gLotStep)

14. ฟังก์ชัน getLotSize()

ฟังก์ชันนี้คำนวณขนาดล็อตที่จะใช้ตามขนาดล็อตเริ่มต้นและจำนวนตำแหน่งที่เปิดอยู่ โดยคำนึงถึงปัจจัยการคูณ (inMultiply)

โค้ดนี้ออกแบบมาเพื่อจับแนวโน้มของตลาดและจัดการตำแหน่งการเทรดโดยอัตโนมัติ โดยใช้สัญญาณทางเทคนิคจาก Moving Averages และ Stochastic

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

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