
Esta estratégia é um sistema de negociação automatizado baseado em sinais de cruzamento de média móvel, que otimiza o desempenho da negociação definindo uma relação risco-retorno fixa. A estratégia usa o cruzamento da média móvel rápida (MA rápida) e da média móvel lenta (MA lenta) para determinar a direção da tendência do mercado e combina o ponto de stop loss predefinido e a meta de lucro para gerenciar o risco da posição.
A lógica central da estratégia é baseada nos sinais de cruzamento gerados por duas médias móveis de períodos diferentes (10 períodos e 30 períodos). Quando a linha rápida cruza a linha lenta, o sistema gera um sinal longo; quando a linha rápida cruza a linha lenta, o sistema gera um sinal curto. Após cada posição ser aberta, o sistema calculará automaticamente a posição de stop loss com base na taxa de stop loss predefinida de 2% e definirá a meta de lucro de acordo com uma relação risco-retorno de 2,5 vezes. Essa abordagem garante que cada negociação tenha um perfil de risco-retorno fixo.
Esta estratégia cria um sistema de negociação completo combinando métodos clássicos de análise técnica com conceitos modernos de gerenciamento de risco. Embora existam certas limitações, por meio de otimização e melhoria contínuas, espera-se que a estratégia mantenha um desempenho estável em diferentes ambientes de mercado. O segredo é ajustar continuamente as configurações dos parâmetros com base nos resultados reais das negociações e encontrar a configuração que melhor se adapta ao ambiente de mercado atual.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("SOL 15m 2.5 R:R Strategy", overlay=true, margin_long=100, margin_short=100, initial_capital=10000, commission_type=strategy.commission.percent, commission_value=0.1)
//---------------------------------------------------
// User Inputs
//---------------------------------------------------
// sym = input.symbol("swap", "Symbol")
timeframe = input.timeframe("15", "Timeframe")
fastLength = input.int(10, "Fast MA Length")
slowLength = input.int(30, "Slow MA Length")
stopLossPerc = input.float(2.0, "Stop Loss %", step=0.1) // This is an example; adjust to achieve ~45% win rate
RR = input.float(2.5, "Risk to Reward Ratio", step=0.1)
//---------------------------------------------------
// Data Sources
//---------------------------------------------------
price = request.security("swap", timeframe, close)
// Compute moving averages
fastMA = ta.sma(price, fastLength)
slowMA = ta.sma(price, slowLength)
// Entry Conditions
longCondition = ta.crossover(fastMA, slowMA)
shortCondition = ta.crossunder(fastMA, slowMA)
//---------------------------------------------------
// Stop Loss and Take Profit Calculation
//---------------------------------------------------
var entryPrice = 0.0
if (strategy.position_size == 0) // not in a position
if longCondition
// Long entry
entryPrice := price
strategy.entry("Long", strategy.long)
if shortCondition
// Short entry
entryPrice := price
strategy.entry("Short", strategy.short)
if strategy.position_size > 0
// We are in a long position
if strategy.position_avg_price > 0 and strategy.position_size > 0
longStop = strategy.position_avg_price * (1 - stopLossPerc/100)
longTarget = strategy.position_avg_price * (1 + (stopLossPerc/100)*RR)
strategy.exit("Long Exit", "Long", stop=longStop, limit=longTarget)
if strategy.position_size < 0
// We are in a short position
if strategy.position_avg_price > 0 and strategy.position_size < 0
shortStop = strategy.position_avg_price * (1 + stopLossPerc/100)
shortTarget = strategy.position_avg_price * (1 - (stopLossPerc/100)*RR)
strategy.exit("Short Exit", "Short", stop=shortStop, limit=shortTarget)
//---------------------------------------------------
// Plotting
//---------------------------------------------------
plot(fastMA, color=color.new(color.teal, 0), title="Fast MA")
plot(slowMA, color=color.new(color.orange, 0), title="Slow MA")