femtotrader / rabbit4mt4

Metatrader 4 / AMQP (RabbitMQ) bridge
GNU General Public License v2.0
81 stars 56 forks source link

Any update work is needed for the MT4 version 600+? #2

Open kuyzhou opened 9 years ago

kuyzhou commented 9 years ago

Hi Femtotrader,

I have been following the instruction step by step to make a test in my local Win7 64bit machine. Using the send.bat & receive.bat scripts proved the RabbitMQ runs well. However, when I was launching the EA rabbit4mt4_ticks_emit, I got the error below in the console:

rabbit4mt4_ticks_emit EURUSD, M1: OnInit
Unhandled exception 0xE0434352
rabbit4mt4_ticks_emit EURUSD, M1: not initialized
rabbit4mt4_ticks_emit EURUSD, M1: uninit reason 8

May I know if any additional steps we have to make for using with MT4 in version 600+?

femtotrader commented 9 years ago

it shouldn't because I was ever using a MT4 build>=600 when I create this project. But I haven't use this project for some months.

femtotrader commented 9 years ago

Try to compile DLL

kuyzhou commented 9 years ago

In fact, the project Rabbit4mt4 would be built successfully.

kuyzhou commented 9 years ago

Here is the size of each related files copied into the MQL4/Libraries folder FYR:

        11,264 Rabbit4mt4.dll
         2,171 Rabbit4mt4.exp
         3,852 Rabbit4mt4.lib
        28,160 Rabbit4mt4.pdb
        23,168 Rabbit4mt4.vshost.exe
           490 Rabbit4mt4.vshost.exe.manifest
      249,856 RabbitMQ.Client.dll
       329,760 RabbitMQ.Client.xml

And btw, I've also checked my current MT4 version is up to 840.

femtotrader commented 9 years ago

I haven't test it soon with a recent MT4 build.

Please try to fix (that's open source)

You may be also interested by this project from an other developer https://github.com/OpenTrading/OTMql4AMQP

mj56g commented 8 years ago

Hi!

I have an issue too. I managed to compile the dll, but when I would like to try it out using rabbit4mt4_ticks_emit EA, it doesn't work.

I get these errors on initialization:

Cannot find 'InitializeMQConnection' in 'Rabbit4mt4.dll'
unresolved import function call
rabbit4mt4_ticks_emit EURUSD,M1: not initialized
rabbit4mt4_ticks_emit EURUSD,M1: uninit reason 8

I'm using build 840. Obviously the dll is found, but I cannot understand why it can't find the functions inside. I then commented out the line with InitializeMQConnection() in the ea and then it throws the same error with DispMQVersion() which is the next function in line, so I guess all the functions are somehow affected.

Thank you for any suggestions.

femtotrader commented 8 years ago

Hi,

I'm really sorry I lose interest in this project (for now).

DLL was made using "unmanaged exports"

I was using these articles to create this project http://vb6-to-csharp.blogspot.com/2011/08/write-csharp-c-dll-for-metatrader.html http://vb6-to-csharp.blogspot.com/2012/04/code-to-export-c-dll-to-metatrader.html https://sites.google.com/site/marketformula/vb6-to-c/vb6-to-c-downloads/code-to-export-c-dll-to-metatrader https://www.mql5.com/en/articles/249

You might have a look also at this article http://vb6-to-csharp.blogspot.com/2014/05/code-to-export-c-dll-to-metatrader.html

You need this Nuget package https://www.nuget.org/packages/UnmanagedExports

I suggest to try to create yourself a very basic DLL which could expose for example an add function which could add 2 integers and return result or a function which could display a message box and see if your DLL is working fine with your MT4 installation

You might also add logger http://www.codeproject.com/Articles/80175/Really-Simple-Log-Writer it could help

An other approach could be to avoid DLL and use named pipes https://www.mql5.com/en/articles/115 https://www.mql5.com/en/articles/503 https://www.mql5.com/en/code/10865

or have a look at projects like https://github.com/OpenTrading/OTMql4AMQP https://github.com/OpenTrading/OTMql4Zmq https://github.com/OpenTrading/OTMql4Py https://github.com/OpenTrading/OTMql4Lib

Kind regards