
Aperçu
La stratégie est basée sur les EMA, VWAP et le volume de transactions. L’idée principale est de générer un signal d’ouverture de position lorsque le prix de clôture dépasse le VWAP et l’EMA et que le volume de transactions est supérieur au volume de transactions de la ligne K précédente.
Principe de stratégie
- Calculer les indicateurs EMA et VWAP
- Il est nécessaire de déterminer si la transaction a été effectuée dans les délais prescrits.
- Conditions d’ouverture de positions multiples: le prix de clôture est supérieur au VWAP et à l’EMA, le volume de transaction est supérieur à la ligne K précédente et le prix de clôture est supérieur au prix d’ouverture.
- Conditions d’ouverture à vide: prix de clôture inférieur au VWAP et à l’EMA, volume de transaction supérieur à la ligne K précédente et prix d’ouverture supérieur au prix de clôture.
- Conditions de placement multiples: le cours de clôture tombe en dessous du VWAP ou de l’EMA, atteint le point d’arrêt ou de perte, ou atteint l’heure de sortie indiquée.
- Conditions de placement à vide: le prix de clôture franchit le VWAP ou l’EMA, atteint le point d’arrêt ou d’arrêt de perte, ou atteint l’heure de sortie indiquée.
Avantages stratégiques
- En tenant compte des tendances des prix (EMA), de la juste valeur du marché (VWAP) et du volume des transactions, les conditions d’ouverture des positions sont plus strictes, ce qui contribue à améliorer le taux de réussite de la stratégie.
- Le stop loss et le stop-loss sont mis en place pour contrôler les risques et bloquer les bénéfices.
- Il a limité les heures de négociation et les heures de sortie, évitant ainsi les risques de non-transaction et de nuit.
Risque stratégique
- Cette stratégie peut ne pas fonctionner correctement dans un marché instable, car des ruptures et des retraits fréquents peuvent conduire à des ouvertures et des retraits multiples, augmentant ainsi les coûts de transaction et les points de glissement.
- Les points de stop sont fixes et peuvent être déclenchés à l’avance en cas de fortes fluctuations, ce qui entraîne des pertes plus importantes pour la stratégie.
- Cette stratégie ne prend pas en compte la profondeur réelle du marché et la situation de la délégation, ce qui peut entraîner des problèmes tels que des points de glissement et des défaillances de position dans les transactions en direct.
Orientation de l’optimisation de la stratégie
- L’ajout de conditions de filtrage supplémentaires, telles que l’ATR, le RSI et d’autres indicateurs, peut être envisagé pour confirmer davantage la tendance et la force de la dynamique.
- Les points d’arrêt et d’arrêt peuvent être configurés de manière dynamique, comme suivre l’ATR ou le pourcentage d’arrêt, pour s’adapter à différentes fluctuations du marché.
- Les paramètres tels que la longueur EMA, la source VWAP, le point d’arrêt des pertes peuvent être optimisés pour améliorer la stabilité et la rentabilité de la stratégie.
- On peut envisager d’inclure la gestion des positions, comme l’ajustement du volume des positions en fonction de la volatilité ou du pourcentage de fonds, pour contrôler le risque global.
Résumer
La stratégie prend en compte les tendances des prix, la juste valeur du marché et le volume des transactions, et les transactions sont effectuées pendant une période donnée. Bien que le stop loss et le temps de négociation soient définis, les risques tels que les marchés de choc et les points de glissement doivent être pris en compte dans la pratique.
Code source de la stratégie
/*backtest
start: 2024-04-27 00:00:00
end: 2024-04-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA, VWAP, Volume Strategy", overlay=true, process_orders_on_close=true)
// Inputs
emaLength = input.int(21, title="EMA Length")
vwapSource = input.source(defval=hlc3, title='VWAP Source')
stopLossPoints = input.float(100, title="Stop Loss (points)")
targetPoints = input.float(200, title="Target (points)")
session = input("0950-1430", title='Only take entry during')
exit = input(defval='1515-1525', title='Exit Trade')
tradein = not na(time(timeframe.period, session))
exit_time = not na(time(timeframe.period, exit))
// Calculate indicators
ema = ta.ema(close, emaLength)
vwapValue = ta.vwap(vwapSource)
// Entry Conditions
longCondition = close > vwapValue and close > ema and volume > volume[1] and close > open and tradein
shortCondition = close < vwapValue and close < ema and volume > volume[1] and open > close and tradein
// Exit Conditions
longExitCondition = ta.crossunder(close, vwapValue) or ta.crossunder(close, ema) or close - strategy.position_avg_price >= targetPoints or close - strategy.position_avg_price <= -stopLossPoints or exit_time
shortExitCondition = ta.crossover(close, vwapValue) or ta.crossover(close, ema) or strategy.position_avg_price - close >= targetPoints or strategy.position_avg_price - close <= -stopLossPoints or exit_time
// Plotting
plot(vwapValue, color=color.blue, title="VWAP")
plot(ema, color=color.green, title="EMA")
// Strategy
if longCondition
strategy.entry("Long", strategy.long)
if shortCondition
strategy.entry("Short", strategy.short)
if longExitCondition
strategy.close('Long', immediately=true)
if shortExitCondition
strategy.close("Short", immediately=true)