Guest User

Untitled

a guest
Aug 10th, 2024
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.66 KB | None | 0 0
  1. totalLength = input(10, 'Total Length', group = "STC")
  2. fastMA_Length = input(30, 'Fast MA Length', group = "STC")
  3. slowMA_Length = input(40, 'Slow MA Length', group = "STC")
  4.  
  5. calculateMACD(priceData, fastLength, slowLength) =>
  6. fastMA = ta.ema(priceData, fastLength)
  7. slowMA = ta.ema(priceData, slowLength)
  8. MACD = fastMA - slowMA
  9. MACD
  10.  
  11. calculateSTC(baseLength, fastLength, slowLength) =>
  12. stcAdjustmentFactor = input.float(0.5, step = 0.01, group = "STC")
  13. var float previousSTCPercentage = 0.0
  14. var float stcCycleLowest = 0.0
  15. var float stcCycleHighestNormalized = 0.0
  16. var float finalSTCValue = 0.0
  17. macdValue = calculateMACD(open, fastLength, slowLength)
  18. cycleLow = ta.lowest(macdValue, baseLength)
  19. cycleRange = ta.highest(macdValue, baseLength) - cycleLow
  20. normalizedMACD = cycleRange > 0 ? (macdValue - cycleLow) / cycleRange * 100 : nz(previousSTCPercentage[1])
  21. stcCycleLowest := na(stcCycleLowest[1]) ? normalizedMACD : stcCycleLowest[1] + stcAdjustmentFactor * (normalizedMACD - stcCycleLowest[1])
  22. cycleLowest = ta.lowest(stcCycleLowest, baseLength)
  23. cycleHighestRange = ta.highest(stcCycleLowest, baseLength) - cycleLowest
  24. stcCycleHighestNormalized := cycleHighestRange > 0 ? (stcCycleLowest - cycleLowest) / cycleHighestRange * 100 : nz(stcCycleHighestNormalized[1])
  25. finalSTCValue := na(finalSTCValue[1]) ? stcCycleHighestNormalized : finalSTCValue[1] + stcAdjustmentFactor * (stcCycleHighestNormalized - finalSTCValue[1])
  26. finalSTCValue
  27.  
  28. mainSTCValue = calculateSTC(totalLength, fastMA_Length, slowMA_Length)
  29.  
  30. stcLong = mainSTCValue > mainSTCValue[1]
  31. stcShort = mainSTCValue < mainSTCValue[1]
Advertisement
Add Comment
Please, Sign In to add comment