Estratégia de grade de posição variável seguindo tendência

EMA RSI MACD ATR ADX
Data de criação: 2024-03-29 15:23:23 última modificação: 2024-03-29 15:23:23
cópia: 0 Cliques: 1147
1
focar em
1617
Seguidores

Estratégia de grade de posição variável seguindo tendência

Visão geral

A estratégia é uma estratégia de grade de posições variáveis que segue a tendência, usando principalmente a EMA, o RSI e as formas de absorção para determinar a direção da tendência e o momento de entrada. A estratégia ajusta a posição de parada e parada de acordo com o tamanho da entidade da forma de absorção, permitindo que o usuário escolha apenas fazer mais, apenas fazer em branco ou fazer muito em branco.

Princípio da estratégia

A estratégia usa a linha de EMA de 200 ciclos para determinar a direção da grande tendência, quando o preço está em uma tendência ascendente quando está acima da EMA e em uma tendência descendente quando está abaixo da EMA. O RSI de 9 ciclos é usado para determinar a dinâmica. O RSI maior que 50 é considerado um forte dinâmico de múltiplos e menor que 50 é considerado um forte dinâmico de vôo.

A estratégia determina a posição de parada e parada de acordo com o tamanho da entidade de absorção. A posição de parada é o dobro da entidade de absorção, e a margem de parada mínima é de 0,3% do preço de entrada, para evitar que a distância de parada seja pequena demais para causar paradas frequentes. A posição de parada é a margem de parada multiplicada pela taxa de ganho e perda predefinida, garantindo que a taxa de ganho e perda seja fixa.

Vantagens estratégicas

  1. Seguimento de tendências: a estratégia utiliza vários indicadores para avaliar as tendências, ajudando a intervir no início da formação de tendências e a capturar a tendência.

  2. Paragem de perda dinâmica: ajuste a posição de parada de perda de acordo com o tamanho da entidade de absorção de forma, aumente o espaço de parada em uma tendência forte, reduza o alcance de parada em uma tendência mais fraca, controle flexível da posição.

  3. Os usuários podem personalizar os parâmetros de direção de negociação, preferências de risco, etc., para se adaptar às necessidades de diferentes usuários.

  4. Oferecer a opção MACD como condição de filtragem de tendências, confirmando ainda mais a força da tendência e aumentando a taxa de entrada.

Risco estratégico

  1. Erro de julgamento de tendências: Embora a estratégia use o julgamento combinado de vários indicadores, em alguns casos, ainda pode haver erro de julgamento de tendências, resultando em prejuízos.

  2. Redução da amplitude: se a absorção da forma é menor, a distância entre a perda e a parada é muito próxima, resultando em uma deterioração da relação de ganhos e perdas, o que é mais comum em situações de tremor.

  3. Optimização de parâmetros: com diferentes padrões e diferentes períodos, os parâmetros ótimos podem variar muito, exigindo que o usuário continue a debugar e otimizar.

Direção de otimização da estratégia

  1. Apresentação de tendências: pode-se tentar introduzir mais ferramentas de confirmação de tendências, como as bandas de Brin, o índice de direção média (ADX) e outros, para melhorar a precisão de tendências.

  2. Optimização do stop loss: considerar a introdução de indicadores relacionados à volatilidade, como o ATR, ajustar dinamicamente a distância do stop loss para reduzir o risco de excesso de amplitude.

  3. Gerenciamento de posições: Ajuste o tamanho das posições de acordo com a força e a fraqueza da tendência, a lucratividade da conta, etc. Aumente as posições quando a tendência é forte e a lucratividade estável, reduzindo os custos de negociação frequente.

  4. Multi-ciclo, multi-variedade de colaboração: trans-ciclo, trans-variedade de verificação de sinais de tendência, aumentar a probabilidade de ganhar a tendência, ao mesmo tempo dispersar o risco de um único exemplar ou ciclo.

Resumir

A estratégia de seguimento de uma grade de posição variável funciona bem em um cenário de tendência, através de vários indicadores para avaliar a direção e a força da tendência, ajustar dinamicamente as paradas de perda e as posições, para melhor capturar a tendência e obter ganhos extras. Mas em um cenário de tendência incerta ou com frequência oscilante, a estratégia funciona geralmente. Portanto, ao usar a estratégia, é necessário prestar atenção à seleção da variedade de tendência e ajustar os parâmetros conforme a mudança de situação.

Código-fonte da estratégia
/*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"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © niosupetranmartinez
//@version=5
strategy("Trend Follower Scalping Strategy", overlay=true, process_orders_on_close = true)

// Inputs
emaLen = input(200, 'EMA Length')
rsiLen = input(9, 'RSI Length')
trendDirection = input.string("Both", 'Trend Direction', options=["Long Only", "Short Only", "Both"])
risk_reward_ratio = input(2, 'Risk Reward Ratio')
useMacdFilter = input.bool(true, "Use MACD Filter")
macdTimeframe = input("5", "MACD Timeframe")

// EMA and RSI
ema200 = ta.ema(close, emaLen)
customRsi = ta.rsi(close, rsiLen)

// MACD Filter
[macdLine, signalLine, _] = request.security(syminfo.tickerid, macdTimeframe, ta.macd(close, 12, 26, 9))


// Majority Body Candle Identification Function
isMajorityBodyCandle(candleOpen, candleClose, high, low) =>
    bodySize = math.abs(candleClose - candleOpen)
    fullSize = high - low
    bodySize / fullSize > 0.6

// Engulfing Patterns
isBullishEngulfing = close > open and close[1] < open[1] and (close - open) > (open[1] - close[1]) and isMajorityBodyCandle(open, close, high, low)
isBearishEngulfing = close < open and close[1] > open[1] and (open - close) > (close[1] - open[1]) and isMajorityBodyCandle(open, close, high, low)

// Entry Conditions with MACD Filter
longCondition = close > ema200 and customRsi > 50 and isBullishEngulfing and (not useMacdFilter or macdLine > signalLine)
shortCondition = close < ema200 and customRsi < 50 and isBearishEngulfing and (not useMacdFilter or macdLine < signalLine)

// Trade Execution
var float stopLossPrice = na
var float entryPrice = na

// Long Entry
if (longCondition and (trendDirection == "Long Only" or trendDirection == "Both"))
    entryPrice := close
    engulfingBodySize = math.abs(close - open)
    minimumStopLoss = entryPrice * 0.997
    calculatedStopLoss = entryPrice - (engulfingBodySize * 2)
    stopLossPrice := calculatedStopLoss < minimumStopLoss ? calculatedStopLoss : minimumStopLoss
    risk = entryPrice - stopLossPrice
    takeProfitPrice = entryPrice + (risk_reward_ratio * risk)
    strategy.entry("Long", strategy.long)
    strategy.exit("Exit Long", "Long", stop = stopLossPrice, limit = takeProfitPrice)

// Short Entry
if (shortCondition and (trendDirection == "Short Only" or trendDirection == "Both"))
    entryPrice := close
    engulfingBodySize = math.abs(open - close)
    minimumStopLoss = entryPrice * 1.003
    calculatedStopLoss = entryPrice + (engulfingBodySize * 2)
    stopLossPrice := calculatedStopLoss > minimumStopLoss ? calculatedStopLoss : minimumStopLoss
    risk = stopLossPrice - entryPrice
    takeProfitPrice = entryPrice - (risk_reward_ratio * risk)
    strategy.entry("Short", strategy.short)
    strategy.exit("Exit Short", "Short", stop = stopLossPrice, limit = takeProfitPrice)

// Plotting
plot(ema200, color=color.blue, linewidth=2, title="EMA 200")