Cette stratégie utilise d'abord les lignes doubles de moyenne mobile de l'EMA à 2 périodes et à 20 périodes pour déterminer si le prix franchit les moyennes mobiles, comme critère de base pour entrer sur le marché.
Indicateur de moyenne mobile double
Indicateur de l' équilibre des forces du taureau et de l' ours
L'évaluation combinée des deux indicateurs
Le plus grand avantage de cette stratégie combinée est d'intégrer des indicateurs de différentes variétés pour obtenir un jugement commercial plus fiable.
Il convient de noter certains risques liés à cette stratégie:
Les contre-mesures:
La stratégie peut être encore optimisée dans les aspects suivants:
Cette stratégie évalue la tendance majeure à travers un indicateur de moyenne mobile double et utilise un indicateur de balance de puissance pour aider à déterminer le moment de l'entrée. Les deux indicateurs se vérifient mutuellement et peuvent réduire efficacement la probabilité de dysfonctionnements. Les paramètres de la stratégie sont flexibles et peuvent être optimisés pour différentes variétés.
/*backtest start: 2023-01-01 00:00:00 end: 2024-01-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 23/05/2022 // This is combo strategies for get a cumulative signal. // // First strategy // This indicator plots 2/20 exponential moving average. For the Mov // Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met. // // Second strategy // This new indicator analyzes the balance between bullish and // bearish sentiment. // One can cay that it is an improved analogue of Elder Ray indicator. // To get more information please see "Bull And Bear Balance Indicator" // by Vadim Gimelfarb. // // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// EMA20(Length) => pos = 0.0 xPrice = close xXA = ta.ema(xPrice, Length) nHH = math.max(high, high[1]) nLL = math.min(low, low[1]) nXS = nLL > xXA or nHH < xXA ? nLL : nHH iff_1 = nXS < close[1] ? 1 : nz(pos[1], 0) pos := nXS > close[1] ? -1 : iff_1 pos BBB(SellLevel,BuyLevel) => pos = 0.0 value = close < open ? close[1] > open ? math.max(close - open, high - low) : high - low : close > open ? close[1] > open ? math.max(close[1] - low, high - close) : math.max(open - low, high - close) : high - close > close - low ? close[1] > open ? math.max(close[1] - open, high - low) :high - low : high - close < close - low ? close > open ? math.max(close - low, high - close) : open - low : close > open ? math.max(close[1] - open , high - close) : close[1] < open ? math.max(open - low, high - close) : high - low value2 =close < open ? close[1] < open ? math.max(high - close[1], close - low) : math.max(high - open, close - low) : close > open ? close[1] > open ? high - low : math.max(open - close[1], high - low) : high - close > close - low ? close[1] < open ? math.max(high - close[1], close - low) : high - open : high - close < close - low ? close[1] > open ? high - low : math.max(open - close, high - low) : close[1] > open ? math.max(high - open, close - low) : close[1] < open? math.max(open - close, high - low): high - low nBBB = value2 - value pos := nBBB < SellLevel ? -1 : nBBB >= BuyLevel ? 1 : nz(pos[1], 0) pos strategy(title='Combo 2/20 EMA & Bull And Bear Balance', shorttitle='Combo', overlay=true) var I1 = '●═════ 2/20 EMA ═════●' Length = input.int(14, minval=1, group=I1) var I2 = '●═════ Bull And Bear Balance ═════●' SellLevel = input.float(-15, step=0.01, group=I2) BuyLevel = input.float(15, step=0.01, group=I2) var misc = '●═════ MISC ═════●' reverse = input.bool(false, title='Trade reverse', group=misc) var timePeriodHeader = '●═════ Time Start ═════●' d = input.int(1, title='From Day', minval=1, maxval=31, group=timePeriodHeader) m = input.int(1, title='From Month', minval=1, maxval=12, group=timePeriodHeader) y = input.int(2005, title='From Year', minval=0, group=timePeriodHeader) StartTrade = time > timestamp(y, m, d, 00, 00) ? true : false posEMA20 = EMA20(Length) prePosBBB = BBB(SellLevel,BuyLevel) iff_1 = posEMA20 == -1 and prePosBBB == -1 and StartTrade ? -1 : 0 pos = posEMA20 == 1 and prePosBBB == 1 and StartTrade ? 1 : iff_1 iff_2 = reverse and pos == -1 ? 1 : pos possig = reverse and pos == 1 ? -1 : iff_2 if possig == 1 strategy.entry('Long', strategy.long) if possig == -1 strategy.entry('Short', strategy.short) if possig == 0 strategy.close_all() barcolor(possig == -1 ? #b50404 : possig == 1 ? #079605 : #0536b3)