Stratégie de la zone de transition


Date de création: 2023-12-29 17:03:27 Dernière modification: 2023-12-29 17:03:27
Copier: 1 Nombre de clics: 846
1
Suivre
1621
Abonnés

Stratégie de la zone de transition

Aperçu

La stratégie de zone de transition est une stratégie de négociation de courte ligne basée sur des zones de fluctuation des prix. Elle utilise les zones de fluctuation formées par les prix au cours d’une certaine période pour juger de la tendance du marché et faire une entrée plus / moins lors de la rupture de la zone.

Principe de stratégie

La stratégie construit une zone de fluctuation des prix en calculant les prix les plus élevés et les plus bas des lignes K les plus récentes. Lorsque la dernière ligne K pénètre dans cette zone, un revirement de tendance est estimé et un signal de transaction est généré.

Plus précisément, la stratégie suit en permanence le prix le plus élevé et le prix le plus bas de la dernière N-racine de la ligne K (paramètre réglable N), parmi lesquels:

  • Le prix le plus bas = le point le plus bas sur la ligne N à la racine K du passé
  • Le prix le plus élevé est le plus haut point de la ligne N à la racine de K.

Le prix de l’électricité a été réduit de moitié par rapport à l’électricité de l’année précédente.

Lorsque le prix de clôture de la ligne K la plus récente est supérieur au prix le plus élevé de la zone, indique une rupture de la zone, générant un signal de plus; lorsque le prix de clôture de la ligne K la plus récente est inférieur au prix le plus bas de la zone, indique une rupture de la zone, générant un signal de reprise.

En outre, la stratégie a ajouté un filtre de couleur et un filtre d’entité. Un filtre de couleur filtre le signal en fonction de la couleur des entités de la ligne K. Un filtre d’entité filtre le signal en fonction de la taille des entités de la ligne K. Cela permet de filtrer certains faux signaux.

Avantages stratégiques

Cette stratégie présente les avantages suivants:

  1. Capture des fourchettes de prix, détermine les virages de tendance, et effectue des prises de position plus précises
  2. Filtration de couleur et de substance, permettant de filtrer les faux signaux
  3. La logique de la stratégie est simple et claire, les paramètres sont faciles à comprendre et à ajuster
  4. Plus de paramètres modifiables pour optimiser les stratégies

Analyse des risques

Cette stratégie comporte aussi des risques:

  1. Une mauvaise configuration des paramètres peut entraîner des transactions trop fréquentes et des frais de transaction excessifs
  2. Une mauvaise définition de la portée de la plage peut entraîner un trop grand nombre de fausses signaux de rupture de plage
  3. Les prévisions de la fourchette sont moins efficaces en cas de forte volatilité
  4. Les prix ont augmenté de plus en plus rapidement et les prix ont augmenté de plus en plus rapidement.

Il est possible de réduire ces risques en ajustant les paramètres d’intervalle et en optimisant les conditions de filtrage du signal.

Direction d’optimisation

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

  1. Dynamique d’ajustement de la fourchette de prix au lieu d’une ligne N à la racine K fixe
  2. Logique de stop-loss pour réduire le risque de perte
  3. Optimiser les paramètres du filtre pour améliorer la qualité du signal
  4. Ajout de logiques de traitement des écarts de prix
  5. Combinez plusieurs signaux de jugement de périodes de temps pour éviter d’être piégé

Résumer

La stratégie de zone de transition est une stratégie de négociation en ligne courte qui est plus simple et pratique dans l’ensemble. Elle permet de saisir rapidement les opportunités du marché en déterminant les points de basculement de la tendance à travers la zone de prix.

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

//Noro
//2018

//@version=2
strategy("Noro's Transient Zones Strategy v1.0", shorttitle = "TZ 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(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")

usecol = input(true, defval = true, title = "Use Color-Filter")
usebod = input(true, defval = true, title = "Use Body-Filter")

h_left = input(title = "H left", defval = 10)
h_right = -1
sample_period = input(title = "Sample bars for % TZ",  defval = 5000)
show_ptz = input(title = "Show PTZ", type = bool, defval = true)
show_channel = input(title = "Show channel", type = bool, defval = true)

fromyear = input(2018, defval = 2018, 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")

//By Jurij w/ TZ percent occurrence by SPYderCrusher

//barCount = nz(barCount[1]) + 1
//check history and realtime PTZ
h_left_low = lowest(h_left)
h_left_high = highest(h_left)
newlow = low <= h_left_low
newhigh = high >= h_left_high
plotshape(newlow and show_ptz, style=shape.triangledown, location=location.belowbar, color=red)
plotshape(newhigh and show_ptz, style=shape.triangleup, location=location.abovebar, color=green)
channel_high = plot(show_channel ? h_left_low : 0, color=silver)
channel_low = plot (show_channel ? h_left_high : 0, color=silver)

//check true TZ back in history
central_bar_low = low[h_right + 1]
central_bar_high = high[h_right + 1]
full_zone_low = lowest(h_left + h_right + 1)
full_zone_high = highest(h_left + h_right + 1)
central_bar_is_highest = central_bar_high >= full_zone_high
central_bar_is_lowest = central_bar_low <= full_zone_low
plotarrow(central_bar_is_highest ? -1 : 0, offset=-h_right-1)
plotarrow(central_bar_is_lowest ? 1 : 0, offset=-h_right-1)

//Color Filter
bar = close > open ? 1 : close < open ? -1 : 0

//Body Filter
nbody = abs(close - open)
abody = sma(nbody, 10)
body = nbody > abody / 3 or usebod == false

//Signals
up1 = central_bar_is_lowest and body and (bar == -1 or usecol == false)
dn1 = central_bar_is_highest and body and (bar == 1 or usecol == false)
exit = ((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body

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

if up1
    if strategy.position_size < 0
        strategy.close_all()
        
    strategy.entry("long", strategy.long, needlong == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn1
    if strategy.position_size > 0
        strategy.close_all()
        
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
    strategy.close_all()