xmd79

fxOpens

Dec 6th, 2022
265
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.81 KB | None | 0 0
  1. //@version=5
  2.  
  3. indicator("fxOpens", "fxOpens ", overlay=true)
  4.  
  5. //Inputs
  6. midnightToggle = input.bool(true,"Enabled", inline="nymid", group="New York Midnight")
  7. midnight_time = input.session('0000-0001:1234567', "NY Midnight", group="New York Midnight")
  8. midnight_color = input.color(#ff8000, "", inline="nymid", group="New York Midnight")
  9. midnight_linestyle = input.string("Solid", "", options=["Solid", "Dotted", "Dashed"], inline="nymid", group="New York Midnight")
  10.  
  11. nyToggle = input.bool(true,"Enabled","", inline="ny", group="New York Open")
  12. ny_time = input.session('0800-0801:1234567', "NY open", group="New York Open")
  13. ny_color = input.color(#ff8000, "", inline="ny", group="New York Open")
  14. ny_linestyle = input.string("Solid", "", options=["Solid", "Dotted", "Dashed"], inline="ny", group="New York Open")
  15.  
  16. londonToggle = input.bool(true,"Enabled", inline="lnd", group="London Open")
  17. london_time = input.session('0300-0301:1234567', "London Open", group="London Open")
  18. london_color = input.color(#0000FF, "", inline="lnd", group="London Open")
  19. london_linestyle = input.string("Solid", "", options=["Solid", "Dotted", "Dashed"], inline="lnd", group="London Open")
  20.  
  21. tokyoToggle = input.bool(true,"Enabled","", inline="tko", group="Tokyo Open")
  22. tokyo_time = input.session('1900-1901:1234567', "Tokyo Open", group="Tokyo Open")
  23. tokyo_color = input.color(#FF00FF, "", inline="tko", group="Tokyo Open")
  24. tokyo_linestyle = input.string("Solid", "", options=["Solid", "Dotted", "Dashed"], inline="tko", group="Tokyo Open")
  25.  
  26. label_size = input.string("Small", "Size", options=["Small", "Normal", "Huge"], group="Labels")
  27. labelOffset = (input.int(5,"Label Offset", group="Labels") * timeframe.multiplier*600000)
  28.  
  29. nymid = time("1", midnight_time)
  30. nyopen = time("1", ny_time)
  31. londonopen = time("1", london_time)
  32. tokyoopen = time("1", tokyo_time)
  33. linestyle_mid = midnight_linestyle == "Solid" ? line.style_solid : midnight_linestyle == "Dotted" ? line.style_dotted : line.style_dashed
  34. linestyle_ny = ny_linestyle == "Solid" ? line.style_solid : ny_linestyle == "Dotted" ? line.style_dotted : line.style_dashed
  35. linestyle_london = london_linestyle == "Solid" ? line.style_solid : london_linestyle == "Dotted" ? line.style_dotted : line.style_dashed
  36. linestyle_tokyo = tokyo_linestyle == "Solid" ? line.style_solid : tokyo_linestyle == "Dotted" ? line.style_dotted : line.style_dashed
  37. labelSize = label_size == "Small" ? size.small : label_size == "Normal" ? size.normal : size.huge
  38.  
  39. //Midnight
  40. var opmid = 0.0
  41. if nymid
  42. if not nymid[1]
  43. opmid := open
  44. else
  45. opmid := math.max(open, opmid)
  46.  
  47. //NY
  48. var opny = 0.0
  49. if nyopen
  50. if not nyopen[1]
  51. opny := open
  52. else
  53. opny := math.max(open, opny)
  54.  
  55. //London
  56. var oplondon = 0.0
  57. if londonopen
  58. if not londonopen[1]
  59. oplondon := open
  60. else
  61. oplondon := math.max(open, oplondon)
  62.  
  63. //Tokyo
  64. var optokyo = 0.0
  65. if tokyoopen
  66. if not tokyoopen[1]
  67. optokyo := open
  68. else
  69. optokyo := math.max(open, optokyo)
  70.  
  71.  
  72. //Midnight
  73. var label lb = na
  74. var line lne = na
  75. if midnightToggle
  76. if opmid != opmid[1]
  77. if barstate.isconfirmed
  78. line.set_x2(lne, nymid)
  79. lne := line.new(nymid, opmid, last_bar_time, opmid, xloc.bar_time, extend.right, midnight_color, linestyle_mid, 1)
  80. lb := label.new(last_bar_time + labelOffset, opmid, "NY Midnight", xloc.bar_time, yloc.price, na, label.style_none, midnight_color, labelSize, text.align_right)
  81.  
  82. label.delete(lb[1])
  83. line.delete(lne[1])
  84.  
  85. //NY
  86. var label la = na
  87. var line lna = na
  88. if nyToggle
  89. if opny != opny[1]
  90. if barstate.isconfirmed
  91. line.set_x2(lna, nyopen)
  92. lna := line.new(nyopen, opny, last_bar_time, opny, xloc.bar_time, extend.right, ny_color, linestyle_ny, 1)
  93. la := label.new(last_bar_time + labelOffset, opny, "NY Open", xloc.bar_time, yloc.price, na, label.style_none, ny_color, labelSize, text.align_right)
  94.  
  95. label.delete(la[1])
  96. line.delete(lna[1])
  97.  
  98. //London
  99. var label la_lnd = na
  100. var line lna_lnd = na
  101. if londonToggle
  102. if oplondon != oplondon[1]
  103. if barstate.isconfirmed
  104. line.set_x2(lna_lnd, londonopen)
  105. lna_lnd := line.new(londonopen, oplondon, last_bar_time, oplondon, xloc.bar_time, extend.right, london_color, linestyle_london, 1)
  106. la_lnd := label.new(last_bar_time + labelOffset , oplondon, "London Open", xloc.bar_time, yloc.price, na, label.style_none, london_color, labelSize, text.align_right)
  107.  
  108. label.delete(la_lnd[1])
  109. line.delete(lna_lnd[1])
  110.  
  111. //Tokyo
  112. var label la_tko = na
  113. var line lna_tko = na
  114. if tokyoToggle
  115. if optokyo != optokyo[1]
  116. if barstate.isconfirmed
  117. line.set_x2(lna_tko, tokyoopen)
  118. lna_tko := line.new(tokyoopen, optokyo, last_bar_time, optokyo, xloc.bar_time, extend.right, tokyo_color, linestyle_tokyo, 1)
  119. la_tko := label.new(last_bar_time + labelOffset , optokyo, "Tokyo Open", xloc.bar_time, yloc.price, na, label.style_none, tokyo_color, labelSize, text.align_right)
  120. label.delete(la_tko[1])
  121. line.delete(lna_tko[1])
  122.  
  123.  
  124. //Alerts
  125. nymidCross = ta.cross(close, opmid)
  126. nyCross = ta.cross(close, opny)
  127. londonCross = ta.cross(close, oplondon)
  128. tokyoCross = ta.cross(close, optokyo)
  129.  
  130. alertcondition(condition=nymidCross, title="Crossing New York Midnight", message="Crossing New York Midnight Price")
  131. alertcondition(condition=nyCross, title="Crossing New York Open", message="Crossing New York Open Price")
  132. alertcondition(condition=londonCross, title="Crossing London Open", message="Crossing London Open Price")
  133. alertcondition(condition=tokyoCross, title="Crossing Tokyo Open", message="Crossing Tokyo Open Price")
  134.  
Advertisement
Add Comment
Please, Sign In to add comment