
A estratégia é uma combinação de duas estratégias diferentes, a primeira baseada no preço das ações que atravessam as médias móveis duplas para formar o sinal; a segunda baseada no indicador de oscilação mágica no indicador Williams. O sinal final toma a interseção dos dois sinais de estratégia para formar o sinal de negociação final.
O primeiro princípio da estratégia é que um sinal de compra é gerado quando o preço de fechamento de ontem é maior que o preço de fechamento do dia anterior e o indicador aleatório do dia 9 da linha K rápida é menor que o indicador aleatório do dia 3 da linha D lenta; um sinal de venda é gerado quando o preço de fechamento de ontem é menor que o preço de fechamento do dia anterior e o indicador aleatório do dia 9 da linha K rápida é maior que o indicador aleatório do dia 3 da linha D lenta.
O segundo princípio da estratégia é calcular a diferença entre os movimentos de preço nos dias 5 e 34 e calcular a média móvel dessa diferença. Quando o valor atual é superior ao do ciclo anterior, é um sinal de compra, quando o valor atual é inferior ao do ciclo anterior, é um sinal de venda.
Combinando as duas estratégias, o sinal final toma o cruzamento de dois sinais de estratégia. Quando as duas estratégias emitem sinais de compra ao mesmo tempo, faça mais; Quando as duas estratégias emitem sinais de venda ao mesmo tempo, faça vazio.
A estratégia combina os benefícios de uma estratégia de média móvel dupla e uma estratégia de indicador de Williams. A estratégia de média móvel dupla pode capturar tendências de linha média e longa; a estratégia de indicador de Williams pode capturar oportunidades de negociação de linha curta. A combinação das duas estratégias pode simultaneamente gerar lucros e prevenir falsas rupturas.
Além disso, a estratégia usa configurações de entrada de vários parâmetros, que podem ser otimizados de acordo com diferentes ações e situações de mercado, adaptando-se a um ambiente de mercado mais amplo.
O maior risco da estratégia é que os dois sinais de estratégia podem não ser consistentes. Quando uma estratégia emite um sinal de compra e a outra emite um sinal de venda, a estratégia não consegue produzir um sinal eficaz e pode perder uma oportunidade de negociação.
Além disso, a estratégia contém vários parâmetros, o que dificulta a otimização dos parâmetros. A combinação inadequada de parâmetros pode levar ao mau desempenho da estratégia.
Para reduzir o risco, pode-se considerar a adoção de apenas um dos sinais estratégicos; ou pesquisas para determinar a gama de parâmetros adequados para diferentes ambientes de mercado.
A estratégia pode ser melhorada em vários aspectos:
Avaliar a consistência de dois sinais de estratégia, estudar o grau de correspondência de seus sinais sob diferentes parâmetros e determinar o melhor conjunto de parâmetros.
Testar a estratégia em diferentes variedades e períodos de tempo para encontrar a melhor aplicação.
Pode-se considerar a troca de estratégias de médias móveis duplas para outros indicadores, como o indicador KDJ, para enriquecer o portfólio de estratégias.
Aumentar os mecanismos de stop loss para controlar os perigos, por exemplo, definindo o stop loss máximo de retirada.
A estratégia combina a estratégia de duas médias móveis e a estratégia do indicador de Williams, combinando o acompanhamento de tendências e a captura de sinais de linhas curtas. A otimização de parâmetros permite uma adaptação a um ambiente de mercado mais amplo. Mas também inclui o risco de inconsistência de correspondência de sinais e dificuldades de otimização de parâmetros complexos.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 20/06/2019
// 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 indicator plots the oscillator as a histogram where blue denotes
// periods suited for buying and red . for selling. If the current value
// of AO (Awesome Oscillator) is above previous, the period is considered
// suited for buying and the period is marked blue. If the AO value is not
// above previous, the period is considered suited for selling and the
// indicator marks it as red.
// You can make changes in the property for set calculating strategy MA, EMA, WMA
//
// 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
BillWilliamsAC(nLengthSlow, nLengthFast,nLengthMA, nLengthEMA, nLengthWMA, bShowWMA, bShowMA, bShowEMA) =>
pos = 0
xSMA1_hl2 = sma(hl2, nLengthFast)
xSMA2_hl2 = sma(hl2, nLengthSlow)
xSMA1_SMA2 = xSMA1_hl2 - xSMA2_hl2
xSMA_hl2 = sma(xSMA1_SMA2, nLengthFast)
nRes = xSMA1_SMA2 - xSMA_hl2
xResWMA = wma(nRes, nLengthWMA)
xResMA = sma(nRes, nLengthMA)
xResEMA = ema(nRes, nLengthEMA)
xSignalSeries = iff(bShowWMA, xResWMA,
iff(bShowMA, xResMA,
iff(bShowEMA, xResEMA, na)))
cClr = nRes > nRes[1] ? blue : red
pos := iff(xSignalSeries[2] < 0 and xSignalSeries[1] > 0, 1,
iff(xSignalSeries[2] > 0 and xSignalSeries[1] < 0, -1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & Bill Williams. Awesome Oscillator (AC) with Signal Line", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
nLengthSlow = input(34, minval=1, title="Length Slow")
nLengthFast = input(5, minval=1, title="Length Fast")
nLengthMA = input(15, minval=1, title="MA")
nLengthEMA = input(15, minval=1, title="EMA")
nLengthWMA = input(15, minval=1, title="WMA")
bShowWMA = input(type=bool, defval=true, title="Show and trading WMA")
bShowMA = input(type=bool, defval=false, title="Show and trading MA")
bShowEMA = input(type=bool, defval=false, title="Show and trading EMA")
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posBillWilliamsAC = BillWilliamsAC(nLengthSlow, nLengthFast,nLengthMA, nLengthEMA, nLengthWMA, bShowWMA, bShowMA, bShowEMA)
pos = iff(posReversal123 == 1 and posBillWilliamsAC == 1 , 1,
iff(posReversal123 == -1 and posBillWilliamsAC == -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 ? red: possig == 1 ? green : blue )