Rastreador de touros


Data de criação: 2024-01-31 11:01:45 última modificação: 2024-01-31 11:01:45
cópia: 1 Cliques: 602
1
focar em
1617
Seguidores

Rastreador de touros

Visão geral

O sistema de rastreamento de mercado de touros é um sistema de negociação mecânica baseado no rastreamento de tendências. Ele usa indicadores de tendência em gráficos de 4 horas para filtrar sinais de negociação, enquanto os entradas são julgados por indicadores em gráficos de 15 minutos. Os principais indicadores incluem RSI, indicadores aleatórios e MACD.

Princípios

A lógica central do sistema é a combinação de indicadores de diferentes prazos de tempo para identificar a direção da tendência e o momento de entrada. Concretamente, o RSI, o indicador aleatório e o EMA do gráfico de 4 horas devem ser qualificados para determinar a direção da tendência geral. Isso pode filtrar efetivamente a maioria do ruído.

Vantagens

  1. Combinação de vários quadros temporais para filtrar os falsos sinais e identificar as principais tendências
  2. Indicador de detalhes de 15 minutos para obter uma hora de entrada mais precisa
  3. Indicador de portfólio utiliza indicadores tecnológicos tradicionais como RSI, Random Indicator, MACD, etc., que são fáceis de entender e de otimizar
  4. O uso de métodos de gestão de risco rigorosos, tais como mStop, Stop Loss e Stop Loss Tracking, permite controlar eficazmente o risco de uma única transação

Riscos

  1. Risco de excesso de negociação. O sistema é sensível a prazos de curto prazo, podendo gerar uma grande quantidade de sinais de negociação, resultando em excesso de negociação.
  2. Risco de Falso Breakout. O julgamento de indicadores de curto prazo pode causar erros de julgamento e gerar falsos sinais de breakout.
  3. Risco de falha dos indicadores. Os indicadores técnicos, por si só, têm uma certa limitação e podem falhar em situações extremas.

Em contrapartida, o sistema pode ser melhorado em vários aspectos:

  1. Ajustar os parâmetros do indicador para melhor adaptá-lo a diferentes cenários de mercado
  2. Aumentar as condições de filtragem para reduzir a frequência de transações e evitar transações excessivas
  3. Optimizar a estratégia de stop loss para que esteja mais em sintonia com a volatilidade do mercado
  4. Testar diferentes combinações de indicadores para encontrar a melhor solução

Resumir

O sistema de rastreamento de mercado de touros é um sistema de negociação mecânica de rastreamento de tendências muito prático. Utiliza indicadores combinados de vários quadros temporais para identificar tendências de mercado e momentos de entrada críticos. Com a configuração razoável de parâmetros e o teste de otimização contínua, o sistema pode se adaptar à maior parte do cenário de mercado e alcançar um efeito de lucro estável.

Código-fonte da estratégia
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Cowabunga System from babypips.com", overlay=true)
// 4 Hour Stochastics
length4 = input(162, minval=1, title="4h StochLength"), smoothK4 = input(48, minval=1, title="4h StochK"), smoothD4 = input(48, minval=1, title="4h StochD")
k4 = sma(stoch(close, high, low, length4), smoothK4)
d4 = sma(k4, smoothD4)

//15 min Stoch
length = input(10, minval=1, title="15min StochLength"), smoothK = input(3, minval=1, title="15min StochK"), smoothD = input(3, minval=1, title="15min StochD")
k = sma(stoch(close, high, low, length), smoothK)
d= sma(k, smoothD)

//4 hour RSI
src1 = close, len1 = input(240, minval=1, title="4H RSI Length")
up1 = rma(max(change(src1), 0), len1)
down1 = rma(-min(change(src1), 0), len1)
rsi4 = down1 == 0 ? 100 : up1 == 0 ? 0 : 100 - (100 / (1 + up1 / down1))

//15 min RSI
src = close, len = input(9, minval=1, title="15M RSI Length")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi15 = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))

//MACD Settings
source = close
fastLength = input(12, minval=1, title="MACD Fast"), slowLength=input(26,minval=1, title="MACD Slow")
signalLength=input(9,minval=1, title="MACD Signal")
fastMA = ema(source, fastLength)
slowMA = ema(source, slowLength)
macd = fastMA - slowMA
signal = ema(macd, signalLength)

// Stops and Profit inputs
inpTakeProfit   = input(defval = 1000, title = "Take Profit", minval = 0)
inpStopLoss     = input(defval = 0, title = "Stop Loss", minval = 0)
inpTrailStop    = input(defval = 400, title = "Trailing Stop", minval = 0)
inpTrailOffset  = input(defval = 0, title = "Trailing Stop Offset", minval = 0)

// Stops and Profit Targets
useTakeProfit   = inpTakeProfit  >= 1 ? inpTakeProfit  : na
useStopLoss     = inpStopLoss    >= 1 ? inpStopLoss    : na
useTrailStop    = inpTrailStop   >= 1 ? inpTrailStop   : na
useTrailOffset  = inpTrailOffset >= 1 ? inpTrailOffset : na

//Specific Time to Trade
myspecifictradingtimes = input('0500-1600', title="My Defined Hours")

longCondition1 = time(timeframe.period, myspecifictradingtimes) != 0
longCondition2 = rsi4 <= 80
longCondition3 = k4 >= d4 and k4 <= 80
longCondition4 = ema(close, 80) >= ema(close, 162)
allLongerLongs = longCondition1 and longCondition2 and longCondition3 and longCondition4

longCondition5 = rsi15 <= 80
longCondition6 = k >= d and k <= 80 and fastMA >= slowMA
longCondition7 = ema(close, 5) >= ema(close, 10)
allLongLongs = longCondition5 and longCondition6 and longCondition7

if crossover(close, ema(close, 5)) and allLongerLongs and allLongLongs
    strategy.entry("Long", strategy.long, comment="LongEntry")

shortCondition1 = time(timeframe.period, myspecifictradingtimes) != 0
shortCondition2 = rsi4 >= 20
shortCondition3 = k4 <= d4 and k4 >= 20
shortCondition4 = ema(close, 80) <= ema(close, 162)
allShorterShorts = shortCondition1 and shortCondition2 and shortCondition3 and shortCondition4

shortCondition5 = rsi15 >= 20
shortCondition6 = k <= d and k >= 20 and fastMA <= slowMA
shortCondition7 = ema(close, 5) <= ema(close, 10)
allShortShorts = shortCondition5 and shortCondition6 and shortCondition7

if crossunder(close, ema(close,5)) and allShorterShorts and allShortShorts
    strategy.entry("Short", strategy.short, comment="ShortEntry")

strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)
strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)