Il s'agit d'une stratégie de trading quantitative qui combine des écarts quotidiens élevés et bas avec des tendances EMA sur plusieurs délais. La stratégie identifie principalement les opportunités de trading en surveillant les écarts de prix des niveaux élevés et bas de la journée précédente, combinés aux tendances EMA et à l'indicateur Chaikin Money Flow (CMF).
La logique de base comprend les éléments clés suivants:
Règles commerciales spécifiques: Entrée longue: les prix dépassent les sommets de la journée précédente + Fermeture au-dessus de la EMA + CMF positif Entrée courte: les prix dépassent le plus bas de la journée précédente + Fermeture inférieure à la EMA + CMF négatif Exit: Traversez sous la EMA pour les longs, traversez au-dessus de la EMA pour les courts
Suggestions pour le contrôle des risques:
Il s'agit d'un système de trading complet combinant plusieurs indicateurs techniques et une analyse multi-temporelle. La stratégie recherche des opportunités de trading grâce à une analyse complète des ruptures intraday, des tendances moyennes mobiles et du flux de trésorerie.
/*backtest start: 2024-10-28 00:00:00 end: 2024-11-27 00:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title='The security Daily HIGH/LOW strategy', overlay=true, initial_capital=10000, calc_on_every_tick=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.1) // General Inputs len = input.int(24, minval=1, title='Length MA', group='Optimization parameters') src = input.source(close, title='Source MA', group='Optimization parameters') out = ta.ema(src, len) length = input.int(20, minval=1, title='CMF Length', group='Optimization parameters') ad = close == high and close == low or high == low ? 0 : (2 * close - low - high) / (high - low) * volume mf = math.sum(ad, length) / math.sum(volume, length) // Function to get daily high and low f_secureSecurity(_symbol, _res, _src) => request.security(_symbol, _res, _src[1], lookahead=barmerge.lookahead_on) pricehigh = f_secureSecurity(syminfo.tickerid, 'D', high) pricelow = f_secureSecurity(syminfo.tickerid, 'D', low) // Plotting previous daily high and low plot(pricehigh, title='Previous Daily High', style=plot.style_linebr, linewidth=2, color=color.new(color.white, 0)) plot(pricelow, title='Previous Daily Low', style=plot.style_linebr, linewidth=2, color=color.new(color.white, 0)) // Entry Conditions short = ta.crossunder(low, pricelow) and close < out and mf < 0 long = ta.crossover(high, pricehigh) and close > out and mf > 0 if short and barstate.isconfirmed strategy.entry('short', strategy.short, stop=pricelow[1]) strategy.close('short', when=close > out) if long and barstate.isconfirmed strategy.entry('long', strategy.long, stop=pricehigh[1]) strategy.close('long', when=close < out) // 200 EMA on 1-hour timeframe ema_200 = ta.ema(close, 200) ema_200_1h = request.security(syminfo.tickerid, "60", ta.ema(close, 200)) plot(ema_200_1h, color=color.purple, title="200 EMA (1H)") plot(ema_200, color=color.white, title="200 EMA")