Chiến lược đảo ngược Gap Down

Tác giả:ChaoZhang, Ngày: 2023-09-19 16:19:51
Tags:

Tổng quan

Khi nến hiện tại mở dưới mức đóng trước đó và kết thúc vào ngày với mức đóng lớn hơn mở, chiến lược đi dài vào ngày hôm sau mở hoặc đóng.

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

  1. Kiểm tra xem có xảy ra một khoảng trống xuống, tức là hiện tại mở dưới trước đóng.

  2. Nếu giảm, quan sát xem hiện tại đóng là trên mở, cho thấy một sự đảo ngược ngược.

  3. Nếu các điều kiện đảo ngược lỗ giảm được đáp ứng, mua dài vào ngày hôm sau mở hoặc đóng.

  4. Thiết lập mức dừng lỗ ở tỷ lệ phần trăm, ví dụ: 5%, sau khi vào.

  5. Khi giá giảm để đạt mức dừng lỗ, vị trí được đóng.

Phân tích lợi thế

Ưu điểm chính của chiến lược này:

  1. Nhận các cơ hội giao dịch đảo ngược từ các mô hình giảm khoảng cách.

  2. Mô hình đảo ngược có khả năng cao phù hợp với sự luân phiên giữa sợ hãi và tham lam.

  3. Trailing dừng khóa trong lợi nhuận mà không cần phải theo dõi bằng tay.

  4. Cài đặt linh hoạt cho nhập cảnh và dừng lỗ để phù hợp với các cổ phiếu riêng lẻ.

  5. Thực hiện tự động và dễ dàng kiểm tra / tối ưu hóa.

Phân tích rủi ro

Rủi ro chính của chiến lược này:

  1. Có thể xảy ra sự đảo ngược lỗ hổng, cần xác minh mô hình.

  2. Stop loss quá lớn dễ bị loại bỏ dẫn đến tổn thất tăng cường.

  3. Chọn stock kém có thể dẫn đến sự đảo ngược khó khăn.

  4. Dữ liệu backtest không đủ dẫn đến rủi ro quá phù hợp.

  5. Thực thi khác nhau giữa backtest và sống.

Giải pháp:

  1. Tối ưu hóa mức dừng lỗ và tỷ lệ lỗ tối đa cho mỗi giao dịch.

  2. Đánh giá xu hướng thị trường tổng thể để tránh tồn kho quá mức.

  3. Kiểm tra các thay đổi mô hình và âm lượng.

  4. Mở rộng quy mô mẫu cho backtest, mô phỏng giao dịch trực tiếp.

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

Một số cách để cải thiện chiến lược:

  1. Thêm bộ lọc xu hướng để tránh các mục chống xu hướng.

  2. Điều chỉnh năng động tỷ lệ dừng lỗ để bảo vệ lợi nhuận.

  3. Xem xét thêm bộ lọc thời gian để giao dịch vào ngày cụ thể.

  4. Đánh giá sức mạnh của mô hình cho kích thước vị trí.

  5. Kiểm tra các khoảng thời gian chờ khác nhau để tìm ra các điểm thoát tốt nhất.

Tóm lại

Chiến lược đảo ngược khoảng cách giảm vốn hóa các mô hình đảo ngược có khả năng cao. Dừng hiệu quả kiểm soát rủi ro nhưng hãy cẩn thận với sự bật ngược sai và thay đổi điều kiện thị trường. Khi giao dịch trực tiếp, đánh giá cẩn thận các mô hình và xu hướng cùng với tối ưu hóa liên tục được khuyến cáo.


/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-12 04:00:00
period: 1m
basePeriod: 1m
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/
// © RolandoSantos

//@version=2

strategy(title="Gap Down reversal strat", overlay=true, pyramiding=1, default_qty_type =  strategy.cash, default_qty_value = 10000, initial_capital = 10000 )

/// Start date

startDate = input(title="Start Date", defval=1, minval=1, maxval=31)
startMonth = input(title="Start Month", defval=1, minval=1, maxval=12)
startYear = input(title="Start Year", defval=2009, minval=1800, maxval=2100)


// See if this bar's time happened on/after start date
afterStartDate = (time >= timestamp(syminfo.timezone, startYear, startMonth, startDate, 0, 0))

// STEP 1:
// Configure trail stop level with input options (optional)
longTrailPerc = input(title="Trail Long Loss (%)",
     type=float, minval=0.0, step=0.1, defval=5.0) * 0.01


// Calculate trading conditions
gap_d_r = open < close[1] and close > open


// Plot Shapes
plotshape(gap_d_r, style=shape.triangleup, location=location.belowbar)
///plotshape(gap_u_r, style=shape.triangledown, location=location.abovebar)

///// Use Low, or close/////

//hlco = input(title="Stop Modifier", defval="close", options=["open", "high", "low"])


// STEP 2:
// Determine trail stop loss prices
longStopPrice = 0.0   ///, shortStopPrice = 0.0

longStopPrice := if (strategy.position_size > 0)
    stopValue = close * (1 - longTrailPerc)
    max(stopValue, longStopPrice[1])
else
    0


// Plot stop loss values for confirmation
plot(series=(strategy.position_size > 0) ? longStopPrice : na,
     color=red, style=circles,
     linewidth=1, title="Long Trail Stop")


// Submit entry orders
if (afterStartDate and gap_d_r)
    strategy.entry(id="EL", long=true)


// Submit exit orders for trail stop loss price
if (strategy.position_size > 0)
    strategy.exit(id="Stop out", stop=longStopPrice)















Thêm nữa