declare upper; def h = high; def l = low; def OpeningBell = getTime() < RegularTradingStart(getYYYYMMDD()) and getTime() > RegularTradingStart(getYYYYMMDD()); def RTH = getTime() >= RegularTradingStart(getYYYYMMDD()) and getTime() <= RegularTradingEnd(getYYYYMMDD()); def FirstFiveActive = getTime() >= OpeningBell and getTime() <= RegularTradingStart(getYYYYMMDD()) + 300000; def SecondFiveActive = getTime() >= RegularTradingStart(getYYYYMMDD()) + 300000 and getTime() <= RegularTradingStart(getYYYYMMDD()) + 600000; def FMF_high = if OpeningBell then h else if FirstFiveActive and h > FMF_high then h else FMF_high; def FMF_low = if OpeningBell then l else if FirstFiveActive and l < FMF_low then l else FMF_low; plot ORhigh = if !FirstFiveActive and RTH and FMF_high != 0 then FMF_high else Double.NaN; ORhigh.SetStyle(Curve.LONG_DASH); ORhigh.SetLineWeight(1); ORhigh.SetDefaultColor(Color.GREEN); plot ORlow = if !FirstFiveActive and RTH and FMF_low != 0 then FMF_low else Double.NaN; ORlow.SetStyle(Curve.LONG_DASH); ORlow.SetLineWeight(1); ORlow.SetDefaultColor(Color.RED); def Swing_Low = if SecondFiveActive and (l < FMF_Low and l < l) then l else if SecondFiveActive and l < Swing_Low then l else Swing_Low; def Swing_High = if SecondFiveActive and (h > FMF_High and h > h) then h else if SecondFiveActive and h > Swing_High then h else Swing_High; # plot LowSwing = if !FirstFiveActive and !SecondFiveActive and RTH and Swing_low != 0 plot LowSwing = if !FirstFiveActive and RTH then Swing_Low else Double.NaN; plot HighSwing = if !FirstFiveActive and RTH then Swing_high else Double.NaN; def swing = if firstFiveActive or SecondFiveActive then double.nan else if !isnan(swing) then swing else if l < FMF_low then l - (FMF_high - FMF_low) else if h > fmf_high then h + (FMF_high - FMF_low) else double.nan; plot Flip = if !firstFiveActive and !secondFiveActive and RTH then swing else double.nan; # plot flip = swing;
@mashume Appreciate your effort to make it work. The code you posted doesn't seem to plot and I get this in the upper left corner of the chart: "Trying to self-assign a non-initialized rec: swing," but here are the requirements again. https://easyupload.io/y9cd7qI can't find the original specs, nor any of my notes. so I'm not sure why I wrote much of what I did... but here it is.
If anyone wants to re-post the requirements, I'll take another swing
I should have warned with this code that it is INCOMPLETE BETA (ALPHA even) code and is guaranteed not to work. It may break things, cause the sky to fall, produce pots of gold at the end of rainbows, or simply make you scratch your head and wonder what the hello I was thinking.