Chiến lược này sử dụng 50 chu kỳ đường trung bình và chỉ số chuyển động ADX và kết hợp các chỉ số năng lượng EFI để giao dịch xu hướng. Khi chỉ số năng lượng EFI hiển thị xu hướng bắt đầu, quay trở lại vào khu vực 50 đường trung bình. Chiến lược này áp dụng cho chu kỳ thời gian 1 phút.
Tính trung bình đường dẫn của 50 chu kỳ, trên đường dẫn là trung bình của điểm cao, dưới là trung bình của điểm thấp.
Tính toán chỉ số chuyển động ADX để đánh giá cường độ của xu hướng, chỉ khi có xu hướng mạnh thì ((ADX> 20) sẽ được xem xét giao dịch.
Tính năng lượng EFI của chu kỳ dài ((120 chu kỳ) và chu kỳ ngắn ((15 chu kỳ)). Chỉ số chu kỳ dài lớn hơn 0 cho thấy tổng thể tăng năng lượng xu hướng tăng, chỉ số chu kỳ ngắn nhỏ hơn 0 cho thấy giảm bớt xung xung tăng ngắn hạn.
Giao dịch mua được thực hiện khi chỉ số EFI dài hoặc ngắn phát ra tín hiệu mua và giá đã điều chỉnh trở lại 50 kênh trung bình.
Hoạt động bán khi chỉ số EFI dài hoặc ngắn phát ra tín hiệu bán và khi giá quay trở lại 50 kênh trung bình.
Chiến lược này kết hợp xu hướng, động lực và tín hiệu hồi phục, có thể lọc hiệu quả hầu hết các đột phá giả. Những ưu điểm cụ thể như sau:
50 đường trung bình xác định rõ các xu hướng chính.
Chỉ số ADX đảm bảo chỉ giao dịch khi có xu hướng rõ ràng và tránh mạo hiểm khi thị trường dao động.
Chỉ số EFI đánh giá xu hướng năng lượng tăng mua ngay lập tức, giảm rủi ro mua.
Chờ gọi lại để vào sân, có thể nhận được tỷ lệ lợi nhuận rủi ro tốt hơn.
Một loạt các chỉ số có thể được sử dụng để lọc các nguy cơ đột phá giả.
Chiến lược này có những rủi ro:
Trong một xu hướng mạnh, có thể có một sự điều chỉnh lớn hơn, cần thiết để thiết lập một phạm vi dừng lỗ rộng hơn.
Trong tình huống xung đột, chỉ số EFI có thể phát ra tín hiệu sai, cần được kết hợp với các chỉ số đánh giá xu hướng như ADX.
Nếu điều chỉnh quá sâu, bạn sẽ bỏ lỡ thời gian vào sân, bạn có thể điều chỉnh tham số đường trung bình thích hợp.
Một loại giao dịch đơn lẻ không thể phân tán hiệu quả rủi ro hệ thống của thị trường.
Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:
Kiểm tra nhiều hơn để tìm ra phạm vi chung của các tham số chiến lược.
Thêm chiến lược dừng lỗ, khóa lợi nhuận bằng cách theo dõi dừng lỗ.
Tối ưu hóa tham số, tối ưu hóa các tham số chỉ số như ADX, EFI.
Thêm các thuật toán học máy để sử dụng đào tạo dữ liệu lớn để xác định sự phá vỡ xu hướng có thật hay không.
Tăng giao dịch nhiều chu kỳ thời gian, sử dụng kỹ thuật kiểm soát vị trí giữa các chu kỳ khác nhau.
Đánh giá và giới thiệu thêm các chỉ số lọc xu hướng để cải thiện chất lượng tín hiệu.
Chiến lược tổng thể là một chiến lược điều chỉnh xu hướng rất phù hợp cho người mới bắt đầu. Nó kết hợp nhiều tín hiệu như xu hướng, động lực và điều chỉnh lại, có thể lọc hiệu quả phá vỡ giả. Bằng cách tối ưu hóa chiến lược dừng lỗ, thiết lập tham số, chu kỳ thời gian, chiến lược có thể trở thành một hệ thống theo dõi xu hướng mạnh mẽ.
/*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)