A estratégia é baseada em uma estratégia de negociação de dupla linha de equilíbrio de preços sintéticos detendidos (DSP). O DSP é uma função sincronizada com o ciclo de dominação do preço real, obtida por meio do cálculo de 1⁄4 de ciclo de EMA menos 1⁄2 de ciclo de EMA.
Calcule o preço com a média de 1 / 2 ciclo de HL x HL2 .
Calcule o 1⁄4 de ciclo EMA ((xEMA1) e o 1⁄2 de ciclo EMA ((xEMA2)) de xHL2 com base no parâmetro Length.
Calcule xEMA1 menos xEMA2 para obter o preço de síntese de tendência DSP.
Configure os parâmetros de ascensão e descensão para que o DSP faça mais quando ele entra na faixa e deixe vazio quando ele entra na faixa.
Pode-se fazer mais vazio através da mudança de parâmetro reverso.
A estratégia tem as seguintes vantagens:
O DSP pode capturar o ciclo dominante do preço, evitando ser enganado pelo ciclo secundário.
A dupla EMA foi concebida para monitorizar eficazmente as variações do ciclo de dominância.
O sistema de comboios é simples e fácil de usar, evitando transações excessivas.
Pode ser facilmente alternado em várias direções para se adaptar a diferentes ambientes de mercado.
Não precisa de complexas optimizações de parâmetros, é simples e prático.
Os principais riscos desta estratégia são:
O ciclo DSP está configurado incorretamente e pode ter perdido o ciclo dominante.
A largura de trajetória deve ser otimizada, pois pode haver transações muito frequentes.
O projeto de ciclo fixo, com pouca adaptabilidade a mudanças drásticas no mercado.
A base de negociação de DSPs, por si só, é vulnerável a erros de cruzamento repetidos em mercados de baixa volatilidade.
Não foi levado em consideração o stop loss e existe um risco de perdas significativas.
A estratégia pode ser otimizada de acordo com:
Parâmetros de otimização para encontrar a melhor combinação de parâmetros de ciclo.
Aumentar a configuração dinâmica de subida e descida baseada na taxa de flutuação.
Filtração combinada com tendências e oscilações para reduzir os sinais falsos.
Aumentar o stop loss móvel ou o stop loss de rastreamento para controlar o risco.
Para fazer ajustes de parâmetros multivariados e avaliar a universalidade.
Adicionar algoritmos de aprendizagem de máquina para otimizar a auto-adaptação do ciclo DSP.
A estratégia global é uma estratégia de negociação binária muito simples e prática. Ela é baseada em uma análise de ciclo razoável, com o DSP efetivamente rastreando o ciclo de dominação. Melhorias na otimização de parâmetros, mecanismo de parada de perdas, condições de filtragem, etc., podem ser uma estratégia de negociação quantitativa mais confiável.
/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-13 02:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 20/03/2017
// Detrended Synthetic Price is a function that is in phase with the
// dominant cycle of real price data. This DSP is computed by subtracting
// a half-cycle exponential moving average (EMA) from the quarter cycle
// exponential moving average.
// See "MESA and Trading Market Cycles" by John Ehlers pages 64 - 70.
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="D_DSP (Detrended Synthetic Price)", shorttitle="D_DSP")
Length = input(14, minval=1)
SellBand = input(25)
BuyBand = input(-25)
reverse = input(false, title="Trade reverse")
hline(0, color=blue, linestyle=line)
hline(SellBand, color=red, linestyle=line)
hline(BuyBand, color=green, linestyle=line)
xHL2 = hl2
xEMA1 = ema(xHL2, Length)
xEMA2 = ema(xHL2, 2 * Length)
xEMA1_EMA2 = xEMA1 - xEMA2
pos = iff(xEMA1_EMA2 > SellBand, 1,
iff(xEMA1_EMA2 < BuyBand, -1, nz(pos[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)
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(xEMA1_EMA2, color=blue, title="D_DSP")