
Эта стратегия представляет собой интеллектуальную торговую систему, основанную на сигналах пересечения скользящих средних в сочетании с динамическим механизмом управления стоп-профитом и стоп-лоссом. В основе стратегии лежит пересечение двух простых скользящих средних (SMA) с 7 и 40 периодами для генерации торговых сигналов, а также интегрирована система контроля стоп-профита и стоп-лосса на процентной основе для достижения точного управления. торговых рисков.
Стратегия действует на основе следующих основных механизмов:
Эта стратегия улавливает рыночные тенденции посредством пересечения скользящих средних и обеспечивает управление рисками посредством динамических стоп-профитов и стоп-лоссов, а также является весьма практичной. Несмотря на определенный риск запаздывания, стабильность и прибыльность стратегии можно дополнительно повысить за счет рекомендуемых направлений оптимизации. Стратегия легко настраивается и пригодна для дальнейшего совершенствования и персонализированной корректировки.
/*backtest
start: 2024-12-10 00:00:00
end: 2025-01-08 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/
//@version=5
strategy("Cruzamento de Médias Móveis (Configuração Interativa)", overlay=true)
// Permite que o usuário defina os períodos das médias móveis na interface
periodo_ma7 = input.int(7, title="Período da Média Móvel 7", minval=1)
periodo_ma40 = input.int(40, title="Período da Média Móvel 40", minval=1)
// Definindo as médias móveis com os períodos configuráveis
ma7 = ta.sma(close, periodo_ma7)
ma40 = ta.sma(close, periodo_ma40)
// Parâmetros de stop loss e take profit
stop_loss_pct = input.float(1, title="Stop Loss (%)", minval=0.1) / 100
take_profit_pct = input.float(2, title="Take Profit (%)", minval=0.1) / 100
// Condições para compra e venda
compra = ta.crossover(ma7, ma40)
venda = ta.crossunder(ma7, ma40)
// Impede novas entradas enquanto já houver uma posição aberta
if (compra and strategy.position_size == 0)
strategy.entry("Compra", strategy.long)
// Cálculo do preço de stop loss e take profit
stop_loss_price = strategy.position_avg_price * (1 - stop_loss_pct)
take_profit_price = strategy.position_avg_price * (1 + take_profit_pct)
// Estratégia de saída com stop loss e take profit
strategy.exit("Saída", from_entry="Compra", stop=stop_loss_price, limit=take_profit_price)
// Sinal de venda (fechamento da posição)
if (venda)
strategy.close("Compra")
// Plotando as médias móveis no gráfico
plot(ma7, color=color.blue, title="Média Móvel 7")
plot(ma40, color=color.red, title="Média Móvel 40")
// Plotando o Stop Loss e Take Profit no gráfico
plot(stop_loss_price, color=color.red, style=plot.style_line, linewidth=2, title="Stop Loss")
plot(take_profit_price, color=color.green, style=plot.style_line, linewidth=2, title="Take Profit")