Open-source project
StockSharp/StockSharp avatar
StockSharp/StockSharp

StockSharp: a C# algorithmic trading platform with connectors, a visual Designer and market data storage

Algorithmic trading and quantitative trading open source platform to develop trading robots (stock markets, forex, crypto, bitcoins, and options).

10,818 stars2,281 forksC#NOASSERTION

At a glance

What is it?
StockSharp is a free C# platform for building trading robots across crypto, forex, stocks and options, shipped with a visual strategy Designer, the Hydra data store and a charting Terminal. Here is how the API works, how to install it, and where it stops being the right tool.
Who is it for?
Adopt StockSharp if your team writes C# and you want one library covering strategy logic, market data storage and broker connectivity, with the Designer as a way for non-programmers to assemble schemas. Do not adopt it if you need a Python research stack, or if you expect the GitHub releases page to be your upgrade channel: the newest release listed there is 5.0.0 from 2020-03-27 while the master branch was pushed on 2026-09-19.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository last received commits 1 day ago.
What is it written in?
Mainly C#, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 29, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The problem StockSharp solves: one C# surface for many brokers and markets

Trading code usually fragments along broker lines. Each venue has its own authentication, its own order types, its own symbol naming, and its own way of streaming candles. A strategy that works against one exchange has to be rewritten for the next. StockSharp's answer is a single .NET library where a security, a subscription, an order and a connector are the same objects regardless of whether the other side is Binance, InteractiveBrokers, MT5 or a FIX gateway. The README lists connections including Binance, MT4, MT5, FIX/FAST, PolygonIO, Trading Technologies, Alpaca Markets, CQG, IQFeed, InteractiveBrokers, LMAX, Oanda, FXCM, Rithmic, cTrader, DXtrade, BitStamp, Bitfinex, Coinbase, Kraken, BitMEX, Deribit, HTX, KuCoin and Hyperliquid, and notes that connector source code and the full list live in the separate StockSharp Connectors repository.

The audience is narrower than the connector list suggests. This is a C# platform for programmers using Visual Studio, per the README's API description. It targets people who want direct exchange access, up to high-frequency strategies, and who are willing to work inside .NET rather than a scripting runtime. Around the library sit four free desktop applications: Designer for visual strategy construction with an embedded C# editor and debugger, Hydra for loading and storing market data, Terminal for charting and click trading, and Shell, a fully open source graphical framework in C# that runs Designer schemas and reports strategy testing statistics.

How the Connector, subscriptions and messages fit together

The core object is Connector. You look up a security by identifier, wrap a data type and that security into a Subscription, attach handlers, then call Connect. The README's example builds a one-minute candle subscription for AAPL@NASDAQ, filters to finished candles only, and registers a market order whose side depends on whether the candle closed above its open. Two details in that sample matter more than the trading logic. First, the handler checks sub != subscription, because a single connector can carry many subscriptions and the event fires for all of them. Second, it checks candle.State != CandleStates.Finished, because candles arrive in intermediate states before they are final. A strategy that skips either check will act on partial data or on another instrument's stream.

The repository layout shows the same architecture at a larger scale. Messages/ holds the message model, BusinessEntities/ the domain objects, Algo/ and Algo.Strategies/ the strategy machinery, Algo.Indicators/ the indicator set, Algo.Testing/ the backtesting path, MatchingEngine/ an order matching component, and Fix.Core/ plus Fix.Dialects/ the FIX protocol layer. Charting.Interfaces/, Alerts.Interfaces/ and Localization/ are the shared contracts the desktop applications consume. Market data does not have to come from a live connector: Hydra stores it locally with what the README describes as a high compression ratio, exposes it through an API, and can export to csv, excel, xml or a database, import from csv, run scheduled tasks and auto-sync between several Hydra instances over the internet. That storage layer is what makes offline backtesting practical without re-downloading history.

Installing and running a first candle-driven order

The README does not give NuGet package identifiers or CLI install commands. It points to a download page at stocksharp.com/en/products/download and to documentation at doc.stocksharp.com/en, and it describes the API as a free C# library for programmers who use Visual Studio. So the honest starting point is: get the platform from the project's download page, or reference the library from your own .NET solution, and follow the docs site for the current package names. Do not guess a package id from this article.

Once the library is referenced, the README's connector example is the smallest real program. It subscribes to one-minute candles and sends a market order on each finished candle, buying when the candle is green and selling when it is not.

csharp
var connector = new Connector();
var security = connector.LookupById("AAPL@NASDAQ");

var subscription = new Subscription(DataType.TimeFrame(TimeSpan.FromMinutes(1)), security);

connector.CandleReceived += (sub, candle) =>
{
    if (sub != subscription || candle.State != CandleStates.Finished)
        return;

    var isGreen = candle.ClosePrice > candle.OpenPrice;

    var order = new Order
    {
        Security = security,
        Type = OrderTypes.Market,
        Side = isGreen ? Sides.Buy : Sides.Sell,
        Volume = 1
    };

    connector.RegisterOrder(order);
};

connector.Subscribe(subscription);
connector.Connect();

What you should see is an order registered on every finished minute candle, with no output on unfinished ones. Before running anything against a funded account, point the connector at a paper or demo endpoint and confirm that LookupById resolves the identifier format your venue expects, since the sample uses the AAPL@NASDAQ form. If you prefer not to write the handler at all, the Designer application builds the same logic visually and can embed C# for the parts that need code.

Where StockSharp is the wrong choice

The README does not document rollback, and it does not describe a release cadence. That absence matters. The GitHub releases page shows 5.0.0 from 2020-03-27, 4.4.16 from 2019-02-07 and 4.4.15 from 2018-12-01, while the master branch was pushed on 2026-09-19. Anyone who treats the releases page as the upgrade channel will conclude the project is dormant, and anyone who builds against master gets code that has no matching tagged release. Pinning a version and reading the documentation site is the only way to know what you are running.

The second boundary is language and runtime. This is a .NET platform. If your research pipeline is pandas and your team writes Python, the repository's Algo.Analytics.Python/ entry does not turn StockSharp into a Python-first framework; the API is described as a C# library. Teams that want to iterate on features in a notebook will fight the toolchain.

Third, the licence field on the repository is NOASSERTION, and the README states that connector source code lives in a separate repository. That means the licensing of the piece you actually need, the connector for your broker, is not settled by this repository's metadata. Check it per connector before you design around it. Finally, the sample strategy above is deliberately naive: it trades on candle colour with volume 1 and no position tracking. It is a wiring demonstration, not a strategy, and StockSharp provides no risk layer that would stop it from sending an order per minute.

StockSharp against NautilusTrader and the Python trading stack

NautilusTrader, which appears in the related searches, takes the opposite starting point: a Python-native event-driven engine, with performance-critical paths handled outside pure Python. The practical difference is where your time goes. In StockSharp you inherit a large C# library plus four desktop applications, and you get Hydra for storing history locally and Designer for building schemas without writing code. In a Python framework you inherit a smaller core and assemble your own data storage, charting and execution surface, but you stay in the language most quantitative research is written in.

There is a second, less obvious split. StockSharp ships a MatchingEngine/ project and Algo.Testing/, so backtesting and order matching are part of the platform you install, and the Shell application reports strategy testing statistics, equity and reports. Python stacks tend to treat backtesting as a separate library choice. Neither approach is better in the abstract. If you already have C# developers and Windows desktops, StockSharp removes a lot of plumbing. If your edge is in research iteration speed, the plumbing you remove is the plumbing you wanted to own.

Maintenance, upgrades and the licence question

The repository is not archived, and the last push to master was on 2026-09-19, so the codebase is moving. What is not moving, judging by the releases listed on GitHub, is the tagged release line: 5.0.0 dates from 2020-03-27. Treat those as two separate signals. Active commits tell you bugs can be fixed; a four-plus-year gap since the last listed release tells you there may be no stable artifact to upgrade to on a schedule. Before adopting, decide whether you will track master or a specific commit, and write that decision down, because the README does not describe a support policy or a versioning scheme.

Upgrade cost also depends on which surface you use. The API is code you compile, so a breaking change surfaces at build time. Designer schemas are saved artifacts, and the README notes that Shell supports Designer schemas, so a schema format change reaches users who never touch C#. If non-programmers maintain strategies in Designer, they are exposed to upgrades you cannot review in a pull request.

On licensing: the repository's licence field reads NOASSERTION, and the README states that connector source code and the full connector list are in the StockSharp Connectors repository. That is a factual boundary, not legal advice. Establish which licence covers the connectors you intend to deploy, and whether redistribution or commercial use is affected, before you build a product on top.

Editorial conclusion

Adopt StockSharp if your team writes C# and you want one library covering strategy logic, market data storage and broker connectivity, with the Designer as a way for non-programmers to assemble schemas. Do not adopt it if you need a Python research stack, or if you expect the GitHub releases page to be your upgrade channel: the newest release listed there is 5.0.0 from 2020-03-27 while the master branch was pushed on 2026-09-19. Before committing, verify how the specific connector you need is distributed and licensed, since the README points to a separate StockSharp Connectors repository and the repository licence is marked NOASSERTION.

Frequently asked questions

What is StockSharp?

StockSharp, abbreviated S#, is described in its README as a free platform for trading on markets worldwide, covering crypto exchanges, stocks, futures, options, forex and Bitcoins, with manual or automated trading. It consists of a C# API plus the Designer, Hydra, Terminal and Shell applications.

How do I install StockSharp?

The README does not list package identifiers or install commands. It links to a download page at stocksharp.com/en/products/download and to documentation at doc.stocksharp.com/en, and describes the API as a free C# library for programmers using Visual Studio.

What is the StockSharp Designer?

The README calls Designer a free universal algorithmic strategy application with a visual designer for building strategies by mouse clicking, an embedded C# editor, a built-in debugger, custom indicator creation, broker connections and schema sharing with your team.

stocksharp alternative

NautilusTrader is a Python-native event-driven engine, while StockSharp is a C# platform that bundles a data store (Hydra), a visual strategy designer and a charting terminal alongside its API. The choice comes down to whether you want an integrated C# toolchain or a Python core you extend yourself.

What is StockSharp Hydra used for?

Hydra is the free data application that automatically loads and stores market data. The README lists support for many sources, a high compression ratio, any data type, API access to stored data, export to csv, excel, xml or a database, import from csv, scheduled tasks and auto-sync between several Hydra instances.

Official sources

  1. Issues
  2. Project website
  3. README
  4. Releases
  5. StockSharp/StockSharp on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/stocksharp-stocksharp.svg)](https://hysenlabs.com/projects/stocksharp-stocksharp)