Q&A for Users

What are Elliott waves?

We have an entire page including two videos on that!

What markets does EWAVES Live cover?

EWAVES currently covers Commodities, Crypto, Forex and US Indices/ETFs/Stocks. If you wish for additional coverage, please email us at info@ewaves.com.

What data provider drives EWAVES Live?

We are currently partnered with Trade Navigator.

Does EWAVES Live cover intraday?

EWAVES Live does not currently update intraday. It updates using daily bar data every night at 9 PM EST. Intraday is on the horizon for a future release.

What is Elliotticity?

Elliotticity is the degree to which a data segment adheres to Elliott wave theory. It varies from 0% to 100%. Each individual Elliott wave corresponds to a data segment with an elliotticity rating.

Elliotticity is time frame invariant. The recent daily picture is given as much consideration as the recent weekly picture, which is given as much consideration as the recent monthly picture, and so on. In this way, elliotticity is as equally sensitive to short-term market activity as it is to long-term.

In past newsletters, we have referred to the elliotticity of the largest wave in a given market as the market’s total elliotticity. As a result of time frame invariance, total elliotticity is perhaps the most generally useful single numerical value for ranking markets against one another in terms of Elliott wave conformance.

What is the WaveFinder?

EWAVES Live has a built-in WaveFinder, which is the world’s first Elliott wave search engine. It is a query system for quickly finding and sorting through thousands of real time Elliott waves, looking for precise criteria.

For example, if you want to ask the WaveFinder “find me unfolding 5th waves following a triangle that are less than 20% complete”, you should be able to quickly make a query for that.

How do I use the WaveFinder?

By far the best way to learn is to watch the EWAVES Live tutorial video (coming soon!)

How do I interpret the labels on EWAVES Live charts?

The labels mostly use the traditional scheme from Elliott wave theory. Impulses and diagonals use 1-2-3-4-5, zigzags and flats use A-B-C, and complex corrections use W-X-Y.

The only slightly unusual labeling are triangles, which are lowercase a-b-c-d-e. This distinction is important for two reasons:

(1) When you are dealing with a triangle, the internals of “a” and “b” resemble a flat “A” and “B”, so we require different labels for disambiguation. No other pattern has this issue.

(2) Sometimes, in the WaveFinder, you may want to specify “the last wave of a correction”, in which case that would be “C” for a zigzag or flat, but “e” for a triangle.

Why does EWAVES’ analysis sometimes differ from analyst xyz’s opinion?

EWAVES’ wave counts will not necessarily align with any particular analyst’s market opinion. Users may review its analysis in isolation or seek to incorporate it with other sources or tools.

Why do some waves not subdivide in an ideal manner?

The reflection of mass social mood in freely traded markets is imperfect. Therefore, it is generally not possible to label Elliott waves without incorporating some subwaves that do not subdivide cleanly, or that appear to subdivide in ways which do not match their context.

Additionally, all market data formats contain quantization artifacts, making the internal wave structure impossible to discern over short term intervals. For example, a beautiful five-wave structure on an hourly chart may appear as a three-wave structure when looking at the corresponding daily bars.

To allow EWAVES to count real world data, it is allowed to squint over data segments in much the same way that human practitioners do. The resulting waves simply have no internal structure, i.e., they are of an “unknown” type. Their meaning comes from the larger context in which they occur.

Why do some correlated markets not share the same wave count?

EWAVES analyzes each market independently, and does not try to force correlated markets to share a wave count. Markets which appear similar will often differ in subtle ways that can have a significant impact on wave analysis.

The most prudent method for handling different wave counts across correlated markets is to wait for the wave structure to meaningfully align at the relevant time frame before forming a strong market opinion. Alternatively, if one market has much higher elliotticity, higher trading volume, more historical context and/or is less derivative than the other, then it is likely to be the better proxy to use for measuring social mood.

Software Interop

Where are the data files for software interop with EWAVES Live?

You must be logged into EWAVES Live in order to have the access rights to download these files:

• markets2.json defines the markets for EWAVES Live, with their attendant metadata. It has no dependencies on any other files.

• waves.bin is a supplementary file (which depends on markets2.json for market definitions) that is required for the WaveFinder. It defines attributes for every currently unfolding wave in every market.

What is the structure of the markets2.json file?

markets2.json is a JSON text file. It is so simple and self-documenting that the best way to understand it is to download the current file and simply take a look.

What is the structure of the waves.bin file?

waves.bin is a binary file, representing a contiguous linear array of wave structures, representing the set of unfolding waves. (It also contains each unfolding wave’s prior wave, for example if wave 5 is unfolding at a particular degree, then wave 4 would be its prior wave).

In pseudocode, the specification looks like this:

The set of currently unfolding waves are written in order of their market ID's (as defined in markets2.json).
They are secondarily written in the order from largest (degree 0) to smallest (degree N).
For each degree, the most current wave is written. But, each current wave is preceded by its prior wave.
For example, the array of waves contained in waves.bin is organized like this:

[prior   wave w/ market = 0, degree = 0]
[current wave w/ market = 0, degree = 0]
[prior   wave w/ market = 0, degree = 1]
[current wave w/ market = 0, degree = 1]
[prior   wave w/ market = 0, degree = 2]
[current wave w/ market = 0, degree = 2]
[prior   wave w/ market = 1, degree = 0]
[current wave w/ market = 1, degree = 0]

// wave structure
// note that each wave is exactly 14 bytes (no padding!), using little-endian encoding
// note the use of the 'f16' type, which is a 16-bit (half) float
struct Wave {
    market: u16, // index of the market which owns this wave (defined in "markets2.json")
    degree: u8, // wave degree, from 0 (biggest) to N (smallest)
    zoom: u8, // associates wave with a particular chart zoom-level for best viewing
    type_label: u8, // type (4-bits) | label (4-bits) (defined below)
    complete: u8, // % which goes from 0 to 100
    elliotticity: u8, // % which goes from 0 to 100
    linearity: u8, // % which goes from 0 to 100, representing straight line conformance
    duration: f16, // the expected duration of this wave (in days)
    magnitude: f16, // the expected gain or loss of this wave (in %)
    slope: f16 // the expected slope of this wave (in %/year)

A wave's type represents the pattern that the internals of this wave take the form of.
"impulse" = 0
"diagonal" = 1
"zigzag" = 2
"flat" = 3
"triangle" = 4
"double-zig" = 5
"unknown" = 6

A wave's label represents its position within a larger pattern.
"1" = 0,  "2" = 1,  "3" = 2, "4" = 3, "5" = 4,    <-- position in impulse/diagonal
"A" = 5,  "B" = 6,  "C" = 7,                      <-- position in zigzag/flat
"W" = 8,  "X" = 9,  "Y" = 10,                     <-- position in complex correction
"a" = 11, "b" = 12, "c" = 13, "d" = 14, "e" = 15  <-- position in triangle