Stratégie de stop-profit et de stop-loss en scie basée sur la moyenne mobile et la moyenne mobile


Date de création: 2023-12-21 12:26:18 Dernière modification: 2023-12-21 12:26:18
Copier: 0 Nombre de clics: 625
1
Suivre
1623
Abonnés

Stratégie de stop-profit et de stop-loss en scie basée sur la moyenne mobile et la moyenne mobile

Aperçu

Cette stratégie est basée sur la ligne moyenne et les moyennes mobiles pour les positions d’ouverture de forks et de forks, et utilise un système de stop-loss en utilisant un stop-loss. Ses principales caractéristiques sont les suivantes:

  1. Filtrez les tremblements de terre à l’aide d’un système linéaire
  2. La gestion dynamique des fonds grâce à un arrêt-stop mobile
  3. Filtre de position configurable pour éviter les ouvertures de position unilatérales

Principe de stratégie

La stratégie est principalement composée de quatre volets:

  1. Système homogène

Les tendances sont évaluées à l’aide d’une croix dorée et d’une fourchette morte, et les chocs sont filtrés.

  1. Arrêt de la suspension mobile

Utilisez un certain pourcentage de stop-loss mobile pour verrouiller les bénéfices et contrôler les risques, pour une gestion dynamique des fonds.

  1. Filtrage des positions

Il est possible de configurer si le filtrage des positions doit être activé. Si la position précédente est une position à plusieurs têtes, le signal suivant doit être vide pour pouvoir ouvrir la position, afin d’éviter une position unilatérale.

  1. Arrêt ATR

Utilisez l’ATR pour limiter la portée maximale de votre stop loss et éviter une surperformance.

Plus précisément, la stratégie consiste à calculer d’abord la ligne moyenne et à faire plus lorsque la ligne égale apparaît en croisement doré, et à faire vide lorsque la fourche est morte. Après l’entrée, un arrêt mobile et une ligne de stop-loss sont mis en place dans une certaine proportion. Si le prix touche la ligne de stop-loss, il s’arrête.

Avantages stratégiques

Les principaux avantages de cette stratégie sont les suivants:

  1. Configurable et puissant

La plupart des paramètres de la stratégie sont configurables et peuvent être modifiés en fonction de votre style de trading.

  1. Une bonne gestion des fonds

L’utilisation d’un stop-loss mobile et d’un stop-loss ATR permet de contrôler efficacement l’amplitude d’un seul stop-loss et de réaliser une excellente gestion des fonds.

  1. Pour les marchés en tendance

La stratégie de la ligne moyenne est elle-même plus adaptée aux marchés à forte tendance et permet de filtrer efficacement les chocs.

Risques et contre-mesures

Cette stratégie comporte également des risques, principalement:

  1. Une mauvaise évaluation des tendances

La moyenne n’est pas parfaite en elle-même pour juger de situations complexes, ce qui peut entraîner des erreurs de jugement. Les paramètres de la moyenne doivent être ajustés de manière appropriée ou combinés avec d’autres indicateurs.

  1. La prévention est trop radicale

Le stop mobile peut être annulé lors d’une secousse et doit être combiné avec le paramètre ATR pour définir la plage de stop.

  1. Risques liés à l’ouverture d’une position unilatérale

L’ouverture d’un filtrage de position peut avoir un impact sur la fréquence des transactions et peut entraîner des risques supplémentaires en détenant une position unilatérale pendant une longue période.

Orientation de l’optimisation de la stratégie

Les principaux axes d’optimisation de cette stratégie sont:

  1. Optimisation des paramètres

Ajustez les paramètres tels que le nombre de périodes de ligne moyenne, les paramètres ATR et le taux de stop loss pour optimiser l’efficacité de la stratégie.

  1. Ajout d’indicateurs

Ajout d’indicateurs tels que CMF et OBV pour juger de l’orientation des fonds et éviter les pertes excessives.

  1. Combiner avec d’autres stratégies

Le suivi de la tendance après sa stabilisation, combiné à des stratégies telles que la rupture, est plus efficace.

Résumer

Cette stratégie permet une gestion dynamique des fonds basée sur la tendance grâce à un filtrage uniforme et à un arrêt de perte mobile. Elle est configurable et utilisable par les investisseurs raisonnables selon leur propre style. En tant que stratégie quantifiée généralisée, il y a beaucoup de possibilités d’optimisation et mérite une étude approfondie.

Code source de la stratégie
/*backtest
start: 2023-11-20 00:00:00
end: 2023-12-11 00:00:00
period: 1h
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/
// © MGULHANN

//@version=5

//İchimoku Leading Span 2 Hesaplaması ve Girişleri
strategy("Stairs Gain Strategy - MG", overlay=true, margin_long=100, margin_short=100)
laggingSpan2Periods = input.int(52, minval=1, title="Leading Periot")
displacement = input.int(1, minval=1, title="Displacement")
donchian(len) => math.avg(ta.lowest(len), ta.highest(len))
leadLine2 = donchian(laggingSpan2Periods)
p2 = plot(leadLine2, offset = displacement - 1, color=#EF9A9A,
	 title="Leading Span B")

// İşlem Tekrarını Filtrele	 
filtreUygula = input.bool(true,title="Pozisyon Sıra Filtresi Uygula")

//Kar Al / Zarar Durdur Seviyeleri Girişleri
zararDurdurmaYuzde = input.float(1.0, title='Zarar Durdurma %', step=0.01) / 100
karAlmaYuzde = input.float(2.0, title='Kar Alma %', step=0.01) / 100

//ATR Hesaplaması
atrCarpani = input.float(0.3, title="ATR Çarpanı", step= 0.01)
atrDegeri = ta.atr(14) * atrCarpani

//ATR Değer Girişleri
atrbuyukdeger = input.float(0.01, title="ATR Üst Limit", step=0.01)
atrkucukdeger = input.float(0.06, title="ATR Alt Limit", step=0.01)

//Buy ve Sell Şartları
buycross =   ta.crossover(close,leadLine2[displacement-1]) ? atrDegeri > atrbuyukdeger : strategy.position_size == 0
sellcross = ta.crossover(leadLine2[displacement-1],close) ? atrDegeri < atrkucukdeger : strategy.position_size == 0

//KONTROL
var sonPozisyonYonu = 0
//Son kapanan pozisyon long ise degiskenin degerini 1 olarak ata
if strategy.position_size[1] > 0 and strategy.position_size == 0
    sonPozisyonYonu := 1

//Son kapanan pozisyon short ise degiskenin degerini -1 olarak ata
if strategy.position_size[1] < 0 and strategy.position_size == 0
    sonPozisyonYonu := -1
    
//eger filtre uygulama seçiliyse ve son pozisyon yönü long ise 'longFiltreSonuc' degiskenine false degeri ata ve bir sonraki pozisyonun long olmasını engelle
longFiltreSonuc = filtreUygula ? sonPozisyonYonu == 1 ? false : true : true

//eger filtre uygulama seçiliyse ve son pozisyon yönü short ise 'shortFiltreSonuc' degiskenine false degeri ata ve bir sonraki pozisyonun short olmasını engelle
shortFiltreSonuc = filtreUygula ? sonPozisyonYonu == -1 ? false : true : true

//LONG GİRİŞ
strategy.entry("Long", strategy.long, when=buycross and longFiltreSonuc)
longKarAl = strategy.position_avg_price * (1 + karAlmaYuzde)
longZararDurdur = strategy.position_avg_price * (1 - zararDurdurmaYuzde)
strategy.exit("Long Exit","Long",limit=longKarAl, stop=longZararDurdur)

//SHORT GİRİŞ
strategy.entry("Short", strategy.short, when=sellcross and shortFiltreSonuc)
shortKarAl = strategy.position_avg_price * (1 - karAlmaYuzde)
shortZararDurdur = strategy.position_avg_price * (1 + zararDurdurmaYuzde)
strategy.exit("Short Exit","Short",limit=shortKarAl, stop=shortZararDurdur)

//Kar Al ve Zarar Durdur Seviyelerinin Grafikte İşaretlenmesi
plot(strategy.position_size != 0 ? strategy.position_avg_price : na, color=color.navy, linewidth=2, style=plot.style_linebr, title="İşleme Giriş Seviyesi")
plot(strategy.position_size > 0 ? longKarAl : na, color=color.green, linewidth=2, style=plot.style_linebr, title="Long Kar Alım Seviyesi")
plot(strategy.position_size > 0 ? longZararDurdur : na, color=color.red, linewidth=2, style=plot.style_linebr, title="Long Zarar Durdurma Seviyesi")
plot(strategy.position_size < 0 ? shortKarAl : na, color=color.green, linewidth=2, style=plot.style_linebr, title="Short Kar Alım Seviyesi")
plot(strategy.position_size < 0 ? shortZararDurdur : na, color=color.red, linewidth=2, style=plot.style_linebr, title="Short Zarar Durdurma Seviyesi")

//plotshape(buycross,size=size.small,style=shape.labelup,location=location.belowbar,color=color.green,text="Al", offset = displacement-1, textcolor=color.white)
//plotshape(sellcross,size=size.small,style=shape.labeldown,location=location.abovebar,color=color.red,text="Sat", offset = displacement-1, textcolor=color.white)