Эта стратегия заключается в том, чтобы наблюдать за тем, как цена реагирует на отклонение от тройной EMA, чтобы определить тенденцию и совершить прорывную сделку в конце отклонения. Эта стратегия относится к категории стратегий отслеживания тенденций, предназначенных для захвата возможности отклонения от средне-длинных трендов.
Принципы стратегии:
Устройство с тремя EMA: быстрым, средним и медленным, типичные параметры - 25, 100 и 200 циклов.
Когда цены выше отклонения касаются наиболее быстрых ЭМА, это рассматривается как многостороннее движение по средней длинной линии, а когда снижение касается наиболее быстрых ЭМА, это рассматривается как пустое движение.
При начале восстановления в конце верхнего отклонения, сделайте больше, когда пробиваете самую быструю ЭМА; при начале восстановления в конце нижнего отклонения, сделайте пустое, когда падаете самую быструю ЭМА.
Показать, как можно купить и продать товары, используя цветовые маркировки.
Установка фиксированного стоп-лосса, риско-возвратный коэффициент, управление рисками.
Преимущества этой стратегии:
Сделки с обратным вызовом имеют высокий уровень успеха.
Посмотрите, что делает EMA, чтобы избежать ловушки.
Прибыль от риска больше, чем контроль, повышение эффективности и устойчивости.
Риски этой стратегии:
Слишком длинный отклик может привести к тому, что мы пропустим лучшие точки входа.
Необходимо оптимизировать параметры EMA для различных циклов.
Фиксированная остановка может быть слишком механической и требует разумной настройки.
В целом, стратегия позволяет отслеживать тенденции средней и долгой линии с помощью прорыва в трёхкратном отклонении от EMA. Механизм управления рисками помогает получить стабильную прибыль в долгосрочной перспективе, но инвесторы все еще должны обращать внимание на оптимизацию параметров и отклонение от отклонения.
/*backtest
start: 2023-09-04 00:00:00
end: 2023-09-11 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title="Pullback", overlay=true, initial_capital=1000, slippage=25)
averageData = input.source(close, title="Source")
target_stop_ratio = input.float(title="Ratio Risk/Reward", defval=2, group="Money Management")
security = input.float(50, title='min of pips (00001.00) for each position', group="Money Management")
risk = input.float(2, title="Risk per Trade %", group="Money Management")
riskt = risk / 100 + 1
ema1V = input.int(25, title="Rapide", group="Ema Period")
ema2V = input.int(100, title="Moyenne", group="Ema Period")
ema3V = input.int(200, title="Lente", group="Ema Period")
ema1 = ta.ema(averageData, ema1V)
ema2 = ta.ema(averageData, ema2V)
ema3 = ta.ema(averageData, ema3V)
useDateFilter = input.bool(true, title="Filter Date Range of Backtest",
group="Backtest Time Period")
backtestStartDate = input(timestamp("5 June 2022"),
title="Start Date", group="Backtest Time Period",
tooltip="This start date is in the time zone of the exchange " +
"where the chart's instrument trades. It doesn't use the time " +
"zone of the chart or of your computer.")
backtestEndDate = input(timestamp("5 July 2022"),
title="End Date", group="Backtest Time Period",
tooltip="This end date is in the time zone of the exchange " +
"where the chart's instrument trades. It doesn't use the time " +
"zone of the chart or of your computer.")
inTradeWindow = true
float pricePullAboveEMA_maxClose = na
float pricePullBelowEMA_minClose = na
if ta.crossover(close, ema1)
pricePullAboveEMA_maxClose := close
else
pricePullAboveEMA_maxClose := pricePullAboveEMA_maxClose[1]
if close > pricePullAboveEMA_maxClose
pricePullAboveEMA_maxClose := close
if ta.crossunder(close, ema1)
pricePullBelowEMA_minClose := close
else
pricePullBelowEMA_minClose := pricePullBelowEMA_minClose[1]
if close < pricePullBelowEMA_minClose
pricePullBelowEMA_minClose := close
BuyZone = ema1 > ema2 and ema2 > ema3
SellZone = ema1 < ema2 and ema2 < ema3
longcondition = ta.crossover(close, ema1) and pricePullBelowEMA_minClose > ema3 and pricePullBelowEMA_minClose < ema1
shortcondition = ta.crossunder(close , ema1) and pricePullAboveEMA_maxClose < ema3 and pricePullAboveEMA_maxClose > ema1
float risk_long = na
float risk_short = na
float stopLoss = na
float takeProfit = na
float entry_price = na
risk_long := risk_long[1]
risk_short := risk_short[1]
lotB = (strategy.equity*riskt-strategy.equity)/(close - ema2)
lotS = (strategy.equity*riskt-strategy.equity)/(ema2 - close)
if strategy.position_size == 0 and BuyZone and longcondition and inTradeWindow
risk_long := (close - ema2) / close
minp = close - ema2
if minp > security
strategy.entry("long", strategy.long, qty=lotB)
if strategy.position_size == 0 and SellZone and shortcondition and inTradeWindow
risk_short := (ema2 - close) / close
minp = ema2 - close
if minp > security
strategy.entry("short", strategy.short, qty=lotS)
if strategy.position_size > 0
stopLoss := strategy.position_avg_price * (1 - risk_long)
takeProfit := strategy.position_avg_price * (1 + target_stop_ratio * risk_long)
entry_price := strategy.position_avg_price
strategy.exit("long exit", "long", stop = stopLoss, limit = takeProfit)
if strategy.position_size < 0
stopLoss := strategy.position_avg_price * (1 + risk_short)
takeProfit := strategy.position_avg_price * (1 - target_stop_ratio * risk_short)
entry_price := strategy.position_avg_price
strategy.exit("short exit", "short", stop = stopLoss, limit = takeProfit)
plot(ema1, color=color.blue, linewidth=2, title="Ema Rapide")
plot(ema2, color=color.orange, linewidth=2, title="Ema Moyenne")
plot(ema3, color=color.white, linewidth=2, title="Ema Lente")
p_ep = plot(entry_price, color=color.new(color.white, 0), linewidth=2, style=plot.style_linebr, title='entry price')
p_sl = plot(stopLoss, color=color.new(color.red, 0), linewidth=2, style=plot.style_linebr, title='stopLoss')
p_tp = plot(takeProfit, color=color.new(color.green, 0), linewidth=2, style=plot.style_linebr, title='takeProfit')
fill(p_sl, p_ep, color.new(color.red, transp=85))
fill(p_tp, p_ep, color.new(color.green, transp=85))
bgcolor(BuyZone ? color.new(color.green, 95) : na)
bgcolor(SellZone ? color.new(color.red, 95) : na)