FREE EA AND INDICATOR คือแจกฟรีจริงๆไม่ต้องสมัคร Downline => แจก EA ฟรี => Topic started by: gagoi on ธันวาคม 01, 2010, 06:55:04 pm

Title: รบกวนด้วยครับ
Post by: gagoi on ธันวาคม 01, 2010, 06:55:04 pm
ว่าจะรอเขียนเอง แต่ท่าจะอีกนาน ;D

ขอรบกวนแอดมิน หรือพี่ น้องท่านใดจะกรุณาครับ

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

ระบบเทรด จากแนวความคิดที่ว่า เมื่อเทรนด์ขึ้น สัณญานขึ้นน่าเชื่อถือกว่าสัณญานลง

เมื่อเทรนด์ลง สัณญานลงน่าเชื่อถือกว่าสัณญานขึ้น

ด้งนั้น

1 ต้องการ ma 2 เส้น(ตั้งค่ายาวหน่อย) เพื่อยืนยันเทรนด์ ว่าอยู่ ซื้อ หรือขาย

2 ต้องการ ma 2 เส้น (ตั้งค่าสั้นลงมา) เพื่อใช้เป็นตัวส่งสัณญาน ซื้อ หรือขายตามเทรนด์ (จะไม่ส่งคำสั้งสวนเทรนด์)

3 เมื่อซื้อแล้ว จะใช้ t/s เพื่อ ตั้ง s/l ทันที และตั้งค่า t/s เพื่อปกป้องกำไร และปัองกันแรงตกสวนทางเทรนด์

(ดังนั้นจึงไม่ใช้ค่า ma )

ซึ่งค่าของ ma ทั้ง 4 เส้น และ t/s s/l จะต้องปรับแต่งได้ครับ เพื่อปรับใช้กับคุ่เงิน และช่วงเวลาที่เหมาะสมได้

ขอบคุณล่วงหน้าครับผม
Title: Re: รบกวนด้วยครับ
Post by: admin on ธันวาคม 02, 2010, 01:11:21 pm
ครับเดียวอีก 2วันผมว่างจะทำให้พร้อมกับอืกท่านที่ฝากผมเขียนครับ
Title: Re: รบกวนด้วยครับ
Post by: gagoi on ธันวาคม 02, 2010, 11:52:50 pm
ขอบคุณมาก ๆ ครับ
Title: Re: รบกวนด้วยครับ
Post by: admin on ธันวาคม 04, 2010, 01:45:15 pm
extern double lot=0.1;
extern double long1=50;
extern double long2=100;
extern double short1=5;
extern double short2=10;
extern double TP=0.1;
extern double SL=0.1;

int start()
{   double ma1 =iMA(NULL,0,long1,8,MODE_SMMA,PRICE_MEDIAN,0);
    double ma2 =iMA(NULL,0,long2,8,MODE_SMMA,PRICE_MEDIAN,0);
    double ma3 =iMA(NULL,0,short1,8,MODE_SMMA,PRICE_MEDIAN,0);
    double ma4 =iMA(NULL,0,short2,8,MODE_SMMA,PRICE_MEDIAN,0);

  จากนั่นก็นำค่า ma1 ma2 ที่เป็นเส้น MA ยาว กับ ma3 ma4 ซึ้งเป็นเส้นสั้นไปตรวจสอบเงื่อนไขการเปิดครับ เขียนได้เท่านี้จากที่คุณอธิบายมาอ่ะครับ



return (0);
}
Title: Re: รบกวนด้วยครับ
Post by: gagoi on ธันวาคม 04, 2010, 11:57:39 pm
ขอบคุณมากครับ

อันนี้จะไม่เปิดออเดอร์สวนเทรนด์(จากเส้น ma long 1,2 )แล้วใช่ไหมครับ

แล้วคำสั่งชุดนี้ให้ก๊อปใส่ใน ea เลยใช่ไหมครับ(ขออภัยที่ถามครับ พอดีที่ว่าจะหัดยังอ่านไปได้แค่บทที่สาม ที่สี่อยู่เลยครับ)
Title: Re: รบกวนด้วยครับ
Post by: admin on ธันวาคม 05, 2010, 12:34:08 pm
ขอบคุณมากครับ

อันนี้จะไม่เปิดออเดอร์สวนเทรนด์(จากเส้น ma long 1,2 )แล้วใช่ไหมครับ

แล้วคำสั่งชุดนี้ให้ก๊อปใส่ใน ea เลยใช่ไหมครับ(ขออภัยที่ถามครับ พอดีที่ว่าจะหัดยังอ่านไปได้แค่บทที่สาม ที่สี่อยู่เลยครับ)
ตัวนี้เป็นแค่ชุดคำสั่งในการเตรียค่า ma สั้นยาวเท่านั่นเองครับจากนั่นตุณก็แค่เอาตัวแปร ma1 ma2 ma3 ma4 ไปใช้เงื่อนไขตรวจสอบถ้าตรงตามแนวคิดคุณก็เขียนตำสั่งเปิดครับ มีตรงไหนไม่เข้าใจก็ถามต่อได้ครับ
Title: Re: รบกวนด้วยครับ
Post by: gagoi on ธันวาคม 06, 2010, 12:40:47 am
ขอบคุณครับผม

เท่าที่นำไปลอง (ทดลองแต่ว่าเปิด ปิดออเดอร์หรือไม่) ก็ไม่มีปัญหาครับ

ตอนนี้ขาด trailing stop ที่จะใช้เพื่อรักษาผลกำไร และป้องกันโดนสวนเทรนด์ เท่านั้น ครับ

Title: Re: รบกวนด้วยครับ
Post by: admin on ธันวาคม 06, 2010, 01:48:42 pm
ขอบคุณครับผม

เท่าที่นำไปลอง (ทดลองแต่ว่าเปิด ปิดออเดอร์หรือไม่) ก็ไม่มีปัญหาครับ

ตอนนี้ขาด trailing stop ที่จะใช้เพื่อรักษาผลกำไร และป้องกันโดนสวนเทรนด์ เท่านั้น ครับ


trailing stop ถ้าไม่เข้าใจก็ถามได้ครับ
Title: Re: รบกวนด้วยครับ
Post by: gagoi on ธันวาคม 06, 2010, 09:59:16 pm
//+------------------------------------------------------------------+
//|                                                      firstea.mq4 |
//|                      Copyright © 2009, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
     double ma10 , ma15 ,ma20 ,ma50 ;
     int total;
     int ticket;
     ma10=iMA(NULL,0,10,0,MODE_SMMA,PRICE_MEDIAN,0);
     ma15=iMA(NULL,0,15,0,MODE_SMMA,PRICE_MEDIAN,0);
     ma20=iMA(NULL,0,20,0,MODE_SMMA,PRICE_MEDIAN,0);
     ma50=iMA(NULL,0,50,0,MODE_SMMA,PRICE_MEDIAN,0);
     
     total=OrdersTotal();
     
     if(total<1)
     {
     
            if((ma20>ma50)==(Ask>=ma10>ma15))
                {   
               
                   if(ma10>ma15)
                     {     
                 
                        ticket=OrderSend(Symbol(),OP_BUY,0.5,Ask,3,Bid-Point*50,Ask+Point*50,"firstea",0,0,Green);
                        OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
                      }
                     
                      return (0);
                 }
     
          if((ma50>ma20)==(ma15>ma10>=Bid))
                 {
     
                    ticket=OrderSend(Symbol(),OP_SELL,0.5,Bid,3,Ask+Point*50,Bid-Point*50,"firstea",0,0,Red);
                    OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
                 
                 }
   }








   return(0);
  }
 
 
//+------------------------------------------------------------------+
Title: Re: รบกวนด้วยครับ
Post by: gagoi on ธันวาคม 06, 2010, 10:10:20 pm
ตอนนี้ดัดแปลงจากโค๊ดที่ admin ทำให้เป็นตัวอย่างครับ

ทดลองว่าสั่งซื้อผิดเทรนด์หรือเปล่าเท่านั้น ได้ผลเป็นที่น่าพอใจ (คือไม่ออเดอร์ผิดเทรนด์)

แต่ยังมีปัญหาตรงที่ เวลาเทรนด์ติดไซด์เวย์ จะขาดทุนจาการปิด เปิดออเดอร์เร็วตามราคาที่แกว่งตัวตามไซด์เวย์

จึงคิดจะกรองสัญณานด้วยการเพิ่ม trailling stop โดยเพิ่มขอรบกวน admin เพิ่มโค๊ดเข้าไป

ให้ทำการขายจาก trailling stop เท่านั้น (คือขายเมื่อราคาติด stoploss ที่ตั้งไว้ด้วย trailling stop )

ถ้ายังกรองได้ไม่ดีพอ อาจจะเพิ่ม parabolic sar อีกสักตัวเพื่อกรองสัญณานให้นิ่งขึ้น ไม่ให้ปิดออเดอร์ผิดอีก

ถ้ายังไง ขอคำแนะนำ และขอรบกวน ด้วยนะครับ
Title: Re: รบกวนด้วยครับ
Post by: gagoi on ธันวาคม 07, 2010, 10:28:43 am
 ;D ลองก๊อป โค๊ตตัวนี้ใส่ลงไป ไม่ได้ผลครับ

ยังไม่มี trailling stop เกิดขึ้น  ;D

extern int MagicNumber = 0;
extern bool SignalMail = true;
extern bool EachTickMode = True;
extern double Lots = 0.50;
extern int Slippage = 3;
extern bool UseStopLoss = True;
extern int StopLoss = 20;
extern bool UseTakeProfit = false;
extern int TakeProfit = 500;
extern bool UseTrailingStop = True;
extern int TrailingStop = 20;
Title: Re: รบกวนด้วยครับ
Post by: admin on ธันวาคม 07, 2010, 12:23:45 pm
ลองเอาไปดูครับครับผมยังไม่ได้ทดลองนะครับ


extern int trailingStop = 20;
int start()
  {
     double ma10 , ma15 ,ma20 ,ma50 ;
     int total;
     int ticket;
     ma10=iMA(NULL,0,10,0,MODE_SMMA,PRICE_MEDIAN,0);
     ma15=iMA(NULL,0,15,0,MODE_SMMA,PRICE_MEDIAN,0);
     ma20=iMA(NULL,0,20,0,MODE_SMMA,PRICE_MEDIAN,0);
     ma50=iMA(NULL,0,50,0,MODE_SMMA,PRICE_MEDIAN,0);
     
     total=OrdersTotal();
     
     if(total<1)
     {
     
            if((ma20>ma50)==(Ask>=ma10>ma15))
                {   
               
                   if(ma10>ma15)
                     {     
                 
                        ticket=OrderSend(Symbol(),OP_BUY,0.5,Ask,3,Bid-Point*50,Ask+Point*50,"firstea",0,0,Green);
                        OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
                      }
                     
                      return (0);
                 }
     
          if((ma50>ma20)==(ma15>ma10>=Bid))
                 {
     
                    ticket=OrderSend(Symbol(),OP_SELL,0.5,Bid,3,Ask+Point*50,Bid-Point*50,"firstea",0,0,Red);
                    OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
                 
                 }
   }
   
   
       if(total==1)
       {
       
     if(OrderType() == OP_BUY)
             {
               if(trailingStop > 0)
                 {
                   if(Bid - OrderOpenPrice() > trailingStop*Point)
                     {
                       if(OrderStopLoss()==0 || (Bid - OrderStopLoss()> trailingStop*Point))
                           OrderModify(OrderTicket(), OrderOpenPrice(),
                                       Bid - trailingStop*Point, OrderTakeProfit(), 0, Blue);
                     }
                 }
             }
           else
             {
               if(trailingStop > 0)
                 {
                   if(OrderOpenPrice() - Ask > trailingStop*Point)
                     {
                       if(OrderStopLoss() == 0 || OrderStopLoss()-Ask >  trailingStop*Point)
                           OrderModify(OrderTicket(), OrderOpenPrice(),
                                       Ask + trailingStop*Point, OrderTakeProfit(), 0, Red);
                     }           
                 }
             }
       
       }


   return(0);
  }
Title: Re: รบกวนด้วยครับ
Post by: gagoi on ธันวาคม 07, 2010, 06:41:59 pm
เพิ่งทดสอบครับ

ไม่ทราบเป็นอะไร มันไม่ส่งออเดอร์เลยครับ
Title: Re: รบกวนด้วยครับ
Post by: admin on ธันวาคม 07, 2010, 07:18:20 pm
 if((ma20>ma50)==(Ask>=ma10>ma15))
if((ma50>ma20)==(ma15>ma10>=Bid))

เงื่อนไขเขียนแบบนี้ผิดครับคูณต้องการเงื่อนไขยังไงครับลอง พิมเป็นคำพูดออกมาให้ผมอ่านหน่อยครับ
Title: Re: รบกวนด้วยครับ
Post by: gagoi on ธันวาคม 07, 2010, 10:54:39 pm
อ้าว เหรอครับ

แต่ผมทำ back test แล้วมันส่งออเดอร์นะครับ

เงื่อนไขก็เหมือนเดิมครับ เพียงแต่อันนี้ผมดัดแปลงเอาจากที่ท่าน admin ทำไว้เป็นตัวอย่าง ยังไม่ได้เอาที่เขียนใหม่ไปลง

พอดีเห็นทำ back test แล้วมันได้ ;D

เงื่อนไขเดิม คือ

1. ถ้าเส้น 20 ตัดเส้น 50 ขึ้น เป็นตัวกรองให้ สั่งเฉพาะคำสั่ง ซื้อ (long)

2. ถ้าเส้น 10 ตัดเส้น 15 ขึ้น ก็คือ ส่งออเดอร์ ซื้อ (long)(ซึ่งตอนข้อ 1. จะยังไม่ส่งออเดอร์ แค่กรองว่า เทรนด์ไหนแน่)

3.ปิดด้วย trailling stop เท่านั้น (ไม่สนใจเส้น ma)

เวลาส่งออเดอร์ขายก็เช่นกันครับ

1. ถ้าเส้น 20 ตัดเส้น 50 ลง เป็นตัวกรองให้ สั่งเฉพาะคำสั่ง ขาย(shot)

2. ถ้าเส้น 10 ตัดเส้น 15 ลง ก็คือ ส่งออเดอร์ ขาย (shot)(ซึ่งตอนข้อ 1. จะยังไม่ส่งออเดอร์ แค่กรองว่า เทรนด์ไหนแน่)

3.ปิดด้วย trailling stop เท่านั้น (ไม่สนใจเส้น ma)

ขอบคุณครับ
Title: Re: รบกวนด้วยครับ
Post by: admin on ธันวาคม 07, 2010, 11:19:19 pm
if((ma20>ma50) ==  ((Ask>=ma10)&& (ma10 >ma15) ))

if((ma50>ma20) ==  ((ma15>ma10) && (ma10>=Bid) ))

ลองเปลี่ยนเงื่อนไขเป็นแบบนี้ดูครับ

Title: Re: รบกวนด้วยครับ
Post by: gagoi on ธันวาคม 08, 2010, 12:20:46 am
ขอบคุณอีกครั้งครับผม

ได้ผลยังไงจะรีบแจ้งครับ
Title: Re: รบกวนด้วยครับ
Post by: gagoi on ธันวาคม 08, 2010, 10:40:33 am
แจ้งผลครับผม

ตอนนี้การส่งคำสั่ง ซื้อ ขาย ทำงานได้ปกติแล้วครับ

ทว่า trailling stop นั้น เมื่อมันอยู่เหนื่อค่าเปิดออเดอร์แล้ว มันควรจะเปลี่ยน stop loss ให้สูงขึ้นไม่ใช่หรือครับ

แต่ดูเหมือนตัวยังจะยังไม่เปลี่ยนครับผม
Title: Re: รบกวนด้วยครับ
Post by: gagoi on ธันวาคม 08, 2010, 11:58:45 am
ยืนยันครับผม

ตอนนี้คำสั่งเปิดออเดอร์ ซื้อ ขายทำงานปกติ

โดยใช้คำสั่งเป็น

if((ma20>ma50)==(ma10>ma15)) กับ if((ma50>ma20)==(ma15>ma10)) เท่านั้นครับ

ส่วน trailling stop นั้นยังคงมีปัญหาตรงที่

ปกติ ถ้าตั้ง trailling stop ไว้ที่ 10 แล้วเปิดออเดอร์ ซื้อ ที่ 110

stoploss ตั้งที่ 20 แล้ว

ask = 110

stoploss=20 (คือ 90)

trailling stop =10(คือ 100)

trailling stop จะต้องตั้งค่าใหม่ให้ stoploss เป็น 100

แต่ปัญหาอยู่ที่ ตอนที่

ask =100 trailling stop จะต้องไม่ทำงาน คือ stoploss จะยังคงอยู่ที่ 100 เท่าเดิม (ซึ่งคือปิดออเดอร์)

แต่ตอนนี้มันดันปรับลงตามมาด้วย เป็น 90 และลงอีก ก็ปรับอีก :o

เลยแทนที่จะได้กำไร กลับขาดทุนแทน  ;D ;D

ควรปรับยังไงดีครับ
Title: Re: รบกวนด้วยครับ
Post by: admin on ธันวาคม 08, 2010, 12:35:44 pm
ขอรายละเอียด ชนิด order ที่ tralilng ทำงานผิดพลาดแล้วขอ code ทั้งหมดที่คุณไปปรับแก้แล้วมาดูด้วยครับ
Title: Re: รบกวนด้วยครับ
Post by: gagoi on ธันวาคม 08, 2010, 02:31:17 pm
นี่คือตัวที่ทำ backtest เลยครับ bass มาจาก firstea ที่ท่าน admin ทำไว้นั่นแหละครับ

เพราะยังอ่านค่าตัวอื่น ๆ ไม่ออก 555 ;D

ไม่ได้ทำอะไรนอกจากตัด ค่า ask/bid ออกจากคำสั่งส่งออเดอร์ ซื้อ/ขาย ครับ ;D


extern int trailingStop = 50;
int start()
  {
     double ma10 , ma15 ,ma20 ,ma50 ;
     int total;
     int ticket;
     ma10=iMA(NULL,0,10,0,MODE_SMMA,PRICE_MEDIAN,0);
     ma15=iMA(NULL,0,15,0,MODE_SMMA,PRICE_MEDIAN,0);
     ma20=iMA(NULL,0,20,0,MODE_SMMA,PRICE_MEDIAN,0);
     ma50=iMA(NULL,0,50,0,MODE_SMMA,PRICE_MEDIAN,0);
     
     total=OrdersTotal();
     
     if(total<1)
     {
     
            if((ma20>ma50)==(ma10>ma15))
                {   
               
                   if(ma10>ma15)
                     {     
                 
                        ticket=OrderSend(Symbol(),OP_BUY,0.5,Ask,3,Bid-Point*150,Ask+Point*100,"firstea",0,0,Green);
                        OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
                      }
                     
                      return (0);
                 }
     
          if((ma50>ma20)==(ma15>ma10))
                 {
     
                    ticket=OrderSend(Symbol(),OP_SELL,0.5,Bid,3,Ask+Point*150,Bid-Point*100,"firstea",0,0,Red);
                    OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
                 
                 }
   }
   
   
       if(total==1)
       {
       
     if(OrderType() == OP_BUY)
             {
               if(trailingStop > 0)
                 {
                   if(Bid - OrderOpenPrice() > trailingStop*Point)
                     {
                       if(OrderStopLoss()==0 || (Bid - OrderStopLoss()> trailingStop*Point))
                           OrderModify(OrderTicket(), OrderOpenPrice(),
                                       Bid - trailingStop*Point, OrderTakeProfit(), 0, Blue);
                     }
                 }
             }
           else
             {
               if(trailingStop > 0)
                 {
                   if(OrderOpenPrice() - Ask > trailingStop*Point)
                     {
                       if(OrderStopLoss() == 0 || OrderStopLoss()-Ask >  trailingStop*Point)
                           OrderModify(OrderTicket(), OrderOpenPrice(),
                                       Ask + trailingStop*Point, OrderTakeProfit(), 0, Red);
                     }           
                 }
             }
       
       }


   return(0);
  }
Title: Re: รบกวนด้วยครับ
Post by: admin on ธันวาคม 08, 2010, 05:06:46 pm
น่าจะได้แล้วนะ แนกำ เดิมมันหายไปบรรทัดหนึ่ง Trilling stop เลยทำงานมั่ว

extern int trailingStop = 50;
int start()
  {
     double ma10 , ma15 ,ma20 ,ma50 ;
     int total;
     int ticket;
     ma10=iMA(NULL,0,10,0,MODE_SMMA,PRICE_MEDIAN,0);
     ma15=iMA(NULL,0,15,0,MODE_SMMA,PRICE_MEDIAN,0);
     ma20=iMA(NULL,0,20,0,MODE_SMMA,PRICE_MEDIAN,0);
     ma50=iMA(NULL,0,50,0,MODE_SMMA,PRICE_MEDIAN,0);
     
     total=OrdersTotal();
     
     if(total<1)
     {
     
            if((ma20>ma50)==(ma10>ma15))
                {   
               
                   if(ma10>ma15)
                     {     
                 
                        ticket=OrderSend(Symbol(),OP_BUY,0.5,Ask,3,Bid-Point*150,Ask+Point*100,"firstea",0,0,Green);
                        OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
                      }
                     
                      return (0);
                 }
     
          if((ma50>ma20)==(ma15>ma10))
                 {
     
                    ticket=OrderSend(Symbol(),OP_SELL,0.5,Bid,3,Ask+Point*150,Bid-Point*100,"firstea",0,0,Red);
                    OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
                 
                 }
   }
   
   
       if(total==1)
       {
        OrderSelect(0,SELECT_BY_POS,MODE_TRADES);
     if(OrderType() == OP_BUY)
             {
               if(trailingStop > 0)
                 {
                   if(Bid - OrderOpenPrice() > trailingStop*Point)
                     {
                       if(OrderStopLoss()==0 || (Bid - OrderStopLoss()> trailingStop*Point))
                       {   
                           OrderModify(OrderTicket(), OrderOpenPrice(),Bid - trailingStop*Point, OrderTakeProfit(), 0, Blue);
                        }
                     }
                 }
             }
           if(OrderType() == OP_SELL)
             {
               if(trailingStop > 0)
                 {
                   if(OrderOpenPrice() - Ask > trailingStop*Point)
                     {
                       if(OrderStopLoss() == 0 || ( OrderStopLoss()-Ask > trailingStop*Point ) )
                       {
                           OrderModify(OrderTicket(), OrderOpenPrice(),Ask + trailingStop*Point, OrderTakeProfit(), 0, Red);
                        }
                     }           
                 }
             }
       
       }


   return(0);
  }
Title: Re: รบกวนด้วยครับ
Post by: gagoi on ธันวาคม 08, 2010, 05:10:10 pm
อ้าว งั้นผมคงมั่วหายไปเองแหละครับ

ต้องขอโทษด้วยครับ

และก็ขอบคุณมาก ๆ ครับ ประสบการ์ณนี้ก็ช่วยให้ผมรู้เรื่อง ea ขึ้นมาอีกเยอะทีเดียวครับผม
Title: Re: รบกวนด้วยครับ
Post by: gagoi on ธันวาคม 08, 2010, 11:06:49 pm
ยืนยันผลการทำงานปกติดีแล้วครับผม

 ;D ;D ;D ;D ;D

ทีนี้ก็จะเริ่มทำการตรวจสอบค่าที่เหมาะสม เพื่อใช้เป็นเลขาช่วยเทรดล่ะครับทีนี้
Title: Re: รบกวนด้วยครับ
Post by: gagoi on ธันวาคม 09, 2010, 01:21:39 am
if((ma20>ma50)==(ma10>ma15))
                {   
               
                   if(ma10>ma15)
                     {     
                 
                        ticket=OrderSend(Symbol(),OP_BUY,0.5,Ask,3,Bid-Point*150,Ask+Point*100,"firstea",0,0,Green);
                        OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
                      }
                     
                      return (0);
                 }
     
          if((ma50>ma20)==(ma15>ma10))
                 {
     
                    ticket=OrderSend(Symbol(),OP_SELL,0.5,Bid,3,Ask+Point*150,Bid-Point*100,"firstea",0,0,Red);
                    OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
                 
                 }
   }

คืออยากถามว่า ทำไมคำสั่ง ตรงที่เป็นสีแดง เป็นคำสั่งเปิดออเดอร์ ซื้อ

แต่ว่าส่วนที่เป็นสีเขียว ที่เป็นคำสั่งเปิดออเดอร์ ขาย มันไม่ต้องมีส่วนสีแดงล่ะครับ แล้วมีผลอะไรหรือเปล่าครับผม
Title: Re: รบกวนด้วยครับ
Post by: gagoi on ธันวาคม 09, 2010, 01:33:02 am
เอ่อ มันทำให้ไม่ส่งออเดอร์ ขาย หรือเปล่าครับผม

รุ้สึกว่ามันจะเป็นอีกครับ แต่ยังไม่ยืนยันนะครับ ขอตรวจสอบอีกที (หลาย ๆ ทีก่อน)ครับ
Title: Re: รบกวนด้วยครับ
Post by: gagoi on ธันวาคม 09, 2010, 01:44:28 am
แกไขได้แล้วครับผม

ตอนแรกส่งแต่ออเดอร์ ซื้อ จริง ๆ ด้วย

แต่พอเปลี่ยนส่วนที่เป็น สีแดง แล้วทำไมส่งได้ก็ไม่รู้ครับ

if((ma20>ma50)==(ma10>ma15))
                {  
              
                   if(ma10>ma15)
                     {    
                
                        ticket=OrderSend(Symbol(),OP_BUY,0.5,Ask,3,Bid-Point*1000,Ask+Point*5000,"firstea",0,0,Green);
                        OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
                      }
                    
                      return (0);
                 }
    
          if((ma20<ma50)==(ma10<ma15))
                 {    
                    ticket=OrderSend(Symbol(),OP_SELL,0.5,Bid,3,Ask+Point*1000,Bid-Point*5000,"firstea",0,0,Red);
                    OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
                
                 }
   }
Title: Re: รบกวนด้วยครับ
Post by: gagoi on ธันวาคม 13, 2010, 01:18:39 pm
ขอสอบถามครับ

ถ้าเราจะปรับให้มันเปิด 2 หรือมากกว่า 1 ออเดอร์ ปรับตัวไหนครับ

ขอบคุณมากครับ
Title: Re: รบกวนด้วยครับ
Post by: Brandy on ธันวาคม 13, 2010, 07:33:21 pm
ขอโทษครับ อยากได้อีเอตัวนี้ไปทดสอบน่ะครับ ทดลองเขียนเองไม่ค่อยเวิค แต่หลักการคล้ายๆกับของผม รบกวนถ้าได้ขอรายละเอียดการเปิดออเดอร์คร่าวๆหน่อยก็ดีครับ

ถ้าได้ส่งที่ yainarak@hotmail.com ชอบใช้อีเอหลักการไม่ซับซ้อนครับ แต่สามารถปรับค่าเลือกใช้ได้ (จะทดสอบเงินจริงให้เลยครับ)
Title: Re: รบกวนด้วยครับ
Post by: gagoi on ธันวาคม 13, 2010, 10:40:26 pm
ได้ครับผม ยินดีครับ  ;D

เดี๋ยวผมทำการอัพโหลดไว้ให้ครับ แต่ว่าผมยังไม่ได้หาค่าเฉพาะเลยนะครับ

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

แล้วค่อยเอามาส่งคืนน่ะครับ งั้นก็รบกวนช่วยกันเลยนะครับ ขอบคุณครับ ;D
Title: Re: รบกวนด้วยครับ
Post by: gagoi on ธันวาคม 14, 2010, 10:27:55 am
ทำลิงค์มาให้แล้วครับ

ขอบคุณครับ

http://www.4shared.com/file/WJtqoVeT/super_admin.html
Title: Re: รบกวนด้วยครับ
Post by: Brandy on ธันวาคม 14, 2010, 09:31:11 pm
โอเค ขอบคุณมากครับ เดี๋ยวจัดให้เลย ได้ผลยังไงจะทยอยแจ้งมาเรื่อยๆครับ
Title: Re: รบกวนด้วยครับ
Post by: gagoi on ธันวาคม 15, 2010, 12:18:31 am
ขอบคุณครับ เดี๋ยวยังไงไปเปิดเป็นกระทู้ต่างหากดีกว่าครับ

ท่านอื่น ๆ จะได้หาข้อมูลง่ายขึ้น
Title: Re: รบกวนด้วยครับ
Post by: gagoi on ธันวาคม 17, 2010, 10:43:28 am
ขอรบกวนเพิ่ม Option อีกนิดครับผม

 ;D จาก

อออออออออออออออออออออออออออออออออออออออออออออออออออออออ

//+------------------------------------------------------------------+
//|                                                 supper admin.mq4 |
//|                      Copyright © 2010, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
extern int trailingStop = 500;
int start()
  {
     double ma10 , ma15 ,ma20 ,ma50 ;
     int total;
     int ticket;
     ma10=iMA(NULL,0,10,0,MODE_SMMA,PRICE_MEDIAN,0);
     ma15=iMA(NULL,0,15,0,MODE_SMMA,PRICE_MEDIAN,0);
     ma20=iMA(NULL,0,10,0,MODE_SMMA,PRICE_MEDIAN,0);
     ma50=iMA(NULL,0,15,0,MODE_SMMA,PRICE_MEDIAN,0);
     
     total=OrdersTotal();
     
     if(total<1)
     {
     
            if(ma10>ma15)
                {   
               
                   if(ma10>ma15)
                     {     
                 
                        ticket=OrderSend(Symbol(),OP_BUY,0.5,Ask,3,Bid-Point*200,Ask+Point*500,"firstea",0,0,Green);
                        OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
                      }
                     
                      return (0);
                 }
     
          if(ma50>ma20)
                 {
     
                    ticket=OrderSend(Symbol(),OP_SELL,0.5,Bid,3,Ask+Point*200,Bid-Point*500,"firstea",0,0,Red);
                    OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
                 
                 }
   }
   
   
       if(total==1)
       {
        OrderSelect(0,SELECT_BY_POS,MODE_TRADES);
     if(OrderType() == OP_BUY)
             {
               if(trailingStop > 0)
                 {
                   if(Bid - OrderOpenPrice() > trailingStop*Point)
                     {
                       if(OrderStopLoss()==0 || (Bid - OrderStopLoss()> trailingStop*Point))
                       {   
                           OrderModify(OrderTicket(), OrderOpenPrice(),Bid - trailingStop*Point, OrderTakeProfit(), 0, Blue);
                        }
                     }
                 }
             }
           if(OrderType() == OP_SELL)
             {
               if(trailingStop > 0)
                 {
                   if(OrderOpenPrice() - Ask > trailingStop*Point)
                     {
                       if(OrderStopLoss() == 0 || ( OrderStopLoss()-Ask > trailingStop*Point ) )
                       {
                           OrderModify(OrderTicket(), OrderOpenPrice(),Ask + trailingStop*Point, OrderTakeProfit(), 0, Red);
                        }
                     }           
                 }
             }
       
       }


   return(0);
  }
ออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออออ

อยากเพิ่ม option ให้

หลังจากปิดออเดอร์แล้ว ให้ ea หน่วงเวลาไว้ สัก 4 แท่งก่อน ถึงจะสามารถเปิดออเดอร์ใหม่ได้ เพื่อรอยืนยันสัญณานครับ

ขอบคุณครับผม ;D ;D
Title: Re: รบกวนด้วยครับ
Post by: admin on ธันวาคม 17, 2010, 02:47:54 pm
//+------------------------------------------------------------------+
//|                                                 supper admin.mq4 |
//|                      Copyright ? 2010, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright ? 2010, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
extern int trailingStop = 500;
static int aaa=0;
int start()
  {
     double ma10 , ma15 ,ma20 ,ma50 ;
     int total;
     int ticket;
     ma10=iMA(NULL,0,10,0,MODE_SMMA,PRICE_MEDIAN,0);
     ma15=iMA(NULL,0,15,0,MODE_SMMA,PRICE_MEDIAN,0);
     ma20=iMA(NULL,0,10,0,MODE_SMMA,PRICE_MEDIAN,0);
     ma50=iMA(NULL,0,15,0,MODE_SMMA,PRICE_MEDIAN,0);
     
     total=OrdersTotal();
     if(total==0 && aaa==1)
     {
        double wait= 4*Period( ) ;
               wait=wait*60000;
               Sleep(wait);
               aaa=0;
     
     }
     
     if(total<1 && aaa==0)
     {
     
            if(ma10>ma15)
                {   
               
                   if(ma10>ma15)
                     {     
                 
                        ticket=OrderSend(Symbol(),OP_BUY,0.5,Ask,3,Bid-Point*200,Ask+Point*500,"firstea",0,0,Green);
                        OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
                      }
                      aaa=1;
                      return (0);
                 }
     
          if(ma50>ma20)
                 {
     
                    ticket=OrderSend(Symbol(),OP_SELL,0.5,Bid,3,Ask+Point*200,Bid-Point*500,"firstea",0,0,Red);
                    OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
                    aaa=1;
                 }
   }
   
   
       if(total==1 && aaa==1)
       {
        OrderSelect(0,SELECT_BY_POS,MODE_TRADES);
     if(OrderType() == OP_BUY)
             {
               if(trailingStop > 0)
                 {
                   if(Bid - OrderOpenPrice() > trailingStop*Point)
                     {
                       if(OrderStopLoss()==0 || (Bid - OrderStopLoss()> trailingStop*Point))
                       {   
                           OrderModify(OrderTicket(), OrderOpenPrice(),Bid - trailingStop*Point, OrderTakeProfit(), 0, Blue);
                        }
                     }
                 }
             }
           if(OrderType() == OP_SELL)
             {
               if(trailingStop > 0)
                 {
                   if(OrderOpenPrice() - Ask > trailingStop*Point)
                     {
                       if(OrderStopLoss() == 0 || ( OrderStopLoss()-Ask > trailingStop*Point ) )
                       {
                           OrderModify(OrderTicket(), OrderOpenPrice(),Ask + trailingStop*Point, OrderTakeProfit(), 0, Red);
                        }
                     }           
                 }
             }
       
       }


   return(0);
  }
Title: Re: รบกวนด้วยครับ
Post by: gagoi on ธันวาคม 18, 2010, 11:42:52 pm
ขอรบกวนอีกครับ

ดูเหมือนมันยังไม่หน่วงเวลาเลยครับ

แล้วก็อีกอย่าง

ไม่เข้าใจตรงนี้ครับ

        double wait= 4*Period( ) ;
               wait=wait*60000;
               Sleep(wait);
               aaa=0;

ค่า 60000 คืออะไรครับ

แล้วถ้าจะปรับเป็น ค่าอื่น ๆ ล่ะครับ เช่น 5 หรือ 10 เป็นต้นน่ะครับ
Title: Re: รบกวนด้วยครับ
Post by: admin on ธันวาคม 19, 2010, 12:56:59 am
Blcktest มันไม่หน่วงนะต้องลอง Demo เท่านั่นเพรา Sleep จะไม่ทำงานบน blacktest ถ้าจะเปลี่ยนจำนวนแท่งก็ให้เปลี่ยนตรงเลข 4
Title: Re: รบกวนด้วยครับ
Post by: gagoi on ธันวาคม 19, 2010, 10:49:04 am
อ้อ ขอบคุณครับ

มิน่างง ๆ อยู่นึกว่าทำอะไรพลาดไป
Title: Re: รบกวนด้วยครับ
Post by: Brandy on ธันวาคม 19, 2010, 06:54:15 pm
อิิอิ มีเพิ่มแล้วฟังชั่นก็มะบอก กำไอ้ผมก็จะทักว่าออเดอร์สองเปิดช้าจัง จะเปลี่ยนสัญญาณ ฮาๆๆ พี่เล่นหน่วงอีก ฮาๆๆ

งั้นก็ขอเอาไปลองเพิ่มละกัน รันจียู M30 ครับพอไหวอยู่ ทดสอบที่ทุน $30 Ceat2 lot = 0.2 (ขอแก้หน่อยโหดเกิน)รันสามวันพุธ-ศุกร์ forex4you เป็น 3000 Cent ดีที่ได้ลูกยาวไม่ผิดเทรนครับกำไรไป นิดๆ $6-7 = ุ600-700 Cent รบกวนช่วยเพิ่ม พารามิเตอร์ภายนอกให้หน่อย พวก sl tp lot trailing stop จะได้สะดวกเวลาทดสอบอ่ะคับ แล้วจะมาอัพข้อมุลให้เรื่อยๆ(ผมรัน 24 ชม ไม่มีปิด เพียงแต่เข้าไปดูนิดหน่อยเท่านั้น)
Title: Re: รบกวนด้วยครับ
Post by: gagoi on ธันวาคม 19, 2010, 10:20:28 pm
อิิอิ มีเพิ่มแล้วฟังชั่นก็มะบอก กำไอ้ผมก็จะทักว่าออเดอร์สองเปิดช้าจัง จะเปลี่ยนสัญญาณ ฮาๆๆ พี่เล่นหน่วงอีก ฮาๆๆ

งั้นก็ขอเอาไปลองเพิ่มละกัน รันจียู M30 ครับพอไหวอยู่ ทดสอบที่ทุน $30 Ceat2 lot = 0.2 (ขอแก้หน่อยโหดเกิน)รันสามวันพุธ-ศุกร์ forex4you เป็น 3000 Cent ดีที่ได้ลูกยาวไม่ผิดเทรนครับกำไรไป นิดๆ $6-7 = ุ600-700 Cent รบกวนช่วยเพิ่ม พารามิเตอร์ภายนอกให้หน่อย พวก sl tp lot trailing stop จะได้สะดวกเวลาทดสอบอ่ะคับ แล้วจะมาอัพข้อมุลให้เรื่อยๆ(ผมรัน 24 ชม ไม่มีปิด เพียงแต่เข้าไปดูนิดหน่อยเท่านั้น)
555  ;D ;Dเพิ่งขอเพิ่ม Option จากท่าน admin เช่นเคยครับ

พอดีสุ่ม ๆ ดูแล้ว รู้สึกว่ายังโดนไซด์เวย์อยู่ ก็เลยอยากหน่วงเวลาไว้ช่วงนึงครับ เพื่อรอยืนยันสัญณานสักนิดน่ะครับ

ได้ผลยังไงแล้วจะแจ้งอีกทีครับ คราวนี้จะทดสอบเป็นตัว ๆ ไป อาจใช้เวลานิดนึงเพราะต้องรันเดโมเอา

ขอบคุณครับ