Stratégie SMA et PSAR pour les opérations au comptant

Auteur:ChaoZhang est là., Date: 2023-12-18 à 10h31
Les étiquettes:

img

Résumé

Cette stratégie est appelée SMA et PSAR Spot Trading Strategy. Elle combine les avantages de la moyenne mobile simple (SMA) et du SAR parabolique (PSAR) pour déterminer la direction de la tendance du marché et générer des signaux de trading.

La logique de la stratégie

La stratégie utilise un SMA de 100 périodes pour déterminer la direction générale de la tendance. Lorsque le prix de clôture traverse le SMA 100 vers le haut, il est défini comme une tendance à la hausse. Lorsque le prix de clôture traverse le SMA 100 vers le bas, il est défini comme une tendance à la baisse.

Dans le même temps, l'indicateur PSAR est calculé pour déterminer les points d'entrée détaillés. La valeur initiale de PSAR est fixée à 0,02, la valeur d'augmentation est de 0,01, et la valeur maximale est de 0,2.

En résumé, lorsqu'il est jugé comme une tendance à la hausse, si le PSAR est inférieur au prix de clôture, un signal d'achat est généré.

Pour réduire le risque de négociation, la stratégie définit également des délais de sortie pour fermer les positions après 5 minutes.

Analyse des avantages

Cette stratégie combine les indicateurs SMA et PSAR pour déterminer les tendances et les points d'entrée, ce qui peut utiliser efficacement les avantages des deux indicateurs pour améliorer la précision des décisions.

En outre, la définition des délais de sortie permet de contrôler les risques des transactions individuelles et d'éviter des pertes excessives.

Analyse des risques

  • La SMA et le PSAR peuvent générer des signaux incorrects, entraînant des pertes de négociation inutiles.

  • L'heure de sortie est courte, il se peut qu'elle ne capture pas pleinement les mouvements de tendance.

  • Les paramètres (par exemple la période SMA, les paramètres PSAR, etc.) peuvent ne pas convenir à certains produits spécifiques, nécessitant une optimisation.

  • Les conditions du marché changent dans le trading en direct, la performance de la stratégie peut ne pas être aussi bonne que le backtest.

Directions d'optimisation

  • Testez différents paramètres de la période SMA pour trouver des valeurs plus appropriées pour des produits spécifiques.

  • Testez et optimisez les paramètres du PSAR pour qu'il juge plus précisément les entrées détaillées.

  • Prolongez les paramètres de sortie en augmentant le temps de détention en fonction de la prémisse de profits suffisants.

  • Ajouter des stratégies de stop loss pour mieux contrôler la perte maximale par transaction.

Conclusion

Cette stratégie utilise de manière complète des indicateurs tels que SMA et PSAR pour déterminer les tendances du marché et les points d'entrée, ce qui est stable et fiable, adapté à la plupart des environnements du marché.


/*backtest
start: 2023-12-10 00:00:00
end: 2023-12-17 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="SMA and Parabolic SAR Strategy with Time-Based Exit", shorttitle="SMA+PSAR", overlay=true)

// Define the parameters for the Parabolic SAR
psarStart = 0.02
psarIncrement = 0.01
psarMax = 0.2

// Calculate the 100-period SMA
sma100 = sma(close, 1000)

// Calculate the Parabolic SAR
sar = sar(psarStart, psarIncrement, psarMax)

// Determine the trend direction
isUpTrend = close < sma100

// Buy condition: Up trend and SAR below price
buyCondition = isUpTrend and sar < close

// Sell condition: Down trend and SAR above price
sellCondition = not isUpTrend and sar > close

// Plot the SMA and Parabolic SAR
plot(sma100, color=color.blue, title="100-period SMA")
plot(sar, color=color.red, title="Parabolic SAR")

// Plot buy and sell signals
plotshape(series=buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=sellCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)

// Strategy entry
strategy.entry("Buy", strategy.long, when = buyCondition)

// Time-based exit after 5 minutes
strategy.exit("Close Buy", from_entry = "Buy", when = time[0] > timestamp(year, month, dayofmonth, hour, minute + 5))

strategy.entry("Sell", strategy.short, when = sellCondition)

// Time-based exit after 5 minutes
strategy.exit("Close Sell", from_entry = "Sell", when = time[0] > timestamp(year, month, dayofmonth, hour, minute + 5))


Plus de