Stratégies de trading basées sur le modèle de pic à pic


Date de création: 2024-02-20 15:40:58 Dernière modification: 2024-02-20 15:40:58
Copier: 0 Nombre de clics: 629
1
Suivre
1617
Abonnés

Stratégies de trading basées sur le modèle de pic à pic

Aperçu

Cette stratégie est appelée stratégie de négociation basée sur la forme de sommet de la courbe et utilise principalement la forme de sommet de la courbe K pour déterminer le moment d’acheter et de vendre. Cette stratégie appartient à la catégorie des stratégies d’analyse technique.

Principe de stratégie

Cette stratégie permet de juger de la forme du sommet d’un diagramme K en définissant un sommet ascendant (upfractal) et un sommet descendant (downfractal).

En particulier, la logique de jugement du pic de montée est la suivante: le sommet de la ligne K actuelle est le sommet de la ligne K la plus récente de n racines, et aucun sommet de la ligne K ultérieur ne dépasse le sommet de la ligne K actuelle.

La logique de jugement de la descente du pic est la suivante: le point le plus bas de la ligne K actuelle est le point le plus bas de la ligne K la plus récente de n racines, et les points le plus bas de la ligne K suivants ne sont pas inférieurs au point le plus bas de la ligne K actuelle.

Ici, les variables de Boole et la boucle sont utilisées pour juger de la relation entre les lignes K des racines antérieures et postérieures n et les hauts et les bas de la ligne K actuelle, afin de déterminer les pics d’élévation et de baisse.

La logique centrale de cette stratégie est donc la suivante:

  1. Pour déterminer le pic d’augmentation et le pic de baisse
  2. Il y a une différence entre le pic et la baisse.

Analyse des avantages

Cette stratégie présente les avantages suivants:

  1. La forme du pic est facile à reconnaître et à utiliser.
  2. L’utilisation de la technologie sans affecter les fondamentaux
  3. Les retraits sont moins probables

Analyse des risques

Cette stratégie comporte aussi des risques:

  1. Le jugement de Peak Peak n’est pas exact et pourrait avoir manqué le meilleur moment pour entrer dans la compétition.
  2. Les stops peuvent être plus difficiles à déterminer en cas de changement de situation
  3. Le blogueur de l’éditeur a écrit:

La réponse:

  1. Ajustez les paramètres de la forme de crête pour optimiser la logique de jugement
  2. Détermination de la position de stop loss en combinaison avec d’autres indicateurs
  3. Utilisé avec l’analyse fondamentale ou d’autres stratégies combinées

Direction d’optimisation

Cette stratégie peut également être optimisée dans les directions suivantes:

  1. Augmentation de l’espace de réglage des paramètres et optimisation de la forme des sommets
  2. Ajout de la logique de stop-loss
  3. Prendre en compte d’autres indicateurs tels que le volume ou la volatilité
  4. Combinaison d’analyses de différentes périodes

Résumer

Cette stratégie est basée sur le principe de la forme de crête simple et facile à utiliser, le retrait peut être faible. Mais il y a aussi un certain risque, qui doit être utilisé en combinaison avec d’autres méthodes d’analyse pour obtenir le maximum d’efficacité.

Code source de la stratégie
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("sanju parmar", shorttitle="sanju trading empire", overlay=true)

// Define "n" as the number of periods and keep a minimum value of 2 for error handling.
n = input.int(title="Periods", defval=2, minval=2)

// UpFractal
bool upflagDownFrontier = true
bool upflagUpFrontier0 = true
bool upflagUpFrontier1 = true
bool upflagUpFrontier2 = true
bool upflagUpFrontier3 = true
bool upflagUpFrontier4 = true

for i = 1 to n
    upflagDownFrontier := upflagDownFrontier and (high[n-i] < high[n])
    upflagUpFrontier0 := upflagUpFrontier0 and (high[n+i] < high[n])
    upflagUpFrontier1 := upflagUpFrontier1 and (high[n+1] <= high[n] and high[n+i + 1] < high[n])
    upflagUpFrontier2 := upflagUpFrontier2 and (high[n+1] <= high[n] and high[n+2] <= high[n] and high[n+i + 2] < high[n])
    upflagUpFrontier3 := upflagUpFrontier3 and (high[n+1] <= high[n] and high[n+2] <= high[n] and high[n+3] <= high[n] and high[n+i + 3] < high[n])
    upflagUpFrontier4 := upflagUpFrontier4 and (high[n+1] <= high[n] and high[n+2] <= high[n] and high[n+3] <= high[n] and high[n+4] <= high[n] and high[n+i + 4] < high[n])
flagUpFrontier = upflagUpFrontier0 or upflagUpFrontier1 or upflagUpFrontier2 or upflagUpFrontier3 or upflagUpFrontier4

upFractal = (upflagDownFrontier and flagUpFrontier)


// downFractal
bool downflagDownFrontier = true
bool downflagUpFrontier0 = true
bool downflagUpFrontier1 = true
bool downflagUpFrontier2 = true
bool downflagUpFrontier3 = true
bool downflagUpFrontier4 = true

for i = 1 to n
    downflagDownFrontier := downflagDownFrontier and (low[n-i] > low[n])
    downflagUpFrontier0 := downflagUpFrontier0 and (low[n+i] > low[n])
    downflagUpFrontier1 := downflagUpFrontier1 and (low[n+1] >= low[n] and low[n+i + 1] > low[n])
    downflagUpFrontier2 := downflagUpFrontier2 and (low[n+1] >= low[n] and low[n+2] >= low[n] and low[n+i + 2] > low[n])
    downflagUpFrontier3 := downflagUpFrontier3 and (low[n+1] >= low[n] and low[n+2] >= low[n] and low[n+3] >= low[n] and low[n+i + 3] > low[n])
    downflagUpFrontier4 := downflagUpFrontier4 and (low[n+1] >= low[n] and low[n+2] >= low[n] and low[n+3] >= low[n] and low[n+4] >= low[n] and low[n+i + 4] > low[n])
flagDownFrontier = downflagUpFrontier0 or downflagUpFrontier1 or downflagUpFrontier2 or downflagUpFrontier3 or downflagUpFrontier4

downFractal = (downflagDownFrontier and flagDownFrontier)

plotshape(downFractal, style=shape.triangleup, location=location.belowbar, offset=-n, color=#18f523, size = size.small)
plotshape(upFractal, style=shape.triangledown, location=location.abovebar, offset=-n, color=#cf3d11, size = size.small)

// Strategy Conditions
longCondition = upFractal
shortCondition = downFractal

// Strategy Entry and Exit
if (longCondition)
    strategy.entry("Buy", strategy.long)
if (shortCondition)
    strategy.entry("Sell", strategy.short)