Cette stratégie ouvre des positions basées sur la croix d'or et la croix de la mort des moyennes mobiles, et les ensembles prennent des profits et arrêtent des pertes de manière à traverser le sol.
La stratégie est composée de quatre parties:
Système de moyenne mobile
Utilisez la croix dorée et la croix morte des moyennes mobiles pour déterminer les tendances et filtrer les chocs.
Le déménagement procure des bénéfices et arrête les pertes
Utilisez le profit et le stop-loss avec un certain pourcentage pour verrouiller les bénéfices et contrôler les risques, réalisant une gestion dynamique du capital.
Filtrage de la position
Si la position précédente est longue, le signal suivant doit être court pour ouvrir la position, en évitant la tenue unilatérale.
ATR Stop Loss
Utilisez l'ATR pour limiter la plage maximale de perte de freinage et éviter une perte de freinage excessive.
Plus précisément, la stratégie calcule d'abord la moyenne mobile, les longs sur la croix dorée et les shorts sur la croix de la mort. Après l'entrée, définissez les lignes de prise de profit et de stop-loss en mouvement avec un certain pourcentage. Si le prix touche la ligne de prise de profit, alors prenez du profit; si elle touche la ligne de stop-loss ou dépasse la plage de stop-loss ATR, alors arrêtez la perte.
Les principaux avantages de cette stratégie sont les suivants:
Haute configuration
De nombreux paramètres de la stratégie sont configurables pour que les utilisateurs puissent s'ajuster en fonction de leurs styles de trading.
Une bonne gestion des capitaux
L'adoption de l'option de prise de profit et d'arrêt des pertes et de l'option d'arrêt des pertes ATR permet de contrôler efficacement l'amplitude d'un seul arrêt des pertes et d'obtenir une excellente gestion des capitaux.
Convient pour le marché en tendance
La stratégie de la moyenne mobile elle-même est plus adaptée aux marchés à forte tendance pour filtrer efficacement les chocs.
Cette stratégie comporte également certains risques:
Une mauvaise appréciation de la tendance
Le jugement des moyennes mobiles sur les marchés complexes n'est pas parfait et des erreurs peuvent survenir.
Stop Loss excessifs
Les paramètres ATR doivent être combinés pour définir la plage de stop loss.
Risques d'ouverture à sens unique
L'activation du filtrage des positions aura une certaine incidence sur la fréquence des transactions.
Les principales orientations d'optimisation sont les suivantes:
Optimisation des paramètres
Ajuster le cycle de la moyenne mobile, les paramètres ATR, les ratios de prise de profit et de stop-loss et d'autres paramètres pour optimiser les performances de la stratégie.
Ajout d'indicateurs
Ajouter des indicateurs tels que CMF, OBV pour juger du flux de capitaux et éviter un stop loss excessif.
Combinaison avec d'autres stratégies
Combinez avec des stratégies de rupture pour suivre les tendances après la stabilisation de la tendance pour obtenir de meilleurs résultats.
En résumé, grâce au filtre moyen mobile et au profit et au stop-loss mobiles, cette stratégie réalise une gestion dynamique du capital basée sur les tendances. Elle a une grande configuration, adaptée aux investisseurs rationnels pour s'ajuster et l'utiliser selon leurs propres styles.
/*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)