ADX EFI 50 Chiến lược khôi phục kênh trung bình động

Tác giả:ChaoZhang, Ngày: 2023-09-19 17:10:51
Tags:

Tổng quan

Chiến lược này sử dụng sự kết hợp của kênh trung bình động 50 giai đoạn, chỉ số hướng ADX và chỉ số năng lượng EFI cho giao dịch xu hướng. Khi chỉ số năng lượng EFI cho thấy sự khởi đầu của xu hướng, nó đi vào thị trường trong một pullback trong khu vực kênh 50 MA. Chiến lược này phù hợp với khung thời gian 1 phút.

Chiến lược logic

  1. Tính toán kênh trung bình động 50 giai đoạn, với dải trên là đường trung bình động của giá cao và dải dưới là đường trung bình động của giá thấp.

  2. Tính toán chỉ số hướng ADX để xác định sức mạnh xu hướng và chỉ xem xét giao dịch trong thời gian xu hướng mạnh (ADX>20).

  3. Tính toán các chỉ số năng lượng EFI dài hạn (120 giai đoạn) và ngắn hạn (15 giai đoạn). Chỉ số dài hạn trên 0 cho thấy xu hướng tăng tổng thể trong năng lượng, trong khi chỉ số ngắn hạn dưới 0 cho thấy xu hướng tăng ngắn hạn.

  4. Khi các chỉ số EFI dài hạn và ngắn hạn cung cấp tín hiệu mua, và giá kéo trở lại kênh 50 MA, một vị trí dài được thực hiện.

  5. Khi các chỉ số EFI dài hạn và ngắn hạn cung cấp tín hiệu bán, và giá kéo trở lại kênh 50 MA, một vị trí ngắn được thực hiện.

Phân tích lợi thế

Chiến lược này kết hợp các tín hiệu xu hướng, động lực và rút lui để lọc hiệu quả hầu hết các đột phá sai.

  1. Kênh 50 MA xác định rõ hướng xu hướng chính.

  2. Chỉ số ADX đảm bảo giao dịch chỉ xảy ra trong thời gian xu hướng rõ ràng, tránh sự biến động trong các thị trường khác nhau.

  3. Chỉ số EFI ghi lại các đợt tăng năng lượng xu hướng cho các điểm nhập cảnh có rủi ro thấp.

  4. Chờ đợi các lần rút tiền cho phép tỷ lệ rủi ro-lợi nhuận tốt hơn.

  5. Sự kết hợp nhiều chỉ số lọc hiệu quả rủi ro phá vỡ sai.

Phân tích rủi ro

Những rủi ro chính của chiến lược này là:

  1. Xu hướng mạnh cũng có thể có sự rút lui lớn hơn, đòi hỏi phạm vi dừng lỗ rộng hơn.

  2. Trong các thị trường dao động, EFI có thể cung cấp tín hiệu sai, đòi hỏi phải kết hợp với các chỉ số lọc xu hướng như ADX.

  3. Việc kéo trở lại quá sâu có thể bỏ lỡ các điểm vào, có thể yêu cầu điều chỉnh MA.

  4. Một công cụ giao dịch duy nhất không đa dạng hóa rủi ro hệ thống của thị trường.

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

Chiến lược này có thể được cải thiện trong một số khía cạnh:

  1. Kiểm tra trên nhiều thiết bị hơn để tìm các thông số phổ quát tối ưu.

  2. Thêm lợi nhuận thông qua các lỗ dừng lại.

  3. Tối ưu hóa tham số của ADX, cài đặt EFI và nhiều hơn nữa.

  4. Kết hợp máy học để phát hiện xu hướng mạnh mẽ so với sự đột phá sai.

  5. Thêm phân tích nhiều khung thời gian với kích thước vị trí giữa các khung thời gian.

  6. Đánh giá nhiều chỉ số lọc xu hướng để cải thiện chất lượng tín hiệu.

Tóm lại

Nhìn chung, đây là một chiến lược rút lui xu hướng tuyệt vời cho người mới bắt đầu, kết hợp các tín hiệu xu hướng, động lực và rút lui để lọc các đột phá sai. Với sự tinh chỉnh trong dừng lỗ, điều chỉnh tham số, khung thời gian và nhiều hơn nữa, nó có thể trở thành một hệ thống theo xu hướng mạnh mẽ. Tóm lại, một chiến lược giao dịch xu hướng rất thực tế và đáng nghiên cứu.


/*backtest
start: 2023-08-19 00:00:00
end: 2023-09-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © trent777brown

//@version=5
// strategy("adx efi 50 ema channel, trend pullback", overlay=true, margin_long=100, margin_short=100, currency=currency.USD, initial_capital= 100000, close_entries_rule="ANY")

//bollingerbands
[basis, upperband, lowerband]= ta.bb(ohlc4, 50, 3) 
[basis2, upperband2, lowerband2]= ta.bb(ohlc4, 50, 2)
psar= ta.sar(.1, .1, .09)
ema50= ta.ema(hlc3, 50) 
ema50hi= ta.ema(high, 50) 
ema50lo= ta.ema(low, 50) 
ema18= ta.wma(hlc3, 15)
wma9= ta.wma(open, 9) 
wma5= ta.wma(ohlc4, 5) 
ema34= ta.rma(hlc3, 10)
[macdline, signalline, histline]= ta.macd(hlc3, 5, 34, 5) 
[macdline2, signalline2, histline2]= ta.macd(hlc3, 15,70, 24) 
[diplus, diminus, adx]= ta.dmi(20, 20) 
[diplus2, diminus2, adx2]= ta.dmi(12, 12)
rsi= ta.rsi(hlc3, 14)
rsisma= ta.sma(rsi, 10) 
stoch= ta.stoch(close, high, low, 21)
k= ta.wma(stoch, 3)
d= ta.wma(k, 3)
trendline5= ta.wma(hlc3, 300) 
trendline9= ta.wma(open, 540) 
trendline18= ta.wma(open, 1080)
atr=ta.atr(14)
plot(psar, color=color.red, style=plot.style_circles)
plot(ema50, color=color.white, linewidth=4) 
plot(ema50hi, color=color.yellow, linewidth=4)
plot(ema50lo, color=color.yellow, linewidth=4)
plot(ema34, color=color.aqua, linewidth=4)
plot(wma9, color=color.gray, linewidth=4) 
plot(wma5, color=color.lime, linewidth=4) 
plot(trendline18, color=color.orange, linewidth=4) 
plot(upperband, color=color.navy, linewidth=4) 
plot(lowerband, color=color.navy, linewidth=4)
plot(upperband2, color=color.navy, linewidth=4)
plot(lowerband2, color=color.navy, linewidth=4)
plot(trendline9, color=color.maroon, linewidth=4)
plot(trendline5, color=color.yellow, linewidth=4)


efi = ta.rma(ta.change(close) * volume, 15)
efi2= ta.rma(ta.change(close) * volume, 120)

buy= efi2 > 0 and efi < 0 and efi[1] < efi  and adx >= 20 and open < ema50hi
sell= efi2 < 0 and efi > 0 and efi[1] > efi and adx >= 20 and open > ema50lo

//ell= rsi > 50 and ta.crossunder(wma5, wma9) and psar > high and ema18 <= ema50hi and macdline > 0 and macdline < signalline
//buy= ta.crossunder(close, ema50) and rsi < 50 and adx2 < adx2[1] and k < 25 and psar > high
//uy= rsi < 60 and ta.crossover(wma5, wma9)  and psar < low and ema18 >= ema50 and macdline2 > 0 and diplus2 < 30 // and histline2 < 0  
//buy=  ema18 > ema50 and ta.crossunder(rsi, 45) and open < ema50hi and adx2[3] < adx2 and diplus2 < 25 and macdline < 0  and adx < 10
//sell= ta.crossover(close, ema50) and rsi > 50 and adx2 < adx2[1] and k > 75 and psar < low
//ell= ema18 < ema50 and ta.crossover(rsi, 60) and open > ema50lo and diminus2 < 30 and macdline2 < 0 and adx2[2] < adx2 
//buy sell conditions 1
//buy= ta.crossover(wma5, ema18) and ema18 > ema50lo and diplus > 22 and diminus < 22 and adx > 15
//ell= ta.crossover(psar, high) and macdline2 < signalline2 and rsi < rsisma
//when conditions
buytrig= ema34 >= ema50lo
selltrig= ema34 <= ema50hi
//strategy
sl= low - atr * 8
tp= high +  atr * 4
sellsl= high + atr * 8
selltp= low - atr * 4
if(buy)
    strategy.entry("buy", strategy.long, when= buytrig)
    strategy.exit("exit buy", "buy", limit= tp, stop= sl)
    strategy.close("close", when= ta.crossunder(ema34, ema50lo))
if(sell)
    strategy.entry("sell", strategy.short, when= selltrig)
    strategy.exit("exit sell", "sell", limit= selltp, stop= sellsl)


Thêm nữa