Sistema de rastreamento do mercado de touros

Autora:ChaoZhang, Data: 2024-01-31 11:01:45
Tags:

img

Resumo

O sistema de rastreamento de mercado de tour é um sistema de negociação mecânico baseado no rastreamento de tendências. Ele usa indicadores de tendência no gráfico de 4 horas para filtrar sinais de negociação, enquanto as decisões de entrada são feitas com base em indicadores do gráfico de 15 minutos. Os principais indicadores incluem RSI, Estocástico e MACD. A vantagem deste sistema é que a combinação de vários prazos pode efetivamente filtrar sinais falsos, enquanto os indicadores de prazos mais curtos podem identificar um momento de entrada mais preciso.

Princípios

A lógica central deste sistema é combinar indicadores de diferentes prazos para identificar a direção da tendência e o tempo de entrada. Especificamente, o RSI, o Estocástico e a EMA no gráfico de 4 horas precisam se alinhar para determinar a direção geral da tendência. Isso pode efetivamente filtrar a maior parte do ruído. Ao mesmo tempo, o RSI, o Estocástico, o MACD e a EMA no gráfico de 15 minutos também precisam concordar com o viés de alta ou baixa para determinar o momento exato de entrada. Isso nos permite encontrar bons pontos de entrada e saída. Somente quando os julgamentos nos prazos de 4 horas e 15 minutos atenderem aos critérios, o sistema gerará sinais de negociação.

Vantagens

  1. Combinações de vários prazos podem filtrar efetivamente sinais falsos e identificar as principais tendências
  2. Indicadores detalhados de 15 minutos podem capturar o tempo de entrada relativamente preciso
  3. A combinação de indicadores, incluindo RSI, Stochastics, MACD e outros principais indicadores técnicos é fácil de entender e otimizar
  4. São adotados métodos rigorosos de gestão de riscos, tais como take profit, stop loss, trailing stop loss, etc., para controlar efetivamente o risco das operações individuais.

Riscos

  1. Risco de excesso de negociação: o sistema é bastante sensível a prazos de curto prazo, que podem gerar muitos sinais de negociação, levando a excesso de negociação
  2. Risco falso de ruptura: os julgamentos dos indicadores a curto prazo podem ser errados, resultando em sinais falsos de ruptura
  3. Risco de falha dos indicadores: os próprios indicadores técnicos têm certas limitações e podem falhar em condições de mercado extremas

Em conformidade, o sistema pode ser otimizado a partir dos seguintes aspectos:

  1. Ajustar os parâmetros dos indicadores para os tornar mais adequados aos diferentes ambientes de mercado
  2. Aumentar as condições de filtragem para reduzir a frequência de negociação e evitar o excesso de negociação
  3. Otimizar as estratégias de stop-profit e stop-loss para melhor adaptar as faixas de flutuação do mercado
  4. Teste diferentes combinações de indicadores para encontrar a solução ideal

Resumo

Em geral, o sistema de rastreamento de mercado de tour é uma tendência muito prática seguindo o sistema de negociação mecânico. Ele usa uma combinação de indicadores de vários prazos para identificar tendências de mercado e o momento chave de entrada. Com configurações razoáveis de parâmetros e testes de otimização contínuos, o sistema pode se adaptar à maioria dos ambientes de mercado e obter lucros constantes. No entanto, também precisamos estar cientes de alguns dos riscos potenciais e tomar medidas proativas para prevenir e mitigar esses riscos.


/*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)

Mais.