OhManLan Golden Cloud
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © OhManLan

//@version=5
indicator("OhManLan Golden Cloud", shorttitle="OML Golden Cloud", overlay=true, timeframe="", timeframe_gaps=true)

//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//
//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//
//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//
// OML Cloud

Show_OML_GoldenCloud = input.bool(title="Show Golden Cloud", defval=true)
GR_M = input.float(1.61803398875, minval=0, step=0.001, title="Multipler", tooltip="Golden ratio/Fibonacci number")
TenkanPeriods = input.int(9, minval=1, title="Tenkan")
KijunPeriods = input.int(26, minval=1, title="Kijun")
SenkouSpanBPeriods = input.int(52, minval=1, title="Senkou Span B")
Displacement = input.int(26, minval=1, title="Displacement")
VWAPf(x) =>
    _Vol = math.sum(volume, x)
    _WTP = math.sum(ohlc4*volume, x)/_Vol
MidCloud_UpperLine = ((VWAPf(TenkanPeriods)) + (VWAPf(KijunPeriods)))/2
MidCloud_LowerLine = VWAPf(SenkouSpanBPeriods)
UpCloud_UpperLine = MidCloud_UpperLine*GR_M
UpCloud_LowerLine = MidCloud_LowerLine*GR_M
LowCloud_UpperLine = MidCloud_UpperLine/GR_M
LowCloud_LowerLine = MidCloud_LowerLine/GR_M
p3 = plot(Show_OML_GoldenCloud ? UpCloud_UpperLine : na , offset = Displacement - 1, color=color.new(color.gray, 100), title="Senkou Span A (Up)")
p4 = plot(Show_OML_GoldenCloud ? UpCloud_LowerLine : na, offset = Displacement - 1, color=color.new(color.gray, 100), title="Senkou Span B (Up)")
p1 = plot(Show_OML_GoldenCloud ? MidCloud_UpperLine : na , offset = Displacement - 1, color=color.new(color.gray, 100), title="Senkou Span A (Middle)")
p2 = plot(Show_OML_GoldenCloud ? MidCloud_LowerLine : na, offset = Displacement - 1, color=color.new(color.gray, 100), title="Senkou Span B (Middle)")
p5 = plot(Show_OML_GoldenCloud ? LowCloud_UpperLine : na , offset = Displacement - 1, color=color.new(color.gray, 100), title="Senkou Span A (Low)")
p6 = plot(Show_OML_GoldenCloud ? LowCloud_LowerLine : na, offset = Displacement - 1, color=color.new(color.gray, 100), title="Senkou Span B (Low)")
fill(p3, p4, color = UpCloud_UpperLine > UpCloud_LowerLine ? color.new(#00e2ff, 63) : color.new(#ffeb3b, 60))
fill(p1, p2, color = MidCloud_UpperLine > MidCloud_LowerLine ? color.new(#00e2ff, 83) : color.new(#ff8bd8, 80))
fill(p5, p6, color = LowCloud_UpperLine > LowCloud_LowerLine ? color.new(#00e2ff, 63) : color.new(#ff9800, 60))



//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//
//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//
//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//
// END
//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//
//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//
//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//