ไอเดียโดย: 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