Where the 1.37 Fibonacci extension gets rejected by a pin bar — mostly wick, little body. We hunt every occurrence across the most-traded stocks, test whether it actually predicts a move, and ship an MT5 robot that trades the survivors.
A pin bar is a rejection candle: a small body with one long wick. Price stabbed in one direction, then got slammed back. Two flavours:
Our rule: body ≤ 30% of range, one wick ≥ 55% of range, the opposite wick ≤ 20%. "Mostly wick, little candle."
Take the last swing leg — a low to a high (or high to low). Project it 137% beyond the end. That's the level where an over-extended move tends to run out of fuel.
For an up-leg: level = low + 1.37 × (high − low), sitting
above the swing high. A down-leg projects the mirror, below the low.
It's an overshoot target — exactly where you'd expect a rejection wick if the move is exhausted.
A pin bar whose dominant wick tags the 1.37 level, in the rejection direction. Here's a real one, pulled live from the data:
We scanned — candles across — of the highest-volume US stocks (60 days of 15-minute bars). Pick a name and see every signal. Green = it worked, red = it didn't.
We grade every signal with a triple-barrier test: does price travel ±1 ATR in the predicted direction first, within the next 12 bars? Run it across — resolved signals on — timeframes and you get…
A dead coin flip. Most people stop here and bin the strategy. But that single number hides the whole story — because it averages two very different worlds together. ↓
Split those same signals by the chart they fired on. The setup that looked dead suddenly has a pulse — on one timeframe, and not the other.
Same rule, same stocks, same grading. On the faster chart the 1.37 rejection actually leads price; on the slower one the level gets chewed through and the wick means nothing. Pick the timeframe and you've already made most of the decision. (DabsPro runs on any timeframe — this is just where the money is.)
Staying on the timeframe that works, two more conditions nudge the win-rate further — each weak alone, useful together.
Signals in the opening hours follow through; the dead middle of the session is where edges go to die.
A rejection on heavy relative volume is a crowd changing its mind — not one lonely wick.
Filter the — resolved signals live. Drag the knobs; watch the win-rate move across real trades. Start by switching the timeframe.
The whole strategy, automated for MetaTrader 5 — with the money management baked in, because a modest edge only survives with disciplined risk.
MQL5/Experts, compile in MetaEditor, demo first.
double CalcLots(double slDistPrice)
{
double capital = MathMin(AccountInfoDouble(ACCOUNT_EQUITY),
AccountInfoDouble(ACCOUNT_BALANCE));
double riskMoney = capital * InpRiskPercent / 100.0; // e.g. 0.5%
double tickVal = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE);
double tickSize = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE);
double tickCount = slDistPrice / tickSize; // SL distance in ticks
double lots = riskMoney / (tickCount * tickVal); // solve for size
return NormalizeLots(lots); // clamp to broker step
}
// + OrderCalcMargin pre-trade check, SYMBOL_TRADE_STOPS_LEVEL-aware
// SL/TP, and per-ticket initial-risk cache for correct break-even / trailing.