
A estratégia é chamada de “estratégia de amplitude de flutuação baseada em diferença e média móvel” e usa a diferença de amplitude de flutuação das últimas 30 linhas K e três médias móveis (MA5, MA15 e MA30) para tomar decisões de negociação.
A principal ideia da estratégia é medir a volatilidade do mercado através do cálculo da diferença de amplitude das flutuações de preços e combinar as médias móveis de diferentes períodos para determinar a direção da tendência. Quando a volatilidade é baixa e a média curta está acima da média de longo prazo, a estratégia executa uma operação de compra.
O princípio da estratégia pode ser dividido em várias etapas:
As vantagens da estratégia incluem:
Os principais riscos da estratégia são:
Para otimizar a estratégia, as seguintes direções podem ser consideradas:
Em geral, uma estratégia de volatilidade baseada em diferenciais e médias móveis é uma estratégia de negociação que combina volatilidade e indicadores de tendência. Ela mede a volatilidade do mercado calculando a diferença de variações de preços e combina médias móveis de diferentes períodos para determinar a direção da tendência e negociar em um ambiente de mercado apropriado.
/*backtest
start: 2024-02-01 00:00:00
end: 2024-02-29 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Variance and Moving Averages Strategy", overlay=true)
// 计算MA5、MA15和MA30
ma5 = ta.sma(close, 5)
ma15 = ta.sma(close, 15)
ma30 = ta.sma(close, 30)
// 计算过去30根K线的波动幅度(最高价和最低价)的方差
variance = ta.variance((high - low) / close, 30) * 1000000
// 定义买入条件
buy_condition = variance < 35 and ma5 > ma15 and ma15 > ma30
// 定义止损条件 close < ma30 or ma5 < ma30
stop_loss_condition = true
// 定义止盈条件
take_profit_condition = variance > 500
// 执行交易逻辑
if (buy_condition)
strategy.entry("Long", strategy.long)
if (stop_loss_condition)
strategy.close("Long")
if (take_profit_condition)
strategy.close("Long")
// 绘制MA5、MA15和MA30
// plot(ma5, color=color.blue, title="MA5")
// plot(ma15, color=color.orange, title="MA15")
// plot(ma30, color=color.red, title="MA30")
// 绘制方差
hline(0.0004, color=color.green, linestyle=hline.style_dashed, title="Variance < 0.0004")
hline(0.0005, color=color.red, linestyle=hline.style_dashed, title="Variance > 0.0005")
plot(variance, color=color.white, title="Variance")