Stratégie de suivi de l'extrême réversion

Auteur:ChaoZhang est là., Date: 20 février 2024
Les étiquettes:

img

Résumé

La stratégie de suivi de la réversion extrême suit les points extrêmes de la fourchette de fluctuation des prix et effectue des positions longues/courtes d'inversion aux points extrêmes pour suivre les tendances.

Principe de stratégie

La stratégie repose principalement sur les principes suivants:

  1. Utiliser la fonction de sécurité pour obtenir les prix élevés et bas de différentes lignes K du cycle afin de détecter si elles sont égales aux lignes précédentes, afin de juger si de nouveaux points extrêmes sont atteints.

  2. Lorsque de nouveaux points extrêmes sont détectés, effectuez une position courte si le marché est actuellement haussier et une position longue si le marché est actuellement baissier.

  3. Définir le point de stop loss comme le nouveau point extrême formé après que la position longue/courte ait été établie pour suivre les tendances avec stop loss.

  4. Définir la fourchette de temps effective de la stratégie en configurant l'année de début, le mois et la date pour effectuer des ajustements pour différentes périodes.

Les avantages

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

  1. Capter efficacement les points extrêmes des variations de prix et faire des positions d'inversion pour suivre les tendances.

  2. Configurer la gestion du temps et des risques pour contrôler le temps d'utilisation et le capital de la stratégie afin de réduire les risques.

  3. Utiliser de nouveaux points extrêmes comme points de stop loss pour ajuster dynamiquement les positions de stop loss en fonction de la nouvelle plage de fluctuation des prix.

  4. Une logique de stratégie simple et claire pour une compréhension, un débogage et une optimisation faciles.

Les risques

Cette stratégie comporte également certains risques:

  1. Il pourrait y avoir une erreur de jugement dans la détermination des points extrêmes, provoquant des erreurs dans les positions longues / courtes.

  2. La position stop loss est proche du point d'entrée, ce qui augmente la probabilité d'un stop loss déclenché.

  3. Aucune considération sur les positions pyramidales le long des tendances et les positions inverses, moins rentables sur les marchés en tendance.

  4. La configuration de la devise et de l'intervalle de temps est assez rigide, ne peut pas effectuer d'ajustements dynamiques.

Directions d'optimisation

La stratégie peut être optimisée dans les aspects suivants:

  1. Optimisez la logique du point extrême avec plus de filtres pour éviter les erreurs de jugement.

  2. Ajouter un mécanisme de stop loss flottant basé sur les variations de prix et de volatilité pour ajuster la distance de stop loss.

  3. Mettre en place des modules pyramidaux et de position inversée basés sur les tendances et la volatilité pour améliorer la rentabilité.

  4. Mettre en place un mécanisme d'optimisation des paramètres pour les tests automatiques et le réglage des paramètres.

  5. Incorporer des modèles d'apprentissage automatique pour faciliter la prise de décision stratégique.

Résumé

La stratégie de suivi de l'extrême inversion fonctionne en capturant les extrêmes de prix et en suivant les tendances, adaptable et rentable.


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

//Noro
//2018

//@version=2
strategy(title = "Noro's Extremum Strategy v1.0", shorttitle = "Extremum str 1.0", 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 = "Capital, %")
tf = input('W', title = 'Timeframe for extremums')
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")

//Levels
highm = request.security(syminfo.tickerid, tf, high[1])
lowm = request.security(syminfo.tickerid, tf, low[1])
upcolorm = highm == highm[1] ? lime : na
dncolorm = lowm == lowm[1] ? red : na
plot(highm, color = upcolorm, linewidth = 3)
plot(lowm, color = dncolorm, linewidth = 3)

//Signals
size = strategy.position_size
up = size > 0 ? highm * 1000000 : highm != highm[1] ? highm : up[1]
dn = size < 0 ? 0 : lowm != lowm[1] ? lowm : dn[1]
exit = true

//Trading
lot = strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1]

if highm > 0 and high[1] < highm and highm == highm[1]
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, stop = up)
    
if lowm > 0 and low[1] > lowm and lowm == lowm[1]
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, stop = dn)

if exit
    strategy.close_all()

Plus de