xmd79

[Sextan] B-Xtrender Backtest

Jan 15th, 2022
246
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.10 KB | None | 0 0
  1. // ____ __ ___ ________ ___________ ___________ __ ____ ___
  2. // / __ )/ / / | / ____/ //_/ ____/ |/_ __< / // / / __ |__ \
  3. // / __ / / / /| |/ / / ,< / / / /| | / / / / // /_/ / / __/ /
  4. // / /_/ / /___/ ___ / /___/ /| / /___/ ___ |/ / / /__ __/ /_/ / __/
  5. // /_____/_____/_/ |_\____/_/ |_\____/_/ |_/_/ /_/ /_/ \____/____/
  6.  
  7.  
  8. // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
  9. //
  10. // Indicator Template for
  11. // BCQ Sextan Backtest Framework
  12. //
  13. //@version=4
  14. study(title='[Sextan] B-Xtrender Backtest', shorttitle="[Sextan] B-Xtrender BT", overlay=false, max_bars_back = 5000, max_labels_count = 500)
  15.  
  16. //
  17. // Your Indicator Settings
  18. //
  19. // The following section your can leave as it is
  20. long_th = input(title = "Long Singal Threshold", defval = 1.0, minval = 0.1, step=0.1, type = input.float)
  21. short_th = input(title = "Short Signal Threshold", defval = -1.0, maxval = -0.1, step=0.1, type = input.float)
  22.  
  23.  
  24. //----------------------------Customized Indicator Area Begin ---------------------------------------------------//
  25.  
  26. // Courtesy of QuantTherapy for his B-Xtrender @PuppyTherapy
  27.  
  28. short_l1 = input(5 , title="Short - L1")
  29. short_l2 = input(20, title="Short - L2")
  30. short_l3 = input(15, title="Short - L3")
  31.  
  32. long_l1 = input(20, title="Long - L1")
  33. long_l2 = input(15, title="Long - L2")
  34.  
  35. inp = input(close)
  36.  
  37. shortTermXtrender = rsi(ema(inp, short_l1) - ema(inp, short_l2), short_l3 ) - 50
  38. longTermXtrender = rsi( ema(inp, long_l1), long_l2 ) - 50
  39.  
  40. shortXtrenderCol = shortTermXtrender > 0 ? shortTermXtrender > shortTermXtrender[1] ? color.lime : #228B22 : shortTermXtrender > shortTermXtrender[1] ? color.red : #8B0000
  41. plot(shortTermXtrender, color=shortXtrenderCol, style=plot.style_columns, linewidth=1, title="B-Xtrender Osc. - Histogram", transp = 50)
  42.  
  43. t3(src, len)=>
  44. xe1_1 = ema(src, len)
  45. xe2_1 = ema(xe1_1, len)
  46. xe3_1 = ema(xe2_1, len)
  47. xe4_1 = ema(xe3_1, len)
  48. xe5_1 = ema(xe4_1, len)
  49. xe6_1 = ema(xe5_1, len)
  50. b_1 = 0.7
  51. c1_1 = -b_1*b_1*b_1
  52. c2_1 = 3*b_1*b_1+3*b_1*b_1*b_1
  53. c3_1 = -6*b_1*b_1-3*b_1-3*b_1*b_1*b_1
  54. c4_1 = 1+3*b_1+b_1*b_1*b_1+3*b_1*b_1
  55. nT3Average_1 = c1_1 * xe6_1 + c2_1 * xe5_1 + c3_1 * xe4_1 + c4_1 * xe3_1
  56.  
  57. maShortTermXtrender = t3( shortTermXtrender , 5 )
  58.  
  59. colShortTermXtrender = maShortTermXtrender > maShortTermXtrender[1] ? color.lime : color.red
  60. plot(maShortTermXtrender, color=#000000 , style=plot.style_line, linewidth=5, title="B-Xtrender Shadow")
  61. plot(maShortTermXtrender, color=colShortTermXtrender, style=plot.style_line, linewidth=3, title="B-Xtrender Color ")
  62.  
  63. plotshape(maShortTermXtrender > maShortTermXtrender[1] and maShortTermXtrender[1] < maShortTermXtrender[2] ? maShortTermXtrender : na, location=location.absolute, style=shape.circle, color=color.lime, size=size.tiny, transp=10)
  64. plotshape(maShortTermXtrender < maShortTermXtrender[1] and maShortTermXtrender[1] > maShortTermXtrender[2] ? maShortTermXtrender : na, location=location.absolute, style=shape.circle, color=color.red , size=size.tiny, transp=10)
  65.  
  66. longXtrenderCol = longTermXtrender> 0 ? longTermXtrender > longTermXtrender[1] ? color.lime : #228B22 : longTermXtrender > longTermXtrender[1] ? color.red : #8B0000
  67. macollongXtrenderCol = longTermXtrender > longTermXtrender[1] ? color.lime : color.red
  68. plot(longTermXtrender , color=longXtrenderCol, style=plot.style_histogram, linewidth=2, title="B-Xtrender Trend - Histogram", transp = 80)
  69.  
  70. plot(longTermXtrender , color=#000000 , style=plot.style_line, linewidth=5, title="B-Xtrender Trend - Line", transp = 80)
  71. plot(longTermXtrender , color=macollongXtrenderCol, style=plot.style_line, linewidth=3, title="B-Xtrender Trend - Line", transp = 80)
  72.  
  73. long = maShortTermXtrender > maShortTermXtrender[1] and maShortTermXtrender[1] < maShortTermXtrender[2]
  74. short = maShortTermXtrender < maShortTermXtrender[1] and maShortTermXtrender[1] > maShortTermXtrender[2]
  75.  
  76. l = short ? label.new(bar_index, maShortTermXtrender, 'S', color=color.new(color.red, 70), textcolor=color.white, style=label.style_label_down, yloc=yloc.price, size=size.tiny) : long ? label.new(bar_index, maShortTermXtrender, 'B', color=color.new(color.green, 70), textcolor=color.white, style=label.style_label_up, yloc=yloc.price, size=size.tiny) : na
  77.  
  78.  
  79. //----------------------------Customized Indicator Area End ---------------------------------------------------//
  80.  
  81. // Signal plot and output
  82. longCond = bool(na), shortCond = bool(na), initCond = 0, Signal = 0
  83. longCond := long
  84. shortCond := short
  85. initCond := longCond ? 1 : shortCond ? -1 : initCond[1]
  86. Signal := longCond ? 1 : shortCond ? -1 : 0
  87. sigCol = color.silver
  88. sigCol := (longCond and Signal[1] == 0) or (Signal == 0 and Signal[1] == 1) or (Signal[1] == -1 and Signal == 1) ? color.yellow : (shortCond and Signal[1] == 0) or (Signal == 0 and Signal[1] == -1) or (Signal == 1 and Signal[1] == -1) ? color.fuchsia : sigCol
  89. plot(Signal, "Signal", color=sigCol, style=plot.style_areabr, transp=40, display = display.none)
Advertisement
Add Comment
Please, Sign In to add comment