Chiến lược dừng lợi nhuận và dừng lỗ hai lần để vượt qua dao động hiệu quả

Tác giả:ChaoZhang, Ngày: 2024-02-01 14:46:00
Tags:

img

Tổng quan

Đây là một chiến lược giao dịch hai chiều hiệu quả cao được thiết kế dựa trên các chỉ số kênh và nguyên tắc đột phá. Nó có thể đạt được tỷ lệ thắng cao giao dịch hai chiều trên cổ phiếu và tiền điện tử trong khung thời gian 1 phút.

Chiến lược logic

Chiến lược này sử dụng các chỉ số SMA để xây dựng các kênh. Nó đi dài khi giá phá vỡ trên kênh và đi ngắn khi giá phá vỡ dưới kênh. Lợi nhuận và dừng lỗ cũng được thiết lập để khóa lợi nhuận và kiểm soát rủi ro.

Cụ thể, chiến lược tính toán đường ray trên và dưới của kênh. Đường ray trên là SMA 10 giai đoạn của giá đóng nhân 1,02; Đường ray dưới là SMA 10 giai đoạn của giá thấp nhất chia cho 1,02. Đi dài khi giá đóng phá vỡ trên đường ray trên, đi ngắn khi giá đóng phá vỡ dưới đường ray dưới.

Sau khi đi dài, hai mức lấy lợi nhuận được thiết lập lần lượt là 1% và 3%, với mức dừng lỗ 3%. Đi ngắn có các cài đặt lợi nhuận / lỗ tương tự. Thông qua các nguyên tắc đột phá, chiến lược có thể đạt tỷ lệ thắng nhập tương đối cao; thông qua lợi nhuận hai lần có thể khóa nhiều lợi nhuận hơn; thông qua mức dừng lỗ, nó kiểm soát số tiền lỗ trên mỗi giao dịch.

Phân tích lợi thế

Các chiến lược thoát kênh như thế này có những lợi thế như tín hiệu nhập cảnh rõ ràng, tần suất hoạt động cao, thu lợi nhuận đa cấp, vv. Những lợi thế chính là:

  1. Sử dụng các chỉ số kênh để xác định phạm vi dao động giá và chọn các điểm đột phá để nhập có thể có tỷ lệ thắng tương đối cao.

  2. Hoạt động trên biểu đồ 1 phút để nắm bắt nhiều cơ hội hơn và phù hợp với nhu cầu giao dịch tốc độ.

  3. Có hai mức lấy lợi nhuận cho phép khóa trong lợi nhuận nhiều hơn khi xu hướng đi tốt.

  4. Stop loss tương đối rộng cung cấp cho chuyển động giá một số không gian, tránh stop loss sớm.

Phân tích rủi ro

Rủi ro lớn nhất với các chiến lược breakout như vậy là breakout sai dẫn đến tổn thất. Ngoài ra, stop loss lớn có thể làm tăng rủi ro mất mát. Các điểm rủi ro chính:

  1. Các tín hiệu đột phá có thể là đột phá sai và không đạt được lợi nhuận hoặc dừng lỗ. Một vấn đề phổ biến trong phân tích kỹ thuật.

  2. Mức dừng lỗ ở mức 3% có thể khó chịu cho một số nhà giao dịch.

  3. Chiến lược này phù hợp với giao dịch ngắn hạn hơn và cần giám sát.

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

Các chiến lược đột phá xu hướng như thế này có thể tối ưu hóa chủ yếu trong các khía cạnh sau:

  1. Kiểm tra nhiều chỉ số hơn để xây dựng các kênh và tìm những người đáng tin cậy hơn để giảm bớt các sự đột phá sai.

  2. Tối ưu hóa điều chỉnh thông số trung bình động, khám phá kết hợp thông số tốt nhất.

  3. Kiểm tra các cơ chế nhập phức tạp hơn, chẳng hạn như thêm bộ lọc âm lượng vv

  4. Thiết lập các cấu trúc tham số thích nghi với các đặc điểm sản phẩm khác nhau để đạt được tự điều chỉnh tham số.

  5. Thêm cơ chế dừng mất tự động điều chỉnh dừng mất theo thời gian.

Kết luận

Đây là một chiến lược giao dịch hai hướng hiệu quả được xây dựng dựa trên các chỉ số kênh. Nó đi vào thị trường thông qua các nguyên tắc đột phá, lợi nhuận hai lần để khóa phần thưởng, dừng lỗ để kiểm soát rủi ro. Tăng cường hơn có thể đạt được kết quả tốt hơn. Nhưng các nhà giao dịch vẫn cần phải cảnh giác với rủi ro như đột phá sai.


/*backtest
start: 2023-01-25 00:00:00
end: 2024-01-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Erweiterte SSL Channel Strategy mit 2 TPs, SL und BE", overlay=true)

period = input(title="Period", defval=10)
len = input(title="Length", defval=10)
multiplier = input(title="Multiplier", defval=1.0, minval=1.0)
tp1Percent = input(title="Take Profit 1 (%)", defval=1.0) / 100
tp2Percent = input(title="Take Profit 2 (%)", defval=20.0) / 100
slPercent = input(title="Stop Loss (%)", defval=3.0) / 100

var float tp1Price = na
var float tp2Price = na
var float slPrice = na
var bool tp1Reached = false

smaHigh = sma(high * multiplier, len)
smaLow = sma(low / multiplier, len)

Hlv = 0
Hlv := close > smaHigh ? 1 : close < smaLow ? -1 : nz(Hlv[1])
sslDown = Hlv < 0 ? smaHigh : smaLow
sslUp = Hlv < 0 ? smaLow : smaHigh

plot(sslDown, linewidth=2, color=color.red)
plot(sslUp, linewidth=2, color=color.lime)

longCondition = crossover(close, sslUp)
shortCondition = crossunder(close, sslDown)

if (longCondition)
    strategy.entry("Long", strategy.long)
    tp1Price := strategy.position_avg_price * (1 + tp1Percent)
    tp2Price := strategy.position_avg_price * (1 + tp2Percent)
    slPrice := strategy.position_avg_price * (1 - slPercent)
    tp1Reached := false

if (shortCondition)
    strategy.entry("Short", strategy.short)
    tp1Price := strategy.position_avg_price * (1 - tp1Percent)
    tp2Price := strategy.position_avg_price * (1 - tp2Percent)
    slPrice := strategy.position_avg_price * (1 + slPercent)
    tp1Reached := false

// Take Profit, Break-even und Stop-Loss Logik
if (strategy.position_size > 0) // Long-Positionen
    if (not tp1Reached and close >= tp1Price)
        strategy.close("Long", qty_percent = 50)
        strategy.exit("BE Long", "Long", stop = strategy.position_avg_price)
        tp1Reached := true
    if (tp1Reached and close < tp1Price)
        strategy.exit("BE Long", "Long", stop = strategy.position_avg_price)
    if (close >= tp2Price)
        strategy.close("Long", qty_percent = 100)
    if (not tp1Reached)
        strategy.exit("SL Long", "Long", stop = slPrice)

if (strategy.position_size < 0) // Short-Positionen
    if (not tp1Reached and close <= tp1Price)
        strategy.close("Short", qty_percent = 50)
        strategy.exit("BE Short", "Short", stop = strategy.position_avg_price)
        tp1Reached := true
    if (tp1Reached and close > tp1Price)
        strategy.exit("BE Short", "Short", stop = strategy.position_avg_price)
    if (close <= tp2Price)
        strategy.close("Short", qty_percent = 100)
    if (not tp1Reached)
        strategy.exit("SL Short", "Short", stop = slPrice)


Thêm nữa