Esta estratégia combina duas estratégias de negociação quantitativas para gerar sinais de negociação mais precisos e confiáveis. A primeira estratégia é baseada na inversão de preço e a segunda é baseada na análise de volume. Os sinais combinados podem efetivamente melhorar a lucratividade.
A estratégia consiste em duas partes:
Usa o indicador STO para sinais de reversão. Vai longo quando o fechamento sobe por 2 dias e a linha lenta do STO está abaixo de 50. Vai curto quando o fechamento cai por 2 dias e a linha rápida do STO está acima de 50.
Analisa a relação preço-volume durante um período para determinar a direção, com suavização da média móvel.
Vai longo quando ambas as estratégias sinalizam longo, e vai curto quando ambas sinalizam curto.
A combinação melhora a qualidade do sinal, reduzindo muito os falsos sinais de qualquer estratégia.
Os riscos podem ser reduzidos:
A estratégia pode ser melhorada:
Otimização dos parâmetros STO
Valores de ajuste fino K, D para as melhores combinações
Confirmação secundária das rupturas de volume
Com indicadores como MACD, BOLL etc.
Otimização dos períodos de média móvel
Teste de diferentes períodos para sinais mais estáveis
Adicionar padrões de gráficos
Introdução de padrões além de sinais combinados
Ensaios de parâmetros específicos do produto
Os parâmetros podem variar entre os diferentes produtos
Esta estratégia combina estratégias de reversão e volume para melhorar a qualidade e precisão do sinal. Mas a otimização de parâmetros, indicadores técnicos adicionais etc. podem refinar ainda mais o desempenho. Podemos ajustar continuamente com base nos resultados dos backtests, validar na negociação ao vivo, para obter uma estratégia de combo verdadeiramente robusta. Isso requer imenso tempo e esforço, mas as recompensas também serão significativas.
/*backtest start: 2023-09-13 00:00:00 end: 2023-09-20 00:00:00 period: 15m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 21/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 // This is another version of FVE indicator that we have posted earlier // in this forum. // This version has an important enhancement to the previous one that`s // especially useful with intraday minute charts. // Due to the volatility had not been taken into account to avoid the extra // complication in the formula, the previous formula has some drawbacks: // The main drawback is that the constant cutoff coefficient will overestimate // price changes in minute charts and underestimate corresponding changes in // weekly or monthly charts. // And now the indicator uses adaptive cutoff coefficient which will adjust to // all time frames automatically. // // 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 FVI(Samples,Perma,Cintra,Cinter) => pos = 0 xhl2 = hl2 xhlc3 = hlc3 xClose = close xIntra = log(high) - log(low) xInter = log(xhlc3) - log(xhlc3[1]) xStDevIntra = stdev(sma(xIntra, Samples) , Samples) xStDevInter = stdev(sma(xInter, Samples) , Samples) xVolume = volume TP = xhlc3 TP1 = xhlc3[1] Intra = xIntra Vintra = xStDevIntra Inter = xInter Vinter = xStDevInter CutOff = Cintra * Vintra + Cinter * Vinter MF = xClose - xhl2 + TP - TP1 FveFactor = iff(MF > CutOff * xClose, 1, iff(MF < -1 * CutOff * xClose, -1, 0)) xVolumePlusMinus = xVolume * FveFactor Fvesum = sum(xVolumePlusMinus, Samples) VolSum = sum(xVolume, Samples) xFVE = (Fvesum / VolSum) * 100 xEMAFVE = ema(xFVE, Perma) pos :=iff(xFVE > xEMAFVE, 1, iff(xFVE < xEMAFVE, -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & Volatility Finite Volume Elements", shorttitle="Combo", overlay = true) Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- Samples = input(22, minval=1) Perma = input(40, minval=1) Cintra = input(0.1) Cinter = input(0.1) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posFVI = FVI(Samples,Perma,Cintra,Cinter) pos = iff(posReversal123 == 1 and posFVI == 1 , 1, iff(posReversal123 == -1 and posFVI == -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 )