
Стратегия Momentum Pullback - это стратегия длинных и коротких позиций, которая идентифицирует экстремальные значения RSI в качестве сигналов динамики. В отличие от большинства стратегий RSI, эта стратегия ищет первые отступления в направлении чтения экстремальных RSI.
Он совершает первый вывод в 5 дневную ЭМА (наименьшая цена) / 5 дневную ЭМА (наибольшая цена) и совершает вывод в верхней/нижней части 12 K-линий. Этот механизм перемещения высоких/низких точек означает, что если цена входит в длительную корректировку, то цель остановки снижается с появлением каждой новой K-линии. Лучшие сделки обычно совершаются в пределах 2-6 K-линий.
Рекомендуемая стоп-дальность - X-кратный ATR входной цены (может быть скорректирована в параметрах пользовательского ввода).
Стратегия обладает высокой устойчивостью к различным временным периодам и рынкам, с выигрышной вероятностью от 60% до 70%, с большим объемом прибыльных сделок. Необходимо избегать создания сигналов во время колебаний, вызванных важными экономическими новостями.
Рассчитайте 6-дневный RSI и найдите крайние точки, которые превышают 90 (перекупа) и ниже 10 (перепродажи)
Когда RSI перекупает, в 6 K-линии оттягивайтесь до 5-дневной EMA (нижняя линия) и делайте дополнительный вход
Когда RSI перепродает, на 6-й K-линии оттягивайтесь до 5-й EMA (наивысшая линия) для пустого входа
Выходная стратегия состоит в том, чтобы перемещать остановки, долгое положение с наивысшей точкой прошлых 12 K-линий в качестве первой выходной цели, затем обновляется на новую 12 K-линий, когда появляется новая K-линия, чтобы осуществить прокатную выходную стратегию. Вместо этого, пустота, чтобы остановить убыток с прокатной 12 K-линий.
Стоп-дальность X кратная стоимости входа ATR, может быть настроена.
Стратегия, которая сочетает в себе RSI-крайние значения в качестве сигнала импульсивности и обратного входа в игру, может поймать потенциальные переломы в тренде, и имеет высокую вероятность победы.
Включен механизм мобильного блокирования, который позволяет блокировать часть прибыли в зависимости от фактического движения цены, уменьшая отзывы.
ATR-стоп эффективно контролирует одиночные убытки.
Сильная устойчивость, применимость к различным рынкам и комбинациям параметров, легкость репликации на жесткий диск.
Если значение ATR будет слишком большим, это может привести к тому, что остановка будет слишком далекой, и одиночные убытки будут увеличены.
Если произойдет ██ отклонение, мобильный тормозный механизм сократит выигрышную площадь.
Если вы будете протягивать дистанцию глубже 6 K-линий, то пропустите время входа в игру.
В случае крупного экономического события сделка может столкнуться со сдвигом или ложным прорывом.
Можно проверить сокращение числа корень входа, например, с 6 до 4 K-линий, что повысит успех входа.
Можно тестировать увеличение ATR-множества для дальнейшего контроля одиночных стоп-убытков
Можно комбинировать показатели количественной энергии, чтобы избежать убытков, связанных с уборкой спинки.
Запуск может быть осуществлен после прорыва средней оси в 60-минутном уровне, что позволяет отфильтровать часть шума.
Двигательная стратегия оттягивания в целом является очень практичной стратегией захвата коротких линий. Она сочетает в себе тенденцию, обратный ход и остановку.
/*backtest
start: 2022-12-05 00:00:00
end: 2023-12-11 00:00:00
period: 1d
basePeriod: 1h
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/
// © Marcns_
//@version=5
strategy("M0PB", commission_value = 0.0004, slippage = 1, initial_capital=30000)
// commision is equal to approx $3.8 per round trip which is accurate for ES1! futures and slippage per trade is conservatively 1 tick in and 1 tick out.
// *momentum pull back* //
// long / short strategy that identifies extreme readings on the rsi as a *momentum signal*
//Strategy buys/ sells a pullback to the 5ema(low)/ 5ema(high) and exits at rolling 12 bar high/ low. The rolling high/ low feature means that
//if price enters into a pronlonged consolidation the profit target will begin to reduce with each new bar. The best trades tend to work within 2-6 bars
// hard stop is X atr's from postion average price. This can be adjusted in user inputs.
// built for use on 5 min & 1min intervals on: FX, Indexes, Crypto
// there is a lot of slack left in entries and exits but the overall strategy is fairly robust across timeframes and markets and has between 60%-70% winrate with larger winners.
// signals that occur from economic news volatility are best avoided.
// define rsi
r = ta.rsi(close,6)
// find rsi > 90
b = 0.0
if r >= 90
b := 1.0
else
na
// find rsi < 10
s = 0.0
if r <= 10
s := -1.0
else
na
// plot rsi extreme as painted background color
bgcolor(b ? color.rgb(255, 82, 82, 49): na)
bgcolor(s? color.rgb(76, 175, 79, 51): na)
// exponential moving averages for entries. note that source is high and low (normally close is def input) this creates entry bands
//entry short price using high as a source ta.ema(high,5)
es = ta.ema(high,5)
//entry long price using low as a source ta.ema(low,5)
el = ta.ema(low,5)
// long pullback entry trigger: last period above ema and current low below target ema entry
let = 0.0
if low[1] > el[1] and low <= el
let := 1.0
else
na
//short entry trigger ""
set = 0.0
if high[1] < es[1] and high >= es
set := -1.0
else
na
// create signal "trade_l" if RSI > 90 and price pulls back to 5ema(low) within 6 bars
trade_l = 0.0
if ta.barssince(b == 1.0) < 6 and let == 1.0
trade_l := 1.0
else
na
plot(trade_l, "l_entry", color.green)
//create short signal "trade_s" if rsi < 10 and prices pullback to 5em(high) wihthin 6 bars
trade_s = 0.0
if ta.barssince(s == -1.0) < 6 and set == -1.0
trade_s := -1.0
else
na
plot(trade_s, "s_entry", color.purple)
// define price at time of trade_l signal and input value into trade_p to use for stop parems later
trade_p = strategy.position_avg_price
//indentify previous 12 bar high as part of long exit strat
// this creates a rolling 12 bar high target... a quick move back up will exit at previous swing high but if a consolidation occurs system will exit on a new 12 bar high which may be below prev local high
ph = ta.highest(12)
// inverse of above for short exit strat - previous lowest low of 12 bars as exit (rolling)
pl = ta.lowest(12)
// 1.5 atr stop below entry price (trade_p defined earlier) as part of exit strat
atr_inp = input.float(2.75, "atr stop", minval = 0.1, maxval = 6.0)
atr = ta.atr(10)
stop_l = trade_p - (atr* atr_inp)
stop_s = trade_p + (atr* atr_inp)
//strat entry long
strategy.entry("EL", strategy.long, 2, when = trade_l == 1.0)
//strat entry short
strategy.entry("ES", strategy.short, 2, when = trade_s == -1.0)
//strat long exit
if strategy.position_size == 2
strategy.exit(id = "ph", from_entry = "EL", qty = 2, limit = ph)
if strategy.position_size == 2
strategy.close_all(when = low[1] > stop_l[1] and low <= stop_l)
// strat short exit
if strategy.position_size == -2
strategy.exit(id = "pl", from_entry = "ES", qty = 2, limit =pl)
if strategy.position_size == -2
strategy.close_all(when = high[1] < stop_s[1] and high >= stop_s)
// code below to trail remaining 50% of position //
//if strategy.position_size == 1
//strategy.exit(id ="trail", from_entry = "EL", qty = 1, stop = el)