Web-like UI inside of MT5. Is it possible?

 

I was seeing some open source projects made on top of the TradingView Lightweight Charts library and this sparked some ideas in my head. What if we can make MT5 charts as modern looking as other Web trading platforms (TV being one among many). 

I know that I am not the only one to think about this. Maybe developer's have tried to make it look better, or integrate more features. But honestly speaking, developer's main limitation is the CCanvas library itself. 

I know someone determined enough can extend it and make it better, but we still won't achieve that crisp UI that exists for other platforms. I wanted to do something about this and feels like pure MQL5 approach will take possibly months if not several months of development. 

I tried thinking of unconventional ideas like a Python process running alongside MT5. That Python process has a headless Chromium browser (via Playwright) that loads your app. But nobody sees that browser. It's invisible. Python then takes a screenshot of that invisible browser a pixel-perfect bitmap of whatever is rendered. That bitmap gets written somewhere MT5 can read it. MT5 loads it as an image and displays it on the chart via OBJ_BITMAP or CCanvas .

There are obvious limitations with this, the number 1 being there's no interactivity. We can get around that via building a click-mapping system that MT5 sends to python, but it would be laggy and unnecessarily complex. 

The only option left to me is DLL integration. That is pretty straightforward. But I wanted to avoid it and look for pure MQL5 approaches or MQL5 + Python. What do you guys think? DLL it is? 

 
Muhammad Minhas Qamar:

I was seeing some open source projects made on top of the TradingView Lightweight Charts library and this sparked some ideas in my head. What if we can make MT5 charts as modern looking as other Web trading platforms (TV being one among many). 

I know that I am not the only one to think about this. Maybe developer's have tried to make it look better, or integrate more features. But honestly speaking, developer's main limitation is the CCanvas library itself. 

I know someone determined enough can extend it and make it better, but we still won't achieve that crisp UI that exists for other platforms. I wanted to do something about this and feels like pure MQL5 approach will take possibly months if not several months of development. 

I tried thinking of unconventional ideas like a Python process running alongside MT5. That Python process has a headless Chromium browser (via Playwright) that loads your app. But nobody sees that browser. It's invisible. Python then takes a screenshot of that invisible browser a pixel-perfect bitmap of whatever is rendered. That bitmap gets written somewhere MT5 can read it. MT5 loads it as an image and displays it on the chart via OBJ_BITMAP or CCanvas .

There are obvious limitations with this, the number 1 being there's no interactivity. We can get around that via building a click-mapping system that MT5 sends to python, but it would be laggy and unnecessarily complex. 

The only option left to me is DLL integration. That is pretty straightforward. But I wanted to avoid it and look for pure MQL5 approaches or MQL5 + Python. What do you guys think? DLL it is? 

Hey, thanks. You just, basically, answered a question that I posted in another thread:

Forum on trading, automated trading systems and testing trading strategies

How was your first EA developed?

Ryan L Johnson, 2026.03.24 23:25

One of the funniest things I've seen is a trader seeking to connect TV to MT5. Why? Why? Whyyyyyy? 😅
IMHO, that sounds like an awful lot of work just for looks. I guess that I'm a function-over-form kind of guy.
 
Ryan L Johnson #:

Hey, thanks. You just, basically, answered a question that I posted in another thread:

IMHO, that sounds like an awful lot of work just for looks. I guess that I'm a function-over-form kind of guy.
It's not if I use dll, but that's the point. I don't want to use dll. And tbh, it looks too good :DDDD
 
Muhammad Minhas Qamar #:
It's not if I use dll, but that's the point. I don't want to use dll. And tbh, it looks too good :DDDD

But not too good to be true.😅

I just did a quick search and there are several 3rd party TV-to-MT5 bridges out there. I can't discuss any specific paid product here in the Forum, but they each appear to cost less than the average EA.

I had no idea that those things are that common.

 

Capture a webpage as an image, Load it into MT5 using bitmap objects

Load it into MT5 using bitmap objects (use puppeteer or selenium)

To scroll, use eg. window.scrollBy(0, distance)

To watch TV, make fake "video" using "images" (low FPS), Looks like a slideshow, not smooth video

OR

Write a C++ DLL: Websocket stream, Video decoding, Audio playback, then MT5 calls DLL

 
Ryan L Johnson #:

But not too good to be true.😅

I just did a quick search and there are several 3rd party TV-to-MT5 bridges out there. I can't discuss any specific paid product here in the Forum, but they each appear to cost less than the average EA.

I had no idea that those things are that common.

Those bridges are basically for execution of strategy. But I am not talking about. I was mainly referring to the outdated charts and features on MT5. Mainly the look of it. 

However, after a bit more contemplation, it's actually not worth it at all, since MQL5 indicators and EA's won't be able to render on my charts. Dead End.  
 
Heri Yusufu Kaniugu #:

Capture a webpage as an image, Load it into MT5 using bitmap objects

Load it into MT5 using bitmap objects (use puppeteer or selenium)

To scroll, use eg. window.scrollBy(0, distance)

To watch TV, make fake "video" using "images" (low FPS), Looks like a slideshow, not smooth video

OR

Write a C++ DLL: Websocket stream, Video decoding, Audio playback, then MT5 calls DLL

yes that's why I was referring to earlier, but there's no interactivity here. With a DLL, every problem is easily fixed, but as I replied to Ryan, there's no way to render MQL5's own indicators and EA on those charts. 
 
Muhammad Minhas Qamar #:
Those bridges are basically for execution of strategy. But I am not talking about. I was mainly referring to the outdated charts and features on MT5. Mainly the look of it. 

However, after a bit more contemplation, it's actually not worth it at all, since MQL5 indicators and EA's won't be able to render on my charts. Dead End.  

Ok, so you want to use MT5 broker-dealers, and run MQL5 code but not within MT5?

Also, which market(s) are you trading?

 
Ryan L Johnson #:

Ok, so you want to use MT5 broker-dealers, and run MQL5 code but not within MT5?


Let me give you an example so it's crystal clear on my intentions. 

Imagine the following chart being displayed INSIDE of mt5:


modern chart

The idea being, to replace the look of old MT5 charts, with the above image. INSIDE MetaTrader5. 

Ryan L Johnson #:

Also, which market(s) are you trading?

Was trading forex, but transitioning towards futures now

 
Muhammad Minhas Qamar #:

Let me give you an example so it's crystal clear on my intentions. 

Imagine the following chart being displayed INSIDE of mt5:


The idea being, to replace the look of old MT5 charts, with the above image. INSIDE MetaTrader5. 

Was trading forex, but transitioning towards futures now

I kind of like how meta trader 5 looks like tho, but i get your point also I am interested to hear your reasoning to move to futures. Futures is for me a world far away :)
 
Muhammad Minhas Qamar #:

Let me give you an example so it's crystal clear on my intentions. 

Imagine the following chart being displayed INSIDE of mt5...

The idea being, to replace the look of old MT5 charts, with the above image. INSIDE MetaTrader5.

That chart image looks nothing like MT5 so yeah, I see what you mean.

Muhammad Minhas Qamar #:
Was trading forex, but transitioning towards futures now

Most futures broker-dealers offer API access. MQL5 is a lot like C++. Some futures broker-dealers support C++ and Python API's. Many professional futures traders build their own trading platforms and code in those languages. Given the high level of customization that you want, that could be an alternative solution─although it's a monumental task and not really what you want. (I'm talking about futures contracts listed on a centralized exchange here).

As you've found that a Canvas is insufficient, and a Service has prohibitive restrictions for your purposes, this is unfortunately another... Dead End.