EA Programing => ปัญหาที่พบในการเขียน EA => Topic started by: Alonepro on สิงหาคม 09, 2013, 10:20:29 am
-
จะให้ Order ที่สอง ห่างจาก Order แรก x pip Order ที่สามห่างจาก Order ที่ สอง x pip ไปเรื่อยๆ
ต้องเขียนโค๊ด ยังไง หรอ ครับแนะนำหน่อยครับไปไม่เป็น
-
หลักการเลยนะครับ
1.คุณต้องวน loop เพื่อตรวจสอบราคาเปิดของ Order ตัวสุดท้ายก่นครับ
2.เมื่อได้ราคาเปิดของ Order ตัวสุดท้ายก็คือให้บวกจำนวน pip ที่คุณต้องการให้ order มันห่างกันเข้าไปครับ
3.สร้างเงื่อนไขตรวจสอบราคาปัจจุบันว่าเท่ากับหรือมากกว่าราคาที่เราได้ในข้อสองหรือยังครับถ้าได้แล้วก็สั่งเปิด order เลยครับ แต่ถ้าเป็นการวาง pending เมื่อเราได้ราคาในข้อ 2 แล้วก็สั่งวาง order ได้เลยครับ
หลักๆๆมีประมาณนี้ครับ
-
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);
}
เงือนไขประมาณนี้ถูกไหมครับ
-
Bid-StepB ==pip
คุณจะกำหนดเงื่อนไขว่าอะไรหรอครับ
-
Bid-StepB ==pip
Bid เป็นราคาปัจจุบัณ
StepB เป็นระยะห่างที่ผมกำหนด
pip เป็นราคาเปิดจาก ออเดอร์แรก
เงือนไขประมาณว่า
ราคาปัจจุบัณ - ระยะห่าง = ราคาเปิดออเดอร์แรก
ให้เปิด ออเดอร์ Sell
ถูกหรือเปล่าครับ แต่ผมคิดว่าผิดแน่ดูมันแปลกๆ
-
ลองแบบดูดูครับผมอ่านเงื่อนไขก็ยังงงนิดหน่อย
if(Ordertype ==1 && ( Bid- Point*StepB ==pip) )
ตรง == pip นี้ถ้าปรับได้ควรปรับเป็น >=pip ครับเพราะคำว่า = ถ้าเกินหรือน้องกว่าจะไม่เปิดเลยนะครับ
ลองแก้แบบนี้แล้ว Test EA ดูก่อนครับ
-
ว่าแล้วทำไม มันไม่ค่อยเปิด ขอบคุณมากครับ แอดมิน