<div dir="ltr">Hello!<br><br>The application runs directly on latest Intel Xeon.<div><br></div><div>The source code of specific module in question is emailed to you separately.</div><div><br></div><div>There is a process per instance of "algorithm trading strategy", but no two processes share anything except the ordering socket to the market, which is accessed through synchronization (ETS). But, during the market test, we run only one or two strategies so there is no synchronization overhead.</div><div><br></div><div>The major computation is market depth update and price matching.</div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Oct 20, 2017 at 6:55 PM, Aleksander Nycz <span dir="ltr"><<a href="mailto:Aleksander.Nycz@comarch.pl" target="_blank">Aleksander.Nycz@comarch.pl</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div text="#000000" bgcolor="#FFFFFF">
    <p>Hello,</p>
    <p><br>
    </p>
    <p>My private definition:<br>
    </p>
    <p>Hard real time -> 100% requests/jobs/processes must be
      completed before deadline</p>
    <p>Soft real time -> N% requests/jobs/processes must be completed
      before deadline, where N < 100%,</p>
    <p>    so we can/must accept that some jobs will not be finished on
      time.<br>
    </p>
    <p><br>
    </p>
    <p>And few question:</p>
    <p>1. Erlang VM is running on Virtual Machine on bare metal?<br>
    </p>
    <p>2. What you erlang process really do? Can you show us some code?<br>
    </p>
    <p><br>
    </p>
    <p>Regards</p>
    <p>Aleksander Nycz<br>
    </p>
    <br>
    <div class="m_3111629448982425670moz-cite-prefix">W dniu 2017-10-20 o 14:00, Avinash
      Dhumane pisze:<br>
    </div>
    <blockquote type="cite"><div><div class="h5">
      <div dir="ltr">I have programmed high-frequency trading
        application in Erlang and comparing its reaction performance in
        the live market with other competing applications (mostly, in
        C).
        <div><br>
        </div>
        <div>It has been a consistent observation that my Erlang
          application lags substantially behind the competing
          applications. In fact, it never matched the reaction time of
          the so-called "slowest" C application in the market. </div>
        <div><br>
        </div>
        <div>The benchmark reaction time is about 5 microseconds. It is
          the time elapsed between tick to order. That is, the
          difference between the timestamps when I receive the tick
          (market event) from the mailbox of my process and when I
          submit the TCP send call on my order.</div>
        <div><br>
        </div>
        <div>My process maintains the market depths of the securities
          and when my desired price (as a function of best buyers and/or
          sellers on multiple legs of the order) is observed, I compute
          the order terms and submit. </div>
        <div><br>
        </div>
        <div>The entire computation and communication (with the market)
          takes place within the single process and there are no
          collaborating processes (hence, no inter-process messaging;
          not even ETS). Still, the reaction time is in the order of 20
          to 60 microseconds - that is, nowhere closer to the benchmark
          reaction time (5 microseconds).</div>
        <div><br>
        </div>
        <div>What I wish to hear from the experienced people on this
          forum here is whether I am missing on something in my Erlang
          code, or should I just go ahead and program in C.</div>
        <div><br>
        </div>
        <div>Thanks.</div>
      </div>
      <br>
      <fieldset class="m_3111629448982425670mimeAttachmentHeader"></fieldset>
      <br>
      </div></div><pre>______________________________<wbr>_________________
erlang-questions mailing list
<a class="m_3111629448982425670moz-txt-link-abbreviated" href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a>
<a class="m_3111629448982425670moz-txt-link-freetext" href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/<wbr>listinfo/erlang-questions</a><span class="HOEnZb"><font color="#888888">
</font></span></pre><span class="HOEnZb"><font color="#888888">
    </font></span></blockquote><span class="HOEnZb"><font color="#888888">
    <br>
    <pre class="m_3111629448982425670moz-signature" cols="72">-- 
Aleksander Nycz
Chief Designer
Telco_021 BSS R&D
Comarch SA
Phone:  +48 17 785 5909
Mobile: +48 691 464 275
website: <a class="m_3111629448982425670moz-txt-link-abbreviated" href="http://www.comarch.pl" target="_blank">www.comarch.pl</a></pre>
  </font></span></div>

<br>______________________________<wbr>_________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" rel="noreferrer" target="_blank">http://erlang.org/mailman/<wbr>listinfo/erlang-questions</a><br>
<br></blockquote></div><br></div></div>