
Esta estratégia usa a dupla média móvel para formar um canal para capturar a direção da tendência. Quando o preço quebra o canal, um sinal de negociação é produzido. Ao mesmo tempo, a combinação do indicador RSI filtra as brechas falsas.
A estratégia usa duas médias móveis de 5 de comprimento, uma calculada a partir do preço mais alto e outra a partir do preço mais baixo, formando um canal de preços. Quando o preço de fechamento quebra o canal acima, faz mais, e quando o canal é quebrado, faz menos.
Para filtrar brechas falsas, também introduz o indicador RSI para julgar sobrecompra e venda excessiva. Apenas faça mais quando o RSI estiver acima de 80 e faça menos quando estiver abaixo de 20.
Além disso, a estratégia só é negociada durante o horário de negociação de Londres (das 3h às 11h), com um máximo de 5 pedidos por dia, com um máximo de perda de não mais do que 2% do direito de propriedade sobre a ação.
As médias móveis duplas constroem canais de tendência e ajudam a determinar melhor a direção da tendência de preços. Quando o preço sobe, ele capta a tendência de alta do preço; Quando o preço desce, ele capta a tendência de queda.
A combinação com o RSI para determinar áreas de sobrevenda e sobrecompra pode reduzir, em certa medida, as falsas rupturas causadas pela oscilação dos preços.
A estratégia de negociar apenas nos principais períodos de negociação ativos, com um máximo de 5 pedidos por dia, permite um controle efetivo da frequência de negociação; a configuração de perda máxima de 2% permite o controle da perda máxima diária dentro do alcance aceitável.
Quando ocorrem grandes oscilações de preços, pode ocorrer algum falso sinal de ruptura, o que pode levar a perdas desnecessárias de negociação. O risco pode ser reduzido ao ajustar os parâmetros de otimização ou ao aumentar as condições de filtragem.
A estratégia usa um stop loss de um número fixo de pontos. Quando os preços são muito flutuantes, o stop loss de um número fixo de pontos é facilmente bloqueado, respondendo com um stop loss percentual ou dinâmico.
A estratégia de abrir posições apenas em um período de negociação fixo, se não se produzir um sinal nesse período, perderá oportunidades de negociação em potencial em outros períodos. Pode-se considerar a expansão apropriada do tempo de negociação ou o ajuste dinâmico de acordo com a situação em tempo real.
Pode-se otimizar o comprimento da média móvel, o parâmetro RSI, o número de pontos de parada de perda fixa, etc., para encontrar a combinação de parâmetros ideal.
Pode-se adicionar outros indicadores ou condições para a segunda verificação de sinais de ruptura, como aumentar o volume de transação, reduzir o canal de linhas de Brincadeira, etc., para reduzir as falsas rupturas.
Pode-se adotar uma estratégia de stop-loss percentual ou de stop-loss dinâmico, em vez de um simples stop-loss de pontos fixos, melhor para proteger o risco de uma ação unilateral.
Verifique o sinal manualmente, ou entre somente após a confirmação da brecha, para evitar ser bloqueado.
Esta estratégia é geralmente mais simples e prática, através da construção de uma média móvel dupla para determinar a direção da tendência; ao mesmo tempo, o indicador RSI pode filtrar efetivamente alguns falsos rompimentos. Em termos de controle de risco, limitar o tempo de negociação e a perda máxima pode controlar o risco geral. O espaço de otimização é relativamente grande e pode ser melhorado em termos de otimização de parâmetros, atualização do mecanismo de parada de perda e assim por diante.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-16 23:59:59
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/
// © SoftKill21
//@version=4
strategy(title="Moving Average", shorttitle="MA", overlay=true)
timeinrange(res, sess) => time(res, sess) != 0
len = input(5, minval=1, title="Length")
src = input(high, title="Source")
offset = input(title="Offset", type=input.integer, defval=0, minval=-500, maxval=500)
out = sma(src, len)
plot(out, color=color.white, title="MA", offset=offset)
len2 = input(5, minval=1, title="Length")
src2 = input(low, title="Source")
offset2 = input(title="Offset", type=input.integer, defval=0, minval=-500, maxval=500)
out2 = sma(src2, len2)
plot(out2, color=color.white, title="MA", offset=offset2)
length = input( 5 )
overSold = input( 10 )
overBought = input( 80 )
price = input(close, title="Source RSI")
vrsi = rsi(price, length)
longcond= close > out and close > out2 and vrsi > overBought
shortcont = close < out and close < out2 and vrsi < overSold
tp=input(150,title="tp")
sl=input(80,title="sl")
strategy.entry("long",1,when=longcond)
//strategy.close("long",when= close < out2)
strategy.exit("long_exit","long",profit=tp,loss=sl)
strategy.entry("short",1,when=shortcont)
//strategy.close("short",when=close >out)
strategy.exit("short_exit","short",profit=tp,loss=sl)
// maxOrder = input(6, title="max trades per day")
// maxRisk = input(2,type=input.float, title="maxrisk per day")
// strategy.risk.max_intraday_filled_orders(maxOrder)
// strategy.risk.max_intraday_loss(maxRisk, strategy.percent_of_equity)
// strategy.close_all(when =not timeinrange(timeframe.period, "0300-1100"))