Stratégie logarithmique de prévision des prix

Auteur:ChaoZhang est là., Date: 2023-12-20 à 14h40
Les étiquettes:

img

Résumé

Cette stratégie utilise des fonctions logarithmiques pour modéliser les variations de prix en fonction de l'écart type et de la moyenne du volume des transactions afin de calculer le score z en tant que paramètres d'entrée de la fonction logarithmique pour prédire les prix futurs.

Principes de stratégie

  1. Calculer la valeur ROC du prix de clôture, cumuler les valeurs positives en volume_pos et les valeurs négatives en volume_neg
  2. Calculer la différence entre le volume_pos et le volume_neg comme volume net
  3. Calcul de l'écart type net_std et de la moyenne net_sma du volume net_
  4. Calculer le score z en divisant net_sma par net_std
  5. Utiliser le prix de clôture, l'écart type de 20 jours du prix de clôture et le score z comme paramètres dans la fonction logistique pour prédire le prix de la période suivante
  6. Longue lorsque le prix prévu est supérieur au prix réel actuel * 1,005, position close lorsque celle-ci est inférieure à * 0,995

Analyse des avantages

Cette stratégie combine des informations statistiques sur le volume des transactions et la prédiction des prix à l'aide de fonctions logarithmiques.

Les avantages sont les suivants:

  1. Utilise la différence de long-courte dans le volume des transactions pour mesurer le sentiment du marché
  2. La fonction logarithmique correspond bien à la courbe de variation des prix pour la prédiction
  3. Stratégie simple et directe, facile à mettre en œuvre

Analyse des risques

Cette stratégie comporte également certains risques:

  1. Les indicateurs du volume des transactions ont un retard, ne peuvent pas refléter les changements du marché en temps opportun
  2. La prédiction logarithmique n'est pas toujours exacte, elle peut être trompeuse.
  3. Manque de mesures d'arrêt des pertes incapacité à contrôler les pertes

Les risques peuvent être réduits par:

  1. Combiner d'autres indicateurs pour juger de la fiabilité des signaux de volume
  2. Optimiser les paramètres de la fonction logarithmique pour améliorer la précision de la prédiction
  3. Définir des lignes de stop-loss pour limiter les pertes maximales par transaction et globalement

Directions d'optimisation

Cette stratégie peut être encore optimisée par:

  1. Adopter l'apprentissage automatique pour optimiser dynamiquement la fonction logarithmique
  2. Incorporer des indicateurs de volatilité pour ajuster la taille des positions
  3. Ajouter le filtrage bayésien pour filtrer les signaux non valides
  4. Combinez avec des stratégies de rupture pour entrer sur les points de rupture
  5. Utiliser des règles d'association pour détecter les signaux de divergence volume-prix

La combinaison de plusieurs méthodes peut encore améliorer la stabilité et la rentabilité.

Conclusion

Cette stratégie intègre des indicateurs statistiques du volume des transactions et des prédictions logarithmiques dans une méthodologie de négociation quantitative unique. Avec une optimisation continue, elle peut devenir un système de négociation automatisé efficace et stable. En tirant parti des théories de l'apprentissage automatique et de l'optimisation du portefeuille, nous sommes confiants d'améliorer encore ses performances commerciales.


/*backtest
start: 2023-11-19 00:00:00
end: 2023-12-10 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Logistic", overlay=true )

volume_pos = 0.0
volume_neg = 0.0
roc = roc(close, 1)

for i = 0 to 100
    if (roc > 0)
        volume_pos := volume
    else
        volume_neg := volume
    
volume_net = volume_pos - volume_neg
net_std    = stdev(volume_net, 100)
net_sma    = sma(volume_net, 10)
z          =  net_sma / net_std
std        = stdev(close, 20)

logistic(close, std, z) =>
    m = (close + std)
    a = std / close
    pt = m / ( 1 + a*exp(-z))
    pt
    
    
pred = logistic(close, std, z)

buy = pred > close * 1.005
sell = pred < close * 0.995

color = strategy.position_size > 0? #3BB3E4 : strategy.position_size == 0? #FF006E : #6b6b6b
barcolor(color)


if (buy == true)
    strategy.entry("Long", strategy.long, comment="Open L")
    
if (sell == true)
    strategy.close("Long", comment="Close L")


Plus de