Re: Something interesting from Chatgpt/AI please post here

601
# Finsbury Park2 Market Clock

**Finsbury Park2 Market Clock** is a lightweight MT4 indicator that displays the main market session times directly on the chart:

* Rome
* London
* New York
* Tokyo

Each city has a different colored background for quick visual recognition.

The indicator also shows the **current trading symbol in large text** and a **live candle countdown timer**, for example:

**EURUSD**
**H1:05.00**

This means that 5 minutes remain before the current H1 candle closes.

The clock updates automatically every second, adjusts for daylight-saving time in Europe and New York, and automatically detects the current symbol and timeframe.

It is designed as a simple chart header to help traders monitor **market sessions, instrument, timeframe and candle closing time** at a glance.
These users thanked the author Finsburypark2 for the post (total 2):
JohnL33, mrWowka

Re: Something interesting from Chatgpt/AI please post here

602
I’ve been thinking for a while about porting this PineScript to MT5.

It’s a slightly different kind of RSI.

https://www.tradingview.com/script/ONhi ... d-RSI-NAL/

1. Overview

Sigmoid RSI | NAL is an adaptive momentum-regime indicator built from a transformed RSI engine, sigmoid weighting, and two independently adaptive smoothing layers.

Instead of using raw RSI values directly, the indicator recenters RSI around its midpoint and passes the result through a sigmoid transformation. This reshapes the oscillator into a smoother 0–100 momentum curve while preserving directional pressure around the central regime.

The final signal is refined through volatility-sensitive smoothing and an optional momentum-driven signal line, creating a more adaptive structure than a standard RSI with fixed smoothing.
These users thanked the author Pelle for the post (total 10):
kvak, Cagliostro, JAEYOUNG, cladi53, JohnL33, ionone, kudrpenk, ashdays, 88FX88, JimKuba

Re: Something interesting from Chatgpt/AI please post here

603
Finsburypark2 wrote: Thu Aug 13, 2026 8:29 am Thank you for help me, but now I’ve been working on a custom swing-reversal indicator designed to identify potential market highs and lows through a mathematical approach to price extension and volatility.The indicator measures price extension from a long-term basis, normalizes the movement using ATR, and identifies extreme areas where a local swing may be developing.I currently use three signal levels:Level 11 = early warning.Level 12 = intermediate swing signal.Level 14 = strongest swing signal.BUY and SELL signals have different colors and the histogram remains hidden most of the time.It becomes visible only when the wave enters the extreme area and remains visible until the wave exits that zone.The system also includes a trend regime filter based on ADX and EMA 200.When ADX is below the strong-trend threshold, Levels 11, 12 and 14 can operate normally.When ADX is above 28 and price is clearly above or below the EMA 200, the market is considered strongly directional.In this situation I try to filter most counter-trend signals at Levels 11 and 12.Level 14 remains the main reversal signal.When ADX rises above 35, a Level 14 counter-trend signal also requires price to be sufficiently extended from the EMA 200 relative to ATR.I also introduced a reset mechanism.After a BUY signal, another BUY should not be generated until the wave cools down and falls below a reset level, currently around 8.The same logic applies to SELL signals.This “one swing per market leg” concept was introduced specifically to reduce clusters of repeated signals.The indicator is designed to be non-repainting.Signals are generated only after the candle has closed and the calculation uses historical data causally, without future bars generating past signals.The Level 14 signal is also displayed on a dashboard showing BUY or SELL direction, signal date and closing price.Below it I display the latest Level 12 minor trend signal, while a magnified live market price makes it easier to compare the current price with the last swing signal.In my tests the indicator is performing very well during sideways and ranging market conditions.The swing points are often identified very effectively and the 11/12/14 structure gives a useful indication of how extreme the movement is.The main problem I still need to solve is strong directional trends.During powerful trends the indicator can generate several counter-trend signals because the market remains statistically overextended for a long period.This creates a much higher drawdown and makes money management difficult.So this is the area where I would really appreciate some help or ideas.I’m trying to find the best way to distinguish a genuine exhaustion point from a market that is simply extremely stretched but still capable of continuing in the same direction.Possible solutions I’m currently considering include making Level 14 the only tradable signal during strong trends, increasing the ADX filtering, requiring a stronger EMA/ATR extension, adding slope or trend-acceleration filters, or waiting for additional confirmation before accepting a counter-trend entry.The goal is not to predict every top or bottom.The goal is to identify situations where price is statistically stretched, volatility is elevated and there is enough evidence that the probability of exhaustion is actually increasing.The indicator currently looks very promising in ranging conditions, but reducing repeated signals and drawdown during strong trends is the key problem I’m trying to solve.Any suggestions on improving the trend-regime filter or managing these counter-trend signals would be very welcome. I testing into EURUSD M30 and H1
Can you share the indicator source code? I think this version is very good.

Re: Something interesting from Chatgpt/AI please post here

605
I’m sharing this Pine Script code for MT5:

Ichimoku Oscillator

Borrowed from the author of the original code

"This is Ichimoku Oscillator that creates different oscillator layers, calculates the trend and possible entry/exit levels by using Ichimoku Cloud features.

There are four layers:
First layer is the distance between closing price and cloud (min or max, depending on the main trend)
Second layer is the distance between Lagging and Cloud X bars ago (X: the displacement)
Third layer is the distance between Conversion and Base lines
Fourth layer is the distance between both Leadlines
If all layers are visible Maning that positive according to the main trend, you can take long/short position and when main trend changed then you should close the position. so it doesn't mean you can take position when main trend changed, you need to wait for all other conditions met (all layers(
there is take profit partially option. if Conversion and base lines cross then you can take profit partially. Optionally you can take profit partially when EMA line crosses Fourth layer.

Optionally ATR (average true range) is used for conversion and baseline for protection from whipsaws. you can use it to stay on the trend longer.

I added options to enable/disable the alert and Customize alert messages. You can change alert messages as you wish. if you use 'close' in the alert message then you can get closing price in the alert message when the alert was triggered.

There is an option Bounce Off Support/Resistance, if there is a trend and if the price bounces off Support/Resistance zone then a tiny Triangle is shown.

There are many other options for coloring, alerts etc".

https://www.tradingview.com/script/ypZ7 ... scillator/

Me "I couldn't get a "histogram" as nice as the one Cagliostro achieved for KoncordePlus: attach/file/3513159
So, let's stick with histograms."
These users thanked the author Pelle for the post (total 11):
kvak, kudrpenk, JAEYOUNG, ashdays, NI585, Krunal Gajjar, JohnL33, 88FX88, Eis, rogerha, JimKuba

Re: Something interesting from Chatgpt/AI please post here

606
Pelle wrote: Tue Aug 25, 2026 1:20 am I’m sharing this Pine Script code for MT5:

Ichimoku Oscillator

Borrowed from the author of the original code

"This is Ichimoku Oscillator that creates different oscillator layers, calculates the trend and possible entry/exit levels by using Ichimoku Cloud features.

There are four layers:
First layer is the distance between closing price and cloud (min or max, depending on the main trend)
Second layer is the distance between Lagging and Cloud X bars ago (X: the displacement)
Third layer is the distance between Conversion and Base lines
Fourth layer is the distance between both Leadlines
If all layers are visible Maning that positive according to the main trend, you can take long/short position and when main trend changed then you should close the position. so it doesn't mean you can take position when main trend changed, you need to wait for all other conditions met (all layers(
there is take profit partially option. if Conversion and base lines cross then you can take profit partially. Optionally you can take profit partially when EMA line crosses Fourth layer.

Optionally ATR (average true range) is used for conversion and baseline for protection from whipsaws. you can use it to stay on the trend longer.

I added options to enable/disable the alert and Customize alert messages. You can change alert messages as you wish. if you use 'close' in the alert message then you can get closing price in the alert message when the alert was triggered.

There is an option Bounce Off Support/Resistance, if there is a trend and if the price bounces off Support/Resistance zone then a tiny Triangle is shown.

There are many other options for coloring, alerts etc".

https://www.tradingview.com/script/ypZ7 ... scillator/

Me "I couldn't get a "histogram" as nice as the one Cagliostro achieved for KoncordePlus: attach/file/3513159
So, let's stick with histograms."

Interesting indicator.
It's quite likely that someone will find it useful in MT4 as well.
These users thanked the author 88FX88 for the post (total 6):
Eis, JohnL33, Krunal Gajjar, ashdays, rogerha, Pelle

Re: Something interesting from Chatgpt/AI please post here

607
New Finsbury Market V2

Finsbury Market V2 introduces a cleaner and more practical trading dashboard designed to keep the most important market information directly on the chart.
The new version includes a Market Open alert/status displayed directly below each financial center — London, New York, Tokyo and Sydney — so you can immediately see which session is currently active.
It also adds real-time candle countdown timers for M30, H1 and H4, allowing you to monitor exactly how much time remains before each candle closes. This is especially useful for traders who wait for candle-close confirmation before entering a trade.
At the bottom of the chart, V2 now features a direct market dashboard that lets you switch instantly between Forex pairs, commodities and Bitcoin without opening a new chart manually.
The result is a faster and more efficient workspace:
Market sessions + candle timers + live price + one-click chart switching — all in one dashboard.
These users thanked the author Finsburypark2 for the post:
JohnL33

Re: Something interesting from Chatgpt/AI please post here

608
// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © AlgoAlpha

//@version=6
indicator("Change in State of Delivery CISD [AlgoAlpha]", "AlgoAlpha - CISD", true, max_lines_count = 500, behind_chart = false)

tolerence = input.float(0.7, "Noise Filter", group = "Calculations", tooltip = "Determines which levels to use as CSID triggers, a larger setting results in less noise", maxval = 1, minval = 0, step = 0.1)
len = input.int(12, "Swing Period", group = "Calculations", tooltip = "The period to detect swing points, a larger setting will detect longer term swings")
expiry_bars = input.int(100, "Expiry Bars", group = "Calculations", tooltip = "Number of bars after which old liquidity lines stop updating")
liquidity_lookback = input.int(10, "Liquidity Lookback", group = "Calculations", tooltip = "Lookback period to check if opposing liquidity was wicked before a CISD")

green = input.color(#00ffbb, title = "Bullish Colour", group = "Appearance", tooltip = "Color used for bullish visuals and positive sentiment texts.")
red = input.color(#ff1100, title = "Bearish Colour", group = "Appearance", tooltip = "Color used for bearish visuals and negative sentiment texts.")
t1 = input.int(90, "Candle Body Transperency", maxval = 100, minval = 0, group = "Appearance")
t2 = input.int(40, "Candle Wick/Border Transperency", maxval = 100, minval = 0, group = "Appearance")
hide_expired_levels = input.bool(true, "Hide Expired Levels", group = "Appearance", tooltip = "Delete liquidity levels once they exceed the expiry bar threshold.")
hide_mitigated_levels = input.bool(false, "Hide Mitigated Levels", group = "Appearance", tooltip = "Delete liquidity levels from the chart as soon as price mitigates them.")

pivlow = ta.pivotlow(len, len)
pivhigh = ta.pivothigh(len, len)

var swinghighs = array.new_line()
var swinglows = array.new_line()

if not na(pivhigh)
swinghighs.unshift(line.new(bar_index-len, high[len], bar_index, high[len], color = color.new(chart.fg_color, 50)))
if not na(pivlow)
swinglows.unshift(line.new(bar_index-len, low[len], bar_index, low[len], color = color.new(chart.fg_color, 50)))

var float last_wicked_high_level = na
var float last_wicked_low_level = na

wicked_high = false
wicked_low = false

if swinghighs.size() > 0
for i = swinghighs.size() - 1 to 0
if i < swinghighs.size()
l = swinghighs.get(i)
if bar_index - line.get_x1(l) < expiry_bars
lvl = line.get_y1(l)
line.set_x2(l, bar_index)
if high >= lvl and barstate.isconfirmed
if hide_mitigated_levels
line.delete(l)
swinghighs.remove(i)
wicked_high := true
last_wicked_high_level := lvl
else
if hide_expired_levels
line.delete(l)
swinghighs.remove(i)

if swinglows.size() > 0
for i = swinglows.size() - 1 to 0
if i < swinglows.size()
l = swinglows.get(i)
if bar_index - line.get_x1(l) < expiry_bars
lvl = line.get_y1(l)
line.set_x2(l, bar_index)
if low <= lvl and barstate.isconfirmed
if hide_mitigated_levels
line.delete(l)
swinglows.remove(i)
wicked_low := true
last_wicked_low_level := lvl
else
if hide_expired_levels
line.delete(l)
swinglows.remove(i)

while swinghighs.size() > 100
line.delete(swinghighs.pop())

while swinglows.size() > 100
line.delete(swinglows.pop())

bars_since_high = ta.barssince(wicked_high)
bars_since_low = ta.barssince(wicked_low)

var potential_bull_cisd_level = 0.0
var potential_bear_cisd_level = 0.0

var o = 0.0
var c = 0.0

var bear_potential = array.new_float()
var bull_potential = array.new_float()

if close[1] < open[1] and close > open
bear_potential.unshift(bar_index)
bear_potential.unshift(open)

if close[1] > open[1] and close < open
bull_potential.unshift(bar_index)
bull_potential.unshift(open)

cisd = 0
origin_lvl = 0.0
origin_idx = 0.0

if bear_potential.size() > 0
inloop = true
while inloop
if close < bear_potential.first()
highest = 0.0
for i = 0 to bar_index-bear_potential.get(1)
if close > highest
highest := close
running = true
init = bar_index-bear_potential.get(1)+1
top = 0.0
while running
if close[init] < open[init]
top := open[init]
init+=1
else
running:=false
if (highest-bear_potential.first())/(top-bear_potential.first()) > tolerence
origin_lvl := bear_potential.first()
origin_idx := bear_potential.get(1)
bear_potential.clear()
cisd := 1
inloop := false
else
bear_potential.shift()
bear_potential.shift()
if bear_potential.size() == 0
inloop := false
else
inloop := false


if bull_potential.size() > 0
inloop = true
while inloop
if close > bull_potential.first()
lowest = close
for i = 0 to bar_index-bull_potential.get(1)
if close < lowest
lowest := close

running = true
init = bar_index-bull_potential.get(1)+1
bottom = 0.0

while running
if close[init] > open[init]
bottom := open[init]
init+=1
else
running:=false

if (bull_potential.first() - lowest)/(bull_potential.first() - bottom) > tolerence
origin_lvl := bull_potential.first()
origin_idx := bull_potential.get(1)
bull_potential.clear()
cisd := 2
inloop := false
else
bull_potential.shift()
bull_potential.shift()
if bull_potential.size() == 0
inloop := false
else
inloop := false


var trend = 0

bearish_sweep = false
bullish_sweep = false

if cisd == 1
trend := -1
line.new(int(origin_idx),origin_lvl,bar_index,origin_lvl, color = red, width = 3)
if bars_since_high <= liquidity_lookback and close < last_wicked_high_level
bearish_sweep := true

if cisd == 2
trend := 1
line.new(int(origin_idx),origin_lvl,bar_index,origin_lvl, color = green, width = 3)
if bars_since_low <= liquidity_lookback and close > last_wicked_low_level
bullish_sweep := true

plotshape(bearish_sweep ? high : na, "Bearish CISD with Liquidity Sweep", shape.labeldown, location.abovebar, red, size = size.small, text = "▼", textcolor = chart.fg_color)
plotshape(bullish_sweep ? low : na, "Bullish CISD with Liquidity Sweep", shape.labelup, location.belowbar, green, size = size.small, text = "▲", textcolor = chart.fg_color)

plotchar(not na(pivhigh) ? high[len] : na, "Swing High", "●", location.absolute, red, size = size.tiny, offset = -len)
plotchar(not na(pivlow) ? low[len] : na, "Swing Low", "●", location.absolute, green, size = size.tiny, offset = -len)

candle_col = color.from_gradient(t1, 0, 100, trend > 0 ? green : red, chart.bg_color)
candle_col_ = color.from_gradient(t2, 0, 100, trend > 0 ? green : red, chart.bg_color)
plotcandle(open, high, low, close, "Price Candles", candle_col, candle_col_, bordercolor = candle_col_)

// Alerts
alertcondition(wicked_high, "Swing High Mitigation", "Swing High Mitigated")
alertcondition(wicked_low, "Swing Low Mitigation", "Swing Low Mitigated")
alertcondition(cisd == 1, "Bearish Normal CISD", "Bearish Normal CISD Detected")
alertcondition(cisd == 2, "Bullish Normal CISD", "Bullish Normal CISD Detected")
alertcondition(bearish_sweep, "Strong Bearish CISD", "Strong Bearish CISD Detected")
alertcondition(bullish_sweep, "Strong Bullish CISD", "Strong Bullish CISD Detected")