Open Forex4you Account

Server รัน EA 1000 / ปี

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

Author Topic: รบกวนช่วยทำให้มันใช้ได้ที  (Read 13581 times)

prinn

  • Newbie
  • *
  • Posts: 7
รบกวนช่วยทำให้มันใช้ได้ที
« on: กันยายน 03, 2010, 02:38:46 am »
ผมก็ไม่ค่อยเป็นอะไรนะครับ แต่ก็อยากทำเองบ้าง โดยการไปเอารูปแบบ การตัดกัน moving everage
ลองเอาตัวนี้ไปดูนะครับ ไปปรับแต่งเพิ่มเติม

แล้วก็พยามศึกษาเองอยู่นานมาก ลองรันแล้วรันอีก มันก็ไม่ยอมเปิด order หรือเปิดแล้วไม่ทำอะไรต่ออีกเลย ลองเช็คดูตรงที่น่าจะมีปัญหาตรงนี้
2010.09.03 02:20:07   2009.08.20 15:33  smaaa EURUSD,H1: OrderModify error 4051
2010.09.03 02:20:07   2009.08.20 15:33  smaaa EURUSD,H1: invalid ticket for OrderModify function

แต่ผมก็แก้ไม่ได้ซักที

extern double TakeProfit = 20;
extern double Lots = 0.1;
extern int TrailingStop =10;
int start()
  {     
         double ma =iMA(NULL,0,10,0,MODE_SMMA,PRICE_MEDIAN,0);
         double ma1 =iMA(NULL,0,20,0,MODE_SMMA,PRICE_MEDIAN,0);
         double ma2 =iMA(NULL,0,30,0,MODE_SMMA,PRICE_MEDIAN,0);
         double ma3 =iMA(NULL,0,40,0,MODE_SMMA,PRICE_MEDIAN,0);
         int kway = check(ma,ma1,ma2,ma3);
         
         int total =OrdersTotal();
         int ticket;
         double Lots=0.1;
         
         if(total==0)
         {
             if(kway==1)
             {
                ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-Point*10,0,"smaaa",0,0,Green);
                OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
             
             
             }
         
             if(kway==2)
             {
             
                 ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+Point*10,0,"smaaa",555,0,Red);
                 OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
             
             }
         
         
         }
         
         
          OrderSelect(0,SELECT_BY_POS,MODE_TRADES);
             
          if (OrderType() == OP_BUY)
         {
           if (   Bid - OrderOpenPrice() > TrailingStop*Point)
           
                OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop,OrderTakeProfit(), 0, Green);
              }
     
      else
        {
           if (OrderType() == OP_SELL)
             
            if ( OrderOpenPrice() - Ask  >  TrailingStop*Point  )
            OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, Red);
                }

         
         
         
         

   return(0);
  }
 
 
 
 
  int check (double sma10 ,double sma20,double sma30,double sma40)
{    static int lastway =0;
     static int way     =0;
     
     if(sma10 > sma20> sma30> sma40)
     {
        way=1;
     
     }
   
    if(sma10 < sma20< sma30< sma40)
     {
        way=2;
     
     }
     
     if(way!= lastway)
     {
        lastway = way;
        return (lastway);     
     }
 
       return (0);

}

อยากให้มันตัดกันตามเงื่อนไข และเก็บทีละ 20 จุด และตั้ง sl ขยับได้ 10 จุด
รบกวนด้วยนะครับ

mildassassin

  • Jr. Member
  • **
  • Posts: 59
Re: รบกวนช่วยทำให้มันใช้ได้ที
« Reply #1 on: กันยายน 04, 2010, 12:59:41 am »
ผมต้องขอออกตัวก่อนนะครับว่า ผมก็รู้แบบน้อยนิดเหมือนกันครับ
แต่เวลาผมเขียนผมก็เขียนจากเว็บทำ ea น่ะครับ
มันก็ทำง่ายดี พอเสร็จแล้วก็เอามาดูโค๊ดแล้วก็ศึกษาไปด้วยน่ะครับ
ถ้าเอาตามที่ผมเข้าใจนะครับ
ผมคิดว่าอาจจะผิดตรงที่มันตรวจสอบค่าน่ะครับ

if(sma10 > sma20> sma30> sma40)

เท่าที่ผมเคยทำ ea มาจากเว็บสร้าง ea มานะครับ
เวลาที่มีการตรวจสอบค่าหลาย ๆ ค่าพร้อม ๆ กัน ไม่ควารจะทำแบบต่อเนื่องกันหมด
มันน่าจะเขียนคำสั่งตรวจสอบอย่างนี้ครับ (ตัวอย่างนะครับ)

if (Buy1_1 > Buy1_2 && Buy2_1 >= Buy2_2 && Buy3_1 > Buy3_2 && Buy4_1 < Buy4_2) Order = SIGNAL_BUY;

ถ้าเอาอย่างที่คุณ prinn ทำมาก็น่าจะได้อย่างนี้นะครับ

if (sma10 > sma20 && sma20 > sma30 && sma30 > sma40)

ให้มันตรวจสอบทีละคู่ก่อน ถ้าเงื่อนไขทั้งหมดถูกต้อง ก็น่าจะทำต่อได้นะครับ
อันนี้ตามที่ผมเข้าใจนะครับ ถูกหรือไม่ถูกต้องยังไงก็ต้องขออภัยมา ณ ที่นี้ครับ
หรือถ้าสนใจทำ ea จากเว็บสร้าง ea ก็ไปที่เว็บนี้ได้เลยครับ

http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/

 ;D

prinn

  • Newbie
  • *
  • Posts: 7
Re: รบกวนช่วยทำให้มันใช้ได้ที
« Reply #2 on: กันยายน 04, 2010, 02:19:11 am »
ขอบคุณมากครับ คุณ mildassassin เดี๋ยวจะลองเอาไปแก้ไขดู
ได้ไม่ได้ยังไงจะกลับมาแจ้งให้ทราบครับ



ไปลองปรับแก้มาแล้วครับ มันยังขึ้นเหมือนเดิมเลยอ่ะ
เดี๋ยวค่อย ๆ ทดลองไปเรื่อย ๆ แล้วกันครับ ขอบคุณมาก

« Last Edit: กันยายน 04, 2010, 02:27:34 am by prinn »

prinn

  • Newbie
  • *
  • Posts: 7
Re: รบกวนช่วยทำให้มันใช้ได้ที
« Reply #3 on: กันยายน 07, 2010, 01:23:50 am »
ผมปล้ำมาหลายวันแล้วอ่ะ
ยังไม่เทรดเลย ยังขึ้น error อยู่เลย

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
Re: รบกวนช่วยทำให้มันใช้ได้ที
« Reply #4 on: กันยายน 07, 2010, 03:50:52 am »
ลองเอาไปดูครับ

linconz

  • VIP
  • Sr. Member
  • *
  • Posts: 357
Re: รบกวนช่วยทำให้มันใช้ได้ที
« Reply #5 on: กันยายน 07, 2010, 04:17:41 pm »
แอดมิน นอนดึกเหมือนกันแฮะ หรือว่าพึ่งจะตื่น :)

prinn

  • Newbie
  • *
  • Posts: 7
Re: รบกวนช่วยทำให้มันใช้ได้ที
« Reply #6 on: กันยายน 07, 2010, 11:59:56 pm »
มันเข้าไม่ค่อยใกล้กับจุดที่ต้องการเท่าไหร่นะครับ

แล้วรู้สึกว่ามันจะปิดที่จุดเดิมบ่อย ๆ เลยอ่ะ

ตั้ง tp ไว้ที่ 10 แต่มันก็ไม่ปิดอ่ะครับ

อยากให้เข้า buy หรือ sell ใกล้ ๆ กับจุดตัดที่ระบุไว้ตามเงื่อนไข

แล้ว ก็ปิด ที่ 10 pip หรือตามที่ต้องการ แล้วก็เช็คดูว่าเงื่อนไขตามเดิมมั้ย

ถ้าตามเดิมก็เข้า buy ทางเดิมต่อเลย จนกว่าเงื่อนไขเปลี่ยนทาง ก็ปิด และก็เข้า sell