Il s’agit d’une stratégie de négociation quantitative combinant une rupture des hauts et des bas du jour et une tendance EMA à plusieurs périodes. La stratégie consiste principalement à surveiller la rupture des prix par rapport aux hauts et bas de la journée précédente, en combinaison avec la moyenne EMA et l’indicateur des flux de capitaux (CMF) pour déterminer le moment de la transaction. La stratégie utilise à la fois la moyenne EMA à 200 périodes sur les deux périodes de l’heure et du jour, afin d’améliorer la précision des transactions grâce à la vérification de plusieurs indicateurs techniques.
La logique fondamentale de la stratégie comprend les éléments clés suivants :
Les règles de transaction sont les suivantes: Conditions multiples: le prix atteint le sommet de la veille + le prix de clôture est au-dessus de l’EMA + le CMF est positif Conditions de dépréciation: prix au-dessous du jour précédent + prix de clôture en dessous de l’EMA + CMF négatif Conditions de placement: le cours de la position en cours de négociation est inférieur à l’EMA et le cours de la position en cours de négociation est supérieur à l’EMA
Suggestions de contrôle des risques :
Il s’agit d’un système de négociation complet qui combine plusieurs indicateurs techniques et une analyse de plusieurs périodes de temps. La stratégie recherche des opportunités de négociation grâce à une analyse intégrée des hauts et des bas de la journée, des tendances de la moyenne et des flux de fonds. Bien qu’il y ait un certain risque, la stratégie présente une bonne valeur d’application grâce à un contrôle raisonnable des risques et à une amélioration continue de l’optimisation.
/*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")