Chiến lược nâng cao với khối lượng và giá Pullback nhiều lợi nhuận

Tác giả:ChaoZhang, Ngày: 2023-12-12 15:39:19
Tags:

img

Tổng quan

Chiến lược này kết hợp chuyển động trung bình chéo, chỉ số sức mạnh tương đối (RSI) và khối lượng giao dịch được khuếch đại đáng kể để có được các vị trí dài / ngắn sau khi phát hiện một tỷ lệ phần trăm nhất định của sự rút lui trong giá trên các đỉnh khối lượng cao. Nó thiết lập các lệnh lấy lợi nhuận ba cấp để khóa các mức lợi nhuận khác nhau.

Nguyên tắc

Chỉ số RSI đánh giá các điều kiện mua quá mức / bán quá mức để tránh các kịch bản này cho các tín hiệu nhập cảnh mạnh mẽ hơn. Một sự gia tăng đáng kể so với khối lượng trung bình báo hiệu sự chuyển động giá tiềm năng thu hút sự chú ý của thị trường. Những đợt tăng khối lượng này củng cố sức mạnh của các tín hiệu nhập cảnh. Sau khi khối lượng tăng và giá tăng, các lệnh nhập cảnh được kích hoạt khi giá và khối lượng đã rút lại một tỷ lệ phần trăm nhất định, cho thấy sự điều chỉnh hoặc đảo ngược tiềm năng. Ba lệnh TP được sử dụng để thực hiện lợi nhuận. Mỗi mức TP đóng một phần vị trí khi đạt được mục tiêu lợi nhuận đã xác định trước. Một tính năng dừng kéo theo tùy chọn có sẵn cho TP. Một khi giá đạt được mục tiêu TP, mỗi lệnh dừng kéo theo để nắm bắt lợi nhuận nhiều hơn nếu giá giữ thuận lợi.

Các nguyên tắc tương tự cũng áp dụng cho các tín hiệu đầu vào và đầu ra ngắn.

Phân tích lợi thế

Ưu điểm chính của chiến lược này:

  1. Crossover của MAs nhanh / chậm kết hợp với RSI tạo ra các tín hiệu đầu vào mạnh mẽ, tránh các khu vực mua quá mức / bán quá mức để tăng tỷ lệ thắng.

  2. Số lượng tăng lên đảm bảo biến động giá lớn được nắm bắt để thiết lập vị trí, tăng cường sức mạnh tín hiệu.

  3. Cơ chế giảm giá / khối lượng tăng độ chính xác của thời gian nhập cảnh để nắm bắt cơ hội đảo ngược hoặc tăng trưởng.

  4. Các TP ba cấp sử dụng xu hướng tăng giá để khóa lợi nhuận dựa trên khả năng chấp nhận rủi ro.

  5. Việc dừng lại tùy chọn cho phép tính linh hoạt để có thể bảo tồn vốn trong khi vẫn giữ cơ hội lợi nhuận cao hơn tùy thuộc vào biến động thị trường.

  6. Áp dụng cho cả giao dịch dài và ngắn, lợi nhuận có thể được thực hiện trong cả thị trường xu hướng tăng hoặc giảm, tăng tính hữu ích.

Phân tích rủi ro

Mặc dù được thiết kế cẩn thận, giao dịch bất kỳ sản phẩm tài chính nào cũng có rủi ro.

  1. MA crossover không phải lúc nào cũng xác định chính xác xu hướng. Các tín hiệu sai có thể xảy ra nếu các thông số MA không phù hợp được sử dụng.

  2. Thiết lập thời gian RSI không chính xác có thể dẫn đến việc không tránh các khu vực mua quá mức / bán quá mức.

  3. Số lượng tăng không nhất thiết phải phù hợp hoàn hảo với những thay đổi giá đáng kể.

  4. Việc giảm giá/tháng lượng quá mức hoặc không đầy đủ ảnh hưởng đến thời gian nhập cảnh.

  5. Các mức lợi nhuận được đặt trước không thể đảm bảo thực hiện đầy đủ các lệnh TP. Sự thay đổi đột ngột của thị trường có thể gây ra trượt.

  6. Đặt lỗ dừng quá rộng có thể thoát khỏi các vị trí sớm và mất lợi nhuận lớn hơn.

Những rủi ro này đòi hỏi tối ưu hóa mã, điều chỉnh tham số và kiểm tra hậu quả nghiêm ngặt để đảm bảo độ tin cậy của chiến lược.

Hướng dẫn tối ưu hóa

Các cải tiến khác:

  1. Thêm các chỉ số khác như Bollinger Bands hoặc KD để hỗ trợ các quyết định nhập cảnh, cải thiện độ chính xác.

  2. Kết hợp các mô hình học máy như LSTM để thiết lập các MAs năng động tự động điều chỉnh các tham số theo điều kiện thị trường mới nhất, tăng cường nắm bắt xu hướng.

  3. Xây dựng trong động dừng lỗ / lợi nhuận dựa trên biến động thị trường để tự động điều chỉnh mức độ phù hợp.

  4. Sử dụng phân tích tích hợp để lựa chọn tối ưu yếu tố rút lui cho mỗi biến động giá trên toàn thị trường so với các mối tương quan cổ phiếu cá nhân, có được thời gian nhập khẩu tối ưu.

  5. Sử dụng các mô hình đa yếu tố với phân tích tình cảm, khai thác quy tắc liên kết, v.v. để chọn cổ phiếu có mối tương quan thay đổi giá / khối lượng cao nhất để thực hiện chiến lược nâng cao hiệu suất.

Kết luận

Đây là một chiến lược tuyệt vời cho các nhà giao dịch trung gian đến ngắn hạn sau khi nâng cao. Với các chức năng ngày càng mạnh mẽ và thông minh được xây dựng trên tối ưu hóa, nó mang lại những ưu điểm thực tế lớn cho giao dịch trực tiếp trong khi cố gắng cung cấp lợi nhuận vượt trội trên thị trường với rủi ro được kiểm tra chặt chẽ. Là một chiến lược định lượng tiến bộ, nó là ví dụ về giao dịch ổn định và thận trọng.


/*backtest
start: 2023-11-11 00:00:00
end: 2023-12-11 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Advanced Strategy with Volume and Price Retracement and Multi-Take Profit (USDT)", overlay=true)

// Parametreler
fastLength = input(12, minval=1, title="Fast Moving Average")
slowLength = input(26, minval=1, title="Slow Moving Average")
rsiPeriod = input(14, minval=1, title="RSI Period")
volLength = input(20, minval=1, title="Volume MA Length")
volMultiplier = input(2.0, title="Volume Spike Multiplier")
trailOffset = input(1, title="Trailing Offset (%)")
usdtPerTrade = input(50000, title="USDT per Trade")
retraceFactor = input(0.8, title="Retracement Factor for Entry")
takeProfit1 = input(1, title="Take Profit 1 (%)")
takeProfit2 = input(2, title="Take Profit 2 (%)")
takeProfit3 = input(3, title="Take Profit 3 (%)")
trailForTP = input(true, title="Use Trailing Stop for Take Profits")

// Hesaplamalar
fastMA = sma(close, fastLength)
slowMA = sma(close, slowLength)
rsi = rsi(close, rsiPeriod)
volMA = sma(volume, volLength)
volumeSpike = volume > volMA * volMultiplier

// Durum Değişkenleri ve Saklanan Değerler
var float spikeVolume = na
var float spikePrice = na
var int direction = 0

// Alım/Satım Sinyalleri
longCondition = crossover(fastMA, slowMA) and rsi < 70
shortCondition = crossunder(fastMA, slowMA) and rsi > 30

// Hacim Spike ve Fiyat Hareketinin Saklanması
if (longCondition and volumeSpike)
    spikeVolume := volume
    spikePrice := close
    direction := 1
else if (shortCondition and volumeSpike)
    spikeVolume := volume
    spikePrice := close
    direction := -1

// Retracement Kontrolü ve Giriş Emirleri
if (direction == 1 and volume < spikeVolume * retraceFactor and close < spikePrice * (1 - trailOffset / 100))
    strategy.entry("Long", strategy.long, qty=usdtPerTrade / close)
    spikeVolume := na
    direction := 0
else if (direction == -1 and volume < spikeVolume * retraceFactor and close > spikePrice * (1 + trailOffset / 100))
    strategy.entry("Short", strategy.short, qty=usdtPerTrade / close)
    spikeVolume := na
    direction := 0

// Take Profit Emirleri
if strategy.position_size > 0
    strategy.exit("TP1", "Long", limit=strategy.position_avg_price * (1 + takeProfit1 / 100), qty_percent=33, trail_offset=trailForTP ? atr(14) / 2 : na)
    strategy.exit("TP2", "Long", limit=strategy.position_avg_price * (1 + takeProfit2 / 100), qty_percent=33, trail_offset=trailForTP ? atr(14) : na)
    strategy.exit("TP3", "Long", limit=strategy.position_avg_price * (1 + takeProfit3 / 100), qty_percent=34, trail_offset=trailForTP ? atr(14) * 1.5 : na)

if strategy.position_size < 0
    strategy.exit("TP1", "Short", limit=strategy.position_avg_price * (1 - takeProfit1 / 100), qty_percent=33, trail_offset=trailForTP ? atr(14) / 2 : na)
    strategy.exit("TP2", "Short", limit=strategy.position_avg_price * (1 - takeProfit2 / 100), qty_percent=33, trail_offset=trailForTP ? atr(14) : na)
    strategy.exit("TP3", "Short", limit=strategy.position_avg_price * (1 - takeProfit3 / 100), qty_percent=34, trail_offset=trailForTP ? atr(14) * 1.5 : na)

// Pozisyon çıkışları
strategy.close("Long", when=shortCondition)
strategy.close("Short", when=longCondition)


Thêm nữa