Đường trung bình động đa kỳ kết hợp với Fibonacci thoái lui và chiến lược giao dịch điểm trục

EMA PP FIBO SL TP
Ngày tạo: 2024-12-11 15:58:20 sửa đổi lần cuối: 2024-12-11 15:58:20
sao chép: 1 Số nhấp chuột: 459
1
tập trung vào
1617
Người theo dõi

Đường trung bình động đa kỳ kết hợp với Fibonacci thoái lui và chiến lược giao dịch điểm trục

Tổng quan

Chiến lược này là một hệ thống giao dịch tổng hợp kết hợp nhiều công cụ phân tích kỹ thuật, chủ yếu sử dụng đường hai chiều ((EMA chu kỳ 2050), mức Fibonacci và mức kháng cự hỗ trợ điểm trung tâm để xác định tín hiệu giao dịch. Chiến lược sử dụng phương pháp theo dõi xu hướng kết hợp với giá hồi phục để tăng độ chính xác của giao dịch bằng cách xác nhận nhiều lần.

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

Logic cốt lõi của chiến lược này dựa trên các yếu tố chính sau:

  1. Sử dụng chéo của 20 và 50 chu kỳ EMA để xác định hướng xu hướng tổng thể
  2. Sử dụng mức Fibonacci callback ((23.6%, 38.2%, 50%, 61.8%) để xác định mức kháng cự hỗ trợ tiềm năng
  3. Kết hợp các điểm trung tâm ((PP) và các điểm kháng cự hỗ trợ ((S1/S2, R1/R2) để xác nhận mức giá quan trọng
  4. Các điều kiện tham gia phải được đáp ứng cùng lúc:
    • Đường trung bình ngắn hạn đi lên xuyên qua đường trung bình dài hạn (bạn làm nhiều hơn) hoặc đi xuống (bạn làm trống)
    • Giá nằm trên/dưới mức Fibonacci thích hợp
    • Xác nhận giá đáp ứng ngưỡng kháng cự hỗ trợ điểm trung tâm
  5. Kiểm soát rủi ro với mục tiêu dừng cố định (30 điểm) và mục tiêu thu lợi nhuận (60 điểm)

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

  1. Xác thực chéo nhiều chỉ số kỹ thuật để tăng độ tin cậy tín hiệu
  2. Kết hợp xu hướng và hỗ trợ kháng cự, cân bằng thời gian ra sân
  3. Các tham số quản lý rủi ro cố định cho phép thực hiện định lượng chiến lược
  4. Gợi ý về tín hiệu giao dịch trực quan để giám sát trực tiếp
  5. Thích hợp cho giao dịch xu hướng trung và dài hạn, giảm tác động của biến động ngắn hạn

Rủi ro chiến lược

  1. Nhiều chỉ số có thể làm chậm tín hiệu và ảnh hưởng đến thời gian nhập cảnh
  2. Lệnh dừng lỗ cố định có thể không phù hợp với tất cả các điều kiện thị trường
  3. Có thể tạo ra quá nhiều tín hiệu giả trong thị trường phân tích ngang
  4. Cần có sự biến động giá lớn hơn để có được lợi nhuận lý tưởng
  5. Các lệnh dừng có thể không hiệu quả khi thị trường biến động mạnh

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

  1. Lập ra hệ thống dừng lỗ tự điều chỉnh biến động
  2. Thêm chỉ báo âm lượng làm xác nhận phụ trợ
  3. Định mức đường trung bình cho các biến động khác nhau của thị trường
  4. Thêm bộ lọc cường độ xu hướng để giảm tín hiệu sai
  5. Phát triển cơ chế quản lý vị trí thông minh hơn

Tóm tắt

Chiến lược này xây dựng một hệ thống giao dịch tương đối hoàn chỉnh bằng cách tích hợp một số công cụ phân tích kỹ thuật cổ điển. Mặc dù có một số chậm trễ, nhưng độ tin cậy của giao dịch được nâng cao thông qua cơ chế xác nhận nhiều lần. Bằng cách thực hiện các khuyến nghị tối ưu hóa, chiến lược có khả năng đạt được hiệu suất tốt hơn trong giao dịch trên sàn.

Mã nguồn chiến lược
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-09 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Forex Strategy with EMA, Pivot, Fibonacci and Signals", overlay=true)

// Input for EMAs and Pivot Points
emaShortPeriod = input.int(20, title="Short EMA Period", minval=1)
emaLongPeriod = input.int(50, title="Long EMA Period", minval=1)
fibRetraceLevel1 = input.float(0.236, title="Fibonacci 23.6% Level")
fibRetraceLevel2 = input.float(0.382, title="Fibonacci 38.2% Level")
fibRetraceLevel3 = input.float(0.5, title="Fibonacci 50% Level")
fibRetraceLevel4 = input.float(0.618, title="Fibonacci 61.8% Level")

// Function to calculate Pivot Points and Levels
pivot(high, low, close) =>
    pp = (high + low + close) / 3
    r1 = 2 * pp - low
    s1 = 2 * pp - high
    r2 = pp + (high - low)
    s2 = pp - (high - low)
    [pp, r1, s1, r2, s2]

// Calculate Pivot Points
[pp, r1, s1, r2, s2] = pivot(high, low, close)

// Calculate 20 EMA and 50 EMA
emaShort = ta.ema(close, emaShortPeriod)
emaLong = ta.ema(close, emaLongPeriod)

// Plot the EMAs
plot(emaShort, color=color.blue, title="20 EMA", linewidth=2)
plot(emaLong, color=color.red, title="50 EMA", linewidth=2)

// Fibonacci Levels (manually drawn between the most recent high and low)
var float fibHigh = na
var float fibLow = na

if (not na(high[1]) and high > high[1])  // Check if new high is formed
    fibHigh := high
if (not na(low[1]) and low < low[1])    // Check if new low is formed
    fibLow := low

fib23_6 = fibLow + (fibHigh - fibLow) * fibRetraceLevel1
fib38_2 = fibLow + (fibHigh - fibLow) * fibRetraceLevel2
fib50 = fibLow + (fibHigh - fibLow) * fibRetraceLevel3
fib61_8 = fibLow + (fibHigh - fibLow) * fibRetraceLevel4

plot(fib23_6, color=color.green, linewidth=1, title="Fibonacci 23.6%")
plot(fib38_2, color=color.green, linewidth=1, title="Fibonacci 38.2%")
plot(fib50, color=color.green, linewidth=1, title="Fibonacci 50%")
plot(fib61_8, color=color.green, linewidth=1, title="Fibonacci 61.8%")

// Entry conditions (Crossovers)
longCondition = ta.crossover(emaShort, emaLong) and close > fib23_6 and close > s1
shortCondition = ta.crossunder(emaShort, emaLong) and close < fib23_6 and close < r1

// Exit conditions (Stop Loss and Take Profit)
stopLossPips = 30 * syminfo.mintick  // 30 pips Stop Loss
takeProfitPips = 60 * syminfo.mintick // 60 pips Take Profit

if (longCondition)
    strategy.entry("Buy", strategy.long, stop=stopLossPips, limit=takeProfitPips)
if (shortCondition)
    strategy.entry("Sell", strategy.short, stop=stopLossPips, limit=takeProfitPips)

// Plot Pivot Points for visual reference
plot(pp, color=color.yellow, linewidth=2, title="Pivot Point")
plot(r1, color=color.purple, linewidth=1, title="Resistance 1")
plot(s1, color=color.purple, linewidth=1, title="Support 1")
plot(r2, color=color.purple, linewidth=1, title="Resistance 2")
plot(s2, color=color.purple, linewidth=1, title="Support 2")

// Adding Buy and Sell Signals
plotshape(longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", textcolor=color.white, size=size.small)
plotshape(shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", textcolor=color.white, size=size.small)