Open Forex4you Account

Server รัน EA 1000 / ปี

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

Author Topic: ช่วยผมหน่อยครับ  (Read 13780 times)

Alonepro

  • Newbie
  • *
  • Posts: 16
ช่วยผมหน่อยครับ
« on: สิงหาคม 09, 2013, 10:20:29 am »
จะให้ Order ที่สอง ห่างจาก Order แรก x pip Order ที่สามห่างจาก Order ที่ สอง x pip ไปเรื่อยๆ
ต้องเขียนโค๊ด ยังไง หรอ ครับแนะนำหน่อยครับไปไม่เป็น

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
Re: ช่วยผมหน่อยครับ
« Reply #1 on: สิงหาคม 09, 2013, 11:51:51 am »
หลักการเลยนะครับ
1.คุณต้องวน loop เพื่อตรวจสอบราคาเปิดของ Order ตัวสุดท้ายก่นครับ
2.เมื่อได้ราคาเปิดของ Order ตัวสุดท้ายก็คือให้บวกจำนวน pip ที่คุณต้องการให้ order มันห่างกันเข้าไปครับ
3.สร้างเงื่อนไขตรวจสอบราคาปัจจุบันว่าเท่ากับหรือมากกว่าราคาที่เราได้ในข้อสองหรือยังครับถ้าได้แล้วก็สั่งเปิด order เลยครับ แต่ถ้าเป็นการวาง pending เมื่อเราได้ราคาในข้อ 2 แล้วก็สั่งวาง order ได้เลยครับ

หลักๆๆมีประมาณนี้ครับ

Alonepro

  • Newbie
  • *
  • Posts: 16
Re: ช่วยผมหน่อยครับ
« Reply #2 on: สิงหาคม 09, 2013, 01:27:55 pm »
for(int a=0;a<OrdersTotal();a++)
{   
OrderSelect( a,SELECT_BY_POS,MODE_TRADES) ;
  if(OrderMagicNumber()==111)
  {
  pip=OrderOpenPrice();
  }
}

ใช้เป็นตัวหา ราคาเปิดของ ออเดอร์แรก




if(total==0)    ///ออเดอร์แรก
    {
      if(Ordertype ==1)
       {
         ticket=OrderSend(Symbol(),OP_SELL,Lotx,Bid,3,0,/*Bid-Point*Profit*/0,"Down_Ex",111,0,Red);
         OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
        }
      if(Ordertype ==2)
       {
         ticket=OrderSend(Symbol(),OP_BUY,Lotx,Ask,3,0,/*Ask+Point*Profit*/0,"Up_Ex",111,0,Green);
         OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
        }
    }


if(total==1)  /// ออเดอร์ สอง
    {
      if(Ordertype ==1 && Bid-StepB ==pip)
       {
         ticket=OrderSend(Symbol(),OP_SELL,Lotx*2,Bid,3,0,/*Bid-Point*Profit*/0,"Down_Ex",0,0,Red);
         OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
        }
      if(Ordertype ==2 && Ask+StepB ==pip)
       {
         ticket=OrderSend(Symbol(),OP_BUY,Lotx*2,Ask,3,0,/*Ask+Point*Profit*/0,"Up_Ex",0,0,Green);
         OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
        }

เงือนไขประมาณนี้ถูกไหมครับ

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
Re: ช่วยผมหน่อยครับ
« Reply #3 on: สิงหาคม 09, 2013, 08:09:39 pm »
Bid-StepB ==pip

คุณจะกำหนดเงื่อนไขว่าอะไรหรอครับ

Alonepro

  • Newbie
  • *
  • Posts: 16
Re: ช่วยผมหน่อยครับ
« Reply #4 on: สิงหาคม 09, 2013, 10:09:04 pm »
Bid-StepB ==pip

Bid เป็นราคาปัจจุบัณ
StepB เป็นระยะห่างที่ผมกำหนด
pip เป็นราคาเปิดจาก ออเดอร์แรก

เงือนไขประมาณว่า
ราคาปัจจุบัณ - ระยะห่าง = ราคาเปิดออเดอร์แรก
ให้เปิด ออเดอร์ Sell

ถูกหรือเปล่าครับ แต่ผมคิดว่าผิดแน่ดูมันแปลกๆ

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
Re: ช่วยผมหน่อยครับ
« Reply #5 on: สิงหาคม 10, 2013, 01:06:22 pm »
ลองแบบดูดูครับผมอ่านเงื่อนไขก็ยังงงนิดหน่อย

 if(Ordertype ==1 && ( Bid- Point*StepB ==pip)  )

ตรง == pip  นี้ถ้าปรับได้ควรปรับเป็น >=pip ครับเพราะคำว่า = ถ้าเกินหรือน้องกว่าจะไม่เปิดเลยนะครับ

ลองแก้แบบนี้แล้ว Test EA ดูก่อนครับ

Alonepro

  • Newbie
  • *
  • Posts: 16
Re: ช่วยผมหน่อยครับ
« Reply #6 on: สิงหาคม 10, 2013, 08:20:48 pm »
ว่าแล้วทำไม มันไม่ค่อยเปิด ขอบคุณมากครับ แอดมิน