Tài nguyên đang được tải lên... tải...

Chiến lược Stop Loss & Take Profit trung bình di chuyển trơn tru với bộ lọc xu hướng và thoát ngoại lệ

Tác giả:ChaoZhang, Ngày: 2024-06-03 16:54:04
Tags:SMARSITRMATPSL

img

Tổng quan

Chiến lược này sử dụng các chỉ số như Smooth Moving Average (SMA), Relative Strength Index (RSI), True Range (TR), và Volume Moving Average (Volume MA) kết hợp với các bộ lọc xu hướng, khối lượng và điều kiện biến động để thực hiện giao dịch khi các tiêu chí cụ thể được đáp ứng. Ý tưởng chính đằng sau chiến lược này là vào một vị trí dài khi giá dưới SMA200, xu hướng giảm, và cả khối lượng và biến động đều thấp. Mức dừng lỗ và lấy lợi nhuận được thiết lập khi nhập. Ngoài ra, chiến lược kết hợp một cơ chế thoát ngoại lệ, đóng vị trí khi RSI vượt quá 70 hoặc khi mức dừng lỗ hoặc lấy lợi nhuận đã được đặt trước đạt được.

Nguyên tắc chiến lược

  1. Tính toán các chỉ số như SMA, RSI, Volume MA và TR MA
  2. Xác định xem xu hướng hiện tại là tăng hay giảm
  3. Kiểm tra xem khối lượng và biến động hiện tại có thấp không
  4. Nhập vị trí dài khi giá dưới SMA200 và các điều kiện về khối lượng và biến động thấp được đáp ứng
  5. Đặt giá dừng lỗ ở mức 95% và giá lấy lợi nhuận ở mức 150% giá nhập cảnh
  6. Ra khỏi giao dịch khi chỉ số RSI vượt quá 70 hoặc khi mức dừng lỗ hoặc lấy lợi nhuận đã được đặt trước được đạt đến
  7. Lực đóng vị trí khi xu hướng thay đổi và giá phá vỡ SMA

Phân tích lợi thế

  1. Chiến lược này kết hợp nhiều chỉ số kỹ thuật để phân tích toàn diện hơn về điều kiện thị trường
  2. Bộ lọc xu hướng và điều kiện khối lượng / biến động giúp tránh giao dịch trong môi trường thị trường không thuận lợi
  3. Thiết lập mức dừng lỗ và lấy lợi nhuận rõ ràng quản lý rủi ro hiệu quả
  4. Cơ chế thoát ngoại lệ cho phép đóng cửa vị trí kịp thời trong các tình huống cụ thể, ngăn ngừa tổn thất thêm

Phân tích rủi ro

  1. Hiệu suất của chiến lược có thể bị ảnh hưởng bởi sự lựa chọn các thiết lập tham số
  2. Trong một số trường hợp, giá có thể nhanh chóng đảo ngược sau khi kích hoạt điều kiện nhập cảnh, dẫn đến tổn thất
  3. Chiến lược không xem xét các yếu tố cơ bản và có thể bị ảnh hưởng bởi các sự kiện quan trọng

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

  1. Xem xét việc kết hợp các chỉ số kỹ thuật bổ sung như MACD, Bollinger Bands, v.v. để cải thiện độ chính xác vào và ra
  2. Tối ưu hóa các thiết lập mức dừng lỗ và lấy lợi nhuận, chẳng hạn như sử dụng các điểm dừng hoặc lợi nhuận động
  3. Điều chỉnh năng động các tham số chiến lược dựa trên các điều kiện thị trường khác nhau
  4. Đưa ra một mô-đun quản lý rủi ro, bao gồm kích thước vị trí và quản lý tiền

Tóm lại

Chiến lược này kết hợp nhiều chỉ số kỹ thuật với bộ lọc xu hướng, khối lượng và điều kiện biến động để thực hiện giao dịch trong các tình huống cụ thể. Bằng cách thiết lập mức dừng lỗ rõ ràng và lấy lợi nhuận và thực hiện cơ chế thoát ngoại lệ, chiến lược quản lý rủi ro hiệu quả. Tuy nhiên, chiến lược có một số hạn chế nhất định, vì các yếu tố như lựa chọn tham số và bất thường thị trường có thể ảnh hưởng đến hiệu suất của nó. Những cải tiến trong tương lai có thể được thực hiện bằng cách kết hợp nhiều chỉ số hơn, tối ưu hóa cài đặt tham số và thêm các thành phần quản lý rủi ro.


/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Strategia Stop Loss & Take Profit z Filtrem Trendu i Wyjątkiem", shorttitle="Smooth MA SL & TP with Exception", overlay=true)

// Parametry
tp_multiplier = input.float(1.5, title="Mnożnik Take Profit")
sl_percent = input.float(5, title="Procent Stop Loss")
wait_bars = input.int(3, title="Liczba Oczekiwanych Świec")
sma_period = input.int(200, title="Okres SMA")
rsi_period = input.int(14, title="Okres RSI")
vol_ma_period = input.int(20, title="Okres Średniej Wolumenu")
tr_ma_period = input.int(20, title="Okres Średniej Rzeczywistego Zakresu")

// Obliczenie Gładkiej Średniej Kroczącej
sma = ta.sma(close, sma_period)

// Obliczenie RSI
rsi = ta.rsi(close, rsi_period)

// Filtr Trendu
uptrend = close > sma
downtrend = close < sma

// Warunek konsolidacji: Niski wolumen i niska zmienność
niski_wolumen = volume < ta.sma(volume, vol_ma_period)
niska_zmienosc = ta.tr(true) < ta.sma(ta.tr(true), tr_ma_period)

// Warunek Wejścia (Long): Cena poniżej SMA 200 i filtr trendu w strefie czerwonej
warunek_wejscia = close < sma and niski_wolumen and niska_zmienosc and not uptrend

// Warunek Wyjścia ze strategii
warunek_wyjscia = downtrend and close > sma and ta.crossover(close, sma)

// Ustalanie Stop Loss i Take Profit
var float stop_loss = na
var float take_profit = na

var int indeks_wejscia = na

if (warunek_wejscia)
    stop_loss := close * (1 - sl_percent / 100)
    take_profit := close * (1 + tp_multiplier)
    indeks_wejscia := bar_index

// Handel
if (warunek_wejscia)
    strategy.entry("Long", strategy.long)

// Warunek Wyjścia: RSI w strefie wykupienia lub Stop Loss/Take Profit
if (strategy.opentrades != 0)
    if (rsi > 70)
        strategy.exit("Take Profit/Stop Loss", "Long", limit=take_profit)
    else if (bar_index - indeks_wejscia == wait_bars)
        strategy.exit("Take Profit/Stop Loss", "Long", stop=stop_loss, limit=take_profit)

// Wyjątek: Warunek Wyjścia z Longów na podstawie zmiany trendu
if (warunek_wyjscia)
    strategy.close("Long")

// Rysowanie RSI
rsi_plot = plot(rsi, title="RSI", color=color.blue)

// Rysowanie Gładkiej Średniej Kroczącej
sma_plot = plot(sma, color=color.gray, title="Smooth MA", linewidth=2)

// Rysowanie Filtru Trendu
fill(sma_plot, rsi_plot, color=downtrend ? color.new(color.red, 90) : na)


Có liên quan

Thêm nữa