Error130- help

 

Hi, I am a noob and I need your help...

I have written a program which was working until last week. I didn't make any change and now it cannot calculate takeprofit and throws ERROR130. I know what this error means and i have already checked if my takeprofit is correct. I cannot understand what's happening!!!! If could anybody help me, I would appreciate it!

My code is:

extern double LotSize = 1;
extern double StopLoss = 0;
extern double TakeProfit = 10;
extern int Slippage = 5; 

int BuyTicket;
int SellTicket;
int NewBuyTicket;
int NewSellTicket;
double UsePoint;
int UseSlippage;

int ErrorCode;


double PipPoint (string Currency)
   {
      int CalcDigits = MarketInfo(Currency, MODE_DIGITS);
      if(CalcDigits==2 || CalcDigits==3) double CalcPoint = 0.01;
      else if (CalcDigits ==4 || CalcDigits ==5) CalcPoint = 0.0001;
      return(CalcPoint);
   }
   
double GetSlippage(string Currency, int SlippagePips)
   {
      int CalcDigits = MarketInfo(Currency, MODE_DIGITS);
      if(CalcDigits==2 ||CalcDigits==4) double CalcSlippage=SlippagePips;
      else if(CalcDigits==3 || CalcDigits==5)CalcSlippage=SlippagePips*10;
      return(CalcSlippage);
   }
  

int init()
  {
   UsePoint = PipPoint("EURUSD");
   UseSlippage = GetSlippage("EURUSD", Slippage);
  }


int deinit()
  {
   return(0);
  }



int start()
   { 
  
      OrderSelect(BuyTicket,SELECT_BY_TICKET);
      if(BuyTicket==0 || OrderCloseTime() != 0)
      {
         BuyTicket = OrderSend("EURUSD",OP_BUY,LotSize,Ask,Slippage,0,Ask+(TakeProfit*UsePoint),"Buy Order",25290,0,Red);
         Alert("BuyTicket OK");
         
                if(BuyTicket==-1)
                {
                ErrorCode=GetLastError();
                string ErrDesc=ErrorDescription(ErrorCode);
                string ErrAlert=StringConcatenate("Open NewBuy Order - Error",ErrorCode,":",ErrDesc);
                Alert(ErrAlert);
                string ErrLog=StringConcatenate("Ask:",Ask,"Lots:",LotSize);
                Print(ErrLog);
                }

      }
return;
}
Thank you!!!!
 

However, I just realised that if I do this it works fine....... Why?????????

         BuyTicket = OrderSend("EURUSD",OP_BUY,LotSize,Ask,Slippage,0,0,"Buy Order",25290,0,Red);
         OrderSelect(BuyTicket,SELECT_BY_TICKET);
         double BuyTakeProfit = OrderOpenPrice() + (TakeProfit*UsePoint);
         OrderModify(BuyTicket,OrderOpenPrice(),OrderStopLoss(),BuyTakeProfit,OrderExpiration(),Red);
 

If you are saying that previously you could send orders with stops and now you cannot - check with your broker as to why/when they changed to STP/ECN order handling!

-BB-