A estratégia é chamada de
O principal princípio desta estratégia é capturar oportunidades de rebote em mercados de faixa usando a reversão de médias móveis de curto prazo. Especificamente, quando os preços atravessam médias móveis de ciclo mais longo (como MA de 20 dias e 50 dias) e mostram sinais de forte sobrevenda, os preços tendem a se recuperar em certa medida devido à característica de reversão média das flutuações do mercado. Neste momento, se médias móveis de ciclo mais curto (como MA de 10 dias) mostrarem sinal de reversão ascendente, seria um bom momento para comprar. Nesta estratégia, ele comprará quando o preço de fechamento estiver abaixo de MA de 20 dias, enquanto acima de MA de 50 dias, a fim de capturar seu rebote com reversão de MA de curto prazo.
A lógica de entrada específica é: Compre 1 lote quando o preço atravessa a MA de 20 dias, adicione 1 lote quando atravessa a MA de 50 dias, continue adicionando 1 lote quando atravessa a MA de 100 dias e adicione até 1 lote quando atravessa a MA de 200 dias, para um máximo de 4 lotes. Tome lucro após atingir as metas pré-definidas. Também define o tempo e as condições de stop loss.
Em geral, esta é uma estratégia de negociação de MA clássica e universal. Ele utiliza corretamente a característica de suavização de MA, combinada com vários MA para identificar oportunidades de compra de curto prazo. Ele controla os riscos por ordens de pirâmide e tomada de lucro oportuna. Mas sua resposta a eventos de mercado como notícias políticas significativas pode ser mais passiva. Isso é algo que pode ser otimizado ainda mais.
/*backtest start: 2023-12-13 00:00:00 end: 2023-12-20 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA_zorba1", shorttitle="zorba_ema", overlay=true) // Input parameters qt1 = input.int(5, title="Quantity 1", minval=1) qt2 = input.int(10, title="Quantity 2", minval=1) qt3 = input.int(15, title="Quantity 3", minval=1) qt4 = input.int(20, title="Quantity 4", minval=1) ema10 = ta.ema(close, 10) ema20 = ta.ema(close, 20) ema50 = ta.ema(close, 50) ema100 = ta.ema(close, 100) ema200 = ta.ema(close, 200) // Date range filter start_date = timestamp(year=2021, month=1, day=1) end_date = timestamp(year=2024, month=10, day=27) in_date_range = true // Profit condition profit_percentage = input(1, title="Profit Percentage") // Adjust this value as needed // Pyramiding setting pyramiding = input.int(2, title="Pyramiding", minval=1, maxval=10) // Buy conditions buy_condition_1 = in_date_range and close < ema20 and close > ema50 and close < open and close < low[1] buy_condition_2 = in_date_range and close < ema50 and close > ema100 and close < open and close < low[1] buy_condition_3 = in_date_range and close < ema100 and close > ema200 and close < open and close < low[1] buy_condition_4 = in_date_range and close < ema200 and close < open and close < low[1] // Exit conditions profit_condition = strategy.position_avg_price * (1 + profit_percentage / 100) <= close exit_condition_1 = in_date_range and (close > ema10 and ema10 > ema20 and ema10 > ema50 and ema10 > ema100 and ema10 > ema200 and close < open) and profit_condition and close < low[1] and close < low[2] exit_condition_2 = in_date_range and (close < ema10 and close[1] > ema10 and close < close[1] and ema10 > ema20 and ema10 > ema50 and ema10 > ema100 and ema10 > ema200 and close < open) and profit_condition and close < low[1] and close < low[2] // Exit condition for when today's close is less than the previous day's low //exit_condition_3 = close < low[1] // Strategy logic strategy.entry("Buy1", strategy.long, qty=qt1 * pyramiding, when=buy_condition_1) strategy.entry("Buy2", strategy.long, qty=qt2 * pyramiding, when=buy_condition_2) strategy.entry("Buy3", strategy.long, qty=qt3 * pyramiding, when=buy_condition_3) strategy.entry("Buy4", strategy.long, qty=qt4 * pyramiding, when=buy_condition_4) strategy.close("Buy1", when=exit_condition_1 or exit_condition_2) strategy.close("Buy2", when=exit_condition_1 or exit_condition_2) strategy.close("Buy3", when=exit_condition_1 or exit_condition_2) strategy.close("Buy4", when=exit_condition_1 or exit_condition_2)