Stratégie de swing trading Momentum


Date de création: 2023-11-21 16:57:07 Dernière modification: 2023-11-21 16:57:20
Copier: 1 Nombre de clics: 564
1
Suivre
1617
Abonnés

Stratégie de swing trading Momentum

Aperçu

Cette stratégie est basée sur un indicateur de la ceinture de Brin, combiné à un indicateur de dynamisme, une stratégie de négociation combinée pour réaliser une reprise de la ceinture de Brin et une rupture de dynamisme. Faites un gain lorsque le prix franchit la ligne médiane en dessous de la ceinture de Brin, faites une perte lorsque le prix franchit la ligne médiane en haut de la ceinture de Brin, et suivez les arrêts de perte et les arrêts de perte.

Principe de stratégie

Cette stratégie utilise la moyenne de la bande de Brynsma comme indicateur de la moyenne, la bande passante par le paramètre mult*stdev est un ajustement dynamique. Lorsque le prix franchit la ligne médiane en dessous, cela indique que le prix prend une action à la hausse, c’est-à-dire un plus; lorsque le prix franchit la ligne médiane en haut, cela indique que le prix prend une action à la baisse, c’est-à-dire un moins.

Plus précisément, le calcul de la bande de Brin est effectué à l’aide de deux paramètres, length et mult, dont la longueur détermine le cycle de la ligne médiane, et mult détermine la taille de la bande passante. EnterLong et enterShort déterminent le moment de la percée, tandis que exitLong et exitShort calculent le prix de l’arrêt de perte en fonction du prix d’entrée et du ratio de stop loss de la cible.

Avantages stratégiques

Cette stratégie, combinant une régression de la moyenne et un indicateur de dynamique, permet de capturer une plus grande dynamique au début d’une tendance. Par rapport à la simple traçabilité de la moyenne, un jugement de dynamique basé sur la bande passante de Brin est ajouté, ce qui permet de filtrer certaines fausses ruptures. Le paramètre de stop-loss est directement basé sur le calcul du prix d’entrée, sans intervention humaine.

Risque stratégique

  • Le prix de la bande de Brin a été retardé et peut-être partiellement dépassé.
  • Les réglages de stop-loss trop laxistes augmentent le risque de pertes
  • Les signaux d’annulation peuvent être mal reçus dans les transactions à plusieurs têtes

L’optimisation peut être effectuée en ajustant le cycle de la ligne médiane de Brin, les paramètres de bande passante et le périmètre d’arrêt, afin de rendre la stratégie plus adaptée aux différentes conditions du marché.

Optimisation de la stratégie

  • Ajout d’indicateurs de volume ou de volatilité pour éviter de fausses ruptures à faible volume
  • paramétrage de l’optimisation de la longueur du cycle de Boolean, du coefficient de largeur, de l’amplitude de stop-loss
  • Faire seulement plus ou faire seulement moins à un certain stade du marché
  • Un modèle d’apprentissage automatique pour déterminer la direction des tendances

Résumer

Cette stratégie intègre les avantages de la régression de la courbe de Brin et de l’indicateur de dynamique, permet de capturer une partie de la tendance au début de la tendance, peut s’adapter à différents stades du marché par un ajustement des paramètres, est un système de percée plus général. Le paramétrage de stop loss peut être directement calculé à partir du prix et réduit l’intervention humaine. Il y a également de la place pour des améliorations, telles que l’ajout de plus d’indicateurs de jugement auxiliaires, qui seront encore améliorées dans la recherche et l’optimisation ultérieures.

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

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

// Входные параметры
length = input(20, minval=1, title="Length")
mult = input(2.0, minval=0.1, maxval=5, title="Multiplier")
target_percent = input(0.5, minval=0.1, title="Target Percent")
stop_loss_percent = input(95, minval=0.1, title="Stop Loss Percent")

// Расчет полос Боллинджера
basis = sma(close, length)
dev = mult * stdev(close, length)
upper = basis + dev
lower = basis - dev

// Переворот снизу вверх через среднюю линию Боллинджера для открытия лонга
enterLong = cross(close, basis) and close[1] < basis[1]

// Переворот сверху вниз через среднюю линию Боллинджера для открытия шорта
enterShort = cross(basis, close) and close[1] > basis[1]

// Закрытие лонга после роста цены на указанный процент или падения на указанный процент
exitLong = close >= strategy.position_avg_price * (1 + (target_percent / 100)) or close <= strategy.position_avg_price * (1 - (stop_loss_percent / 100))

// Закрытие шорта после падения цены на указанный процент или роста на указанный процент
exitShort = close <= strategy.position_avg_price * (1 - (target_percent / 100)) or close >= strategy.position_avg_price * (1 + (stop_loss_percent / 100))

// Управление позициями и ограничениями на открытие противоположных позиций
strategy.entry("Long", strategy.long, when = enterLong and strategy.position_size == 0)
strategy.entry("Short", strategy.short, when = enterShort and strategy.position_size == 0)

strategy.close("Long", when = exitLong)
strategy.close("Short", when = exitShort)

// Визуализация полос Боллинджера
plot(basis, color=color.blue, title="Basis")
plot(upper, color=color.red, title="Upper")
plot(lower, color=color.green, title="Lower")