
Aperçu
La stratégie utilise le croisement de la ligne moyenne double EMA comme signal de transaction, avec un cycle de ligne rapide de 65 et un cycle de ligne lente de 240. En utilisant le volume de transaction comme condition de filtrage, la transaction n’est effectuée que si le volume de transaction actuel est supérieur au seuil spécifié. La stratégie définit un montant de risque fixe pour chaque transaction (10 $) et calcule dynamiquement la taille de la position en fonction du montant de risque.
Principe de stratégie
- Calculez deux EMA moyennes dont la ligne rapide a un cycle de 65 et la ligne lente un cycle de 240.
- Déterminez si une croisade haussière ou une croisade baissière a lieu.
- Définissez un seuil de volume (<< volume_threshold >) et ne négociez que si le volume actuel est supérieur à ce seuil.
- Pour chaque transaction, un montant de risque fixe (risk_per_trade) est fixé à 10 $.
- La taille de la position est calculée en fonction du montant du risque et de la distance de stop-loss.
- Lorsqu’un croisement de plusieurs têtes se produit et que le volume de transaction est satisfaisant, ouvrez plus de positions, le stop loss est réglé à 100 \( en dessous du prix d'ouverture et le stop loss est réglé à 1500 \) au-dessus du prix d’ouverture.
- Lorsque le croisement de la tête vide se produit et que le volume de transaction est satisfaisant, la position est ouverte, le stop loss est réglé à 100 \( au-dessus du prix d'ouverture et le stop loss est réglé à 1500 \) au-dessous du prix d’ouverture.
Avantages stratégiques
- Les croisements bi-homogènes permettent de mieux saisir les tendances du marché, tandis que les combinaisons cycliques 65⁄240 permettent de filtrer la plupart du bruit et de se concentrer uniquement sur les principales tendances.
- L’introduction de conditions de filtrage du volume de transactions permet d’éviter de négocier lorsque le volume de transactions est faible et de réduire le risque de fluctuation du marché.
- La gestion de position avec un montant de risque fixe permet de contrôler efficacement la marge de risque de chaque transaction et d’éviter des pertes excessives pour une seule transaction.
- Les paramètres d’arrêt et d’arrêt dynamiques basés sur la distance du prix permettent de laisser plus d’espace de profit que d’espace de perte, améliorant ainsi la performance à long terme de la stratégie.
- Il s’applique aux variétés très volatiles telles que BTC/USD, capables de saisir pleinement les opportunités d’investissement créées par leur volatilité.
Risque stratégique
- L’EMA, en tant qu’indicateur de suivi de la tendance, a des problèmes de retard lors du renversement de la tendance, ce qui peut entraîner des retards d’entrée ou de sortie.
- Les montants à risque fixes peuvent ne pas s’adapter dynamiquement aux fluctuations du marché et se déprécier dans des situations extrêmes (comme la chute d’une tempête).
- La définition d’une limite de livraison est subjective, et une mauvaise définition de la limite peut affecter l’efficacité de la stratégie.
- Les paramètres fixes de stop loss et de stop loss peuvent ne pas correspondre à l’amplitude de fluctuation réelle du marché, ce qui entraîne des stop loss ou des stop-out fréquents.
- Les stratégies peuvent mal fonctionner en cas de choc, et les croisements fréquents peuvent entraîner des transactions perdantes.
Orientation de l’optimisation de la stratégie
- Envisagez d’introduire plus de groupes homogènes comme conditions de filtrage, par exemple en ajoutant des homogènes intermédiaires et en construisant des systèmes multigènes pour améliorer la fiabilité du signal.
- Optimisation de la gestion des positions, par exemple en utilisant la méthode du risque en pourcentage ou la formule de Kelly pour ajuster dynamiquement les positions en fonction des différentes conditions du marché.
- Optimiser les paramètres de la barre de volume de transaction pour trouver le meilleur réglage de la barre de volume pour améliorer la stabilité de la stratégie.
- Optimisation des paramètres de stop loss et de stop loss, adaptation en temps réel en fonction des dernières fluctuations du marché et flexibilité accrue pour s’adapter au marché.
- L’ajout d’éléments de couverture dans la méthode tendancielle, tels que des indicateurs de contre-tendance comme les PSAR, améliore la résilience des marchés aux chocs.
Résumer
La stratégie utilise le croisement 65⁄240 de la double ligne de la même valeur comme base de jugement de la tendance, tout en combinant les conditions de filtrage de la quantité de trafic pour améliorer la fiabilité du signal. La gestion de la position à risque fixe et le paramètre de stop loss à prix fixe peuvent contrôler le risque dans une certaine mesure et incliner les pertes et les pertes. Cependant, la stratégie présente également des problèmes de prise de tendance relative au retard, d’insuffisance à la flexibilité de la gestion de la position, d’un manque d’ajustement dynamique des stop loss.
Code source de la stratégie
/*backtest
start: 2024-05-06 00:00:00
end: 2024-05-13 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA Crossover Strategy with 1:3 RR, Volume Filter, and Custom Stop Loss/Take Profit (BTC)", overlay=true, currency="USD", initial_capital=100)
// Define EMA lengths
ema_length_fast = 65
ema_length_slow = 240
// Calculate EMAs
ema_fast = ta.ema(close, ema_length_fast)
ema_slow = ta.ema(close, ema_length_slow)
// Define crossover conditions
bullish_crossover = ta.crossover(ema_fast, ema_slow)
bearish_crossover = ta.crossunder(ema_fast, ema_slow)
// Plot EMAs
plot(ema_fast, color=color.blue, title="Fast EMA")
plot(ema_slow, color=color.red, title="Slow EMA")
// Define volume filter
volume_threshold = 1000 // Adjust as needed
// Define risk amount per trade
risk_per_trade = 0.5 // $10 USD
// Calculate position size based on risk amount
stop_loss_distance = 100
take_profit_distance = 1500
position_size = risk_per_trade / syminfo.mintick / stop_loss_distance
// Execute trades based on crossovers and volume filter
if (bullish_crossover and volume > volume_threshold)
strategy.entry("Buy", strategy.long, qty=position_size)
strategy.exit("Exit", "Buy", stop=close - stop_loss_distance, limit=close + take_profit_distance)
if (bearish_crossover and volume > volume_threshold)
strategy.entry("Sell", strategy.short, qty=position_size)
strategy.exit("Exit", "Sell", stop=close + stop_loss_distance, limit=close - take_profit_distance)