Channels, Ichimoku and ZigZag: windows, shifts and availability
Teaching tables and diagrams with explicit inputs, formulas, seeds, local conditions and limits when checking Elliott wave hypotheses.
Published: (UTC+3)
Русский · English · Deutsch · Español · Français · Italiano · 繁體中文 · 日本語 · 한국어
This lab connects indicators to a wave hypothesis through explicit calculations. Every example price, volume and parameter is invented. A positive indicator condition describes a local state; it does not establish an entire Elliott count or measure a probability of profit.
Invented inputs and calculation rules
The table contains completed bars. t is an ordinal index; O/H/L/C mean open/high/low/close and V is invented volume from one source, not an entire-market total. Dataset A has a preceding bar t=−1 with C=99, H=100, L=98. Windows include the current bar unless explicitly stated otherwise.
SMA_n is the mean of the latest n values. EMA_n uses α=2/(n+1) and RMA_n uses α=1/n; both recursions y_t=αx_t+(1−α)y_(t−1) start with the mean of the first n available values. Intermediate values are not rounded; tables display up to six decimals. “—” means insufficient history or an undefined value, not zero. Missing inputs are not replaced with zero. Short teaching periods are not recommended settings; the seeds and zero policies are declared here, without a claim of parity with every platform.
| Dataset | t | O | H | L | C | V |
|---|---|---|---|---|---|---|
| A | 0 | 99.5 | 101 | 99 | 100 | 10 |
| A | 1 | 101.5 | 103 | 101 | 102 | 12 |
| A | 2 | 100.5 | 102 | 100 | 101 | 8 |
| A | 3 | 103.5 | 105 | 103 | 104 | 15 |
| A | 4 | 102.5 | 104 | 102 | 103 | 9 |
| A | 5 | 105.5 | 107 | 105 | 106 | 20 |
| A | 6 | 103.5 | 105 | 103 | 104 | 11 |
| A | 7 | 106.5 | 108 | 106 | 107 | 18 |
| A | 8 | 104.5 | 106 | 104 | 105 | 14 |
| A | 9 | 107.5 | 109 | 107 | 108 | 22 |
| A | 10 | 103.5 | 105 | 103 | 104 | 16 |
Can an early undefined indicator value be replaced by zero and counted as a negative signal?
No. A missing full window and a calculated zero are different states; freeze the warm-up policy in advance.
Bollinger Bands: the selected variance convention
The model uses SMA3 and two standard deviations; σ is population deviation with divisor 3. Formula and worked calculation: m=SMA3(C); σ=√(Σ(C_i−m)²/3); U=m+2σ; L=m−2σ. t7: m=105.666667; σ=1.247219; U=108.161105; L=103.172228.
The first window is t2. Divisor n−1 would give different bands. With σ=0 the bands coincide with the mean; that is neither missing data nor a guaranteed future breakout.
Local research predicate: t7: C>U. At t7 C=107 remains inside; C>U is false. Even a move beyond two σ gives no universal return probability: neither a distribution nor independence of returns has been established.
| t | C | SMA3 | σ_pop3 | U=m+2σ | L=m−2σ |
|---|---|---|---|---|---|
| 0 | 100 | — | — | — | — |
| 1 | 102 | — | — | — | — |
| 2 | 101 | 101 | 0.816497 | 102.632993 | 99.367007 |
| 3 | 104 | 102.333333 | 1.247219 | 104.827772 | 99.838895 |
| 4 | 103 | 102.666667 | 1.247219 | 105.161105 | 100.172228 |
| 5 | 106 | 104.333333 | 1.247219 | 106.827772 | 101.838895 |
| 6 | 104 | 104.333333 | 1.247219 | 106.827772 | 101.838895 |
| 7 | 107 | 105.666667 | 1.247219 | 108.161105 | 103.172228 |
| 8 | 105 | 105.333333 | 1.247219 | 107.827772 | 102.838895 |
| 9 | 108 | 106.666667 | 1.247219 | 109.161105 | 104.172228 |
| 10 | 104 | 105.666667 | 1.699673 | 109.066013 | 102.26732 |
Reproduce the highlighted calculation and evaluate the local predicate. Does the result establish the entire wave count?
107<108.161105. No. It is the result of the stated calculation on invented data, not proof of a wave structure or profit.
Keltner Channel: EMA and ATR
This is the modern EMA3(C)±1.5ATR3 version, not the original formula based on a different range. Formula and worked calculation: U=EMA3(C)+1.5ATR3; L=EMA3(C)−1.5ATR3. t7: 105.59375±1.5×3.360768175583 → U=110.634902; L=100.552598.
EMA and ATR both use the declared t2 initialization. Both must exist; a missing component is not zero. Multiplier 1.5 is a teaching choice, not a property of every channel.
Local research predicate: t7: C>U. There is no upper-band breakout at t7. Width depends on TR rather than standard deviation, so a Keltner Channel cannot be substituted for Bollinger Bands with the same period count.
| t | C | EMA3 | ATR3 | U=m+1.5ATR | L=m−1.5ATR |
|---|---|---|---|---|---|
| 0 | 100 | — | — | — | — |
| 1 | 102 | — | — | — | — |
| 2 | 101 | 101 | 2.333333 | 104.5 | 97.5 |
| 3 | 104 | 102.5 | 2.888889 | 106.833333 | 98.166667 |
| 4 | 103 | 102.75 | 2.592593 | 106.638889 | 98.861111 |
| 5 | 106 | 104.375 | 3.061728 | 108.967593 | 99.782407 |
| 6 | 104 | 104.1875 | 3.041152 | 108.749228 | 99.625772 |
| 7 | 107 | 105.59375 | 3.360768 | 110.634902 | 100.552598 |
| 8 | 105 | 105.296875 | 3.240512 | 110.157643 | 100.436107 |
| 9 | 108 | 106.648438 | 3.493675 | 111.88895 | 101.407925 |
| 10 | 104 | 105.324219 | 3.995783 | 111.317893 | 99.330544 |
Reproduce the highlighted calculation and evaluate the local predicate. Does the result establish the entire wave count?
107<110.634902; U_KC≠U_BB. No. It is the result of the stated calculation on invented data, not proof of a wave structure or profit.
Donchian Channel: current versus prior window
The displayed bands are the highest H and lowest L of three bars; a separate breakout predicate uses only the prior three bars. Formula and worked calculation: D_U,t=max(H_(t−2),H_(t−1),H_t); D_L,t=min(L_(t−2),L_(t−1),L_t); mid=(D_U+D_L)/2; P_t=max(H_(t−3),H_(t−2),H_(t−1)). t9: D_U=109,D_L=104,mid=106.5,P=108,C=108.
The current window exists from t2; the prior window from t3. Equality is not a C>P breakout. Including current H in C>U makes strict exceedance impossible for valid OHLC.
Local research predicate: t9: C>P. At t9 the close of 108 only touches the prior high of 108; the strict filter is false. Changing > to ≥ after seeing the result would change the protocol. Neither touch nor breakout determines internal wave structure.
| t | C | U_t | L_t | mid_t | U_(prior3) | L_(prior3) |
|---|---|---|---|---|---|---|
| 0 | 100 | — | — | — | — | — |
| 1 | 102 | — | — | — | — | — |
| 2 | 101 | 103 | 99 | 101 | — | — |
| 3 | 104 | 105 | 100 | 102.5 | 103 | 99 |
| 4 | 103 | 105 | 100 | 102.5 | 105 | 100 |
| 5 | 106 | 107 | 102 | 104.5 | 105 | 100 |
| 6 | 104 | 107 | 102 | 104.5 | 107 | 102 |
| 7 | 107 | 108 | 103 | 105.5 | 107 | 102 |
| 8 | 105 | 108 | 103 | 105.5 | 108 | 103 |
| 9 | 108 | 109 | 104 | 106.5 | 108 | 103 |
| 10 | 104 | 109 | 103 | 106 | 109 | 104 |
Reproduce the highlighted calculation and evaluate the local predicate. Does the result establish the entire wave count?
108>108 = ⊥; 108=108. No. It is the result of the stated calculation on invented data, not proof of a wave structure or profit.
Ichimoku: calculation, plotting and availability
This is a short teaching version 2/3/4 with displacement 2, not the usual 9/26/52/26 settings. Formula and worked calculation: mid_n=(max_n(H)+min_n(L))/2; Tenkan=mid2; Kijun=mid3; A=(Tenkan+Kijun)/2; B=mid4. t10: Tenkan=Kijun=A=B=106. A10,B10 → τ_plot=12; C10=104 → τ_plot=8.
Tenkan exists from t1, Kijun and A from t2, B from t3. Right-shifting A and B is a drawing position, not future price. C10 drawn at t8 is known only at t10; it cannot be used at t8.
Local research predicate: t10: A10=B10; τ_avail(C10)=t10, τ_plot(C10)=t8. At t10 A=B, so the cloud made from those values has zero thickness. Comparing price with the cloud displayed at t10 requires values calculated at t8, not A10/B10. That is a different time index.
| t | C | Tenkan2 | Kijun3 | A_t | B_t |
|---|---|---|---|---|---|
| 0 | 100 | — | — | — | — |
| 1 | 102 | 101 | — | — | — |
| 2 | 101 | 101.5 | 101 | 101.25 | — |
| 3 | 104 | 102.5 | 102.5 | 102.5 | 102 |
| 4 | 103 | 103.5 | 102.5 | 103 | 102.5 |
| 5 | 106 | 104.5 | 104.5 | 104.5 | 103.5 |
| 6 | 104 | 105 | 104.5 | 104.75 | 104.5 |
| 7 | 107 | 105.5 | 105.5 | 105.5 | 105 |
| 8 | 105 | 106 | 105.5 | 105.75 | 105.5 |
| 9 | 108 | 106.5 | 106.5 | 106.5 | 106 |
| 10 | 104 | 106 | 106 | 106 | 106 |
Reproduce the highlighted calculation and evaluate the local predicate. Does the result establish the entire wave count?
A10=B10=106; C10=104: τ_avail=10, τ_plot=8; A10/B10: τ_avail=10, τ_plot=12. No. It is the result of the stated calculation on invented data, not proof of a wave structure or profit.
ZigZag: candidate and delayed confirmation
This is an authored close-only 3% reversal algorithm, not the corrective A–B–C zigzag or an exact copy of a platform’s H/L-and-depth ZigZag. Formula and worked calculation: p0: C0=100; 100×1.03=103≤C3=104. p9: C9=108; 108×0.97=104.76≥C10=104; (108−104)/108×100=3.703704%.
Before the first 3% rise, retain a candidate low; then update the candidate high with new closes until a 3% fall, followed symmetrically by tracking a low. The percentage base must be positive. A candidate value exists at t0, but origin t0 is confirmed only at t3. Peak t9 is confirmed at t10; low t10 remains provisional.
Local research predicate: t10: C≤108×0.97. A historical line to peak t9 does not mean the peak was known at t9. The last leg and candidate can redraw. A study must save state at every close instead of treating the final picture as a timely signal.
| t | C | Candidate C | Candidate index | Confirmed | Provisional |
|---|---|---|---|---|---|
| 0 | 100 | 100 | 0 | — | — |
| 1 | 102 | 100 | 0 | — | — |
| 2 | 101 | 100 | 0 | — | — |
| 3 | 104 | 104 | 3 | p0@t0 | — |
| 4 | 103 | 104 | 3 | p0@t0 | — |
| 5 | 106 | 106 | 5 | p0@t0 | — |
| 6 | 104 | 106 | 5 | p0@t0 | — |
| 7 | 107 | 107 | 7 | p0@t0 | — |
| 8 | 105 | 107 | 7 | p0@t0 | — |
| 9 | 108 | 108 | 9 | p0@t0 | — |
| 10 | 104 | 104 | 10 | p0@t0; p9@t9 | p10@t10 |
Reproduce the highlighted calculation and evaluate the local predicate. Does the result establish the entire wave count?
104≤104.76; τ_avail(p9)=10; τ_avail(p0)=3; p10=?. No. It is the result of the stated calculation on invented data, not proof of a wave structure or profit.
A testable condition and a wave strategy
For a study, freeze the source, timeframe, parameters, formula, availability time and alternative wave count first. Each section gives a local predicate with a threshold chosen for arithmetic practice. Record both positive and negative outcomes at bar close without selecting settings after seeing the result. Check a structural wave-rule violation from price separately.
RSI, averages, MACD and other price transforms share overlapping inputs. Several agreeing lines are not independent votes and do not supply probabilities that can be multiplied. A strategy test needs a separate sample and a predeclared outcome; simulated trades also need execution and cost assumptions. This lab supplies no trading performance, accuracy rate or product features.
| Value | Local research predicate |
|---|---|
| Bollinger Bands: the selected variance convention | t7: C>U |
| Keltner Channel: EMA and ATR | t7: C>U |
| Donchian Channel: current versus prior window | t9: C>P |
| Ichimoku: calculation, plotting and availability | t10: A10=B10; τ_avail(C10)=t10, τ_plot(C10)=t8 |
| ZigZag: candidate and delayed confirmation | t10: C≤108×0.97 |
Three price transforms agree. Does that provide three independent confirmations and establish the count?
No. Shared inputs create dependence; local filters are checked separately from price rules, and usefulness needs another sample.