EA Programing => ปัญหาที่พบในการเขียน EA => Topic started by: Nantipat on ธันวาคม 13, 2015, 10:40:13 am

Title: รบกวน Admin ขอความรู้เกียวกับ การ OrderModify (TrailingStop) ทุกOrder
Post by: Nantipat on ธันวาคม 13, 2015, 10:40:13 am
 :'(รบกวน Admin หรือผู้รู้ครับ
ผมจะสามารถให้ OrderModify (TrailingStop)ทุกOrder ที่เข้าเงื่อนไขตามที่เราตั้งไว้ได้ไหมครับ
เช่น EA เปิดทั้งหมด 10 Order
TrailingStop  ที่ 150 pips พอถึง150 pips แล้ว Order ที่ EA เปิดไว้ เข้าเงื่อนไข TrailingStop 5 Order
 ???จะต้องเขียน code แบบไหน ครับถึงจะ Modify 5  Order ที่เข้าเงื่อนไขตามที่เราตั้งไว้พร้อมกันครับ ???

 :)ขอบคุณครับ
จากcode นี้ จะ Modify แค่ ทีละ1 Order ครับ
{
 int ordertotal=OrdersTotal()-1;
  for(;ordertotal>=0;ordertotal--){
    int Count=OrderSelect(ordertotal,MODE_TRADES);
      if(OrderMagicNumber( )== Magic )
          if(OrderType()== OP_BUY)   // long position is opened
           {
            if(TrailingStop>0) 
              {                 
               if(Bid-OrderOpenPrice()>Point*TrailingStop)
                  if(OrderStopLoss()<Bid-Point*TrailingStop)
                    {
                     int res=OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-Point*TrailingStop,Digits),OrderTakeProfit(),0,Green);
                     if(!res)
                     Print("Error in OrderModify. Error code=",GetLastError());
                     else
                     Print("Order modified successfully.");
                    }
                      }
                        }
           else
            {
             if(TrailingStop>0) 
              {                 
               if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
                  if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
                  {
                     int res=OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask-Point*TrailingStop,Digits),OrderTakeProfit(),0,Red);
                     if(!res)
                     Print("Error in OrderModify. Error code=",GetLastError());
                     else
                     Print("Order modified successfully.");
                     }
                       }   
                         }
                          return (TrailingStop);
                           }
Title: Re: รบกวน Admin ขอความรู้เกียวกับ การ OrderModify (TrailingStop) ทุกOrder
Post by: admin on ธันวาคม 13, 2015, 02:23:11 pm
คือจะให้มันตั้ง Trailling ทุก order ที่เข้าเงื่อนไขใช่ไหมครับ ผมต้องถามก่อน ทุก order นี้เปิดพร้อมกันหรือเปล่าครับ เพราะ Trailing มันจะดูราคาเปิดเป็นหลัก 
Title: Re: รบกวน Admin ขอความรู้เกียวกับ การ OrderModify (TrailingStop) ทุกOrder
Post by: Nantipat on ธันวาคม 13, 2015, 11:20:44 pm
คือจะให้มันตั้ง Trailling ทุก order ที่เข้าเงื่อนไขใช่ไหมครับ ผมต้องถามก่อน ทุก order นี้เปิดพร้อมกันหรือเปล่าครับ เพราะ Trailing มันจะดูราคาเปิดเป็นหลัก 

คือจะให้มันตั้ง Trailling ทุก order ที่เข้าเงื่อนไขใช่ไหมครับ=ใช่ครับ
ทุก order นี้เปิดพร้อมกันหรือเปล่าครับ= ทุกOrder ไม่ได้เปิดพร้อมกันครับ ทุกๆ 4 ชม. จะเปิด 1 Order ถ้าเข้าเงื่อนไขในการเปิดครับ และจะเปิดสูงสุดที่  100 Order ครับ
Title: Re: รบกวน Admin ขอความรู้เกียวกับ การ OrderModify (TrailingStop) ทุกOrder
Post by: D_Diamond on มกราคม 31, 2016, 08:25:57 am
ผมเดาน่าจะผิดตรงนี้ครับ
 for(;ordertotal>=0;ordertotal--){

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

ตามปกติน่าจะเขียนแบบนี้ครับ
int ordertotal=OrdersTotal()-1;
  for(ordertotal;ordertotal>=0;ordertotal--){
Title: Re: รบกวน Admin ขอความรู้เกียวกับ การ OrderModify (TrailingStop) ทุกOrder
Post by: Nantipat on มีนาคม 04, 2016, 09:17:43 am
ขอบคุณครับ