Open Forex4you Account

Server รัน EA 1000 / ปี

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

Author Topic: Maxtradeของแต่ละค่าเงิน  (Read 13471 times)

br9788

  • Newbie
  • *
  • Posts: 14
Maxtradeของแต่ละค่าเงิน
« on: มิถุนายน 21, 2010, 01:52:39 pm »
ผมเขียนeaลองใช้ดู แต่ติดปัญหาตรงตั้งรับค่าMaxtradeแล้ว มันนับOrderที่เปิดอยู่รวมทั้งหมดน่ะครับ ถ้ายังไม่เต็มมันจะรัวเปิดOrderตัวที่เข้าเงื่อนไขจนเต็มจำนวน
กลายเป็นว่า มีแต่ค่าเงินเดิมเต็มหน้า ตัวอื่นเข้าเงื่อนไขช้าก็หมดสิทธิ์  ผมลองอ่านpdfแล้วมันงงๆ ไม่ทราบว่าจะเอาคำสั่งไหนมาใช้อย่างไรดีน่ะครับ

linconz

  • VIP
  • Sr. Member
  • *
  • Posts: 357
Re: Maxtradeของแต่ละค่าเงิน
« Reply #1 on: มิถุนายน 21, 2010, 02:07:24 pm »
ใช้ sleep(xxx) ช่วยได้   xxx=ค่าที่จะให้ delay เป็น millisecond (1000= 1 วิ)

แต่ใน back test มันจะไม่ทำงานน๊ะครับ forward test ได้ demo ได้ real ได้

อีกวิธี่คุณก็สร้างเงื่อนไขให้มัน ตัดกันใหม่ๆแล้วก็เปิด ถ้าตัดกันเกิน 2-3 แท่งแล้วไม่ต้องเปิดอะไรอย่างนี้น่ะครับ

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
Re: Maxtradeของแต่ละค่าเงิน
« Reply #2 on: มิถุนายน 21, 2010, 02:12:42 pm »
ลองอธิบายรูปแบบการทำงานของ EA ที่คุณต้องการให้ละเอียดหน่อบครับผมอ่านแล้วยัง งง นิดหน่อยครับ

br9788

  • Newbie
  • *
  • Posts: 14
Re: Maxtradeของแต่ละค่าเงิน
« Reply #3 on: มิถุนายน 21, 2010, 04:37:05 pm »
ผมใช้indicator CCI กับ Stochastic เป็นเงื่อนไขการทำOrderครับ แต่ปัญหามันอยู่ที่ผมอยากจะกำหนดจำนวนOrderที่กำลังเปิดสูงสุดของแต่ละchartที่ใส่EAไป
เช่นถ้าตั้งMaxtradeไว้3  พอมันมีChartไหนที่เข้าเงื่อนไข มันก็จะสั่งเปิดOrderทีเดียว3รายการรวด เหมือนกับของdragonpipsเค้าเลยอ่าครับ
ผมไม่ค่อยเข้าใจคำสั่งเกี่ยวกับOrderว่าจะเอาตัวไหนมาทำแบบนั้นได้บ้าง

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
Re: Maxtradeของแต่ละค่าเงิน
« Reply #4 on: มิถุนายน 21, 2010, 05:13:34 pm »
แต่ปัญหามันอยู่ที่ผมอยากจะกำหนดจำนวนOrderที่กำลังเปิดสูงสุดของแต่ละchartที่ใส่EAไป   ถ้าตรงนี้หมายความ คุณเปิด max trade ได้ 3 order แล้วคุณเล่น 2 คู่เงิน เช่น eu  gu คุณต้องการให้มันเปิด EU 2 order แล้วเปิด GU 1 order แบบนี้   สมมุติว่า EU มันเข้าจังหวะเปิด Order แล้ว ในเงื่อไขของ EU ที่จะเปิด Order คุณต้องเขียนให้มันตรวสอบก่อนครับว่า EU เปิดไปกี่ Order แล้ว ซึ่งเริ่มแบบนี้ครับ

extern int GU =1;
extern int EU=2;

int start()
{

int totaleu;
int totalgu;


for(int i=0;i<OrdersTotal();i++)
{
     OrderSelect( i, SELECT_BY_POS, MODE_TRADES) ;
     if(OrderSymbol()=="EURUSD" )
     {
         totaleu++;
     
     }
 
        if(OrderSymbol()=="GBPUSD" )
     {
         totalgu++;
     
     }
}


  if(totalgu<GU)
  {
 
 
  }
 
 
 
  if(totaleu<EU)
  {
 
 
  }


return (0);
}

br9788

  • Newbie
  • *
  • Posts: 14
Re: Maxtradeของแต่ละค่าเงิน
« Reply #5 on: มิถุนายน 22, 2010, 03:15:47 pm »
อันนี้เอาไปใช้กับการตรวจสอบว่ามีorderเก่าเปิดอยู่(อาจจะเทรดมือหรือปิดEAแล้วเปิดใหม่)แล้วทำการปิดตามเงื่อนไขที่เราตั้งได้ใช่มั๊ยครับ แต่ก็ยังงงๆอยู่ว่าจะใช้ัยังไง

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
Re: Maxtradeของแต่ละค่าเงิน
« Reply #6 on: มิถุนายน 23, 2010, 12:24:37 am »
EA ตัวอย่างที่ผมเขียนให้ดูมันจะเริ่มจากการที่คุณกำหนดว่าแต่ละคู่เงินจะเปิด กี่ Order ในตัวอย่าง ผมกำหนด EU = 2  ,Gu =1  หมายความว่าจะเปิด EU 2 Order  และ GU 1 Order ครับ ที่นี้ถ้าผมสมมุติดว่าใน Account มีการเปิด GU ไปแล้ว 1 Order EA ตัวนี้ถ้าไปพัฒนาต่อโดยการเพิ่มเงื่อนไขการเปิด Order  เข้าไปที่ 
 if(totalgu<GU)
  {// เงื่อนไขการเปิด Order
 
   // เนื้อหาในส่วนคำสั่งเปิด order
  }
   
  if(totaleu<EU)
  {// เงื่อนไขการเปิด Order
  // เนื้อหาในส่วนคำสั่งเปิด order
 
  }

EA มันก็จะเริ่มทำงานก่อนครับว่าใน account ของคุณมี order อะไรมั้ง ถ้าที่ผมสมมุติคือ account คุณมีการเปิด order ด้วยมือเป็น GU ไปแล้ว พอ EA เริ่มทำงานก็จะพบว่า  มี Order gu มากกว่าที่กำหนดหรือเปล่า ถ้ามีมากกว่าถึง เงื่อนไขการเปิดจะตรงแต่มันก็ดักเอาไวแล้วครับว่า มี GU เกินกำหนดถึงไม่ทำการเปิด