Aqui está o artigo que tentei escrever de acordo com o seu pedido:
Esta estratégia combina a estratégia de inversão de forma 123 e a estratégia de indicador de força de pressão, que gera um sinal de negociação quando ambos aparecem com sinais de fazer mais ou fazer menos, pertencendo à estratégia de negociação de inversão de ruptura.
A estratégia consiste em duas partes:
Quando o preço de fechamento, após 2 dias consecutivos de queda, no terceiro dia o preço de fechamento quebra para cima, e o indicador de stoch baixo produz um sinal de compra quando o baixo retorna; Quando o preço de fechamento, após 2 dias consecutivos de alta, no terceiro dia o preço de fechamento quebra para baixo, e o indicador de stoch alto retorna do alto produz um sinal de venda.
O indicador de força de pressão reflete a contraposição de forças de espaço-tempo, gerando um sinal de venda quando o indicador é maior do que o limite de venda definido e um sinal de compra quando o indicador é menor do que o limite de compra definido.
No caso de um sinal de combinação, se os dois derem um sinal de sincronia, geram um sinal de negociação real.
Combinação de sinais de inversão e filtragem de indicadores, para evitar falsas rupturas e melhorar a qualidade do sinal.
Vários períodos de tempo e flexibilidade para diferentes cenários de mercado.
Pode ser usado separadamente como uma estratégia de componentes, ou pode ser usado em combinação, com uma estratégia de design modular.
O sinal de inversão pode ter uma maior profundidade de ressonância.
A configuração dos parâmetros do indicador de força de pouso precisa ser testada e otimizada repetidamente.
O ajuste dos parâmetros de uma estratégia multifatorial é complexo e requer um grande número de testes de dados históricos.
O módulo de quantificação join conecta mais fontes de dados, obtendo dados mais ricos por períodos mais longos.
Aplicar métodos de aprendizagem de máquina para pesquisar e avaliar automaticamente conjuntos de parâmetros.
Aumentar o mecanismo de suspensão de perdas para controlar as perdas individuais.
Esta estratégia integra a aplicação de técnicas de análise de inversão e indicadores quantitativos, para melhorar a qualidade do sinal através de dupla confirmação, com alto grau de modulação e escalabilidade, pertence a uma estratégia prática. Posteriormente, pode ser otimizado pela introdução de mais meios tecnológicos avançados, de modo a se adaptar a um ambiente de mercado mais complexo.
/*backtest
start: 2023-11-13 00:00:00
end: 2023-11-20 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 29/05/2019
// This is combo strategies for get
// a cumulative signal. Result signal will return 1 if two strategies
// is long, -1 if all strategies is short and 0 if signals of strategies is not equal.
//
// 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
// Bear Power Indicator
// To get more information please see "Bull And Bear Balance Indicator"
// by Vadim Gimelfarb.
//
// 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
BearPower(SellLevel, BuyLevel) =>
value = iff (close < open ,
iff (close[1] > open , max(close - open, high - low), high - low),
iff (close > open,
iff(close[1] > open, max(close[1] - low, high - close), max(open - low, high - close)),
iff(high - close > close - low,
iff (close[1] > open, max(close[1] - open, high - low), high - low),
iff (high - close < close - low,
iff(close > open, max(close - low, high - close),open - low),
iff (close > open, max(close[1] - open, high - close),
iff(close[1] < open, max(open - low, high - close), high - low))))))
pos = 0.0
pos := iff(value > SellLevel, -1,
iff(value <= BuyLevel, 1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & Bear Power", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
SellLevel = input(30)
BuyLevel = input(3)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posBearPower = BearPower(SellLevel, BuyLevel)
pos = iff(posReversal123 == 1 and posBearPower == 1 , 1,
iff(posReversal123 == -1 and posBearPower == -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 )