Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- totalLength = input(10, 'Total Length', group = "STC")
- fastMA_Length = input(30, 'Fast MA Length', group = "STC")
- slowMA_Length = input(40, 'Slow MA Length', group = "STC")
- calculateMACD(priceData, fastLength, slowLength) =>
- fastMA = ta.ema(priceData, fastLength)
- slowMA = ta.ema(priceData, slowLength)
- MACD = fastMA - slowMA
- MACD
- calculateSTC(baseLength, fastLength, slowLength) =>
- stcAdjustmentFactor = input.float(0.5, step = 0.01, group = "STC")
- var float previousSTCPercentage = 0.0
- var float stcCycleLowest = 0.0
- var float stcCycleHighestNormalized = 0.0
- var float finalSTCValue = 0.0
- macdValue = calculateMACD(open, fastLength, slowLength)
- cycleLow = ta.lowest(macdValue, baseLength)
- cycleRange = ta.highest(macdValue, baseLength) - cycleLow
- normalizedMACD = cycleRange > 0 ? (macdValue - cycleLow) / cycleRange * 100 : nz(previousSTCPercentage[1])
- stcCycleLowest := na(stcCycleLowest[1]) ? normalizedMACD : stcCycleLowest[1] + stcAdjustmentFactor * (normalizedMACD - stcCycleLowest[1])
- cycleLowest = ta.lowest(stcCycleLowest, baseLength)
- cycleHighestRange = ta.highest(stcCycleLowest, baseLength) - cycleLowest
- stcCycleHighestNormalized := cycleHighestRange > 0 ? (stcCycleLowest - cycleLowest) / cycleHighestRange * 100 : nz(stcCycleHighestNormalized[1])
- finalSTCValue := na(finalSTCValue[1]) ? stcCycleHighestNormalized : finalSTCValue[1] + stcAdjustmentFactor * (stcCycleHighestNormalized - finalSTCValue[1])
- finalSTCValue
- mainSTCValue = calculateSTC(totalLength, fastMA_Length, slowMA_Length)
- stcLong = mainSTCValue > mainSTCValue[1]
- stcShort = mainSTCValue < mainSTCValue[1]
Advertisement
Add Comment
Please, Sign In to add comment