Esta estratégia é uma estratégia de negociação baseada no princípio de cruzamento das linhas médias móveis do Bitcoin. A estratégia usa o cruzamento da linha média móvel rápida e da linha média móvel lenta como sinais de compra e venda. Quando a linha média móvel rápida cruza acima da linha média móvel lenta, ela é considerada uma cruz de ouro e vai longa; quando a linha média móvel rápida cruza abaixo da linha média móvel lenta, ela é considerada uma cruz de morte e vai curta.
A estratégia baseia-se principalmente em dois indicadores:
Média móvel (MA): Calcula o preço médio de fechamento durante um determinado período para determinar as tendências de preços e os sinais de reversão.
Índice de Força Relativa (RSI): Calcula a velocidade dos aumentos e quedas de preços durante um determinado período para julgar áreas sobrecompradas e sobrevendidas.
Especificamente, a estratégia usa uma MA mais curta como a linha rápida e uma MA mais longa como a linha lenta. Quando a linha rápida cruza acima da linha lenta, indica que o aumento do preço a curto prazo está acelerando e um sinal de compra é gerado; quando a linha rápida cruza abaixo da linha lenta, indica que a queda do preço a curto prazo está acelerando e um sinal de venda é gerado.
Ao mesmo tempo, a estratégia também estabelece um limiar para o RSI, gerando sinais de compra apenas quando o RSI está acima de 50 e sinais de venda apenas quando o RSI está abaixo de 50, evitando a entrada imprudente quando os preços flutuam violentamente.
A estratégia apresenta as seguintes vantagens:
A estratégia apresenta também alguns riscos:
Para mitigar os riscos, recomenda-se otimizar os parâmetros da média móvel do período, ajustar as posições de stop loss e reduzir adequadamente os tamanhos das posições.
As principais direcções de otimização desta estratégia incluem:
Otimizar os parâmetros da média móvel do período para encontrar a combinação ideal de parâmetros, através de pesquisa incremental, algoritmos genéticos, etc.
Aumentar outros indicadores técnicos de filtragem, tais como KDJ, MACD, etc., para melhorar a qualidade dos sinais de negociação.
Monitorizar as flutuações de preços e ajustar as posições e parar as perdas em conformidade.
Incorporar o volume de negociação para evitar falhas, emitindo sinais apenas quando o volume de negociação aumenta.
Desenvolver mecanismos de autoadaptação dos parâmetros, permitindo que as estratégias ajustem automaticamente os valores dos parâmetros com base em diferentes ambientes de mercado.
Em resumo, esta é uma estratégia típica de seguimento de tendências. Com base no princípio do cruzamento da média móvel, a lógica de negociação é simples e clara, fácil de entender e implementar. Incorporar o indicador RSI pode evitar a negociação irracional. A estratégia carrega riscos e recompensas, adequados para investidores com alguma experiência em negociação de quantidade, mas os riscos de perda potencial precisam ser protegidos. Se os desenvolvedores podem adicionar mais filtros, otimizar a adaptabilidade dos parâmetros, pode melhorar ainda mais a lucratividade constante da estratégia.
/*backtest start: 2023-11-03 00:00:00 end: 2023-12-03 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //Trading Strategy Warning - Past performance may not equal future performance //Account Size Warning - Performance based upon default 10% risk per trade, of account size $100,000. Adjust before you trade to see your own drawdown. //Time Frame - D1 and H4, warning H4 has a lower profit factor (fake-outs, and account drawdown), D1 recommended //Trend Following System - Profitability of this system is dependent on a STRONG trend in Bitcoin, into the future strategy("Bitcoin - MA Crossover Strategy", overlay=true) // User Input usr_risk = input(title="Equity Risk (%)",type=input.integer,minval=1,maxval=100,step=1,defval=10,confirm=false) sma_fast = input(title="Fast MA (Period)",type=input.integer,minval=1,maxval=500,step=1,defval=20,confirm=false) sma_slow = input(title="Slow MA (Period)",type=input.integer,minval=1,maxval=500,step=1,defval=40,confirm=false) rsi_valu = input(title="RSI (Period)",type=input.integer,minval=1,maxval=500,step=1,defval=14,confirm=false) // Create Indicator's shortSMA = sma(close, sma_fast) longSMA = sma(close, sma_slow) rsi = rsi(close, rsi_valu) strategy.initial_capital = 50000 // Units to buy amount = usr_risk / 100 * (strategy.initial_capital + strategy.netprofit) units = floor(amount / close) // Specify entry conditions longEntry = crossover(shortSMA, longSMA) shortEntry = crossunder(shortSMA, longSMA) // Specify exit conditions longExit = crossunder(shortSMA, longSMA) shortExit = crossover(shortSMA, longSMA) // Execute long trade if (longEntry) strategy.entry("long", strategy.long, units, when = rsi > 50) // Exit long trade if(longExit and strategy.position_size > 0) strategy.order("exit long", strategy.short, abs(strategy.position_size)) // Execute short trade if (shortEntry) strategy.entry("short", strategy.short, units, when = rsi < 50) // Exit short trade if(shortExit and strategy.position_size < 0) strategy.order("exit short", strategy.long, abs(strategy.position_size)) // Plot Moving Average's to chart plot(shortSMA) plot(longSMA, color=color.black)