Esta estratégia de negociação é baseada em um sistema de cruzamento de média móvel e média móvel simples para rastreamento de tendências. Ele usa o cruzamento de médias móveis rápidas e lentas com diferentes períodos como sinais para ir longo ou curto. Quando o MA rápido cruza acima do MA lento de baixo, vá longo; quando o MA rápido cruza abaixo do MA lento de cima, vá curto. Esta estratégia funciona bem para produtos com tendências óbvias.
A estratégia usa uma média móvel simples rápida como 60 dias e uma lenta como 200 dias.
Quando o MA curto cruza acima do MA longo de baixo, ele sinaliza que os preços de curto prazo começam a subir e entrar em um mercado de alta, então vá longo.
A estratégia usa o cruzamento de MA para determinar a direção da tendência. Quando os preços de curto prazo aumentam mais rápido, o MA curto empurra o MA longo para cima e cruza-o de baixo. Isso significa que uma tendência de alta está emergindo e uma posição longa deve ser tomada. Por outro lado, quando os preços de curto prazo caem mais rápido, o MA curto puxará o MA longo para baixo e cruzá-lo de cima, implicando uma tendência de queda e uma posição curta deve ser tomada.
Ao capturar os pontos de inflexão das tendências de preços utilizando cruzamento MA rápido e lento, a estratégia pode ajustar as posições longas/cortas em conformidade.
Métodos como o ajuste dos períodos de MA com base na frequência de volatilidade dos produtos, a melhoria do stop loss/take profit utilizando indicadores mais complexos, a adição de filtros de volume, etc., podem otimizar esta estratégia e melhorar a estabilidade.
A estratégia pode ser ainda melhorada nos seguintes aspectos:
Otimizar períodos de MA rápidos e lentos para se adaptar a produtos com diferentes frequências de volatilidade.
Melhorar as condições de entrada adicionando mais filtros como picos de volume para reduzir os falsos sinais.
Melhorar o stop loss/take profit como trailing stop ou take profit dinâmico para melhorar a rentabilidade.
Considere custos de negociação como comissões e adicione módulos de avaliação de custos para backtests mais realistas.
Projetar Parâmetro Universo para encontrar combinações ótimas de parâmetros adaptados a diferentes produtos.
Adicionar a identificação de padrões locais para ajudar a determinar pontos de virada da tendência e melhorar o calendário das entradas e saídas.
Através de uma otimização sistemática da estratégia, a rendibilidade, a estabilidade podem ser muito melhoradas e os retrabalhos reduzidos.
A estratégia de negociação determina as mudanças de tendência usando MA crossovers, uma estratégia típica de seguimento de tendência. Ele usa crossover entre MAs rápidos e lentos para gerar sinais longos / curtos, identificando a direção da tendência através da combinação dos dois. Esta estratégia captura as tendências de forma constante e confiável e é fácil de entender e implementar. Quando otimizada, pode se adaptar à maioria dos produtos e forma uma estratégia de negociação quantitativa fundamental.
/*backtest start: 2024-01-04 00:00:00 end: 2024-01-11 00:00:00 period: 10m basePeriod: 1m 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/ // © thebearfib // //@version=5 // strategy("x-over 150d_200d_sma - Free", overlay = true) repaint = input.bool(defval = false, title = "[RePaint] Uncheck to see real time results") //when you deselect it - it shows what would have happened in real time while trading the system srcmc = request.security(syminfo.tickerid, 'D', open, lookahead= repaint ? barmerge.lookahead_on : barmerge.lookahead_off, gaps=barmerge.gaps_off) fast_length = input(title="Fast Length", defval=60) slow_length = input(title="Slow Length", defval=275) _fast = ta.sma(srcmc, fast_length) _slow = ta.sma(srcmc, slow_length) plot(_fast, title="Fast SMA", color=color.red, linewidth = 1) plot(_slow, title="Slow SMA", color=color.white, linewidth = 3) // // ———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— // ————————————————————————————————— Calculating ————————————————————————————————————————————————————————————————————————— // ———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— // longProfitPerc = input.float(title="Long Take Profit (%)", minval=0.01, step=1.0, defval=42) * .01 longStopPerc = input.float(title="Long Stop (%)", minval=0.01, step=1.0, defval=13) * .01 // // ———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— // ————————————————————————————————— Stop Conditions ———————————————————————————————————————————————————————————————————— // ———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— longExitPrice = strategy.opentrades > 0 ? strategy.position_avg_price * (1 + longProfitPerc) : srcmc * (1 + longProfitPerc) longStopPrice = strategy.opentrades > 0 ? strategy.position_avg_price * (1 - longStopPerc) : srcmc * (1 - longStopPerc) // ———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— // ————————————————————————————————— Long Conditions ———————————————————————————————————————————————————————————————————— // ———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— longCondition = srcmc > _slow and ta.crossover(_fast, _slow) closeCondition = ta.crossover(srcmc, _slow) if (longCondition) strategy.entry("Entry (long)", strategy.long, comment="→ 𝗟𝗴 𝗘𝗻𝘁𝗿𝘆") if (closeCondition) strategy.close("Entry (long)", comment=" 𝗟𝗴 𝗘𝘅𝗶𝘁 ←") if (strategy.position_size > 0) strategy.exit(id="XL", limit=longExitPrice, stop = longStopPrice, comment_profit = "Take Profit", comment_loss = "Stop Loss") // // ———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— // ————————————————————————————————— Never the End Just the beginning ————————————————————————————————————————————————— // ———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— //