{"id":2896,"date":"2026-10-02T08:57:55","date_gmt":"2026-10-02T13:57:55","guid":{"rendered":"https:\/\/trendspider.com\/trading-tools-store\/?post_type=indicator&#038;p=2896"},"modified":"2026-10-02T11:32:24","modified_gmt":"2026-10-02T16:32:24","slug":"6abf85-griffin-likelihood-engine-lite","status":"publish","type":"indicator","link":"https:\/\/trendspider.com\/trading-tools-store\/indicators\/6abf85-griffin-likelihood-engine-lite\/","title":{"rendered":"Griffin Likelihood Engine LITE"},"content":{"rendered":"<p>Griffin Likelihood Engine &#8211; GLE\u2011Lite with Behaviour Matrix (with \u2191 \/ \u2193 Entry\u2013Exit Logic)<\/p>\n<p>XAUUSD Daily \u2014 Lite Edition &#8211; #TSBuild26<\/p>\n<p>Simply entering two data fields into the indicator, you will receive a &quot;LIKELIHOOD SCORE&quot; of that future event happening.<\/p>\n<p>*<br \/>\n  Enter the amount of &quot;bars\/candles&quot; in the future &#8211; and the price where the intersections meet.<br \/>\n  See the screenshot to see how using TrendSpider trend lines, and your own lines can create &quot;future intersections&quot;<br \/>\n*<br \/>\n  The Engine evaluates everything in the TrendSpider system, such as Trend Integrity, Liquidity Gravity, Order-Flow Pressure, Volatility Regime, Structural Alignment, to evaluate your intersection and give you a score, which changes in real time.<br \/>\n*<br \/>\n  Guidance is given below of Entry &amp; Exit points to provide conviction in your trade.<br \/>\n*<br \/>\n* \ud83d\udfe9 GREEN \u2014 Bullish Continuation Bias<br \/>\n  Meaning:<br \/>\n  Trend structure, momentum, and volatility regime are aligned in a bullish continuation posture.<\/p>\n<p>Behaviour Summary<br \/>\nHold longs<\/p>\n<p>Add on pullbacks<\/p>\n<p>Avoid shorts<\/p>\n<p>Watch for slope weakening (early transition)<\/p>\n<p>\ud83d\udfe7 ORANGE \u2014 Transitional \/ Mixed Bias<br \/>\nMeaning:<br \/>\nMomentum and structure are diverging; market is shifting.<\/p>\n<p>Entry Conditions (Lite Edition)<br \/>\nNo new directional entries<br \/>\nOrange is a wait zone, not a trade zone.<\/p>\n<p>Exit Conditions<br \/>\n\u2193 Exit Long if Green \u2192 Orange<br \/>\nTrend weakening.<\/p>\n<p>\u2191 Exit Short if Red \u2192 Orange<br \/>\nBearish pressure fading.<\/p>\n<p>Behaviour Summary<br \/>\nReduce size<\/p>\n<p>Avoid new trades<\/p>\n<p>Wait for resolution (Green or Red)<\/p>\n<p>Treat arrows as caution signals, not entries<\/p>\n<p>\ud83d\udfe5 RED \u2014 Bearish Continuation Bias<br \/>\nMeaning:<br \/>\nTrend structure, momentum, and volatility regime are aligned in a bearish continuation posture.<\/p>\n<p>Directional Arrows<br \/>\n\u2193 Down Arrow (Continuation)<br \/>\nSellers are in control; trend pressure is downward.<\/p>\n<p>\u2191 Up Arrow (Corrective Rally)<br \/>\nRallies are typically temporary and often create re\u2011entry opportunities.<\/p>\n<p>Entry Conditions (Lite Edition)<br \/>\n\u2193 Enter Short on Down Arrow<br \/>\nWhen the score is falling and the colour stays Red.<\/p>\n<p>\u2191 Enter Short on Up Arrow (only if Red remains)<br \/>\nWhen price rallies but the bias stays Red \u2014 classic bearish continuation setup.<\/p>\n<p>Exit Conditions<br \/>\n\u2191 Exit Short if Red \u2192 Orange<br \/>\nMomentum weakening; trend integrity deteriorating.<\/p>\n<p>\u2191\u2191 Exit Short if Red \u2192 Green<br \/>\nFull bullish transition; continuation no longer valid.<\/p>\n<p>Behaviour Summary<br \/>\nHold shorts<\/p>\n<p>Add on rallies<\/p>\n<p>Avoid longs<\/p>\n<p>Watch for slope strengthening (early transition)<\/p>\n<p>| \ud83d\udfe9 Green  | Bullish continuation | Corrective pullback \/ early strength | Trend continuation | Long \u2191 or \u2193 (if Green holds) | Exit long on Green\u2192Orange or Green\u2192Red                |<br \/>\n| &#8212;&#8212;&#8212; | &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; | &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; | &#8212;&#8212;&#8212;&#8212;&#8212;&#8212; | &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- | &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; |<br \/>\n| \ud83d\udfe7 Orange | Transitional         | Early reversal pressure              | Weak continuation  | No entries                   | Exit longs on Green\u2192Orange; exit shorts on Red\u2192Orange |<br \/>\n| \ud83d\udfe5 Red    | Bearish continuation | Corrective rally \/ early strength    | Trend continuation | Short \u2193 or \u2191 (if Red holds)  | Exit short on Red\u2192Orange or Red\u2192Green                 |<\/p>\n<p>**GET STARTED :**<\/p>\n<p>1 &#8211; Draw additional trend lines as per the orange lines on the chart.<\/p>\n<p>2 &#8211; Find and note future intersections, where the lines cross &#8211; (the more lines that cross in one point &quot;lends more weight for the engine&quot;)<\/p>\n<p>3 &#8211; Note the live price and timeframe (time = Bars\/candles in the future)<\/p>\n<p>4 &#8211; GLE shows a &quot;Likelihood Score on the indicator, 0-100, in colour GREEN ORANGE RED, (Green 99% is highly likely &#8211; Red 1.0% is very unlikely) in real time it will change with price, giving you trend likelihood based on the factors above. NFA<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Griffin Likelihood Engine &#8211; GLE\u2011Lite with Behaviour Matrix (with \u2191 \/ \u2193 Entry\u2013Exit Logic) XAUUSD Daily \u2014 Lite Edition &#8211; #TSBuild26 Simply entering two data fields into the indicator, you&#8230;<\/p>\n","protected":false},"author":153,"featured_media":2900,"template":"","listing_tag":[],"listing_category":[139],"listing_collection":[199],"class_list":["post-2896","indicator","type-indicator","status-publish","has-post-thumbnail","hentry","listing_category-experimental","listing_collection-hackathon26"],"acf":{"bundles_ids":"","uuid":"6abf85fe552012000a60b593","screenshot_url":"https:\/\/d2nbxczldlxikh.cloudfront.net\/61311qtdtth.png","accept_html":false,"yt_video_url":"","sales_enrolled":"none","stripe_price_id":"","is_paid":false,"buy_url":"","price":{"value":"","period":"","trial_period":0},"source_code":"\/\/ === Indicator Name ===\r\ndescribe_indicator(\"Griffin Likelihood Engine LITE\", \"lower\");\r\n\r\n\/\/ === User Inputs ===\r\nconst barIntersection = input.number(\"Bars Ahead\", 23, { min: 1, max: 100 });\r\nconst targetPrice    = input.number(\"Target Price\", 50000, { min: 0, max: 1000000 });\r\n\r\n\/\/ ------------------------------------------------------------\r\n\/\/   GLE-Lite (XAUUSD Daily Edition)\r\n\/\/   This Lite version only works on:\r\n\/\/   \u2022 Symbol: EXTENDED:XAUUSD\r\n\/\/   \u2022 Timeframe: 1 Day\r\n\/\/\r\n\/\/   Upgrade to GLE v5.2 PRO for:\r\n\/\/   \u2022 All symbols (indices, FX, crypto, metals, equities)\r\n\/\/   \u2022 All timeframes (1m \u2192 1W)\r\n\/\/   \u2022 Probability momentum engine\r\n\/\/   \u2022 Liquidity gravity modelling\r\n\/\/   \u2022 Volatility regime analysis\r\n\/\/   \u2022 Trend-integrity scoring\r\n\/\/   \u2022 Full bias-slope-score matrix\r\n\/\/   \u2022 Conviction engine\r\n\/\/   \u2022 Reversal pressure detection\r\n\/\/   \u2022 Continuation strength modelling\r\n\/\/ ------------------------------------------------------------\r\n\r\n\/\/ === Guard: this LITE version only runs on EXTENDED:XAUUSD, Daily timeframe ===\r\nconst myIsSymbolValid = current.symbol === \"EXTENDED:XAUUSD\" || current.ticker === \"EXTENDED:XAUUSD\";\r\nconst myIsTimeframeValid = current.resolution === \"D\";\r\nconst myIsGuardValid = myIsSymbolValid && myIsTimeframeValid;\r\n\r\n\/\/ === Target Series ===\r\nconst targetSeries = horizontal_line(targetPrice);\r\n\r\n\/\/ === INVALID INPUT CHECK (\u00b1300% from current price) ===\r\nconst invalidScore = for_every(close, targetSeries, (c, t) => {\r\n  const diff = Math.abs(t - c) \/ c;\r\n  return diff > 3.00 ? 1 : 0;\r\n});\r\n\r\n\/\/ === Base Price Indicators ===\r\nconst rocSeries = roc(close, barIntersection);\r\nconst momSeries = momentum(close, barIntersection);\r\nconst volSeries = cmo(close, barIntersection);\r\n\r\n\/\/ === Volatility Regime ===\r\nconst atrSeries = atr(14);\r\nconst atrSlow   = sma(atrSeries, 50);\r\nconst atrRatio  = div(atrSeries, atrSlow);\r\n\r\nconst bbMid   = sma(close, 20);\r\nconst bbStd   = stdev(close, 20);\r\nconst bbUpper = add(bbMid, mult(bbStd, horizontal_line(2)));\r\nconst bbLower = sub(bbMid, mult(bbStd, horizontal_line(2)));\r\nconst bbWidth = div(sub(bbUpper, bbLower), bbMid);\r\n\r\nconst volRegimeScore = for_every(atrRatio, bbWidth, (ar, bw) => {\r\n  if (ar < 0.8 && bw < 0.02) return 0.5;\r\n  if (ar < 1.2 && bw < 0.04) return 1.0;\r\n  return 1.6;\r\n});\r\n\r\n\/\/ === Trend Structure ===\r\nconst emaFast = ema(close, 8);\r\nconst emaMid  = ema(close, 21);\r\nconst emaSlow = ema(close, 50);\r\n\r\nconst emaStackScore = for_every(emaFast, emaMid, emaSlow, (f, m, s) => {\r\n  if (f > m && m > s) return 1.5;\r\n  if (f < m && m < s) return 0.6;\r\n  return 1.0;\r\n});\r\n\r\nconst trendSlope = sub(emaFast, emaSlow);\r\nconst trendSlopeScore = for_every(trendSlope, (slope) => {\r\n  if (slope > 0) return 1.3;\r\n  if (slope < 0) return 0.7;\r\n  return 1.0;\r\n});\r\n\r\nconst prevHigh = shift(high, 1);\r\nconst prevLow  = shift(low, 1);\r\nconst hhHlScore = for_every(high, low, prevHigh, prevLow, (h, l, ph, pl) => {\r\n  const hh = h > ph;\r\n  const hl = l > pl;\r\n  const lh = h < ph;\r\n  const ll = l < pl;\r\n  if (hh && hl) return 1.4;\r\n  if (ll && lh) return 0.6;\r\n  return 1.0;\r\n});\r\n\r\nconst trendStructScore = mult(mult(emaStackScore, trendSlopeScore), hhHlScore);\r\n\r\n\/\/ === Liquidity & Order Flow ===\r\nconst volAvg = sma(volume, 20);\r\nconst relVol = div(volume, volAvg);\r\n\r\nconst barRange   = sub(high, low);\r\nconst rangeAvg   = sma(barRange, 20);\r\nconst rangeRatio = div(barRange, rangeAvg);\r\n\r\nconst liquidityCompressionScore = for_every(rangeRatio, relVol, (rr, rv) => {\r\n  if (rr < 0.7 && rv > 1.3) return 1.6;\r\n  if (rr > 1.3 && rv < 0.8) return 0.6;\r\n  return 1.0;\r\n});\r\n\r\nconst volDelta = for_every(close, open, volume, (c, o, v) => {\r\n  return c > o ? v : (c < o ? -v : 0);\r\n});\r\n\r\nconst ofEma   = ema(volDelta, 10);\r\nconst ofScore = for_every(ofEma, (d) => {\r\n  if (d > 0) return 1.5;\r\n  if (d < 0) return 0.6;\r\n  return 1.0;\r\n});\r\n\r\n\/\/ === Liquidity Gravity vs Target ===\r\nconst distSeries   = sub(targetSeries, close);\r\nconst absDist      = for_every(distSeries, (d) => Math.abs(d));\r\nconst distFactor   = div(absDist, close);\r\n\r\nconst liquidityGravityScore = for_every(distFactor, relVol, (df, rv) => {\r\n  if (df < 0.01 && rv > 1.2) return 0.5;\r\n  if (df > 0.03 && rv < 0.8) return 1.5;\r\n  return 1.0;\r\n});\r\n\r\n\/\/ === Target Price Difficulty (original aggressive) ===\r\nconst timeFactor = horizontal_line(barIntersection \/ 100);\r\nconst difficultyLinear = for_every(distFactor, timeFactor, (df, tf) => {\r\n  return df * 0.5 + tf * 0.5;\r\n});\r\nconst difficultySquared = for_every(difficultyLinear, (d) => d * d);\r\n\r\n\/\/ === Volatility Adjustment ===\r\nconst volAdj = for_every(atrSeries, close, (atrVal, c) => {\r\n  if (atrVal <= 0 || c <= 0) return 1.0;\r\n  const ratio = atrVal \/ c;\r\n  if (ratio < 0.01) return 0.9;\r\n  if (ratio > 0.05) return 1.1;\r\n  return 1.0;\r\n});\r\n\r\n\/\/ === Interaction Terms ===\r\nconst i1 = mult(rocSeries, momSeries);\r\nconst i2 = mult(rocSeries, volSeries);\r\nconst i3 = mult(momSeries, volSeries);\r\nconst temp = mult(momSeries, volSeries);\r\nconst i4   = mult(rocSeries, temp);\r\n\r\nconst volLiquTrendScore = mult(\r\n  mult(volRegimeScore, liquidityCompressionScore),\r\n  trendStructScore\r\n);\r\n\r\nconst ofTrendScore = mult(ofScore, trendSlopeScore);\r\n\r\n\/\/ === VWAP Directional Bias ===\r\nconst vwapSeries = vwap();\r\nconst vwapDist = sub(close, vwapSeries);\r\nconst vwapBias = for_every(vwapDist, (d) => {\r\n  if (d > 0) return 1.35;\r\n  if (d < 0) return 0.65;\r\n  return 1.0;\r\n});\r\n\r\n\/\/ === Historical Intersection Confidence (HIC) ===\r\nconst pastHigh = shift(high, barIntersection);\r\nconst pastLow  = shift(low, barIntersection);\r\nconst pastHit = for_every(pastHigh, pastLow, targetSeries, (ph, pl, t) => {\r\n  return (t <= ph && t >= pl) ? 1 : 0;\r\n});\r\nconst histConfidence = for_every(pastHit, (h) => {\r\n  return h === 1 ? 1.35 : 1.0;\r\n});\r\n\r\n\/\/ === Directional Bias Engine (aggressive + VWAP + HIC) ===\r\nconst dirTrendBias = for_every(trendSlope, (s) => {\r\n  if (s > 0) return 1.45;\r\n  if (s < 0) return 0.55;\r\n  return 1.0;\r\n});\r\n\r\nconst dirFlowBias = for_every(ofEma, (d) => {\r\n  if (d > 0) return 1.35;\r\n  if (d < 0) return 0.65;\r\n  return 1.0;\r\n});\r\n\r\nconst dirVolBias = for_every(atrRatio, (ar) => {\r\n  if (ar > 1.2) return 1.30;\r\n  if (ar < 0.8) return 0.70;\r\n  return 1.0;\r\n});\r\n\r\nconst dirTargetBias = for_every(targetSeries, close, (t, c) => {\r\n  if (t > c) return 1.40;\r\n  if (t < c) return 0.60;\r\n  return 1.0;\r\n});\r\n\r\n\/\/ === Combine All Biases ===\r\nconst directionalBias = mult(\r\n  mult(dirTrendBias, dirFlowBias),\r\n  mult(mult(dirVolBias, dirTargetBias), mult(vwapBias, histConfidence))\r\n);\r\n\r\n\/\/ === Raw Score (original aggressive model) ===\r\nconst rawScore = for_every(\r\n  rocSeries,\r\n  momSeries,\r\n  volSeries,\r\n  i1,\r\n  i2,\r\n  i3,\r\n  i4,\r\n  difficultySquared,\r\n  trendStructScore,\r\n  volRegimeScore,\r\n  liquidityGravityScore,\r\n  volLiquTrendScore,\r\n  ofTrendScore,\r\n  volAdj,\r\n  directionalBias,\r\n  (r, m, v, a, b, c, d, diff, ts, vr, lg, vlt, oft, va, db) => {\r\n    const priceBlock =\r\n      r  * 0.08 +\r\n      m  * 0.08 +\r\n      v  * 0.06 +\r\n      a  * 0.05 +\r\n      b  * 0.05 +\r\n      c  * 0.03 +\r\n      d  * 0.03;\r\n\r\n    const regimeBlock =\r\n      ts  * 0.30 +\r\n      vr  * 0.25 +\r\n      lg  * -0.18 +\r\n      vlt * 0.30 +\r\n      oft * 0.25;\r\n\r\n    const adjusted = (priceBlock + regimeBlock) * va * db - diff * 0.10;\r\n    if (adjusted > 200) return 200;\r\n    if (adjusted < -200) return -200;\r\n    return adjusted;\r\n  }\r\n);\r\n\r\n\/\/ === Sigmoid Probability Scaling (original steep) ===\r\nconst sigmoidScore = for_every(rawScore, (x) => {\r\n  const s = 1 \/ (1 + Math.exp(-x \/ 4.5));\r\n  return Math.max(0, Math.min(s * 100, 100));\r\n});\r\n\r\n\/\/ === Color Zones ===\r\nconst scoreColorComputed = for_every(sigmoidScore, (v) => {\r\n  if (v >= 80) return \"#12d962\";\r\n  if (v >= 60) return \"#f5a623\";\r\n  if (v >= 40) return \"#eea151\";\r\n  return \"#ee5451\";\r\n});\r\n\r\n\/\/ === FINAL SCORE (numeric only, safe for painting) ===\r\nconst finalScoreComputed = for_every(sigmoidScore, invalidScore, (s, inv) => {\r\n  if (inv === 1) return NaN;\r\n  return Math.round(s * 100) \/ 100;\r\n});\r\n\r\n\/\/ === Apply guard: if symbol\/timeframe is wrong, blank out the output instead of running the engine's result ===\r\nconst finalScore = myIsGuardValid ? finalScoreComputed : series_of(null);\r\nconst scoreColor = myIsGuardValid ? scoreColorComputed : series_of(\"#ee5451\");\r\n\r\n\/\/ === Paint Likelihood Score ===\r\npaint(finalScore, {\r\n  name: \"Likelihood Score\",\r\n  color: scoreColor,\r\n  thickness: 4\r\n});\r\n\r\n\/\/ === Warning overlay when the guard is not satisfied ===\r\npaint_overlay(\"GLELiteGuardWarning\", { position: \"top_right\" }, {\r\n  rows: myIsGuardValid ? [] : [{\r\n    cells: [{\r\n      text: \"LITE version is only for GOLD (EXTENDED:XAUUSD) - Daily chart - Please Buy Griffin Likelihood Engine v5.2 - for all instruments and timeframes.\",\r\n      color: \"#ee5451\"\r\n    }]\r\n  }]\r\n});","page_views":77,"installations":0},"thumbnail":"<img width=\"600\" height=\"315\" src=\"https:\/\/trendspider.com\/trading-tools-store\/wp-content\/uploads\/2026\/10\/unnamed-768x336.png\" class=\"card-asset__cover-img\" alt=\"Screenshot of Griffin Likelihood Engine LITE indicator\" decoding=\"async\" loading=\"lazy\" srcset=\"https:\/\/trendspider.com\/trading-tools-store\/wp-content\/uploads\/2026\/10\/unnamed-768x336.png 768w, https:\/\/trendspider.com\/trading-tools-store\/wp-content\/uploads\/2026\/10\/unnamed-300x131.png 300w, https:\/\/trendspider.com\/trading-tools-store\/wp-content\/uploads\/2026\/10\/unnamed-1024x448.png 1024w, https:\/\/trendspider.com\/trading-tools-store\/wp-content\/uploads\/2026\/10\/unnamed-1536x671.png 1536w, https:\/\/trendspider.com\/trading-tools-store\/wp-content\/uploads\/2026\/10\/unnamed.png 1590w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/>","vendor":"Nathan Griffin","_links":{"self":[{"href":"https:\/\/trendspider.com\/trading-tools-store\/wp-json\/wp\/v2\/indicator\/2896","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/trendspider.com\/trading-tools-store\/wp-json\/wp\/v2\/indicator"}],"about":[{"href":"https:\/\/trendspider.com\/trading-tools-store\/wp-json\/wp\/v2\/types\/indicator"}],"author":[{"embeddable":true,"href":"https:\/\/trendspider.com\/trading-tools-store\/wp-json\/wp\/v2\/users\/153"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/trendspider.com\/trading-tools-store\/wp-json\/wp\/v2\/media\/2900"}],"wp:attachment":[{"href":"https:\/\/trendspider.com\/trading-tools-store\/wp-json\/wp\/v2\/media?parent=2896"}],"wp:term":[{"taxonomy":"listing_tag","embeddable":true,"href":"https:\/\/trendspider.com\/trading-tools-store\/wp-json\/wp\/v2\/listing_tag?post=2896"},{"taxonomy":"listing_category","embeddable":true,"href":"https:\/\/trendspider.com\/trading-tools-store\/wp-json\/wp\/v2\/listing_category?post=2896"},{"taxonomy":"listing_collection","embeddable":true,"href":"https:\/\/trendspider.com\/trading-tools-store\/wp-json\/wp\/v2\/listing_collection?post=2896"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}