Setting initial values in ARIMA I tried to fit 2 ARMA models to a set of financial time series data with 2 sets of initial parameter values (all 0's and all 0.5's). The final estimates of the parameters are quite different. I'm not sure why this happens as I thought the parameter estimates should converge? 
    mod1=arima(logreturn,order=c(2,0,3),init=c(0,0,0,0,0,0)
    mod2=arima(logreturn,order=c(2,0,3),init=c(0.5,0.5,0.5,0.5,0.5,0.5))

P.S. The data set is a bit long hence I omitted it. But it appears to be normally distributed with mean 0.
 A: Interesting question. I don't really have an answer, only an extended comment, but it might be enlightening.
Whenever I have a question like this, I start simulating. (Uwe's Maxim: Computers are cheap, and thinking hurts.) Specifically, I wondered whether you simply might not have sufficiently many observations for asymptotics to kick in.
So I simulated $N(0,1)$ time series of lengths 100, 1,000 and 10,000 (100 times each) and fitted ARIMA models to each, with the initial values you specified. Below, I plot the coefficients - each dot corresponds to one out of 100 time series - for the two initial conditions against each other. The first row corresponds to having 100 data points, the second to 1,000 and the third to 10,000 data points. We would expect the points to cluster close to the diagonal.

Contrary to what I'd expect, increasing the sample size (moving down columns) does not yield point clouds that lie closer to the diagonal. Quite to the contrary, they actually turn asymmetric, and the values for the intercept move off the diagonal altogether.
I don't know what's happening (and I'd like to learn more), but it seems like your experience is not atypical.
Of course, one might ask why you are modeling financial time series that appear to have a mean of zero with an ARMA(2,3) model, anyway. For financials, one would usually look to GARCH or similar, since we are usually more interested in modeling volatility.
R code for the plot below. It takes a few minutes to run on my machine. I had to put in a couple of try()s to deal with nonstationary estimated models.
nn <- c(100,1000,10000)
n.trials <- 100

opar <- par(mfrow=c(length(nn),6),mai=c(.5,0.5,.5,.1))
  for ( ii in seq_along(nn) ) {
    coeffs.1 <- coeffs.2 <- matrix(NA,nrow=n.trials,ncol=6,
      dimnames=list(NULL,c("ar1","ar2","ma1","ma2","ma3","intercept")))
    set.seed(1)
    for ( jj in 1:n.trials ) {
      logreturn <- rnorm(nn[ii])
        try(coeffs.1[jj,] <- (coefficients(arima(logreturn,order=c(2,0,3),init=c(0,0,0,0,0,0)))))
        try(coeffs.2[jj,] <- coefficients(arima(logreturn,order=c(2,0,3),init=c(0.5,0.5,0.5,0.5,0.5,0.5))))
    }
    for ( kk in 1:6 ) {
      plot(coeffs.1[,kk],coeffs.2[,kk],pch=19,main=colnames(coeffs.1)[kk],xlab="",ylab="")
      abline(a=0,b=1)
    }
  }
par(opar)

