A estratégia é uma combinação de estratégias de inversão e ressurreição de indicadores de oscilação, com o objetivo de obter sinais de negociação mais confiáveis.
A estratégia consiste em duas partes:
A estratégia de reversão vem do livro de Ulf Jensen, How I Doubled My Money in the Futures Market, p. 183. A estratégia pertence ao tipo de reversão, cuja lógica é:
Quando o preço de fechamento for superior ao preço de fechamento do dia anterior, dois dias consecutivos, e o indicador de Stoch lento do dia 9 estiver abaixo de 50, faça mais entrada.
Quando o preço de fechamento for inferior ao do dia anterior, por dois dias consecutivos, e o índice de Stoch Rapido for superior a 50 no dia 9, faça uma entrada de shorting.
O indicador de ressurreição da oscilação calcula o diferencial das menores flutuações no mercado, cujo valor geralmente oscila entre -1 e 1. Quanto maior o valor do indicador, mais forte é a tendência, seja uma tendência de alta ou de baixa.
Quando o indicador atinge um valor mais alto, faça mais; quando o indicador atinge um valor mais baixo, faça um curto. O indicador é adequado para negociação diária.
Finalmente, quando dois sinais de estratégia estão em sincronia, é possível negociar em direções relacionadas.
A combinação de estratégias de inversão e estratégias de tendência pode filtrar alguns sinais falsos e aumentar a confiabilidade dos sinais de negociação.
A estratégia de reversão pode capturar oportunidades de reversão de curto prazo; a estratégia de ressurreição de indicadores de oscilação pode capturar tendências de linha média e longa.
Os parâmetros do indicador Stoch são bem otimizados e podem filtrar de forma eficaz os falsos sinais de turbulência no mercado.
Os indicadores de ressurreição e oscilação são mais sensíveis às pequenas flutuações do mercado e podem ser usados para capturar mudanças de tendência mais cedo.
A estratégia de reversão é facilmente absorvida pela reversão de tendências gigantescas e pode ser ajustada de acordo com os parâmetros ou usada em combinação com a estratégia de tendência.
A estratégia de indicador é propensa a produzir excesso de sinais de negociação, e pode ser ajustada de acordo com os parâmetros, ou usada em combinação com outros indicadores de filtragem.
Os dois sinais de estratégia podem não ser consistentes e podem conflitar. Os parâmetros podem ser ajustados com base nos dados de retrospecção histórica para otimizar a combinação.
Pode-se introduzir estratégias de stop loss para controlar perdas individuais.
Teste diferentes combinações de inversão para encontrar o melhor.
Teste diferentes parâmetros do indicador de ressurreição para encontrar o parâmetro ideal.
Tente diferentes métodos de otimização de parâmetros de indicadores, como algoritmos genéticos, florestas aleatórias, etc.
Adicionar outros indicadores auxiliares para filtragem adicional.
Aumentar os modelos de aprendizagem de máquina para melhorar a precisão do sinal.
Introdução de mecanismos de gestão de riscos, como stop loss, gestão de posições, etc.
A estratégia, combinando a estratégia de reversão e a estratégia de ressurreição do indicador de oscilação, aproveitando integralmente os benefícios de dois tipos diferentes de estratégias, pode melhorar a qualidade do sinal de negociação e ter um bom desempenho na retomada. A estratégia pode obter melhores resultados no mercado real com otimização de parâmetros, adição de outros indicadores e gerenciamento de risco.
/*backtest
start: 2023-10-02 00:00:00
end: 2023-10-26 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 07/10/2020
// This is combo strategies for get a cumulative signal.
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50.
// The strategy sells at market, if close price is lower than the previous close price
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// The value of Fractal Chaos Oscillator is calculated as the difference between
// the most subtle movements of the market. In general, its value moves between
// -1.000 and 1.000. The higher the value of the Fractal Chaos Oscillator, the
// more one can say that it follows a certain trend – an increase in prices trend,
// or a decrease in prices trend.
//
// Being an indicator expressed in a numeric value, traders say that this is an
// indicator that puts a value on the trendiness of the markets. When the FCO reaches
// a high value, they initiate the “buy” operation, contrarily when the FCO reaches a
// low value, they signal the “sell” action. This is an excellent indicator to use in
// intra-day trading.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
vFast = sma(stoch(close, high, low, Length), KSmoothing)
vSlow = sma(vFast, DLength)
pos = 0.0
pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0)))
pos
fractalUp(pattern) =>
p = high[pattern+1]
okl = 1
okr = 1
res = 0.0
for i = pattern to 1
okl := iff(high[i] < high[i+1] and okl == 1 , 1, 0)
for i = pattern+2 to pattern*2+1
okr := iff(high[i] < high[i-1] and okr == 1, 1, 0)
res := iff(okl == 1 and okr == 1, p, res[1])
res
fractalDn(pattern) =>
p = low[pattern+1]
okl = 1
okr = 1
res = 0.0
for i = pattern to 1
okl := iff(low[i] > low[i+1] and okl == 1 , 1, 0)
for i = pattern+2 to pattern*2+1
okr := iff(low[i] > low[i-1] and okr == 1, 1, 0)
res := iff(okl == 1 and okr == 1, p, res[1])
res
FCO(Pattern) =>
pos = 0.0
xUpper = fractalUp(Pattern)
xLower = fractalDn(Pattern)
xRes = iff(xUpper != xUpper[1], 1,
iff(xLower != xLower[1], -1, 0))
pos := iff(xRes == 1, 1,
iff(xRes == -1, -1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & Fractal Chaos Oscillator", shorttitle="Combo", overlay = true)
Length = input(15, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
Pattern = input(1, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posFCO = FCO(Pattern)
pos = iff(posReversal123 == 1 and posFCO == 1 , 1,
iff(posReversal123 == -1 and posFCO == -1, -1, 0))
possig = iff(reverse and pos == 1, -1,
iff(reverse and pos == -1 , 1, pos))
if (possig == 1)
strategy.entry("Long", strategy.long)
if (possig == -1)
strategy.entry("Short", strategy.short)
if (possig == 0)
strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )