Reverse Moving Average Convergence Divergence [CC]
"Reverse Moving Average Convergence Divergence [CC]" by cheatcountry, MIT. Ported to FloScript by FloSignals; modifications under MPL-2.0. Original: Reverse Moving Average Convergence Divergence [CC] (v2.0), read 2026-10-12T15:46:00.236Z; source language v5.
Licence: MIT License (MIT) — full text.
Reverse Moving Average Convergence Divergence [CC] by cheatcountry, ported from Pine v5. Overlay indicator with 3 plots, bar/background colouring, alerts and 8 inputs.
// Copyright (c) 2019-present, Franklin Moormann (cheatcountry)
// Reverse Moving Average Convergence Divergence [CC] script may be freely distributed under the MIT license.
// ------------------------------------------------------------------------------------------------
// Original author: cheatcountry
// Original title: Reverse Moving Average Convergence Divergence [CC]
// Licence: MIT (the header above is the original notice, kept verbatim)
// Pine version: 5
// Fetched: 2026-10-12
// Ported to FloScript by FloSignals; modifications under MPL-2.0.
// Converter: @flosignals/floscript 0.1.0, strict mode, score 100/100
// ------------------------------------------------------------------------------------------------
//@floscript=1
//@version=5
indicator('Reverse Moving Average Convergence Divergence [CC]', max_bars_back=3000, overlay=true)
inp = input(title='Source', defval=close)
res = input.timeframe(title='Resolution', defval='')
rep = input(title='Allow Repainting?', defval=false)
bar = input(title='Allow Bar Color Change?', defval=true)
src = inp[rep ? 0 : barstate.isrealtime ? 1 : 0][rep ? 0 : barstate.isrealtime ? 0 : 1]
fastLength = input.int(title='FastLength', defval=12, minval=1)
slowLength = input.int(title='SlowLength', defval=26, minval=1)
signalLength = input.int(title='SignalLength', defval=9, minval=1)
macdLevel = input.float(title='MacdLevel', defval=0, minval=0)
fastAlpha = 2.0 / (1 + fastLength)
slowAlpha = 2.0 / (1 + slowLength)
fastEma = ta.ema(src, fastLength)
slowEma = ta.ema(src, slowLength)
pMacdEq = fastAlpha - slowAlpha != 0 ? (nz(fastEma[1]) * fastAlpha - nz(slowEma[1]) * slowAlpha) / (fastAlpha - slowAlpha) : 0
pMacdEqSig = ta.ema(pMacdEq, signalLength)
pMacdLevel = fastAlpha - slowAlpha != 0 ? (macdLevel - nz(fastEma[1]) * (1 - fastAlpha) + nz(slowEma[1]) * (1 - slowAlpha)) / (fastAlpha - slowAlpha) : 0
slo = src - pMacdEq
sig = slo > 0 ? (slo > nz(slo[1]) ? 2 : 1) : slo < 0 ? (slo < nz(slo[1]) ? -2 : -1) : 0
alertcondition(ta.crossover(sig, 1), 'Strong Buy Signal', 'Strong Bullish Change Detected')
alertcondition(ta.crossunder(sig, -1), 'Strong Sell Signal', 'Strong Bearish Change Detected')
alertcondition(ta.crossover(sig, 0), 'Buy Signal', 'Bullish Change Detected')
alertcondition(ta.crossunder(sig, 0), 'Sell Signal', 'Bearish Change Detected')
rmacdColor = sig > 1 ? color.green : sig > 0 ? color.lime : sig < -1 ? color.maroon : sig < 0 ? color.red : color.white
barcolor(bar ? rmacdColor : na)
plot(pMacdEq, title='MacdEq', color=rmacdColor, linewidth=2)
plot(pMacdEqSig, title='MacdEqSignal', color=color.white, linewidth=1)
plot(pMacdLevel, title='MacdLevel', color=color.blue, linewidth=2)
This file is under the MIT License; it is a port of the original by cheatcountry, with the original licence header kept and the changes made for FloScript noted in the file.
- v2
Library refresh 2026-10-14
- v1
Library refresh 2026-10-12
Disclaimer. Scripts are written and published by members, or ported by FloSignals from open-source originals, and are their authors' own work and opinion. FloSignals does not review them for correctness and nothing in a script is financial advice or a recommendation to buy or sell anything — read the Risk Disclaimer. Posting here is under the Community Rules; a script that is not the poster's to post can be reported as the Copyright & Takedowns page says.

Comments (0)
No comments yet. Members can leave one.