Open Forex4you Account

Server รัน EA 1000 / ปี

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

Author Topic: รบกวนช่วยดูช่วยบอกวิธีแก้ไขโค๊ด ea ตัวนี้ให้ทีครับ  (Read 18503 times)

dragon

  • Guest
รบกวนช่วยดูช่วยบอกวิธีแก้ไขโค๊ด ea ตัวนี้ให้ทีครับเป็น ea ที่มีคนเขียนไว้ครับใช้กับระบบ farewell + freedom.tpl ซึ่งระบบนี้ถือว่าดีมากครับทำกำไรได้ง่ายครับ
คนเขียนเขาเขียนมาแบบนี้ครับ
ผมแนบไฟล์มาด้วยแล้วนะครับ
ไฟล์ templete ก็ไว้โฟลเดอร์ templete
ไฟล์ indicator ก็ไว้ในโฟล์เดอร์ indicator
ไฟล์ Expert ก็ไว้ใน Expert
เงื่อนไขดังนี้นะครับ แต่ผมไม่รู้ว่าที่เขาเขียนไว้นั้นใช้ได้หรือเปล่าครับรบกวนท่านผู้รู้ช่วยดูให้ทีครับ ท่านใดมีแนวคิดดีๆช่วยแนะนำทีนะครับเพราะระับบ farewell + freedom ที่ผมได้ทดลองใช้นั้นถือว่าทำกำไรได้ดีมากเลยครับ

buy

1.กราฟต้องอยู่เหนือเส้นสีน้ำเงินเส้นบน
2.กราฟต้องอยู่เหนือเส้นสีชมพูด้วย
3.ตัว forex freedom เป็นสีน้ำเงินทั้งสี่เส้น ส่วนนี้แก้ได้ไหมครับอยากได้แบบน้ำเงิน 3 เส้นครับ
4.จุด SL และจุดออก เมื่อกราฟตัดเส้นสีชมพูกลับมา  ผมต้องการตัดเงื่อนไขนี้ออกครับโดยต้องการใส่ sl และ tp กำหนดไปแทนครับ

sell

1.กราฟต้องอยู่ใต้เส้นสีน้ำเงินเส้นบน
2.กราฟต้องอยู่ใต้เส้นสีชมพูด้วย
3.ตัว forex freedom เป็นสีแดงทั้งสี่เส้น ส่วนนี้แก้ได้ไหมครับอยากได้แบบแดง 3 เส้นครับ
4.จุด SL และจุดออก เมื่อกราฟตัดเส้นสีชมพูกลับมา ผมต้องการตัดเงื่อนไขนี้ออกครับโดยต้องการใส่ sl และ tp กำหนดไปแทนครับ

และที่เพิ่มเติมคือ ถ้ากราฟอยู่ห่างเส้นสีชมพู เกิน 11 จุดจะไม่ให้เทรดนะครับเพราะถือว่ากราฟอยู่ห่างเกิน
กรณีบายถ้าอยู่ห่างเส้นสีน้ำเงินบนเกิน 11 จุดก็ไม่เทรดเช่นกัน
กรณีเซลถ้าห่างเส้นสีน้ำเงินล่าง เกิน 11 จุดก็ไม่เทรดเช่นกันครับ




--------------------------------------------------------------------------------------------------------------

//+------------------------------------------------------------------+
//|                                                 Navin Prithyani  |
//|                      Copyright ฉ 2009, MetaQuotes Software Corp. |
//|                                               www.urbanforex.com |
//+------------------------------------------------------------------+
#property copyright "Copyright ฉ 2009, MetaQuotes Software Corp."
#property link      "www.urbanforex.com"

//pairs. (EURUSD, USDJPY, GBPUSD, USDCHF, USDCAD)
//TF = M5
extern int TakeProfit = 3;
extern int InitialStop = 20;
extern double Lots = 0.1;
extern int MaxOrder=1;
double sl=0, tp=0;
int         OpenOrders=0, cnt=0;
int         mode=0;
double      BuyPrice=0, SellPrice=0;
double      PriceOpenPrev,PriceOpenCurr,PriceClosePrev,PriceCloseCurr ;
double      EmaHight, EmaClose, EmaLow, Sma;
double      BarsDownH1,BarsDownM30,BarsDownM15,BarsDownM5;
double      BarsUpH1,BarsUpM30,BarsUpM15,BarsUpM5;
double      BollingerUP, BollingerLow , BollingerMiddle;
double      RSICURR, RSIPREV, StochCURR, StochPREV;

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   OpenOrders=0;
   for(cnt=0;cnt<OrdersTotal();cnt++)  
   {
     OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
     if (OrderSymbol()==Symbol())
     {            
          OpenOrders++;
     }
   }    

   PriceOpenPrev  = iOpen(NULL,0,1);
   PriceClosePrev = iClose(NULL,0,1);
   PriceOpenCurr  = iOpen(NULL,0,0);
   PriceCloseCurr = iClose(NULL,0,0);
  
   EmaHight       = iMA(NULL,0,80,0,MODE_EMA,PRICE_HIGH,0);
   EmaClose       = iMA(NULL,0,80,0,MODE_EMA,PRICE_CLOSE,0);
   EmaLow         = iMA(NULL,0,80,0,MODE_EMA,PRICE_LOW,0);
   Sma            = iMA(NULL,0,20,0,MODE_SMA,PRICE_CLOSE,0);
  
   BarsUpH1         = iCustom(NULL,0,"ForexFreedomBars",1,0);
   BarsUpM30        = iCustom(NULL,0,"ForexFreedomBars",3,0);  
   BarsUpM15        = iCustom(NULL,0,"ForexFreedomBars",5,0);
   BarsUpM5         = iCustom(NULL,0,"ForexFreedomBars",7,0);
  
   BarsDownH1         = iCustom(NULL,0,"ForexFreedomBars",0,0);
   BarsDownM30        = iCustom(NULL,0,"ForexFreedomBars",2,0);
   BarsDownM15        = iCustom(NULL,0,"ForexFreedomBars",4,0);
   BarsDownM5         = iCustom(NULL,0,"ForexFreedomBars",6,0);
  
   BollingerUP    = iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_UPPER,0);
   BollingerLow   = iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_LOWER,0);
   BollingerMiddle= (BollingerUP + BollingerLow) / 2;
  
   RSICURR        = iRSI(NULL,0,14,PRICE_CLOSE,0);     
   RSIPREV        = iRSI(NULL,0,14,PRICE_CLOSE,1);
   StochCURR      = iStochastic(NULL,0,10,3,3,MODE_SMA,0,MODE_MAIN,0);
   StochPREV      = iStochastic(NULL,0,10,3,3,MODE_SMA,0,MODE_MAIN,1);
  
  
/*        
   Comment  ("EmaHight = ",EmaHight,
            "\nEmaClose = ",EmaClose,
            "\nEmaLow = ",EmaLow,
            "\nSma = ",Sma,
            "\nBarsUpH1 = ",BarsUpH1,
            "\nBarsUpM30 = ",BarsUpM30,
            "\nBarsUpM15 = ",BarsUpM15,
            "\nBarsUpM5 = ",BarsUpM5,
            "\nBarsDownH1 = ",BarsDownH1,
            "\nBarsDownM30 = ",BarsDownM30,
            "\nBarsDownM15 = ",BarsDownM15,
            "\nBarsDownM5 = ",BarsDownM5);  
*/            
if (OpenOrders<1)
{          
      if (PriceOpenCurr > EmaHight  && PriceOpenCurr > EmaClose && PriceOpenCurr > EmaLow && PriceOpenCurr > Sma && BarsUpH1 !=0 && BarsUpM30 !=0 && BarsUpM15 !=0 && BarsUpM5 !=0 && (PriceOpenCurr-Sma <=10*Point || PriceOpenCurr-EmaHight <=10*Point) && Sma-EmaHight<10*Point && BollingerUP-BollingerLow>15*Point && RSICURR>RSIPREV && StochCURR>StochPREV  )
      {
          BuyPrice=Ask;
          if (TakeProfit==0) { tp=0; }
          else { tp=BuyPrice+TakeProfit*Point; }   
          if (InitialStop==0)  { sl=0; }
          else { sl=BuyPrice-InitialStop*Point; }
          OrderSend(Symbol(),OP_BUY,Lots,BuyPrice,3,sl,tp,NULL,0,0,Blue);
      }  
      if (PriceOpenCurr < EmaHight  && PriceOpenCurr < EmaClose && PriceOpenCurr < EmaLow && PriceOpenCurr < Sma && BarsDownH1 !=0 && BarsDownM30 !=0 && BarsDownM15 !=0 && BarsDownM5 !=0 && (Sma-PriceOpenCurr <=10*Point || EmaLow-PriceOpenCurr <=10*Point) && EmaLow-Sma<10*Point && BollingerUP-BollingerLow>15*Point && RSICURR<RSIPREV && StochCURR<StochPREV )
      {
          SellPrice=Bid;            
          if (TakeProfit==0) { tp=0; }
          else { tp=SellPrice-TakeProfit*Point; }   
          if (InitialStop==0) { sl=0; }
          else { sl=SellPrice+InitialStop*Point;  }
          OrderSend(Symbol(),OP_SELL,Lots,SellPrice,3,sl,tp,NULL,0,0,Red);
      }  
}

//----
if(OpenOrders!=0 && PriceOpenCurr<Sma)
  {
     for(cnt=OrdersTotal();cnt>=0;cnt--)
     {
        OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
          mode=OrderType();
        if (OrderSymbol()==Symbol())
        {
         if (mode==OP_BUY) { OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),0,Blue); }
        }
     }
  }

if(OpenOrders!=0 && PriceOpenCurr>Sma)
  {
     for(cnt=OrdersTotal();cnt>=0;cnt--)
     {
        OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
          mode=OrderType();
        if (OrderSymbol()==Symbol())
        {
         if (mode==OP_SELL) { OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),0,Red); }
        }
     }
  }
//----
//----
   return(0);
  }
//+------------------------------------------------------------------+

« Last Edit: มกราคม 06, 2011, 07:14:45 pm by dragon »

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
ตัวนี้เค้าเขียนไวหมดแล้วนี้ครับ ให้ดูเงื่อนไข
เปิด buy

if (PriceOpenCurr > EmaHight  && PriceOpenCurr > EmaClose && PriceOpenCurr > EmaLow && PriceOpenCurr > Sma && BarsUpH1 !=0 && BarsUpM30 !=0 && BarsUpM15 !=0 && BarsUpM5 !=0 && (PriceOpenCurr-Sma <=10*Point || PriceOpenCurr-EmaHight <=10*Point) && Sma-EmaHight<10*Point && BollingerUP-BollingerLow>15*Point && RSICURR>RSIPREV && StochCURR>StochPREV  )

กับเงื่อนไข เปิด sell

if (PriceOpenCurr < EmaHight  && PriceOpenCurr < EmaClose && PriceOpenCurr < EmaLow && PriceOpenCurr < Sma && BarsDownH1 !=0 && BarsDownM30 !=0 && BarsDownM15 !=0 && BarsDownM5 !=0 && (Sma-PriceOpenCurr <=10*Point || EmaLow-PriceOpenCurr <=10*Point) && EmaLow-Sma<10*Point && BollingerUP-BollingerLow>15*Point && RSICURR<RSIPREV && StochCURR<StochPREV )

ก็พอครับว่ามันตรงกับที่คุณต้องการหรือเปล่าครับ

dragon

  • Guest
ขอบคุณท่าน ea admin มากครับ

dragon

  • Guest
ผมลองใช้ ea ตัวนี้ดูครับแต่มันไม่้เปิดออเดอร์ครับน่าจะเป็นเพราะเงื่อนไขมากไปครับ ท่านใดว่างช่วยเขียนแบบเปิดออเดอร์แบบ 2 เงื่อนไขทีครับคือผมต้องการให้เปิดเมื่อ
buy
1.กราฟต้องอยู่เหนือเส้นสีน้ำเงินเส้นบน
2.กราฟต้องอยู่เหนือเส้นสีชมพูด้วย

sell
1.กราฟต้องอยู่ใต้เส้นสีน้ำเงินเส้นบน
2.กราฟต้องอยู่ใต้เส้นสีชมพูด้วย

แล้วตั้ง tp กับ sl ได้ท่านใดว่างช่วยเขียนโค้ดหรือเขียนตามแนวนี้ทีนะครับ ขอบคุณครับ

TvT

  • Full Member
  • ***
  • Posts: 133
ขอตอบนะครับลองเอาไปเปิด เข้าใจว่า มันเป็นของโบรก 5 จุด แล้วเอาลองโบรก 4 จุดมากกว่า

ส่วนวิธีแก้ ขอถาม admin ด้วยคนครับ ต้องแก้ตรองไหนครับ  ;D ;D ;D

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
extern int TakeProfit = 3;  ตรงนี้ไงครับที่สั่นไปเพราะบางโบร tp ต้อง 10 จุดอย่างต่ำครับถึงเปิด order ได้

dragon

  • Guest
extern int TakeProfit = 3;  ตรงนี้ไงครับที่สั่นไปเพราะบางโบร tp ต้อง 10 จุดอย่างต่ำครับถึงเปิด order ได้
ขอบคุณครับท่านแอดมิน

thuman

  • Newbie
  • *
  • Posts: 4
ผมไม่เห็นไฟล์ที่ให้โหลดครับ ยังงัยของลองใช้หน่อยครับ