Stratégie de cassure des hauts et des bas de la session asiatique


Date de création: 2024-03-29 17:12:49 Dernière modification: 2024-03-29 17:12:49
Copier: 0 Nombre de clics: 1395
1
Suivre
1617
Abonnés

Stratégie de cassure des hauts et des bas de la session asiatique

Aperçu

L’idée principale de cette stratégie est d’utiliser les hauts et les bas du cours asiatique comme point de rupture, de faire plus dans les heures qui suivent l’ouverture du cours EUR/USD si le prix dépasse le haut du cours asiatique et de faire un vide si le cours dépasse le bas du cours asiatique. Tout en définissant un stop loss et un stop stop, le risque est contrôlé. La stratégie ne prend qu’une seule transaction par jour, avec un maximum de 100000 positions ouvertes simultanément.

Principe de stratégie

  1. Déterminer l’heure de la transaction sur la plate-forme asiatique, permettant à l’utilisateur de personnaliser les heures de début et de fin.
  2. Les prix les plus élevés et les plus bas de la journée ont été enregistrés pendant la période de la chaîne asiatique.
  3. Un certain temps après l’ouverture de la bourse en Europe et aux États-Unis (le nombre d’heures de déviation personnalisé par l’utilisateur), si le prix atteint le sommet de la bourse en Asie, il fait plus, et s’il atteint le bas de la bourse en Asie, il fait moins.
  4. Le nombre de points de stop et d’arrêt peut être personnalisé.
  5. Il est possible d’ouvrir une seule transaction par jour, avec un maximum de 100000 positions en même temps.
  6. Si la position est déjà ouverte le jour de la transaction, aucune nouvelle transaction n’est ouverte.

Analyse des avantages

  1. En utilisant les caractéristiques relativement calmes de l’indice asiatique comme point de rupture, il est possible de mieux saisir les opportunités de tendance de l’indice euro-américain.
  2. Le système de stop loss et de stop stop permet de contrôler efficacement le risque, de faire tourner le profit et d’arrêter rapidement les pertes.
  3. En limitant le nombre d’opérations à une seule par jour et à un maximum de positions ouvertes simultanément, on évite une survente des transactions et une utilisation excessive des fonds.
  4. L’utilisateur peut définir des paramètres tels que l’heure de disque asiatique et le nombre d’heures de décalage en fonction de ses besoins.

Analyse des risques

  1. Les hauts et les bas de l’Asie ne sont pas forcément les véritables hauts et les bas de la journée, mais il est possible que l’Europe et l’Amérique se retirent rapidement après avoir franchi la barre, ce qui entraîne des pertes.
  2. Les arrêts et arrêts de points fixes peuvent ne pas être en mesure de faire face à des fluctuations importantes du marché, peuvent parfois être arrêtés trop tôt, parfois peuvent être arrêtés trop tôt.
  3. Cette stratégie peut être utilisée pour arrêter fréquemment les positions en cas de tendances peu visibles ou de fortes fluctuations du marché.

Direction d’optimisation

  1. On peut envisager d’ajuster dynamiquement les points de stop loss et de stop loss en fonction des indicateurs de volatilité tels que l’ATR, pour s’adapter à différentes situations.
  2. Il est possible d’ajouter des indicateurs de jugement de tendance, tels que la MA, qui ne fait plus que lorsque la grande tendance est à la hausse, et qui est vide lorsque la tendance est à la baisse, afin d’améliorer le taux de réussite.
  3. On peut envisager de définir différents paramètres à intervalles réguliers, par exemple en utilisant un stop loss plus petit au début de l’ouverture de l’Eurovision et un stop loss plus grand lorsque la tendance est évidente.

Résumer

Cette stratégie utilise les hauts et les bas du tableau asiatique comme points de rupture pour les transactions et convient aux variétés où la tendance du tableau EUR/USD est plus évidente. Cependant, il existe des limites au nombre de points fixes, au stop-loss et à la méthode standard de rupture d’entrée.

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

//@version=4
strategy("Asia Session", overlay=true)

var hourSessionStart = input(19, "Asia session start hour", minval=0, maxval=23)
var hourSessionStop  = input(1, "Asia session end hour", minval=0, maxval=23)
var offsetHours = input(3, "Offset hours after Asia session end")

var float hi              = na
var float lo              = na
var float plotHi          = na
var float plotLo          = na

var bool  inSession       = na
var bool  enteringSession = na
var bool  exitingSession  = na

inSession       := (hour >= hourSessionStart or hour < hourSessionStop)
enteringSession := inSession and not inSession[1]
exitingSession  := not inSession and inSession[1]

if enteringSession
    plotLo := na
    plotHi := na

if inSession
    lo := min(low,  nz(lo, 1.0e23))
    hi := max(high, nz(hi))

if exitingSession
    plotLo := lo
    plotHi := hi
    lo     := na
    hi     := na

bgcolor(inSession ? color.blue : na)

plot(plotLo, "Asia session Low",  color.red,   style=plot.style_linebr)
plot(plotHi, "Asia session High", color.green, style=plot.style_linebr)

// Implementazione delle condizioni di entrata
var float asiaSessionLow = na
var float asiaSessionHigh = na
var int maxTrades = 100000 // Impostiamo il massimo numero di operazioni contemporanee
var int tradesOpened = 0 // Variabile per tenere traccia del numero di operazioni aperte
var bool tradeOpened = false
var bool operationClosed = false // Nuova variabile per tenere traccia dello stato di chiusura dell'operazione

// Calcolo del range asiatico
if (inSession)
    asiaSessionLow := lo
    asiaSessionHigh := hi

// Apertura di un solo trade al giorno
if (enteringSession)
    tradeOpened := false

// Condizioni di entrata
var float stopLoss = 300 * syminfo.mintick
var float takeProfit = 300 * syminfo.mintick

if (not tradeOpened and not operationClosed and close < asiaSessionLow and tradesOpened < maxTrades and hour >= hourSessionStop + offsetHours)
    strategy.entry("Buy", strategy.long)
    tradeOpened := true
    tradesOpened := tradesOpened + 1 // Incrementiamo il contatore delle operazioni aperte

if (not tradeOpened and not operationClosed and close > asiaSessionHigh and tradesOpened < maxTrades and hour >= hourSessionStop + offsetHours)
    strategy.entry("Sell", strategy.short)
    tradeOpened := true
    tradesOpened := tradesOpened + 1 // Incrementiamo il contatore delle operazioni aperte

// Impostazione dello stop loss e del take profit
strategy.exit("Stop Loss / Take Profit", "Buy", stop=close - stopLoss, limit=close + takeProfit)
strategy.exit("Stop Loss / Take Profit", "Sell", stop=close + stopLoss, limit=close - takeProfit)