Độ lệch trung bình động kép kết hợp với chiến lược theo xu hướng chỉ báo ATR


Ngày tạo: 2023-11-16 11:25:23 sửa đổi lần cuối: 2023-11-16 11:25:23
sao chép: 0 Số nhấp chuột: 855
1
tập trung vào
1617
Người theo dõi

Độ lệch trung bình động kép kết hợp với chiến lược theo xu hướng chỉ báo ATR

Tổng quan

Chiến lược này sử dụng tín hiệu hình thành nếp nhăn vàng, nếp nhăn chết của đường trung bình EMA kép, kết hợp với chỉ số ATR để xác định tỷ lệ biến động của thị trường, để thực hiện xu hướng mua bán thấp. Chiến lược này được coi là tín hiệu đa đầu khi đường nếp nhăn vàng nhanh và chỉ số ATR thấp hơn ngày trước.

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

  1. Sử dụng đường trung bình EMA kép với độ dài 20 và 55. Khi băng qua đường chậm trên đường nhanh tạo ra nốt vàng, được coi là tín hiệu đa đầu; Khi băng qua đường chậm dưới đường nhanh tạo ra nốt chết, được coi là tín hiệu trống đầu.

  2. Sử dụng chỉ số ATR với độ dài 14 . Chỉ số ATR có thể phản ánh tỷ lệ biến động và mức độ rủi ro của thị trường . Khi ATR thấp hơn một ngày trước, nó cho thấy biến động thị trường yếu đi và phù hợp để can thiệp nhiều hơn; Khi ATR cao hơn một ngày trước, nó cho thấy biến động thị trường tăng lên và phù hợp để can thiệp.

  3. Chỉ thực hiện nhiều khi đường dây nhanh là vàng và đường dây chậm là ATR thấp hơn ngày trước; chỉ thực hiện trống khi đường dây nhanh là chết và đường dây chậm là ATR cao hơn ngày trước. Tránh can thiệp dễ dàng khi thị trường biến động lớn.

  4. Chỉ số ATR cũng được sử dụng để thiết lập mức dừng lỗ và mức dừng. Mức dừng lỗ là giá hiện tại trừ ATR nhân số lần dừng lỗ; Mức dừng là giá hiện tại cộng với ATR nhân số lần dừng.

  5. Stop Loss Multiplier mặc định là 3 lần ATR, Stop Loss Multiplier mặc định là 3 lần ATR. Điều này cho phép cả Stop Loss và Stop Out đều có thể theo dõi động lực của thị trường.

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

  1. Sử dụng hệ thống hai đường trung bình, có thể cung cấp xác nhận mạnh mẽ hơn cho phán đoán trạng thái trống.

  2. Việc đưa ra chỉ số ATR, cho phép chiến lược chỉ can thiệp khi có biến động thấp, có thể lọc ra nhiều tín hiệu giả và giảm rủi ro hệ thống.

  3. ATR có khả năng dừng lỗ theo mức biến động của thị trường.

  4. Có thể thiết lập xem có sử dụng giao thoa đồng tuyến như một cơ chế thoát bổ sung không. Có thể tối ưu hóa hơn nữa kết quả lỗ hổng của hệ thống.

  5. Cài đặt các mức dừng và dừng động theo ATR, phù hợp hơn với logic giao dịch xu hướng, dừng sẽ không quá nhạy cảm và dừng sẽ không quá thoải mái.

Rủi ro chiến lược

  1. Hệ thống hai đường đồng nhất đánh giá tín hiệu có một sự chậm trễ. Có thể bỏ lỡ xu hướng ngắn hạn mạnh hơn.

  2. ATR sẽ tăng khi có biến động cao, có thể bỏ lỡ thời gian can thiệp. Các tham số ATR nên được điều chỉnh thích hợp.

  3. Khi giữ vị trí dài hạn, điểm dừng có thể quá gần, nên được nới lỏng thích hợp với cường độ xu hướng.

  4. Hệ thống đường trung bình có hiệu quả kém trong việc đánh giá tình huống xoay chiều. Nó nên được xác nhận với các chỉ số khác.

  5. Các tham số ATR nên được điều chỉnh theo các chu kỳ khác nhau của các giống khác nhau. Việc chọn tham số không đúng sẽ ảnh hưởng đến tổn thất hệ thống.

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

  1. Có thể thử nghiệm các kết hợp đường trung bình của các tham số chiều dài khác nhau để tìm các tham số đường trung bình phù hợp hơn với đặc điểm xu hướng của giống.

  2. Các chỉ số khác như MACD, KD có thể được đưa vào để xác nhận tín hiệu giao nhau đồng đều, tăng Entscheidungssicherheit.

  3. Các tham số ATR có thể được tối ưu hóa thông qua tra cứu để phù hợp hơn với tính năng ổn định dao động của giống này.

  4. Có thể thiết lập ATR nhân số là biến điều chỉnh, tùy theo xu hướng mạnh hoặc yếu động điều chỉnh vị trí dừng lỗ.

  5. Có thể kết hợp với chỉ số cường độ của xu hướng, giảm yêu cầu dừng lỗ khi xu hướng không mạnh, tăng yêu cầu dừng lại khi xu hướng mạnh.

Tóm tắt

Chiến lược này kết hợp các phán đoán xu hướng của hai đường trung bình EMA và kiểm soát rủi ro của chỉ số biến động ATR, tạo thành một hệ thống theo dõi xu hướng hoàn chỉnh hơn. Tầm quan trọng của chiến lược tối ưu hóa là điều chỉnh đường trung bình và tham số ATR để phù hợp hơn với đặc điểm của giống, và thiết kế cơ chế dừng lỗ động để theo dõi sự thay đổi cường độ của xu hướng. Bằng cách tối ưu hóa tham số và tối ưu hóa logic, chiến lược này có thể trở thành một chiến lược theo dõi xu hướng xuất sắc.

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

//@version=4
// **********************************************
// PtahX EMA/ATR Strategy Public Release
// EMA Strategy with ATR & "Fear Factor" built in 
// written by PtahX October 2019
// * modifications welcome 
// * please let me know if you improve it so I can continue to learn :) 
// * use at your own risk - I'm a new programmer and still learning
// * Best of luck on your trades!!

// Take Profit (TP) option based on ATR or MA Crossover 
//***********************************************

strategy(title="PtahX EMA/ATR Strategy", overlay=true, pyramiding=1, calc_on_every_tick=true, default_qty_value=1, initial_capital=10000, slippage=2)

//***************************** 
// Global Inputs
//***************************** 

fastMA = input(title="Fast Moving Average", defval=20, step=1)
slowMA = input(title="Slow Moving Average", defval=55, step=1)
source = input(close, title="Source")
atrLength = input(title="ATR Length", defval=14, minval=7, step=1)
slMultiplier = input(title="Stop Loss Multiple", type=input.float, defval=3, minval=1, step=0.2)
tpMultiplier = input(title= "Take Profit Multiple", type=input.float, defval=3, minval=1, step=0.2)
maPlot = input(true, title="Plot EMA?")
maCrossoverExit =  input(false, title="Exit with Slow MA Crossover?")
atrExit = input(true, title="Exit with ATR?")
//***********************************
// ATR
//***********************************
atr = atr(atrLength)


//***********************************
// Volatility Filter
//**********************************
// During uptrends the ATR indicator tends to post lower volatility. 
// During downtrends, the ATR indicator tends to post higher volatility

volatilityBullish = atr < atr[1] 
volatilityBearish = atr > atr[1]


//***********************************
// Moving Averages
//***********************************
    
// Double Line Plot Code (used for Entries & Exits not plotted by default)
fast = ema(source, fastMA)
slow = ema(source, slowMA)
maLong = crossover(fast, slow)
maShort = crossunder(fast, slow) 

// Single Line Plot Code
bullish = slow > slow[1]
bearish = slow < slow[1]
barColor = bullish ? color.green : bearish ? color.red : color.blue


//***************************** 
// Entries
//***************************** 

entryLong = maLong and volatilityBullish
entryShort = maShort and volatilityBearish

if entryLong
    sLoss = source - atr * slMultiplier
    strategy.entry("Long", strategy.long, qty=10)
    strategy.exit("Long Exit", "Long", stop=sLoss)


if entryShort
    sLoss = source + atr * slMultiplier
    tProfit = close > slowMA
    strategy.entry("Short", strategy.short, qty=10)
    strategy.exit("Short Exit", "Short", stop=sLoss)


//***************************** 
// Exits
//*****************************

exitLong = 0
exitShort = 0

if maCrossoverExit
    exitLong = maShort
    exitShort = maLong
    strategy.exit("Long Exit", "Long", when = exitLong)
    strategy.exit("Short Exit", "Short", when = exitShort)

if atrExit
    exitLong = source + atr * tpMultiplier
    exitShort = source - atr * tpMultiplier
    strategy.exit("Long Exit", "Long", limit = exitLong)
    strategy.exit("Short Exit", "Short", limit = exitShort)


//******************************
// ATR Based Exit/ Stop Plotting 
//******************************

// Stop Loss Calculations
longStopLoss = source - atr(atrLength) * slMultiplier
shortStopLoss = source + atr(atrLength) * slMultiplier

longTakeProfit = source - atr(atrLength) * slMultiplier
shortTakeProfit = source + atr(atrLength) * slMultiplier
  

//*********************************
//Chart Plotting
//*********************************

//ATR Based Stop Losses
plot(shortStopLoss, color=color.fuchsia, offset=0, transp=0, show_last=5, linewidth=2, style=plot.style_stepline, title="Short Stop Loss")
plot(longStopLoss, color=color.fuchsia, offset=0, transp=0, show_last=5, linewidth=2, style=plot.style_stepline, title="Long Stop Loss")


// Single Slow EMA Option
plot(slow and maPlot ? slow : na, title="EMA", color=barColor, linewidth=3)