วิธีการเขียนCodeให้EAเปิด Order เดียวต่อเเท่งกราฟ

  • 4 replies
  • 2091 views

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

*

เค.บางเเส

ขอวิธีการเขียนCodeให้ กำหนดOrder ต่อเเท่งกราฟหน่อยครับ ตอนนี้เวลาbuyหรือsell EAจะเปิดOrder ซ้ำๆที่จุดเดียวกันครับ

 cheetah*

Share Topic.


*

ออฟไลน์ admin

  • *
  • 73,436
  • 2646

Re: วิธีการเขียนCodeให้EAเปิด Order เดียวต่อเเท่งกราฟ

« ตอบกลับ #1 เมื่อ: 22, กรกฎาคม 2019, 10:04:30 PM »
ลองเขียน code Forex EA ที่ท่านทำมาก่อน ครับ ทำได้แค่ไหน จะช่วยปรับให้ ครับ
 (TH)**
"เอาชนะใจตัวเองให้ได้ ก่อนที่จะไปเอาชนะตลาด"

*

เค.บางเเส

Re: วิธีการเขียนCodeให้EAเปิด Order เดียวต่อเเท่งกราฟ

« ตอบกลับ #2 เมื่อ: 22, กรกฎาคม 2019, 10:29:31 PM »
ประมาณนี้ครับ ผมมือใหม่ลองเขียนครับ
โค๊ด
void OnTick()
  {
 

 double MA1 = iMA(NULL,0,25,2,MODE_EMA,PRICE_CLOSE,1);
 double MA2 = iMA(NULL,0,50,2,MODE_EMA,PRICE_CLOSE,1);
 
 
 if (MA1>MA2)
 {
 OrderSend(NULL,OP_BUY,0.03,Ask,2,Ask-700*Point,Ask+1200*Point,"OrderBuy",1);
 }
  }


ขอบคุณครับ

*

ออฟไลน์ forcebewithyou

  • ****
  • 2,416
  • 79
  • Green PIPs Be With You

Re: วิธีการเขียนCodeให้EAเปิด Order เดียวต่อเเท่งกราฟ

« ตอบกลับ #3 เมื่อ: 23, กรกฎาคม 2019, 12:01:56 AM »
ใน MT5 ผมใช้    PositionsTotal()

if (MA1>MA2)  && PositionsTotal()<1


MT4 น่าจะเป็น  OrdersTotal()

if (MA1>MA2)  && OrdersTotal()<1


ประมาณนี้มั้ง  order ที่เปิดอยู่ต้องน้อยกว่า 1 order ถึงจะทำงาน  ถ้ามัน order ไปแล้วจะไม่ออกซ้ำ

*

ออฟไลน์ iRuler

  • *
  • 1,269
  • 40

Re: วิธีการเขียนCodeให้EAเปิด Order เดียวต่อเเท่งกราฟ

« ตอบกลับ #4 เมื่อ: 23, กรกฎาคม 2019, 08:40:09 AM »
ประมาณนี้ครับ ผมมือใหม่ลองเขียนครับ
โค๊ด
void OnTick()
  {
 

 double MA1 = iMA(NULL,0,25,2,MODE_EMA,PRICE_CLOSE,1);
 double MA2 = iMA(NULL,0,50,2,MODE_EMA,PRICE_CLOSE,1);
 
 
 if (MA1>MA2)
 {
 OrderSend(NULL,OP_BUY,0.03,Ask,2,Ask-700*Point,Ask+1200*Point,"OrderBuy",1);
 }
  }


ขอบคุณครับ

โค๊ด
int MaxOrder=1;
int bars=-1;
int MagicNumber=1337;

void OnTick()
  {
   if(bars==Bars)
      return;
   bars=Bars;

   double MA1 = iMA(NULL,0,25,2,MODE_EMA,PRICE_CLOSE,1);
   double MA2 = iMA(NULL,0,50,2,MODE_EMA,PRICE_CLOSE,1);

   if(MA1>MA2 && OrderCount()<MaxOrder)
     {
      OrderSend(NULL,OP_BUY,0.03,Ask,2,Ask-700*Point,Ask+1200*Point,"OrderBuy",1);
     }
  }

int OrderCount()
  {
   int count=0;
   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
            if(OrderType()==OP_SELL || OrderType()==OP_BUY)
               count++;
        }
     }
   return count;
  }

Tags: