LogoLogo
Return to StockChartsCharts & ToolsArticlesChartSchoolYour Dashboard
  • Support Center
  • Finding Your Way Around
    • Intro to StockCharts
    • Navigating the Website
    • Logging In for the First Time
    • Members Dashboard
  • data and ticker symbols
    • Data Availability
      • Markets We Cover
      • Real-Time Data
        • BATS Real-Time Data
      • Extended Hours Data
      • Data Bar Periods
      • Price Data Adjustments
      • Historical Data
        • How Do I Download Data to Excel?
        • StockCharts Historical Sector Data
    • Ticker Symbols
      • Ticker Symbol Conventions
      • How to Find a Ticker Symbol
      • Using the Index Catalog
      • Ratio and Difference Symbols
      • Pseudo-Symbols
      • User-Defined Indexes
  • Charts & Tools
    • SharpCharts
      • SharpCharts Workbench
        • Creating and Viewing SharpCharts
        • Printing and Sharing SharpCharts
        • Editing SharpCharts
          • Using the SharpCharts Interactive Date Slider
          • Charting Market Breadth Indicators
          • SharpCharts Parameter Reference
        • Saving SharpCharts
        • Additional SharpCharts Workbench Tools
          • Viewing ChartLists on the SharpCharts Workbench
          • Viewing Alerts on the SharpCharts Workbench
          • Viewing Options Data on the SharpCharts Workbench
      • ChartStyles & StyleButtons
        • Working with ChartStyles and StyleButtons
        • Using the ChartStyle Library
        • Tool-Specific ChartStyles
      • ChartNotes
        • Annotating SharpCharts with ChartNotes
        • ChartNotes Annotation Tool Reference
          • Line Tools
          • Text Annotation Tools
          • Shape Tools
          • Line Study Tools
      • ChartLists
        • Summary View
        • ChartList View
        • ChartBook View
        • Performance View
        • Correlation View
        • Edit View
        • ChartList Reports
        • ChartPacks
      • Classic SharpCharts Workbench
      • StockCharts Mobile App
    • StockChartsACP
      • Creating ACP Charts
      • Multi-Chart Layouts in StockChartsACP
      • Viewing ACP Charts
      • Printing and Sharing ACP Charts
      • Editing ACP Charts
      • Applying Chart Templates to ACP Charts
      • Annotating ACP Charts
        • StockChartsACP Line Tools
        • StockChartsACP Text Annotation Tools
        • StockChartACP Shape Tools
        • StockChartsACP Line Study Tools
      • Working with Saved ACP Charts
      • StockChartsACP Plug-Ins
        • Chaikin Power Gauge Plug-In
        • GoNoGo Charts Plug-In
        • Larry Williams Stock Trading Starter Pack Plug-In
        • MarketGauge Plug-Ins
        • Simpler Trading Moxie Indicator Plug-In
        • Trading Simplified by Dave Landry
        • Trend Investor Pro Indicator Edge
    • Other Charting Tools
      • P&F Charts
      • GalleryView
      • Seasonality Charts
      • CandleGlance Charts
      • MarketCarpets
      • Interactive PerfCharts
      • RRG Charts
      • Dynamic Yield Curve
    • Research Tools
      • Symbol Summary
      • Options Summary
        • OptionsPlay Explorer
      • OptionsPlay Strategy Center
      • Market Summary
      • Sector Summary
      • Industry Summary
      • Index Members
      • StockCharts Technical Rank (SCTR) Reports
      • Earnings Calendar
      • Cryptocurrency Summary
    • Reports and Galleries
      • The Ticker Cloud
      • Historical Chart Gallery
      • Predefined Scan Results
        • Customizing Predefined Scans
      • Predefined Technical Alerts
      • DecisionPoint Chart Gallery
      • Public ChartLists
        • Becoming a Public ChartList Author
      • SharpCharts Voyeur
  • Scanning & Alerts
    • Technical Scans
      • Scanning for Stocks: The Basics
      • Advanced Scan Workbench
      • Standard Scan Workbench
      • Working With Scan Results
    • Scan Writing Resource Center
      • Planning Scans
      • Writing Scans
      • Scanning Tutorials
        • Scan Workbench Tutorial
        • Scan Results Tutorial 1
        • Scan Results Tutorial 2
        • Writing Scans Tutorial 1
        • Writing Scans Tutorial 2
        • Creating Scan Templates Tutorial
        • Troubleshooting Scans Tutorial 1
        • Troubleshooting Scans Tutorial 2
        • Troubleshooting Scans Tutorial 3
      • Scanning Case Studies
        • Scanning for Crossovers
        • Scanning for "Near Crosses"
        • Scanning for Divergences
        • Scanning for Relative Strength
        • Scanning for Consolidation and Breakouts
        • Scanning for Selling Climaxes
        • Scanning for SCTRs
        • Scanning Ichimoku Clouds
        • Scanning for P&F Chart Patterns
        • Scanning Your ChartLists
        • Scanning for an Overlay of an Indicator
        • Writing Min/Max Scans
        • Writing Percent Change Scans
        • Scanning Over a Range of Dates
        • Writing Scans With OR Clauses
      • Troubleshooting Scans
        • Troubleshooting Equality Scans
      • Getting Help With Scans
      • Scan Syntax Reference
        • Scan Syntax: Ticker Properties
        • Scan Syntax: Price, Volume, and SCTRs
        • Scan Syntax: Technical Indicators
        • Scan Syntax: Technical Functions
        • Scan Syntax: Predefined Patterns
        • Scan Syntax: Groups
      • Advanced Scan Library
        • Sample Scans
        • Predefined Scans
        • Published Scans
        • User-Contributed Scans
        • Gord Greer's Scan Building Blocks
    • Technical Alerts
      • Technical Alert Workbench
      • Your Alerts
  • Your Account
    • Subscribing to StockCharts
    • Service Levels & Data Plans
    • Login & Passwords
    • Your Account Settings
    • Managing Your Subscription
      • Cancelling Your Account
    • StockCharts Add-Ons
      • OptionsPlay Add-On
  • Learning More
    • Market Commentary
      • Blogs
      • ChartWatchers Newsletter
      • StockCharts TV
    • Educational Resources
    • Frequently Asked Questions (FAQs)
    • Step-By-Step Instructions
      • SharpCharts How-Tos
        • SharpCharts Workbench How-Tos
          • How to Print a SharpChart
          • How to Share a SharpChart on Social Media
          • How to Email a SharpChart
          • How to Insert a SharpChart in a Document or Presentation
          • How to View Indicator and Overlay Values for Specific Days
          • How to Save a SharpChart
        • SharpChart Editing How-Tos
          • How To Use The Interactive Date Slider
          • How to Display More than One Symbol on a SharpChart
          • How to Create Overlaid Charts
          • How to Add an Overlay to an Indicator
          • How to Add a Moving Average to the Volume Bars on a Chart
        • ChartNotes How-Tos
          • How to Pin an Annotation on a SharpChart
          • How to Save a Chart from a Blog Article with the Author's Annotations
        • ChartList How-Tos
          • How to Use the ChartList Summary
          • How to Search for a Saved Chart in Your ChartLists
          • How to Share a ChartList with Another Member
        • ChartList Editing How-Tos
          • How to Create a New ChartList
          • How to Add Predefined Symbol Groups to a New ChartList
          • How to Add Predefined Groups into an Existing ChartList
          • How to Upload Symbols to a ChartList from a Spreadsheet
          • How to Rearrange Charts in a ChartList
          • How to Delete a Saved Chart from a ChartList
      • StockChartsACP How-Tos
        • Setting Period, Type And, Range
        • Chart Attributes
          • Part One
          • Part Two
        • Sharing And Printing
        • Saving Charts
          • Saving A New Chart
          • Saving An Existing Chart As New
        • Chart Templates
          • Applying Predefined Chart Templates
          • Saving A New Chart Template
        • Using ChartLists
          • Creating A New ChartList
        • Chart Layouts
          • Accessing Chart Layouts
          • Creating A New Custom Layout
        • Additional Tools
          • Accessing Research Tools
    • Troubleshooting
      • Unable to Log In
      • Website Slow or Down
        • Using OpenDNS
      • Website Functionality Issues
    • Customer Support
    • Policies & Limitations
      • Terms of Service
      • Privacy Statement
      • No Service Level Guarantees
      • Data Policies
      • Usage Limitations
      • Reprint Permission Policies
      • Billing Policies
      • Membership Policies
      • Public ChartList Policies
      • Customer Support Policies
Powered by GitBook
LogoLogo

ON STOCKCHARTS

  • Charts & Tools
  • Articles
  • StockCharts TV
  • ChartSchool

MEMBERS

  • Your Dashboard
  • Your ChartLists
  • Advanced Scans
  • Technical Alerts

HELP

  • Support Center
  • FAQs
  • Contact Us
  • Pricing

COMPANY

  • About Us
  • What's New
  • Careers
  • StockCharts Store

© StockCharts.com, Inc. All Rights Reserved.

On this page
  • What is a Scan?
  • Scan Clauses
  • Comparison Operators
  • Crosses Above Operator
  • Scan Expressions
  • Expression Parameters
  • Modifying Expressions
  • Date Periods for Expressions
  • Date Modifiers
  • Arithmetic Operators
  • Arithmetic Functions
  • Logical Operators
  • The AND Operator
  • The OR Operator
  • Rank By Clauses
  • Comments
  • Conclusions
  • Additional Resources
  • Reference Guides

Was this helpful?

Export as PDF
  1. Scanning & Alerts
  2. Scan Writing Resource Center

Writing Scans

PreviousPlanning ScansNextScanning Tutorials

Last updated 8 months ago

Was this helpful?

Advanced scans and technical alerts use a special language (which we refer to as “scan syntax”) to communicate with the Scan Engine. Though the language takes some time to master, it provides a great deal of flexibility that will prove invaluable in creating scans that cater to your needs. In this article, we'll equip you with the basic building blocks you need to write effective scans.

What is a Scan?

A scan is a series of tests that are performed by the Scan Engine to see which securities meet all your technical requirements. Securities that meet your first requirement are passed along to see if they meet your second requirement, etc. until the last of the tests has been conducted. Those securities that passed all the tests are thus determined to meet all your technical requirements and are subsequently included in your scan results.

Scan Clauses

Scans are divided into scan clauses, each of which gives the Scan Engine instructions about how to test for a particular technical requirement.

An individual clause has two expressions, which are compared to each other using a comparison operator. The clause is enclosed in square brackets. Below is a very simple example of a clause:

[close > 5]

The two expressions in this clause are “close” (the closing value of the stock) and “5” (a static value). The comparison operator is the “greater than” symbol (“>”). What that means is that this clause is testing to see if the closing value of each stock is more than $5.

If the statement indicated by the clause is true for a stock, said stock passes the test. In this case, all stocks with a closing value of more than $5 would be passed through to the next test, while all those with a closing value less than or equal to $5 would be excluded from the scan results.

Learn More.

Comparison Operators

We've already seen the “greater than” comparison operator, but there are several other operators that can be used in your scan clauses.

Some are usually used for text comparisons:

  • is

  • is not

  • contains

  • not contains

  • starts with

  • ends with

Some are usually used for number comparisons:

  • = (equals)

  • < (is less than)

  • <= (is less than or equal to)

  • > (is greater than)

  • >= (is greater than or equal to)

  • != (is not equal to)

  • x (crosses above)

Note that “=” and “is” can be used interchangeably in most clauses. The same is true for “!= ” and “is not” operators. The scans “[type=stock]” and “[type is stock]” will be interpreted the exact same way by the Scan Engine.

We also offer natural language alternatives for some of our numeric comparison operators:

  • "is greater than" and "is above" can both be used interchangeably with the ">" operator

  • "is less than" and "is below" can both be used interchangeably with the "<" operator

  • "is not equal to" can be used in place of "!="

  • "crosses above" can be used instead of "x"

Crosses Above Operator

The Crosses Above operator (“x”) is frequently used when testing for a technical signal. Essentially, it means that the expression on the left has just crossed above the expression on the right; yesterday it was below, but today it is above. Here's a very simple example:

[close x 5]

This clause is testing for stocks whose closing value crossed above $5 on the day it is run. To put it simply, this means that yesterday the stock's value was below $5, while today it is above $5.

Note: There is no “Crosses Below” operator, as you can accomplish the same thing by using the “Crosses Above” operator with the positions of the two expressions switched. Building on the above example, if you wanted to test for the closing price crossing below $5, you would use the following clause:

[5 x close]

If $5 has just crossed above the close, then that means that the close has just crossed below $5.

Scan Expressions

Expressions are grouped into these general categories in the Scan Components area:

Expression Parameters

Some expressions require configuration parameters. As an example, if you are using the RSI indicator, you'll need to tell the Scan Engine how many periods you want to use to calculate the RSI value. These parameters appear in parentheses immediately after the indicator name. For instance, the clause “[RSI(14) > 0]” states that you want tickers where the 14-period RSI value is greater than zero.

When there are multiple parameters for a single indicator, they are separated by commas (e.g. “[MACD Line(12,26,9) > 0]”).

Some parameters are optional and will use a default value if left out. Make sure the default value is what you expect it to be. For example, the simple moving average indicator has an optional parameter indicating what values it uses to calculate the SMA; the default value is the close. If you want it to use a different value, that must be specified.

// Wrong: compares volume to 5-day SMA of close
[volume < SMA(5)] 

// Right: compares volume to 5-day SMA of volume
[volume < SMA(5,volume)] 

Remember, we only use parentheses to designate the parameters for indicators. Square brackets are used to show the start and end of scan clauses.

Modifying Expressions

Thus far, we have only looked at clauses with very simple expressions. However, there are a number of ways in which you can modify your expressions to make them more specific.

Date Periods for Expressions

By default, expressions refer to daily data, but it is relatively simple to change an expression to use weekly or monthly data instead. Simply add the word “weekly” or “monthly” to the front of the the expression. For example:

[weekly MACD Line(12,26,9) x 0]
[monthly RSI(14) > 0]
[daily close > weekly close]

Note that you can even mix and match date periods within a single clause, as in the third example above.

Date Modifiers

In addition to changing the date offset for the entire scan with the Starting Date Adjuster, you can also change the date offset for individual expressions by adding a date modifier at the beginning of the expression.

By default, today's data is used, but you can use any of the following modifiers:

today's
yesterday's
n days ago (e.g. 3 days ago)
this week's
last week's
n weeks ago (e.g. 2 weeks ago)
this month's
last month's
n months ago (e.g. 4 months ago)

These date modifiers refer to trading days, not calendar days, so a clause with a “5 days ago” modifier is looking at data from 5 trading days earlier (typically equivalent to one week ago).

Here are a few examples of clauses with date modifiers:

[4 days ago close > 38]
[this week's high > 1 week ago high]
[monthly low < last month's low]

Note that you can mix and match date modifiers within a single clause, as in the second and third examples above.

However, be cautious with mixing date modifiers that use different date periods. Using a date modifier in your clause may change the period used to calculate the indicators in that clause. For example, the following clause is actually comparing today's 14-day RSI value to last week's 14-week RSI value:

[today's RSI(14) > last week's RSI(14)]

To make sure you're comparing apples to apples, you want both modifiers to use the same date period (in this case, daily):

[today's RSI(14) > 5 days ago RSI(14)]

Arithmetic Operators

Standard arithmetic operators are available for use in any expression:

  • + (Plus)

  • - (Minus)

  • * (Multiplied By)

  • / (Divided By)

Here are a couple of the most commonly encountered uses of arithmetic operators:

[volume > yesterday's volume * 1.05]
[close > [[high + low] / 2]]

The first example scans for stocks where today's volume is at least 5% higher than yesterday's volume. The second example scans for stocks where the closing price is in the upper half of the day's range.

The arithmetic operators are processed from left to right, but items enclosed between square brackets will be evaluated as a single unit. For example:

[close > low + [0.90*[high - low]]]

The brackets around “high - low” ensure that this subtraction will be done before the resulting value is multiplied by 0.90. Similarly, the brackets around “0.90*[high-low]” ensure that all of that math will be completed before that result is added to the low.

Remember, we only use parentheses to designate the parameters for indicators. Square brackets are used to show the Scan Engine in what order to process arithmetic operators.

Arithmetic Functions

There are several standard arithmetic functions that can be applied to your scan expressions:

  • AbsVal. This function finds the absolute value of a value. It is often used with oscillators to find values that have strayed far from the center line in one direction or another. For example, “[AbsVal(MACD Hist(12,26,9)) > 3]” scans for stocks where the MACD Histogram value is either above 3 or below -3.

  • PctRelative. This function finds the difference between the PctChange value of two different securities. For example, “[PctRelative(10,$SPX) > 2]” scans for stocks that have performed at least 2% better than the S&P 500 (i.e., PctChange value is at least 2% higher) over the previous 10 trading days.

  • Count Up/Down. These simple arithmetic functions count the number of periods where the price has gone up (or down) in the specified timeframe. For example, “[Count Up(20, close) >= 12]” scans for stocks where the closing price has gone up in at least 12 of the last 20 days.

  • Streak Up/Down. Similar to Count Up/Down, these two functions count the number of periods in a row where the price has gone up (or down). For example, “[Streak Up(weekly close) >= 5]” scans for stocks where the weekly closing price has gone up at least 5 weeks in a row.

Logical Operators

It's pretty rare for a scan to only have one clause. As a general rule, you are testing for multiple technical conditions and signals. The logical operators “AND” and “OR” are used to string multiple clauses together into a scan.

The AND Operator

If you use the “AND” operator to add multiple clauses to your scan, that means that all the clauses need to be true: stocks must pass the first test and the second test. Generally, you want your scan to pass all the tests (otherwise, why include a test in your scan?), so “AND” is the default operator used to connect clauses.

As an example, let's look at the following scan:

[type = stock] 
AND [country = US] 
AND [close >10]

Let's go through this scan clause by clause. First, each ticker symbol needs to pass the first test (Is it a stock?). Only securities that are stocks will pass and go on to the next test. Since the second clause is connected with an “AND” operator, we know that the stock also must pass the second test (Is US the country?). Only US stocks will pass both the first and second tests and move on to the third test. Again, since the clause is connected with an “AND” operator, we know that the stock must also pass the third test (Is today's closing price above $10?). Only US stocks with a close above $10 will pass all three tests and be included in the scan results.

The OR Operator

While you will generally want ticker symbols to pass all the tests in your scan, there are some scenarios where multiple similar clauses could meet a requirement you're looking for. If any one of those clauses is true, then you want to return that ticker symbol in your scan results. For example, let's say you want to return all stocks that either trade on the Nasdaq OR on the NYSE. It doesn't have to trade on both exchanges; as long as it trades on one of them, you want the stock to be part of your search results.

In that case, we use the “OR” operator to define the list of clauses that could fulfill this requirement. In our example above, it might look like this:

[type = stock] 
AND [[exchange = Nasdaq] OR [exchange = NYSE]]

In this case, we're looking for stocks that trade on either the Nasdaq or the NYSE exchange.

With these extra brackets, we're basically telling the scan engine to run the first test (Is it a stock?) and, if it passes that test, to move on to the second test (“Does it trade on the Nasdaq or NYSE?). Those extra brackets make it clear that the second and third clauses are all part of a single multi-part test.

Note: We recommend putting each “test” on a separate line in your scan. It makes no difference to the Scan Engine, but it makes it easier for humans to read.

OR clauses can provide a lot of flexibility and power to your scans, as long as they are used with caution. The important takeaway is to always put an additional set of square brackets enclosing all of the OR clauses that should be part of that test.

Rank By Clauses

You can optionally add a line to the very end of your scan that controls the order in which your scan results are displayed. That line must start with “RANK BY,” followed by the expression that you want your results sorted by. For example:

RANK BY [close]

This example would sort the scan results in descending order of the current closing price.

There are a few rules for Rank By clauses:

  • There can only be one Rank By line per scan.

  • The clause must be the last line of the scan.

  • You can add “ascending” to the end of the clause to reverse the order of the scan results (e.g., “RANK BY [MACD Hist(12,26,9)] ASCENDING”).

Note: The value of the Rank By expression is also added to the right side of the scan results table. This allows you to examine the value of any expression in your scan directly by making that expression the Rank By expression.

Comments

It is possible to have the Scan Engine ignore portions of the scan text by adding either the '#' character or two forward slashes ('//') in your scan text. The Scan Engine will ignore all the text from that point to the end of the current line.

Comments are very useful in two ways. The first use is to document a particularly complex scan which contains a lot of clauses. With comments, you can add useful notes for yourself without actually affecting the Scan Engine at all. For example:

// My ETF scan.
// July 20, 2014
[type = stock]
# only get ETFs > 100
AND [close > 100]  // Let's get the expensive ones!
AND [group is ETF]

When the Scan Engine processes this, it only sees:

[type = stock]
AND [close > 100]
AND [group is ETF]

As you can see, the Scan Engine ignores all the comment text.

The other use for comments is to selectively add or remove clauses and view the results. Here is an example of toggling between two clauses within a scan:

[type = stock]
AND [open > 25]

// AND [group is ENERGYSECTOR]
AND [group is FINANCIALSECTOR]

Conclusions

Additional Resources

Reference Guides

Articles

Tutorials

Videos

Use caution when comparing numeric values with the equals operator - you may not get the results you expect from your scan. Check out our article to learn more.

Learn More. |

We've seen one example of an expression (close), but there are so many more expressions you can use in your scans. Browsing through the Scan Components dropdown menus in the Advanced Scan Workbench will help you get a good idea of the expressions that are available to you. Be sure to check out our for all the details on adding those expressions to your scans.

. Security type, symbol, name, country, exchange, and more.

. Standard price and volume measurements (OHLC values, all time highs, volume, liquidity, etc.), plus SCTR rankings.

(and ). Several popular indicators, from MACD to RSI to Stochastics. Also includes standard arithmetic functions, such as min/max and percent change.

. Common bullish and bearish candlestick patterns, such as hammers or morning stars. Also includes Elder Bar and Ichimoku Cloud patterns.

. Candlestick characteristics that are used to build candlestick patterns—everything from dojis to spinning tops.

. Standard bullish and bearish P&F patterns, such as bullish triangles and double bottom breakouts.

. All the technical indicators found on the Predefined Scans page, from MACD crossovers to 52-week highs/lows.

. Limit your results to stocks included in a particular index, ETFs that are not inverse/leveraged, etc.

. Limit your results to stocks in one of your SharpCharts or StockChartsACP ChartLists.

. Limit your results to stocks that are (or are not) in a particular sector or industry.

The section of the Scan Syntax Reference explains what the parameters are for each indicator.

Min/Max. These two functions find the minimum or maximum value in a set of values. For example, “[today's close> yesterday's max(255,close)]” scans for stocks where today's close is higher than the highest close over the previous 255 days. Learn more in our Support Center article on .

PctChange. This function finds the percentage change of a value over a specified period. For example, “[PctChange(10,close) > 15]” scans for stocks where the value has changed by at least 15% over the previous 10 trading days. Learn more in our Support Center article on .

PctDiff. This function finds the percentage difference between two values. For example, “[PctDiff(close,sma(50,close)) < 5]” scans for stocks where today's closing value is within 5% of its 50-day average. Learn more in our Support Center article on

For more details on using these functions, see the section of our Scan Syntax Reference.

Notice how, in addition to the square brackets around each clause, we also have an additional set of brackets that encompasses the entire list of “OR” clauses we are testing for. These brackets are very important, as they make it clear to the scan engine which clauses are included in your “OR” list and which ones aren't. Without them, you may get unexpected results. For more on why this is so important, check out the OR Clause section of our article in the Support Center.

For more examples of the many ways you can use OR clauses in your scans, check out our article in the Support Center.

Learn More. |

In this example, we can quickly switch between scanning the Financial or Energy sectors by commenting out one of the 'group is' clauses. Being able to quickly add or remove clauses using comments is very helpful for debugging scans. For more information on this usage, please see our article in the Support Center.

Scanning is one of the most difficult parts of our site to master, but, with a little trial and error, you'll soon be writing complex scans. When working from the Advanced Scan Workbench, remember to click the “Check Syntax” button as you make changes in order to ensure you uncover any problems with your scan syntax early. If you're not getting errors, but also not getting the results you expect, be sure to check out our article in the Support Center for more troubleshooting tips.

Scan Syntax Reference
Troubleshooting Equality Scans
Writing Crossover Scans
Scanning for "Near Crosses"
Scan Syntax Reference
Ticker Properties
Price, Volume, and SCTRs
Technical Indicators
Functions
Predefined Scans
Indexes and ETFs
Technical Indicators
Writing Min/Max Scans
Writing Percent Change Scans
Scanning for "Near Crosses."
Technical Functions
Troubleshooting Scans
Writing Scans With OR Clauses
Troubleshooting Scans
Troubleshooting Scans
Scan Syntax Reference
Scanning for an Overlay of an Indicator
Scanning Over a Range of Dates
Scanning for Relative Strength
Scanning for Divergences
Scanning for Consolidation and Breakouts
Scanning for Selling Climaxes
Writing P&F Scans
Scanning for SCTRs
Scanning Ichimoku Clouds
Writing Scans Tutorial 1: The Basics
Writing Scans Tutorial 2: Advanced Techniques
Writing Scans: Syntax
Writing Scans: Coding
Writing Scans with OR Clauses
ChartLists
Sectors and Industries
Troubleshooting Scans with OR Clauses
Candlestick Patterns
Candlestick Building Blocks
P&F Patterns