สวัสดีครับเพื่อนๆ เทรดเดอร์ทุกคน!
วันนี้เราจะมาพูดถึงวิธีการตรวจจับแท่งเทียนใหม่ใน EA กันครับ
มันง่ายมากโดยเฉพาะถ้าคุณต้องการตรวจจับแท่งเทียนใหม่ในกรอบเวลา (timeframe) ปัจจุบัน
void start(){ static datetime tmp; if (tmp != Time[0]) { tmp = Time[0]; //ใส่โค้ดของคุณที่นี่ } }
แต่ถ้าพูดถึงการตรวจจับเหตุการณ์ในกรอบเวลาอื่นๆ มันก็ไม่ยากเกินไปครับ แต่มีข้อจำกัดนิดหน่อย:
MT4 ไม่รองรับ onBar event แต่คุณสามารถเก็บเวลาที่มาถึงใน array และตรวจสอบเวลานั้นทุกครั้งที่มี tick ถ้ามันตรงตามเวลาที่กำหนด ก็ให้ทำการเรียกเหตุการณ์แท่งเทียนใหม่ครับ
หมายความว่า ถ้าคุณรันการทดสอบย้อนหลังในกรอบเวลา M5 คุณสามารถจับเหตุการณ์ M6 M7...D1 ได้ครับ
ทำไมถึงตรวจจับได้เฉพาะแนวโน้มขาขึ้น? คำตอบอยู่ที่คำถาม: คุณจะ สร้าง ข้อมูล tick โดย metatrader? A1, A2, A3,...
จนถึงกรอบเวลา D1 มันจะยากขึ้นเพราะอาทิตย์เริ่มต้นที่เช่น วันอาทิตย์ 20:45 (ขึ้นอยู่กับโบรกเกอร์) และการเริ่มต้น ของเดือน อาจเริ่ม กลางสัปดาห์... เป็นต้นครับ
ผมคิดว่าข้อมูลนี้ไม่ค่อยเกี่ยวข้องมากนัก ดังนั้นเลยไม่ลงเผยแพร่...
ดังนั้นมี หัวข้อ สำหรับคำถามนี้ แต่ผมคิดว่าหลายคนยังไม่ค่อยอ่านบทความและฟอรัมกันเลยจึงขอเผยแพร่โค้ดนี้ครับ
คำอธิบายบางส่วน:
ในฟังก์ชัน init คุณจะต้องเติมเวลาเริ่มต้นใน array:
curIndex = utils.periodToPeriodIndex(Period()); times[curIndex] = Time[0]; for(int i = curIndex + 1; i < MAX; i++) times[i] = times[curIndex] - MathMod(times[curIndex], utils.periodIndexToPeriod(i) * 60);
และในฟังก์ชัน start คุณจะต้องตรวจสอบว่าเวลาผ่านไปพอหรือยัง จากนั้นก็ให้ออกเหตุการณ์:
if (times[curIndex] != Time[0]) { times[curIndex] = Time[0]; onBar(Period()); for(int i = curIndex + 1; i < MAX; i++) { int period = utils.periodIndexToPeriod(i), seconds = period * 60, time0 = times[curIndex] - MathMod(times[curIndex], seconds); if (times[i] != time0) { times[i] = time0; onBar(period); } } }
เขียนโค้ดของคุณใน
void onTick() {
}
และ
void onBar(int period) { }
นั่นแหละครับ ขอบคุณทุกคนที่ติดตามอ่าน
อัปเดต 1.1: ขอบคุณ WHRoeder สำหรับโค้ดที่ชัดเจนครับ
โพสต์ที่เกี่ยวข้อง
- สร้าง Expert Advisor ด้วย MQL5 Wizard: สัญญาณซื้อขายจาก Morning/Evening Stars + MFI
- การสร้าง Expert Advisor ด้วย MQL5 Wizard: สัญญาณการเทรดจาก Morning/Evening Stars + RSI
- MQL5 Wizard: สร้างสัญญาณการเทรดจาก Bullish Harami/Bearish Harami พร้อม MFI
- ใช้ MQL5 Wizard สร้าง Expert Advisor ด้วยสัญญาณเทรด Morning/Evening Stars + Stochastic
- สร้าง Expert Advisor ด้วย MQL5 Wizard สำหรับสัญญาณการเทรด Bullish Harami/Bearish Harami และ RSI