
A estratégia é uma estratégia de negociação de choque de 5 minutos, que visa capturar oscilações de preços de curto prazo nos mercados de bitcoin e ouro para obter lucro. Combina o uso da linha média EMA, o indicador de Brin e o método de stop loss para entrar e sair.
A estratégia usa o indicador de EMA rápido e o indicador de EMA lento para construir um sistema de determinação de tendências. Quando o EMA rápido atravessa o EMA lento, gera um sinal de compra; Quando o EMA rápido atravessa o EMA lento, gera um sinal de venda, capturando a reversão da tendência de curto prazo.
Ao mesmo tempo, a estratégia combina o indicador da faixa de Brin para determinar a faixa de flutuação dos preços. O sinal de negociação é produzido somente quando o preço está perto da faixa de Brin no caminho ou no meio do caminho. Isso pode filtrar a maioria dos falsos sinais.
Após a entrada, a estratégia usa o indicador ATR para calcular o ponto de parada. A parada é definida como o ponto mais baixo da barra de entrada, menos n vezes o ATR, para controlar o risco de cada transação.
A maior vantagem da estratégia é capturar oscilações de curto prazo e volatilidade de preços, tomando lucros pequenos, mas consistentes. A combinação de EMAs rápidas e lentas permite determinar rapidamente as tendências de curto prazo.
Além disso, a operação de ciclo de 5 minutos torna a frequência de negociação da estratégia mais alta, o que aumenta a sua margem de lucro. Além disso, é fácil de monitorar ou otimizar manualmente.
O principal risco desta estratégia é o whipsaws leading to multiple small losses. Quando o preço oscila em uma faixa, o sinal de cruzamento EMA pode ocorrer com frequência, causando negociações desnecessárias e perdas pequenas.
Além disso, como uma estratégia de choque de curto prazo, também enfrenta o risco de custos de transação associados à alta frequência de negociação. Se os custos de negociação forem muito altos, o espaço de lucro pode ser corroído.
A estratégia pode ser otimizada da seguinte forma:
Adicionar outros osciladores como indicadores de julgamento auxiliares, como RSI, Stochastics, etc., para evitar ser coberto em mercados de turbulência.
Aumentar o uso de modelos de aprendizado de máquina para determinar a direção das tendências e melhorar a precisão da admissão.
A utilização de algoritmos genéticos, florestas aleatórias e outros métodos para otimizar automaticamente os parâmetros para que sejam mais adequados às condições atuais do mercado.
Combinado com o aprendizado profundo para determinar os pontos críticos de suporte e os pontos críticos de pressão, define uma melhor posição de parada.
Teste diferentes variedades de negociação, como índices de ações, divisas, criptomoedas, etc., e escolha a variedade que melhor funciona como principal referência de negociação.
Em geral, a estratégia é uma estratégia de negociação frequente de curto prazo, capaz de capturar eficazmente oscilações e reversões de tendência de curto prazo, controlar o risco através de um julgamento rápido de EMA, filtragem de Binance e parada de ATR para obter ganhos estáveis. Se otimizado e melhorado ainda mais, manter a lucratividade ao mesmo tempo em que reduz a frequência de negociação, será uma estratégia de quantificação com muito potencial.
/*backtest
start: 2023-12-19 00:00:00
end: 2024-01-10 00:00:00
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/
// © singhak8757
//@version=5
strategy("Bitcoin and Gold 5min Scalping Strategy2.0", overlay=true)
// Input parameters
fastLength = input(5, title="Fast EMA Length")
slowLength = input(13, title="Slow EMA Length")
bollingerLength = input(20, title="Bollinger Band Length")
bollingerMultiplier = input(2, title="Bollinger Band Multiplier")
stopLossMultiplier = input(1, title="Stop Loss Multiplier")
// Calculate EMAs
fastEMA = ta.ema(close, fastLength)
slowEMA = ta.ema(close, slowLength)
// Calculate Bollinger Bands
basis = ta.sma(close, bollingerLength)
upperBand = basis + bollingerMultiplier * ta.stdev(close, bollingerLength)
lowerBand = basis - bollingerMultiplier * ta.stdev(close, bollingerLength)
// Buy condition
buyCondition = ta.crossover(fastEMA, slowEMA) and (close <= upperBand or close <= basis)
// Sell condition
sellCondition = ta.crossunder(fastEMA, slowEMA) and (close >= lowerBand or close >= basis)
// Calculate stop loss level
stopLossLevel = ta.lowest(low, 2)[1] - stopLossMultiplier * ta.atr(14)
// Plot EMAs
plot(fastEMA, color=color.rgb(0, 156, 21), title="Fast EMA")
plot(slowEMA, color=color.rgb(255, 0, 0), title="Slow EMA")
// Plot Bollinger Bands
plot(upperBand, color=color.new(#000000, 0), title="Upper Bollinger Band")
plot(lowerBand, color=color.new(#1b007e, 0), title="Lower Bollinger Band")
// Plot Buy and Sell signals
plotshape(series=buyCondition, title="Buy Signal", color=color.green, style=shape.labelup, location=location.belowbar)
plotshape(series=sellCondition, title="Sell Signal", color=color.red, style=shape.labeldown, location=location.abovebar)
// Plot Stop Loss level
plot(stopLossLevel, color=color.orange, title="Stop Loss Level")
// Strategy logic
strategy.entry("Buy", strategy.long, when = buyCondition)
strategy.exit("Stop Loss/Close", from_entry="Buy", loss=stopLossLevel)
strategy.close("Sell", when = sellCondition)