{"id":57618,"date":"2022-05-05T17:41:52","date_gmt":"2022-05-05T21:41:52","guid":{"rendered":"https:\/\/www.smbtraining.com\/blog\/?p=57618"},"modified":"2025-05-05T17:47:31","modified_gmt":"2025-05-05T21:47:31","slug":"garrett-avol-indicator","status":"publish","type":"post","link":"https:\/\/www.smbtraining.com\/blog\/garrett-avol-indicator","title":{"rendered":"Garrett&#8217;s Extended Hours % AVOL Indicator for thinkorswim"},"content":{"rendered":"<p><strong>Garrett&#8217;s Extended Hours % AVOL Indicator for thinkorswim<\/strong><\/p>\n<pre><code>\r\n### inputs ###\r\ninput AVOL_length = 21;\r\ninput subtractFirstBarVolume = yes;\r\n\r\n### daily AVOL ###\r\ndef daily_volume = volume(period = AggregationPeriod.DAY);\r\ndef AVOL = Average(daily_volume[1], AVOL_length);\r\n\r\n# AfterHours Volume\r\ndef ah = getTime() &gt; regularTradingEnd(getYYYYMMDD());\r\ndef firstAHVolume = if ah and !ah[1] then volume else firstAHVolume[1];\r\ndef ahVol = if ah and !ah[1]\r\n            then if subtractFirstBarVolume then 0 else volume\r\n            else if ah\r\n            then ahVol[1] + volume - (if !ah[1] and subtractFirstBarVolume then firstAHVolume else 0)\r\n            else ahVol[1];\r\nplot AH_volume = if ah\r\n                 then ahVol\r\n                 else Double.NaN;\r\nAH_volume.setdefaultcolor(color.cyan);\r\n\r\n# PreMarket Volume\r\ndef pm = getTime() &lt; regularTradingStart(getYYYYMMDD());\r\ndef pmVol = if pm and !pm[1]\r\n            then volume\r\n            else if pm\r\n            then pmVol[1] + volume\r\n            else pmVol[1];\r\nplot PM_volume = if pm\r\n                 then pmVol\r\n                 else double.nan;\r\nPM_volume.setdefaultcolor(color.magenta);\r\n\r\n# Total ExtendedHours Volume\r\ndef comVol = if pm then ahVol + pmVol else comVol[1];\r\nplot EH_volume = if pm then comVol else double.nan;\r\nEH_volume.setstyle(curve.short_dash);\r\nEH_volume.setdefaultcolor(color.light_gray);\r\n\r\nAddlabel(1, \"AH Volume = \" + ahVol, color.cyan);\r\nAddlabel(1, \"PM Volume = \" + pmVol, color.magenta);\r\nAddlabel(1, \"EH Volume = \" + comVol, color.light_gray);\r\nAddlabel(1, \"AH %AVOL = \" + round((ahVol\/AVOL)*100), color.cyan);\r\nAddlabel(1, \"PM %AVOL = \" + round((pmVol\/AVOL)*100), color.magenta);\r\nAddlabel(1, \"EH %AVOL = \" + round((comVol\/AVOL)*100), color.light_gray);\r\n\r\nplot percent_avol = if ah then round((ahVol\/AVOL)*100) else round((comVol\/AVOL)*100);\r\nAddlabel(1, \"%AVOL = \" + percent_avol, color.yellow);\r\n<\/code><\/pre>\n<p><!-- Provide a download link --><\/p>\n<p><a href=\"https:\/\/www.smbtraining.com\/blog\/wp-content\/uploads\/2025\/05\/extended_hours_volume.txt\" download=\"\"><br \/>\n\u2b07\ufe0f Download the full ThinkScript file<br \/>\n<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Garrett&#8217;s Extended Hours % AVOL Indicator for thinkorswim ### inputs ### input AVOL_length = 21; input subtractFirstBarVolume = yes; ### daily AVOL ### def daily_volume = volume(period = AggregationPeriod.DAY); def AVOL = Average(daily_volume[1], AVOL_length); # AfterHours Volume def ah = getTime() &gt; regularTradingEnd(getYYYYMMDD()); def firstAHVolume = if ah and !ah[1] then volume else firstAHVolume[1]; def ahVol = if ah and &#8230; <a href=\"https:\/\/www.smbtraining.com\/blog\/garrett-avol-indicator\" class=\"more-link\">Read More<\/a><\/p>\n","protected":false},"author":290,"featured_media":57619,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-57618","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-general-comments-2"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.1.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Garrett&#039;s Extended Hours % AVOL Indicator for thinkorswim | SMB Training<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.smbtraining.com\/blog\/garrett-avol-indicator\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Garrett&#039;s Extended Hours % AVOL Indicator for thinkorswim | SMB Training\" \/>\n<meta property=\"og:description\" content=\"Garrett&#8217;s Extended Hours % AVOL Indicator for thinkorswim ### inputs ### input AVOL_length = 21; input subtractFirstBarVolume = yes; ### daily AVOL ### def daily_volume = volume(period = AggregationPeriod.DAY); def AVOL = Average(daily_volume[1], AVOL_length); # AfterHours Volume def ah = getTime() &gt; regularTradingEnd(getYYYYMMDD()); def firstAHVolume = if ah and !ah[1] then volume else firstAHVolume[1]; def ahVol = if ah and ... Read More\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.smbtraining.com\/blog\/garrett-avol-indicator\" \/>\n<meta property=\"og:site_name\" content=\"SMB Training Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/smbcap\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-05-05T21:41:52+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-05-05T21:47:31+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.smbtraining.com\/blog\/wp-content\/uploads\/2025\/05\/biggest-move-stocks.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"smbcapital\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@smbcapital\" \/>\n<meta name=\"twitter:site\" content=\"@smbcapital\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"smbcapital\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.smbtraining.com\/blog\/garrett-avol-indicator#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.smbtraining.com\/blog\/garrett-avol-indicator\"},\"author\":{\"name\":\"smbcapital\",\"@id\":\"https:\/\/www.smbtraining.com\/blog\/#\/schema\/person\/57cc9affbbb6763e0012594ad884b25a\"},\"headline\":\"Garrett&#8217;s Extended Hours % AVOL Indicator for thinkorswim\",\"datePublished\":\"2022-05-05T21:41:52+00:00\",\"dateModified\":\"2025-05-05T21:47:31+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.smbtraining.com\/blog\/garrett-avol-indicator\"},\"wordCount\":21,\"publisher\":{\"@id\":\"https:\/\/www.smbtraining.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.smbtraining.com\/blog\/garrett-avol-indicator#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.smbtraining.com\/blog\/wp-content\/uploads\/2025\/05\/biggest-move-stocks.jpg\",\"articleSection\":[\"General Comments\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.smbtraining.com\/blog\/garrett-avol-indicator\",\"url\":\"https:\/\/www.smbtraining.com\/blog\/garrett-avol-indicator\",\"name\":\"Garrett's Extended Hours % AVOL Indicator for thinkorswim | SMB Training\",\"isPartOf\":{\"@id\":\"https:\/\/www.smbtraining.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.smbtraining.com\/blog\/garrett-avol-indicator#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.smbtraining.com\/blog\/garrett-avol-indicator#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.smbtraining.com\/blog\/wp-content\/uploads\/2025\/05\/biggest-move-stocks.jpg\",\"datePublished\":\"2022-05-05T21:41:52+00:00\",\"dateModified\":\"2025-05-05T21:47:31+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.smbtraining.com\/blog\/garrett-avol-indicator#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.smbtraining.com\/blog\/garrett-avol-indicator\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.smbtraining.com\/blog\/garrett-avol-indicator#primaryimage\",\"url\":\"https:\/\/www.smbtraining.com\/blog\/wp-content\/uploads\/2025\/05\/biggest-move-stocks.jpg\",\"contentUrl\":\"https:\/\/www.smbtraining.com\/blog\/wp-content\/uploads\/2025\/05\/biggest-move-stocks.jpg\",\"width\":1920,\"height\":1080},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.smbtraining.com\/blog\/garrett-avol-indicator#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.smbtraining.com\/blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Garrett&#8217;s Extended Hours % AVOL Indicator for thinkorswim\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.smbtraining.com\/blog\/#website\",\"url\":\"https:\/\/www.smbtraining.com\/blog\/\",\"name\":\"SMB Training Blog\",\"description\":\"Lessons from the trading desk\",\"publisher\":{\"@id\":\"https:\/\/www.smbtraining.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.smbtraining.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.smbtraining.com\/blog\/#organization\",\"name\":\"SMB Training\",\"url\":\"https:\/\/www.smbtraining.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.smbtraining.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.smbtraining.com\/blog\/wp-content\/uploads\/2022\/07\/Logo-e1658419502954.png\",\"contentUrl\":\"https:\/\/www.smbtraining.com\/blog\/wp-content\/uploads\/2022\/07\/Logo-e1658419502954.png\",\"width\":230,\"height\":81,\"caption\":\"SMB Training\"},\"image\":{\"@id\":\"https:\/\/www.smbtraining.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/smbcap\/\",\"https:\/\/x.com\/smbcapital\",\"https:\/\/www.youtube.com\/user\/smbcapital\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.smbtraining.com\/blog\/#\/schema\/person\/57cc9affbbb6763e0012594ad884b25a\",\"name\":\"smbcapital\",\"url\":\"https:\/\/www.smbtraining.com\/blog\/author\/smbcapital\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Garrett's Extended Hours % AVOL Indicator for thinkorswim | SMB Training","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.smbtraining.com\/blog\/garrett-avol-indicator","og_locale":"en_US","og_type":"article","og_title":"Garrett's Extended Hours % AVOL Indicator for thinkorswim | SMB Training","og_description":"Garrett&#8217;s Extended Hours % AVOL Indicator for thinkorswim ### inputs ### input AVOL_length = 21; input subtractFirstBarVolume = yes; ### daily AVOL ### def daily_volume = volume(period = AggregationPeriod.DAY); def AVOL = Average(daily_volume[1], AVOL_length); # AfterHours Volume def ah = getTime() &gt; regularTradingEnd(getYYYYMMDD()); def firstAHVolume = if ah and !ah[1] then volume else firstAHVolume[1]; def ahVol = if ah and ... Read More","og_url":"https:\/\/www.smbtraining.com\/blog\/garrett-avol-indicator","og_site_name":"SMB Training Blog","article_publisher":"https:\/\/www.facebook.com\/smbcap\/","article_published_time":"2022-05-05T21:41:52+00:00","article_modified_time":"2025-05-05T21:47:31+00:00","og_image":[{"width":1920,"height":1080,"url":"https:\/\/www.smbtraining.com\/blog\/wp-content\/uploads\/2025\/05\/biggest-move-stocks.jpg","type":"image\/jpeg"}],"author":"smbcapital","twitter_card":"summary_large_image","twitter_creator":"@smbcapital","twitter_site":"@smbcapital","twitter_misc":{"Written by":"smbcapital","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.smbtraining.com\/blog\/garrett-avol-indicator#article","isPartOf":{"@id":"https:\/\/www.smbtraining.com\/blog\/garrett-avol-indicator"},"author":{"name":"smbcapital","@id":"https:\/\/www.smbtraining.com\/blog\/#\/schema\/person\/57cc9affbbb6763e0012594ad884b25a"},"headline":"Garrett&#8217;s Extended Hours % AVOL Indicator for thinkorswim","datePublished":"2022-05-05T21:41:52+00:00","dateModified":"2025-05-05T21:47:31+00:00","mainEntityOfPage":{"@id":"https:\/\/www.smbtraining.com\/blog\/garrett-avol-indicator"},"wordCount":21,"publisher":{"@id":"https:\/\/www.smbtraining.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.smbtraining.com\/blog\/garrett-avol-indicator#primaryimage"},"thumbnailUrl":"https:\/\/www.smbtraining.com\/blog\/wp-content\/uploads\/2025\/05\/biggest-move-stocks.jpg","articleSection":["General Comments"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.smbtraining.com\/blog\/garrett-avol-indicator","url":"https:\/\/www.smbtraining.com\/blog\/garrett-avol-indicator","name":"Garrett's Extended Hours % AVOL Indicator for thinkorswim | SMB Training","isPartOf":{"@id":"https:\/\/www.smbtraining.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.smbtraining.com\/blog\/garrett-avol-indicator#primaryimage"},"image":{"@id":"https:\/\/www.smbtraining.com\/blog\/garrett-avol-indicator#primaryimage"},"thumbnailUrl":"https:\/\/www.smbtraining.com\/blog\/wp-content\/uploads\/2025\/05\/biggest-move-stocks.jpg","datePublished":"2022-05-05T21:41:52+00:00","dateModified":"2025-05-05T21:47:31+00:00","breadcrumb":{"@id":"https:\/\/www.smbtraining.com\/blog\/garrett-avol-indicator#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.smbtraining.com\/blog\/garrett-avol-indicator"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.smbtraining.com\/blog\/garrett-avol-indicator#primaryimage","url":"https:\/\/www.smbtraining.com\/blog\/wp-content\/uploads\/2025\/05\/biggest-move-stocks.jpg","contentUrl":"https:\/\/www.smbtraining.com\/blog\/wp-content\/uploads\/2025\/05\/biggest-move-stocks.jpg","width":1920,"height":1080},{"@type":"BreadcrumbList","@id":"https:\/\/www.smbtraining.com\/blog\/garrett-avol-indicator#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.smbtraining.com\/blog"},{"@type":"ListItem","position":2,"name":"Garrett&#8217;s Extended Hours % AVOL Indicator for thinkorswim"}]},{"@type":"WebSite","@id":"https:\/\/www.smbtraining.com\/blog\/#website","url":"https:\/\/www.smbtraining.com\/blog\/","name":"SMB Training Blog","description":"Lessons from the trading desk","publisher":{"@id":"https:\/\/www.smbtraining.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.smbtraining.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.smbtraining.com\/blog\/#organization","name":"SMB Training","url":"https:\/\/www.smbtraining.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.smbtraining.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.smbtraining.com\/blog\/wp-content\/uploads\/2022\/07\/Logo-e1658419502954.png","contentUrl":"https:\/\/www.smbtraining.com\/blog\/wp-content\/uploads\/2022\/07\/Logo-e1658419502954.png","width":230,"height":81,"caption":"SMB Training"},"image":{"@id":"https:\/\/www.smbtraining.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/smbcap\/","https:\/\/x.com\/smbcapital","https:\/\/www.youtube.com\/user\/smbcapital"]},{"@type":"Person","@id":"https:\/\/www.smbtraining.com\/blog\/#\/schema\/person\/57cc9affbbb6763e0012594ad884b25a","name":"smbcapital","url":"https:\/\/www.smbtraining.com\/blog\/author\/smbcapital"}]}},"_links":{"self":[{"href":"https:\/\/www.smbtraining.com\/blog\/wp-json\/wp\/v2\/posts\/57618","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.smbtraining.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.smbtraining.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.smbtraining.com\/blog\/wp-json\/wp\/v2\/users\/290"}],"replies":[{"embeddable":true,"href":"https:\/\/www.smbtraining.com\/blog\/wp-json\/wp\/v2\/comments?post=57618"}],"version-history":[{"count":5,"href":"https:\/\/www.smbtraining.com\/blog\/wp-json\/wp\/v2\/posts\/57618\/revisions"}],"predecessor-version":[{"id":57625,"href":"https:\/\/www.smbtraining.com\/blog\/wp-json\/wp\/v2\/posts\/57618\/revisions\/57625"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.smbtraining.com\/blog\/wp-json\/wp\/v2\/media\/57619"}],"wp:attachment":[{"href":"https:\/\/www.smbtraining.com\/blog\/wp-json\/wp\/v2\/media?parent=57618"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.smbtraining.com\/blog\/wp-json\/wp\/v2\/categories?post=57618"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.smbtraining.com\/blog\/wp-json\/wp\/v2\/tags?post=57618"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}