Build Your Own Trading Exchange

MyExchange is our new high performance exchange engine which comes with complete C# source code, allowing developers to create their own custom stock, forex, futures, sports betting, cryptocurrency (Bitcoin or Litecoin), or fantasy trading exchange.

What can you do with MyExchange?

Hosting your own exchange allows you to list securities, set your own rules and regulations, set your own pricing, create and administer your own trading members, manage your own record keeping and reporting, perform your own market-making, own and sell your own real-time and historic data, partner with other exchanges and so much more. You can also program your own logic to prevent flash crashes, institute your own trading curbs, or prevent trading behavior that goes against your exchange's rules.

With MyExchange, it's your exchange.

Why MyExchange?

Developing an exchange engine is no trivial task. An exchange must take into account partial fills, cancels, rejections, complex order types such as Good-Till-Cancelled, One-Cancels-Other, Trailing Stops, and other order types. It must address risk management, security, data handling, multithreading, scalability, and redundancy. The list goes on and on.

Exchange Engine C# Source Code

Advanced Trading Technology

Technology has come a long way since the stock market was invented in 1792. MyExchange uses the latest in technology to offer the highest possible performance. If you're planning to develop an exchange engine, MyExchange is the foundation you need to build it, allowing you to focus on the development of your core offering.

High Performance

MyExchange consists of a very robust set of C# applications. The server has been tested with a simulated load of 10,000 simultaneous clients.

Our engineers worked for two years to develop MyExchange. They re-wrote the code-base multiple times before settling on a final design, which we believe to be the simplest, most powerful, and most scalable solution possible.

The C# source code of MyExchange is so highly optimized it's on par with most stock exchanges, including the NYSE and NASDAQ.

Over the years, we've developed several stock exchanges around the world. Our engineers strongly believe the latest version of MyExchange is scalable enough to run a global exchange with billions of daily transactions.

Yes. It is that good.

Exchanges vs. ECNs

While MyExchange can be used to create an actual trading exchange, it can also be used to create an ECN, which is a system that facilitates trading outside of an actual exchange.

How do ECNs and exchanges differ? Exchanges can list securities, but both exchanges and ECNs can orchestrate transactions, collect transaction fees, and produce and sell market data. Exchanges govern themselves with their own regulatory arms. ECNs on the other hand, are regulated by both the SEC and a national securities association (to which any registered broker-dealer is required to belong).

Real-Time Data on the Desktop or Web

MyExchange comes with a built-in WebSocket data server to power both desktop and web applications with streaming real-time data. Your exchange can power desktop, web, and mobile clients all at once.

Rapid Deployment

MyExchange can be compiled and deployed right out of the box. It ships as a set of ten Visual Studio projects, including a SuperWebSocket and WCF data server, an HTML5 client that streams live data, a desktop client, risk engine, order matching engine, database manager, and other projects. We provide one-on-one developer setup, support, and training via desktop sharing, so you can get your exchange set up and running in no time. All things considered, MyExchange should save you between 750 to 1,000 hours of programming time, if not more.

Highly Customizable Source Code

You can customize the risk engine, order matching engines, or any other project to suit your needs. MyExchange is extensible and versatile, designed to help save you time and reduce your time to market.

We're constantly developing and improving our products. MyExchange has recently been updated to support additional order types and to improve scalability. The latest version is 17% faster than previous versions.

The latest version of MyExchange supports Market orders, Limit orders, Stop orders, Stop Limit orders, Market to Limit, Market if Touched and other order types. It also supports partial fills, cancels, and rejections with the built-in risk engine.

Saves Time and Money

If you've attempted to develop your own ECN / exchange from scratch, you've probably experienced pain and difficulty. MyExchange can help you avoid the difficulties of developing an exchange and will probably hasten your time to market. MyExchange is also great for Sports, Bitcoin, Litecoin, and other cryptocurrency exchanges.

Extremely Secure - Stanford Remote Password Protocol

MyExchange uses SSL and is secured by the Stanford Remote Password protocol (SRP), which performs secure remote authentication of short human-memorizable passwords and resists both passive and active network attacks. SRP is used under license in MyExchange. You can read more about SRP at http://srp.stanford.edu/

MyExchange also uses triple DES and twofish encryption algorithms. For more info about security, see our security white papers collection.

Get Started with MyExchange >

Developer F.A.Q.s

  • Q. What programming languages do I need to know in order to use MyExchange? A. You only need to know C# to customize, compile, and install MyExchange.
  • Q. Which third party libraries are used in MyExchange? A. NLog, log4net, Newtonsoft JSON, and SuperWebSocket.
  • Q. Does MyExchange require an SSL certificate? A. Yes, unless you disable SSL (not recommended).
  • Q. Does MyExchange come with an example trading client? A. Yes, we provide both a C# WinForm and a JavaScript HTML5 client. The example allows a trader to login with a username and password, allows the account info to be updated for testing purposes (buying power, cash, etc.), and allows the trader to place trades with fields such as order type (OCO, LMT, GTC, etc.), quantity, side (buy/sell), type (equity, forex, etc.), position effect, symbol, price, stop price and other fields. The examples also contain grid controls which update in real time.
  • Q. Does MyExchange come with an administrator program? A. Yes, it comes with a WinForm-based admin panel, which allows you to create users, manage and delete accounts, view active users, view a log and more.
  • Q. Does the data server come with test units and an architecture diagram? A. Yes.
  • Q. Where does MyExchange store data? A. Data is saved and loaded to and from an encrypted database. MS SQL is supported by default but can be changed to MySQL or Oracle. The "users" table contains all registered users identified by the unique key: (email, account?). The "accountinfo" table contains additional information to calculate buying power, profit/loss, and current balances. The "orders" table contains a list of all "place order" requests. The "reports" table contains list of all execution reports. Upon startup, MyExchange loads all execution reports into memory to initialize the exchange. MyExchange updates tables in the database for every transaction, so the database always contains actual live data.

Deployment Options

MyExchange can be hosted on any Windows Server. Your clients can access your exchange service using regular http or https with SSL. It comes with built-in security and client access policies.

Why Choose Modulus?

Modulus is a financial technology company. While that may not sound like a real differentiator, it is. It means that our solutions come from our years of experience in the financial technology industry. Our products and services are provided by developers and engineers who have first-hand trading experience. Everyone here at Modulus speaks your language.

Read more about us.