Advertisement
Davilae177

Market Cipher A UPDATE

Oct 17th, 2019
1,311
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.66 KB | None | 0 0
  1. //@version=4
  2. // Based on Cipher_A from falconCoin https://www.tradingview.com/script/cAw5GEAB-Market-Cipher-A-free-version-1-1/
  3. // Implemented ideas based on the analysis of https://marketcipherreview.com
  4. // Thanks to LazyBear foor WaveTrend Oscillator https://www.tradingview.com/script/2KE8wTuF-Indicator-WaveTrend-Oscillator-WT/
  5. // I just added the red diamond, blood diamond and yellowX pattern, i dont know if is exact but seems to be.
  6. // Still need a lot of visual adjustments to look like market cipher A but it's an attempt
  7. study(title="Market Cipher A", shorttitle="WEACipher_A", overlay=true)
  8.  
  9. // FUNCTIONS {
  10.  
  11. // WaveTrend
  12. f_wavetrend(_src, _chlen, _avg, _malen) =>
  13. _esa = ema(_src, _chlen)
  14. _de = ema(abs(_src - _esa), _chlen)
  15. _ci = (_src - _esa) / (0.015 * _de)
  16. _tci = ema(_ci, _avg)
  17. _wt1 = _tci
  18. _wt2 = sma(_wt1, _malen)
  19. [_wt1, _wt2]
  20.  
  21. // RSI
  22. f_rsi(_src, _length) =>
  23. _up = rma(max(change(close), 0), 14)
  24. _down = rma(-min(change(close), 0), 14)
  25. _down == 0 ? 100 : _up == 0 ? 0 : 100 - 100 / (1 + _up / _down)
  26.  
  27. // 8 EMA Ribbon
  28. f_emaRibbon(_src, _e1, _e2, _e3, _e4, _e5, _e6, _e7, _e8) =>
  29. _ema1 = ema(_src, _e1)
  30. _ema2 = ema(_src, _e2)
  31. _ema3 = ema(_src, _e3)
  32. _ema4 = ema(_src, _e4)
  33. _ema5 = ema(_src, _e5)
  34. _ema6 = ema(_src, _e6)
  35. _ema7 = ema(_src, _e7)
  36. _ema8 = ema(_src, _e8)
  37. [_ema1, _ema2, _ema3, _ema4, _ema5, _ema6, _ema7, _ema8]
  38.  
  39. // } FUNCTIONS
  40.  
  41.  
  42. // PARAMETERS {
  43.  
  44. // WaveTrend
  45. wtChannelLen = input(7, title = 'WT Channel Length')
  46. wtAverageLen = input(13, title = 'WT Average Length')
  47. wtMASource = input(ohlc4, title = 'WT MA Source')
  48. wtMALen = input(3, title = 'WT MA Length')
  49.  
  50. // WaveTrend Overbought & Oversold lines
  51. obLevel = input(53, title = 'WT Overbought Level 1')
  52. obLevel2 = input(60, title = 'WT Overbought Level 2')
  53. obLevel3 = input(100, title = 'WT Overbought Level 3')
  54. osLevel = input(-53, title = 'WT Oversold Level 1')
  55. osLevel2 = input(-60, title = 'WT Oversold Level 2')
  56. osLevel3 = input(-80, title = 'WT Oversold Level 3')
  57.  
  58. // EMA Ribbon
  59. showRibbon = input(true, "Show Ribbon")
  60. ema1Len = input(5, title = "EMA 1 Length")
  61. ema2Len = input(11, title = "EMA 2 Length")
  62. ema3Len = input(15, title = "EMA 3 Length")
  63. ema4Len = input(18, title = "EMA 4 Length")
  64. ema5Len = input(21, title = "EMA 5 Length")
  65. ema6Len = input(24, title = "EMA 6 Length")
  66. ema7Len = input(28, title = "EMA 7 Length")
  67. ema8Len = input(34, title = "EMA 8 Length")
  68.  
  69. // RSI
  70. rsiSRC = input(close, title = "RSI Source")
  71. rsiLen = input(14, title = "RSI Length")
  72. rsiOversold = input(30, title = 'RSI Oversold', minval = 50, maxval = 100)
  73. rsiOverbought = input(60, title = 'RSI Overbought', minval = 0, maxval = 50)
  74.  
  75. // }
  76.  
  77.  
  78. // CALCULATE INDICATORS {
  79.  
  80. // EMA Ribbon
  81. [ema1, ema2, ema3, ema4, ema5, ema6, ema7, ema8] = f_emaRibbon(close, ema1Len, ema2Len, ema3Len, ema4Len, ema5Len, ema6Len, ema7Len, ema8Len)
  82.  
  83. // RSI
  84. rsi = f_rsi(rsiSRC, rsiLen)
  85.  
  86. // Calculates WaveTrend
  87. [wt1, wt2] = f_wavetrend(wtMASource, wtChannelLen, wtAverageLen, wtMALen)
  88.  
  89. // WaveTrend Conditions
  90. wtOverSold = wt2 <= osLevel
  91. wtOverBought = wt2 >= obLevel
  92. wtCross = cross(wt1, wt2)
  93. wtCrossUp = wt2 - wt1 <= 0
  94. wtCrossDown = wt2 - wt1 >= 0
  95.  
  96.  
  97. // Signals
  98. longEma = crossover(ema2, ema8)
  99. redCross = crossunder(ema1, ema2)
  100. blueTriangle = crossover(ema2, ema3)
  101. redDiamond = wtCross and wtCrossDown
  102. yellowCross = redDiamond and rsi <= 25 and wt2 < 0
  103. bloodDiamond = redDiamond and redCross
  104. shortEma = crossover(ema8, ema2)
  105.  
  106. // } CALCULATE INDICATORS
  107.  
  108.  
  109. // DRAW {
  110.  
  111. // EMA Ribbon
  112. colorEma = ema8 < ema2 ? color.green : color.red
  113.  
  114. plot(ema1, color=showRibbon ? #265aa6 : na, linewidth=2, transp=50, title="EMA 1")
  115. plot(ema2, color=showRibbon ? #265aa6 : na, linewidth=2, transp=50, title="EMA 2")
  116. plot(ema3, color=showRibbon ? #1976d2 : na, linewidth=2, transp=50, title="EMA 3")
  117. plot(ema4, color=showRibbon ? #1976d2 : na, linewidth=2, transp=50, title="EMA 4")
  118. plot(ema5, color=showRibbon ? #7fb3ff : na, linewidth=2, transp=50, title="EMA 5")
  119. plot(ema6, color=showRibbon ? #7fb3ff : na, linewidth=2, transp=50, title="EMA 6")
  120. plot(ema7, color=showRibbon ? #bbdefb : na, linewidth=2, transp=50, title="EMA 7")
  121. plot(ema8, color=showRibbon ? #bbdefb : na, linewidth=2, transp=50, title="EMA 8")
  122. plot(ema8, color=showRibbon ? na : colorEma, linewidth=2, transp=50, title="EMA 8")
  123.  
  124. // SHAPES
  125. plotshape(longEma, style=shape.circle, color=#00ff00, transp=50, location=location.abovebar, size=size.tiny, title="Long EMA Signal")
  126. plotshape(shortEma, style=shape.circle, color=#ff0000, transp=50, location=location.abovebar, size=size.tiny, title="Short EMA Signal")
  127. plotshape(redCross, style=shape.xcross, color=#ff0000, transp=50, location=location.abovebar, size=size.tiny, title="Red cross")
  128. plotshape(blueTriangle, style=shape.triangleup, color=#0064ff, transp=50, location=location.abovebar, size=size.small, title="Blue Triangle")
  129. plotshape(redDiamond, style=shape.diamond, color=#ff0000, location=location.abovebar, size=size.tiny, title="Red Diamond", transp=25)
  130. plotshape(bloodDiamond, style=shape.diamond, color=#ff0000, location=location.abovebar, size=size.small, title="Blood Diamond", transp=15)
  131. plotshape(yellowCross, style=shape.xcross, color=color.yellow, location=location.abovebar, size=size.small, title="Yellow Cross", transp=25)
  132. // } DRAW
  133.  
  134.  
  135. // ALERTS {
  136. alertcondition(redDiamond != 0, "Red Diamond", "Red Diamond")
  137. alertcondition(bloodDiamond != 0, "Blood Diamond", "Blood Diamond")
  138. alertcondition(yellowCross != 0, "YellowX", "YellowX")
  139. alertcondition(redCross != 0, "RedX", "RedX")
  140. alertcondition(longEma != 0, "Longema", "Longema")
  141. alertcondition(blueTriangle != 0, "Bluetriangle", "Bluetriangle")
  142. // } ALERTS
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement