- Quadrado
- Estratégia de negociação de média móvel de sinal para ruído baseada na negociação quantitativa
Estratégia de negociação de média móvel de sinal para ruído baseada na negociação quantitativa
Autora:
ChaoZhang, Data: 2024-01-02 12:24:35
Tags:
I. Nome da estratégia
Estratégia de negociação de média móvel de sinal para ruído
II. Visão geral da estratégia
Esta estratégia realiza a negociação quantitativa, calculando a relação sinal-ruído durante um determinado período e combinando-a com sinais de negociação de média móvel.
- Calcular a relação sinal/ruído durante um determinado período (ajustável)
- Aplicar média móvel para suavizar a relação sinal/ruído
- Comparar a relação sinal/ruído atual com o valor médio móvel para gerar sinais de negociação
- Long ou short com base em sinais de negociação
III. Princípio da estratégia
- A fórmula para calcular a relação sinal-ruído (StN) é: StN = -10*log ((Σ(1/close) /n), onde n é a duração do período
- Aplicar a média móvel simples (SMA) à relação sinal/ruído para obter um StN suavizado
- Comparar o StN atual com o SMAStN suavizado:
(1) Se SMAStN > StN, curto
(2) Se o SMAStN < StN, vá longo
(3) Caso contrário, posição próxima
IV. Análise das vantagens
As principais vantagens desta estratégia são:
- A StN pode avaliar as flutuações e os riscos do mercado, a SMA tem capacidade de redução de ruído
- A combinação de StN para avaliar o risco de mercado e SMA para gerar sinais de negociação utiliza as vantagens de diferentes indicadores
- Parâmetros ajustáveis para se adaptarem a diferentes condições de mercado
- Os sinais de desaceleração indicam directamente um longo ou curto prazo, um julgamento intuitivo das características do mercado
V. Análise de riscos
Há também alguns riscos com esta estratégia:
- Existem riscos de desvio no que respeita ao cruzamento entre o STN e o MA
- Configurações de período incorretas podem causar sinais falsos
- Relativamente menos oportunidades de curto prazo, otimizáveis através de ajustes de parâmetros
- As flutuações extremas causadas por eventos de cisne negro podem desencadear o stop loss
Soluções:
- Ajustar os parâmetros de MA para evitar a suavização excessiva
- Otimizar os parâmetros de período e testar a adaptabilidade em diferentes mercados
- Ajustar condições curtas para proporcionar mais oportunidades curtas
- Configurar o stop loss para controlar as perdas máximas
VI. Direcção de otimização
A estratégia pode ser otimizada das seguintes formas:
- Combinação de ensaios com mais tipos de médias móveis
- Adicionar um mecanismo de stop loss ao controlo dos riscos
- Adicionar gestão de posições, ajustar posições com base em flutuações
- Incorporar mais factores para melhorar a estabilidade
- Usar métodos de aprendizagem de máquina para otimizar automaticamente parâmetros
VII. Resumo
Esta estratégia realiza negociação quantitativa julgando o risco de mercado através da relação sinal-ruído e gerando sinais de negociação a partir da média móvel. Em comparação com indicadores técnicos únicos, esta estratégia integra as vantagens de StN e SMA para melhorar a estabilidade enquanto controla os riscos. Com otimização de parâmetros e aprendizado de máquina, esta estratégia tem grande potencial de melhoria e é uma estratégia de negociação quantitativa confiável e eficaz.
/*backtest
start: 2023-12-25 00:00:00
end: 2023-12-29 10:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © HPotter 05/01/2021
// The signal-to-noise (S/N) ratio.
// And Simple Moving Average.
// Thank you for idea BlockchainYahoo
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
SignalToNoise(length) =>
StN = 0.0
for i = 1 to length-1
StN := StN + (1/close[i])/length
StN := -10*log(StN)
strategy(title="Backtest Signal To Noise ", shorttitle="StoN", overlay=false)
length = input(title="Days", type=input.integer, defval=21, minval=2)
Smooth = input(title="Smooth", type=input.integer, defval=7, minval=2)
reverse = input(false, title="Trade reverse")
StN = SignalToNoise(length)
SMAStN = sma(StN, Smooth)
pos = iff(SMAStN[1] > StN[1] , -1,
iff(SMAStN[1] < StN[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 )
plot(StN, title='StN' )
plot(SMAStN, title='Smooth', color=#00ff00)
Mais.