Stratégie automatique de négociation longue/courte basée sur des points pivots quotidiens

Auteur:ChaoZhang est là., Date: 2024-01-23 14h24 et 22h
Les étiquettes:

img

Résumé

Cette stratégie dessine deux lignes basées sur les prix les plus élevés et les plus bas des chandeliers quotidiens pour les jugements des tendances longues / courtes.

La logique de la stratégie

Cette stratégie utilise principalement les points de pivot des bougies quotidiennes pour déterminer les tendances longues/courtes. Les points de pivot se réfèrent aux prix les plus élevés et les plus bas d'hier. Ces deux lignes forment une plage de négociation. Si le prix d'aujourd'hui traverse l'un d'entre eux, cela indique un renversement de la tendance.

La logique principale est la suivante:

  1. Ligne de prix la plus élevée: graphique du niveau de prix le plus élevé d'hier.
  2. Ligne de prix la plus basse: Graphique du niveau de prix le plus bas d'hier.
  3. Entrée longue: position longue ouverte lorsque le prix de clôture franchit la ligne de prix la plus élevée.
  4. Entrée courte: ouverture d'une position courte lorsque le prix de clôture franchit la ligne de prix la plus basse.
  5. Stop loss: Stop loss long près de la ligne de prix la plus basse, stop loss court près de la ligne de prix la plus élevée.

En capturant les tendances à travers les percées des prix les plus élevés / les plus bas, il réalise automatiquement le passage entre long et court.

Analyse des avantages

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

  1. La logique est simple, facile à comprendre et à mettre en œuvre
  2. Basé sur des barres quotidiennes, cycle long, moins sensible aux bruits de courte durée
  3. Commutation automatique entre long et court, éviter les marchés non tendance
  4. Stop loss clair, bénéfique pour le contrôle des risques

Analyse des risques

Quelques risques:

  1. Les barres quotidiennes ont une fréquence inférieure, incapable d'arrêter la perte en temps opportun
  2. Les fausses découvertes peuvent entraîner des pertes inutiles
  3. La détention à long terme peut entraîner des pertes accrues

Améliorations:

  1. Ajouter d'autres indicateurs de fréquence plus élevée pour confirmation
  2. Optimiser les paramètres pour filtrer les fausses percées
  3. Adopter des méthodes de stop loss progressives pour un stop loss rapide

Directions d'optimisation

Quelques conseils:

  1. Plus de tests antérieurs sur différents produits et plus de séries de données pour tester la stabilité
  2. Explorez d'autres indicateurs de percée tels que les canaux, les bandes de Bollinger, etc.
  3. Incorporer le volume de négociation pour éviter les fausses ruptures sans volume
  4. Ajouter plus de filtres pour réduire les fausses pauses

Résumé

En résumé, cette stratégie simple réalise automatiquement long/short basé sur les pivots quotidiens. La logique est claire et facile à comprendre. Des optimisations supplémentaires peuvent améliorer la stabilité. Les investisseurs peuvent l'appliquer au trading en direct basé sur leurs préférences personnelles en matière de risque.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2019

//@version=3
strategy(title = "Noro's DEX Strategy", shorttitle = "DEX str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(false, defval = false, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot")
showlines = input(true, title = "Show lines")
showbg = input(false, title = "Show background")
showday = input(false, title = "Show new day")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//New day trand
bar = close > open ? 1 : close < open ? -1 : 0
newday = request.security(syminfo.tickerid, 'D', time)

//Lines
uplevel = request.security(syminfo.tickerid, 'D', high)
dnlevel = request.security(syminfo.tickerid, 'D', low)
upcolor = uplevel == uplevel[1] and showlines ? lime : na
dncolor = dnlevel == dnlevel[1] and showlines? red : na
plot(uplevel, offset = 1, linewidth = 2, color = upcolor)
plot(dnlevel, offset = 1, linewidth = 2, color = dncolor)

//Background
size = strategy.position_size
col = time == newday + 86400000 and showday ? blue : showbg and size > 0 ? lime : showbg and size < 0 ? red : na
bgcolor(col)

//Orders
lot = 0.0
lot := size != size[1] ? strategy.equity / close * capital / 100 : lot[1]
truetime = true
if uplevel > 0 and dnlevel > 0
    strategy.entry("Long", strategy.long, needlong ? lot : 0, stop = uplevel, when = truetime)
    strategy.entry("Close", strategy.short, needshort ? lot : 0, stop = dnlevel, when = truetime)

Plus de