<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <updated>2026-05-31T13:06:28Z</updated>
  <generator>https://nostr.now</generator>

  <title>Nostr notes by jamel</title>
  <author>
    <name>jamel</name>
  </author>
  <link rel="self" type="application/atom+xml" href="https://nostr.now/npub1ar6ffkfl7ct38r86m52ffdnseu476pdrltrdna9c6crjdltyp09s4dt2zz.rss" />
  <link href="https://nostr.now/npub1ar6ffkfl7ct38r86m52ffdnseu476pdrltrdna9c6crjdltyp09s4dt2zz" />
  <id>https://nostr.now/npub1ar6ffkfl7ct38r86m52ffdnseu476pdrltrdna9c6crjdltyp09s4dt2zz</id>
  <icon>https://image.nostr.build/103c88f5aeac147aca131d6452fe260ff33e4f9c32eb838da528a9186e37a629.jpg</icon>
  <logo>https://image.nostr.build/103c88f5aeac147aca131d6452fe260ff33e4f9c32eb838da528a9186e37a629.jpg</logo>




  <entry>
    <id>https://nostr.now/nevent1qqs8gfktg6u6gdpr5ctzfsf407n42ykrpnkxdv9h7n9pdu7rg8gp4mgzyr50f9xe8lmpwyuvltw3f99kwr8jhmg950avdk05hrtqwfhavs9ukt0dlx8</id>
    
      <title type="html">//@version=6 // OE Levels. Paste into the Pine Editor and add it ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs8gfktg6u6gdpr5ctzfsf407n42ykrpnkxdv9h7n9pdu7rg8gp4mgzyr50f9xe8lmpwyuvltw3f99kwr8jhmg950avdk05hrtqwfhavs9ukt0dlx8" />
    <content type="html">
      //@version=6&lt;br/&gt;// OE Levels. Paste into the Pine Editor and add it to the chart.&lt;br/&gt;// Direction follows the anchor candle close versus its open. A down close keeps&lt;br/&gt;// 110% above the high, the 62–79 OTE box in premium, and the diamond on the high.&lt;br/&gt;// Diamonds and arrows are TradingView shapes, not text characters.&lt;br/&gt;indicator(&amp;#34;OE Levels&amp;#34;, &amp;#34;OE Levels&amp;#34;, overlay=true, max_lines_count=500, max_labels_count=500, max_boxes_count=80)&lt;br/&gt;&lt;br/&gt;grpAlert = &amp;#34;Alerts&amp;#34;&lt;br/&gt;grpTime = &amp;#34;Time&amp;#34;&lt;br/&gt;grpKey = &amp;#34;Key Levels&amp;#34;&lt;br/&gt;grpFib = &amp;#34;Fibonacci Levels&amp;#34;&lt;br/&gt;grpZone = &amp;#34;Zone Highlights&amp;#34;&lt;br/&gt;grpSess = &amp;#34;Session Filters&amp;#34;&lt;br/&gt;grpTab = &amp;#34;Auto Optimal Entry Table&amp;#34;&lt;br/&gt;grpInfo = &amp;#34;Info Table&amp;#34;&lt;br/&gt;&lt;br/&gt;alerts = input.bool(false, &amp;#34;Alerts?&amp;#34;, inline=&amp;#34;al&amp;#34;, group=grpAlert, tooltip=&amp;#34;OTE: first touch of 62%. Low, OTE, High: first touch of those three. All Levels: first touch of every key and fib level. Create an alert and choose Any alert() function call.&amp;#34;)&lt;br/&gt;alertOn = input.string(&amp;#34;OTE&amp;#34;, &amp;#34;&amp;#34;, options=[&amp;#34;OTE&amp;#34;, &amp;#34;Low, OTE, High&amp;#34;, &amp;#34;All Levels&amp;#34;], inline=&amp;#34;al&amp;#34;, group=grpAlert)&lt;br/&gt;&lt;br/&gt;oteType = input.string(&amp;#34;Candle&amp;#34;, &amp;#34;OTE Type&amp;#34;, options=[&amp;#34;Candle&amp;#34;, &amp;#34;Session&amp;#34;, &amp;#34;Manual&amp;#34;], group=grpTime, tooltip=&amp;#34;Candle: previous higher-timeframe candle. Session: high and low inside the session, plotted once it ends. Manual: your start, adapting until End.&amp;#34;)&lt;br/&gt;autoTf = input.bool(true, &amp;#34;Auto Timeframe&amp;#34;, group=grpTime, tooltip=&amp;#34;1m marks 15m, 5m marks 1H, 15m marks 4H, 1H marks the previous day, 4H marks the week, 1D marks the month.&amp;#34;)&lt;br/&gt;tfIn = input.timeframe(&amp;#34;240&amp;#34;, &amp;#34;Timeframe&amp;#34;, group=grpTime, tooltip=&amp;#34;Candle type only. Must be equal to or higher than the chart. Custom minutes such as 90 are supported.&amp;#34;)&lt;br/&gt;customMin = input.int(0, &amp;#34;Custom minutes&amp;#34;, minval=0, maxval=43200, group=grpTime, tooltip=&amp;#34;Candle type only, with Auto off. 90 anchors a 90-minute candle. 0 uses the timeframe menu.&amp;#34;)&lt;br/&gt;sessStart = input.int(7, &amp;#34;Session&amp;#34;, minval=0, maxval=23, inline=&amp;#34;ss&amp;#34;, group=grpTime)&lt;br/&gt;sessStartM = input.int(0, &amp;#34;:&amp;#34;, minval=0, maxval=59, inline=&amp;#34;ss&amp;#34;, group=grpTime, tooltip=&amp;#34;Session type only. High and low formed inside this window, plotted once the session ends.&amp;#34;)&lt;br/&gt;sessEnd = input.int(10, &amp;#34;-&amp;#34;, minval=0, maxval=23, inline=&amp;#34;se&amp;#34;, group=grpTime)&lt;br/&gt;sessEndM = input.int(0, &amp;#34;:&amp;#34;, minval=0, maxval=59, inline=&amp;#34;se&amp;#34;, group=grpTime)&lt;br/&gt;tz = input.string(&amp;#34;America/New_York&amp;#34;, &amp;#34;Session Timezone&amp;#34;, options=[&amp;#34;America/New_York&amp;#34;, &amp;#34;America/Chicago&amp;#34;, &amp;#34;America/Los_Angeles&amp;#34;, &amp;#34;Europe/London&amp;#34;, &amp;#34;UTC&amp;#34;], group=grpTime, tooltip=&amp;#34;IANA timezone for the session window and the session filters.&amp;#34;)&lt;br/&gt;manStart = input.time(timestamp(&amp;#34;2099-01-01&amp;#34;), &amp;#34;Manual Start&amp;#34;, group=grpTime, tooltip=&amp;#34;Manual type only. First bar of the range. High and low keep adapting until End.&amp;#34;)&lt;br/&gt;useEnd = input.bool(false, &amp;#34;End&amp;#34;, inline=&amp;#34;en&amp;#34;, group=grpTime, tooltip=&amp;#34;Manual type only. Freeze the range at this time. Off keeps the range developing.&amp;#34;)&lt;br/&gt;manEnd = input.time(timestamp(&amp;#34;2099-01-01&amp;#34;), &amp;#34;&amp;#34;, inline=&amp;#34;en&amp;#34;, group=grpTime)&lt;br/&gt;showTime = input.bool(true, &amp;#34;Time&amp;#34;, inline=&amp;#34;tm&amp;#34;, group=grpTime, tooltip=&amp;#34;Vertical delimiter at the start of the extension, plus the timeframe label on the anchored high or low.&amp;#34;)&lt;br/&gt;timeStyle = input.string(&amp;#34;Dotted&amp;#34;, &amp;#34;&amp;#34;, options=[&amp;#34;Solid&amp;#34;, &amp;#34;Dashed&amp;#34;, &amp;#34;Dotted&amp;#34;], inline=&amp;#34;tm&amp;#34;, group=grpTime)&lt;br/&gt;timeW = input.int(1, &amp;#34;&amp;#34;, minval=1, maxval=4, inline=&amp;#34;tm&amp;#34;, group=grpTime)&lt;br/&gt;cTime = input.color(#5c6570, &amp;#34;&amp;#34;, inline=&amp;#34;tm&amp;#34;, group=grpTime)&lt;br/&gt;extendTo = input.string(&amp;#34;Candle Close&amp;#34;, &amp;#34;Extend To&amp;#34;, options=[&amp;#34;Candle Close&amp;#34;, &amp;#34;Live Price&amp;#34;], inline=&amp;#34;ex&amp;#34;, group=grpTime, tooltip=&amp;#34;Candle Close extends one full period. Live Price follows the last bar. The number is the bar offset to the right.&amp;#34;)&lt;br/&gt;extendBars = input.int(3, &amp;#34;&amp;#34;, minval=0, maxval=40, inline=&amp;#34;ex&amp;#34;, group=grpTime)&lt;br/&gt;liveMode = input.bool(false, &amp;#34;Live OHLC Mode&amp;#34;, group=grpKey, tooltip=&amp;#34;Candle type only. Use the developing candle instead of the previous one. High, Low, EQ and every Fibonacci level recalculate on each tick. Completed candles are kept as history.&amp;#34;)&lt;br/&gt;histKeep = input.int(0, &amp;#34;History&amp;#34;, minval=0, maxval=8, group=grpKey, tooltip=&amp;#34;Previous OTE periods kept on the chart. 0 shows only the current OTE.&amp;#34;)&lt;br/&gt;useBody = input.string(&amp;#34;Wicks&amp;#34;, &amp;#34;Range&amp;#34;, options=[&amp;#34;Wicks&amp;#34;, &amp;#34;Bodies&amp;#34;], group=grpKey, tooltip=&amp;#34;Wicks: high and low of the range. Bodies: highest and lowest open or close.&amp;#34;)&lt;br/&gt;&lt;br/&gt;showOte = input.bool(true, &amp;#34;OTE&amp;#34;, inline=&amp;#34;ko&amp;#34;, group=grpKey)&lt;br/&gt;oteStyle = input.string(&amp;#34;Dotted&amp;#34;, &amp;#34;&amp;#34;, options=[&amp;#34;Solid&amp;#34;, &amp;#34;Dashed&amp;#34;, &amp;#34;Dotted&amp;#34;], inline=&amp;#34;ko&amp;#34;, group=grpKey)&lt;br/&gt;oteW = input.int(1, &amp;#34;&amp;#34;, minval=1, maxval=4, inline=&amp;#34;ko&amp;#34;, group=grpKey)&lt;br/&gt;cOte = input.color(#e1a046, &amp;#34;&amp;#34;, inline=&amp;#34;ko&amp;#34;, group=grpKey)&lt;br/&gt;showHigh = input.bool(true, &amp;#34;HIGH&amp;#34;, inline=&amp;#34;kh&amp;#34;, group=grpKey)&lt;br/&gt;highStyle = input.string(&amp;#34;Solid&amp;#34;, &amp;#34;&amp;#34;, options=[&amp;#34;Solid&amp;#34;, &amp;#34;Dashed&amp;#34;, &amp;#34;Dotted&amp;#34;], inline=&amp;#34;kh&amp;#34;, group=grpKey)&lt;br/&gt;highW = input.int(1, &amp;#34;&amp;#34;, minval=1, maxval=4, inline=&amp;#34;kh&amp;#34;, group=grpKey)&lt;br/&gt;cHigh = input.color(#2fbfa4, &amp;#34;&amp;#34;, inline=&amp;#34;kh&amp;#34;, group=grpKey)&lt;br/&gt;showEq = input.bool(true, &amp;#34;EQ&amp;#34;, inline=&amp;#34;ke&amp;#34;, group=grpKey)&lt;br/&gt;eqStyle = input.string(&amp;#34;Dotted&amp;#34;, &amp;#34;&amp;#34;, options=[&amp;#34;Solid&amp;#34;, &amp;#34;Dashed&amp;#34;, &amp;#34;Dotted&amp;#34;], inline=&amp;#34;ke&amp;#34;, group=grpKey)&lt;br/&gt;eqW = input.int(1, &amp;#34;&amp;#34;, minval=1, maxval=4, inline=&amp;#34;ke&amp;#34;, group=grpKey)&lt;br/&gt;cEq = input.color(#8b93a0, &amp;#34;&amp;#34;, inline=&amp;#34;ke&amp;#34;, group=grpKey)&lt;br/&gt;showLow = input.bool(true, &amp;#34;LOW&amp;#34;, inline=&amp;#34;kl&amp;#34;, group=grpKey)&lt;br/&gt;lowStyle = input.string(&amp;#34;Solid&amp;#34;, &amp;#34;&amp;#34;, options=[&amp;#34;Solid&amp;#34;, &amp;#34;Dashed&amp;#34;, &amp;#34;Dotted&amp;#34;], inline=&amp;#34;kl&amp;#34;, group=grpKey)&lt;br/&gt;lowW = input.int(1, &amp;#34;&amp;#34;, minval=1, maxval=4, inline=&amp;#34;kl&amp;#34;, group=grpKey)&lt;br/&gt;cLow = input.color(#f23645, &amp;#34;&amp;#34;, inline=&amp;#34;kl&amp;#34;, group=grpKey)&lt;br/&gt;labSize = input.string(&amp;#34;Small&amp;#34;, &amp;#34;Label Size&amp;#34;, options=[&amp;#34;Small&amp;#34;, &amp;#34;Normal&amp;#34;, &amp;#34;Large&amp;#34;], group=grpKey)&lt;br/&gt;&lt;br/&gt;fibGlobal = input.bool(false, &amp;#34;Apply Global Style To All Fibs&amp;#34;, inline=&amp;#34;fg&amp;#34;, group=grpFib, tooltip=&amp;#34;When enabled, this style and width override the individual Fibonacci settings below.&amp;#34;)&lt;br/&gt;fibGlobalStyle = input.string(&amp;#34;Dotted&amp;#34;, &amp;#34;&amp;#34;, options=[&amp;#34;Solid&amp;#34;, &amp;#34;Dashed&amp;#34;, &amp;#34;Dotted&amp;#34;], inline=&amp;#34;fg&amp;#34;, group=grpFib)&lt;br/&gt;fibGlobalW = input.int(1, &amp;#34;&amp;#34;, minval=1, maxval=4, inline=&amp;#34;fg&amp;#34;, group=grpFib)&lt;br/&gt;show110 = input.bool(true, &amp;#34;1.1&amp;#34;, inline=&amp;#34;f110&amp;#34;, group=grpFib)&lt;br/&gt;v110 = input.float(1.1, &amp;#34;&amp;#34;, inline=&amp;#34;f110&amp;#34;, group=grpFib)&lt;br/&gt;c110 = input.color(#6a7382, &amp;#34;&amp;#34;, inline=&amp;#34;f110&amp;#34;, group=grpFib)&lt;br/&gt;st110 = input.string(&amp;#34;Dotted&amp;#34;, &amp;#34;&amp;#34;, options=[&amp;#34;Solid&amp;#34;, &amp;#34;Dashed&amp;#34;, &amp;#34;Dotted&amp;#34;], inline=&amp;#34;f110&amp;#34;, group=grpFib)&lt;br/&gt;w110 = input.int(1, &amp;#34;&amp;#34;, minval=1, maxval=4, inline=&amp;#34;f110&amp;#34;, group=grpFib)&lt;br/&gt;show90 = input.bool(true, &amp;#34;0.9&amp;#34;, inline=&amp;#34;f90&amp;#34;, group=grpFib)&lt;br/&gt;v90 = input.float(0.9, &amp;#34;&amp;#34;, inline=&amp;#34;f90&amp;#34;, group=grpFib)&lt;br/&gt;c90 = input.color(#7b8492, &amp;#34;&amp;#34;, inline=&amp;#34;f90&amp;#34;, group=grpFib)&lt;br/&gt;st90 = input.string(&amp;#34;Dotted&amp;#34;, &amp;#34;&amp;#34;, options=[&amp;#34;Solid&amp;#34;, &amp;#34;Dashed&amp;#34;, &amp;#34;Dotted&amp;#34;], inline=&amp;#34;f90&amp;#34;, group=grpFib)&lt;br/&gt;w90 = input.int(1, &amp;#34;&amp;#34;, minval=1, maxval=4, inline=&amp;#34;f90&amp;#34;, group=grpFib)&lt;br/&gt;show79 = input.bool(true, &amp;#34;0.79&amp;#34;, inline=&amp;#34;f79&amp;#34;, group=grpFib)&lt;br/&gt;v79 = input.float(0.79, &amp;#34;&amp;#34;, inline=&amp;#34;f79&amp;#34;, group=grpFib)&lt;br/&gt;c79 = input.color(#2bb89a, &amp;#34;&amp;#34;, inline=&amp;#34;f79&amp;#34;, group=grpFib)&lt;br/&gt;st79 = input.string(&amp;#34;Dotted&amp;#34;, &amp;#34;&amp;#34;, options=[&amp;#34;Solid&amp;#34;, &amp;#34;Dashed&amp;#34;, &amp;#34;Dotted&amp;#34;], inline=&amp;#34;f79&amp;#34;, group=grpFib)&lt;br/&gt;w79 = input.int(1, &amp;#34;&amp;#34;, minval=1, maxval=4, inline=&amp;#34;f79&amp;#34;, group=grpFib)&lt;br/&gt;show75 = input.bool(true, &amp;#34;0.75&amp;#34;, inline=&amp;#34;f75&amp;#34;, group=grpFib)&lt;br/&gt;v75 = input.float(0.75, &amp;#34;&amp;#34;, inline=&amp;#34;f75&amp;#34;, group=grpFib)&lt;br/&gt;c75 = input.color(#1f9a84, &amp;#34;&amp;#34;, inline=&amp;#34;f75&amp;#34;, group=grpFib)&lt;br/&gt;st75 = input.string(&amp;#34;Dotted&amp;#34;, &amp;#34;&amp;#34;, options=[&amp;#34;Solid&amp;#34;, &amp;#34;Dashed&amp;#34;, &amp;#34;Dotted&amp;#34;], inline=&amp;#34;f75&amp;#34;, group=grpFib)&lt;br/&gt;w75 = input.int(1, &amp;#34;&amp;#34;, minval=1, maxval=4, inline=&amp;#34;f75&amp;#34;, group=grpFib)&lt;br/&gt;show25 = input.bool(true, &amp;#34;0.25&amp;#34;, inline=&amp;#34;f25&amp;#34;, group=grpFib)&lt;br/&gt;v25 = input.float(0.25, &amp;#34;&amp;#34;, inline=&amp;#34;f25&amp;#34;, group=grpFib)&lt;br/&gt;c25 = input.color(#3fafa0, &amp;#34;&amp;#34;, inline=&amp;#34;f25&amp;#34;, group=grpFib)&lt;br/&gt;st25 = input.string(&amp;#34;Dotted&amp;#34;, &amp;#34;&amp;#34;, options=[&amp;#34;Solid&amp;#34;, &amp;#34;Dashed&amp;#34;, &amp;#34;Dotted&amp;#34;], inline=&amp;#34;f25&amp;#34;, group=grpFib)&lt;br/&gt;w25 = input.int(1, &amp;#34;&amp;#34;, minval=1, maxval=4, inline=&amp;#34;f25&amp;#34;, group=grpFib)&lt;br/&gt;showN25 = input.bool(true, &amp;#34;-0.25&amp;#34;, inline=&amp;#34;fn25&amp;#34;, group=grpFib)&lt;br/&gt;vN25 = input.float(-0.25, &amp;#34;&amp;#34;, inline=&amp;#34;fn25&amp;#34;, group=grpFib)&lt;br/&gt;cN25 = input.color(#3d9e8c, &amp;#34;&amp;#34;, inline=&amp;#34;fn25&amp;#34;, group=grpFib)&lt;br/&gt;stN25 = input.string(&amp;#34;Dotted&amp;#34;, &amp;#34;&amp;#34;, options=[&amp;#34;Solid&amp;#34;, &amp;#34;Dashed&amp;#34;, &amp;#34;Dotted&amp;#34;], inline=&amp;#34;fn25&amp;#34;, group=grpFib)&lt;br/&gt;wN25 = input.int(1, &amp;#34;&amp;#34;, minval=1, maxval=4, inline=&amp;#34;fn25&amp;#34;, group=grpFib)&lt;br/&gt;showN50 = input.bool(true, &amp;#34;-0.5&amp;#34;, inline=&amp;#34;fn50&amp;#34;, group=grpFib)&lt;br/&gt;vN50 = input.float(-0.5, &amp;#34;&amp;#34;, inline=&amp;#34;fn50&amp;#34;, group=grpFib)&lt;br/&gt;cN50 = input.color(#2a9d8a, &amp;#34;&amp;#34;, inline=&amp;#34;fn50&amp;#34;, group=grpFib)&lt;br/&gt;stN50 = input.string(&amp;#34;Dotted&amp;#34;, &amp;#34;&amp;#34;, options=[&amp;#34;Solid&amp;#34;, &amp;#34;Dashed&amp;#34;, &amp;#34;Dotted&amp;#34;], inline=&amp;#34;fn50&amp;#34;, group=grpFib)&lt;br/&gt;wN50 = input.int(1, &amp;#34;&amp;#34;, minval=1, maxval=4, inline=&amp;#34;fn50&amp;#34;, group=grpFib)&lt;br/&gt;showN62 = input.bool(true, &amp;#34;-0.62&amp;#34;, inline=&amp;#34;fn62&amp;#34;, group=grpFib)&lt;br/&gt;vN62 = input.float(-0.62, &amp;#34;&amp;#34;, inline=&amp;#34;fn62&amp;#34;, group=grpFib)&lt;br/&gt;cN62 = input.color(#249888, &amp;#34;&amp;#34;, inline=&amp;#34;fn62&amp;#34;, group=grpFib)&lt;br/&gt;stN62 = input.string(&amp;#34;Dotted&amp;#34;, &amp;#34;&amp;#34;, options=[&amp;#34;Solid&amp;#34;, &amp;#34;Dashed&amp;#34;, &amp;#34;Dotted&amp;#34;], inline=&amp;#34;fn62&amp;#34;, group=grpFib)&lt;br/&gt;wN62 = input.int(1, &amp;#34;&amp;#34;, minval=1, maxval=4, inline=&amp;#34;fn62&amp;#34;, group=grpFib)&lt;br/&gt;showN75 = input.bool(true, &amp;#34;-0.75&amp;#34;, inline=&amp;#34;fn75&amp;#34;, group=grpFib)&lt;br/&gt;vN75 = input.float(-0.75, &amp;#34;&amp;#34;, inline=&amp;#34;fn75&amp;#34;, group=grpFib)&lt;br/&gt;cN75 = input.color(#1f8f78, &amp;#34;&amp;#34;, inline=&amp;#34;fn75&amp;#34;, group=grpFib)&lt;br/&gt;stN75 = input.string(&amp;#34;Dotted&amp;#34;, &amp;#34;&amp;#34;, options=[&amp;#34;Solid&amp;#34;, &amp;#34;Dashed&amp;#34;, &amp;#34;Dotted&amp;#34;], inline=&amp;#34;fn75&amp;#34;, group=grpFib)&lt;br/&gt;wN75 = input.int(1, &amp;#34;&amp;#34;, minval=1, maxval=4, inline=&amp;#34;fn75&amp;#34;, group=grpFib)&lt;br/&gt;showN100 = input.bool(true, &amp;#34;-1&amp;#34;, inline=&amp;#34;fn100&amp;#34;, group=grpFib)&lt;br/&gt;vN100 = input.float(-1.0, &amp;#34;&amp;#34;, inline=&amp;#34;fn100&amp;#34;, group=grpFib)&lt;br/&gt;cN100 = input.color(#17866f, &amp;#34;&amp;#34;, inline=&amp;#34;fn100&amp;#34;, group=grpFib)&lt;br/&gt;stN100 = input.string(&amp;#34;Dotted&amp;#34;, &amp;#34;&amp;#34;, options=[&amp;#34;Solid&amp;#34;, &amp;#34;Dashed&amp;#34;, &amp;#34;Dotted&amp;#34;], inline=&amp;#34;fn100&amp;#34;, group=grpFib)&lt;br/&gt;wN100 = input.int(1, &amp;#34;&amp;#34;, minval=1, maxval=4, inline=&amp;#34;fn100&amp;#34;, group=grpFib)&lt;br/&gt;rev = input.bool(false, &amp;#34;Reverse&amp;#34;, group=grpFib, tooltip=&amp;#34;Flip the retracement. 0% moves from the high to the low, or the other way.&amp;#34;)&lt;br/&gt;&lt;br/&gt;showZone = input.bool(true, &amp;#34;Highlight OTE Zone (62% - 79%)&amp;#34;, inline=&amp;#34;zn&amp;#34;, group=grpZone)&lt;br/&gt;cZone = input.color(#0c2822, &amp;#34;&amp;#34;, inline=&amp;#34;zn&amp;#34;, group=grpZone)&lt;br/&gt;showCustom = input.bool(true, &amp;#34;Custom Zone&amp;#34;, inline=&amp;#34;cz&amp;#34;, group=grpZone, tooltip=&amp;#34;Highlight the area between any two Fibonacci values. Negative extensions are supported.&amp;#34;)&lt;br/&gt;custA = input.float(0.5, &amp;#34;&amp;#34;, inline=&amp;#34;cz&amp;#34;, group=grpZone)&lt;br/&gt;custB = input.float(0.62, &amp;#34;&amp;#34;, inline=&amp;#34;cz&amp;#34;, group=grpZone)&lt;br/&gt;cCustom = input.color(#12161c, &amp;#34;&amp;#34;, inline=&amp;#34;cz&amp;#34;, group=grpZone)&lt;br/&gt;&lt;br/&gt;exAsia = input.bool(false, &amp;#34;Exclude Asia (20:00 - 00:00 NY)&amp;#34;, group=grpSess)&lt;br/&gt;exLondon = input.bool(false, &amp;#34;Exclude London (02:00 - 05:00 NY)&amp;#34;, group=grpSess)&lt;br/&gt;exNyAm = input.bool(false, &amp;#34;Exclude NY AM (09:30 - 12:00 NY)&amp;#34;, group=grpSess)&lt;br/&gt;exLunch = input.bool(false, &amp;#34;Exclude Lunch (12:00 - 14:00 NY)&amp;#34;, group=grpSess)&lt;br/&gt;exNyPm = input.bool(false, &amp;#34;Exclude NY PM (14:00 - 16:00 NY)&amp;#34;, group=grpSess, tooltip=&amp;#34;An OTE whose period completes inside an excluded session is not plotted.&amp;#34;)&lt;br/&gt;&lt;br/&gt;showPct = input.bool(true, &amp;#34;Show?&amp;#34;, inline=&amp;#34;pt&amp;#34;, group=grpTab)&lt;br/&gt;adaptive = input.bool(true, &amp;#34;Adaptive Color?&amp;#34;, inline=&amp;#34;pt&amp;#34;, group=grpTab, tooltip=&amp;#34;The percentage takes the color of the zone price is trading in: OTE, 75%, 79%, 90%, 110%.&amp;#34;)&lt;br/&gt;pctSize = input.string(&amp;#34;Normal&amp;#34;, &amp;#34;Size&amp;#34;, options=[&amp;#34;Small&amp;#34;, &amp;#34;Normal&amp;#34;, &amp;#34;Large&amp;#34;], group=grpTab)&lt;br/&gt;pctH = input.string(&amp;#34;Center&amp;#34;, &amp;#34;Horizontal&amp;#34;, options=[&amp;#34;Left&amp;#34;, &amp;#34;Center&amp;#34;, &amp;#34;Right&amp;#34;], inline=&amp;#34;pp&amp;#34;, group=grpTab)&lt;br/&gt;pctV = input.string(&amp;#34;Bottom&amp;#34;, &amp;#34;Vertical&amp;#34;, options=[&amp;#34;Top&amp;#34;, &amp;#34;Middle&amp;#34;, &amp;#34;Bottom&amp;#34;], inline=&amp;#34;pp&amp;#34;, group=grpTab)&lt;br/&gt;pctBg = input.color(color.white, &amp;#34;Percent&amp;#34;, inline=&amp;#34;pc&amp;#34;, group=grpTab)&lt;br/&gt;pctInk = input.color(#16181d, &amp;#34;&amp;#34;, inline=&amp;#34;pc&amp;#34;, group=grpTab)&lt;br/&gt;titleBg = input.color(#1f8f78, &amp;#34;Title&amp;#34;, inline=&amp;#34;ti&amp;#34;, group=grpTab)&lt;br/&gt;titleInk = input.color(color.white, &amp;#34;&amp;#34;, inline=&amp;#34;ti&amp;#34;, group=grpTab)&lt;br/&gt;&lt;br/&gt;showInfo = input.bool(true, &amp;#34;Show Info Table?&amp;#34;, group=grpInfo)&lt;br/&gt;infoTitle = input.string(&amp;#34;AUTO OPTIMAL ENTRY&amp;#34;, &amp;#34;Title&amp;#34;, group=grpInfo)&lt;br/&gt;infoH = input.string(&amp;#34;Left&amp;#34;, &amp;#34;Horizontal&amp;#34;, options=[&amp;#34;Left&amp;#34;, &amp;#34;Center&amp;#34;, &amp;#34;Right&amp;#34;], inline=&amp;#34;ip&amp;#34;, group=grpInfo)&lt;br/&gt;infoV = input.string(&amp;#34;Top&amp;#34;, &amp;#34;Vertical&amp;#34;, options=[&amp;#34;Top&amp;#34;, &amp;#34;Middle&amp;#34;, &amp;#34;Bottom&amp;#34;], inline=&amp;#34;ip&amp;#34;, group=grpInfo)&lt;br/&gt;infoBg = input.color(#d7f3ec, &amp;#34;Background&amp;#34;, inline=&amp;#34;ib&amp;#34;, group=grpInfo)&lt;br/&gt;infoInk = input.color(#0e7c66, &amp;#34;Text&amp;#34;, inline=&amp;#34;ib&amp;#34;, group=grpInfo)&lt;br/&gt;infoFrame = input.color(#1f8f78, &amp;#34;Frame&amp;#34;, inline=&amp;#34;ib&amp;#34;, group=grpInfo)&lt;br/&gt;&lt;br/&gt;int stepMs = nz(timeframe.in_seconds(), 60) * 1000&lt;br/&gt;&lt;br/&gt;f_auto() =&amp;gt;&lt;br/&gt;    string p = timeframe.period&lt;br/&gt;    if p == &amp;#34;1M&amp;#34; or p == &amp;#34;M&amp;#34; or p == &amp;#34;1W&amp;#34; or p == &amp;#34;W&amp;#34; or p == &amp;#34;1D&amp;#34; or p == &amp;#34;D&amp;#34;&lt;br/&gt;        &amp;#34;1M&amp;#34;&lt;br/&gt;    else&lt;br/&gt;        int s = nz(timeframe.in_seconds(), 60)&lt;br/&gt;        // 1m and lower → 15m. Up to 5m → 1H. Up to 15m → 4H. Up to 1H → previous day. Up to 4H → week. Above that → previous month.&lt;br/&gt;        s &amp;lt;= 60 ? &amp;#34;15&amp;#34; : s &amp;lt;= 300 ? &amp;#34;60&amp;#34; : s &amp;lt;= 900 ? &amp;#34;240&amp;#34; : s &amp;lt;= 3600 ? &amp;#34;1D&amp;#34; : s &amp;lt;= 14400 ? &amp;#34;1W&amp;#34; : &amp;#34;1M&amp;#34;&lt;br/&gt;&lt;br/&gt;f_name(tf) =&amp;gt;&lt;br/&gt;    tf == &amp;#34;15&amp;#34; ? &amp;#34;15m&amp;#34; : tf == &amp;#34;60&amp;#34; ? &amp;#34;1H&amp;#34; : tf == &amp;#34;240&amp;#34; ? &amp;#34;4H&amp;#34; : tf == &amp;#34;1D&amp;#34; or tf == &amp;#34;1W&amp;#34; or tf == &amp;#34;1M&amp;#34; ? tf : tf&lt;br/&gt;&lt;br/&gt;[o15, h15, l15, c15, t15] = request.security(syminfo.tickerid, &amp;#34;15&amp;#34;, [open[1], high[1], low[1], close[1], time[1]], barmerge.gaps_off, barmerge.lookahead_on)&lt;br/&gt;[o60, h60, l60, c60, t60] = request.security(syminfo.tickerid, &amp;#34;60&amp;#34;, [open[1], high[1], low[1], close[1], time[1]], barmerge.gaps_off, barmerge.lookahead_on)&lt;br/&gt;[o240, h240, l240, c240, t240] = request.security(syminfo.tickerid, &amp;#34;240&amp;#34;, [open[1], high[1], low[1], close[1], time[1]], barmerge.gaps_off, barmerge.lookahead_on)&lt;br/&gt;[oD, hD, lD, cD, tD] = request.security(syminfo.tickerid, &amp;#34;1D&amp;#34;, [open[1], high[1], low[1], close[1], time[1]], barmerge.gaps_off, barmerge.lookahead_on)&lt;br/&gt;[oW, hW, lW, cW, tW] = request.security(syminfo.tickerid, &amp;#34;1W&amp;#34;, [open[1], high[1], low[1], close[1], time[1]], barmerge.gaps_off, barmerge.lookahead_on)&lt;br/&gt;[oM, hM, lM, cM, tM] = request.security(syminfo.tickerid, &amp;#34;1M&amp;#34;, [open[1], high[1], low[1], close[1], time[1]], barmerge.gaps_off, barmerge.lookahead_on)&lt;br/&gt;&lt;br/&gt;bool roll15 = timeframe.change(&amp;#34;15&amp;#34;)&lt;br/&gt;bool roll60 = timeframe.change(&amp;#34;60&amp;#34;)&lt;br/&gt;bool roll240 = timeframe.change(&amp;#34;240&amp;#34;)&lt;br/&gt;bool rollD = timeframe.change(&amp;#34;1D&amp;#34;)&lt;br/&gt;bool rollW = timeframe.change(&amp;#34;1W&amp;#34;)&lt;br/&gt;bool rollM = timeframe.change(&amp;#34;1M&amp;#34;)&lt;br/&gt;&lt;br/&gt;f_roll(tf) =&amp;gt;&lt;br/&gt;    tf == &amp;#34;15&amp;#34; ? roll15 : tf == &amp;#34;60&amp;#34; ? roll60 : tf == &amp;#34;240&amp;#34; ? roll240 : tf == &amp;#34;1D&amp;#34; or tf == &amp;#34;D&amp;#34; ? rollD : tf == &amp;#34;1W&amp;#34; or tf == &amp;#34;W&amp;#34; ? rollW : tf == &amp;#34;1M&amp;#34; or tf == &amp;#34;M&amp;#34; ? rollM : na(time[1]) or int(math.floor(time / math.max(nz(str.tonumber(tf), 60) * 60000, 60000))) != int(math.floor(time[1] / math.max(nz(str.tonumber(tf), 60) * 60000, 60000)))&lt;br/&gt;&lt;br/&gt;f_chart() =&amp;gt;&lt;br/&gt;    string p = timeframe.period&lt;br/&gt;    p == &amp;#34;60&amp;#34; ? &amp;#34;1H&amp;#34; : p == &amp;#34;240&amp;#34; ? &amp;#34;4H&amp;#34; : p == &amp;#34;1D&amp;#34; or p == &amp;#34;1W&amp;#34; or p == &amp;#34;1M&amp;#34; ? p : str.contains(p, &amp;#34;S&amp;#34;) ? p : p &#43; &amp;#34;m&amp;#34;&lt;br/&gt;&lt;br/&gt;f_next(boundary, tf) =&amp;gt;&lt;br/&gt;    if tf == &amp;#34;1M&amp;#34;&lt;br/&gt;        int y = year(boundary)&lt;br/&gt;        int m = month(boundary)&lt;br/&gt;        m == 12 ? timestamp(y &#43; 1, 1, 1, 0, 0) : timestamp(y, m &#43; 1, 1, 0, 0)&lt;br/&gt;    else if tf == &amp;#34;1W&amp;#34;&lt;br/&gt;        boundary &#43; 604800000&lt;br/&gt;    else if tf == &amp;#34;1D&amp;#34;&lt;br/&gt;        boundary &#43; 86400000&lt;br/&gt;    else&lt;br/&gt;        boundary &#43; int(str.tonumber(tf) * 60000)&lt;br/&gt;&lt;br/&gt;f_px(ratio, bull, hi, lo) =&amp;gt;&lt;br/&gt;    float span = hi - lo&lt;br/&gt;    bull ? hi - ratio * span : lo &#43; ratio * span&lt;br/&gt;&lt;br/&gt;f_in(mins, a, b) =&amp;gt;&lt;br/&gt;    mins &amp;gt;= a and mins &amp;lt; b&lt;br/&gt;&lt;br/&gt;f_done(t) =&amp;gt;&lt;br/&gt;    int mins = hour(t, tz) * 60 &#43; minute(t, tz)&lt;br/&gt;    (exAsia and f_in(mins, 20 * 60, 24 * 60)) or (exLondon and f_in(mins, 2 * 60, 5 * 60)) or (exNyAm and f_in(mins, 9 * 60 &#43; 30, 12 * 60)) or (exLunch and f_in(mins, 12 * 60, 14 * 60)) or (exNyPm and f_in(mins, 14 * 60, 16 * 60))&lt;br/&gt;&lt;br/&gt;f_touch(px) =&amp;gt;&lt;br/&gt;    not na(px) and high &amp;gt;= px and low &amp;lt;= px and not (high[1] &amp;gt;= px and low[1] &amp;lt;= px)&lt;br/&gt;&lt;br/&gt;f_style(name) =&amp;gt;&lt;br/&gt;    name == &amp;#34;Solid&amp;#34; ? line.style_solid : name == &amp;#34;Dashed&amp;#34; ? line.style_dashed : line.style_dotted&lt;br/&gt;&lt;br/&gt;f_sz(heavy) =&amp;gt;&lt;br/&gt;    if labSize == &amp;#34;Large&amp;#34;&lt;br/&gt;        heavy ? size.large : size.normal&lt;br/&gt;    else if labSize == &amp;#34;Normal&amp;#34;&lt;br/&gt;        heavy ? size.normal : size.small&lt;br/&gt;    else&lt;br/&gt;        heavy ? size.normal : size.small&lt;br/&gt;&lt;br/&gt;f_pctxt(v) =&amp;gt;&lt;br/&gt;    str.tostring(v * 100, &amp;#34;#.##&amp;#34;) &#43; &amp;#34;%&amp;#34;&lt;br/&gt;&lt;br/&gt;bool customOn = oteType == &amp;#34;Candle&amp;#34; and not autoTf and customMin &amp;gt; 0 and customMin * 60 &amp;gt;= nz(timeframe.in_seconds(), 60)&lt;br/&gt;int customMs = math.max(customMin, 1) * 60000&lt;br/&gt;string anchor = customOn ? str.tostring(customMin) : autoTf ? f_auto() : tfIn&lt;br/&gt;bool rolled = customOn ? (na(time[1]) or int(math.floor(time / customMs)) != int(math.floor(time[1] / customMs))) : f_roll(anchor)&lt;br/&gt;&lt;br/&gt;int clock = hour(time, tz) * 60 &#43; minute(time, tz)&lt;br/&gt;int aMin = sessStart * 60 &#43; sessStartM&lt;br/&gt;int bMin = sessEnd * 60 &#43; sessEndM&lt;br/&gt;bool inSess = bMin &amp;gt; aMin ? f_in(clock, aMin, bMin) : (clock &amp;gt;= aMin or clock &amp;lt; bMin)&lt;br/&gt;bool manualLive = oteType == &amp;#34;Manual&amp;#34; and time &amp;gt;= manStart and (not useEnd or time &amp;lt;= manEnd)&lt;br/&gt;bool active = oteType == &amp;#34;Session&amp;#34; ? inSess : oteType == &amp;#34;Manual&amp;#34; ? manualLive : true&lt;br/&gt;&lt;br/&gt;type OeRange&lt;br/&gt;    float o&lt;br/&gt;    float hi&lt;br/&gt;    float lo&lt;br/&gt;    float c&lt;br/&gt;    float bHi&lt;br/&gt;    float bLo&lt;br/&gt;    int hiT&lt;br/&gt;    int loT&lt;br/&gt;    int bHiT&lt;br/&gt;    int bLoT&lt;br/&gt;    int t0&lt;br/&gt;    int t1&lt;br/&gt;&lt;br/&gt;var OeRange[] hist = array.new&amp;lt;OeRange&amp;gt;()&lt;br/&gt;var float runO = na&lt;br/&gt;var float runH = na&lt;br/&gt;var float runL = na&lt;br/&gt;var float runC = na&lt;br/&gt;var float runBH = na&lt;br/&gt;var float runBL = na&lt;br/&gt;var int runHiT = na&lt;br/&gt;var int runLoT = na&lt;br/&gt;var int runBHiT = na&lt;br/&gt;var int runBLoT = na&lt;br/&gt;var int runT0 = na&lt;br/&gt;var bool armed = false&lt;br/&gt;&lt;br/&gt;float bodyHi = math.max(open, close)&lt;br/&gt;float bodyLo = math.min(open, close)&lt;br/&gt;&lt;br/&gt;var int handledBar = na&lt;br/&gt;bool candleFresh = oteType == &amp;#34;Candle&amp;#34; and rolled and (na(handledBar) or handledBar != time)&lt;br/&gt;bool sessOpen = oteType != &amp;#34;Candle&amp;#34; and active and not active[1]&lt;br/&gt;bool sessClose = oteType != &amp;#34;Candle&amp;#34; and not active and active[1]&lt;br/&gt;&lt;br/&gt;if (candleFresh or sessClose) and armed and not na(runH) and runH &amp;gt; runL and not f_done(time)&lt;br/&gt;    array.push(hist, OeRange.new(runO, runH, runL, runC, runBH, runBL, runHiT, runLoT, runBHiT, runBLoT, runT0, time))&lt;br/&gt;    if array.size(hist) &amp;gt; 12&lt;br/&gt;        array.shift(hist)&lt;br/&gt;&lt;br/&gt;if candleFresh&lt;br/&gt;    handledBar := time&lt;br/&gt;    runO := open&lt;br/&gt;    runH := high&lt;br/&gt;    runL := low&lt;br/&gt;    runC := close&lt;br/&gt;    runBH := bodyHi&lt;br/&gt;    runBL := bodyLo&lt;br/&gt;    runHiT := time&lt;br/&gt;    runLoT := time&lt;br/&gt;    runBHiT := time&lt;br/&gt;    runBLoT := time&lt;br/&gt;    runT0 := time&lt;br/&gt;    armed := true&lt;br/&gt;else if sessOpen&lt;br/&gt;    runO := open&lt;br/&gt;    runH := high&lt;br/&gt;    runL := low&lt;br/&gt;    runC := close&lt;br/&gt;    runBH := bodyHi&lt;br/&gt;    runBL := bodyLo&lt;br/&gt;    runHiT := time&lt;br/&gt;    runLoT := time&lt;br/&gt;    runBHiT := time&lt;br/&gt;    runBLoT := time&lt;br/&gt;    runT0 := time&lt;br/&gt;    armed := true&lt;br/&gt;else if sessClose&lt;br/&gt;    armed := false&lt;br/&gt;else if active and armed&lt;br/&gt;    runC := close&lt;br/&gt;    if high &amp;gt;= runH&lt;br/&gt;        runH := high&lt;br/&gt;        runHiT := time&lt;br/&gt;    if low &amp;lt;= runL&lt;br/&gt;        runL := low&lt;br/&gt;        runLoT := time&lt;br/&gt;    if bodyHi &amp;gt;= runBH&lt;br/&gt;        runBH := bodyHi&lt;br/&gt;        runBHiT := time&lt;br/&gt;    if bodyLo &amp;lt;= runBL&lt;br/&gt;        runBL := bodyLo&lt;br/&gt;        runBLoT := time&lt;br/&gt;&lt;br/&gt;int secOpen = anchor == &amp;#34;15&amp;#34; ? t15 : anchor == &amp;#34;60&amp;#34; ? t60 : anchor == &amp;#34;240&amp;#34; ? t240 : anchor == &amp;#34;1D&amp;#34; or anchor == &amp;#34;D&amp;#34; ? tD : anchor == &amp;#34;1W&amp;#34; or anchor == &amp;#34;W&amp;#34; ? tW : anchor == &amp;#34;1M&amp;#34; or anchor == &amp;#34;M&amp;#34; ? tM : na&lt;br/&gt;int secEnd = na(secOpen) ? na : f_next(secOpen, anchor)&lt;br/&gt;var int trkEnd = na&lt;br/&gt;var int trkHiT = na&lt;br/&gt;var int trkLoT = na&lt;br/&gt;var float trkH = na&lt;br/&gt;var float trkL = na&lt;br/&gt;var int holdHiT = na&lt;br/&gt;var int holdLoT = na&lt;br/&gt;var int holdFor = na&lt;br/&gt;if not na(secEnd)&lt;br/&gt;    if na(trkEnd) or secEnd != trkEnd&lt;br/&gt;        holdHiT := trkHiT&lt;br/&gt;        holdLoT := trkLoT&lt;br/&gt;        holdFor := trkEnd&lt;br/&gt;        trkEnd := secEnd&lt;br/&gt;        trkH := high&lt;br/&gt;        trkL := low&lt;br/&gt;        trkHiT := time&lt;br/&gt;        trkLoT := time&lt;br/&gt;    else&lt;br/&gt;        if na(trkH) or high &amp;gt;= trkH&lt;br/&gt;            trkH := high&lt;br/&gt;            trkHiT := time&lt;br/&gt;        if na(trkL) or low &amp;lt;= trkL&lt;br/&gt;            trkL := low&lt;br/&gt;            trkLoT := time&lt;br/&gt;&lt;br/&gt;var line[] lines = array.new_line()&lt;br/&gt;var label[] labels = array.new_label()&lt;br/&gt;var box[] boxes = array.new_box()&lt;br/&gt;&lt;br/&gt;var table pctTab = table.new(pctV == &amp;#34;Top&amp;#34; ? position.top_center : pctV == &amp;#34;Middle&amp;#34; ? position.middle_center : position.bottom_center, 1, 3, border_width=0, frame_width=0)&lt;br/&gt;var table infoTab = table.new(infoV == &amp;#34;Bottom&amp;#34; ? position.bottom_left : infoV == &amp;#34;Middle&amp;#34; ? position.middle_left : position.top_left, 3, 1, border_width=1, frame_width=1, frame_color=infoFrame, border_color=infoFrame)&lt;br/&gt;&lt;br/&gt;f_wipe() =&amp;gt;&lt;br/&gt;    while array.size(lines) &amp;gt; 0&lt;br/&gt;        line.delete(array.pop(lines))&lt;br/&gt;    while array.size(labels) &amp;gt; 0&lt;br/&gt;        label.delete(array.pop(labels))&lt;br/&gt;    while array.size(boxes) &amp;gt; 0&lt;br/&gt;        box.delete(array.pop(boxes))&lt;br/&gt;&lt;br/&gt;f_seg(x1, y1, x2, y2, col, style, width) =&amp;gt;&lt;br/&gt;    array.push(lines, line.new(x1, y1, x2, y2, xloc=xloc.bar_time, color=col, style=style, width=width))&lt;br/&gt;&lt;br/&gt;f_pre(kind) =&amp;gt;&lt;br/&gt;    kind == &amp;#34;ote&amp;#34; ? &amp;#34;◈ &amp;#34; : &amp;#34;◇ &amp;#34;&lt;br/&gt;&lt;br/&gt;f_lab(x, y, txt, col, heavy) =&amp;gt;&lt;br/&gt;    array.push(labels, label.new(x, y, txt, xloc=xloc.bar_time, style=label.style_label_left, color=color.new(color.white, 100), textcolor=col, size=f_sz(heavy)))&lt;br/&gt;&lt;br/&gt;f_draw(on, px, txt, col, x1, x2, style, width, labelIt, heavy, kind) =&amp;gt;&lt;br/&gt;    float y = na&lt;br/&gt;    if on and not na(px)&lt;br/&gt;        f_seg(x1, px, x2, px, col, style, width)&lt;br/&gt;        if labelIt&lt;br/&gt;            if kind == &amp;#34;up&amp;#34; or kind == &amp;#34;dn&amp;#34;&lt;br/&gt;                array.push(labels, label.new(x2, px, kind == &amp;#34;up&amp;#34; ? &amp;#34;▴&amp;#34; : &amp;#34;▾&amp;#34;, xloc=xloc.bar_time, style=label.style_label_left, color=color.new(color.white, 100), textcolor=col, size=size.small))&lt;br/&gt;                f_lab(x2, px, &amp;#34;   &amp;#34; &#43; txt, col, heavy)&lt;br/&gt;            else&lt;br/&gt;                f_lab(x2, px, f_pre(kind) &#43; txt, col, heavy)&lt;br/&gt;        y := px&lt;br/&gt;    y&lt;br/&gt;&lt;br/&gt;f_bump(edge, px, useMax) =&amp;gt;&lt;br/&gt;    float n = edge&lt;br/&gt;    if not na(px)&lt;br/&gt;        n := na(n) ? px : useMax ? math.max(n, px) : math.min(n, px)&lt;br/&gt;    n&lt;br/&gt;&lt;br/&gt;f_ink(lvl) =&amp;gt;&lt;br/&gt;    if not adaptive&lt;br/&gt;        pctInk&lt;br/&gt;    else if lvl &amp;gt;= 1&lt;br/&gt;        c110&lt;br/&gt;    else if lvl &amp;gt;= 0.845&lt;br/&gt;        c90&lt;br/&gt;    else if lvl &amp;gt;= 0.77&lt;br/&gt;        c79&lt;br/&gt;    else if lvl &amp;gt;= 0.7&lt;br/&gt;        c75&lt;br/&gt;    else if lvl &amp;gt;= 0.5&lt;br/&gt;        cOte&lt;br/&gt;    else&lt;br/&gt;        pctInk&lt;br/&gt;&lt;br/&gt;var int pinSwing = na&lt;br/&gt;var int pinAt = na&lt;br/&gt;var float watchHi = na&lt;br/&gt;var float watchLo = na&lt;br/&gt;var bool watchBull = true&lt;br/&gt;var float sideHi = na&lt;br/&gt;var float sideLo = na&lt;br/&gt;var bool oteHit = false&lt;br/&gt;&lt;br/&gt;if barstate.islast and (array.size(hist) &amp;gt; 0 or (armed and not na(runH) and ((liveMode and oteType == &amp;#34;Candle&amp;#34;) or (oteType == &amp;#34;Manual&amp;#34; and active))))&lt;br/&gt;    f_wipe()&lt;br/&gt;    bool pushedLive = false&lt;br/&gt;    int lastI = array.size(hist) - 1&lt;br/&gt;    int fromI = math.max(0, array.size(hist) - (histKeep &#43; 1))&lt;br/&gt;    if ((liveMode and oteType == &amp;#34;Candle&amp;#34;) or (oteType == &amp;#34;Manual&amp;#34; and active)) and armed and not na(runH) and runH &amp;gt; runL and not f_done(time)&lt;br/&gt;        array.push(hist, OeRange.new(runO, runH, runL, runC, runBH, runBL, runHiT, runLoT, runBHiT, runBLoT, runT0, time))&lt;br/&gt;        lastI := array.size(hist) - 1&lt;br/&gt;        fromI := lastI&lt;br/&gt;        pushedLive := true&lt;br/&gt;    else if array.size(hist) == 0&lt;br/&gt;        lastI := -1&lt;br/&gt;&lt;br/&gt;    if showInfo&lt;br/&gt;        table.cell(infoTab, 0, 0, infoTitle, text_color=infoInk, bgcolor=infoBg, text_size=size.small)&lt;br/&gt;        table.cell(infoTab, 1, 0, syminfo.ticker, text_color=color.white, bgcolor=color.black, text_size=size.small)&lt;br/&gt;        table.cell(infoTab, 2, 0, &amp;#34;TF · &amp;#34; &#43; f_chart(), text_color=#d5d8e0, bgcolor=#242424, text_size=size.small)&lt;br/&gt;    else&lt;br/&gt;        table.cell(infoTab, 0, 0, &amp;#34;&amp;#34;)&lt;br/&gt;        table.cell(infoTab, 1, 0, &amp;#34;&amp;#34;)&lt;br/&gt;        table.cell(infoTab, 2, 0, &amp;#34;&amp;#34;)&lt;br/&gt;&lt;br/&gt;    float top = na&lt;br/&gt;    float bot = na&lt;br/&gt;    float p = na&lt;br/&gt;    if lastI &amp;gt;= 0&lt;br/&gt;        for i = fromI to lastI&lt;br/&gt;            OeRange rg = array.get(hist, i)&lt;br/&gt;            if f_done(rg.t1)&lt;br/&gt;                continue&lt;br/&gt;            bool bodies = useBody == &amp;#34;Bodies&amp;#34;&lt;br/&gt;            bool live = i == lastI&lt;br/&gt;            bool useSec = oteType == &amp;#34;Candle&amp;#34; and not customOn and live and not liveMode&lt;br/&gt;            float secO = anchor == &amp;#34;15&amp;#34; ? o15 : anchor == &amp;#34;60&amp;#34; ? o60 : anchor == &amp;#34;240&amp;#34; ? o240 : anchor == &amp;#34;1D&amp;#34; or anchor == &amp;#34;D&amp;#34; ? oD : anchor == &amp;#34;1W&amp;#34; or anchor == &amp;#34;W&amp;#34; ? oW : anchor == &amp;#34;1M&amp;#34; or anchor == &amp;#34;M&amp;#34; ? oM : rg.o&lt;br/&gt;            float secH = anchor == &amp;#34;15&amp;#34; ? h15 : anchor == &amp;#34;60&amp;#34; ? h60 : anchor == &amp;#34;240&amp;#34; ? h240 : anchor == &amp;#34;1D&amp;#34; or anchor == &amp;#34;D&amp;#34; ? hD : anchor == &amp;#34;1W&amp;#34; or anchor == &amp;#34;W&amp;#34; ? hW : anchor == &amp;#34;1M&amp;#34; or anchor == &amp;#34;M&amp;#34; ? hM : rg.hi&lt;br/&gt;            float secL = anchor == &amp;#34;15&amp;#34; ? l15 : anchor == &amp;#34;60&amp;#34; ? l60 : anchor == &amp;#34;240&amp;#34; ? l240 : anchor == &amp;#34;1D&amp;#34; or anchor == &amp;#34;D&amp;#34; ? lD : anchor == &amp;#34;1W&amp;#34; or anchor == &amp;#34;W&amp;#34; ? lW : anchor == &amp;#34;1M&amp;#34; or anchor == &amp;#34;M&amp;#34; ? lM : rg.lo&lt;br/&gt;            float secC = anchor == &amp;#34;15&amp;#34; ? c15 : anchor == &amp;#34;60&amp;#34; ? c60 : anchor == &amp;#34;240&amp;#34; ? c240 : anchor == &amp;#34;1D&amp;#34; or anchor == &amp;#34;D&amp;#34; ? cD : anchor == &amp;#34;1W&amp;#34; or anchor == &amp;#34;W&amp;#34; ? cW : anchor == &amp;#34;1M&amp;#34; or anchor == &amp;#34;M&amp;#34; ? cM : rg.c&lt;br/&gt;            float hi = bodies ? rg.bHi : useSec ? secH : rg.hi&lt;br/&gt;            float lo = bodies ? rg.bLo : useSec ? secL : rg.lo&lt;br/&gt;            float dirO = useSec ? secO : rg.o&lt;br/&gt;            float dirC = useSec ? secC : rg.c&lt;br/&gt;            int hiT = bodies ? rg.bHiT : rg.hiT&lt;br/&gt;            int loT = bodies ? rg.bLoT : rg.loT&lt;br/&gt;            int edge = rg.t1&lt;br/&gt;            if useSec and not na(secOpen) and not na(secH) and secH &amp;gt; secL and not bodies&lt;br/&gt;                edge := f_next(secOpen, anchor)&lt;br/&gt;                int wickH = holdFor == secOpen and not na(holdHiT) ? holdHiT : secOpen&lt;br/&gt;                int wickL = holdFor == secOpen and not na(holdLoT) ? holdLoT : secOpen&lt;br/&gt;                hiT := wickH &amp;lt; secOpen or wickH &amp;gt; edge ? secOpen : wickH&lt;br/&gt;                loT := wickL &amp;lt; secOpen or wickL &amp;gt; edge ? secOpen : wickL&lt;br/&gt;            top := na&lt;br/&gt;            bot := na&lt;br/&gt;            if hi &amp;gt; lo&lt;br/&gt;                float midPx = (hi &#43; lo) / 2.0&lt;br/&gt;                // Body direction, not wick order. The later extreme was flipping the&lt;br/&gt;                // whole fib and the OTE box even when the candle closed the other way.&lt;br/&gt;                bool bullish = oteType == &amp;#34;Candle&amp;#34; ? dirC &amp;gt;= dirO : dirC &amp;gt;= midPx&lt;br/&gt;                bool bull = bullish != rev&lt;br/&gt;                int sessMin = (sessEnd * 60 &#43; sessEndM) - (sessStart * 60 &#43; sessStartM)&lt;br/&gt;                sessMin := sessMin &amp;lt;= 0 ? sessMin &#43; 1440 : sessMin&lt;br/&gt;                int periodMs = customOn ? customMs : oteType == &amp;#34;Session&amp;#34; ? sessMin * 60000 : math.max(stepMs, f_next(edge, anchor) - edge)&lt;br/&gt;                int right = extendTo == &amp;#34;Live Price&amp;#34; and live ? time &#43; extendBars * stepMs : edge &#43; periodMs&lt;br/&gt;                int tr = live ? 0 : 62&lt;br/&gt;                color fibStC = color.new(color.white, 100)&lt;br/&gt;&lt;br/&gt;                if showCustom and live&lt;br/&gt;                    float cA = f_px(custA, bull, hi, lo)&lt;br/&gt;                    float cB = f_px(custB, bull, hi, lo)&lt;br/&gt;                    array.push(boxes, box.new(edge, math.max(cA, cB), right, math.min(cA, cB), xloc=xloc.bar_time, border_color=fibStC, bgcolor=color.new(cCustom, 20)))&lt;br/&gt;                if showZone and live&lt;br/&gt;                    float zA = f_px(0.62, bull, hi, lo)&lt;br/&gt;                    float zB = f_px(v79, bull, hi, lo)&lt;br/&gt;                    array.push(boxes, box.new(edge, math.max(zA, zB), right, math.min(zA, zB), xloc=xloc.bar_time, border_color=fibStC, bgcolor=color.new(cZone, 25)))&lt;br/&gt;&lt;br/&gt;                p := f_draw(showN100, f_px(vN100, bull, hi, lo), f_pctxt(vN100), color.new(cN100, tr), edge, right, f_style(fibGlobal ? fibGlobalStyle : stN100), fibGlobal ? fibGlobalW : wN100, live, false, &amp;#34;d&amp;#34;)&lt;br/&gt;                top := f_bump(top, p, true)&lt;br/&gt;                bot := f_bump(bot, p, false)&lt;br/&gt;                p := f_draw(showN75, f_px(vN75, bull, hi, lo), f_pctxt(vN75), color.new(cN75, tr), edge, right, f_style(fibGlobal ? fibGlobalStyle : stN75), fibGlobal ? fibGlobalW : wN75, live, false, &amp;#34;d&amp;#34;)&lt;br/&gt;                top := f_bump(top, p, true)&lt;br/&gt;                bot := f_bump(bot, p, false)&lt;br/&gt;                p := f_draw(showN62, f_px(vN62, bull, hi, lo), f_pctxt(vN62), color.new(cN62, tr), edge, right, f_style(fibGlobal ? fibGlobalStyle : stN62), fibGlobal ? fibGlobalW : wN62, live, false, &amp;#34;d&amp;#34;)&lt;br/&gt;                top := f_bump(top, p, true)&lt;br/&gt;                bot := f_bump(bot, p, false)&lt;br/&gt;                p := f_draw(showN50, f_px(vN50, bull, hi, lo), f_pctxt(vN50), color.new(cN50, tr), edge, right, f_style(fibGlobal ? fibGlobalStyle : stN50), fibGlobal ? fibGlobalW : wN50, live, false, &amp;#34;d&amp;#34;)&lt;br/&gt;                top := f_bump(top, p, true)&lt;br/&gt;                bot := f_bump(bot, p, false)&lt;br/&gt;                p := f_draw(showN25, f_px(vN25, bull, hi, lo), f_pctxt(vN25), color.new(cN25, tr), edge, right, f_style(fibGlobal ? fibGlobalStyle : stN25), fibGlobal ? fibGlobalW : wN25, live, false, &amp;#34;d&amp;#34;)&lt;br/&gt;                top := f_bump(top, p, true)&lt;br/&gt;                bot := f_bump(bot, p, false)&lt;br/&gt;                p := f_draw(show25, f_px(v25, bull, hi, lo), f_pctxt(v25), color.new(c25, tr), edge, right, f_style(fibGlobal ? fibGlobalStyle : st25), fibGlobal ? fibGlobalW : w25, live, false, &amp;#34;d&amp;#34;)&lt;br/&gt;                top := f_bump(top, p, true)&lt;br/&gt;                bot := f_bump(bot, p, false)&lt;br/&gt;                p := f_draw(showEq, f_px(0.5, bull, hi, lo), &amp;#34;EQ&amp;#34;, color.new(cEq, tr), edge, right, f_style(eqStyle), eqW, live, false, &amp;#34;d&amp;#34;)&lt;br/&gt;                top := f_bump(top, p, true)&lt;br/&gt;                bot := f_bump(bot, p, false)&lt;br/&gt;                p := f_draw(showOte, f_px(0.62, bull, hi, lo), &amp;#34;OTE&amp;#34;, color.new(cOte, tr), edge, right, f_style(oteStyle), oteW, live, false, &amp;#34;ote&amp;#34;)&lt;br/&gt;                top := f_bump(top, p, true)&lt;br/&gt;                bot := f_bump(bot, p, false)&lt;br/&gt;                p := f_draw(show75, f_px(v75, bull, hi, lo), f_pctxt(v75), color.new(c75, tr), edge, right, f_style(fibGlobal ? fibGlobalStyle : st75), fibGlobal ? fibGlobalW : w75, live, false, &amp;#34;d&amp;#34;)&lt;br/&gt;                top := f_bump(top, p, true)&lt;br/&gt;                bot := f_bump(bot, p, false)&lt;br/&gt;                p := f_draw(show79, f_px(v79, bull, hi, lo), f_pctxt(v79), color.new(c79, tr), edge, right, f_style(fibGlobal ? fibGlobalStyle : st79), fibGlobal ? fibGlobalW : w79, live, false, &amp;#34;d&amp;#34;)&lt;br/&gt;                top := f_bump(top, p, true)&lt;br/&gt;                bot := f_bump(bot, p, false)&lt;br/&gt;                p := f_draw(show90, f_px(v90, bull, hi, lo), f_pctxt(v90), color.new(c90, tr), edge, right, f_style(fibGlobal ? fibGlobalStyle : st90), fibGlobal ? fibGlobalW : w90, live, false, &amp;#34;d&amp;#34;)&lt;br/&gt;                top := f_bump(top, p, true)&lt;br/&gt;                bot := f_bump(bot, p, false)&lt;br/&gt;                p := f_draw(show110, f_px(v110, bull, hi, lo), f_pctxt(v110), color.new(c110, tr), edge, right, f_style(fibGlobal ? fibGlobalStyle : st110), fibGlobal ? fibGlobalW : w110, live, false, &amp;#34;d&amp;#34;)&lt;br/&gt;                top := f_bump(top, p, true)&lt;br/&gt;                bot := f_bump(bot, p, false)&lt;br/&gt;                bool cutHi = showTime and not bull&lt;br/&gt;                bool cutLo = showTime and bull&lt;br/&gt;                p := f_draw(showHigh, hi, &amp;#34;HIGH&amp;#34;, color.new(cHigh, tr), cutHi ? edge : hiT, right, f_style(highStyle), highW, live, true, &amp;#34;up&amp;#34;)&lt;br/&gt;                top := f_bump(top, p, true)&lt;br/&gt;                bot := f_bump(bot, p, false)&lt;br/&gt;                p := f_draw(showLow, lo, &amp;#34;LOW&amp;#34;, color.new(cLow, tr), cutLo ? edge : loT, right, f_style(lowStyle), lowW, live, true, &amp;#34;dn&amp;#34;)&lt;br/&gt;                top := f_bump(top, p, true)&lt;br/&gt;                bot := f_bump(bot, p, false)&lt;br/&gt;&lt;br/&gt;                if live and showTime and ((bull and showLow) or (not bull and showHigh))&lt;br/&gt;                    int swingT = bull ? loT : hiT&lt;br/&gt;                    float markP = bull ? lo : hi&lt;br/&gt;                    color markC = bull ? color.new(cLow, tr) : color.new(cHigh, tr)&lt;br/&gt;                    int markWidth = bull ? lowW : highW&lt;br/&gt;                    string markSt = bull ? lowStyle : highStyle&lt;br/&gt;                    int a = math.min(swingT, edge)&lt;br/&gt;                    int b = math.max(swingT, edge)&lt;br/&gt;                    if na(pinSwing) or pinSwing != swingT or na(pinAt)&lt;br/&gt;                        pinSwing := swingT&lt;br/&gt;                        int span = math.max(b - a, 1)&lt;br/&gt;                        int stub = math.max(stepMs * 3, int(span * 0.62))&lt;br/&gt;                        int at = a &#43; stub&lt;br/&gt;                        if at &amp;gt;= b - stepMs&lt;br/&gt;                            at := math.max(a &#43; stepMs, b - stepMs * 4)&lt;br/&gt;                        pinAt := at&lt;br/&gt;                    int markAt = pinAt&lt;br/&gt;                    if markAt &amp;gt; a&lt;br/&gt;                        f_seg(a, markP, markAt, markP, markC, f_style(markSt), markWidth)&lt;br/&gt;                    f_lab(markAt, markP, &amp;#34;❖ &amp;#34; &#43; (customOn ? str.tostring(customMin) &#43; &amp;#34;m&amp;#34; : f_name(anchor)), #d5d8e0, false)&lt;br/&gt;                    int resume = markAt &#43; stepMs * 3&lt;br/&gt;                    if resume &amp;lt; b&lt;br/&gt;                        f_seg(resume, markP, b, markP, markC, f_style(markSt), markWidth)&lt;br/&gt;                    watchHi := hi&lt;br/&gt;                    watchLo := lo&lt;br/&gt;                    watchBull := bull&lt;br/&gt;                else if live&lt;br/&gt;                    watchHi := hi&lt;br/&gt;                    watchLo := lo&lt;br/&gt;                    watchBull := bull&lt;br/&gt;&lt;br/&gt;                if showTime and not na(top) and not na(bot)&lt;br/&gt;                    f_seg(edge, top, edge, bot, color.new(cTime, tr), f_style(timeStyle), timeW)&lt;br/&gt;                    f_seg(right, top, right, bot, color.new(cTime, tr), f_style(timeStyle), timeW)&lt;br/&gt;&lt;br/&gt;    if pushedLive&lt;br/&gt;        array.pop(hist)&lt;br/&gt;&lt;br/&gt;    if showPct and not na(watchHi) and watchHi &amp;gt; watchLo&lt;br/&gt;        float span = watchHi - watchLo&lt;br/&gt;        float pct = watchBull ? (watchHi - close) / span * 100.0 : (close - watchLo) / span * 100.0&lt;br/&gt;        float midPx = (watchHi &#43; watchLo) / 2.0&lt;br/&gt;        if na(sideHi) or sideHi != watchHi or sideLo != watchLo&lt;br/&gt;            sideHi := watchHi&lt;br/&gt;            sideLo := watchLo&lt;br/&gt;            oteHit := false&lt;br/&gt;        float pHigh = watchBull ? (watchHi - high) / span * 100.0 : (high - watchLo) / span * 100.0&lt;br/&gt;        float pLow = watchBull ? (watchHi - low) / span * 100.0 : (low - watchLo) / span * 100.0&lt;br/&gt;        if math.max(pHigh, pLow) &amp;gt;= 62.0 and math.min(pHigh, pLow) &amp;lt;= 79.0&lt;br/&gt;            oteHit := true&lt;br/&gt;        bool inOte = pct &amp;gt;= 62.0 and pct &amp;lt;= 79.0&lt;br/&gt;        bool rejected = oteHit and pct &amp;lt; 62.0&lt;br/&gt;        string side = math.abs(close - midPx) &amp;lt;= span * 0.002 ? &amp;#34;EQ&amp;#34; : close &amp;gt; midPx ? &amp;#34;Premium&amp;#34; : &amp;#34;Discount&amp;#34;&lt;br/&gt;        string state = inOte ? &amp;#34;In OTE&amp;#34; : rejected ? &amp;#34;Rejected&amp;#34; : side&lt;br/&gt;        color stateInk = inOte ? cOte : side == &amp;#34;Premium&amp;#34; ? cLow : side == &amp;#34;Discount&amp;#34; ? cHigh : #d5d8e0&lt;br/&gt;        color stateBg = inOte ? color.new(cOte, 82) : side == &amp;#34;Premium&amp;#34; ? color.new(cLow, 82) : side == &amp;#34;Discount&amp;#34; ? color.new(cHigh, 82) : #1c2430&lt;br/&gt;        table.cell(pctTab, 0, 0, str.tostring(pct, &amp;#34;0.00&amp;#34;) &#43; &amp;#34;%&amp;#34;, text_color=f_ink(pct / 100.0), bgcolor=pctBg, text_size=pctSize == &amp;#34;Large&amp;#34; ? size.large : pctSize == &amp;#34;Small&amp;#34; ? size.small : size.normal, text_halign=text.align_center, text_formatting=text.format_bold)&lt;br/&gt;        table.cell(pctTab, 0, 1, (customOn ? str.tostring(customMin) &#43; &amp;#34;m&amp;#34; : f_name(anchor)) &#43; &amp;#34;  ❖  OPTIMAL ENTRY&amp;#34;, text_color=titleInk, bgcolor=titleBg, text_size=size.small, text_halign=text.align_center, text_formatting=text.format_bold)&lt;br/&gt;        table.cell(pctTab, 0, 2, state, text_color=state == &amp;#34;Rejected&amp;#34; ? #d5d8e0 : stateInk, bgcolor=state == &amp;#34;Rejected&amp;#34; ? #1c2430 : stateBg, text_size=size.small, text_halign=text.align_center, text_formatting=text.format_bold)&lt;br/&gt;    else&lt;br/&gt;        table.cell(pctTab, 0, 0, &amp;#34;&amp;#34;)&lt;br/&gt;        table.cell(pctTab, 0, 1, &amp;#34;&amp;#34;)&lt;br/&gt;        table.cell(pctTab, 0, 2, &amp;#34;&amp;#34;)&lt;br/&gt;&lt;br/&gt;bool fire = false&lt;br/&gt;string msg = &amp;#34;&amp;#34;&lt;br/&gt;if alerts and not na(watchHi) and watchHi &amp;gt; watchLo&lt;br/&gt;    float otePx = f_px(0.62, watchBull, watchHi, watchLo)&lt;br/&gt;    float eqPx = f_px(0.5, watchBull, watchHi, watchLo)&lt;br/&gt;    if alertOn == &amp;#34;OTE&amp;#34; and f_touch(otePx)&lt;br/&gt;        fire := true&lt;br/&gt;        msg := &amp;#34;OTE touch&amp;#34;&lt;br/&gt;    if alertOn == &amp;#34;Low, OTE, High&amp;#34; and (f_touch(watchLo) or f_touch(otePx) or f_touch(watchHi))&lt;br/&gt;        fire := true&lt;br/&gt;        msg := &amp;#34;Low, OTE, High touch&amp;#34;&lt;br/&gt;    if alertOn == &amp;#34;All Levels&amp;#34; and (f_touch(watchLo) or f_touch(watchHi) or f_touch(eqPx) or f_touch(otePx) or f_touch(f_px(v25, watchBull, watchHi, watchLo)) or f_touch(f_px(v75, watchBull, watchHi, watchLo)) or f_touch(f_px(v79, watchBull, watchHi, watchLo)) or f_touch(f_px(v90, watchBull, watchHi, watchLo)) or f_touch(f_px(v110, watchBull, watchHi, watchLo)))&lt;br/&gt;        fire := true&lt;br/&gt;        msg := &amp;#34;Level touch&amp;#34;&lt;br/&gt;if fire&lt;br/&gt;    alert(msg, alert.freq_once_per_bar)&lt;br/&gt;&lt;br/&gt;#introductions
    </content>
    <updated>2026-10-13T23:34:25Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsz405vfdsdkz08800lzrpv8tu7t04w9cefzv9hdsw88geu4x7vu0szyr50f9xe8lmpwyuvltw3f99kwr8jhmg950avdk05hrtqwfhavs9ukp4m9rq</id>
    
      <title type="html">Sometimes The hardest decisions are made with a broken heart ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsz405vfdsdkz08800lzrpv8tu7t04w9cefzv9hdsw88geu4x7vu0szyr50f9xe8lmpwyuvltw3f99kwr8jhmg950avdk05hrtqwfhavs9ukp4m9rq" />
    <content type="html">
      Sometimes The hardest decisions are made with a broken heart&lt;br/&gt;&lt;br/&gt;#introductions
    </content>
    <updated>2026-10-05T05:12:09Z</updated>
  </entry>

</feed>