EA Programing => ปัญหาที่พบในการเขียน EA => Topic started by: starter123 on ตุลาคม 29, 2010, 10:02:48 am

Title: ลองเขียนeaครั้งเเรก
Post by: starter123 on ตุลาคม 29, 2010, 10:02:48 am
ผมลองเขียนครั้งเเรกนะครับ  คำสั่งเเบบ ที่ admin ยกตัวอย่างในบทที่9  ของ introductrion (ma7,ma14,ma30ฯ) ผมเขียนตามนี้ เเล้วcompiles ออกมามัน error อยู่7จุด  ของความกรุณาadmin ช่วยเเนะนำด้วยครับมันผิดตรงไหน 



//+------------------------------------------------------------------+
//|                                                  test  ima().mq4 |
//|                      Copyright ฉ 2010, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright ฉ 2010, 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  ma7,ma14,ma30;//
   int total;//
   int ticket;//
   ma7= iMA(NULL,0,7,8,MODE_SMMA,PRICE_MEDIAN,0);//
   ma14=iMA(NULL,0,14,8,MODE_SMMA,PRICE_MEDIAN,0);//
   ma30=iMA(NULL,0,30,8,MODE_SMMA,PRICE_MEDIAN,0);//
   total=OrdersTotal();//
   if(total<1)//
   }
   if(Ask>ma7>ma14>ma30)//
   {
   ticket=OrderSend(Symbol()OP_BUY,0.1,Ask,3,Bid-Point*500,Ask+Point*50,"firstea",0,0,Green);
   OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);//
   }
   if(Bid<ma7<ma14<ma30)
   {
   ticket=OrderSend(Symbol()OP_SELL,0.1,Bid,3,Ask+Point*500,Bid-Point*50,"firstea",0,0,Red);
   OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);//
   }
   }}
   
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
Title: Re: ลองเขียนeaครั้งเเรก
Post by: admin on ตุลาคม 29, 2010, 12:54:16 pm
ลองเอาไปดูครับ

//+------------------------------------------------------------------+
//|                                                  test  ima().mq4 |
//|                      Copyright ฉ 2010, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright ฉ 2010, 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  ma7,ma14,ma30;
   int total;
   int ticket;
   ma7= iMA(NULL,0,7,8,MODE_SMMA,PRICE_MEDIAN,0);
   ma14=iMA(NULL,0,14,8,MODE_SMMA,PRICE_MEDIAN,0);
   ma30=iMA(NULL,0,30,8,MODE_SMMA,PRICE_MEDIAN,0);
   total=OrdersTotal();
   if(total<1)
   {
   if(Ask>ma7>ma14>ma30)
   {
   ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-Point*500,Ask+Point*50,"firstea",0,0,Green);
   OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);//
   }
   if(Bid<ma7<ma14<ma30)
   {
   ticket=OrderSend(Symbol(),OP_SELL,0.1,Bid,3,Ask+Point*500,Bid-Point*50,"firstea",0,0,Red);
   OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);//
   }
   
   }
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
Title: Re: ลองเขียนeaครั้งเเรก
Post by: linconz on ตุลาคม 29, 2010, 01:00:18 pm
if(Ask>ma7>ma14>ma30)

แบบนี้ไม่ได้ครับ มันงง แล้วจะเปรียบเทียบมั่วเลย

ต้ิองเป็น   ask > ma7   && ma7 > ma14 && ........
ได้ทีละคู่เท่านั้น
Title: Re: ลองเขียนeaครั้งเเรก
Post by: starter123 on ตุลาคม 30, 2010, 08:13:33 pm
เยี่ยมเลยครับ  ไม่มี error สักตัวเลย
Title: Re: ลองเขียนeaครั้งเเรก
Post by: starter123 on ตุลาคม 30, 2010, 08:35:15 pm
คำสั่งนี้มันจะเปิด order ให้เราทุกคู่เงินเลยหรือเปล่าครับถ้าเป็นตามเงื่อนไข เเละเวลาเราปิดเครื่องคอมฯมันจะทำงานให้เราไหม?
Title: Re: ลองเขียนeaครั้งเเรก
Post by: admin on ตุลาคม 31, 2010, 12:40:54 pm
คำสั่งนี้มันจะเปิด order ให้เราทุกคู่เงินเลยหรือเปล่าครับถ้าเป็นตามเงื่อนไข เเละเวลาเราปิดเครื่องคอมฯมันจะทำงานให้เราไหม?

เปิดเฉพาะคู่เงินที่เราเอา EA ไปใส่ครับ
Title: Re: ลองเขียนeaครั้งเเรก
Post by: starter123 on พฤศจิกายน 10, 2010, 06:38:13 pm
อยากจะลอง test  ea เด็ดๆ สักตัว ของอย่างนี้บอกกันหรือเปล่าครับ  หรือต้องมีค่าใช้จ่าย
Title: Re: ลองเขียนeaครั้งเเรก
Post by: admin on พฤศจิกายน 10, 2010, 06:42:30 pm
ลองเอา EA ที่มีแจกในเวบไปทดสอบก็ได้ครับพวกนี้แต่ละตัวที่ได้มาก็มีคนชื้อมาแจกตามที่ต่างๆๆนั่นหละครับ  ไม่ต้องไปเสียเงินแพงๆๆไปชื้อมาหรอกครับ 
Title: Re: ลองเขียนeaครั้งเเรก
Post by: starter123 on พฤศจิกายน 20, 2010, 06:31:33 pm
dragonpips ultimate2.02      ea ตัวนี้ยาวมาก ผมอยากจะรู้วิธีอ่านให้เข้าใจง่ายๆ จากที่ไหนครับ ที่เป็นภาษาไทยนะผมว่าจะเอามาเเก้  code  ให้มันเทรดตามที่ตัวเองคิดไว้นะ   ตอนนี้วุ่นวายกับงานประจำมากจนไม่มีเวลาเลย
Title: Re: ลองเขียนeaครั้งเเรก
Post by: admin on พฤศจิกายน 21, 2010, 02:13:35 am
วิธีอ่านให้เข้าใจ ให้เริ่มต้นจาก ฟังก์ชั่น start ครับเพราะโปรแกรมทำงานที่ฟังก์ชั่นนี้ครับ ส่วนอื่นเป็นเนื้อของฟังก์ชั่นครับแต่หลักๆๆทำงานในฟังก์ชั่น start ครับ  หลักการก็ให้อ่านในฟังกชั่นนี้ก่อนครับ จากนั่นเมื่อเจอการเรียกใช้ฟังก์ชั่นค่อยไปดูที่เนื้อของฟังก์ชั่นครับ พออ่านจบแล้วก็กลับมาอ่านที่ฟังก์ชั่น start ต่อไปครับจนจบครับ ส่วนที่จะหาคำบรรยายเป้นภาษาไทยผมคิดว่าไม่น่าจะมีครับเพราะต้องมานั่งไล่อธิบายแต่ละบรรทัด ก็ไม่ไหวนะครับ
Title: Re: ลองเขียนeaครั้งเเรก
Post by: starter123 on พฤศจิกายน 21, 2010, 04:13:00 pm
ตอนนี้ผมเทรดของ fbs        liverage  1:500   volume= 0.01 lot   ปกติจะใช้  margin แต่ละครั้งประมาณ  2-3  $  ผมมีเงินอยู่ไม่มาก 10$   แล้วผมอยากจะเปิดมันตอนไหนก้ได้ไม่เลือกเวลา และใช้margin  แต่ละครั้งประมาณ 2-3 $อย่างนี้ต้องแก้ code ตรงไหนครับ   
Title: Re: ลองเขียนeaครั้งเเรก
Post by: admin on พฤศจิกายน 22, 2010, 02:48:59 pm
ตอนนี้ผมเทรดของ fbs        liverage  1:500   volume= 0.01 lot   ปกติจะใช้  margin แต่ละครั้งประมาณ  2-3  $  ผมมีเงินอยู่ไม่มาก 10$   แล้วผมอยากจะเปิดมันตอนไหนก้ได้ไม่เลือกเวลา และใช้margin  แต่ละครั้งประมาณ 2-3 $อย่างนี้ต้องแก้ code ตรงไหนครับ   
ตัวที่จะแก้ตามที่บอกคือ dragonpip ใช้ไหมครับ ผมว่ามันจะไม่เปิดตามใจคุณนะสิครับเพราะ EA พวกนี้มันใช้อินดิเคเตอร์ในการเข้าเปิดครับ ถ้าจังหวะที่คุณเปิด อินดิเคเตอร์ไม่ส่งสัญญาณมันก็ไม่เปิดให้คุณนะครับ
Title: Re: ลองเขียนeaครั้งเเรก
Post by: starter123 on พฤศจิกายน 22, 2010, 06:35:34 pm
ครับ  dragonpip นี้แหละ ผมหมายความว่า  ให้มันเปิดตาม  indicator  นั้นแหละ แต่ผมมีเงินเเค่ 10 $ ให้ใช้margin ครั้งละ  2-3$ จะให้เปิดเวลาไหนก็ได้ (ตอนที่ผมเปิดcom)ทำได้หรือเปล่าครับ  แก้ตรงไหน ?
Title: Re: ลองเขียนeaครั้งเเรก
Post by: admin on พฤศจิกายน 25, 2010, 03:42:36 pm
Dragonpip มันตั้งเวลาได้ไม่ใช้หรอครับลองสังเกตดูก่อนครับ
Title: Re: ลองเขียนeaครั้งเเรก
Post by: boy on มีนาคม 22, 2011, 08:25:10 am
พยามดูครับ ยังหา-ยังแยกไม่ออก ว่ามันต่างกันตรงไหน  ???
ช่วยชี้เป็นบรรทัดให้ด้วยครับ