Introduction

What is Algolang?

Algolang is a framework for the development, backtesting, and optimisation of algorithmic trading strategies. Written in Go, it compiles and executes trading strategies that are also written in Go, giving strategy developers access to a modern, high-performance programming language and its entire ecosystem of tools and libraries.

Algolang is designed for experienced algorithmic traders and developers who want to move beyond the limitations of legacy platforms. It provides a familiar trading model – strategies that execute bar-by-bar over OHLCV data, placing orders and managing positions – while leveraging the full power of a modern compiled language.

Who is this manual for?

This manual is for anyone who wants to use Algolang to develop and test algorithmic trading strategies. It assumes:

  • A working knowledge of algorithmic trading concepts (bars, orders, positions, backtesting)
  • Basic programming experience (Algolang strategies are written in Go, but deep Go expertise is not required to get started)
  • Familiarity with the command line

No prior experience with TradeStation or EasyLanguage is required, although traders migrating from those platforms will find Appendix C helpful.

Why Algolang?

Algolang was created to address various shortcomings of TradeStation as a development platform for algorithmic trading. Specifically, the following are considered to be the main obstacles when using TradeStation:

  • EasyLanguage is an old, proprietary domain-specific language, whose initial objective was to simplify programming for non-programmers. While this was a laudable goal, this approach now masks far more problems than it set out to solve.
  • The language does not receive any significant ongoing development effort from its owners.
  • The documentation is extremely poor, often either absent, ambiguous, or just wrong.
  • Arbitrary constraints frequently make seemingly simple tasks difficult or even impossible.
  • There is no way to automatically place a linked order (such as a protective stop or exit) at the time an entry order fills. This forces a one-bar delay between entry and exit placement, which on daily bars means waiting an entire day before an exit can be active.
  • EasyLanguage programmers have been left behind in terms of modern programming language paradigms (and, no, the addition of the Object-Oriented EasyLanguage features in TradeStation 9.0 in 2009 does not address this issue).
  • There is no access to the tools used by modern programmers (such as a proper IDE, AI integration, source code control, and so on).
  • EasyLanguage strategies run in a 32-bit environment, which limits their ability to use the full power of modern hardware.
  • Memory constraints (a function of the 32-bit environment) limit the ability to backtest on reasonable-sized datasets.
  • EasyLanguage strategies are limited to a single-threaded execution model.
  • Updates frequently introduce new bugs and incompatibilities.
  • The platform is widely recognised as being unstable and unreliable (resulting in many users regularly rebooting their machines on a pre-emptive basis to minimise crashes).
  • Productivity for EasyLanguage developers is abysmally low by comparison with modern languages and tools.
  • Support is patchy, and even serious problems go unaddressed, often in the face of unassailable evidence.
  • There is no platform portability (since EasyLanguage code can only be run under TradeStation on Microsoft Windows).
  • Most serious TradeStation users end up resorting to expensive, external tools to supplement the product’s shortfalls.

There is no agenda here to convince anyone that Algolang is a better development platform than TradeStation and EasyLanguage. For inexperienced programmers, Algolang is likely to appear daunting, but for experienced developers, the benefits will be self-evident.

The key advantages of Algolang include:

  • Modern language: Strategies are written in Go, with access to its clean, orthogonal syntax, static type checking, generics, type inference, first-class functions, higher-order functions, function literals, closures, multiple return values, structs and interfaces, reflection, data structures of arbitrary size and complexity (maps, slices, channels), efficient memory management with garbage collection, a rich standard library, a huge ecosystem of open-source libraries, and compiler support for detecting common programming errors (such as unreached code and unused variables).
  • Native compilation: Strategies compile to native machine code and execute at full hardware speed, unlike TradeStation’s interpreted p-code.
  • 64-bit execution: No memory constraints from a 32-bit environment. Backtest on large datasets without artificial limits.
  • Multi-threaded: True concurrent execution for optimisation and multi-symbol backtesting across all CPU cores.
  • Timezone intelligence: Automatic handling of timezones and daylight savings across all data series, making multi-market strategies straightforward.
  • Modern tooling: Use any IDE, any editor, AI code assistants, source control, and the full Go ecosystem.
  • Cross-platform: Runs on macOS and Linux.
  • No licensing fees: No TradeStation subscription required.

Platform support

Algolang runs on macOS and Linux. Windows is not officially supported.