I just saw there is a DDE solution for MT5 that comes with it own DDE-Server!
Now I am wondering why there are quite some attempts for trade-copiers based on pipes and sockets but not on that quite simple DDE which exists for Windows XP,Vista,7,8,10 and even Linux/Wine and probably MAC.
One only would need the ddeml.dll (from e.g. here even with an installation how-to) and an EA that check in OnTimer() whether there are new data available.
Here is even a client that shows what the MT4-DDE-Server sends without the need of Excel or Libre Office.
I think that a DDE connection could be quite easier coded than sockets or pipes.
DDE is obsolete and limited technology. If you found it easier, then just use it.
What is the point ?
1) DDE is obsolete and limited technology. If you found it easier, then just use it.
add 1) But obviously it is widely used and therefore still part of Windows 10 (64bit) and that's the reason why I am wondering that this way of a trade copier does not exists and we can be sure it wont be changed any more! So it is quite likely that it will survive even the next Windows (11, 12, Super, ..?) while other things would need an update or upgrade..!
add 2) Actually I have no time but may later..
Well not all things need an update or upgrade.
I have one that simple writes to file and each instrument is assigned a value 0 for no positions, 1 for a long position, and 2 for a short position.
The file is then served by a web server, and all clients read the file and synchronize to it by opening and closing positions accordingly.
No DLL or DDE needed and it would only stop working when file read and write themselves stop working which is highly unlikely.
No DLL or DDE needed and it would only stop working when file read and write themselves stop working.
If you use FileRead and -Write from kernel32.dll and a ram-disk this can be quite fast but still needs e.g. FileExists, FileOpen, FileRead, FileClose and eventually a FileDelete or a local management of what has been read and what is new and all that needs the overhead to catch errors and what to do in this cases ...
I assume that a DDE solution would need much less code in OnTimer().
# 'Request' example added jjk 11/20/98
server = dde.CreateServer()
conversation = dde.CreateConversation(server)
s = 'abcdefghi'
sl = conversation.Request(s)
print 'length of "%s" is %s'%(s,sl)
This methos is very "painful" to SSD drives and shorten their lifespan.
Even for mechanical HDD it is a hard and even slow task.
You shouldn't use files for auto-copy, because if you download a large file now, or do some other heavier task with your HDD, it will harm your copier and you might lose milliseconds or even seconds, which could be crucial for trade-copying.
Good if you need help you can post a job here : https://www.mql5.com/en/job