
Esta estratégia de negociação é uma estratégia de acompanhamento de tendências baseada em um sistema simples de médias móveis e cruzamentos de medias. Utiliza a interseção de médias móveis rápidas e médias móveis lentas de diferentes períodos como sinal de fazer mais curto. Faça mais quando a média móvel rápida atravessa a média móvel lenta de baixo para cima; faça curto quando a média móvel rápida atravessa a média móvel lenta de cima para baixo.
A estratégia usa um ciclo rápido, como uma média móvel simples de 60 dias, e um ciclo lento, como uma média móvel simples de 200 dias. A média móvel rápida responde mais rapidamente às mudanças de preço, refletindo tendências de preços recentes; a média móvel lenta responde mais lentamente às mudanças de preços, refletindo tendências de médio e longo prazo.
Quando a média de curto período atravessa a média de longo período a partir de baixo, indica que o preço de curto período começa a subir, entrando no mercado de múltiplos cabeças, fazendo mais. Quando a média de curto período atravessa a média de longo período a partir de cima, indica que o preço de curto período começa a cair, entrando no mercado de cabeças vazias, fazendo espaço.
A estratégia usa o princípio de cruzamento da linha de equilíbrio para determinar a direção da tendência. Quando os preços de curto período sobem mais rapidamente, a linha de equilíbrio de curto período impulsiona a linha de equilíbrio de longo período para cima e atravessa-a de baixo.
Capturar os pontos de inflexão de uma tendência de preço através da interseção de uma linha média rápida e uma linha média lenta e ajustar a posição de hipoteca de acordo. Este é o principal princípio da estratégia para determinar a tendência e gerar um sinal de negociação.
Pode-se ajustar os parâmetros periódicos das médias móveis para adaptá-los à frequência de variação de diferentes variedades; melhorar as estratégias de stop loss e stop loss, utilizando indicadores mais complexos para reduzir os sinais errados; adicionar métodos como o filtro de volume de transação para otimizar a estratégia e aumentar a estabilidade da estratégia.
A estratégia pode ser melhorada em alguns aspectos:
Optimizar os parâmetros de média móvel de ciclo rápido e lento para variedades com diferentes frequências de oscilação. Mais combinações podem ser testadas para encontrar os melhores parâmetros.
Mudar as condições de entrada e filtrar mais indicadores, como aumento de volume de transações, para reduzir os sinais errados.
Melhorar as estratégias de stop loss, como o rastreamento de stop loss ou stop loss dinâmico, para obter lucros mais eficientes.
Considerando os custos de transação, como taxas de processamento, adicione um módulo de avaliação de custos para tornar a simulação mais realista.
Procurando a melhor combinação de parâmetros para as características de diferentes variedades, o Design Parameter Universe.
Aumentar a identificação de características locais, auxiliar a julgar os pontos de mudança de tendência e melhorar a compreensão do momento de abrir e fechar posições.
A estratégia de otimização do sistema pode aumentar significativamente a taxa de ganho e a estabilidade, reduzindo a retração.
A estratégia de negociação baseada em equilíbrio de linhas cruzadas para determinar a mudança de tendência de preços, é uma estratégia típica de acompanhamento de tendências. Utiliza o cruzamento de diferentes equilíbrios periódicos como sinais de multiplicação de curto-circuito, determina a direção da tendência através de uma combinação de equilíbrio rápido e equilíbrio lento, e realiza uma captura de tendência eficaz. A estratégia é estável, confiável, fácil de entender e implementar, pode ser adaptada à maioria das variedades após otimização de parâmetros e é um tipo de estratégia básica de negociação quantitativa.
/*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 —————————————————————————————————————————————————
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
//