Stratégie de négociation des moyennes mobiles signal-bruit basée sur la négociation quantitative

Auteur:ChaoZhang est là., Date: 2024-01-02 12h24 et 35
Les étiquettes:

img

Nom de la stratégie

Stratégie de négociation des moyennes mobiles signal-bruit

II. Vue d'ensemble de la stratégie

Cette stratégie réalise le trading quantitatif en calculant le rapport signal/bruit sur une certaine période et en le combinant avec les signaux de trading de moyenne mobile.

  1. Calcul du rapport signal/bruit sur une certaine période (réglable)
  2. Appliquer la moyenne mobile pour lisser le rapport signal/bruit
  3. Comparez le rapport signal/bruit actuel avec la valeur moyenne mobile pour générer des signaux de négociation
  4. Longue ou courte en fonction des signaux de négociation

III. Principe de stratégie

  1. La formule pour calculer le rapport signal/bruit (StN) est la suivante: StN = -10*log ((Σ(1/close) /n), où n est la longueur de la période
  2. Appliquer la moyenne mobile simple (SMA) au rapport signal/bruit pour obtenir un StN lissé
  3. Comparez le StN actuel avec le SMAStN lissé: (1) Si SMAStN > StN, passez à court (2) Si SMAStN < StN, aller long (3) Dans le cas contraire, position close

IV. Analyse des avantages

Les principaux avantages de cette stratégie sont les suivants:

  1. Le StN peut juger des fluctuations et des risques du marché, le SMA a une capacité de réduction du bruit
  2. La combinaison de la StN pour évaluer le risque de marché et de la SMA pour générer des signaux de négociation exploite les avantages de différents indicateurs.
  3. Paramètres réglables pour s'adapter aux différentes conditions du marché
  4. Les signaux d'arrêt indiquent directement un jugement intuitif sur les caractéristiques du marché.

V. Analyse des risques

Cette stratégie comporte également certains risques:

  1. Il existe un risque d'écart de jugement entre la NST et la MA
  2. Des réglages de période incorrects peuvent provoquer de faux signaux
  3. Moins d'opportunités à court terme, optimisées par ajustement des paramètres
  4. Les fluctuations extrêmes causées par des événements de cygne noir peuvent déclencher un stop loss.

Les solutions:

  1. Ajuster les paramètres de MA pour éviter un surlissage
  2. Optimiser les paramètres de période et tester l'adaptabilité sur différents marchés
  3. Ajustez les conditions courtes pour offrir des opportunités plus courtes
  4. Régler le stop-loss pour contrôler les pertes maximales

VI. Direction de l'optimisation

La stratégie peut être optimisée de la manière suivante:

  1. Combinaison de plusieurs types de moyennes mobiles
  2. Ajouter un mécanisme de stop loss pour contrôler les risques
  3. Ajouter la gestion des positions, ajuster les positions en fonction des fluctuations
  4. Incorporer davantage de facteurs pour améliorer la stabilité
  5. Utiliser des méthodes d'apprentissage automatique pour optimiser automatiquement les paramètres

VII. Résumé

Cette stratégie réalise le trading quantitatif en jugeant le risque de marché via le rapport signal-bruit et en générant des signaux de trading à partir de moyennes mobiles. Par rapport à des indicateurs techniques uniques, cette stratégie intègre les avantages de StN et SMA pour améliorer la stabilité tout en contrôlant les risques. Avec l'optimisation des paramètres et l'apprentissage automatique, cette stratégie a un grand potentiel d'amélioration et est une stratégie de trading quantitative fiable et efficace.


/*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)

Plus de