Blocks that can't be exported Pro
Which parts and settings each export target refuses, why, and how to fix a blocked export. A blocked part is never dropped silently.
This feature is part of Pro.
When a strategy contains something the chosen target cannot express, the Builder saves no file. A file that quietly left a part out would trade differently from the strategy you tested, so the export is refused instead. This page lists what is refused and why. The tables are built from the same list the Builder uses.
MetaTrader 5 refuses nothing. MetaTrader 4 refuses a strategy that uses more than one symbol, and the wiring cases listed under “Other cases that block an export”.
What you see when an export is blocked
- The Builder shows the panel These parts cannot be exported to the selected target:.
- Each blocked part is listed with the reason.
- The blocked parts are marked on the canvas.
- No file is downloaded.

The server gives the same answer to a request for a blocked export, with the status 422 and the code target_blocked.
Parts that are blocked
These parts are refused whatever their settings are.
| Reason | Not exported to | Parts |
|---|---|---|
| A part that reads another timeframe is not exported to this target: how the higher-timeframe bar index maps is not confirmed in the official docs | cTrader | Multi Timeframe |
| Parabolic SAR: the MT start-up state (initial direction and extreme point) is not verified against cTrader, so identical values are not guaranteed and it is not exported | cTrader | Parabolic SAR |
| Calling an external MetaTrader indicator (.ex5/.ex4) by name is MetaTrader only | TradingView Pine, cTrader | iCustom |
| The measured spread is not part of the candle data on this target | TradingView Pine | Spread Filter |
| Parts that decide in the middle of a bar (every tick) are MT5/MT4 only; every other target decides at bar close and fills at the next bar open | TradingView Pine, cTrader | Cooldown Filter, Time Exit, Profit Pips Close, Basket Money Close, Virtual/Hidden SL/TP, Pyramiding, Averaging Down, Basket Break Even, Close All, Account Guard |
Python also refuses every part outside the short list on the Python page.
Settings and strategy options that are blocked
These depend on how a part is set or on the strategy as a whole.
| Reason | Not exported to | What sets it off |
|---|---|---|
| A part that reads the forming bar (shift 0) cannot be expressed in Pine (it decides at bar close). Use shift 1 or more | TradingView Pine | An indicator, OHLC or Multi Timeframe part whose Shift (or Bar shift) is 0 |
| A part that reads the forming bar (shift 0) cannot be expressed in Python (it decides at bar close and fills at the next bar open). Use shift 1 or more | Python | An indicator, OHLC or Multi Timeframe part whose Shift (or Bar shift) is 0 |
| The measured spread is not part of the candle data on this target | TradingView Pine, Python | Current Price with Price Type set to Spread (and the Spread Filter part) |
| Free margin depends on the broker margin model and cannot be reproduced on this target | TradingView Pine, Python | Account Info with Info Type set to Free Margin |
| Settings that rely on the MetaTrader account model (hedging control, account/broker restriction) are MetaTrader only | TradingView Pine, cTrader, Python | The Hedging Prevention, Cashback Hedge Mode and Account Restriction settings |
| Multi-symbol flows (a symbol on a part, or a target_symbols pair loop) are MT5 only; the MT4 export handles the single chart symbol | MetaTrader 4, TradingView Pine, cTrader, Python | A symbol set on a part, or a list of symbols in the strategy settings |
| Parts that decide in the middle of a bar (every tick) are MT5/MT4 only; every other target decides at bar close and fills at the next bar open | TradingView Pine, cTrader, Python | Entry timing set to Every tick or On touch |
Instruments that are blocked
The cTrader export refuses these instruments, because the platform decides their pip size. Other targets export them.
| Instrument | Symbol in the Miner |
|---|---|
| Gold | XAUUSD |
| Silver | XAGUSD |
| WTI crude oil | LIGHTCMDUSD |
| Brent crude oil | BRENTCMDUSD |
| S&P 500 index | USA500IDXUSD |
| Nasdaq 100 index | USATECHIDXUSD |
| Dow Jones index | USA30IDXUSD |
| DAX index | DEUIDXEUR |
| FTSE 100 index | GBRIDXGBP |
| Nikkei 225 index | JPNIDXJPY |
Other cases that block an export
- Wiring that would trade differently from what you see. MetaTrader 5 exports these and warns. Every other target refuses them, with the reason for each connection:
- An indicator or price wired straight into an action or into a logic gate. Put a condition (Compare or Cross) in between.
- An indicator or price that reaches an action only through a filter. Put a condition between them.
- A Compare or Cross part with more than two inputs. Only the first two are read, so remove the extra connections.
- More than one exit part of the same kind, where only the last would apply. Keep one.
How to fix a blocked export
- Read the reason for the first blocked part. Each reason names what to change.
- Choose one of these:
- Change the part’s setting. For example, set the Shift of an indicator to 1 instead of 0, or change the entry timing to Bar close.
- Remove the part. The strategy changes, so check it again in the Builder.
- Pick another target. MetaTrader 5 takes every part.
- Click the download button again.
Do not edit the downloaded file to add a blocked part back. The Builder gives no file for those, and a part that was not checked on the target can trade differently.
Next steps
- Go back to the Export overview to see how many parts each target takes.
- Read Match check for what has been compared against each platform.
- Go back to the Docs home.