Chiến lược giao dịch xác nhận đảo ngược đa khung thời gian

EMA highest Lowest
Ngày tạo: 2024-05-11 17:38:35 sửa đổi lần cuối: 2024-05-11 17:38:35
sao chép: 0 Số nhấp chuột: 592
1
tập trung vào
1617
Người theo dõi

Chiến lược giao dịch xác nhận đảo ngược đa khung thời gian

Tổng quan

Chiến lược này chủ yếu sử dụng giá cao nhất, giá thấp nhất và đường trung bình di chuyển của chỉ số (EMA) để xác nhận xu hướng đảo ngược để tạo ra tín hiệu giao dịch. Chiến lược này đầu tiên tính toán giá cao nhất và giá thấp nhất trong thời gian xem xét lại được chỉ định, sau đó đánh giá xem giá đóng cửa hiện tại có thấp hơn giá thấp nhất tương ứng với giá cao nhất (các xác nhận đảo ngược giảm giá) hoặc cao hơn giá cao nhất tương ứng với giá thấp nhất (các xác nhận đảo ngược ngọc) không.

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

  1. Tìm giá cao nhất và thấp nhất trong thời gian xem xét lại.
  2. Tính toán EMA của giá đóng cửa trong thời gian xem xét lại được chỉ định
  3. Đi qua mỗi đường K trong thời gian xem lại, tìm ra giá thấp nhất tương ứng với giá cao nhất ((dnRv), và giá cao nhất tương ứng với giá thấp nhất ((upRv) }}.
  4. Xác định liệu giá đóng cửa hiện tại có thấp hơn dnRv (chứng nhận đảo ngược giảm) hoặc cao hơn upRv (chứng nhận đảo ngược lạc quan).
  5. Nếu có tín hiệu xác nhận đảo ngược giảm giá ((dnRv_signal) và tín hiệu này chưa được kích hoạt trước đó, tín hiệu mở lỗ sẽ được tạo ra.
  6. Nếu có một tín hiệu xác nhận đảo ngược giá trị giá ((upRv_signal) và chưa được kích hoạt trước đó, nó sẽ tạo ra một tín hiệu mở thêm kho.

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

  1. Tín hiệu xác nhận đảo ngược có thể giúp chiến lược nắm bắt cơ hội đảo ngược xu hướng, do đó nâng cao lợi nhuận tiềm năng của chiến lược.
  2. Thông qua việc sử dụng EMA, chiến lược có thể thích ứng với các tình trạng thị trường khác nhau và chu kỳ biến động.
  3. Khả năng điều chỉnh giai đoạn xem xét lại cho phép chiến lược linh hoạt và có thể được tối ưu hóa cho các loại giao dịch và chu kỳ khác nhau.

Rủi ro chiến lược

  1. Sau khi tín hiệu xác nhận đảo ngược xuất hiện, giá có thể bị dao động nhiều lần thay vì xu hướng đơn phương, dẫn đến chiến lược thường xuyên mở và đóng vị trí, làm tăng chi phí giao dịch.
  2. Các chiến lược thiếu các cơ chế dừng và dừng rõ ràng, có thể dẫn đến lỗ hổng rủi ro quá lớn cho một giao dịch.
  3. Chiến lược không tính đến đặc điểm của các loại giao dịch và môi trường thị trường, có thể hoạt động kém trong một số trường hợp.

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

  1. Giới thiệu các cơ chế dừng và dừng để kiểm soát các lỗ hổng rủi ro của giao dịch đơn lẻ. Mức dừng có thể được thiết lập động hoặc tĩnh dựa trên ATR, tỷ lệ phần trăm hoặc số điểm cố định.
  2. Kết hợp với các chỉ số kỹ thuật khác hoặc các yếu tố môi trường thị trường, chẳng hạn như RSI, MACD, tỷ lệ dao động, v.v., để tăng độ tin cậy của tín hiệu xác nhận đảo ngược và lọc các tín hiệu giả.
  3. Tối ưu hóa tham số cho các loại và chu kỳ giao dịch khác nhau, tìm thời gian xem lại và chu kỳ EMA phù hợp nhất, cải thiện khả năng thích ứng và ổn định của chiến lược.
  4. Xem xét việc đưa ra các cơ chế quản lý vị trí và kiểm soát rủi ro, chẳng hạn như điều chỉnh kích thước vị trí theo biến động thị trường hoặc giá trị tài khoản ròng để kiểm soát rủi ro tổng thể.

Tóm tắt

Chiến lược xác nhận giao dịch đảo ngược nhiều khung thời gian thông qua giá cao nhất, giá thấp nhất và EMA để xác định cơ hội đảo ngược xu hướng tiềm ẩn và tạo ra tín hiệu mở vị trí tương ứng. Ưu điểm của chiến lược này là có thể nắm bắt sự đảo ngược xu hướng, nhưng cũng có vấn đề về giao dịch thường xuyên và kiểm soát rủi ro.

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

//@version=5
strategy("Reversal Confimation Strategy", overlay=true)

// Indicator inputs
lookback = input.int(50, 'Lookback Period', minval=1, step=1)
downColor = input(color.red, 'Shape Color Down')
upColor = input(color.green, 'Shape Color Up')

// Indicator calculations
find_highest = ta.highest(high, lookback)
find_lowest = ta.lowest(low, lookback)
ema = ta.ema(close, lookback)

var dnRv = 0.0
var dnRv_trigger = false
var upRv = 0.0
var upRv_trigger = false

if high == find_highest
    dnRv_trigger := false
if low == find_lowest
    upRv_trigger := false

for i = 0 to lookback - 1
    if high[i] == find_highest
        dnRv := low[i]
for i = 0 to lookback - 1
    if low[i] == find_lowest
        upRv := high[i]

dnRv_signal = close < dnRv and dnRv_trigger == false 
upRv_signal = close > upRv and upRv_trigger == false

if dnRv_signal  
    dnRv_trigger := true
if upRv_signal  
    upRv_trigger := true

// Entry and exit conditions
if dnRv_signal
    strategy.entry("Sell", strategy.short)
if upRv_signal
    strategy.entry("Buy", strategy.long)

// Plotting
plotshape(dnRv_signal ? 1 : 0, style=shape.triangledown, location=location.abovebar, color=downColor, size=size.small)
plotshape(upRv_signal ? 1 : 0, style=shape.triangleup, location=location.belowbar, color=upColor, size=size.small)