What type of optimization problem is this?
Some flavor of evolutionary algorithm may suit your problem nicely, since:


The gradient of the objective function is unavailable or cannot be computed.
The objective function itself is somewhat expensive to compute.
The objective function is may have a large number of local maxima.


In short, evolutionary algorithms do optimization by generating candidate solutions and iteratively:


Checking their "fitness" (the value of the objective function)
Selecting the best candidate solutions
Generating new candidate solutions, somehow based on the best candidates from the previous iteration 


Naturally, the devil is in the details of how the best candidate solutions are selected and combined to generate new candidate solutions. This gives rise to a large number of evolutionary algorithm variants. Two popular variants are genetic algorithms and evolution strategies.

Genetic algorithms

Standard genetic algorithm implementations require you to encode your input variables in a binary fashion. This may be fine for categorical inputs, but your input variables take real values in the interval $[-1,1]$. It would be possible to implement a genetic algorithm for your problem, but it wouldn't be ideal. For your problem, I'd take a look at... 

Evolution strategies

On the other hand, evolution strategies handle real-valued inputs by design and, after getting used to the jargon, are fairly easy to implement. You mentioned that you plan to use MATLAB for optimization. I found this toolbox on the FEX which implements evolution strategies, but I haven't taken it for a test drive myself. Whatever the case, I think an evolution strategy would be a good option to try, given the dynamic nature of your problem.