xmd79

1-2-3 Pattern (Expo)

Nov 25th, 2022
300
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.52 KB | None | 0 0
  1. // This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) https://creativecommons.org/licenses/by-nc-sa/4.0/
  2. // © Zeiierman
  3.  
  4. //@version=5
  5. indicator("1-2-3 Pattern (Expo)",overlay=true,max_bars_back=5000,max_labels_count=500,max_lines_count=500)
  6.  
  7. // ~~ ToolTips {
  8. t1 = "Pivot period"
  9. t2 = "Show pattern break, set the size, and coloring"
  10. t3 = "Show the 1-2-3 Pattern"
  11. t4 = "Enable the HH/HL/LL/LH labels"
  12. // ~~}
  13. // ~~ Inputs {
  14. prd = input.int(10,title="Period",tooltip=t1)
  15.  
  16. showBreak = input.bool(true,"Show Break", inline="break")
  17. showPattern = input.bool(true,"Show Pattern",tooltip=t3)
  18. showPvts = input.bool(false,"Show Pivots",tooltip=t4)
  19.  
  20. visuell = input.string("Diamond","",options=["Diamond","XCross","Cross","Flag","Square"],inline="break")
  21. colBull = input.color(color.new(#31be0c,0),"",inline="break")
  22. colBear = input.color(color.new(#df3d3d,0),"",inline="break")
  23. size = input.string(size.tiny,"",options=[size.tiny,size.small,size.normal,size.large,size.huge],inline="break",tooltip=t2)
  24.  
  25. shape = switch visuell
  26. "Diamond" => label.style_diamond
  27. "XCross" => label.style_xcross
  28. "Cross" => label.style_cross
  29. "Flag" => label.style_flag
  30. "Square" => label.style_square
  31. // ~~ }
  32. // ~~ Arrays {
  33. var pvts = array.new<float>(3,0.0)
  34. var idx = array.new<int>(3,0)
  35. // ~~ }
  36. // ~~ Pivots {
  37. pvtHi = ta.pivothigh(high,prd,prd)
  38. pvtLo = ta.pivotlow(low,prd,prd)
  39. var pos = 0
  40.  
  41. if not na(pvtHi) and pos<=0
  42. if showPvts
  43. label.new(bar_index-prd,high[prd],text=pvtHi>array.get(pvts,1)?"HH":"LH",style=label.style_label_down,color=color(na),textcolor=chart.fg_color)
  44. array.pop(pvts)
  45. array.pop(idx)
  46. array.unshift(pvts,high[prd])
  47. array.unshift(idx,bar_index-prd)
  48. pos := 1
  49. if not na(pvtLo) and pos>=0
  50. if showPvts
  51. label.new(bar_index-prd,low[prd],text=pvtLo>array.get(pvts,1)?"HL":"LL",style=label.style_label_up,color=color(na),textcolor=chart.fg_color)
  52. array.pop(pvts)
  53. array.pop(idx)
  54. array.unshift(pvts,low[prd])
  55. array.unshift(idx,bar_index-prd)
  56. pos := -1
  57. // ~~ }
  58. // ~~ Identify 1-2-3 Pattern & Alerts {
  59. var pattern = true
  60. if ta.crossover(high,array.get(pvts,1)) and pattern
  61. if array.get(pvts,0)>array.get(pvts,2) and array.get(pvts,0)<array.get(pvts,1)
  62. if showBreak
  63. label.new(bar_index,high,style=shape,color=colBull,size=size)
  64. line.new(array.get(idx,1),array.get(pvts,1),bar_index,array.get(pvts,1),color=chart.fg_color,style=line.style_dashed)
  65. if showPattern
  66. label.new(array.get(idx,2),array.get(pvts,2),text="1",color=color(na),textcolor=chart.fg_color,style=label.style_label_up)
  67. label.new(array.get(idx,1),array.get(pvts,1),text="2",color=color(na),textcolor=chart.fg_color,style=label.style_label_down)
  68. label.new(array.get(idx,0),array.get(pvts,0),text="3",color=color(na),textcolor=chart.fg_color,style=label.style_label_up)
  69. line.new(array.get(idx,2),array.get(pvts,2),array.get(idx,1),array.get(pvts,1),color=chart.fg_color)
  70. line.new(array.get(idx,1),array.get(pvts,1),array.get(idx,0),array.get(pvts,0),color=chart.fg_color)
  71. alert("Bullish 1-2-3 Pattern Identified on: "+syminfo.ticker,alert.freq_once_per_bar_close)
  72. pattern := false
  73. if ta.crossunder(low,array.get(pvts,1)) and pattern
  74. if array.get(pvts,0)<array.get(pvts,2) and array.get(pvts,0)>array.get(pvts,1)
  75. if showBreak
  76. label.new(bar_index,low,style=shape,color=colBear,size=size)
  77. line.new(array.get(idx,1),array.get(pvts,1),bar_index,array.get(pvts,1),color=chart.fg_color,style=line.style_dashed)
  78. if showPattern
  79. label.new(array.get(idx,2),array.get(pvts,2),text="1",color=color(na),textcolor=chart.fg_color,style=label.style_label_down)
  80. label.new(array.get(idx,1),array.get(pvts,1),text="2",color=color(na),textcolor=chart.fg_color,style=label.style_label_up)
  81. label.new(array.get(idx,0),array.get(pvts,0),text="3",color=color(na),textcolor=chart.fg_color,style=label.style_label_down)
  82. line.new(array.get(idx,2),array.get(pvts,2),array.get(idx,1),array.get(pvts,1),color=chart.fg_color)
  83. line.new(array.get(idx,1),array.get(pvts,1),array.get(idx,0),array.get(pvts,0),color=chart.fg_color)
  84. alert("Bearish 1-2-3 Pattern Identified on: "+syminfo.ticker,alert.freq_once_per_bar_close)
  85. pattern := false
  86. // ~~ }
  87. // ~~ Debugger only check break once {
  88. if ta.change(array.get(pvts,1))
  89. pattern := true
  90. // ~~ }
Advertisement
Add Comment
Please, Sign In to add comment