Starting today, you can paste a Pine Script indicator into Chartnaut and it runs on your charts. It works with versions 3 to 6, and the indicator stays in Pine, so you keep editing it the way you always have.
The terminal should build around you
We think trading terminals are becoming generative. Instead of waiting for a platform to ship the indicator, scanner or panel you want, you describe it and the terminal builds it around the way you trade. Chartnaut’s agents already do that for indicators, definitions, studies and apps, and we want it to be normal for every trader, including the ones who have never written a line of code.
A terminal that builds around you has to start from what you already have. Most traders who try Chartnaut aren’t starting from nothing. They have indicators they’ve relied on for years, and a lot of those are written in Pine. If every one had to be rebuilt by hand first, you’d spend your first week recreating your old chart instead of building anything new. So the first step was making sure your existing indicators come with you.
So we wrote our own transpiler
It reads Pine and compiles it straight into Chartnaut’s indicator format, the same format our agents write and the rest of the platform runs. An imported indicator is a Chartnaut indicator in every sense, so it works anywhere one you built here would.
The source stays Pine. Every time you save, the transpiler rebuilds the Chartnaut version from your Pine, so you never deal with the converted copy. Open the indicator next week and you’re looking at the Pine you pasted. Version 3 and 4 scripts come across as they are, without converting them to v5 first, because plenty of the indicators people still rely on were written years ago and never updated.
A fair value gap indicator, line by line
This is a fair value gap indicator, the kind ICT traders use to mark imbalances. It’s 17 lines of Pine v6.
//@version=6indicator("ICT fair value gaps", overlay = true)var gaps = array.new<box>()minGap = ta.atr(14) * 0.3// Grow each gap until price trades back into itfor g in gaps if g.get_right() == bar_index - 1 if low > g.get_top() or high < g.get_bottom() g.set_right(bar_index)if low - high[2] > minGap gaps.push(box.new(bar_index - 2, low, bar_index, high[2], bgcolor = color.new(color.teal, 78), border_color = na))if low[2] - high > minGap gaps.push(box.new(bar_index - 2, low[2], bar_index, high, bgcolor = color.new(color.red, 78), border_color = na))Line 4 sets the bar for what counts as a gap: wider than 30% of the 14-bar ATR. Measuring against ATR means each gap is judged against how much the market is moving at the time, so a quiet morning and a news spike are held to different sizes.
Lines 10 to 13 find bullish gaps. If this bar’s low is above the high from two bars back, the candle in between moved so fast that its neighbours never overlapped. The box fills the space between them and starts at the first of the three candles. Lines 14 to 17 do the same the other way round for bearish gaps.
Lines 6 to 9 run on every bar. Each box that’s still open is stretched one bar to the right, as long as the new candle stays completely above or below it. The first candle that trades into the gap stops it, so the length of a box tells you how long that gap was left alone.
Paste it into Chartnaut and you get the chart at the top of this post. That’s a sample QQQ 5-minute session we generated for this post, but every box on it is exactly what the code above draws: one gap that held through the morning, two from the selloff that the afternoon rally filled, and two still open at the close.
Moving your own indicators over
When you create a new indicator in the terminal there’s an option called From Pine. Paste the whole script into it. It’s checked as soon as it lands, and once you’ve named and saved it, it’s in your indicator list like any other.
It works wherever your charts are
An imported indicator draws on the same chart you place trades from, whether that’s an MT4, MT5, cTrader or TradeLocker account or Chartnaut Demo. Save the layout as a chartbook and the indicator comes back with it, in live trading and in backtesting sessions.
If you use Claude Code or Codex with the Chartnaut MCP, the agent reads the indicator as Pine and edits it as Pine. Ask it to only mark gaps during the New York session and it changes the lines above, rather than some converted copy you’ve never seen.
More languages are coming
Pine is the first language we support, and other platforms are next, for the same reason: whatever you use today should come with you. If your indicators are written for another platform, email me and tell me which one.
A note from me
I wanted this one done early.
A terminal that builds itself around you is a big promise, and it means very little if the first thing it asks is for you to rebuild your chart from scratch. We build Chartnaut for people who trade by hand, and for them the chart they already have is where everything starts.
Next is other platforms.
Try it with the indicator you’d miss most.
If something doesn’t come out right, send me the script at [email protected] and I’ll look at it myself.
Thanks for reading.
Best,

Pine Script® is a trademark of TradingView, Inc. Chartnaut is independent and isn’t affiliated with or endorsed by TradingView.
