ACSIL
Sierra Chart's Advanced Custom Study Interface and Language — the native C++ interface used to write custom studies that compile to DLLs and run inside the platform.
What it is
ACSIL stands for Advanced Custom Study Interface and Language. It is Sierra Chart's native programming interface for writing custom studies in C++. A study built with ACSIL is compiled into a Windows DLL, dropped into Sierra Chart's installation folder, and loaded directly into the platform process — there is no scripting layer, no interpreter, and no IPC round-trip between your code and the chart engine.
Because studies run as native compiled code inside the same process as Sierra Chart, ACSIL studies have access to the same per-tick data and rendering primitives that built-in studies use. Bar data, volume-at-price arrays, market depth, drawings, chart settings, and order routing are all reachable through the ACSIL API. This is what makes ACSIL the canonical surface for building professional-grade tools on Sierra Chart, as opposed to chartbook-only workarounds with spreadsheet studies.
ACSIL is not a separate language — it is plain C++ plus a header-only API defined in sierrachart.h. You write a study function, include the header, link against nothing extra, and compile with the Visual C++ toolchain that Sierra Chart ships internally or with an external compiler.
Why it matters
For traders, ACSIL is the reason Sierra Chart has such a deep ecosystem of third-party studies for order flow, depth analysis, automated execution, and journaling. Every serious add-on for the platform — including the studies SCS sells — is an ACSIL DLL.
For developers, ACSIL gives you direct access to the chart's data model with zero overhead. You can read every tick, plot custom subgraphs, draw on the chart, intercept user clicks, place orders, and persist state across sessions, all from one source file.
How it's used in ACSIL code
A minimal ACSIL study is a single .cpp file that includes sierrachart.h, declares the DLL name via the SCDLLName macro, and defines one or more scsf_<StudyName> functions. Each scsf_ function receives a SCStudyInterfaceRef (conventionally named sc) through which the platform exposes bar arrays, inputs, subgraphs, and helper methods. The function is called by Sierra Chart on each chart pass, and either runs once per bar (auto-looping mode) or once per pass (manual mode).
Common patterns / pitfalls
- Auto-looping vs manual mode — auto-looping iterates the function once per bar from oldest to newest, which is simpler but unsuitable for aggregations across the full chart. Choose deliberately at the top of the study.
- SetDefaults block — the first call into a study sets
sc.SetDefaults, which is where you declare the study name, subgraph configuration, inputs, and update flags. Mutating these later will not take effect. - State persistence — non-trivial studies need to persist values across calls. ACSIL provides
sc.GetPersistent*helpers indexed by integer keys, plus thesc.Subgraph[i].Arraysslots for per-bar scratch space. - Threading — ACSIL study functions run on Sierra Chart's main loop. Never block; never call out to slow I/O without offloading.
- DLL hot-reload — Sierra Chart can rebuild and reload an ACSIL DLL without restarting the platform, which makes the dev cycle fast.
Related SCS studies
Every study sold by SCS — including Trade Manager, the CVD and footprint-related overlays, and the Custom Studies built for individual clients — is an ACSIL DLL. The Trading Journal is a separate Electron app, but it consumes ACSIL-emitted log files for its trade reconstruction pipeline.
How ACSIL shows up in SCS studies
See also
About the acsil & development category
Sierra Chart's Advanced Custom Study Interface and Language — the C++ surface SCS studies are built on.
Browse the full glossary