Stratégies longues et courtes basées sur les entités K-line


Date de création: 2023-11-16 17:14:48 Dernière modification: 2023-11-16 17:14:48
Copier: 0 Nombre de clics: 649
1
Suivre
1617
Abonnés

Stratégies longues et courtes basées sur les entités K-line

Aperçu

Cette stratégie est basée sur la longueur de l’entité de la ligne K pour juger de la direction de la plurielle. Elle calcule la longueur moyenne de l’entité des 30 dernières lignes de la ligne K, plus lorsque la longueur de l’entité de la ligne solaire est supérieure à la longueur moyenne de l’entité, vide lorsque la longueur de l’entité de la ligne solaire est supérieure à la longueur moyenne de l’entité.

Principe de stratégie

La stratégie commence par calculer la longueur d’entité de la ligne K, sbody, et la moyenne des 30 dernières longueurs d’entité de la ligne K.

Lorsque la ligne K d’aujourd’hui est une ligne négative ((bar==-1) et que la longueur de l’entité est supérieure à la longueur moyenne de l’entité, ouvrez la liste multifonctionnelle ((up1) ).

Lorsque la ligne K est la ligne du soleil ((bar==1) et que la longueur de l’entité est supérieure à la longueur moyenne de l’entité, ouvrez le formulaire blanc ((dn1) ).

Une fois la position ouverte, si la ligne K d’aujourd’hui est la ligne du jour ((bar==1) et que la position actuelle est en profit, alors la position de la position est nulle.

Après l’ouverture de la position vide, si la ligne K est négative aujourd’hui et que la position actuelle est rentable, la position vide est nulle.

La stratégie utilise simplement et efficacement la longueur des entités de la ligne K pour juger de la tendance. Plus les entités sont longues, plus la tendance est forte, donc la longueur des entités est utilisée comme base pour juger de la polyvalence.

Analyse des avantages

Cette stratégie présente les avantages suivants:

  1. La stratégie est simple, claire, facile à comprendre et à mettre en œuvre.

  2. La longueur de l’entité K est utilisée pour déterminer la tendance et éviter les interférences sonores.

  3. Le calcul des moyennes dynamiques permet de s’adapter aux évolutions du marché.

  4. La mise en place de conditions de plafonnement rentables peut améliorer le rendement stratégique.

  5. Paramètres de stratégie configurables pour différents environnements de marché

Analyse des risques

Cette stratégie comporte aussi des risques:

  1. Les entités plus longues ne représentent pas nécessairement une tendance forte, mais peuvent être des fluctuations normales.

  2. Une mauvaise définition de la fenêtre de temps de la longueur moyenne de l’entité peut entraîner des opportunités de transaction manquées.

  3. Les événements imprévus peuvent entraîner des pertes stratégiques.

  4. La détention d’une position en surplus pendant une période trop longue peut entraîner une perte accrue.

Les solutions pour faire face aux risques:

  1. Le taux de change de l’indicateur est le taux de change de l’indicateur le plus élevé de l’indicateur.

  2. Tester la prise de valeur de différents paramètres et optimiser le calcul de la longueur moyenne des entités.

  3. Les conditions de stop-loss sont réglées pour contrôler les pertes ponctuelles.

  4. Optimiser la logique d’ouverture et de clôture des positions afin d’éviter une longue période de détention.

Direction d’optimisation

Cette stratégie peut être optimisée dans les domaines suivants:

  1. Le MACD, le RSI et d’autres indicateurs permettent de juger de la tendance et d’éviter les signaux erronés causés par les fluctuations habituelles.

  2. Tester différents paramètres de la fenêtre de temps de longueur moyenne de l’entité pour trouver la combinaison optimale de paramètres.

  3. Ajout d’une logique de contrôle du volume d’ouverture de position, réduisant progressivement le volume d’ouverture de position avec l’augmentation du nombre de pertes.

  4. Configurer des conditions de sortie de stop-loss mobile ou stop-loss sur le taux de profit pour contrôler le taux de perte unique.

  5. Optimiser les conditions d’ouverture et de clôture des positions afin d’éviter les transactions invalides. Par exemple, 3 entités K-lignes consécutives plus longues ouvrent des positions.

  6. Évitez de négocier pendant une période donnée ou avant la publication de données importantes pour limiter les pertes liées aux chocs de change.

Résumer

L’idée générale de la stratégie est claire et facile à comprendre, et le moment d’entrée est jugé en comparant les entités de la ligne K avec leur longueur moyenne. Il y a beaucoup d’espace pour l’optimisation de la stratégie et des ajustements d’optimisation peuvent être effectués de plusieurs manières, ce qui rend les paramètres de la stratégie plus adaptés aux différents environnements de marché.

Code source de la stratégie
/*backtest
start: 2023-10-16 00:00:00
end: 2023-11-15 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

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

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
usebody = input(true, defval = true, title = "Use body")
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")

//Signals
bar = close > open ? 1 : close < open ? - 1 : 0
body = abs(close - open)
sbody = ema(body, 30)

up1 = bar == -1 and (body > sbody or usebody == false)
dn1 = bar == 1 and (body > sbody or usebody == false)

plus = (close > strategy.position_avg_price and strategy.position_size > 0) or (close < strategy.position_avg_price and strategy.position_size < 0)
exit = ((strategy.position_size > 0 and bar == 1) or (strategy.position_size < 0 and bar == -1)) and plus

if up1
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, 01, 00, 00) and time < timestamp(toyear, tomonth, 31, 00, 00)))

if dn1
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, 01, 00, 00) and time < timestamp(toyear, tomonth, 31, 00, 00)))
    
if time > timestamp(toyear, tomonth, 31, 00, 00) or exit
    strategy.close_all()