🚀 TradeCopierBot — การคัดลอกการเทรดที่รวดเร็ว สะอาด และป้องกันโบรกเกอร์ (Local/VPS) 🔁✨
คัดลอกการเทรดของคุณจากบัญชี MASTER ไปยังบัญชี SLAVE หนึ่งบัญชีหรือมากกว่านั้น ด้วยโปรแกรมคัดลอกน้ำหนักเบาที่ขับเคลื่อนด้วยเหตุการณ์ ออกแบบมาสำหรับสภาพการเทรดจริง: โบรกเกอร์ต่างกัน ชื่อสัญลักษณ์ต่างกัน กฎล็อตต่างกัน.
เหมาะสำหรับ การดำเนินการหลายบัญชี, การปรับขนาดความเสี่ยง, และ การแจกจ่ายกลยุทธ์—พร้อมบันทึกดีบักอย่างละเอียดเพื่อให้คุณทราบเสมอว่าเกิดอะไรขึ้น 🧠📈
✅ ปรับแต่งสำหรับ Local / VPS (เครื่องเดียวกัน)
❌ ไม่ได้ออกแบบมาสำหรับ cTrader Cloud (อินสแตนซ์แยกกัน จึงไม่สามารถแชร์สัญญาณได้) ☁️🚫
โปรดทราบ: หากคุณมีบัญชี cTrader สองบัญชีที่แตกต่างกัน คุณต้องซื้อ cBots สองตัว มิฉะนั้นคุณจะไม่สามารถคัดลอกได้ เรายินดีให้ข้อมูลเพิ่มเติมทุกเมื่อ
🧠 วิธีการทำงาน (MASTER → SLAVE) 🧩
🔁 1) การส่งสัญญาณ (วิธีที่การเทรด “เดินทาง”)
โปรแกรมคัดลอกนี้ใช้ cTrader LocalStorage (ขอบเขตอุปกรณ์) เป็น “บัสข้อความ” ร่วมกัน
✅ MASTER
- ฟังเหตุการณ์ตำแหน่ง: เปิด / แก้ไข / ปิด
- สร้าง
TradeSignal(เปิด / แก้ไข / ปิด) - แนบไปยัง รายการสัญญาณ ใน LocalStorageScope .Device
- เรียกใช้ Flush() เพื่อให้ SLAVE อ่านได้ทันที
✅ SLAVE
- รัน Timer ทุก Poll Interval วินาที
- เรียกใช้ Reload()
- อ่านรายการสัญญาณ
- ประมวลผลเฉพาะ สัญญาณใหม่ (โดยใช้
_lastSignalIndexProcessed)
🧷 2) การจับคู่ตำแหน่ง (เพื่อให้ CLOSE ทำงานได้)
เมื่อ SLAVE เปิดการเทรด จะเก็บ:
🧩 MasterPositionId → SlavePositionId
การจับคู่นี้ยังถูกบันทึกใน LocalStorage เพื่อให้ยังคงอยู่หลังรีสตาร์ท:
- ✅ CLOSE ยังทำงานได้หลังรีบูต
- ✅ MODIFY ยังหาตำแหน่งที่ถูกต้องได้
🧭 3) การแปลสัญลักษณ์ (สัญลักษณ์ MASTER → สัญลักษณ์ SLAVE)
🗺️ แผนที่สัญลักษณ์ (MASTER=SLAVE;...)
ใช้เมื่อชื่อสัญลักษณ์แตกต่างกันระหว่างโบรกเกอร์/บัญชี
รูปแบบ:
MASTER=SLAVE;MASTER2=SLAVE2;...
ตัวอย่าง (กรณีของคุณ):
- MASTER เปิด
USTEC - SLAVE ต้องเทรด
US100
➡️ USTEC=US100
✅ ด้านซ้าย = สัญลักษณ์ที่มาจาก MASTER
✅ ด้านขวา = สัญลักษณ์บนโบรกเกอร์ SLAVE
📏 4) ตรรกะปริมาณ (ส่วนสำคัญ) 🔥
✅ ทำงานในล็อต/จำนวน (รองรับทศนิยม)
เพื่อจัดการทศนิยม (0.10, 0.01, ฯลฯ) SLAVE:
- คำนวณ ล็อตที่ต้องการ
- ใช้ ตัวคูณ / ขั้นต่ำ / ขั้นตอน
- แปลง ล็อต → ปริมาณ โดยใช้
QuantityToVolumeInUnits(lots) - ส่งคำสั่งโดยใช้โอเวอร์โหลดที่รับ ปริมาณแบบ double ✅
นี่คือสิ่งที่ทำให้มันแข็งแกร่งแม้เมื่อโบรกเกอร์บังคับใช้กฎความแม่นยำล็อตที่แตกต่างกัน
⚙️ อธิบายพารามิเตอร์ (พร้อมไอคอน)
🧩 แกนหลัก
- 🧭 โหมด
-
Master= เผยแพร่สัญญาณSlave= อ่านสัญญาณและคัดลอกการเทรด
- 🧷 รหัสกลุ่มคัดลอก
-
- ช่องทางการสื่อสาร MASTER และ SLAVE ต้องตรงกัน (เช่น
DEFAULT)
- ช่องทางการสื่อสาร MASTER และ SLAVE ต้องตรงกัน (เช่น
- ⏱️ ช่วงเวลาการตรวจสอบ (วินาที)
-
- SLAVE ตรวจสอบสัญญาณใหม่ทุก N วินาที
- 🐞 โหมดดีบัก
-
- พิมพ์บันทึกรายละเอียด (แนะนำในช่วงตั้งค่า)
🗺️ การแปลสัญลักษณ์
- 🧾 แผนที่สัญลักษณ์ (MASTER=SLAVE;...)
-
- ตัวอย่าง:
USTEC=US100;XAUUSD=GOLD;NAS100=USTEC
- ตัวอย่าง:
🎚️ การปรับขนาดปริมาณ (สำคัญที่สุด) ✅
🔢 ตัวคูณทั่วโลก
- ➗ ตัวคูณปริมาณ
-
- ปรับขนาดล็อตที่คัดลอกทั้งหมด:
desiredLots = masterLots * VolumeMultiplier
🎛️ ตัวคูณต่อสัญลักษณ์ (เครื่องมือหลักของคุณ)
- 🧷 แผนที่ตัวคูณปริมาณ (SYM=mult;...)
-
- แทนที่ตัวคูณต่อสัญลักษณ์ (สัญลักษณ์ฝั่ง SLAVE)
- ตัวอย่าง:
-
US100= 0. 10- รูปแบบอิตาเลียนก็ใช้ได้:
US100=0,10
✅ นี่คือวิธีที่คุณทำให้ได้: 1.00 บน MASTER → 0.10 บน SLAVE
🧱 ข้อจำกัดล็อตโบรกเกอร์ (ขั้นต่ำและขั้นตอน)
- 🧱 ค่าต่ำสุดเริ่มต้น (0=ปิด)
-
- ล็อตขั้นต่ำทั่วโลกถ้าเปิดใช้งาน
- 🧱 แผนที่ค่าต่ำสุด (SYM=val;...)
-
- ล็อตขั้นต่ำต่อสัญลักษณ์
- ตัวอย่าง:
US100=0. 10
- 🪜 ค่าขั้นตอนเริ่มต้น (0=ปิด)
-
- ขั้นตอนทั่วโลกถ้าเปิดใช้งาน
- 🪜 แผนที่ค่าขั้นตอน (SYM=val;...)
-
- ขั้นตอนต่อสัญลักษณ์
- ตัวอย่าง:
US100=0. 10→ ค่าที่อนุญาต: 0.10, 0.20, 0.30…
🧯 พฤติกรรมความปลอดภัย
- 🧷 ใช้ Min Qty เป็นล็อตคงที่
-
- ถ้า
true: SLAVE จะไม่สนใจขนาดของ master และใช้ MinQty เสมอ (ขนาดคงที่)
- ถ้า
- ⚠️ พฤติกรรม BelowMin
-
UseMin= ถ้าต่ำกว่าขั้นต่ำ → ปรับเป็นขั้นต่ำSkip= ถ้าต่ำกว่าขั้นต่ำ → ไม่เปิด
- 🔁 ความพยายาม BadVolume
-
- ถ้าโบรกเกอร์ส่งคืน BadVolume จะพยายามปรับเล็กน้อยสูงสุด N ครั้ง
🎯 ตรรกะการคัดลอก SL/TP
- 🛡️ คัดลอก SL/TP เป็นระยะทางเมื่อสัญลักษณ์ต่างกัน
-
- ถ้าสัญลักษณ์ MASTER และ SLAVE ต่างกัน:
- SL/TP ถูกคัดลอกเป็น ระยะทางจากจุดเข้า ไม่ใช่ราคาสัมบูรณ์
- สิ่งนี้ช่วยให้การควบคุมความเสี่ยงสอดคล้องกันในเครื่องมือทั้งหมด
✅ การตั้งค่าที่แนะนำ (USTEC → US100, ล็อต SLAVE = 0.10)
บน SLAVE:
🗺️ การแปลสัญลักษณ์:
Symbol Map=USTEC=US100
🎛️ การปรับขนาดปริมาณ:
Volume Multiplier Map=US100=0,10
🧱 ข้อจำกัดโบรกเกอร์:
Min Qty Map=US100=0,10Qty Step Map=US100=0,10
ผลลัพธ์:
- ✅ MASTER 1.00 → SLAVE 0.10 บน US100
☁️ สำคัญ: ใช้ได้เฉพาะ Local/VPS เท่านั้น (ไม่รองรับ Cloud) ❌
🖥️ Local/VPS ✅
ทำงานได้เพราะ MASTER และ SLAVE ใช้ LocalStorageScope .Device เดียวกัน (เครื่อง/สภาพแวดล้อมเดียวกัน)
☁️ cTrader Cloud ❌
ไม่ทำงานเพราะอินสแตนซ์ Cloud ถูก แยกออก จึงไม่แชร์ LocalStorage และ SLAVE ไม่สามารถเห็นสัญญาณ MASTER ได้
✅ สรุป:
- ✔️ ใช้บนพีซีเดียวกันหรือ VPS ที่รันอินสแตนซ์ทั้งสองพร้อมกัน
- ❌ สำหรับ Cloud ต้องใช้รีเลย์ภายนอก (เซิร์ฟเวอร์ HTTP/WebSocket)
5 | 67 % | |
4 | 0 % | |
3 | 33 % | |
2 | 0 % | |
1 | 0 % |