Java/Linux advantages for algo trading

Discussion in 'Automated Trading' started by swinging tick, Feb 17, 2022.

  1. I have no experience with time-critical algo trading, but other types of low-latency / real-time systems and I'm really wondering about the wild mixture of technologies in here, like writing "what you really want is a real-time OS" and than referring Java or C# at the same post.

    If we don't have a complete different understand of what real-time means, it means that you get guarantees. That function will execute within 10ms, a main loop tick must finish in 100ms, ... This what realtime is (don't mix with performance, most realtime systems are terrible slow) and why you never ever use something like a JVM for that. The garbage collector will run whenever it feels like it has to, and throw off your timinings completly because that tick will take way longer than the previous, with the GC locking all kind of stuff underknee.

    I usually spit into
    - If I need performance I move torward hardware. C/C++ (and rust nowerdays) best choice, not really because LLVM can produce better code and JVM JIT, but because it allows you directly interact with what you need, be it the RAM (pointers), CPU (mixing assembler with C is easy)or just directly calling into a kernel function without passing n+1 middleware layers first.
    - If I need features, I pick a nice low-boilerplate-code language that allows rapid development, Kotlin and Typescript beeing my favorites rigth now.

    And now about real-time: this a whole different story and I actually do not think that anyone here has a requirement to build a real-time system, because this is not about programming language, but about system architecture (have tracing points, watchdogs, circuit-breaker, panic handler, ectpp.)
     
    Last edited: Mar 3, 2022
    #31     Mar 3, 2022
    swinging tick likes this.