Стратегия использует 50-циклический среднелинейный канал и динамический индекс ADX, а также комбинацию EFI-энергетических индикаторов для торговли трендами. Когда EFI-энергетические индикаторы показывают тенденцию, после того, как они запускаются, в область 50-ти среднелинейных каналов вводятся обратные курсы. Стратегия применима к 1-минутным временным периодам.
Вычислить среднелинейный канал на 50 циклов, среднелинейный канал вдоль высоких точек и среднелинейный канал вдоль низких точек.
Для определения силы тренда используется динамический индекс ADX, который рассматривает торговлю только в случае сильного тренда (ADX> 20).
Рассчитайте энергетический показатель EFI для длинных периодов (~120 циклов) и коротких периодов (~15 циклов). Длинный показатель больше 0 означает общее усиление энергии восходящего тренда, а короткий показатель меньше 0 означает краткосрочное снижение импульса восходящего тренда.
Покупательная операция проводится, когда длинно- и короткопериодический индикатор EFI подает сигнал о покупке, и цена возвращается к 50-му среднелинейному каналу.
Продажа проводится, когда длинно-короткий период EFI дает сигнал продажи, и цена возвращается к 50 среднелинейным каналам.
Эта стратегия в сочетании с трендом, динамикой и отзывными сигналами эффективно отфильтровывает большинство ложных прорывов. Конкретные преимущества:
50 среднелинейных каналов четко определяют основные тенденции.
Индекс ADX гарантирует, что торговля будет осуществляться только при наличии четкого тренда, избегая арбитража при колебаниях рынка.
Индекс EFI оценивает, что покупатели совершают покупки в момент усиления энергии тренда, снижая риск покупки.
Ожидая обратного вызова, можно получить лучший риск-возвращение.
Помимо того, что это означает, что у нас есть много различных показателей, мы можем эффективно отфильтровывать риски, связанные с ложными прорывами.
Основные риски этой стратегии:
В сильных трендах также может быть значительное отклонение, которое требует установки более широкого диапазона остановок.
В шокирующих ситуациях, показатель EFI может подавать ошибочные сигналы, которые необходимо сочетать с индикаторами, определяющими тенденцию, такими как ADX.
При глубоком перенастройке можно пропустить время входа в игру, поэтому можно корректировать средний параметр линии.
Одиночные торговые сорта не способствуют эффективному распределению системного риска на рынке.
Эта стратегия может быть оптимизирована в следующих аспектах:
Попробуйте больше разновидностей, чтобы найти общий диапазон параметров стратегии.
Добавление стратегии стоп-лосса для блокировки прибыли путем отслеживания стоп-лосса.
Оптимизация параметров, оптимизация параметров индикаторов ADX, EFI и т. Д.
Добавление алгоритмов машинного обучения, которые используют обучение большим объемам данных для определения истинных и ложных прорывов тенденций.
Увеличение количества транзакций в различные периоды времени с использованием технологии Spacing для контроля позиций между различными периодами.
Оценка и внедрение дополнительных фильтров трендов для улучшения качества сигналов.
Эта стратегия в целом является очень подходящей для начинающих. Она объединяет в себе тенденции, динамику и обратный отклик, а также многочисленные сигналы, которые могут эффективно отфильтровывать ложные прорывы.
/*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)