A estratégia de lucro efetivo é uma estratégia quantitativa de negociação projetada para capturar oportunidades lucrativas nos mercados financeiros de médio prazo, integrando princípios de negociação de swing e indicadores de momento.
O sinal de compra é determinado por múltiplos fatores, incluindo A1, A2, A3, XG e WeeklySlope.
Condição A1: verifica relações de preços específicas, verificando que a relação entre o preço mais alto e o preço de fechamento é inferior a 1,03, a relação entre o preço de abertura e o preço mais baixo é inferior a 1,03, e a relação entre o preço mais alto e o preço de fechamento anterior é superior a 1,06.
A2 Condição: Verifica as relações de preços relacionadas com o preço de fechamento, verificando que a relação entre o preço de fechamento e o preço de abertura é superior a 1,05 ou a relação entre o preço de fechamento e o preço de fechamento anterior é superior a 1,05. Esta condição procura sinais de movimento e impulso ascendente do preço.
A3 Condição: concentra-se no volume, verificando se o volume actual ultrapassa o volume mais elevado dos últimos 60 períodos.
Condição XG: Combina as condições A1 e A2 e verifica se elas são verdadeiras para as barras atuais e anteriores. Também verifica a relação do preço de fechamento para cruzes de EMA de 5 períodos acima da SMA de 9 períodos da mesma proporção. Esta condição ajuda a identificar sinais de compra potenciais quando vários fatores se alinham, indicando forte impulso de alta e ponto de entrada potencial.
Fator de tendência semanal: Calcula a inclinação da SMA de 50 períodos em um período de tempo semanal. Verifica se a inclinação é positiva, indicando uma tendência geral de alta em uma base semanal. Esta condição fornece uma confirmação adicional de que o estoque está em uma tendência de alta.
Quando todas estas condições são satisfeitas, a condição de compra é acionada, indicando um momento favorável para entrar numa posição longa.
A condição de venda é relativamente simples na estratégia:
A condição de venda simplesmente verifica se o preço de fechamento cruza abaixo da EMA de 10 períodos. Quando esta condição é atendida, indica uma reversão potencial ou enfraquecimento do ímpeto de preço ascendente e um sinal de venda é gerado.
A estratégia de lucro efetivo de swing de momento integra princípios de negociação de swing e indicadores de momento através da otimização de parâmetros e integração de condições, alcançando lucros consideráveis em backtests.
/*backtest start: 2022-10-26 00:00:00 end: 2023-11-01 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © fzj20020403 //@version=5 strategy("Slight Swing Momentum Strategy.", overlay=true) // Position Status Definition var inPosition = false // Moving Average Definition ma60 = ta.sma(close, 60) // A1 Condition Definition A1 = high / close < 1.03 and open / low < 1.03 and high / close[1] > 1.06 // A2 Condition Definition A2 = close / open > 1.05 or close / close[1] > 1.05 // A3 Condition Definition highestVol = ta.highest(volume, 60) A3 = ta.crossover(volume, highestVol[1]) // B1 Condition Definition ema5 = ta.ema(close, 5) B1 = close / ema5 // XG Condition Definition A1andA2 = (A1 and A2) and (A1[1] and A2[1]) XG = ta.crossover(B1, ta.sma(B1, 9)) // Weekly Trend Factor Definition weeklyMa = ta.sma(close, 50) weeklySlope = (weeklyMa - weeklyMa[4]) / 4 > 0 // Buy Signal using XG Condition buySignal = A1 and close > ma60 or A2 and A3 and XG and close > ma60 and weeklySlope // Sell Signal Condition sellSignal = close < ta.ema(close, 10) // Buy and Sell Conditions buyCondition = buySignal and not inPosition sellCondition = sellSignal and inPosition // Execute Buy and Sell Operations if (buyCondition) strategy.entry("Buy", strategy.long) inPosition := true if (sellCondition) strategy.close("Buy") inPosition := false // Stop Loss and Take Profit Levels stopLoss = strategy.position_avg_price * 0.5 takeProfit = strategy.position_avg_price * 1.30 // Apply Stop Loss and Take Profit Levels if inPosition strategy.exit("Long Stop Loss", "Buy", stop=stopLoss) strategy.exit("Long Take Profit", "Buy", limit=takeProfit) // Plot Buy and Sell Signal Shapes plotshape(buyCondition, style=shape.arrowdown, location=location.belowbar, color=color.green, size=size.small) plotshape(sellCondition, style=shape.arrowup, location=location.abovebar, color=color.red, size=size.small) // EMA Variable Definition ema = ta.ema(close, 5) // Plot Indicator Line plot(ema, color=color.green, title="EMA")