ไอเดียโดย: Vladimir Pastushak
MQL5 โค้ดโดย: Vladimir Karputov
EA ตัวนี้เปิดการเทรดโดยใช้สัญญาณจาก Moving Average โดยทุกฟังก์ชันที่จำเป็นสำหรับการเตรียมตัวและการเทรดจะถูกจัดการใน CMoving class ซึ่งมีอยู่ในไฟล์แยกที่ชื่อว่า Moving.mqh.
การตั้งค่าพารามิเตอร์
- magic number - ตัวระบุ EA ที่ไม่ซ้ำกัน;
- Lots - ขนาดของตำแหน่ง (ต้องมากกว่าศูนย์);
- Risk - ความเสี่ยงในเปอร์เซ็นต์ของมาร์จินที่ว่างต่อการเทรด (ต้องมากกว่าศูนย์);
- MA: period - ระยะเวลาของ Moving Average;
- MA: averaging period - ระยะเวลาการเฉลี่ยของ Moving Average;
- MA: horizontal shift - การเลื่อนแนวนอนของ Moving Average;
- MA: smoothing type - วิธีการเฉลี่ยของ Moving Average;
- MA: type of price - ประเภทของราคาที่ใช้ในการคำนวณ Moving Average;
- Take Profit - ระดับ Take Profit (กรณีที่มีตำแหน่งเปิดเพียงตำแหน่งเดียว);
- Lot multiplier for a series of Positions - การเพิ่มขนาดของตำแหน่งในกรณีที่มีการเปิดหลายตำแหน่ง;
- Distance from Moving Average - ระยะห่างจาก Moving Average;
- Additive in the presence of the general profit - การเพิ่มในกรณีที่มีกำไรโดยรวม.
EA ใช้หลักการของการสวิง โดยสามารถเพิ่มจำนวน lots ได้ และมีกลยุทธ์การทำงานที่ง่าย:
- ถ้าราคาอยู่เหนือ Moving Average ที่ระยะ Distance from Moving Average ที่กำหนด เราจะเปิดตำแหน่ง BUY;
- ถ้ารราคาลงจาก Moving Average ที่ระยะ Distance from Moving Average ที่กำหนด เราจะเปิดตำแหน่ง SELL ด้วย lot เดิม;
- ถ้ารราคาเคลื่อนขึ้นจากตำแหน่ง BUY ที่มีราคาสูงสุดที่ระยะ Distance from Moving Average เราจะเปิดตำแหน่ง BUY ถัดไป;
- ถ้ารราคาเคลื่อนลงจากตำแหน่ง BUY ที่มีราคาต่ำสุดที่ระยะ Distance from Moving Average เราจะเปิดตำแหน่ง SELL ถัดไป;
Class CMoving
| การตั้งค่าพารามิเตอร์ | |
Initialization |
การกำหนดค่าเริ่มต้น - พารามิเตอร์ที่ตั้งค่าคือ:
|
GetFlag |
คืนค่าสถานะของธงการเริ่มต้น ใช้เป็นฟังก์ชันช่วยเมื่อเรียกจาก EA หลักเพื่อตรวจสอบสถานะของตัวแปรภายใน m_init ของ class CMoving. |
LotsOrRisk |
กำหนดประเภทการคำนวณขนาดตำแหน่ง: ด้วยมือ (ถ้าพารามิเตอร์ lots มากกว่าศูนย์) หรือในเปอร์เซ็นต์ของมาร์จินที่ว่างต่อการเทรด (ถ้าพารามิเตอร์ risk มากกว่าศูนย์). |
CreateMA |
สร้าง Moving Average indicator. |
TakeProfit |
กำหนดพารามิเตอร์ Take Profit. |
Multiplier |
กำหนดพารามิเตอร์การเพิ่มขนาดตำแหน่ง. |
DistanceMA |
กำหนดระยะห่างจาก Moving Average indicator. |
ProfitPlus |
กำหนดระยะห่างเพิ่มเติมในกรณีที่มีกำไรโดยรวม. |
| ฟังก์ชันหลัก | |
Processing |
ฟังก์ชันหลักที่ใช้สำหรับการคำนวณทั้งหมด. |
| ฟังก์ชันของคลาสที่เข้าถึงด้วย specifier ป้องกัน | |
RefreshRates |
อัปเดตราคาสำหรับสัญลักษณ์. |
CheckVolumeValue |
ตรวจสอบความถูกต้องของขนาดตำแหน่งที่ป้อน (ใช้เมื่อกำหนดขนาดตำแหน่งด้วยมือ). |
IsFillingTypeAllowed |
ตรวจสอบโหมดการเติมคำสั่ง. |
iMAGet |
รับค่าของ Moving Average indicator บนแท่งที่มีดัชนี index. |
CalculateAllPositions |
รับข้อมูลเกี่ยวกับตำแหน่งในการเรียกแต่ละครั้ง:
|
Prices |
รับราคาที่ใช้สำหรับตำแหน่ง BUY และ SELL โดยพิจารณาจาก Distance from Moving Average ที่ตั้งไว้. |
LotCheck |
ตรวจสอบและปรับขนาดตำแหน่ง (ใช้เมื่อกำหนดขนาดตำแหน่งด้วยมือ). |
OpenBuy |
เปิดตำแหน่ง BUY. |
OpenSell |
เปิดตำแหน่ง SELL. |
PrintResult |
พิมพ์ผลลัพธ์ของการดำเนินการเทรดสำหรับการเปิดตำแหน่ง. |
SetTakeProfit |
ตั้งระดับ Take Profit สำหรับตำแหน่งหรือการลบ Take Profit และ Stop Loss ทั้งหมด (เมื่อพารามิเตอร์ delete_take_profit เท่ากับ "true"). |
CompareDoubles |
เปรียบเทียบจำนวนจริงสองจำนวนเพื่อให้เท่ากัน. |
AwerageTakeProfit |
คำนวณและตั้งระดับ Take Profit เดียวสำหรับตำแหน่งประเภทหนึ่ง pos_type. |
GBPUSD, H1, "ทุกจุดบนพื้นฐานของราคาจริง."

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