Stratégies de trading automatisées longues et courtes basées sur des pivots quotidiens


Date de création: 2024-01-23 14:24:22 Dernière modification: 2024-01-23 14:24:22
Copier: 3 Nombre de clics: 709
1
Suivre
1617
Abonnés

Stratégies de trading automatisées longues et courtes basées sur des pivots quotidiens

Aperçu

La stratégie est basée sur le tracé de deux lignes, la plus haute et la plus basse, de la courbe du jour, comme base pour le jugement de la marge. Lorsque le prix franchit la plus haute ligne de prix, faites plus; lorsque le prix franchit la plus basse ligne de prix, faites moins.

Principe de stratégie

Cette stratégie utilise principalement les axes centraux de la ligne solaire pour juger de la polyvalence. Les axes centraux de la souris sont les prix les plus élevés et les plus bas d’hier. Ces deux lignes constituent une zone de négociation, et si le prix d’aujourd’hui franchit l’un de ces deux points, il est possible de juger qu’il y a un revirement de tendance.

Plus précisément, la logique principale de la stratégie est la suivante:

  1. Ligne de prix maximale: tracez la ligne de prix maximale de la journée d’hier, et si le prix de clôture de la journée franchit cette ligne, il s’agit d’un signal à plusieurs têtes
  2. Ligne de bas prix: tracez la ligne de bas prix de la journée d’hier, et si le prix de clôture de la journée la franchit, c’est un signal de tête vide.
  3. Entrée en position multiple: ouvrir une position en cas de rupture de la ligne de clôture
  4. Entrée à vide: ouverture d’une position à vide lorsque le prix de clôture franchit la ligne de basse
  5. Stop loss: stop multiple situé près de la ligne la plus basse, stop noir situé près de la ligne la plus haute

Les prix des billets de banque ont augmenté de façon spectaculaire depuis le début de l’année, et les prix des billets de banque ont augmenté de façon spectaculaire depuis le début de l’année.

Analyse des avantages

La stratégie présente les principaux avantages suivants:

  1. La stratégie est claire, facile à comprendre et à mettre en œuvre
  2. Basé sur la ligne solaire, le cycle de temps est long et il n’est pas gêné par le bruit des lignes courtes.
  3. La commutation automatique de l’espace libre pour éviter au maximum les marchés non tendanciels
  4. Un point d’arrêt bien défini pour la maîtrise des risques

Analyse des risques

Cette stratégie comporte aussi des risques:

  1. Le cycle de négociation en ligne est long et ne peut pas être arrêté à temps.
  2. La fausse percée peut entraîner des pertes inutiles
  3. Les détenteurs d’une position trop longue risquent d’accroître leurs pertes

Nous pouvons optimiser ces risques de plusieurs façons:

  1. Confirmation de l’ajout d’autres indicateurs de fréquence plus élevée en même temps que la rupture de la ligne solaire
  2. Optimiser les paramètres de détection des fausses révisions
  3. Arrêt de perte en temps opportun par l’utilisation de dispositifs mobiles ou de trailers

Direction d’optimisation

Il y a encore de la place pour optimiser cette stratégie:

  1. La stabilité de la stratégie peut être vérifiée sur plus de variétés et des données plus longues
  2. Il est possible d’explorer d’autres indicateurs de percée, comme les voies, les bandes de bling, etc.
  3. Le volume de transactions peut être combiné pour éviter des ruptures massives.
  4. Plus de conditions de filtrage peuvent être ajoutées pour réduire la probabilité d’une fausse pénétration
  5. On peut essayer d’optimiser les paramètres avec des méthodes telles que l’apprentissage automatique.

Résumer

Dans l’ensemble, la stratégie est basée sur un simple axe solaire et implique une commutation automatique multichannel. La logique de la stratégie est claire et compréhensible, et la stabilité peut être encore améliorée par l’optimisation. Les investisseurs peuvent choisir les paramètres appropriés en fonction de leurs préférences en matière de risque et les appliquer aux transactions sur disque dur.

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

//Noro
//2019

//@version=3
strategy(title = "Noro's DEX Strategy", shorttitle = "DEX str", 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(false, defval = false, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot")
showlines = input(true, title = "Show lines")
showbg = input(false, title = "Show background")
showday = input(false, title = "Show new day")
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")

//New day trand
bar = close > open ? 1 : close < open ? -1 : 0
newday = request.security(syminfo.tickerid, 'D', time)

//Lines
uplevel = request.security(syminfo.tickerid, 'D', high)
dnlevel = request.security(syminfo.tickerid, 'D', low)
upcolor = uplevel == uplevel[1] and showlines ? lime : na
dncolor = dnlevel == dnlevel[1] and showlines? red : na
plot(uplevel, offset = 1, linewidth = 2, color = upcolor)
plot(dnlevel, offset = 1, linewidth = 2, color = dncolor)

//Background
size = strategy.position_size
col = time == newday + 86400000 and showday ? blue : showbg and size > 0 ? lime : showbg and size < 0 ? red : na
bgcolor(col)

//Orders
lot = 0.0
lot := size != size[1] ? strategy.equity / close * capital / 100 : lot[1]
truetime = true
if uplevel > 0 and dnlevel > 0
    strategy.entry("Long", strategy.long, needlong ? lot : 0, stop = uplevel, when = truetime)
    strategy.entry("Close", strategy.short, needshort ? lot : 0, stop = dnlevel, when = truetime)