A high Stochastic reading can accompany strength rather than announce a reversal. This research strategy asks whether a fresh move into a strong zone followed by a timely price breakout defines a useful population to test. The oscillator origin, frozen range and first breakout have separate clocks. Every history, quote and cash outcome below is fictional.
1. State a distinct momentum-breakout hypothesis
This version studies strength entering a new zone and then breaking a price boundary. It differs from the existing Stochastic pullback strategy, which waits for recovery out of an opposing extreme. There is no EMA trend gate, divergence pivot or fresh K/D-cross requirement in this model.
Use EUR/USD H1 Bid candles and one flat account with no pending or unresolved request. Observe each close continuously; after a restart, skip missed origins. The settings and thresholds are declared research choices, not optimized parameters or evidence of an advantage.
2. Fix the exact Stochastic calculation
Use (n, s, d) = (14, 3, 3), Low/High prices and zero display shift. Here 1 pip = 0.0001; point = tick = 0.00001. For each completed candle, calculate R[t] = 100 × (Close[t] − LL14[t]) / (HH14[t] − LL14[t]), then K[t] = SMA3(R)[t]; D[t] = SMA3(K)[t]. A zero range makes R unavailable; any smoothing window containing an unavailable input also remains unavailable.
This is an ordinary average of raw ratios. The published MetaQuotes example uses a ratio of summed distances and ranges, which can differ; the CSV comparison columns do not drive this strategy. First raw, K and D values occur at k = 13, 15, 17. A zone origin can first be tested at k = 17, because it needs previous K and current D, not a previous D pair. Require all eighteen supporting candles to be valid and hourly adjacent.
3. Create one fresh strong-zone origin P
For BUY require K[P−1] ≤ 80 ∧ K[P] > 80 ∧ K[P] > D[P]. For SELL require K[P−1] ≥ 20 ∧ K[P] < 20 ∧ K[P] < D[P]. A continuing extreme is not another origin; equality at the current threshold fails. Ignore new origins while an episode or exposure is active.
At P freeze U = max(High[P−5 … P−1]); L = min(Low[P−5 … P−1]) and W = U − L; 8 ≤ W / pip ≤ 30. Require L < Close[P] < U. P is excluded from that reference range. An origin already closing outside is rejected, rather than relabelled as a later breakout. Also require P’s whole candle to stay strictly inside the planned stop boundary.
4. Consume the first breakout within three candles
Only q ∈ {P+1, P+2, P+3} can qualify. Before checking price, cancel for missing data, a broken hourly interval, a different UTC close date, a stop touch or lost momentum. BUY must keep K[q] > 80 ∧ K[q] > D[q]; SELL must keep K[q] < 20 ∧ K[q] < D[q] on every intervening candle. Equality cancels.
For BUY inspect the first close strictly above U; for SELL the first strictly below L. Require a candle body in that direction and an outside distance of 1 ≤ overshoot_pips ≤ 3. A first outside close failing either condition consumes the episode. A close exactly at the edge is still inside. On P+3 test a valid breakout before expiry; later candles cannot repair an earlier weak break or extend the timer.
5. Freeze protection from the original range
Use BUY: SL = L − 1 pip; TP = U + 2 × W and SELL: SL = U + 1 pip; TP = L − 2 × W. These levels are known at P and remain fixed. The origin and every waiting candle must have BUY Low strictly above SL, or SELL High strictly below SL. A touch cancels before breakout qualification.
Both histories are Bid OHLC. BUY SL and TP are Bid levels; SELL SL and TP are Ask thresholds derived numerically from the frozen Bid range, not measured Ask swing extremes. Require legal tick prices and supported protection. Never widen a stop or move a target to admit an unattractive quote. The range projection is not two times actual net risk.
6. Separate the first quote from the sending deadline
After q becomes available, consume exactly its first observed two-sided quote. Require positive ordered Bid/Ask, documented age at transmission 0 ≤ age_seconds ≤ 2 and a request strictly before q.close_UTC + 20 seconds. The quote must stay unchanged through preflight; otherwise cancel. No first quote before expiry also means no entry.
Requests are allowed only during 08:00 ≤ t_UTC < 16:00. In the example q covers 09:00–10:00 UTC, the quote arrives at 10:00:02, request at 10:00:03 and assumed fill at 10:00:04. A request at 10:00:20 UTC is too late. Recheck time before sending and use compatible clock domains for age. These seconds constrain an unsent request, not a broker’s pending-order expiration field.
7. Apply executable-side and full-cost gates
Require spread at most 1.2 pips, BUY Bid strictly above U or SELL Ask strictly below L, and the relevant exit-side quote strictly between SL and TP. Plan BUY E* = Ask + 0.2 pip; SELL E* = Bid − 0.2 pip. Directional distance from q.close to E* must be 0 … 2 pips, inclusive. E* is a sizing allowance, not an executable request price.
Calculate positive stop and target distances from E*. Add round-trip commission, future exit reserve and financing reserve to planned loss; subtract them from gain. Require G_net / L_net ≥ 1.5. Examples use commission = 0.6 pip; exit reserve = 0.4 pip; financing reserve = 0. Unknown applicable costs, contract rules, protection or margin mean rejection. Spread and entry reserve are already in E*: do not subtract them twice.
8. Reproduce the BUY origin and first breakout
At P = 40, previous K is 75; current K is 85 and D approximately 73.888889. The frozen range is L = 1.10000; U = 1.10200; W = 20 pips. P closes at 1.10180 inside it. The first outside close is q = 41; Close[q] = 1.10210, one pip above U, with a bullish body. K is approximately 88.768116 and D 82.922705.
Protection remains Bid SL = 1.09990; Bid TP = 1.10600. The first quote is Bid 1.10210 / Ask 1.10220 and planned E* 1.10222. Gross risk is 23.2 pips and reward 37.8. After the one-pip combined cost allowance, L_net = 24.2 pips; G_net = 36.8 pips, giving 36.8 / 24.2 ≈ 1.520661. Broker permissions and execution are assumed separately.
9. Reject a weak first break without borrowing the next candle
The separate weak-break history shares the same origin and frozen range. Its first outside close is 1.10205, only 0.5 pip above U. K remains in the upper zone and the body points upward, but the minimum one-pip breakout requirement fails. The episode is consumed immediately.
The following candle closes at 1.10220, a two-pip break. It cannot repair the prior failure. A continuing K above 80 does not create a new origin. Only a later independent fresh threshold crossing, with a new valid reference range and flat account, can start another episode. The rejection is a model rule, not proof that the later market move was untradeable.
10. Keep independent quote alternatives separate
With the admitted BUY quote, the ratio passes. An independent alternative planned entry of E* = 1.10224 gives 36.6 / 24.4 = 1.5, so equality passes. At E* = 1.10225, net gain is 36.5 pips and planned loss 24.5, producing 36.5 / 24.5 ≈ 1.489796; reject even though spread and entry distance pass.
A separate first spread of 1.3 pips fails despite an acceptable ratio. These rows represent alternative first observations, not successive quotes to shop among. After a poor quote, expiry or explicit rejection, do not retry this breakout. Reconcile any uncertain request before allowing a new episode.
| Side | Planned E* | Fixed SL | Fixed TP | Net loss, pips | Net gain, pips | Net ratio |
|---|---|---|---|---|---|---|
| BUY | 1.10222 | 1.09990 | 1.10600 | 24.2 | 36.8 | 1.520661 |
| BUY | 1.10225 | 1.09990 | 1.10600 | 24.5 | 36.5 | 1.489796 |
| SELL | 1.09787 | 1.10010 | 1.09400 | 23.3 | 37.7 | 1.618026 |
11. Mirror SELL while checking Ask separately
Reflect the BUY history with price_sell = 2.20000 − price_buy. Its origin has K below 20, and q closes at 1.09790 below the frozen lower edge 1.09800. Protection is Ask SL = 1.10010; Ask TP = 1.09400. An independent quote Bid 1.09790 / Ask 1.09800 fails because Ask is exactly at the edge, even though its net ratio passes.
The admitted SELL alternative is Bid = 1.09789; Ask = 1.09799; E* = 1.09787. Planned loss is 23.3 pips and gain 37.7, giving 37.7 / 23.3 ≈ 1.618026. A reflected Bid history does not imply identical BUY/SELL costs, or prove that Ask touched a SELL exit. Record executable-side observations separately.
12. Confirm execution and handle uncertain requests
Check actual tick size, volume step, free margin, protection constraints and account state before sending at most one market-entry request. Use the current permitted quote side; do not replace it with the fictitious E* allowance. A qualified breakout and an accepted numerical plan are not confirmed orders.
Confirm ticket, actual fill, volume and protection. A timeout may conceal a fill, so reconcile rather than resend. If the fill violates the admitted plan or protection fails, stop new entries, establish the real position and seek an executable close without widening the original stop. Keep every resulting cost. The reserves and cash budget do not guarantee a maximum real loss.
13. Round position size down from complete planned loss
Assume a USD account, EUR 100000 contract per lot, USD 10 per pip per lot, USD 25 cash budget and 0.01 lot step. BUY loss of 24.2 pips costs USD 242 per lot: floor((25 / 242) / 0.01) × 0.01 = 0.10 lot. Planned cash loss is USD 24.20; conditional target gain is USD 36.80.
SELL loss of 23.3 pips likewise permits 0.10 lot, with planned loss USD 23.30 and conditional target gain USD 37.70. Actual contract, account-currency values and margin need separate verification. If the minimum permitted lot exceeds the budget, skip. The chosen cash amount is an illustration, not a recommended risk size.
14. Define exits before interpreting conditional outcomes
Keep SL/TP fixed. After entry, request an exit at the first executable quote when a completed candle no longer satisfies the directional momentum condition; unavailable required data also triggers reconciliation and an exit attempt. Independently close at q.close_UTC + 4 h, which is 14:00 UTC here. The clock begins at the breakout close, not the later fill. Protection stays active while an exit is pending.
At an assumed BUY fill of 1.10222 and 0.10 lot, independent target and stop scenarios yield USD +36.80 and USD −24.20 under the stated reserve. A separate time scenario assumes no earlier exit: Bid 1.10450, exit fill 1.10446 and 0.6-pip commission give 21.8 net pips = USD 21.80. If both protection boundaries appear inside one OHLC candle without quote order, mark the outcome unresolved. Never reverse on a signal recognized while exposure or a request was unresolved.
15. Recalculate three files without inventing a backtest
The first CSV supplies 240 fictional H1 rows in three histories: BUY, reflected SELL and rejected weak first break. K/D values come from their complete declared OHLC. The ratio-of-sums columns are comparison values only. The selected-origin episode is a signal demonstration, not a continuous account simulation.
The other files contain seven independent quote plans and five conditional exits. Exact rational comparisons precede twelve-decimal CSV display rounding. Recompute with information available at each event; preserve failures, missing observations and unresolved fills. No observed trades, win rate or measured return can be inferred from these constructed cases.
Download three fictional H1 histories, computed Stochastic and selected-origin episodes (CSV)
Download seven independent first-quote plans and admission gates (CSV)
16. Test the hypothesis against unseen data and costs
Freeze data conventions, parameters, event order and execution assumptions before evaluation. Count every eligible origin and consumed episode. Test choppy markets, fast reversals, weak first breaks, timestamp gaps, higher costs, unavailable financing estimates and uncertain execution, not just attractive examples.
Use representative recorded Bid/Ask data, an untouched evaluation sample and forward observation. Compare nearby choices without treating the best retrospective setting as proof. The guide explains the indicator; this article adds one explicit breakout hypothesis. Reproducible calculations establish internal consistency, not predictive value.
Frequently asked questions
Why buy when Stochastic is already above 80?
This hypothesis treats a fresh upper-zone event as possible strength, then requires a separate timely price breakout. It does not claim that high readings make a profitable entry.
Is a fresh K/D crossover required?
No. BUY requires K above D and SELL K below D, while the fresh event is K crossing the 80 or 20 threshold. Changing that event creates a different model.
Can a second, stronger price breakout replace a weak first one?
No. The first outside close consumes the episode even if its body or overshoot fails. A later candle cannot repair that episode.
Will identical 14/3/3 inputs always match MetaTrader?
No. This reference averages raw location ratios. A ratio-of-sums slowing calculation, another feed or different price field can change K/D. Verify the installed implementation.
Why can a SELL fail after Bid breaks the lower edge?
SELL admission also requires Ask strictly below that frozen edge. Bid alone does not establish the executable Ask condition or a SELL exit.
Are the cash outcomes measured performance?
No. They are independent conditional calculations using fictional candles and supplied quotes, costs and fills. Real losses can exceed the planning reserves.
Sources and research notes
TradingView documents the average-of-ratios construction; the published MetaQuotes example documents ratio-of-sums slowing. The origin, frozen range, first-break deadline, cost gates and fictional cases are original research choices. Neither reference validates this strategy’s performance.
Educational research hypothesis. Fictional OHLC, independent quote plans and conditional exits; no observed trading performance, continuous account backtest, measured advantage or guarantee.