EA Programing > ปัญหาที่พบในการเขียน EA

EA ไม่ modify order ให้

(1/1)

Sittiphon:
สวัสดีครับทุกท่าน พอดีมีปัญหา 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);
}

tanakrit99:
เป็นเพราะตรงที่แดงๆนะคับ เนื่องจากการประกาศตัวแปรแบบนี้ทำให้ค่าที่ 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:
 :D

soccerlegusee:
 ;D

ololl08:
 ::) ::) ::) ::) ::)

นำร่อง

[0] ดัชนีข้อความ

Go to full version