Chiến lược giao dịch đường chéo trung bình động tăng cường Sakkoulas

Tác giả:ChaoZhang, Ngày: 2024-02-21 15:14:19
Tags:

img

Tổng quan

Chiến lược giao dịch này kết hợp chênh lệch hội tụ trung bình động (MACD), chỉ số sức mạnh tương đối (RSI), trung bình động đơn giản (SMA), dao động stochastic và băng Bollinger để xác định các điểm nhập và thoát thị trường. Nó đi dài khi các chỉ số cho thấy tín hiệu tăng và đi ngắn khi các tín hiệu giảm xuất hiện. Rủi ro được kiểm soát bằng cách dừng lỗ và lấy lợi nhuận.

Chiến lược logic

Nó đi dài khi đường MACD DIF vượt qua đường DEA vào vùng tăng; hoặc khi RSI giảm xuống dưới 30 vào vùng bán quá mức; hoặc khi đường stochastic %K và %D giảm xuống dưới 20 cho thấy tình trạng bán quá mức.

Ngược lại, nó đi ngắn khi đường MACD DIF băng qua dưới đường DEA vào vùng giảm; hoặc khi RSI tăng trên 70 vào khu vực mua quá mức; hoặc khi đường stochastic % K và % D leo lên trên 80 cho thấy tình trạng mua quá mức.

Stop loss được thiết lập dựa trên ATR nhân với một hệ số.

Phân tích lợi thế

Chiến lược này kết hợp nhiều chỉ số để đánh giá tình trạng thị trường, tránh các lỗi bằng chỉ số duy nhất và cải thiện độ chính xác.

Phân tích rủi ro

Các chỉ số kỹ thuật được tính từ dữ liệu lịch sử và không thể dự đoán giá trong tương lai, dẫn đến một số sự chậm trễ nhất định. Kết hợp nhiều chỉ số cũng có thể đưa ra một số tín hiệu sai. Ngoài ra, việc thiết lập stop loss không đúng có thể dẫn đến tổn thất lớn hơn.

Để giải quyết vấn đề chậm trễ chỉ số, các tham số có thể được điều chỉnh để rút ngắn chu kỳ tính toán. Đối với tín hiệu sai, các chỉ số phụ trợ bổ sung có thể được thêm để xác nhận. Ngoài ra, stop loss nên được thiết lập rộng hơn và hợp lý hơn.

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

Chiến lược có thể được cải thiện trong các khía cạnh sau:

  1. Tích hợp các chỉ số mô hình thống kê dựa trên phân tích xu hướng và tương quan cho nhập cảnh;
  2. Thêm mô hình học máy để đánh giá độ tin cậy của tín hiệu chỉ số;
  3. Tối ưu hóa quản lý tiền để tự động hóa và thông minh hơn dừng lỗ và lấy lợi nhuận.

Tóm lại

Chiến lược này kết hợp nhiều chỉ số kỹ thuật để cải thiện độ chính xác và kiểm soát rủi ro thông qua dừng lỗ và lấy lợi nhuận, làm cho nó trở thành một hệ thống theo xu hướng đáng tin cậy.


/*backtest
start: 2024-01-21 00:00:00
end: 2024-02-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Enhanced Moving Average Crossover sakkoulas with ATR and SAR", overlay=true)

// Παράμετροι MACD
fastLength = input.int(16, title="Fast Length")
slowLength = input.int(6, title="Slow Length")
signalSmoothing = input.int(5, title="Signal Smoothing")

// Παράμετροι RSI
rsiLength = input.int(6, title="RSI Length")
upperBound = input.int(70, title="Upper Bound")
lowerBound = input.int(30, title="Lower Bound")

// Παράμετροι SMA
smaPeriod = input.int(10, title="SMA Period")

// Παράμετροι Stochastic
stoLength = input.int(5, title="Stochastic Length")
stoSmoothK = input.int(3, title="Stochastic %K Smoothing")
stoSmoothD = input.int(10, title="Stochastic %D Smoothing")

// Παράμετροι Bollinger Bands
bbLength = input.int(20, title="Bollinger Bands Length")
bbStdDev = input.float(1, title="Bollinger Bands StdDev")

// Παράμετροι ATR
atrLength = input.int(14, title="ATR Length")
atrMultiplier = input.float(1.5, title="ATR Multiplier for Stop Loss")

// Παράμετροι Parabolic SAR
sarAcceleration = input.float(0.02, title="SAR Acceleration")
sarMaximum = input.float(0.2, title="SAR Maximum")

// Διαχείριση κινδύνου
riskRewardRatio = input.float(2.0, title="Risk/Reward Ratio")

// Υπολογισμοί δεικτών
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalSmoothing)
rsi = ta.rsi(close, rsiLength)
sma = ta.sma(close, smaPeriod)
atr = ta.atr(atrLength)

// Παράμετροι και κλήση του Parabolic SAR
sar = ta.sar(sarAcceleration, sarMaximum, 15) // Διορθωμένη κ
// Υπολογισμός Stop Loss με βάση το ATR
longStopLoss = close - atrMultiplier * atr 
shortStopLoss = close + atrMultiplier * atr

// Συνθήκες για είσοδο και έξοδο
longCondition = ta.crossover(macdLine, signalLine) and close > sar
shortCondition = ta.crossunder(macdLine, signalLine) and close < sar

// Εκτέλεση εντολών συναλλαγής με διαχείριση κινδύνου
if (longCondition)
    strategy.entry("Long Position", strategy.long)
    strategy.exit("Exit Long", "Long Position", stop=longStopLoss)
    
if (shortCondition)
    strategy.entry("Short Position", strategy.short)
    strategy.exit("Exit Short", "Short Position", stop=shortStopLoss)

// Συνθήκες για είσοδο και έξοδο
 
// Εμφάνιση βελών για σημεία εισόδου
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small, title="Long Entry")
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small, title="Short Entry")


// Εμφάνιση δεικτών
plot(macdLine, color=color.blue, title="MACD Line")
plot(signalLine, color=color.red, title="Signal Line")
plot(sma, color=color.orange, title="SMA")
plot(series=sar, color=color.fuchsia, style=plot.style_circles, title="Parabolic SAR")
hline(upperBound, "Upper Bound", color=color.red)
hline(lowerBound, "Lower Bound", color=color.green)

Thêm nữa