[erlang-questions] implementing Forex Trader in Erlang

Nicholas Frechette <>
Sun May 20 16:24:38 CEST 2012


Hi,
At home, I built a system to do just that. Erlang worked great to
build the prototype and I was able to quickly iterate and get
something stable running. In fact, it has been running for 2 years now
without downtime. I also fell in love with erlang during this time.
Unfortunately, it also became clear at some point that it would have a
hard time to scale beyond a certain size. Things like modifying large
datasets in memory (order book management, historical data management)
very quickly are not strong suits of erlang. You can probably scale to
a professional suitable level with the proper time/resources however
for me, it wasn't exactly worth it. I already have my GUI application
in C# and seeing how I build high availability applications with tight
cpu/memory constraints every day at work in C++, C# proved a better
choice for me even if only because I know when the need arises, I'll
be able to optimize it easily to a level I'm comfortable with. In
erlang, I would have had to resort to using drivers written in C++ for
the critical bits or entire processes built in C++. C# will also allow
me to leverage my functional prog. skills with F# if the need arises
:)

Basically, that was it for me. I worked in erlang 1+ year building it,
I had a great time doing it but ultimately changed my mind despite the
fact it'll take me 1 year to rewrite the erlang bits in C#. You could
easily build everything you need in erlang, there is no doubt there
(and fairly quickly too). Whether you can reach cpu budgets and memory
budgets you set yourself will largely depend on how motivated you are
with erlang and how much you are willing to hybridize your system
(either with drivers or other processes). Using it only for message
processing seems reasonable but a bit strange if your solution is in a
different language. In C# for example, NServiceBus would probably be
an equally good solution. I'm sure java must have a stable solution
for messaging as well. Rolling out your own isn't all that hard
either, the Disruptor guys sorta did it.

That's my story and my 2 cents. Note that it wasn't a professional
project, only a hobby.
Cheers,
Nicholas

On Fri, May 18, 2012 at 2:05 AM, Ilyushonak Barys
<> wrote:
> It looks likes that this guys use Erlang  only for messaging middleware. The
> server components, which connected to exchanges, are implemented in c++.
>
>
>
> From: 
> [mailto:] On Behalf Of Michael Truog
> Sent: Friday, May 18, 2012 2:05 AM
> To: Shahrdad Shadab
> Cc: 
> Subject: Re: [erlang-questions] implementing Forex Trader in Erlang
>
>
>
> Here is the architecture of something similar:
> http://www.connamara.com/solutions-hftframework.html
>
> On 05/17/2012 09:19 AM, Shahrdad Shadab wrote:
>
> Hi Erlangers
>
>  I have to implement a foreign exchange trader software for a financial
> firm.
> They need fast response and high availability. They also need parallel real
> time feed from multiple brokers.
> As I did my preliminary investigations,It seems most of the tools on the
> field are implemented in Microsoft technologies like .net or com/OLE.
> I believe (although I might be wrong) the broker servers are DDE servers.
> I decided to use Erlang/otp. Does anyone know if something like this has
> done before in Erlang.
> Also I appreciate any guidance on how to get feed from trader servers.
>
> Thanks a lot
> Best regards
> Shahrdad
>
>
> --
> Software Architect & Computer Scientist
>
>
>
>
>
> _______________________________________________
>
> erlang-questions mailing list
>
> 
>
> http://erlang.org/mailman/listinfo/erlang-questions
>
>
>
> _______________________________________________________
>
>
>
> The information contained in this message may be privileged and conf
> idential and protected from disclosure. If you are not the original intended
> recipient, you are hereby notified that any review, retransmission,
> dissemination, or other use of, or taking of any action in reliance upon,
> this information is prohibited. If you have received this communication in
> error, please notify the sender immediately by replying to this message and
> delete it from your computer. Thank you for your cooperation. Troika Dialog,
> Russia.
>
> If you need assistance please contact our Contact Center (+7495) 258 0500 or
> go to www.troika.ru/eng/Contacts/system.wbp
>
>
>
>
> _______________________________________________
> erlang-questions mailing list
> 
> http://erlang.org/mailman/listinfo/erlang-questions
>



More information about the erlang-questions mailing list