Tendance du système SMA à la suite de la stratégie

Auteur:ChaoZhang est là., Date: le 23 février 2024 à 12 h 29 min 51 s
Les étiquettes:

img

Résumé

L'idée principale est de construire des signaux de trading basés sur les lignes SMA avec différentes longueurs de paramètres et d'entrer sur le marché au point de rupture, avec un mécanisme de stop loss pour contrôler le risque.

Principe de stratégie

La stratégie utilise deux lignes SMA, SMA1 et SMA2. La longueur de SMA1 est de 1 et la longueur de SMA2 est de 3. En calculant ces deux lignes SMA, lorsque SMA1 traverse au-dessus de SMA2, un signal d'achat est généré. Lorsque SMA1 traverse au-dessous de SMA2, un signal de vente est généré. Cela vise à capturer la tendance du prix.

Plus précisément, la stratégie juge la relation croisée entre les lignes SMA à travers les fonctions ta.crossover et ta.crossunder, générant les variables booléennes longCondition et shortCondition. Lorsque longCondition est vrai, un signal d'achat est généré. Lorsque shortCondition est vrai, un signal de vente est généré. La stratégie entrera sur le marché au point de signal et mettra à jour les variables profitAccumulated et lastTradeProfit pour suivre les profits accumulés.

Pour le contrôle des risques, la stratégie définit également un mécanisme de stop loss basé sur des points fixes.

Analyse des avantages

Le plus grand avantage de cette stratégie est qu'elle utilise la capacité de suivi des tendances des lignes SMA pour capturer efficacement les changements dans les tendances des prix.

Analyse des risques

Le principal risque de cette stratégie est que la stratégie de moyenne mobile a tendance à générer de faux signaux. Lorsque le prix oscille, la ligne SMA peut fréquemment être traversée, ce qui entraîne des signaux de trading inutiles. À ce stade, de grandes pertes peuvent survenir sans stop loss efficace.

Directions d'optimisation

La stratégie peut être optimisée dans les aspects suivants:

  1. Ajustez les paramètres SMA pour trouver la meilleure combinaison de longueurs moyennes mobiles par backtesting.

  2. Augmenter les conditions de filtrage et fixer les conditions de rupture des prix près du point de croisement de la moyenne mobile pour éviter de faux signaux.

  3. Il est possible de tester différents types de méthodes d'arrêt des pertes, telles que le stop loss mobile, le stop loss des ordres en attente, etc.

  4. Ajouter le contrôle de la taille de la position pour optimiser l'efficacité de l'utilisation du capital.

Conclusion

Dans l'ensemble, il s'agit d'une stratégie de suivi de tendance typique. Elle utilise la relation de rupture entre les lignes SMA pour déterminer la direction de la tendance des prix et entrer au tournant de la tendance. Dans le même temps, la stratégie a une fonction de stop loss fixe pour contrôler les risques. La stratégie est simple, facile à comprendre, mais nécessite encore des tests et une optimisation approfondis avant de réaliser des profits stables dans le trading réel.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © cesarpieres72

//@version=5
strategy("Estrategia SMA y Ganancias Acumuladas con Stop Loss", shorttitle="SMA_Ganancias", overlay=true)

// Definir las variables de las medias móviles
sma1_length = input(1, title="SMA 1 Longitud")
sma2_length = input(3, title="SMA 2 Longitud")

// Calcular las medias móviles
sma1 = ta.sma(close, sma1_length)
sma2 = ta.sma(close, sma2_length)

// Condiciones para las señales de compra y venta
longCondition = ta.crossover(sma1, sma2)
shortCondition = ta.crossunder(sma1, sma2)

// Acumular las ganancias
var float profitAccumulated = 0.0
var float lastTradeProfit = na

if (longCondition)
    strategy.entry("Buy", strategy.long)
    lastTradeProfit := strategy.netprofit - (profitAccumulated + lastTradeProfit)
    profitAccumulated := strategy.netprofit

if (shortCondition)
    strategy.entry("Sell", strategy.short)
    lastTradeProfit := strategy.netprofit - (profitAccumulated + lastTradeProfit)
    profitAccumulated := strategy.netprofit

// Mostrar las señales en el gráfico
plot(sma1, color=color.blue, title="SMA 1")
plot(sma2, color=color.red, title="SMA 2")

// Añadir stop loss
stopLossPips = input(5000, title="Stop Loss (en pips)")
stopLossPrice = strategy.position_avg_price * (1 - stopLossPips * syminfo.mintick)
strategy.exit("SL", "Buy", stop=stopLossPrice)


Plus de