Dukascopy
 
 
Wiki JStore Search Login

Attention! Read the forum rules carefully before posting a topic.

    Try to find an answer in Wiki before asking a question.
    Submit programming questions in this forum only.
    Off topics are strictly forbidden.

Any topics which do not satisfy these rules will be deleted.

java.lang.ClassCastException
 Post subject: java.lang.ClassCastException Post rating: 0   New post Posted: Thu 08 Dec, 2011, 14:04 

User rating: -
when I am running EA sometimes stop and must be restart
message:
21:44:54 java.lang.ClassCastException: com.dukascopy.transport.common.msg.group.OrderMessage cannot be cast to com.dukascopy.api.IOrder @ jforex.converted.Merlin_Simple.CloseOrders(Merlin_Simple.java:120)


 
 Post subject: Re: java.lang.ClassCastException Post rating: 0   New post Posted: Thu 08 Dec, 2011, 14:15 
User avatar

User rating:
Joined: Fri 31 Aug, 2007, 09:17
Posts: 6139
Please provide the code snippet. In general you do checking before the cast operations in the following way:
      if(object instanceof IOrder){
         IOrder order = (IOrder)object;
      }


 
 Post subject: Re: java.lang.ClassCastException Post rating: 0   New post Posted: Wed 14 Dec, 2011, 22:07 

User rating: -
when I ´am running strategie in history test mode, running well without error stop.

when running on chart, at closing first order is that error. The code is from MT4:

if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol())
{...
right is ...Symbol()==OrderSymbol()... ?

thx


 
 Post subject: Re: java.lang.ClassCastException Post rating: 0   New post Posted: Thu 15 Dec, 2011, 11:45 

User rating: -
code is in MT4


int DeletePendingOrders(int Magic)
{
  int total  = OrdersTotal();
 
  for (int cnt = total-1 ; cnt >= 0 ; cnt--)
  {
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
    if (OrderMagicNumber() == Magic && Symbol()==OrderSymbol() && OrderType()!=OP_BUY && OrderType()!=OP_SELL)
    {
      OrderDelete(OrderTicket());
    }
  }
  return(0);
}


int CloseOrders(int Magic)
{
  int total  = OrdersTotal();
 
  for (int cnt = total-1 ; cnt >= 0 ; cnt--)
  {
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
    if (OrderMagicNumber() == Magic && Symbol()==OrderSymbol())
    {
    if (OrderType()==OP_BUY)
      {
        OrderClose(OrderTicket(),OrderLots(),Bid,Slippage);
      }
     
      if (OrderType()==OP_SELL)
      {
        OrderClose(OrderTicket(),OrderLots(),Ask,Slippage);
      }
    }
  }
  return(0);
}


and translate to java


public int DeletePendingOrders(Number Magic) throws JFException {return DeletePendingOrders(Magic.intValue());}
public int DeletePendingOrders(boolean Magic) throws JFException {
return DeletePendingOrders(toInt(Magic));}
public int DeletePendingOrders(int Magic) throws JFException {
int total = 0;
int cnt=toInt(total-1);

total = toInt(OrdersTotal());

for(cnt=(int)total-1;cnt>=0;cnt--){

OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);

if (OrderMagicNumber()==Magic&&Instrument()==OrderSymbol()&&OrderType()!=OP_BUY&&OrderType()!=OP_SELL){

OrderDelete(OrderTicket());
}
}

if(true)return toInt(0);return 0;
}

public int CloseOrders(Number Magic) throws JFException {return CloseOrders(Magic.intValue());}
public int CloseOrders(boolean Magic) throws JFException {
return CloseOrders(toInt(Magic));}
public int CloseOrders(int Magic) throws JFException {
int total = 0;
int cnt=toInt(total-1);

total = toInt(OrdersTotal());

for(cnt=(int)total-1;cnt>=0;cnt--){

OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);

if (OrderMagicNumber()==Magic&&Instrument()==OrderSymbol()){

if (OrderType()==OP_BUY){

OrderClose(OrderTicket(),OrderLots(),Bid,Slippage);
}
if (OrderType()==OP_SELL){

OrderClose(OrderTicket(),OrderLots(),Ask,Slippage);
}}
}


 
 Post subject: Re: java.lang.ClassCastException Post rating: 0   New post Posted: Thu 15 Dec, 2011, 16:08 

User rating: -
small tuning and new message:

2011-12-15 15:02:39 Stopping "Merlin_simple" strategy at 2011-12-15 15:02:39.664 GMT on the local computer
2011-12-15 15:02:39 com.dukascopy.api.JFException: Order not selected. @ jforex.converted.Merlin_simple.CloseOrders(Merlin_simple.java:126)
2011-12-15 15:03:19 Order FILLED at 1.30223 USD (#123589527 BUY 0.01 mil. EUR/USD @ MKT MAX SLIPPAGE 0.0005) - Position #31574607

what happened?
thx


 
 Post subject: Re: java.lang.ClassCastException Post rating: 0   New post Posted: Fri 16 Dec, 2011, 16:13 

User rating: -
thx, I´ve solved it


 

Jump to:  

cron
  © 1998-2025 Dukascopy® Bank SA
On-line Currency forex trading with Swiss Forex Broker - ECN Forex Brokerage,
Managed Forex Accounts, introducing forex brokers, Currency Forex Data Feed and News
Currency Forex Trading Platform provided on-line by Dukascopy.com