Chiến lược dừng lỗ trung bình động phá vỡ xu hướng kép


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

Chiến lược dừng lỗ trung bình động phá vỡ xu hướng kép

Tổng quan

Chiến lược này kết hợp chỉ số hai chiều và chỉ số đường trung bình di chuyển, sử dụng chỉ số hai chiều để đánh giá xu hướng thị trường, và sử dụng đường trung bình di chuyển để xác nhận xu hướng, thuộc chiến lược theo dõi xu hướng. Kết hợp dừng để kiểm soát rủi ro, thuộc chiến lược ổn định hơn.

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

  1. Tính giá đóng cửa ngày hôm qua với SMA trung bình của giá cao nhất trong khoảng thời gian được chỉ định và đường ray dưới với giá đóng cửa ngày hôm qua với SMA trung bình của giá thấp nhất trong khoảng thời gian được chỉ định.

  2. So sánh giá đóng cửa hiện tại với mối quan hệ giữa đường ray trên và đường ray dưới, đánh giá hướng xu hướng hiện tại. Giá đóng cửa cao hơn đường ray trên, đánh giá là nhiều đầu; giá đóng cửa thấp hơn đường ray dưới, đánh giá là đầu trống.

  3. Xây dựng đường trung bình SMA của 200 chu kỳ để đánh giá xu hướng đường dài và trung bình.

  4. Khi đánh giá là nhiều đầu, nếu giá đóng cửa phá vỡ đường trung bình SMA từ phía dưới, sẽ tạo ra tín hiệu mua; khi đánh giá là trống, nếu giá đóng cửa phá vỡ đường trung bình SMA từ phía trên, sẽ tạo ra tín hiệu bán.

  5. Sau khi vào vị trí nhiều đầu, nếu giá đóng cửa phá vỡ đường ray, nó sẽ được sử dụng như một tín hiệu thanh toán; sau khi vào vị trí trống, nếu giá đóng cửa phá vỡ đường ray, nó sẽ được sử dụng như một tín hiệu thanh toán.

  6. Thiết lập điểm dừng lỗ theo tỷ lệ cố định, kích hoạt lệnh dừng lỗ nếu điểm dừng lỗ bị phá vỡ dưới giá đóng cửa.

Lợi thế chiến lược

  1. Sử dụng chỉ số hai chiều để đánh giá xu hướng, có thể xác định hiệu quả xu hướng, tăng khả năng đi đúng hướng.

  2. Thêm đường trung bình, có thể lọc một số tín hiệu tiếng ồn, tránh giao dịch sai trong tình huống chấn động.

  3. Sử dụng dừng lỗ để kiểm soát rủi ro mất mát đơn lẻ, có thể ngăn ngừa thiệt hại quá lớn.

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

Rủi ro chiến lược

  1. Chỉ số hai bước nhạy cảm hơn với cài đặt tham số, kết hợp tham số khác nhau trong chu kỳ, có thể dẫn đến sự khác biệt lớn trong kết quả, cần cẩn thận kiểm tra tối ưu hóa tham số.

  2. Cài đặt đường trung bình quá dài sẽ lọc nhiều cơ hội giao dịch hơn; đường trung bình quá ngắn sẽ không có hiệu quả trong việc loại bỏ tiếng ồn. Cài đặt các tham số chu kỳ đường trung bình cần cân bằng.

  3. Điểm dừng lỗ được thiết lập quá rộng, không thể kiểm soát rủi ro tốt; quá hẹp dễ bị kích hoạt bởi biến động giá thường xuyên. Cần cẩn thận thiết lập phạm vi dừng lỗ.

  4. Chiến lược này phụ thuộc nhiều hơn vào tối ưu hóa tham số, nếu tham số được đặt không đúng, nó có thể không xác định đúng hướng xu hướng, dẫn đến quyết định giao dịch sai.

Hướng tối ưu hóa chiến lược

  1. Bạn có thể thử nghiệm sự kết hợp của các tham số khác nhau của chu kỳ, tìm kiếm các tham số cho phép chỉ số nhị phân theo chiều hướng đánh giá chính xác hơn về xu hướng.

  2. Các chỉ số đường trung bình có thể được thử nghiệm cho các chu kỳ khác nhau để tìm ra tham số đường trung bình tốt nhất để cân bằng hiệu quả loại bỏ tiếng ồn và giữ tín hiệu.

  3. Bạn có thể thử thiết kế các cơ chế dừng lỗ để điều chỉnh theo mức độ biến động của thị trường, làm cho dừng lỗ gần hơn với tình hình thị trường.

  4. Bạn cũng có thể thử thêm các chỉ số khác để hỗ trợ, chẳng hạn như xác nhận giá cả, thông qua nhiều khung thời gian, v.v., để nâng cao sự ổn định của chiến lược.

  5. Chiến lược được tối ưu hóa có thể được xác minh bằng phân tích tiến bộ để đảm bảo các tham số vẫn ổn định.

Tóm tắt

Chiến lược này kết hợp lợi thế của chỉ số hai chiều và đường trung bình di chuyển, thuộc chiến lược theo dõi xu hướng có nhiều khả năng tối ưu hóa tham số. Bằng cách đặt và tối ưu hóa tham số hợp lý, có thể có được hiệu suất chiến lược tốt hơn. Tuy nhiên, cần lưu ý kiểm soát rủi ro tối ưu hóa quá mức tham số, đảm bảo tính ổn định của tham số.

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