Chiến lược giao dịch dựa trên sự đảo ngược và thoát khỏi điểm trục


Ngày tạo: 2024-04-30 15:57:54 sửa đổi lần cuối: 2024-04-30 15:57:54
sao chép: 0 Số nhấp chuột: 331
1
tập trung vào
1166
Người theo dõi

Chiến lược giao dịch dựa trên sự đảo ngược và thoát khỏi điểm trục

Tổng quan

Chiến lược này dựa trên các điểm Pivot để xác định điểm đảo ngược của thị trường và giao dịch dựa trên đó. Chiến lược mở nhiều vị trí khi thị trường xuất hiện trong đường 4K bên trái với điểm Pivot High; khi thị trường xuất hiện trong đường 4K bên trái với điểm Pivot Low, chiến lược mở vị trí bằng không.

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

  1. Sử dụng hàm ta.pivothigh () và ta.pivotlow () tính toán các điểm trung tâm trong phạm vi 4 đường K ở bên trái và 2 đường K ở bên phải là điểm cao (swh) và điểm thấp (swl).
  2. Khi điểm cao của trục tồn tại (swh_cond), cập nhật giá cao nhất (hprice), đồng thời đáp ứng giá cao nhất hiện tại cao hơn giá cao nhất trước đó, mở điều kiện nhập cảnh nhiều lần (le)
  3. Khi điều kiện chơi nhiều ((le) được thiết lập, hãy mở vị trí một đơn vị biến động nhỏ nhất ((syminfo.mintick) ở vị trí cao hơn điểm trục trung tâm.
  4. Tương tự như làm nhiều, khi điểm trục trục thấp tồn tại (swl_cond), cập nhật giá thấp nhất (lprice), đồng thời đáp ứng giá thấp nhất hiện tại thấp hơn giá thấp nhất trước đó, mở điều kiện tham gia giao dịch (se) [2].
  5. Khi điều kiện tham gia vào thị trường giảm giá (se) được thiết lập, hãy mở vị trí giảm giá ở vị trí một đơn vị thay đổi nhỏ nhất dưới điểm thấp của điểm trục trung tâm (syminfo.mintick).
  6. Trong exitAtNextPivot () hàm, nếu giữ vị trí nhiều đầu, sẽ dừng một đơn vị biến động nhỏ nhất bên dưới điểm thấp của điểm trung tâm tiếp theo; nếu giữ vị trí đầu trống, sẽ dừng một đơn vị biến động nhỏ nhất trên điểm cao của điểm trung tâm tiếp theo.
  7. Trong ExitIfProfitLessThanThirtyPercent () hàm, tính tỷ lệ phần trăm lợi nhuận của các vị trí đầu nhiều và đầu trống, nếu lỗ hơn 30%, vị trí bằng phẳng.

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

  1. Điểm trung tâm phản ánh tốt hơn vị trí hỗ trợ và áp lực của thị trường, là một chỉ số phân tích kỹ thuật được sử dụng thường xuyên và có một mức độ chấp nhận thị trường nhất định.
  2. Trong khi đó, các nhà đầu tư khác cũng có thể tham gia vào các đợt phá vỡ tại các điểm trung tâm để nắm bắt cơ hội đảo ngược thị trường.
  3. Hai điều kiện rút ra được đặt ra, một là rút ra kỹ thuật dựa trên điểm trung tâm ngược chiều tiếp theo, và một là rút ra điều khiển gió dựa trên tỷ lệ thua lỗ, có thể kiểm soát một phần của chiến lược rút lui.

Rủi ro chiến lược

  1. Chỉ số điểm trung tâm cũng có một số vấn đề về độ chậm trễ và tần suất tín hiệu, có thể không hoạt động tốt trong thị trường chấn động.
  2. Các tham số tính toán 4 K-line và 2 K-line cố định có thể không áp dụng cho tất cả các tình trạng thị trường, thiếu khả năng thích ứng và linh hoạt.
  3. Vị trí dừng lỗ gần với giá vào ((một đơn vị biến động nhỏ nhất), có thể bị bỏ đi khi thị trường biến động mạnh.
  4. Thiết lập chỉ dừng lỗ 30% có thể quá thoải mái và có thể thu hồi quá nhiều.

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

  1. Có thể thử sử dụng các loại chỉ số pivot khác, chẳng hạn như pivot nhân, pivot trọng, để tăng độ nhạy và tính thực tế của chỉ số.
  2. Số đường K bên phải và bên phải có thể được sử dụng như tham số đầu vào, tìm kiếm giá trị tối ưu bằng cách tối ưu hóa tham số.
  3. Vị trí dừng lỗ có thể được tối ưu hóa thành ATR hoặc phần trăm dừng lỗ, trước đó có thể điều chỉnh theo biến động của thị trường, sau đó có thể hạn chế rủi ro trong phạm vi có thể kiểm soát được.
  4. Điều kiện lỗ 30% có thể được thắt chặt, do đó làm giảm chiến lược rút lui. Ngoài ra, điều kiện lỗ phần trăm lợi nhuận cũng có thể được tăng lên, để quản lý cùng một lúc nổi và nổi.
  5. Các điều kiện lọc khác như lọc xu hướng, lọc tỷ lệ dao động, v.v. có thể được chồng lên trên nền tảng đột phá trục trục để cải thiện chất lượng tín hiệu.

Tóm tắt

Chiến lược này xây dựng một hệ thống giao dịch hai chiều dựa trên các chỉ số điểm mấu chốt, để nắm bắt cơ hội đảo ngược thị trường bằng cách làm nhiều hơn ở điểm mấu chốt cao, làm rỗng ở điểm thấp. Chiến lược có một số cơ sở lý thuyết và giá trị thực tế, nhưng do các hạn chế của chỉ số điểm mấu chốt, chiến lược có thể phải đối mặt với một số rủi ro và thách thức trong hoạt động thực tế.

Mã nguồn chiến lược
/*backtest
start: 2023-04-24 00:00:00
end: 2024-04-29 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Pivot Reversal Strategy with Pivot Exit", overlay=true)

leftBars = input(4)
rightBars = input(2)

var float dailyEquity = na

// Reset equity to $10,000 at the beginning of each day
isNewDay = ta.change(time("D")) != 0
if (isNewDay)
    dailyEquity := 10000

// Calculate pivot highs and lows
swh = ta.pivothigh(leftBars, rightBars)
swl = ta.pivotlow(leftBars, rightBars)

// Define long entry condition
swh_cond = not na(swh)
hprice = 0.0
hprice := swh_cond ? swh : hprice[1]
le = false
le := swh_cond ? true : (le[1] and high > hprice ? false : le[1])

// Enter long position if long entry condition is met
if (le)
    strategy.entry("PivRevLE", strategy.long, comment="EnterLong", stop=hprice + syminfo.mintick)

// Define short entry condition
swl_cond = not na(swl)
lprice = 0.0
lprice := swl_cond ? swl : lprice[1]
se = false
se := swl_cond ? true : (se[1] and low < lprice ? false : se[1])

// Enter short position if short entry condition is met
if (se)
    strategy.entry("PivRevSE", strategy.short, comment="EnterShort", stop=lprice - syminfo.mintick)

// Exit condition: Exit at the next pivot point
exitAtNextPivot() =>
    if strategy.opentrades > 0
        if strategy.position_size > 0
            // Exiting long position at next pivot low
            if not na(swl)
                strategy.exit("ExitLong", "PivRevLE", stop=swl - syminfo.mintick)
        else
            // Exiting short position at next pivot high
            if not na(swh)
                strategy.exit("ExitShort", "PivRevSE", stop=swh + syminfo.mintick)

// Call exitAtNextPivot function
exitAtNextPivot()

// Exit condition: Exit if profit is less than 30%
exitIfProfitLessThanThirtyPercent() =>
    if strategy.opentrades > 0
        if strategy.position_size > 0
            // Calculate profit percentage for long position
            profit_percentage_long = (close - strategy.position_avg_price) / strategy.position_avg_price * 100
            // Exiting long position if profit is less than 30%
            if profit_percentage_long < -30
                strategy.close("PivRevLE")
        else
            // Calculate profit percentage for short position
            profit_percentage_short = (strategy.position_avg_price - close) / strategy.position_avg_price * 100
            // Exiting short position if profit is less than 30%
            if profit_percentage_short < -30
                strategy.close("PivRevSE")

// Call exitIfProfitLessThanThirtyPercent function
exitIfProfitLessThanThirtyPercent()