
Esta estratégia é conhecida como a estratégia de negociação quantitativa baseada no SMA que é baseada no cruzamento da linha média com o indicador de profundidade do mercado. A estratégia utiliza principalmente o sinal de forquilha do SMA, combinando a linha de conversão, a linha de referência e a linha de frente do indicador de profundidade do mercado de Ichimoku, bem como o indicador de volume de transação para a negociação automática de Bitcoin.
A estratégia baseia-se principalmente nos seguintes princípios:
A linha de equilíbrio do SMA utiliza diferentes parâmetros para construir um sinal de troca de forcados e forcados. Um sinal de compra é gerado quando o SMA curto é atravessado pelo SMA longo e um sinal de venda é gerado quando o SMA curto é atravessado pelo SMA longo.
O indicador de Ichimoku Cloud Chart determina a profundidade e a tendência do mercado. Os sinais de compra são gerados apenas quando o preço de fechamento está acima da linha de frente e da linha de base do Cloud Chart e os sinais de venda são gerados quando estão abaixo da linha de frente e da linha de base do Cloud Chart, filtrando a maioria dos sinais falsos.
O indicador de volume de transações em branco filtra os falsos sinais de volume baixo, gerando um sinal de compra e venda somente quando o volume de transações é maior do que a média de um período.
A função plotshape marca a posição do sinal de compra e venda no gráfico.
Assim, a estratégia integra tendências de curto e longo prazo, indicadores de profundidade de mercado e indicadores de volume de transação para otimizar as decisões de negociação.
A estratégia tem as seguintes vantagens:
A estratégia também apresenta os seguintes riscos:
Para esses riscos, pode ser otimizado por meio do ajuste de parâmetros de linha média, parâmetros de gráfico de nuvem, parâmetros de volume de transação, etc., ao mesmo tempo em que se seleciona a variedade de transação apropriada, reduzindo o risco.
A estratégia pode ser otimizada nas seguintes direções:
Esta estratégia utiliza a combinação de equilíbrio, profundidade de mercado e volume de negociação, formando uma estratégia de negociação quantitativa mais estável e confiável. A estratégia pode ser ainda mais otimizada por meio de ajustes de parâmetros, adição de novos indicadores técnicos, etc.
/*backtest
start: 2024-01-16 00:00:00
end: 2024-01-23 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("SMA Crossover with Ichimoku & Volume", shorttitle="SCIV", overlay=true)
// Define the length of SMA
shortSmaLength = input(14, title="Short SMA Length")
longSmaLength = input(21, title="Long SMA Length")
volumeLength = input(20, title="Volume Moving Average Length")
// Calculate the SMA and Volume MA
shortSma = sma(close, shortSmaLength)
longSma = sma(close, longSmaLength)
volumeMa = sma(volume, volumeLength)
// Define the lengths of the Ichimoku Cloud components
tenkanLength = input(9, title="Tenkan Length")
kijunLength = input(26, title="Kijun Length")
senkouBLength = input(52, title="Senkou B Length")
displacement = input(26, title="Displacement")
// Calculate the Ichimoku Cloud components
tenkan = (highest(high, tenkanLength) + lowest(low, tenkanLength)) / 2
kijun = (highest(high, kijunLength) + lowest(low, kijunLength)) / 2
senkouA = (tenkan + kijun) / 2
senkouB = (highest(high, senkouBLength) + lowest(low, senkouBLength)) / 2
// Define the conditions for entry and exit with Ichimoku filter and Volume filter
buyEntry = crossover(shortSma, longSma) and close > senkouA[displacement] and close > senkouB[displacement] and volume > volumeMa
sellEntry = crossunder(shortSma, longSma) and close < senkouA[displacement] and close < senkouB[displacement] and volume > volumeMa
// Plot buy/sell conditions on the chart for visual inspection
plotshape(buyEntry, style=shape.labelup, location=location.belowbar, color=color.green, text="Buy", size=size.small)
plotshape(sellEntry, style=shape.labeldown, location=location.abovebar, color=color.red, text="Sell", size=size.small)
// Execute the strategy
if (buyEntry)
strategy.entry("Buy", strategy.long)
if (sellEntry)
strategy.entry("Sell", strategy.short)