Криптовалютная мультииндикаторная скальпинговая стратегия

EMA RSI MACD BB VOLUME
Дата создания: 2025-09-08 13:24:50 Последнее изменение: 2025-09-08 13:24:50
Копировать: 13 Количество просмотров: 520
2
Подписаться
319
Подписчики

Криптовалютная мультииндикаторная скальпинговая стратегия Криптовалютная мультииндикаторная скальпинговая стратегия

Насколько эффективна эта тактика?

Эта стратегия, как бы накинув на вашу торговлю “очи огня”, предназначена для сверхкоротких 1-минутных и 5-минутных сделок и объединяет в себе пять самых мощных технических показателей: медленную EMA, RSI, MACD, Brin Belt, а также фильтры загрузки.

Как играют в эту комбинацию?

Представьте, что эта стратегия похожа на супер строгого “интервьюера”, который отбирает только те сделки, которые удовлетворяют нескольким условиям одновременно:

Многоголовый сигнал должен удовлетворятьЦена должна быть выше быстрых ЭМА, MACD должен быть положительным, чтобы пробиться через Брин, RSI должен быть в пределах 50-80 и иметь достаточную поддержку. Это все равно, что требовать от человека высокой ценности, таланта и хорошего характера!

А вот пустые сигналы - наоборот.Все условия должны быть выполнены в обратном направлении, чтобы гарантировать, что каждая сделка будет обеспечена достаточной технической поддержкой.

Руководство по избежанию ям: почему выбрать сверхкороткую линию?

Самая умная часть этой стратегии заключается в ее управлении рисками! Стоп-лосс установлен на 0,5%, стоп-стоп - на 1,0%, а риск-прибыль соотношение достигает 1:2. Это как идеальная интерпретация “маленького романа” - каждый раз небольшие потери, но прибыль может быть удвоена!

Кроме того, он имеет ухоженный дизайн: он автоматически отключает распознавание формы на 1 минуте изображения, потому что K-образный шум сверхкоротких линий слишком велик и легко вводит в заблуждение. Это так же интеллектуально, как автоматическое подавление шума в шумной среде!

Как вы думаете, какую проблему может решить эта стратегия?

Подходит для людейДля тех, кто хочет торговать на криптовалютном рынке в течение дня, особенно для тех, кто хочет зарабатывать на небольших и частых сделках.

Устранение болевых ощущенийС помощью механизма многократного подтверждения значительно повышена надежность сигнала. При этом строгий контроль риска позволяет контролировать убытки, даже если вы ошибаетесь.

Имейте в виду, что эта стратегия - сложный хирургический инструмент, который лучше всего подходит для использования с высоколиквидной криптовалютной парой.

Исходный код стратегии
/*backtest
start: 2024-09-08 00:00:00
end: 2025-09-06 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT","balance":500000}]
*/

//@version=5
strategy("Advanced Crypto Scalping Strategy - 1 & 5 Min Charts", overlay=true, margin_long=100, margin_short=100)

// Inputs for customization (optimized for 1-min and 5-min timeframes)
emaFastLen = input.int(7, "Fast EMA Length", minval=1, tooltip="Use 5-8 for 1-min, 7-10 for 5-min")
emaSlowLen = input.int(14, "Slow EMA Length", minval=1, tooltip="Use 10-15 for 1-min, 14-21 for 5-min")
rsiLen = input.int(10, "RSI Length", minval=1, tooltip="Use 8-12 for 1-min, 10-14 for 5-min")
rsiOverbought = input.int(80, "RSI Overbought", minval=50, maxval=100, tooltip="Use 80-85 for 1-min, 75-80 for 5-min")
rsiOversold = input.int(20, "RSI Oversold", minval=0, maxval=50, tooltip="Use 15-20 for 1-min, 20-25 for 5-min")
macdFast = input.int(8, "MACD Fast Length", minval=1, tooltip="Use 6-10 for 1-min, 8-12 for 5-min")
macdSlow = input.int(21, "MACD Slow Length", minval=1, tooltip="Use 15-21 for 1-min, 21-26 for 5-min")
macdSignal = input.int(5, "MACD Signal Smoothing", minval=1, tooltip="Use 4-6 for 1-min, 5-9 for 5-min")
bbLen = input.int(15, "Bollinger Bands Length", minval=1, tooltip="Use 10-15 for 1-min, 15-20 for 5-min")
bbMult = input.float(1.8, "Bollinger Bands Multiplier", minval=0.1, step=0.1, tooltip="Use 1.5-1.8 for 1-min, 1.8-2.0 for 5-min")
slPerc = input.float(0.5, "Stop Loss %", minval=0.1, step=0.1, tooltip="Use 0.3-0.6 for 1-min, 0.5-0.8 for 5-min")
tpPerc = input.float(1.0, "Take Profit %", minval=0.5, step=0.1, tooltip="Use 0.8-1.2 for 1-min, 1.0-1.5 for 5-min")
useCandlePatterns = input.bool(false, "Use Candlestick Patterns", tooltip="Disable for 1-min to reduce noise, enable for 5-min")
useVolumeFilter = input.bool(true, "Use Volume Filter", tooltip="Enable for both timeframes to filter low-volume signals")
signalSize = input.float(2.0, "Signal Arrow Size", minval=1.0, maxval=3.0, step=0.5, tooltip="1.0=tiny, 2.0=small, 3.0=normal")
bgTransparency = input.int(85, "Background Highlight Transparency", minval=0, maxval=100)
labelOffset = input.float(0.8, "Label Offset %", minval=0.5, maxval=5, step=0.1)

// Calculate indicators
emaFast = ta.ema(close, emaFastLen)
emaSlow = ta.ema(close, emaSlowLen)
rsi = ta.rsi(close, rsiLen)
[macdLine, signalLine, _] = ta.macd(close, macdFast, macdSlow, macdSignal)
[bbMid, bbUpper, bbLower] = ta.bb(close, bbLen, bbMult)
volMa = ta.sma(volume, 15)

// Trend determination
bullTrend = close > emaFast and emaFast > emaSlow
bearTrend = close < emaFast and emaFast < emaSlow

// EMA crossover signals
emaCrossBuy = ta.crossover(emaFast, emaSlow)
emaCrossSell = ta.crossunder(emaFast, emaSlow)

// Momentum signals
bullMacd = ta.crossover(macdLine, signalLine) and macdLine > 0
bearMacd = ta.crossunder(macdLine, signalLine) and macdLine < 0

// Channel breakouts
bullBreak = ta.crossover(close, bbUpper)
bearBreak = ta.crossunder(close, bbLower)

// RSI conditions
bullRsi = rsi > 50 and rsi < rsiOverbought
bearRsi = rsi < 50 and rsi > rsiOversold

// Candlestick patterns (optional, less reliable on 1-min)
bullEngulf = close > open and open < low[1] and close > high[1] and useCandlePatterns
bearEngulf = close < open and open > high[1] and close < low[1] and useCandlePatterns
hammer = (high - low) > 2 * (close - open) and close > open and (close - low) / (high - low) > 0.6 and useCandlePatterns
shootingStar = (high - low) > 2 * (open - close) and close < open and (high - close) / (high - low) > 0.6 and useCandlePatterns

bullCandle = bullEngulf or hammer
bearCandle = bearEngulf or shootingStar

// Volume filter
volFilter = volume > volMa * 1.8 or not useVolumeFilter

// Combined buy/sell conditions
mainBuyCondition = bullTrend and bullMacd and bullBreak and bullRsi and bullCandle and volFilter
mainSellCondition = bearTrend and bearMacd and bearBreak and bearRsi and bearCandle and volFilter
buyCondition = mainBuyCondition or emaCrossBuy
sellCondition = mainSellCondition or emaCrossSell

// Strategy entries
var bool isBuyActive = false
var bool isSellActive = false

if (buyCondition and strategy.position_size == 0 and not isBuyActive)
    strategy.entry("Buy", strategy.long)
    label.new(bar_index, low * (1 - labelOffset / 100), emaCrossBuy ? "EMA BUY" : "BUY", color=color.green, style=label.style_label_up, textcolor=color.white, size=size.large)
    isBuyActive := true
    isSellActive := false

if (sellCondition and strategy.position_size == 0 and not isSellActive)
    strategy.entry("Sell", strategy.short)
    label.new(bar_index, high * (1 + labelOffset / 100), emaCrossSell ? "EMA SELL" : "SELL", color=color.red, style=label.style_label_down, textcolor=color.white, size=size.large)
    isSellActive := true
    isBuyActive := false

// Exits
if (strategy.position_size > 0) // Long position
    strategy.exit("Exit Buy", "Buy", stop=strategy.position_avg_price * (1 - slPerc / 100), limit=strategy.position_avg_price * (1 + tpPerc / 100))
    if (strategy.position_size == 0)
        isBuyActive := false

if (strategy.position_size < 0) // Short position
    strategy.exit("Exit Sell", "Sell", stop=strategy.position_avg_price * (1 + slPerc / 100), limit=strategy.position_avg_price * (1 - tpPerc / 100))
    if (strategy.position_size == 0)
        isSellActive := false

// Plot indicators
plot(emaFast, color=color.blue, title="Fast EMA")
plot(emaSlow, color=color.orange, title="Slow EMA")
plot(bbUpper, color=color.red, title="BB Upper")
plot(bbMid, color=color.gray, title="BB Mid")
plot(bbLower, color=color.green, title="BB Lower")

// Plot signals with fixed size to avoid type mismatch
plotshape(buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.normal)
plotshape(sellCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.normal)

// Background highlights
bgcolor(buyCondition ? color.new(color.green, bgTransparency) : sellCondition ? color.new(color.red, bgTransparency) : na)