Suivi des stratégies de marché baissier


Date de création: 2024-02-26 14:12:09 Dernière modification: 2024-02-26 14:12:09
Copier: 1 Nombre de clics: 955
1
Suivre
1617
Abonnés

Suivi des stratégies de marché baissier

Aperçu

La stratégie de suivi du marché baissier est une stratégie de négociation de devises conçue pour capturer le comportement typique de l’EUR/USD lors de l’ouverture des marchés européens. Cette stratégie utilise les caractéristiques de la position de clôture forcée par le blocage de l’euro pendant l’ouverture des marchés européens.

Principe de stratégie

La logique de négociation centrale de la stratégie de suivi du marché baissier est basée sur l’hypothèse suivante: les traders et les algorithmes qui font plus d’euros pendant le lancement en Europe/Londres poussent le prix de l’euro/dollar. Mais si les prix ne peuvent pas continuer à augmenter ou s’il y a des signes de baisse, ces plusurs sont pris au piège. Donc, quand les prix commencent à se redresser, ils sont forcés de réduire leur surplus, aggravant ainsi la baisse.

La stratégie utilise cette théorie du marché baissier pour capturer les baisses à court terme. Plus précisément, elle cherche un signal de coupe de forme inversée sur la ligne K de 1 heure dans le fuseau horaire européen (par exemple, 2h-7h).

Lorsque cette inversion de forme se produit, cela indique que le multijoueur est à risque de se faire piéger. Afin de valider davantage le signal, la stratégie vérifie également les conditions de filtrage suivantes:

  1. L’indicateur RSI est supérieur à la ligne d’excédent (default 70);
  2. le prix de clôture de la ligne K précédente est supérieur au prix d’ouverture ((signal de fin multiple);
  3. La ligne K est la ligne la plus élevée de l’histoire récente.

Une fois que toutes les conditions de filtrage sont remplies, la stratégie devient vide lors de la clôture de l’inversion de l’effet de levier, le stop loss est placé au-dessus du pic de l’effet de levier et le profit cible est basé sur le taux de rendement du risque acceptable (le taux de rendement du risque par défaut est de 1 contre 1).

Il est à noter que cette stratégie n’est active que dans le fuseau horaire européen et que si le prix s’écarte du fuseau horaire européen, il est réinitialisé en attendant le prochain moment de la zone horaire.

Analyse des avantages

Il s’agit d’une stratégie simple mais pratique de courte ligne de la position. Les principaux avantages sont:

  1. La plupart des gens ne savent pas ce qu’ils font, mais ils savent qu’ils doivent faire quelque chose.
  2. La logique de la stratégie est simple, facile à comprendre et à répéter et à optimiser.
  3. Le marché de nuit, qui évite le bruit du jour;
  4. Les risques sont bien maîtrisés et la stratégie de prévention des pertes est claire.
  5. Une connexion directe à l’échange automatique MT4/5;

Dans l’ensemble, la stratégie de suivi du marché baissier est une bonne option pour une stratégie d’arbitrage nocturne de courte durée, pour sa stabilité et sa praticité.

Analyse des risques

Bien que cette stratégie présente certains avantages, la négociation de tout produit financier comporte des risques, dont les principaux sont:

  1. Le marché de la nuit est moins liquidité et ne peut pas être arrêté à temps.
  2. Les stratégies sont trop simples pour être déchiffrées par des algorithmes.
  3. Les règles de comportement de l’euro multipolar en difficulté pourraient ne pas fonctionner dans certaines conditions de marché;
  4. Il est nécessaire d’avoir suffisamment de données historiques pour vérifier l’efficacité de la stratégie.
  5. Les données de détection peuvent être très différentes des données du disque dur.

Voici quelques conseils pour faire face à ces risques:

  1. d’ajuster la marge d’arrêt pour prévenir la perte de marge d’effet;
  2. L’intégration de plus d’indicateurs et de conditions de filtrage pour rendre la stratégie plus robuste;
  3. Optimiser les paramètres stratégiques pour s’adapter à un environnement de marché plus large;
  4. Les cycles de retour sont plus longs.
  5. Les résultats sont vérifiés en laboratoire plusieurs fois pour s’assurer qu’ils sont fiables.

Direction d’optimisation

Compte tenu de la simplicité de la stratégie et des risques potentiels, voici quelques pistes d’optimisation à envisager:

  1. Vérification de plusieurs périodes- une stabilité accrue en permettant la vérification des signaux de retournement sur des périodes de 5 minutes ou 15 minutes;
  2. Le filtrage de l’apprentissage automatique- l’introduction d’algorithmes d’apprentissage automatique pour identifier plus de modèles et filtrer les faux signaux;
  3. Défaillance dynamique- Ajuster les points de rupture en temps réel en fonction des fluctuations du marché pour éviter la rupture de rupture;
  4. Optimisation de la gestion des fonds de stabilité- Optimiser les stratégies de gestion des fonds pour stabiliser les gains en ajustant les positions.

Résumer

La stratégie de suivi du marché baissier est une stratégie de shorting simple et contrôlable. Elle permet de réaliser des gains stables en capturant les ajustements à court terme apportés par le phénomène de la prise en charge multiple de l’euro. La stratégie est facile à comprendre et à optimiser, ce qui en fait le choix idéal pour le trading de nuit.

Code source de la stratégie
/*backtest
start: 2024-02-18 00:00:00
end: 2024-02-25 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ZenAndTheArtOfTrading / PineScriptMastery
// FTB Strategy (PineConnector Version)
// Last Updated: 21st July, 2021
// @version=4
strategy("[2021] FTB Strategy", shorttitle="FTB", overlay=true)

// Risk Settings
var g_risk      = "Risk Settings"
pips            = input(title="Stop Pips", type=input.float, defval=2.0, group=g_risk, tooltip="How many pips above high to put stop loss")
rr              = input(title="Risk:Reward", type=input.float, defval=1.0, group=g_risk, tooltip="This determines the risk:reward profile of the setup")
// Filters
var g_filter    = "Filter Settings"
timezone        = input(title="Timezone", type=input.session, defval="0200-0700", group=g_filter, tooltip="Which timezone to search for FTB signals in")
days            = input(title="Days To Trade", defval="13457", group=g_filter, tooltip="Which days to trade this strategy on (Monday & Friday disabled by default)")
useRsiFilter    = input(title="RSI OB/OS?", type=input.bool, defval=true, group=g_filter, tooltip="If true then the RSI must be considered overbought before a signal is valid")
useCloseFilter  = input(title="Previous Bar Must Be Bullish?", type=input.bool, defval=false, group=g_filter, tooltip="If true then the previous bar must have closed bullish")
useHighFilter   = input(title="High Filter", type=input.bool, defval=false, group=g_filter, tooltip="If true then the signal bar must be the highest bar over X bars")
highLookback    = input(title="High Lookback", type=input.integer, defval=10, group=g_filter, tooltip="This is for setting the High Filter lookback distance")
fib             = input(title="Candle Close %", defval=0.5, group=g_filter, tooltip="For identifying shooting star candles (0.5 = must close <= 50% mark of candle size)")
rsiLen          = input(title="RSI Length", type=input.integer, defval=3, group=g_filter, tooltip="RSI length")
rsiOB           = input(title="RSI OB", type=input.float, defval=70.0, group=g_filter, tooltip="RSI overbought threshold")
// PineConnector Settings
var g_pc        = "PineConnector Settings"
pc_id           = input(title="License ID", defval="YOUR_ID", type=input.string, group=g_pc, tooltip="This is your PineConnector license ID")
pc_risk         = input(title="Risk Per Trade", defval=1, step=0.5, type=input.float, group=g_pc, tooltip="This is how much to risk per trade (% of balance or lots)")
pc_prefix       = input(title="MetaTrader Prefix", defval="", type=input.string, group=g_pc, tooltip="This is your broker's MetaTrader symbol prefix")
pc_suffix       = input(title="MetaTrader Suffix", defval="", type=input.string, group=g_pc, tooltip="This is your broker's MetaTrader symbol suffix")
pc_spread       = input(title="Spread", defval=0.5, type=input.float, group=g_pc, tooltip="Enter your average spread for this pair (used for offsetting limit order)")
pc_limit        = input(title="Use Limit Order?", defval=true, type=input.bool, group=g_pc, tooltip="If true a limit order will be used, if false a market order will be used")

// Generate PineConnector alert string
var symbol = pc_prefix + syminfo.ticker + pc_suffix
var limit = pc_limit ? "limit" : ""
pc_entry_alert(direction, sl, tp) =>
    price = pc_limit ? "price=" + tostring(pc_spread) + "," : ""
    pc_id + "," + direction + limit + "," + symbol + "," + price + "sl=" + tostring(sl) + ",tp=" + tostring(tp) + ",risk=" + tostring(pc_risk)

// Get RSI filter
rsiValue = rsi(close, rsiLen)
rsiFilter = not useRsiFilter or rsiValue >= rsiOB

// Check high & close filter
highFilter = not useHighFilter or high == highest(high, highLookback)
closeFilter = not useCloseFilter or close[1] > open[1]

// InSession() determines if a price bar falls inside the specified session
inSession(sess) => na(time(timeframe.period, sess + ":" + days)) == false

// Calculate 50% mark of candle size
bearFib = (high - low) * fib + low

// Check filters
filters = inSession(timezone) and closeFilter and high > high[1] and rsiFilter and highFilter and open != close

// Detect valid shooting star pinbar pattern
var takenTradeAlready = false
star = true

// Calculate stops & targets
shortStopPrice = high + (syminfo.mintick * pips * 10)
shortStopDistance = shortStopPrice - close
shortTargetPrice = close - (shortStopDistance * rr)

// Save stops & targets for the current trade
var tradeStopPrice = 0.0
var tradeTargetPrice = 0.0

// If we detect a valid shooting star, save our stops & targets, enter short and generate alert
if star and barstate.isconfirmed
    tradeStopPrice := shortStopPrice
    tradeTargetPrice := shortTargetPrice
    takenTradeAlready := true
    alertString = pc_entry_alert("sell", tradeStopPrice, tradeTargetPrice)
    alert(alertString, alert.freq_once_per_bar_close)
    strategy.entry(id="Short", long=strategy.short, when=strategy.position_size == 0, comment=alertString)

// If we have exited the FTB session then reset our takenTradeAlready flag for the next session
if not inSession(timezone) and inSession(timezone)[1]
    takenTradeAlready := false
    
// If price has exceeded target then cancel limit order if it's still active
if pc_limit and low <= tradeTargetPrice and strategy.position_size == 0
    alert(pc_id + ",cancelshort," + symbol)
    tradeTargetPrice := na

// Draw stops & targets
plot(star ? tradeStopPrice : na, color=color.red, style=plot.style_linebr, title="SL")
plot(star ? shortTargetPrice : na, color=color.green, style=plot.style_linebr, title="TP")
// Draw short signals
plotshape(star ? 1 : na, style=shape.triangledown, color=color.red)
// Change background color to highlight detection zone
bgcolor(color=inSession(timezone) ? color.new(color.red,80) : na, title="Session")

// Exit trade whenever our stop or target is hit
strategy.exit(id="Short Exit", from_entry="Short", limit=tradeTargetPrice, stop=tradeStopPrice, when=strategy.position_size != 0)