Open Forex4you Account

Server รัน EA 1000 / ปี

สั่งชื้อคู่มือการโปรแรกม MQL4

Author Topic: EA ทำงานเอ๋อๆครับ รบกวนช่วยดูทีว่าทำไมถึงเอ๋อครับ  (Read 16519 times)

dataxdata

  • Newbie
  • *
  • Posts: 35
ผมเอา ea ไปรันใน exness ที่ timeframe 15 นาทีครับ ปัญหาที่พบตอนนี้คือ
1. เปิดตั๋วแล้ว ea ไม่ count order และโชว์ใน comment ที่สั่งมันไว้
2. บางเวลา ea ค้าง ไม่สามารถกด f7 เพื่อเซ้ตค่า property ได้
3. บางเวลาจะไม่ refresh comment ให้
ก่อนหน้านี้เปิดทิ้งไว้ทุกวันก็ทำงานปกติครับ แต่หลังๆ เพิ่งเริ่มสังเกตุว่าค่าที่ให้โชว์ comment ไม่ขยับตามราคาที่วิ่งรวมถึงเริ่มทำงานรวนๆ รบกวนช่วยดูหน่อยครับผม

ปล. ea ตัวนี้เขียนเอง ถ้า code ตรงไหนผิดช่วยแนะนำด้วยครับ
Name: Ataporn.Tap
Rank : Newbie Trader (- -,)

dataxdata

  • Newbie
  • *
  • Posts: 35
เพิ่มเติมปัญหาที่พบครับ
4. บางครั้งหลังจากที่พบปัญหาข้อ 1-3 ea ไม่่ยอมปิด order ตามเงื่อนไขที่กำหนด

ปัญหาที่พบส่วนใหญ่นั้น ผมไม่แน่ใจว่าเพราะผมเขียน code ไม่ดีเองรึเปล่า รบกวนช่วยดูให้หน่อยนะครับ ขอบคุณครับ
Name: Ataporn.Tap
Rank : Newbie Trader (- -,)

hyperxeon

  • Newbie
  • *
  • Posts: 11
น่าจะแนบไฟล์ผิด
ต้องแนบไฟล์ source code ที่นามสกุล mq4 ครับ ส่วน ex4 มันเป็นตัวที่คอมไพล์แล้ว

dataxdata

  • Newbie
  • *
  • Posts: 35
แป่ว ขอบคุณที่เตือนครับ -_-"
Name: Ataporn.Tap
Rank : Newbie Trader (- -,)

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
แค่ดูผ่านๆ ตรงเงื่อนไขใน EA ให้ใช้ วงเล็บครอบเป้นชั้นๆๆไปครับ ถ้าเขียนเงื่อนไขติดกันเยอะๆๆแบบนนั่น MQL จะทำงาน error ครับเช่น
จาก
if(PlusADX > CurBaseADX && PlusADX > MinusADX && CurMACD > 0)

ก็ใช้เป็น
if ( ( (PlusADX > CurBaseADX ) && (PlusADX > MinusADX ) ) && ( CurMACD > 0 ))

ลองแก้ตรงนี้ดูก่อนครับ

dataxdata

  • Newbie
  • *
  • Posts: 35
ขอบคุณครับท่าน admin ผลที่ได้จะนำมารายงานอีกทีครับผม

ปล. ขอความรู้เพิ่มเติมหน่อยครับ

ตรงที่ผมใส่ Sleep(900000) ผมกะให้มันเปิดตั๋วแล้วต้องรออย่างน้อย 15 นาทีถึงเปิดตั๋วด้วยเงื่อนไขเดิมได้ แต่ผลที่ได้จริงมันไม่ถึง 15 นาทีก็เปิดตั๋วใหม่แล้ว ไม่แน่ใจว่านอกจากคำสั่ง Sleep แล้วยังมีคำสั่งไหนอีกบ้างที่จะกำหนดระยะเวลาก่อนจะเปิดตั๋วใหม่ได้บ้างครับ?

อีกอย่างนึงครับ ไม่แน่ใจว่าเวลา ea รันอยู่แล้วเราไปเปิดตั๋วเองมันจะส่งผลกับการรันของ ea หรือไม่ครับ

ขอบคุณครับ
Name: Ataporn.Tap
Rank : Newbie Trader (- -,)

dataxdata

  • Newbie
  • *
  • Posts: 35
หลังจากแก้ code ตามที่ท่าน admin แนะนำก็ยังเป็นเหมือนเดิมครับ ตอนนี้ผมสงสัยว่าอาจเกิดจากคำสั่ง sleep ที่เอาไว้หลังเปิด order ครับ เหมือนกับว่าเปิดตั๋วแล้ว ea มัน sleep ไปเลยไม่ทำงานทั้งการ นับ-ปิด order-เปิด order

ผมเลยอยากถามว่าถ้าผมไม่ใช้คำสั่ง sleep ผมสามารถใช้คำสั่งใดได้บ้างให้มันเปิดตั๋วได้โดยต้องใช้เวลาห่างจากตั๋วล่าสุดที่เปิดอย่างน้อย 15 นาที

ขอบคุณครับ
Name: Ataporn.Tap
Rank : Newbie Trader (- -,)

hyperxeon

  • Newbie
  • *
  • Posts: 11
ลองดูครับ
ใน Start Function
(1) เพิ่มตัวแปร
     int    s1minute = 1440, s2minute =1440, s3minute =1440, s4minute =1440; // เปลี่ยนเป็นค่าอะไรก็ได้ที่มากกว่า จำนวนนาทีที่ต้องการรอ

(2) เพิ่ม  if ( OrderMagicNumber() == MagicNumber1 ) s1count++; เป็น
    if ( OrderMagicNumber() == MagicNumber1 )
                {
                     s1count++;
                s1minute = MathMin(s1minute, TimeMinute(TimeCurrent() - OrderOpenTime())); //  เปรียบเทียบหาจำนวนนาทีที่ผ่านไป ของ order ใหม่ล่าสุด
                  }

(3) เพิ่ม if(CurBaseADX > 20 && s1count < 5)  เป็น
    if(CurBaseADX > 20 && s1count < 5 && s1minute > 15)

(4) ลบ Sleep(900000) ออก
** ปล. ข้อ 2,3 แก้ทุก s นะครับ ไม่ใช่เฉพาะ s1

dataxdata

  • Newbie
  • *
  • Posts: 35
ลองดูครับ
ใน Start Function
(1) เพิ่มตัวแปร
     int    s1minute = 1440, s2minute =1440, s3minute =1440, s4minute =1440; // เปลี่ยนเป็นค่าอะไรก็ได้ที่มากกว่า จำนวนนาทีที่ต้องการรอ

(2) เพิ่ม  if ( OrderMagicNumber() == MagicNumber1 ) s1count++; เป็น
    if ( OrderMagicNumber() == MagicNumber1 )
                {
                     s1count++;
                s1minute = MathMin(s1minute, TimeMinute(TimeCurrent() - OrderOpenTime())); //  เปรียบเทียบหาจำนวนนาทีที่ผ่านไป ของ order ใหม่ล่าสุด
                  }

(3) เพิ่ม if(CurBaseADX > 20 && s1count < 5)  เป็น
    if(CurBaseADX > 20 && s1count < 5 && s1minute > 15)

(4) ลบ Sleep(900000) ออก
** ปล. ข้อ 2,3 แก้ทุก s นะครับ ไม่ใช่เฉพาะ s1

ขอบคุณสำหรับคำแนะนำครับคุณ hyperxeon ตอนนี้ผมลองแก้ตามที่แนะนำแล้ว ผลลัพธ์จะมารายงานให้ทราบนะครับ

ขอบคุณคร้าบบบบ ^^
Name: Ataporn.Tap
Rank : Newbie Trader (- -,)