This project is read-only.


TradePlatform.NET is addition to MetaTrader 4 client terminal which extends trading experience, MQL language and provides .NET world communication bridge.

After long long break we finally release TradePlatform.NET 3.6! This release introduces TradePlatform core components as Nuget Packages, includes demonstration solution under source control and several critical bug fixes. Please check your issues against new release. All these concurrency issues with multiply connections are solved now.

Here is Quick Start guide:

- Download Demo solution from Source Control. It contains samples of Expert, Indicator, Script and integration scenarios for Windows, WPF, Windows Service, Web, Console applications.

- Copy any MT4 terminal to TradePlatform.MT4.Demo.Terminal folder. By doing this you merge your instance of terminal with TradePlatform.NET MQL side components.

- Open metaeditor.exe from TradePlatform.MT4.Demo.Terminal folder and compile Expert_NET.mq4, Indicator_NET.mq4 and Script_NET.mq4 files.

- Open terminal.exe from TradePlatform.MT4.Demo.Terminal folder and attach Expert_NET, Indicator_NET or Script_NET to chart depending on scenario you want to accomplish.

- Set Bridge_NET_HandlerName parameter for MQL script. This is one of those Handlers in BridgeConfiguration section of .NET side application (App.config to Web.config). If you want to have QuoteRecieved event functionality use QuoteListener as Bridge_NET_HandlerName value.

- Run any of .NET side application. Make sure you are using correct account number and symbol with Bridge.GetTerminal(1111222, "XXX"); function in case QuoteRecieved event scenario.


Any questions/comments/suggestions are welcome on Discussions tab.

TradePlatform.NET provides communication bridge between MQL and .NET worlds. It can be used to extend MQL with rich functionality of .NET Framework as well to develop Experts, Scripts and Indicators with .NET from the ground. MT4 SDK as part of TradePlatform.NET provides base classes for your custom implementations and API for common MQL functions. For development can be used any .NET programming language like C#, VB.NET, F#, Managed C++. .NET Bridge as another part of TradePlatform.NET acts like communication tire between MQL Expert and .NET ExpertAdvisor developed with MT4 SDK. Single instance of .NET Bridge can handle many MQL Experts from many terminals, also you can build clustered handler with .NET Shells or host .NET Bridge in your custom application and control isolation level of shared usage of .NET ExpertAdvisor in thread safe mode. Also you can get access to any from connected terminals from your custom .NET application.

  • Works with Demo and Real accounts
  • Forward and Backward tests are supported
  • Debugging, Logging and Performance monitoring
  • Entity Framework & WCF (Data Service) support
  • Program MTS in C# with .NET or integrate trading terminals with yours applications
  • Can be used with WPF, Windows Forms, Console, IIS server, Windows Service
  • Extendable architecture, Nuget packages and latest .NET technology edge
  • Documentation, samples and technical support available
  • 100% Free!


Simple integration API for custom applications available since version 2.0.

using TradePlatform.MT4.Core;
using TradePlatform.MT4.SDK.API;


        protected MetaTrader4 terminalA;

        public Form1()

            terminalA = Bridge.GetTerminal(727272, "EURUSD");
            terminalA.QuoteRecieved += terminalA_QuoteRecieved;

        private void terminalA_QuoteRecieved(MqlHandler mql)
            double bid = mql.Bid();
            double ask = mql.Ask();

            this.BeginInvoke((MethodInvoker) (() => labelBid.Text = bid.ToString()));
            this.BeginInvoke((MethodInvoker) (() => lableAsk.Text = ask.ToString()));

        private void buttonBuy_Click(object sender, EventArgs e)
.MqlScope(mql => mql.OrderSend("EURUSD", ORDER_TYPE.OP_BUY, 1, mql.Ask(), 3, 0, 0)); }

NB: In order to go on with TradePlatform.NET you must have basics of MetaTrader 4 MQL and .NET platform programing.

You will also need:

Last edited Sep 23, 2013 at 8:07 AM by vladkalos, version 32