Chiến lược Scalping kết hợp đa chỉ báo tiền điện tử

EMA RSI MACD BB VOLUME
Ngày tạo: 2025-09-08 13:24:50 sửa đổi lần cuối: 2025-09-08 13:24:50
sao chép: 13 Số nhấp chuột: 520
2
tập trung vào
319
Người theo dõi

Chiến lược Scalping kết hợp đa chỉ báo tiền điện tử Chiến lược Scalping kết hợp đa chỉ báo tiền điện tử

Ồ, chiến thuật này mạnh đến mức nào?

Nó được thiết kế đặc biệt cho giao dịch siêu ngắn 1 phút và 5 phút, kết hợp 5 chỉ số kỹ thuật mạnh nhất: EMA, RSI, MACD, Bollinger Bands, và bộ lọc khối lượng giao dịch. Nói một cách đơn giản, nó cho phép bạn nắm bắt cơ hội chính xác trong mỗi biến động nhỏ của thị trường!

“Đây là một cú đánh tập trung!

Hãy tưởng tượng chiến lược này giống như một “người phỏng vấn” cực kỳ nghiêm ngặt, chỉ có những cơ hội giao dịch đáp ứng được nhiều điều kiện cùng một lúc mới được chọn lọc:

Các tín hiệu đa đầu phải được đáp ứngGiá trên đường EMA nhanh, MACD dương, phá vỡ đường dây Brin, RSI ở mức 50-80 và có đủ khối lượng giao dịch để hỗ trợ. Điều này giống như yêu cầu một người có giá trị cao, tài năng và tính cách tốt!

Tín hiệu đầu trống là ngược lại.Tất cả các điều kiện phải được đáp ứng ngược lại, đảm bảo rằng mỗi giao dịch được hỗ trợ kỹ thuật đầy đủ.

Hướng dẫn tránh hố: Tại sao chọn đường siêu ngắn?

Điểm thông minh nhất của chiến lược này nằm ở việc kiểm soát rủi ro của nó! Stop loss được đặt ở mức 0.5%, stop loss được đặt ở mức 1.0%, và tỷ lệ lợi nhuận với rủi ro là 1:2. Giống như một cách diễn giải hoàn hảo của “tình yêu nhỏ” - mỗi lần thua lỗ là rất nhỏ, nhưng lợi nhuận có thể tăng gấp đôi!

Và nó cũng có một thiết kế thông minh: Nó sẽ tự động tắt nhận dạng hình dạng photon trong 1 phút, vì tiếng ồn hình dạng K của đường dây siêu ngắn quá lớn và dễ bị đánh lừa. Nó cũng thông minh như việc tự động giảm tiếng ồn trong môi trường ồn ào!

Ứng dụng trong chiến trường: Chiến lược này giúp bạn giải quyết vấn đề gì?

Phù hợp với đám đôngCác bạn muốn giao dịch trong ngày trên thị trường tiền điện tử, đặc biệt là những người muốn tích lũy lợi nhuận thông qua giao dịch nhỏ và thường xuyên.

Giải quyết vấn đềVô số tín hiệu giả của chỉ số duy nhất đã bị cản trở! Sự tin cậy của tín hiệu đã được nâng cao đáng kể thông qua cơ chế xác nhận nhiều lần. Đồng thời, việc kiểm soát rủi ro nghiêm ngặt cho phép bạn kiểm soát được thiệt hại ngay cả khi phán đoán sai.

Hãy nhớ rằng chiến lược này giống như một con dao phẫu thuật tinh tế, cần được sử dụng hiệu quả nhất trên các cặp tiền điện tử có tính thanh khoản cao.

Mã nguồn chiến lược
/*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)