Open Forex4you Account

Server รัน EA 1000 / ปี

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

Author Topic: รบกวนเว็บมาสเตอร์ ช่วยแก้ไขเพิ่มเติมให้หน่อยครับ  (Read 13545 times)

crotruy

  • Newbie
  • *
  • Posts: 7
extern double lots =0.1;
extern double sl =0;
extern double tp =0;
static int start=0;

int start() {
   double var1 =  iMA(NULL,0,1,0,1,0,0);
   double var2 =  iMA(NULL,0,12,0,1,0,0);
  
  if(start==0)
  {
     if(var1>var2)
       start=1;
       if(var1<var2)
       start=2;
      
       return (0);
  
  }

  if(start==1 )
  {  
     if(OrdersTotal()==1)
     {   if(var1<var2)
        {  OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),3,Pink);
           Sleep(2000);
           start=2;
           return (0);
          
         }
    
     }
    
     if(OrdersTotal()==0)
     {   if(var1<var2)
        {  OrderSend(Symbol(),OP_SELL,lots,Bid,3,0,0,"xxx",0,0,Red);
           Sleep(2000);
           start=2;
           return (0);
          
         }
    
     }
      
  
  }




 if(start==2 )
  {  
     if(OrdersTotal()==1)
     {   if(var1>var2)
        { OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),3,Pink);
           Sleep(2000);
           start=1;
           return (0);
          
         }
    
     }
    
     if(OrdersTotal()==0)
     {   if(var1>var2)
        {  OrderSend(Symbol(),OP_BUY,lots,Ask,3,0,0,"xxx",0,0,Green);
           Sleep(2000);
           start=1;
           return (0);
          
         }
    
     }
      
  
  }


    
return(0) ;
 }
===========================================

ผมทดลองนำไปใช้แล้วนะครับท่าน admin

มันเปิด order ตามเงื่อนไข ครับ

แต่มันไม่ ปิด order ตามเงื่อนไขครับ

ฝากท่าน admin ช่วยแก้ไข ให้หน่อยนะครับ

EA ที่ต้องการ มีเงื่อนไข ดังนี้ ครับ

1. เปิด ออเดอร์ซื้อลง เมื่อ เส้น ema 12 ตัดลง เส้น ema 26
     ปิด ออเดอร์ซื้อลง เมื่อ เส้น ema 12 ตัดขึ้น เส้น ema 26
( ปิด order ข้อ 1 เปิด order ข้อ 2 ตรงจุดเดียวกันทันที )

2. เปิด ออเดอร์ซื้อขึ้น เมื่อ เส้น ema 12 ตัดขึ้น เส้น ema 26  
     ปิด ออเดอร์ซื้อขึ้น เมื่อ เส้น ema 12 ตัดลง เส้น ema 26  
( ปิด order ข้อ 2 เปิด order ข้อ 1 ตรงจุดเดียวกันทันที )


รันแบบต่อเนื่อง
จำนวน lot เริ่มที่ 0.01

ขอบคุณล่วงหน้าครับ


คุณสมบัติ Ema คือ
shift : 0
Apply : close
Ma method: Exponential

ขอบคุณท่าน admin มากครับ
« Last Edit: พฤษภาคม 02, 2011, 05:37:09 pm by crotruy »

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
ระวังหน่อยนะครับ เพราะ EA จะเยช่วงที่กราฟสวิงเพราะค่า sma มันตัดไปตัดมานะครับ

extern int Lots=0.01;
static int memo=0;
int check (double v1 ,double v2)
{    static int lastway =0;
     static int way     =0;
     
     if(v1 > v2)
     {
        way=1;
     
     }
   
    if(v1 < v2)
     {
        way=2;
     
     }
     
     if(way!= lastway)
     {
        lastway = way;
        return (lastway);     
     }
 
       return (0);

}

int start()
  {     
         
         double var1 =  iMA(NULL,0,12,0,1,0,0);
         double var2 =  iMA(NULL,0,26,0,1,0,0);
         
         int kway = check(var1,var2);
         
         int total =OrdersTotal();
         int ticket;
         double Lots=0.1;
     
         
         if(total==0)
         {
             if(kway==1)
             {
             
                OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,"v1v2",0,0,Green);
                memo=1;
             
             
             }
         
             if(kway==2)
             {
             
               OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0,"v1v2",555,0,Red);
                memo=2;
             
             }
         
         
         }
         
         
             if(total==1)
         {
             if(kway==1 && memo==2)
             {OrderSelect(0,SELECT_BY_POS,MODE_TRADES);
              OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),3,Pink);
              Sleep(2000);
                OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,"v1v2",0,0,Green);
               
             
             
             }
         
             if(kway==2 && memo==1)
             {
               OrderSelect(0,SELECT_BY_POS,MODE_TRADES);
              OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),3,Pink);
               Sleep(2000);
               OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0,"v1v2",555,0,Red);
                 
             
             }
         
         
         }
         
           
         

   return(0);
  }

crotruy

  • Newbie
  • *
  • Posts: 7
ขอบคุณมากครับ

เดี๋ยวขอนำไปทดสอบเลยนะครับ

ช่วยแก้ตรงนี้ให้หน่อยครับ

รันแบบต่อเนื่อง จำนวน lot เริ่มที่ 0.01 ( ปรับเปลี่ยนเองได้ )
เพราะEA ที่ได้มาปรับเปลี่ยนไม่ได้ครับ

ขอบคุณล่วงหน้าครับ
« Last Edit: พฤษภาคม 03, 2011, 09:24:28 pm by crotruy »