Estratégia de negociação estocástica Dual MACD


Data de criação: 2023-09-22 16:55:55 última modificação: 2023-09-22 16:55:55
cópia: 0 Cliques: 806
1
focar em
1617
Seguidores

Visão geral

A estratégia combina o MACD duplo com o StochRSI, um indicador aleatório, para julgar os sinais de negociação. O MACD duplo usa diferentes configurações de parâmetros para obter efeitos rápidos e lentos, e o StochRSI é usado para a verificação de backlinks fortes. A estratégia também inclui julgamento de tendências e controle de risco de condições de parada.

Princípio da estratégia

A estratégia baseia-se nos seguintes indicadores:

  • MACD duplo: MACD rápido usa parâmetros de ciclo curto, MACD lento usa parâmetros de ciclo longo, para obter diferentes efeitos de suavização.

  • StochRSI: Calcula o máximo e o mínimo do RSI em um determinado período para determinar se o RSI está em um estado de sobrecompra ou sobrevenda.

Regras de avaliação de sinais de transação:

  • Faça mais: o MACD rápido atravessa o eixo zero e o MACD lento atravessa o eixo zero, o StochRSI está em sobrevenda e atravessa a linha D na linha K, e está em alta tendência.

  • Fechamento: o MACD rápido atravessa o eixo zero e o MACD lento atravessa o eixo zero, o StochRSI está sobrecomprado e atravessa a linha K abaixo da linha D, e está em uma tendência de queda.

Vantagens estratégicas

  • A validação dupla MACD evita falsas brechas e melhora a qualidade do sinal.

  • O StochRSI julga que a tendência é de sobrevenda e evita a tendência de queda.

  • Considerar a direção das grandes tendências e reduzir os prejuízos de negociações adversas.

  • Implementar a verificação do indicador em vários prazos e aumentar a eficácia do sinal.

  • Configurar o risco de controle de condições de parada.

Análise de Riscos

  • O MACD é propenso a falsos sinais e precisa de mais filtragem.

  • A configuração errada dos parâmetros do StochRSI pode perder oportunidades de negociação.

  • A configuração do ponto de parada não é razoável, pode ser conservadora ou radical.

  • A falta de estratégia de gestão de posições e a incapacidade de parar os prejuízos.

Otimizar a partir do seguinte:

  1. Aumentar o volume de transações ou o ângulo da linha média.

  2. Otimizar os parâmetros do StochRSI ou introduzir outros indicadores aleatórios.

  3. Ajuste dinâmico do ponto de paragem, rastreamento de paragem.

  4. Adição de módulo de gerenciamento de posições para ajustar posições de forma dinâmica de acordo com o desempenho da estratégia.

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

As principais melhorias da estratégia são:

  1. Optimizar os parâmetros do indicador e melhorar a sua eficácia.

  2. Aumentar os critérios de filtragem e filtrar os falsos sinais.

  3. Optimizar a estratégia de stop loss para a realização de stop loss dinâmico.

  4. Introdução de gerenciamento de posições, ajustando as posições de acordo com o efeito da estratégia.

  5. Adicionar módulos de aprendizagem de máquina para otimização automática usando Big Data.

Resumir

A estratégia compreende vários indicadores para formar um sinal de negociação mais forte. No entanto, ainda é necessário otimizar a configuração de parâmetros, filtrar ainda mais os sinais e a perda dinâmica para reduzir as negociações desnecessárias e aumentar a probabilidade de obter lucro.

Código-fonte da estratégia
/*backtest
start: 2023-09-14 00:00:00
end: 2023-09-21 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2



//This strategy is an ongoing work in progress. Last updated 8/6/16.
//Feel free to modify it as you see fit, if you do borrow code then send me a link so I 
//can see and maybe borrow some of your code to improve this.
//Thanks to ChrisMoody who I stole the code for setting custom resolution from.
//
//more info in comments at end of script





strategy("MACDouble & StochRSI w/ safeties v0.3", overlay=true)

source = close
useCurrentRes = input(true, title="Uncheck to use custom res./intrv. for 2nd MACD indicator")
resCustom = input(title="Resolution/interval to use for 2nd MACD:",  defval="45")
res = useCurrentRes ? timeframe.period : resCustom

useCurrentRes2 = input(true, title="Uncheck to use custom res/intrv for StochRSI")
resCustom2 = input(title="Resolution to use for StochRSI indicator:",  defval="45")
res2 = useCurrentRes2 ? timeframe.period : resCustom2


//MACD1
fastLength = input(10, title="MACD fast length")
slowlength = input(21, title="MACD slow length")
sigLength = input(9, title="MACD signal length")

MACD = ema(source, fastLength) - ema(source, slowlength)
signal = sma(MACD, sigLength)
delta = MACD - signal



//MACD2
fastLength2 = input(31, title= "2nd MACD fast length")
slowlength2 = input(63, title= "2nd MACD slow length")
sigLength2 = input(30, title= "2nd MACD signal length")

MACD2 = ema(source, fastLength2) - ema(source, slowlength2)
signal2 = sma(MACD2, sigLength2)
delta2 = MACD2 - signal2

MACDRes = security(syminfo.tickerid, res, MACD2)
signalRes = security(syminfo.tickerid,res, signal2)
deltaRes = security(syminfo.tickerid, res, delta2)


uptrend = (close + high)/(close[1] + high[2])
downtrend = (close + low)/(close[1] + low[2])

smoothK = input(3, minval=1)
smoothD = input(3, minval=1)
lengthRSI = input(11, minval=1)
lengthStoch = input(11, minval=1)
src = close

rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)
RSI_buyTrig = input(90)
RSI_sellTrig = input(20)

kRes = security(syminfo.tickerid, res2, k)
dRes = security(syminfo.tickerid, res2, d)


if (delta > 0) and (year>2012) and (deltaRes > 0) and (uptrend > 1) and (  kRes and dRes < RSI_buyTrig) and (kRes > dRes)
    strategy.entry("buy", strategy.long, comment="buy")
    

if (delta < 0) and (year>2012) and (deltaRes < 0) and (downtrend < 1) and ( kRes and dRes > RSI_sellTrig) and (kRes < dRes)
    strategy.entry("sell", strategy.short, comment="sell")
	strategy.exit("sell", loss = 9000)



//  RELEASE NOTES, ETC
//
// The core starting idea for this backtesting script came from the desire to have two traditional
//MACD indicators: one 'fast' and one 'slow'. The slow one is to pretty much smooth out noisy signals
//so that short term changes in price are ignored (ideally). 
//	A brief version history
//		v0.1 - Basic two MACD indicators script
//      v0.2 - Added StochRSI indicator
//      v0.21- Added primitive uptrend/downtrend safety condition 
//      v0.22- Added changable time resolution for MACDslow
//      v0.23- Added exit safeties conditional on loss threshold   
//      v0.3 - Added changeable resolution for StochRSI
//	Future changes planned for next release:
//		-Fine tuning exit safeties
//      -Major overhaul of trade logic/triggers (may be forked as a different script)
//
//I am more than happy to discuss any difficulties you are having, questions about the script, or improvement suggestions.
//I am not a coder and my background is actually in economics, so feel free to debug ;)
//Feel free to tip me on the indcluded bitcoin address on TV as well
// tradingview.com/u/RyanMartin 
// [email protected]