Open Forex4you Account

Server รัน EA 1000 / ปี

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

Author Topic: EA ไม่ modify order ให้  (Read 2136 times)

Sittiphon

  • Newbie
  • *
  • Posts: 1
EA ไม่ modify order ให้
« on: มิถุนายน 01, 2019, 08:36:04 am »
สวัสดีครับทุกท่าน พอดีมีปัญหา EA Modify Order ให้ครับครับ

ปัญหามันเกิดที่บรรทัดที่ผมดอกจันไว้( //*****************************) ไม่ทำงานครับ
โดย concept ของโปรแกรมคือ เปิด order buy และ sell พร้อมกัน เมื่อ Order buy TP แล้วให้ Order sell Modify Order ครับ
แต่ปรากฎว่าเมื่อ Order buy TP แล้ว ปรากฏว่า Order sell ไม่ Modify Order ให้ครับ ซึ่งมันแจ้งเตือน Error 4051 ครับ คือ แจ้งเตือนว่า "ค่าพารามิเตอร์ของฟังก์ชันไม่ถูกต้อง" คือผมก็ลองเช็คแล้วก็ไม่น่าจะมีอะไรผิดครับ รบกวนทุกท่านช่วยแนะนำการแก้ไขด้วยครับ ขอบคุณครับ

ผมลอง back test ด้วย กราฟค่าเงิน UC ครับ (ภาพตามลิงค์ ด้านล่างครับ)
1.รูปแบบกราฟ
https://drive.google.com/open?id=18LYpIq-T0aqVVdOmMkUV0aO6oj3Kk6IE
2.setting ก่อนเริ่ม backtest
https://drive.google.com/open?id=1W1u84GnP1KNZGITR_aBZ4aiv6wxQfC4X
3.Error ที่แจ้งเตือน
https://drive.google.com/open?id=1NqDeMO1z6u3-kjAtJ0iRftd6fC8qIHex

int start()
{
   static double pbuy = MarketInfo(Symbol(),MODE_ASK);
   static double psell = MarketInfo(Symbol(),MODE_BID);
   
   if(OrdersTotal()==0)
   {
   int ticketb1 = OrderSend(Symbol(),OP_BUY,0.20,pbuy,3,pbuy-500*Point,pbuy+100*Point,"Ea", 1234,0,Green);
   int tickets1 = OrderSend(Symbol(),OP_SELL,0.20,psell,3,psell+500*Point,psell-100*Point,"Ea", 1234,0,Red);
       
   }
   
      int BuyOrder=0;
      int SellOrder=0;
     
       for(int i=0 ;i<OrdersTotal();i++)
      {
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);   
         if(OrderType()==OP_BUY)
         BuyOrder++;
         if(OrderType()==OP_SELL)
         SellOrder++;
         
            if(BuyOrder == 0 && SellOrder == 1)
            {
   
               OrderModify(tickets1,psell,psell+500*Point,psell-300*Point,0,Red);    //*****************************
             
            }
      }
 
 
   
return(0);
}
« Last Edit: มิถุนายน 10, 2019, 10:19:23 am by Sittiphon »

tanakrit99

  • Newbie
  • *
  • Posts: 23
Re: EA ไม่ modify order ให้
« Reply #1 on: กันยายน 17, 2019, 11:12:45 pm »
เป็นเพราะตรงที่แดงๆนะคับ เนื่องจากการประกาศตัวแปรแบบนี้ทำให้ค่าที่ Ticket จะอยู่แค่ครั้งแรกหลังจากนั้นค่าตรงนี้จะเป็นทำให้ตัวชี้ Ticket เจอว่าไม่มี Ticket (0) นี้มันเลย Error คุณต้องประกาศไว้ส่วนบนสุด แบบนี้
#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

int ticketb1;
int tickets1;



int start()
{
   static double pbuy = MarketInfo(Symbol(),MODE_ASK);
   static double psell = MarketInfo(Symbol(),MODE_BID);
   
   if(OrdersTotal()==0)
   {
   int ticketb1 = OrderSend(Symbol(),OP_BUY,0.20,pbuy,3,pbuy-500*Point,pbuy+100*Point,"Ea", 1234,0,Green);
   int tickets1 = OrderSend(Symbol(),OP_SELL,0.20,psell,3,psell+500*Point,psell-100*Point,"Ea", 1234,0,Red);
       
   }
   
      int BuyOrder=0;
      int SellOrder=0;
     
       for(int i=0 ;i<OrdersTotal();i++)
      {
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);   
         if(OrderType()==OP_BUY)
         BuyOrder++;
         if(OrderType()==OP_SELL)
         SellOrder++;
         
            if(BuyOrder == 0 && SellOrder == 1)
            {
               OrderModify(tickets1,psell,psell+500*Point,psell-300*Point,0,Red);    //*****************************
            }
      }
return(0);
}

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2379
Re: EA ไม่ modify order ให้
« Reply #2 on: กันยายน 20, 2019, 02:34:05 pm »
 :D