
Esta não é uma estratégia de choque comum. A estratégia de descascamento de zona de prostitutas determina a zona de negociação através de um período de tempo de 60 minutos, procurando o ponto de entrada exato do Brinco + RSI no período de tempo baixo. A identificação de zona de 96 ciclos combina com a zona de 20 ciclos de Brinco, formando um sistema de negociação de zona completo.
A lógica central da estratégia é direta: o preço deve estar dentro do intervalo definido pelo HTF e entrar em contato com o sinal de superavenda do RSI ao atingir o limite da faixa de Brin. O sinal de múltiplas cabeças exige que o preço esteja abaixo do Brin e o RSI esteja abaixo de 30, e o sinal de vazio exige que o preço esteja acima do Brin e o RSI esteja acima de 70.
A diferença padrão de 2.0x da faixa de Brin não é uma configuração aleatória. A estatística nos diz que 95% das flutuações de preços ocorrem dentro de 2x da diferença padrão, o que significa que a probabilidade de atingir a fronteira é de apenas 5%. Quando o preço quebra essa fronteira de probabilidade, a probabilidade de regressar ao eixo central aumenta significativamente.
O comprimento da faixa de Brin de 20 ciclos encontra um ponto de equilíbrio entre capturar oscilações de curto prazo e evitar a hipersensibilidade. É mais estável do que o ciclo 14 e mais sensível do que o ciclo 26. Em combinação com o RSI de 14 ciclos, forma-se uma combinação de confirmação de dinamismo clássica.
A tolerância de 0.25% de VWAP foi projetada de forma inteligente. A estratégia suspendeu a negociação quando o preço se desviou mais de 0.25% do VWAP. Esta condição de filtragem, aparentemente insignificante, permitiu evitar períodos anormais em que o preço se desviou drasticamente da média na negociação real.
O VWAP representa o preço médio ponderado pelo volume de transação do dia e é uma referência importante para os comerciantes institucionais. Quando os preços oscilam perto do VWAP, o mercado geralmente está em um estado de equilíbrio relativo, mais adequado para que as estratégias de negociação intercalar funcionem.
A estratégia oferece dois tipos de paragem: paragem no eixo central e paragem na borda. A paragem no eixo central é mais conservadora, com o alvo na linha central da faixa de Bryn; a paragem na borda é mais radical, com o alvo na outra fronteira do intervalo HTF. Os dados de retrospectiva mostram que a paragem no eixo central tem maior taxa de vitória, mas menor ganho individual.
O amortecimento de parada de 0,15% foi concebido de forma razoável. O ponto de parada de 0,15% está localizado fora da fronteira do intervalo HTF, deixando espaço para a flutuação normal do preço e impedindo a parada em tempo hábil em caso de uma verdadeira ruptura. Esta proporção de amortecimento foi otimizada para equilibrar a frequência de parada e o efeito de proteção.
A posição máxima é limitada a 20% do capital da conta, um ponto de equilíbrio entre o comércio radical e o controle de risco. É mais radical do que o 10% tradicionalmente recomendado, mas uma configuração de posição de 20% é razoável, considerando as características de alta frequência da estratégia e a margem de parada relativamente pequena.
A posição dinâmica é calculada com base no valor líquido da conta em tempo real, garantindo que a abertura de risco de cada transação seja relativamente estável. Quando o valor líquido da conta aumenta, a posição absoluta aumenta; Quando o valor líquido diminui, a posição se reduz automaticamente, formando um mecanismo natural de regulação de risco.
A estratégia funciona melhor em mercados de oscilação horizontal, especialmente para variedades com uma taxa de flutuação moderada. Não funciona bem em mercados de forte tendência, pois os preços são fáceis de quebrar a faixa HTF, provocando frequentes paradas. É recomendado usar dentro da faixa 15-25 do índice VIX, evitando períodos de pânico extremo ou de ganância extrema.
O melhor momento de negociação é o período de sobreposição entre a Europa e os EUA (de 21:00 a 24:00 horas de Pequim), quando há bastante liquidez e os preços flutuam com relativa regularidade. O período asiático pode ocorrer saltos de preços devido à falta de liquidez, o que afeta a eficácia da execução da estratégia.
A retrospectiva histórica não representa o lucro futuro, a estratégia tem o risco de perdas contínuas. Especialmente quando a estrutura do mercado muda significativamente, os parâmetros otimizados com base em dados históricos podem falhar. Recomenda-se a revisão periódica e o ajuste dos parâmetros.
Em um evento de Black Swan, o intervalo de HTF pode falhar instantaneamente, o que pode impedir a execução de stop loss em tempo hábil. Recomenda-se o estabelecimento de limites máximos de retirada em nível de conta, suspendendo a negociação se os prejuízos do dia ultrapassarem 5% do valor líquido da conta. A estratégia não é adequada para uso antes e depois de eventos financeiros significativos, evitando eventos de alto impacto, como decisões do banco central, dados não agrícolas.
||
This isn’t your average oscillation strategy. The Maiko Range Scalper leverages 60-minute HTF to define trading ranges while hunting for precise Bollinger Band + RSI entries on lower timeframes. The 96-period range identification combined with 20-period Bollinger Bands creates a complete range-trading ecosystem.
Core logic is crystal clear: price must stay within HTF-defined range, entering when touching Bollinger boundaries with RSI confirmation. Long signals require price ≤ lower band AND RSI ≤ 30, short signals need price ≥ upper band AND RSI ≥ 70. This dual confirmation effectively filters out numerous false signals.
The 2.0x Bollinger multiplier isn’t arbitrary. Statistics tell us 95% of price movements occur within 2 standard deviations, meaning boundary touches have only 5% probability. When price breaks this probability barrier, mean reversion likelihood increases significantly.
20-period Bollinger length strikes the perfect balance between capturing short-term volatility and avoiding excessive sensitivity. More stable than 14-period, more responsive than 26-period. Combined with 14-period RSI, it forms the classic momentum confirmation combo. RSI 30⁄70 thresholds are more conservative than traditional 20⁄80, reducing false signals in extreme markets.
The 0.25% VWAP tolerance is brilliantly designed. When price deviates beyond 0.25% from VWAP, strategy pauses trading. This seemingly minor filter condition effectively avoids periods when price dramatically deviates from mean value.
VWAP represents volume-weighted average price for the session, a crucial benchmark for institutional traders. When price oscillates near VWAP, markets typically maintain relative balance, creating ideal conditions for range trading strategies.
Strategy offers two profit-taking modes: mid-band exit and opposite-band exit. Mid-band is more conservative, targeting Bollinger middle line; opposite-band is more aggressive, targeting the other HTF range boundary. Backtesting shows mid-band mode achieves higher win rate but smaller per-trade profits.
0.15% stop-loss buffer design is well-calibrated. Stop-loss sits 0.15% outside HTF range boundaries, providing normal fluctuation room while cutting losses on genuine breakouts. This buffer percentage balances stop frequency with protection effectiveness.
Maximum position limited to 20% of account equity balances aggressive trading with risk control. More aggressive than traditional 10% recommendations, but considering strategy’s high-frequency nature and relatively small stop-loss ranges, 20% allocation is reasonable.
Dynamic position calculation based on real-time account equity ensures consistent risk exposure per trade. When account grows, absolute position size increases; when equity drops, positions automatically reduce, creating natural risk adjustment mechanism.
Strategy performs best in sideways choppy markets, particularly suitable for moderate volatility instruments. Poor performance in strong trending markets where price easily breaks HTF ranges, triggering frequent stop-losses. Recommend usage when VIX between 15-25, avoiding extreme fear or greed periods.
Optimal trading hours are European-American overlap (9:00 PM - 12:00 AM Beijing time) when liquidity is abundant and price movements relatively regular. Asian sessions may produce price gaps due to insufficient liquidity, affecting strategy execution.
Historical backtesting doesn’t guarantee future returns; strategy carries consecutive loss risks. Especially when market structure undergoes major changes, parameters optimized on historical data may become ineffective. Regular parameter review and adjustment recommended.
During black swan events, HTF ranges may instantly fail, preventing timely stop-loss execution. Suggest implementing account-level maximum drawdown limits, suspending trading when daily losses exceed 5% of account equity. Strategy unsuitable around major economic events; avoid central bank decisions, NFP releases, and other high-impact announcements.
[/trans]
/*backtest
start: 2025-08-24 00:00:00
end: 2025-08-31 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Maiko Range Scalper (Sideways BB + RSI) – v4 clean",
overlay=true,
initial_capital=5000,
commission_type=strategy.commission.percent, commission_value=0.06)
// ===== Inputs =====
tfHTF = input.timeframe("60", "HTF voor range (15 of 60)")
lenRange = input.int(96, "HTF lookback voor range (bars)", minval=10)
bbLen = input.int(20, "Bollinger lengte", minval=5)
bbMult = input.float(2.0, "Bollinger std dev", step=0.1)
rsiLen = input.int(14, "RSI lengte", minval=5)
rsiLong = input.int(30, "RSI drempel Long ≤", minval=5, maxval=50)
rsiShort = input.int(70, "RSI drempel Short ≥", minval=50, maxval=95)
useVWAP = input.bool(false, "Extra filter: prijs nabij VWAP (±X%)")
vwapBand = input.float(0.25, "VWAP tolerantie %", step=0.05)
tpMode = input.string("Mid band", "Take-Profit doel", options=["Mid band","Tegenoverliggende band/Range"])
slBufferP = input.float(0.15, "SL buffer buiten range (%)", step=0.05, minval=0.05)
maxPosPct = input.float(20, "Max positie t.o.v. account (%)", step=1)
// ===== HTF Range (MTF) =====
htfHigh = request.security(syminfo.tickerid, tfHTF, ta.highest(high, lenRange))
htfLow = request.security(syminfo.tickerid, tfHTF, ta.lowest(low, lenRange))
rangeMid = (htfHigh + htfLow) / 2.0
// ===== LTF Indicatoren =====
basis = ta.sma(close, bbLen)
dev = ta.stdev(close, bbLen) * bbMult
bbU = basis + dev
bbL = basis - dev
rsi = ta.rsi(close, rsiLen)
vwapV = ta.vwap
// ===== Filters =====
inRange = (close <= htfHigh) and (close >= htfLow)
vwapOK = not useVWAP or (math.abs(close - vwapV) / vwapV * 100 <= vwapBand)
// ===== Signalen =====
longCond = inRange and vwapOK and (close <= bbL) and (rsi <= rsiLong)
shortCond = inRange and vwapOK and (close >= bbU) and (rsi >= rsiShort)
// ===== Position sizing =====
equity = strategy.equity
maxQtyValue = equity * (maxPosPct / 100.0)
qty = maxQtyValue / close
// ===== Stops & Targets =====
longSL = htfLow * (1.0 - slBufferP / 100.0)
shortSL = htfHigh * (1.0 + slBufferP / 100.0)
longTP = tpMode == "Mid band" ? basis : math.max(basis, htfHigh)
shortTP = tpMode == "Mid band" ? basis : math.min(basis, htfLow)
// ===== Huidige positie =====
isFlat = strategy.position_size == 0
isLong = strategy.position_size > 0
isShort = strategy.position_size < 0
// ===== Orders =====
if (longCond and (isFlat or isShort))
strategy.entry("Long", strategy.long, qty=qty)
strategy.exit("L-Exit", from_entry="Long", stop=longSL, limit=longTP)
if (shortCond and (isFlat or isLong))
strategy.entry("Short", strategy.short, qty=qty)
strategy.exit("S-Exit", from_entry="Short", stop=shortSL, limit=shortTP)
// ===== Plots =====
plot(htfHigh, "HTF Resistance", color=color.new(color.red, 0), linewidth=2)
plot(htfLow, "HTF Support", color=color.new(color.green, 0), linewidth=2)
plot(basis, "BB Basis", color=color.new(color.blue, 0))
plot(bbU, "BB Upper", color=color.new(color.blue, 0))
plot(bbL, "BB Lower", color=color.new(color.blue, 0))
plot(vwapV, title="VWAP", color=color.new(color.purple, 0), display=useVWAP ? display.all : display.none)
// ===== Signal markeringen =====
plotshape(longCond, title="Long signal", style=shape.triangleup, location=location.belowbar, size=size.tiny, color=color.new(color.green, 0))
plotshape(shortCond, title="Short signal", style=shape.triangledown, location=location.abovebar, size=size.tiny, color=color.new(color.red, 0))
// ===== Alerts =====
alertcondition(longCond, title="Long Setup", message="Long setup: BB bounce + RSI in HTF-range")
alertcondition(shortCond, title="Short Setup", message="Short setup: BB bounce + RSI in HTF-range")