
Esta estratégia permite uma negociação de curto prazo e eficiente, identificando oportunidades de reversão de tendência usando uma combinação de indicadores de média dupla e estocástica. A estratégia opta por fazer um curto prazo quando o preço entra em uma área de sobrecompra e venda; a estratégia opta por fazer um longo prazo quando o preço entra em uma área de venda para capturar a reversão da tendência da linha curta.
A estratégia baseia-se principalmente na combinação de uso de médias duplas e indicadores estocásticos.
As médias duplas são compostas por médias móveis rápidas, médias móveis lentas e médias móveis superlentos. Quando a média móvel rápida é cruzada pela média móvel lenta, é considerada um sinal de compra. Quando a média móvel rápida é cruzada pela média móvel lenta, é considerada um sinal de venda.
O indicador estocástico contém os valores K e D. O valor K representa a posição do preço de encerramento atual em relação ao preço máximo e mínimo em N dias. O valor D é a média móvel simples de M dias do valor K. Os valores K e D acima de 80 são considerados super-comprados e menores de 20 são considerados super-vendidos.
Esta estratégia combina a dupla média e o indicador estocástico, e quando o indicador estocástico mostra uma área de sobrevenda ou sobrevenda, o treeview vê se está de acordo com o sinal de dupla média e, se estiver de acordo, escolhe o ponto para inverter a negociação, na esperança de capturar o ponto de viragem da tendência da linha curta.
A estratégia tem as seguintes vantagens:
A combinação usa uma média dupla sobreposta e um indicador estocástico para identificar pontos de reviravolta de tendências em linha curta e curta ao mesmo tempo.
O indicador Stochastic usa sinais de overbought e oversold para selecionar oportunidades de negociação de inversão de média dupla mais eficazes.
As regras da estratégia de negociação são claras e fáceis de implementar.
Parâmetros de horários e meses de negociação ajustáveis para diferentes variedades e períodos de tempo.
Estabeleça um stop loss para controlar o risco.
A estratégia também apresenta alguns riscos:
As médias duplicadas podem produzir falsas rupturas, e os indicadores estocásticos podem apresentar uma forma de linha K heterogênea inválida, resultando em erros de sinal de negociação. Os parâmetros podem ser ajustados de acordo com o caso, ou outros indicadores podem ser adicionados para verificação de combinação.
Baseado apenas em indicadores técnicos, sem levar em conta os fatores fundamentais, é propenso a falhar quando ocorrem eventos econômicos importantes. Pode ser incluído no controle de risco de eventos econômicos.
A dificuldade de entender o momento exato em que a média móvel se inverte pode causar um problema de parada pequena ou grande demais. A estratégia de parada deve ser otimizada.
A configuração inadequada dos parâmetros pode levar a uma frequência de negociação excessiva ou má eficácia do sinal. Os testes de otimização de parâmetros devem ser feitos para diferentes variedades e períodos.
Só é adequado para negociação de curto prazo, não para a posse de longo prazo. O tamanho da posição deve ser controlado.
A estratégia pode ser melhorada em vários aspectos:
Teste mais combinações de indicadores, como KDJ, MACD, etc., para aumentar a eficácia do sinal.
A análise de indicadores de volume de transação é utilizada para evitar falsas rupturas.
Optimizar os parâmetros de média dupla para identificar pontos de reversão mais precisos.
Otimizar a estratégia de stop loss para reduzir a probabilidade de que o stop loss seja acionado
Aumentar o módulo de controle de risco de eventos econômicos para evitar o impacto de eventos significativos nas transações.
Otimizar automaticamente os parâmetros usando técnicas de aprendizagem de máquina para melhorar a adaptabilidade dos parâmetros.
Re-analisar em mais variedades e ciclos para encontrar a melhor direção de aplicação.
Esta estratégia, através de uma combinação de dupla sobreposição de média e Stochastic heterogêneo K-line forma, alcança o objetivo de negociar no meio de curta linha tendência inversa. Em comparação com o uso de um indicador sozinho, a estratégia pode melhorar a rentabilidade dos trades, e a estratégia regras claras e fáceis de operar. Mas a estratégia também existe um certo risco, a necessidade de parâmetros e parar de perda de otimização, e adicionar mais indicadores de verificação e meios de controle de risco.
/*backtest
start: 2022-10-26 00:00:00
end: 2023-10-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy(title="Intraday Stochiastic Strategy", shorttitle="Intraday Stochiastic Strategy", overlay=true, initial_capital = 1000)
//WORKS FOR BTCUSD M30
//OBVERVED GOOD PERFORMANCES FOR SELL MODE M15 : US30USD / UK100GBP / JP225USD / SPX500USD / BCOUSD / EURGBP
//Best Forex Hours are 7-21
//0 is Long Position
//1 is Short Position
//2 No position
mode=input(1, maxval=2, title="Mode")
lossLimit=input(10000, maxval=10000, title="Loss Limit")
hourStart=input(2, maxval=24, title="Hour Start")
hourStop=input(13, maxval=24, title="Hour Stop")
//Month selected for back testing. 0 is maximum number of months
monthSelected = input(0, maxval=12, title="Month Selected")
/////////////////////////////////////////////////
fast = 20, slow = 50, ultraSlow = 200
fastMA = sma(close, fast)
slowMA = sma(close, slow)
ultraSlowMA = sma(close, ultraSlow)
colorFast = red
colorSlow = black
colorUltraSlowMA = purple
if(timeframe.period == "1" or timeframe.period == "3" or timeframe.period == "5" or timeframe.period == "15" or timeframe.period == "30" or timeframe.period == "45" or timeframe.period == "60" or timeframe.period == "120" or timeframe.period == "180" or timeframe.period == "240")
fastMA := ema(close, fast)
slowMA := ema(close, slow)
ultraSlowMA := ema(close, ultraSlow)
colorFast := orange
colorSlow := gray
colorUltraSlowMA := blue
p1 = plot(fastMA, color=colorFast)
p2 = plot(slowMA, color=colorSlow, linewidth=2)
p3 = plot(ultraSlowMA, color=colorUltraSlowMA, linewidth=3)
fill(p1, p2, color = fastMA > slowMA ? green : red)
////////////////////////////////////////////////
ema150 = 200
ema150MA = ema(close, ema150)
smooth = input(3, minval=1), K = input(14, minval=1), D=input(3,minval=1)
hh=highest(high,K)
ll=lowest(low,K)
k = sma((close-ll)/(hh-ll)*100, smooth)
d = sma(k, 3)
//plot(k, color=blue)
//plot(d, color=red)
//h0 = hline(80)
//h1 = hline(20)
//fill(h0, h1, color=purple, transp=95)
//plot(hour*100, color=red, linewidth=2)
stochiasticHigh = 80
stochiasticLow = 20
data = close < ema150MA and k>stochiasticHigh and d>stochiasticHigh and close>open
plotshape(data, style=shape.triangledown, location=location.belowbar, color=red)
data2 = close > ema150MA and k<stochiasticLow and d<stochiasticLow and close<open
plotshape(data2, style=shape.triangleup, location=location.abovebar, color=green)
isData = 0
isData := isData[1]
if(isData == 0)
if(data)
if(mode==1 and hour>hourStart and hour<hourStop and (monthSelected==0 or month==monthSelected)) //DOW hours : 2-13
strategy.entry("SCALP SHORT", strategy.short)
isData := 1
else
if(k<stochiasticLow and d<stochiasticLow)
if(mode==1)
strategy.close_all(when = true)
isData := 0
isData2 = 0
isData2 := isData2[1]
if(isData2 == 0)
if(data2)
if(mode==0 and hour>hourStart and hour<hourStop and (monthSelected==0 or month==monthSelected))
strategy.entry("SCALP LONG", strategy.long)
isData2 := 1
else
if(k>stochiasticHigh and d>stochiasticHigh)
if(mode==0)
strategy.close_all(when = true)
isData2 := 0
strategy.exit("STOP LOSS", "SCALP LONG", loss=lossLimit)
strategy.exit("STOP LOSS", "SCALP SHORT", loss=lossLimit)