Ba đường EMA giao nhau cộng với chiến lược RSI ngẫu nhiên


Ngày tạo: 2023-11-15 10:47:20 sửa đổi lần cuối: 2023-11-15 10:47:20
sao chép: 0 Số nhấp chuột: 954
1
tập trung vào
1617
Người theo dõi

Ba đường EMA giao nhau cộng với chiến lược RSI ngẫu nhiên

Tổng quan

Đây là một chiến lược theo dõi xu hướng kết hợp nhiều chỉ số. Nó sử dụng ba chu kỳ khác nhau của EMA, Stochastic RSI và ATR để xác định định hướng xu hướng và thiết lập vị trí.

Nguyên tắc

Chiến lược này sử dụng ba đường trung bình EMA, lần lượt là EMA 8 chu kỳ, 14 chu kỳ và 50 chu kỳ. Chúng đại diện cho xu hướng giá trong các khoảng thời gian khác nhau. Khi EMA 8 chu kỳ đi qua EMA 14 chu kỳ và EMA 14 chu kỳ đi qua EMA 50 chu kỳ, cho thấy hiện tại đang ở giai đoạn bắt đầu xu hướng, có thể chọn để tạo nhiều vị trí.

Chỉ số Stochastic RSI kết hợp RSI và phương pháp tính toán Stochastic, có thể phát hiện hiện tượng bán tháo quá mức. Khi đường K của Stochastic RSI xuyên qua đường D từ phía dưới, điều này cho thấy thị trường đang chuyển từ tình trạng bán tháo sang thị trường, có thể chọn nhiều hơn.

ATR đại diện cho phạm vi biến động gần đây. Chiến lược sử dụng 3 lần ATR như khoảng cách dừng lỗ và 2 lần như khoảng cách dừng để khóa lợi nhuận và kiểm soát rủi ro.

Ưu điểm

  • Sử dụng đường trung bình EMA có thể loại bỏ một phần tiếng ồn trong dữ liệu giá và nhận ra xu hướng
  • Stochastic RSI có thể thấy cơ hội đảo ngược
  • ATR động theo dõi dừng lỗ, có thể thiết lập khoảng cách lợi nhuận hợp lý dựa trên sự biến động của thị trường

Rủi ro

  • Kết hợp nhiều chỉ số có thể dẫn đến tín hiệu sai
  • Lượng nhân dừng lỗ cố định không thể thích ứng với sự thay đổi của thị trường
  • Chu kỳ ngắn dễ bị ảnh hưởng ngược lại

Bạn có thể tối ưu hóa độ nhạy của chỉ số bằng cách điều chỉnh các tham số chu kỳ EMA. Bạn cũng có thể điều chỉnh số lần dừng lỗ của ATR để thiết lập các tham số phù hợp tùy thuộc vào tình hình thị trường. Ngoài ra, bạn có thể xem xét thêm các chỉ số hỗ trợ khác để tránh tín hiệu sai.

Hướng tối ưu hóa

  • Điều chỉnh tham số chu kỳ EMA, tối ưu hóa độ nhạy của chỉ số
  • Điều chỉnh ATR Stop Loss Stop Stop
  • Tham gia các chỉ số khác để tránh tín hiệu sai lầm

Tóm tắt

Chiến lược tổng hợp này xem xét hướng xu hướng, quá mua quá bán và phạm vi biến động để xác định thời điểm vào thị trường. Sử dụng đường trung bình EMA và chỉ số Stochastic RSI kết hợp có thể xác định xu hướng hiệu quả, ATR theo dõi động dừng lỗ giúp kiểm soát rủi ro. Bằng cách điều chỉnh và tối ưu hóa các tham số, chiến lược này có thể trở thành một hệ thống theo dõi xu hướng đáng tin cậy.

Mã nguồn chiến lược
/*backtest
start: 2023-10-15 00:00:00
end: 2023-11-14 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © FreddieChopin
 
//@version=4
strategy("3 x EMA + Stochastic RSI + ATR", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
 
// 3x EMA
ema1Length = input(8, "EMA1 Length", minval = 1)
ema2Length = input(14, "EMA2 Length", minval = 1)
ema3Length = input(50, "EMA3 Length", minval = 1)
ema1 = ema(close, ema1Length)
ema2 = ema(close, ema2Length)
ema3 = ema(close, ema3Length)
 
plot(ema1, color = color.green)
plot(ema2, color = color.orange)
plot(ema3, color = color.red)
 
// Stochastic RSI
smoothK = input(3, "K", minval=1)
smoothD = input(3, "D", minval=1)
lengthRSI = input(14, "RSI Length", minval=1)
lengthStoch = input(14, "Stochastic Length", minval=1)
src = input(close, title="RSI Source")
rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)
 
// ATR
atrPeriod = input(14, "ATR Period")
takeProfitMultiplier= input(2.0, "Take-profit Multiplier")
stopLossMultiplier= input(3.0, "Stop-loss Multiplier")
atrSeries = atr(atrPeriod)[1]
 
longCondition = ema1 > ema2 and ema2 > ema3 and crossover(k, d)
strategy.entry("long", strategy.long, when = longCondition)
 
float stopLoss = na
float takeProfit = na
 
if (strategy.position_size > 0)
    if (na(stopLoss[1]))
        stopLoss := strategy.position_avg_price - atrSeries * stopLossMultiplier
    else
        stopLoss := stopLoss[1]
    if (na(takeProfit[1]))
        takeProfit := strategy.position_avg_price + atrSeries * takeProfitMultiplier
    else
        takeProfit := takeProfit[1]
 
    strategy.exit("take profit / stop loss", limit = takeProfit, stop = stopLoss)
 
plot(stopLoss, color = color.red, linewidth = 2, style = plot.style_linebr)
plot(takeProfit, color = color.green, linewidth = 2, style = plot.style_linebr)