
O Momentum Pullback Strategy é uma estratégia de longo e curto prazo que identifica os valores extremos do RSI como sinais de momentum. Ao contrário da maioria dos RSI, a estratégia procura a primeira retração para entrar na posição na direção da leitura do RSI extremo.
Ele faz um ganho/fraco no primeiro ponto de retorno da 5a EMA (preço mínimo) / 5a EMA (preço máximo) e corre para cima/para baixo em 12 linhas K. O mecanismo de alto/baixo de rolagem significa que, se o preço entrar em uma longa correção, o alvo de parada será reduzido com a aparição de cada nova linha K. O melhor negócio é geralmente feito dentro de 2-6 linhas K.
A distância de parada recomendada é X vezes o ATR do preço de entrada (podendo ser ajustado nos parâmetros de entrada do usuário).
A estratégia é robusta em todos os períodos de tempo e mercados, com uma taxa de vitória entre 60% e 70%, com uma grande escala de negociação lucrativa. É necessário evitar a geração de sinais em meio a oscilações causadas por notícias econômicas importantes.
Calcule o RSI de 6 dias e procure pontos extremos acima de 90 (superacompra) e abaixo de 10 (superavenda)
Quando o RSI é sobrecomprado, retroceda para a EMA de 5 dias (a linha mais baixa) dentro da linha 6K
Quando o RSI está superando, retroceda para a 5a EMA (linha mais alta) dentro da linha 6K para uma entrada em branco
A estratégia de saída é a parada móvel, com a posição longa como o ponto mais alto das últimas 12 linhas K como o primeiro alvo de saída, depois atualizado para o novo ponto mais alto das 12 linhas K quando uma nova linha K surge, para realizar a saída de rolagem. A posição em branco, ao contrário, é parada com o ponto mais baixo das 12 linhas K.
A distância de parada é X vezes o ATR do preço de entrada e pode ser personalizada.
A estratégia combina o RSI extremo como um sinal de força e retracção para capturar potenciais reviravoltas na tendência, com uma alta taxa de vitória.
O mecanismo de bloqueio móvel foi ativado, o que permite bloquear parte dos lucros com base no movimento real dos preços, reduzindo a retração.
O ATR Stop Loss é uma forma eficaz de controlar o prejuízo individual.
Forte robustez, adaptável a diferentes mercados e combinações de parâmetros, fácil de replicar em disco rígido.
Se o valor do ATR for muito grande, pode causar um stop loss muito longo, ampliando a perda individual.
Se ocorrer a liquidação de ██, o mecanismo de suspensão móvel reduz a margem de lucro.
Se o retorno for mais de 6 K, você perderá o tempo de entrada.
Se houver um evento econômico significativo, a transação pode sofrer um ponto de deslizamento ou uma falsa ruptura.
Pode-se testar reduzir o número de raízes de admissão, como de 6 para 4 linhas K, aumentando a taxa de sucesso de admissão.
Pode-se testar a multiplicação do ATR para controlar ainda mais o stop loss.
A combinação de indicadores de energia pode evitar os prejuízos causados pela recolha de resíduos.
Pode entrar em jogo depois de um atraso de 60 minutos no eixo central, para filtrar parte do ruído.
A estratégia de retorno de dinâmica é, em geral, uma estratégia de captura de linha curta muito prática. Combina tendências, reversões e paradas em vários aspectos, é fácil de operar em disco rígido e possui um certo alfa.
/*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)