From: Ashish Uthama on
Integration needs to go both ways.
What kind of interaction does Metatrader allow with other softwares? Does
it let you call a C/C++ DLL functions? Or perhaps it provides a COM
interface which can be called by MATLAB?

If you want Metatrader to be the 'main' software, calling into MATLAB. You
can look at these options:

#1. Compile MATLAB logic into a DLL using the MATLAB compiler. Program
Metatrader to invoke the functions in this DLL.
This also has the added advantage that you depoly the solution on machines
which dont have MATLAB.

#2. Use the MATLAB engine.
http://www.mathworks.com/access//helpdesk/help/techdoc/matlab_external/f29148.html
(again assume a C/C++/Fortran calling environment). If Metatrader lets you
write plugins in C/C++/Fortran(!), then this might be an option.

#3. If Metatrader allows for a COM plugin, use MATLAB's com interface.

On the other hand, you could think of MATLAB being the 'main' program.
You'll have to write logic in MATLAB to call into Metatrader for its part
in the solution. This might work if Metatrader has say a COM api for
MATLAB to use.

You should be able to find most of the info for the above here:
http://www.mathworks.com/access/helpdesk/help/techdoc/matlab_external/bp_kqh7.html



You mentioned CSV files. I am guessing that this means you can do have
Metatrader read/write data into CSV files. You could leverage this for a
producer-consumer relation with MATLAB. Have both of them poll a directory
for input/output files. Say Metatrader will always put files to be
processed into this directory as in.csv and wait till a out.csv is created
in it. MATLAB could poll for in.csv, read it in, process the data, delete
in.csv and create out.csv.