กองทุน SPDR GOLD SHARES
ถือทองก่อนหน้า
ถือทองล่าสุด
0.00
*หน่วยตัน / ราคาอ้างอิงล่าสุดจากสมาคมค้าทองคำ
สถิติกองทุน SPDR
ราคาทองคำแท่ง 96.5%
ราคาอ้างอิงล่าสุดจากสมาคมค้าทองคำ
ครั้งที่
ราคาก่อนหน้า
ราคาล่าสุด
0
(หน่วย บาท*) / อัปเดตล่าสุดเมื่อวันที่ 13 ก.ค. 2566 เวลา 13:04 น.
สถิติราคาทองคำ ไทย

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

  • 4 replies
  • 3,048 views
*

เค.บางเเส

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

cheetah*

*

admin

  • 80,397
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 »
ประมาณนี้ครับ ผมมือใหม่ลองเขียนครับ
โค๊ด [Select]

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);
}
  }



ขอบคุณครับ

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,282
Re: วิธีการเขียนCodeให้EAเปิด Order เดียวต่อเเท่งกราฟ
« ตอบกลับ #4 เมื่อ: 23, กรกฎาคม 2019, 08:40:09 AM »
อ้างจาก: เค บางเเสน ที่ 22, กรกฎาคม  2019, 10:29:31 PM
ประมาณนี้ครับ ผมมือใหม่ลองเขียนครับ
โค๊ด [Select]

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);
}
  }



ขอบคุณครับ

โค๊ด [Select]
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;
  }