A estratégia é chamada de
A estratégia usa três médias móveis de baixo atraso, incluindo 12-, 26-, e 55-período TEMA de baixo atraso. Estes três MA representam MA rápido, médio e lento. Quando o MA rápido cruza o MA médio, um sinal de compra é gerado. Quando o MA rápido cruza abaixo do MA médio, um sinal de venda é gerado. Usando o cruzamento dos três MA para determinar os pontos de entrada e saída do mercado, a negociação de alta frequência pode ser alcançada.
A função modelo tema (() é definida no código para calcular o TEMA de baixo atraso. Sua fórmula de cálculo é: TEMA = 2 * EMA - EMA ((). Ele usa a média móvel exponencial dupla EWMA para cálculo. Essencialmente, é uma EMA dupla suavizada com o mérito principal de reduzir em grande parte o efeito de atraso. Assim, pode responder às mudanças de preço mais rapidamente e melhorar a puntualidade dos sinais de negociação.
Especificamente, as regras de entrada desta estratégia são: quando o MA rápido cruza o MA médio e o MA rápido está acima do MA lento, um sinal de compra é gerado.
A maior vantagem desta estratégia é que as entradas e saídas são determinadas de forma rápida e precisa. O design de baixo atraso dos três MA reduz muito o efeito de atraso para que eles possam responder às mudanças de preço rapidamente. Além disso, usar o cruzamento de três MA para determinar sinais evita sinais falsos.
Além disso, esta estratégia é adequada para negociação de alta frequência para capturar lucros de flutuações de preços de curto prazo. Através de entradas e saídas rápidas, pode lucrar com mercados de alta volatilidade.
O maior risco é que ocorram flutuações de curto prazo. Devido à alta sensibilidade às mudanças de preço do design de baixo atraso, alguns mercados podem experimentar oscilações de alta frequência.
Além disso, a negociação de alta frequência exige o pagamento de comissões relativamente elevadas e custos de deslizamento.
Além disso, esta estratégia exige que o comerciante tenha fortes capacidades de monitorização em tempo real para atualizar o stop loss e obter lucro em tempo hábil.
A estratégia pode ser otimizada a partir dos seguintes aspectos:
Otimizar os parâmetros de período dos três AAs para melhor adaptá-los às diferentes características do mercado.
Adicionar indicadores de volatilidade ou indicadores de volume para confirmar sinais e evitar falhas em mercados variáveis.
Incorporar mais fatores para criar mecanismos dinâmicos de suspensão de atraso.
Otimizar o dimensionamento das posições para controlar os riscos comerciais únicos através de técnicas de gestão de fundos.
Incorporar algoritmos de aprendizagem de máquina para otimizar dinamicamente os parâmetros da estratégia.
Esta é uma estratégia de negociação rápida de média móvel tripla de baixo atraso. Através de seu design de baixo atraso, entradas e saídas rápidas podem ser alcançadas, o que é adequado para a negociação de alta frequência para capturar oportunidades de curto prazo. A maior vantagem desta estratégia é que sua determinação de sinal é rápida e precisa. A maior desvantagem é que ela é propensa a ser esmagada em mercados variados.
[/trans]
/*backtest start: 2023-11-24 00:00:00 end: 2023-12-24 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("scalping low lag tema etal", shorttitle="Scalping tema",initial_capital=10000, overlay=true) mav = input(title="Moving Average Type", defval="temadelay", options=["nkclose", "ema", "emadelay", "fastema", "tema", "temadelay"]) lenb = 3 N = input(8) K = input(1.2) fracCap = input(1.0) in = close + K*mom(close,N) source = close length = 8 sigma = 12.0 offset = 0.9 p = 4 // length = 10 // sigma = 6.0 // offset = 0.85 tema(src,len) => fastemaOut = 2*ema(src, len) - ema(ema(src, len), len) a = 0.0 b = 0.0 c = 0.0 if mav == "nkclose" a := ema(in, 12) b := a[1] c := a[2] if mav == "ema" a := ema(close, 12) b := ema(close, 26) c := ema(close, 55) if mav == "emadelay" a := ema(close, 12) b := a[1] c := a[2] if mav == "fastema" a := ema(in, 12) b := ema(in, 26) c := ema(in, 55) if mav == "tema" a := tema(close, 12) b := tema(close, 26) c := tema(close, 55) if mav == "temadelay" a := tema(close, 12) b := a[1] c := a[2] TP = input(200) SL = input(130) TS = input(1) // TP = input(50) // SL = input(110) // TS = input(1) orderSize = floor((fracCap * strategy.equity) / close) long = cross(a, c) and a > b short = cross(a, c) and a < b plot(a, title="12", color=color.red, linewidth=1) plot(b, title="26", color=color.blue, linewidth=1) plot(c, title="55", color=color.green, linewidth=1) strategy.entry("Long", strategy.long, qty=orderSize, when=long) strategy.entry("Short", strategy.short, qty=orderSize, when=short) // strategy.entry("Long", strategy.long, 100.0, when=long) // strategy.entry("Short", strategy.short, 100.0, when=short) // strategy.entry("Long", strategy.long, 100.0, when=long) // strategy.entry("Short", strategy.short, 100.0, when=short) // strategy.entry("Long", strategy.long, 1.0, when=long) // strategy.entry("Short", strategy.short, 1.0, when=short) TPP = (TP > 0) ? TP : na SLP = (SL > 0) ? SL : na TSP = (TS > 0) ? TS : na // strategy.exit("Close Short", "Short", qty_percent=100, profit=TPP, loss=SLP, trail_points=TSP, when=long) // strategy.exit("Close Long", "Long", qty_percent=100, profit=TPP, loss=SLP, trail_points=TSP, when=short) // strategy.exit("Close Long", "Long", qty_percent=100, profit=TPP, loss=SLP, trail_points=TSP, when=long[1]) // strategy.exit("Close Short", "Short", qty_percent=100, profit=TPP, loss=SLP, trail_points=TSP, when=short[1]) strategy.exit("Close Long", "Long", qty_percent=100, profit=TPP, loss=SLP, trail_points=TSP) strategy.exit("Close Short", "Short", qty_percent=100, profit=TPP, loss=SLP, trail_points=TSP)