Chiến lược SSL kép với EMA Stop Loss

Tác giả:ChaoZhang, Ngày: 2023-11-06 16:52:11
Tags:

img

Tổng quan

Chiến lược này tích hợp chỉ số SSL kép và chỉ số trung bình động, sử dụng chỉ số SSL kép để xác định hướng xu hướng thị trường và trung bình động để xác nhận xu hướng.

Chiến lược logic

  1. Tính toán đường ray trên bằng cách lấy SMA của giá cao nhất trong một khoảng thời gian nhất định so với ngày hôm qua.

  2. So sánh giá đóng hiện tại với đường ray trên và dưới để xác định hướng xu hướng hiện tại. Nếu giá đóng trên đường ray trên, xu hướng được xác định là tăng. Nếu giá đóng dưới đường ray dưới, xu hướng được xác định là giảm.

  3. Tính toán SMA 200 giai đoạn của giá đóng cửa như một điểm chuẩn cho xu hướng trung bình đến dài hạn.

  4. Khi tăng, nếu giá đóng phá vỡ trên SMA từ dưới, một tín hiệu mua được tạo ra. Khi giảm, nếu giá đóng phá vỡ dưới SMA từ trên, một tín hiệu bán được tạo ra.

  5. Sau khi nhập vào một vị trí dài, nếu giá đóng vỡ dưới đường ray trên, đó là một tín hiệu đóng cửa. Sau khi nhập vào một vị trí ngắn, nếu giá đóng vỡ trên đường ray dưới, đó là một tín hiệu đóng cửa.

  6. Thiết lập một điểm dừng lỗ phần trăm cố định. Nếu giá đóng phá vỡ dưới điểm dừng lỗ, lệnh dừng lỗ sẽ được kích hoạt.

Ưu điểm

  1. Sử dụng chỉ số SSL kép để xác định hướng xu hướng có thể xác định hiệu quả xu hướng và tăng xác suất bước vào đúng hướng.

  2. Việc thêm các đường trung bình động có thể lọc ra một số tín hiệu ồn ào và tránh giao dịch sai trong các thị trường hỗn loạn.

  3. Sử dụng lệnh dừng lỗ để kiểm soát rủi ro giao dịch duy nhất có thể ngăn ngừa thiệt hại quá mức một cách hiệu quả.

  4. Logic chiến lược tương đối đơn giản và dễ hiểu, phù hợp cho người mới bắt đầu thực hành.

Rủi ro

  1. Chỉ số SSL kép nhạy cảm với điều chỉnh tham số, các kết hợp thời gian khác nhau có thể dẫn đến kết quả rất khác nhau.

  2. Một MA quá dài sẽ lọc ra quá nhiều cơ hội giao dịch, trong khi một MA quá ngắn sẽ không thể loại bỏ hiệu quả.

  3. Một phạm vi dừng lỗ được đặt quá rộng sẽ không kiểm soát rủi ro hiệu quả, trong khi một phạm vi quá chặt chẽ có thể được kích hoạt bởi biến động giá bình thường.

  4. Chiến lược dựa rất nhiều vào tối ưu hóa tham số. Các tham số không chính xác có thể không xác định đúng xu hướng, dẫn đến các quyết định giao dịch sai.

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

  1. Kiểm tra các kết hợp thời gian khác nhau để tìm các tham số có thể cải thiện độ chính xác xác xác định xu hướng cho chỉ số SSL kép.

  2. Kiểm tra các MA thời gian khác nhau để tìm sự cân bằng tối ưu giữa tín hiệu khử và bảo quản.

  3. Khám phá các lỗ dừng thích nghi điều chỉnh dựa trên biến động thị trường để làm cho lỗ dừng đáp ứng nhanh hơn.

  4. Bao gồm các chỉ số khác để xác nhận, chẳng hạn như khối lượng, hội nhập nhiều khung thời gian, để cải thiện độ bền.

  5. Phân tích tiến bộ nên được thực hiện trên chiến lược tối ưu để đảm bảo độ bền.

Kết luận

Chiến lược này kết hợp các điểm mạnh của chỉ số SSL kép và trung bình động. Với tiềm năng đáng kể cho tối ưu hóa tham số, đây là một chiến lược theo xu hướng. Với điều chỉnh và tối ưu hóa tham số hợp lý, kết quả tốt có thể đạt được. Tuy nhiên, rủi ro quá mức nên được kiểm soát để đảm bảo độ bền. Nhìn chung, chiến lược này là một ví dụ tốt cho việc khám phá và học tập.


/*backtest
start: 2022-10-30 00:00:00
end: 2023-11-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//@Isaac
//Estrategia vista en ▼▼
//YT: Trading Zone
strategy('SSL Strategy + EMA 200 AND Stop Loss', overlay=true)

ema = ta.ema(close, 200)

stop_loss = input.float(2.00, title='Stop Loss', step=0.10)

period = input(title='Period', defval=10)
len = input(title='Period', defval=10)
smaHigh = ta.sma(high, len)
smaLow = ta.sma(low, len)
Hlv = int(na)
Hlv := close > smaHigh ? 1 : close < smaLow ? -1 : Hlv[1]
sslDown = Hlv < 0 ? smaHigh : smaLow
sslUp = Hlv < 0 ? smaLow : smaHigh


cruceArriba = ta.crossover(sslUp, sslDown)
cruceAbajo = ta.crossunder(sslUp, sslDown)

alcista = (close > ema ) and (cruceArriba) 
bajista = (close < ema) and (cruceAbajo)

var SL = 0.0
//Cerrar compra por cruce
por_cruce = ta.crossunder(sslUp, sslDown)

//Cerrar venta por cruce
por_cruceAB = ta.crossunder(sslDown, sslUp)

//Cerrar compra y venta por stop loss
Stop = SL

comprado = strategy.position_size > 0
vendido = strategy.position_size < 0

UTmpconvertL = strategy.position_avg_price * (1 + 0.1)
UTmpdefineL = (UTmpconvertL > close and strategy.openprofit > 0.1)
UTSPL = UTmpdefineL

SPL = UTSPL

///////////////////////////////////////////////////////////////////////

UTmpconvertLS = strategy.position_avg_price * (1 + 0.1)
UTmpdefineLS = (UTmpconvertLS > close and strategy.openprofit > 0.1)
UTSPLS = UTmpdefineLS

SPLS = UTSPLS

////////////////////////////////////////////////////////////////////////

if not comprado and not vendido and alcista
    cantidad = (strategy.equity / close)
    strategy.entry('Compra', strategy.long, qty=cantidad, comment="Long")
    SL := sslDown


if comprado and not vendido and por_cruce and SPL
    strategy.close("Compra", comment="Exit Long")
    SL := 0
    
if comprado and not vendido and Stop
    strategy.exit('Compra', stop=Stop, comment="SL")
    SL := 0

///////////////////////////////////////////////////////////////////

if not comprado and not vendido and bajista
    cantidad = (strategy.equity / close)
    strategy.entry('Venta', strategy.short, qty=cantidad, comment="Short")
    SL := sslDown

if not comprado and vendido and por_cruceAB and SPLS
    strategy.close("Venta", comment="Exit Short")
    SL := 0
    
if not comprado and vendido and Stop
    strategy.exit('Venta', stop=Stop, comment="SLS")
    SL := 0



plot(Stop > 0 ? Stop : na, style=plot.style_circles, color=color.new(color.yellow,0))
plot(ema)
plot(sslDown, linewidth=2, color=color.new(color.red, 0))
plot(sslUp, linewidth=2, color=color.new(color.lime, 0))




Thêm nữa