Plots, Clouds & Painted Bars
Plots become indicator buffers, clouds become fillings between two lines, and painted price bars become coloured candles. Any visual differences are agreed in advance.
We rewrite thinkScript studies as MT5 custom indicators and strategies as Expert Advisors — so rules that only backtest in thinkorswim can trade your MT5 account. The result is checked against criteria agreed with you.
def ema = ExpAverage(close, 21);iMA(…, MODE_EMA, …) + CopyBuffer(…)plot EMA = ema;SetIndexBuffer(0, EmaBuffer)close(period = AggregationPeriod.HOUR)CopyRates(_Symbol, PERIOD_H1, …)AddOrder(OrderType.BUY_AUTO, cond);open long or close short, as in the originalSame opening-range logic — session times matched in MetaTrader 5
thinkorswim to MT5 conversion means rewriting thinkScript code in MQL5: a study becomes an MT5 custom indicator, and a strategy — which in thinkorswim places simulated orders for backtesting — becomes an MT5 Expert Advisor that can trade your account. Custom watchlist columns and scans can be rebuilt as a multi-symbol panel. The move can keep the same market — some MT5 brokers offer US stocks and futures — or change it; if the instrument changes, sizes, price distances and sessions are adapted as well.
Converting a thinkorswim study means rebuilding its calculations in MQL5 and everything it shows on the chart. We convert standard and custom studies, multi-timeframe studies, and watchlist columns.
Plots become indicator buffers, clouds become fillings between two lines, and painted price bars become coloured candles. Any visual differences are agreed in advance.
Data requested from other periods becomes data from other timeframes, keeping the original’s behaviour — forming or confirmed values. We also check the original for future-data leakage and agree any corrections before conversion.
Starting values, the history prefetched for averages such as ExpAverage and WildersAverage, and values built with CompoundValue or fold are rebuilt to start the same way as the original.
Labels and chart bubbles become chart objects or on-chart panels; the agreed information is kept and the look is agreed separately.
Alert conditions become MT5 alerts, with push notifications or email where needed.
MT5’s Market Watch has no custom columns, so watchlist columns and scan conditions can be rebuilt as a multi-symbol panel or scanner.
In thinkorswim, a strategy places simulated orders on the chart for backtesting. In MT5, the same rules become an Expert Advisor that places real orders on your account. This is what changes.
| thinkorswim strategy | MT5 Expert Advisor | |
|---|---|---|
| Trading rules — entries, exits, filters | Yes | YesRebuilt in MQL5 |
| Backtesting | YesOn the chart, with the strategy report | YesStrategy Tester, with optimisation |
| Strategy trading on your account | NoStrategy orders are simulated; pre-set conditional orders can be triggered by study conditions separately | YesThe EA places and manages orders |
| Price recorded for a trade | The price passed to AddOrder — the next bar’s open by default — whether or not a real order could get it | The actual fill from the market, or the fill modelled by the Strategy Tester |
| Watchlist columns and scans | Yes | PartlyA multi-symbol panel or scanner |
AddOrder entries and exits become MT5 trade operations — including what AUTO order types do on an open position, reversals, scaling in and partial exits.
On a hedging account each entry can stay a separate position; on a netting account all deals on a symbol make one shared position, and a magic number doesn’t split it. How the EA works alongside other EAs, manual trades and positions already open at start is agreed in advance.
AddOrder fills at the next bar’s open by default, so the EA acts at the start of the new bar. Trade size is converted to MT5 lots using the target symbol’s contract size and volume step, then checked against the agreed risk rules.
MT5 Strategy Tester results won’t match the thinkorswim strategy report exactly: the platforms use different data and fill rules, and thinkorswim records whatever price a strategy passes to AddOrder. We check that entries and exits follow the agreed rules.
thinkorswim and MetaTrader 5 can trade different instruments, and they run code in different ways. These are the differences that decide whether a converted script behaves like the original — and what we do about each of them.
US stocks, options, futures and forex in thinkorswim
Forex, CFDs, stocks or futures from your MT5 broker
If the instrument changes, we agree which one replaces each thinkorswim symbol and adapt sizes, price distances and sessions.
Continuous symbols such as /ES
A specific contract or a CFD, depending on your broker
We agree the MT5 symbol and how rollover and history are compared.
Time functions use their own time zones — SecondsFromTime, for example, works in Eastern Time
Your broker’s server time and the symbol’s sessions
We compare sessions, bar timestamps and the time zone each version’s logic uses — matching chart clocks alone isn’t enough.
Studies update as the current bar forms; strategy orders are generated on bar close
An EA reacts to tick events; ticks that arrive while one is being processed aren’t queued
We agree whether signals act inside the bar or on its close, and check historical and real-time behaviour separately.
Simulated by AddOrder, at the next bar’s open by default or at a price you pass
Real orders through your MT5 broker
We build real order handling and agree sizing, protective orders and how fills are expected to work.
CompoundValue seeds and prefetched history for some averages
Indicators calculate from the first available bar
We rebuild starting values and warm-up history, so calculations line up.
Plots, clouds, labels, chart bubbles and painted bars
Buffers, fillings, coloured candles and chart objects
We keep the agreed information and functions; the look can differ and is agreed with you.
Some things depend on the platform itself: data available only in thinkorswim, such as options and some fundamental data; built-in studies that MT5 calculates differently or doesn’t have; and the settings of thinkorswim’s strategy report. We point these out before work starts and agree the closest MT5 equivalent with you.
A converter or an AI pass can produce MQL5 code quickly. The risk is not the tool but an unchecked result: code can compile and still behave differently, because thinkScript and MQL5 handle bars, time and orders differently. We start from how the thinkorswim version behaves and rebuild it in MQL5.
| Automatic conversion | Manual conversion at Nordman Algorithms | |
|---|---|---|
| Starting point | Often the thinkScript syntax, statement by statement | How the thinkorswim version behaves |
| Platform differences | Often found later, if at all | Identified before work starts and agreed with you |
| Strategies | Simulated AddOrder logic carried over as it is | Real order handling built for your MT5 account |
Send it to us — we review it and give you a fixed price and timeline before work starts.
We run the thinkorswim original and the MT5 version on the same timeframe, with matching trading sessions and bar timestamps, and compare them against acceptance criteria agreed with you:
If the instrument stays the same, we compare values and signal timing directly. If it changes — say, from a futures contract to a CFD — the data differ, so we check that the agreed rules are followed and the risk is recalculated correctly, rather than expecting identical values or trades. If something doesn’t match, we find the cause — price data, platform behaviour or the code.
Share the study or strategy code and any other studies it references, the strategy’s global settings — trade size and how repeated entries in one direction are handled — and the symbol, aggregation and session settings of your chart, plus screenshots of how it should look and behave.
You sendScript + settingsWe analyse the script — including when each signal is actually known — logic whose conditions look at future bars can’t trade as drawn, while the standard open[-1] price in AddOrder is simply the simulated next-bar fill — and agree your MT5 broker, account type, symbols and sessions, acceptance criteria, price and timeline.
You getFixed price + criteriaThe study or strategy is rebuilt as an MT5 custom indicator or Expert Advisor, including any extra features you asked for.
We buildThe MT5 versionThe MT5 version is checked against the acceptance criteria agreed in step 2.
We checkValues, signals, tradesBugs and differences from the agreed specification are fixed after delivery.
You get.mq5 + .ex5 filesEvery study and strategy is reviewed before we quote. These are the main factors.
How much logic the script contains, including recursive values and referenced studies.
For strategies: entries, exits, AUTO order types, sizing and the order handling that live trading needs.
Data the script requests from other periods or symbols.
Clouds, labels, chart bubbles and painted bars.
Columns and scan conditions to rebuild as a multi-symbol panel.
Settings, filters or functions you want beyond the original script.
No. MetaTrader 5 runs MQL5; thinkScript studies and strategies have to be rewritten.
Yes. A thinkScript strategy places simulated orders for backtesting — thinkorswim’s conditional orders are a separate mechanism — while in MT5 the same rules become an Expert Advisor that places real orders on your account, with sizing, protective orders and trade management agreed with you.
thinkScript’s AUTO order types can close an opposite position as well as open a new one. A plain MT5 order on a hedging account would open a second, opposite position instead, so what each order type does on an open position is mapped explicitly.
If your MT5 broker offers the same instruments, the market stays the same, but each symbol’s specification, volume, sessions and execution are still checked. If you move to another market — say, from /ES futures to a US500 CFD — sizes, price distances and sessions are adapted, and how the EA behaves there is checked against the agreed rules.
MT5’s Market Watch has no custom columns, so custom watchlist columns and scan conditions can be rebuilt as a multi-symbol panel or scanner. What carries over is agreed before work starts.
On the same market, values can come close but not always match exactly: thinkorswim and your MT5 broker provide different data, starting values depend on prefetched history, and time-based logic has to be matched. If the instrument changes, identical values aren’t the goal — we check that the agreed rules are followed and the risk is recalculated correctly.
Yes, in the MT5 Strategy Tester. Results won’t match the thinkorswim strategy report exactly — the platforms use different data and fill rules, and thinkorswim records whatever price a strategy passes to AddOrder — so we check that entries and exits follow the agreed rules.
No. Our developers write the MQL5 version themselves, based on how the thinkorswim version behaves.
It depends on the size of the script, secondary aggregations, visual elements and, for strategies, the order logic. After reviewing your thinkScript code we give you a fixed price and an estimated timeline before work starts.
Share the study or strategy code and a short description of what it should do in MetaTrader 5. We will review it and give you a fixed price and timeline before work starts.