//@version=4 study("*All Candlestick Patterns*", shorttitle = "All Patterns", overlay=true) C_DownTrend = true C_UpTrend = true var trendRule1 = "SMA50" var trendRule2 = "SMA50, SMA200" var trendRule = input(trendRule1, "Detect Trend Based On", options=[trendRule1, trendRule2, "No detection"]) if trendRule == trendRule1 priceAvg = sma(close, 50) C_DownTrend := close < priceAvg C_UpTrend := close > priceAvg if trendRule == trendRule2 sma200 = sma(close, 200) sma50 = sma(close, 50) C_DownTrend := close < sma50 and sma50 < sma200 C_UpTrend := close > sma50 and sma50 > sma200 C_Len = 14 // ema depth for bodyAvg C_ShadowPercent = 5.0 // size of shadows C_ShadowEqualsPercent = 100.0 C_DojiBodyPercent = 5.0 C_Factor = 2.0 // shows the number of times the shadow dominates the candlestick body C_BodyHi = max(close, open) C_BodyLo = min(close, open) C_Body = C_BodyHi - C_BodyLo C_BodyAvg = ema(C_Body, C_Len) C_SmallBody = C_Body < C_BodyAvg C_LongBody = C_Body > C_BodyAvg C_UpShadow = high - C_BodyHi C_DnShadow = C_BodyLo - low C_HasUpShadow = C_UpShadow > C_ShadowPercent / 100 * C_Body C_HasDnShadow = C_DnShadow > C_ShadowPercent / 100 * C_Body C_WhiteBody = open < close C_BlackBody = open > close C_Range = high-low C_IsInsideBar = C_BodyHi[1] > C_BodyHi and C_BodyLo[1] < C_BodyLo C_BodyMiddle = C_Body / 2 + C_BodyLo C_ShadowEquals = C_UpShadow == C_DnShadow or (abs(C_UpShadow - C_DnShadow) / C_DnShadow * 100) < C_ShadowEqualsPercent and (abs(C_DnShadow - C_UpShadow) / C_UpShadow * 100) < C_ShadowEqualsPercent C_IsDojiBody = C_Range > 0 and C_Body <= C_Range * C_DojiBodyPercent / 100 C_Doji = C_IsDojiBody and C_ShadowEquals patternLabelPosLow = low - (atr(30) * 0.6) patternLabelPosHigh = high + (atr(30) * 0.6) CandleType = input(title = "Pattern Type", defval="All", options=["Bullish", "Bearish", "Neutral", "All", "Except Neutral"]) language = input(title = "Language", defval="English") bullishColor = input(title="Bullish Color", type=input.color, defval=color.green) bearishColor = input(title="Bearish Color", type=input.color, defval=color.red) neutralColor = input(title="Neutral Color", type=input.color, defval=color.gray) textColor = input(title="Text Color", type=input.color, defval=color.white) labelOptions = array.new_string(1, 'none') array.push(labelOptions, 'xcross') array.push(labelOptions, 'cross') array.push(labelOptions, 'scross') array.push(labelOptions, 'scross') getLabel(name) => (name == 'none') ? label.style_none : (name == 'xcross') ? label.style_xcross : (name == 'cross') ? label.style_cross : (name == 'triangle up') ? label.style_triangleup : (name == 'triangle down') ? label.style_triangledown : (name == 'flag') ? label.style_flag : (name == 'circle') ? label.style_circle : (name == 'arrow up') ? label.style_arrowup : (name == 'arrow down') ? label.style_arrowdown : (name == 'label up') ? label.style_label_up : (name == 'label down') ? label.style_label_down : (name == 'square') ? label.style_square : label.style_diamond bullishLabel = getLabel(input(title="Bullish Label", options=['none', 'xcross', 'cross', 'triangle up', 'triangle down', 'flag', 'circle', 'arrow up', 'arrow down', 'label up', 'label down', 'square', 'diamond'], defval='label up')) bearishLabel = getLabel(input(title="Bearish Label", options=['none', 'xcross', 'cross', 'triangle up', 'triangle down', 'flag', 'circle', 'arrow up', 'arrow down', 'label up', 'label down', 'square', 'diamond'], defval='label down')) neutralLabel = getLabel(input(title="Neutral Label", options=['none', 'xcross', 'cross', 'triangle up', 'triangle down', 'flag', 'circle', 'arrow up', 'arrow down', 'label up', 'label down', 'square', 'diamond'], defval='label up')) AbandonedBabyInput = input(title = "Abandoned Baby", defval=true) DarkCloudCoverInput = input(title = "Dark Cloud Cover", defval=true) DojiInput = input(title = "Doji", defval=true) DojiStarInput = input(title = "Doji Star", defval=true) DownsideTasukiGapInput = input(title = "Downside Tasuki Gap", defval=true) DragonflyDojiInput = input(title = "Dragonfly Doji", defval=true) EngulfingInput = input(title = "Engulfing", defval=true) EveningDojiStarInput = input(title = "Evening Doji Star", defval=true) EveningStarInput = input(title = "Evening Star", defval=true) FallingThreeMethodsInput = input(title = "Falling Three Methods", defval=true) FallingWindowInput = input(title = "Falling Window", defval=true) GravestoneDojiInput = input(title = "Gravestone Doji", defval=true) HammerInput = input(title = "Hammer", defval=true) HangingManInput = input(title = "Hanging Man", defval=true) HaramiCrossInput = input(title = "Harami Cross", defval=true) HaramiInput = input(title = "Harami", defval=true) InvertedHammerInput = input(title = "Inverted Hammer", defval=true) KickingInput = input(title = "Kicking", defval=true) LongLowerShadowInput = input(title = "Long Lower Shadow", defval=true) LongUpperShadowInput = input(title = "Long Upper Shadow", defval=true) MarubozuBlackInput = input(title = "Marubozu Black", defval=true) MarubozuWhiteInput = input(title = "Marubozu White", defval=true) MorningDojiStarInput = input(title = "Morning Doji Star", defval=true) MorningStarInput = input(title = "Morning Star", defval=true) OnNeckInput = input(title = "On Neck", defval=true) PiercingInput = input(title = "Piercing", defval=true) RisingThreeMethodsInput = input(title = "Rising Three Methods", defval=true) RisingWindowInput = input(title = "Rising Window", defval=true) ShootingStarInput = input(title = "Shooting Star", defval=true) SpinningTopBlackInput = input(title = "Spinning Top Black", defval=true) SpinningTopWhiteInput = input(title = "Spinning Top White", defval=true) ThreeBlackCrowsInput = input(title = "Three Black Crows", defval=true) ThreeWhiteSoldiersInput = input(title = "Three White Soldiers", defval=true) TriStarInput = input(title = "Tri-Star", defval=true) TweezerBottomInput = input(title = "Tweezer Bottom", defval=true) TweezerTopInput = input(title = "Tweezer Top", defval=true) UpsideTasukiGapInput = input(title = "Upside Tasuki Gap", defval=true) var showBearishSignal = (CandleType =="Bearish" or CandleType == "All" or CandleType == "Except Neutral") var showBullishSignal = (CandleType =="Bullish" or CandleType == "All" or CandleType == "Except Neutral") var showNeutralSignal = (CandleType =="Neutral" or CandleType == "All") getBullishLabel(text, tooltip) => label.new(bar_index, patternLabelPosLow, text = text, style = bullishLabel, color = bullishColor, textcolor = textColor, tooltip = tooltip) getBearishLabel(text, tooltip) => label.new(bar_index, patternLabelPosHigh, text = text, style = bearishLabel, color = bearishColor, textcolor = textColor, tooltip = tooltip) getNeutralLabel(text, tooltip) => label.new(bar_index, patternLabelPosLow, text = text, style = neutralLabel, color = neutralColor, textcolor = textColor, tooltip = tooltip) C_OnNeckBearishNumberOfCandles = 2 C_OnNeckBearish = false if C_DownTrend and C_BlackBody[1] and C_LongBody[1] and C_WhiteBody and open < close[1] and C_SmallBody and C_Range!=0 and abs(close-low[1])<=C_BodyAvg*0.05 C_OnNeckBearish := true alertcondition(C_OnNeckBearish, title = "On Neck", message = "New On Neck - Bearish pattern detected.") if C_OnNeckBearish and OnNeckInput and showBearishSignal var ttBearishOnNeck = "On Neck\nOn Neck è un pattern di continuazione a due linee che si trova in un trend ribassista. La prima candela è lunga e rossa, la seconda candela è corta e ha il corpo verde. Il prezzo di chiusura della seconda candela è vicino o uguale al prezzo minimo della prima candela. Il modello suggerisce una continuazione di un trend ribassista e la penetrazione del minimo della candela verde è talvolta considerata una conferma. " getBearishLabel("ON", ttBearishOnNeck) C_RisingWindowBullishNumberOfCandles = 2 C_RisingWindowBullish = false if C_UpTrend[1] and (C_Range!=0 and C_Range[1]!=0) and low > high[1] C_RisingWindowBullish := true alertcondition(C_RisingWindowBullish, title = "Rising Window", message = "New Rising Window - Bullish pattern detected.") if C_RisingWindowBullish and RisingWindowInput and showBullishSignal var ttBullishRisingWindow = "Rising Window\nRising Window è un pattern di continuazione rialzista a due candele che si forma durante un trend rialzista. Entrambe le candele nel pattern possono essere di qualsiasi tipo ad eccezione della Four-Price Doji. La caratteristica più importante del modello è un gap di prezzo tra il massimo della prima candela e il minimo della seconda candela. Quel divario (finestra) tra due barre indica il supporto contro la pressione di vendita." getBullishLabel("RW", ttBullishRisingWindow) C_FallingWindowBearishNumberOfCandles = 2 C_FallingWindowBearish = false if C_DownTrend[1] and (C_Range!=0 and C_Range[1]!=0) and high < low[1] C_FallingWindowBearish := true alertcondition(C_FallingWindowBearish, title = "Falling Window", message = "New Falling Window - Bearish pattern detected.") if C_FallingWindowBearish and FallingWindowInput and showBearishSignal var ttBearishFallingWindow = "Falling Window\nFalling Window è un pattern di continuazione ribassista a due candele che si forma durante un trend ribassista. Entrambe le candele nel pattern possono essere di qualsiasi tipo, ad eccezione della Four-Price Doji. La caratteristica più importante del modello è un gap di prezzo tra il minimo della prima candela e il massimo della seconda candela. L'esistenza di questo gap (finestra) significa che la tendenza ribassista dovrebbe continuare." getBearishLabel("FW", ttBearishFallingWindow) C_FallingThreeMethodsBearishNumberOfCandles = 5 C_FallingThreeMethodsBearish = false if C_DownTrend[4] and (C_LongBody[4] and C_BlackBody[4]) and (C_SmallBody[3] and C_WhiteBody[3] and open[3]>low[4] and close[3]low[4] and close[2]low[4] and close[1]low[4]) and (C_SmallBody[2] and C_BlackBody[2] and open[2]low[4]) and (C_SmallBody[1] and C_BlackBody[1] and open[1]low[4]) and (C_LongBody and C_WhiteBody and close>close[4]) C_RisingThreeMethodsBullish := true alertcondition(C_RisingThreeMethodsBullish, title = "Rising Three Methods", message = "New Rising Three Methods - Bullish pattern detected.") if C_RisingThreeMethodsBullish and RisingThreeMethodsInput and showBullishSignal var ttBullishRisingThreeMethods = "Rising Three Methods\nRising Three Methods è un modello rialzista a cinque candele che indica la continuazione di un trend rialzista esistente. La prima candela è lunga e verde, seguita da tre candele rosse corte con corpi all'interno del range della prima candela. Anche l'ultima candela è verde e lunga e chiude sopra la chiusura della prima candela. Questa decisiva quinta candela fortemente rialzista suggerisce che gli orsi non sono riusciti a invertire il precedente trend rialzista e che i rialzisti hanno ripreso il controllo del mercato." getBullishLabel("RTM", ttBullishRisingThreeMethods) C_TweezerTopBearishNumberOfCandles = 2 C_TweezerTopBearish = false if C_UpTrend[1] and (not C_IsDojiBody or (C_HasUpShadow and C_HasDnShadow)) and abs(high-high[1]) <= C_BodyAvg*0.05 and C_WhiteBody[1] and C_BlackBody and C_LongBody[1] C_TweezerTopBearish := true alertcondition(C_TweezerTopBearish, title = "Tweezer Top", message = "New Tweezer Top - Bearish pattern detected.") if C_TweezerTopBearish and TweezerTopInput and showBearishSignal var ttBearishTweezerTop = "Tweezer Top\nTweezer Top è un modello a due candele che indica una potenziale inversione ribassista. Il modello si trova durante un trend rialzista. La prima candela è lunga e verde, la seconda è rossa e il suo massimo è quasi identico al massimo della candela precedente. I massimi praticamente identici, insieme alle direzioni invertite, suggeriscono che i ribassisti potrebbero prendere il sopravvento sul mercato." getBearishLabel("TT", ttBearishTweezerTop) C_TweezerBottomBullishNumberOfCandles = 2 C_TweezerBottomBullish = false if C_UpTrend[1] and (not C_IsDojiBody or (C_HasUpShadow and C_HasDnShadow)) and abs(low-low[1]) <= C_BodyAvg*0.05 and C_BlackBody[1] and C_WhiteBody and C_LongBody[1] C_TweezerBottomBullish := true alertcondition(C_TweezerBottomBullish, title = "Tweezer Bottom", message = "New Tweezer Bottom - Bullish pattern detected.") if C_TweezerBottomBullish and TweezerBottomInput and showBullishSignal var ttBullishTweezerBottom = "Tweezer Bottom\nTweezer Bottom è un pattern a due candele che indica una potenziale inversione rialzista. Il modello si trova durante una tendenza al ribasso. La prima candela è lunga e rossa, la seconda candela è verde, i suoi minimi sono quasi identici a quelli della candela precedente. I minimi praticamente identici insieme alle direzioni invertite suggeriscono che i rialzisti potrebbero prendere il controllo del mercato." getBullishLabel("TB", ttBullishTweezerBottom) C_DarkCloudCoverBearishNumberOfCandles = 2 C_DarkCloudCoverBearish = false if (C_UpTrend[1] and C_WhiteBody[1] and C_LongBody[1]) and (C_BlackBody and open >= high[1] and close < C_BodyMiddle[1] and close > open[1]) C_DarkCloudCoverBearish := true alertcondition(C_DarkCloudCoverBearish, title = "Dark Cloud Cover", message = "New Dark Cloud Cover - Bearish pattern detected.") if C_DarkCloudCoverBearish and DarkCloudCoverInput and showBearishSignal var ttBearishDarkCloudCover = "Dark Cloud Cover\nDark Cloud Cover è un modello di candele di inversione ribassista a due candele che si trova in un trend rialzista. La prima candela è verde e ha un corpo più grande della media. La seconda candela è rossa e si apre al di sopra del massimo della candela precedente, creando un gap, quindi si chiude al di sotto del punto medio della prima candela. Il modello mostra un possibile spostamento dello slancio dal rialzo al ribasso, indicando che presto potrebbe verificarsi un'inversione." getBearishLabel("DCC", ttBearishDarkCloudCover) C_DownsideTasukiGapBearishNumberOfCandles = 3 C_DownsideTasukiGapBearish = false if C_LongBody[2] and C_SmallBody[1] and C_DownTrend and C_BlackBody[2] and C_BodyHi[1] < C_BodyLo[2] and C_BlackBody[1] and C_WhiteBody and C_BodyHi <= C_BodyLo[2] and C_BodyHi >= C_BodyHi[1] C_DownsideTasukiGapBearish := true alertcondition(C_DownsideTasukiGapBearish, title = "Downside Tasuki Gap", message = "New Downside Tasuki Gap - Bearish pattern detected.") if C_DownsideTasukiGapBearish and DownsideTasukiGapInput and showBearishSignal var ttBearishDownsideTasukiGap = "Downside Tasuki Gap\nDownside Tasuki Gap è un modello a tre candele trovato in una tendenza al ribasso che di solito suggerisce la continuazione della tendenza al ribasso. La prima candela è lunga e rossa, seguita da una candela rossa più piccola con il suo prezzo di apertura che si trova al di sotto del corpo della candela precedente. La terza candela è verde e si chiude all'interno del gap creato dalle prime due candele, non riuscendo a chiuderlo completamente. L'incapacità del toro di colmare quel gap suggerisce che la tendenza al ribasso potrebbe continuare." getBearishLabel("DTG", ttBearishDownsideTasukiGap) C_UpsideTasukiGapBullishNumberOfCandles = 3 C_UpsideTasukiGapBullish = false if C_LongBody[2] and C_SmallBody[1] and C_UpTrend and C_WhiteBody[2] and C_BodyLo[1] > C_BodyHi[2] and C_WhiteBody[1] and C_BlackBody and C_BodyLo >= C_BodyHi[2] and C_BodyLo <= C_BodyLo[1] C_UpsideTasukiGapBullish := true alertcondition(C_UpsideTasukiGapBullish, title = "Upside Tasuki Gap", message = "New Upside Tasuki Gap - Bullish pattern detected.") if C_UpsideTasukiGapBullish and UpsideTasukiGapInput and showBullishSignal var ttBullishUpsideTasukiGap = "Upside Tasuki Gap\nUpside Tasuki Gap è un modello a tre candele trovato in un trend rialzista che di solito suggerisce la continuazione del trend rialzista. La prima candela è lunga e verde, seguita da una candela verde più piccola con il suo prezzo di apertura che supera il corpo della candela precedente. La terza candela è rossa e si chiude all'interno del gap creato dalle prime due candele, non riuscendo a chiuderlo completamente. L'incapacità dell'orso di colmare il divario suggerisce che il trend rialzista potrebbe continuare." getBullishLabel("UTG", ttBullishUpsideTasukiGap) C_EveningDojiStarBearishNumberOfCandles = 3 C_EveningDojiStarBearish = false if C_LongBody[2] and C_IsDojiBody[1] and C_LongBody and C_UpTrend and C_WhiteBody[2] and C_BodyLo[1] > C_BodyHi[2] and C_BlackBody and C_BodyLo <= C_BodyMiddle[2] and C_BodyLo > C_BodyLo[2] and C_BodyLo[1] > C_BodyHi C_EveningDojiStarBearish := true alertcondition(C_EveningDojiStarBearish, title = "Evening Doji Star", message = "New Evening Doji Star - Bearish pattern detected.") if C_EveningDojiStarBearish and EveningDojiStarInput and showBearishSignal var ttBearishEveningDojiStar = "Evening Doji Star\nQuesto modello di candeliere è una variazione del modello Evening Star. È ribassista e continua un trend rialzista con una lunga giornata di candela verde. È quindi seguito da un gap e una candela Doji e si conclude con una chiusura al ribasso. La chiusura sarebbe al di sotto del punto medio del primo giorno. È più ribassista del normale motivo a stelle della sera a causa dell'esistenza del Doji." getBearishLabel("EDS", ttBearishEveningDojiStar) C_DojiStarBearishNumberOfCandles = 2 C_DojiStarBearish = false if C_UpTrend and C_WhiteBody[1] and C_LongBody[1] and C_IsDojiBody and C_BodyLo > C_BodyHi[1] C_DojiStarBearish := true alertcondition(C_DojiStarBearish, title = "Doji Star", message = "New Doji Star - Bearish pattern detected.") if C_DojiStarBearish and DojiStarInput and showBearishSignal var ttBearishDojiStar = "Doji Star\nQuesto è un modello di candelabro di inversione ribassista che si trova in un trend rialzista ed è composto da due candele. Prima arriva una lunga candela verde, seguita da una candela Doji (tranne 4-Price Doji) che si apre sopra il corpo della prima, creando un gap. È considerato un segnale di inversione con conferma durante il giorno di negoziazione successivo." getBearishLabel("DS", ttBearishDojiStar) C_DojiStarBullishNumberOfCandles = 2 C_DojiStarBullish = false if C_DownTrend and C_BlackBody[1] and C_LongBody[1] and C_IsDojiBody and C_BodyHi < C_BodyLo[1] C_DojiStarBullish := true alertcondition(C_DojiStarBullish, title = "Doji Star", message = "New Doji Star - Bullish pattern detected.") if C_DojiStarBullish and DojiStarInput and showBullishSignal var ttBullishDojiStar = "Doji Star\nQuesto è un modello di candele di inversione rialzista che si trova in una tendenza al ribasso ed è composto da due candele. Prima arriva una lunga candela rossa, seguita da una candela Doji (tranne 4-Price Doji) che si apre sotto il corpo della prima, creando un gap. È considerato un segnale di inversione con conferma durante il giorno di negoziazione successivo." getBullishLabel("DS", ttBullishDojiStar) C_MorningDojiStarBullishNumberOfCandles = 3 C_MorningDojiStarBullish = false if C_LongBody[2] and C_IsDojiBody[1] and C_LongBody and C_DownTrend and C_BlackBody[2] and C_BodyHi[1] < C_BodyLo[2] and C_WhiteBody and C_BodyHi >= C_BodyMiddle[2] and C_BodyHi < C_BodyHi[2] and C_BodyHi[1] < C_BodyLo C_MorningDojiStarBullish := true alertcondition(C_MorningDojiStarBullish, title = "Morning Doji Star", message = "New Morning Doji Star - Bullish pattern detected.") if C_MorningDojiStarBullish and MorningDojiStarInput and showBullishSignal var ttBullishMorningDojiStar = "Morning Doji Star\nQuesto modello di candeliere è una variazione del modello Morning Star. Un modello di inversione rialzista di tre giorni, che consiste in tre candele, avrà un aspetto simile a questo: la prima è una candela rossa a corpo lungo che estende l'attuale tendenza al ribasso. Poi arriva un Doji che si apre in apertura. Dopodiché arriva una candela verde dal corpo lungo, che si apre in apertura e si chiude sopra il punto medio del corpo del primo giorno. È più rialzista del normale schema a stella mattutina a causa dell'esistenza del Doji." getBullishLabel("MDS", ttBullishMorningDojiStar) C_PiercingBullishNumberOfCandles = 2 C_PiercingBullish = false if (C_DownTrend[1] and C_BlackBody[1] and C_LongBody[1]) and (C_WhiteBody and open <= low[1] and close > C_BodyMiddle[1] and close < open[1]) C_PiercingBullish := true alertcondition(C_PiercingBullish, title = "Piercing", message = "New Piercing - Bullish pattern detected.") if C_PiercingBullish and PiercingInput and showBullishSignal var ttBullishPiercing = "Piercing\nIl piercing è un modello di candelabro di inversione rialzista a due candele che si trova in una tendenza al ribasso. La prima candela è rossa e ha un corpo più grande della media. La seconda candela è verde e si apre sotto il minimo della candela precedente, creando un gap, e poi si chiude sopra il punto medio della prima candela. Il modello mostra un possibile spostamento del momentum dal ribasso al rialzo, indicando che presto potrebbe verificarsi un'inversione." getBullishLabel("P", ttBullishPiercing) C_HammerBullishNumberOfCandles = 1 C_HammerBullish = false if C_SmallBody and C_Body > 0 and C_BodyLo > hl2 and C_DnShadow >= C_Factor * C_Body and not C_HasUpShadow if C_DownTrend C_HammerBullish := true alertcondition(C_HammerBullish, title = "Hammer", message = "New Hammer - Bullish pattern detected.") if C_HammerBullish and HammerInput and showBullishSignal var ttBullishHammer = "Hammer\nLe candele Hammer si formano quando un titolo si sposta al ribasso dopo l'apertura, ma continua a salire fino a chiudersi al di sopra del minimo infragiornaliero. Il candelabro che ti rimane sembrerà un quadrato attaccato a una lunga figura simile a un bastone. Questa candela è chiamata Hammer se si forma durante un declino." getBullishLabel("H", ttBullishHammer) C_HangingManBearishNumberOfCandles = 1 C_HangingManBearish = false if C_SmallBody and C_Body > 0 and C_BodyLo > hl2 and C_DnShadow >= C_Factor * C_Body and not C_HasUpShadow if C_UpTrend C_HangingManBearish := true alertcondition(C_HangingManBearish, title = "Hanging Man", message = "New Hanging Man - Bearish pattern detected.") if C_HangingManBearish and HangingManInput and showBearishSignal var ttBearishHangingMan = "Hanging Man\nQuando un titolo specifico si sposta notevolmente al ribasso dopo l'apertura, ma continua a salire per chiudere al di sopra del minimo infragiornaliero, si formerà una candela Hanging Man. Il candelabro assomiglierà a un quadrato, attaccato a una lunga figura simile a un bastone. Si parla di Impiccato se il candeliere si forma durante un'avanzata." getBearishLabel("HM", ttBearishHangingMan) C_ShootingStarBearishNumberOfCandles = 1 C_ShootingStarBearish = false if C_SmallBody and C_Body > 0 and C_BodyHi < hl2 and C_UpShadow >= C_Factor * C_Body and not C_HasDnShadow if C_UpTrend C_ShootingStarBearish := true alertcondition(C_ShootingStarBearish, title = "Shooting Star", message = "New Shooting Star - Bearish pattern detected.") if C_ShootingStarBearish and ShootingStarInput and showBearishSignal var ttBearishShootingStar = "Shooting Star\nQuesto pattern di un solo giorno può apparire durante un trend rialzista e si apre in alto, mentre chiude vicino alla sua apertura. Commercia anche molto più in alto. È di natura ribassista, ma sembra un martello rovesciato." getBearishLabel("SS", ttBearishShootingStar) C_InvertedHammerBullishNumberOfCandles = 1 C_InvertedHammerBullish = false if C_SmallBody and C_Body > 0 and C_BodyHi < hl2 and C_UpShadow >= C_Factor * C_Body and not C_HasDnShadow if C_DownTrend C_InvertedHammerBullish := true alertcondition(C_InvertedHammerBullish, title = "Inverted Hammer", message = "New Inverted Hammer - Bullish pattern detected.") if C_InvertedHammerBullish and InvertedHammerInput and showBullishSignal var ttBullishInvertedHammer = "Inverted Hammer\nSe in una tendenza al ribasso, allora l'apertura è inferiore. Quando alla fine viene scambiato più in alto, ma chiude vicino alla sua apertura, sembrerà una versione invertita dell'Hammer Candlestick. Questo è un modello di inversione rialzista di un giorno." getBullishLabel("IH", ttBullishInvertedHammer) C_MorningStarBullishNumberOfCandles = 3 C_MorningStarBullish = false if C_LongBody[2] and C_SmallBody[1] and C_LongBody if C_DownTrend and C_BlackBody[2] and C_BodyHi[1] < C_BodyLo[2] and C_WhiteBody and C_BodyHi >= C_BodyMiddle[2] and C_BodyHi < C_BodyHi[2] and C_BodyHi[1] < C_BodyLo C_MorningStarBullish := true alertcondition(C_MorningStarBullish, title = "Morning Star", message = "New Morning Star - Bullish pattern detected.") if C_MorningStarBullish and MorningStarInput and showBullishSignal var ttBullishMorningStar = "Stella del mattino\nUn modello di inversione rialzista di tre giorni, che consiste in tre candele, avrà un aspetto simile a questo: la prima è una candela rossa a corpo lungo che estende l'attuale tendenza al ribasso. Poi arriva una candela corta e media che apre un gap. Dopo arriva una candela verde dal corpo lungo, che si apre in apertura e si chiude sopra il punto medio del corpo del primo giorno." getBullishLabel("MS", ttBullishMorningStar) C_EveningStarBearishNumberOfCandles = 3 C_EveningStarBearish = false if C_LongBody[2] and C_SmallBody[1] and C_LongBody if C_UpTrend and C_WhiteBody[2] and C_BodyLo[1] > C_BodyHi[2] and C_BlackBody and C_BodyLo <= C_BodyMiddle[2] and C_BodyLo > C_BodyLo[2] and C_BodyLo[1] > C_BodyHi C_EveningStarBearish := true alertcondition(C_EveningStarBearish, title = "Evening Star", message = "New Evening Star - Bearish pattern detected.") if C_EveningStarBearish and EveningStarInput and showBearishSignal var ttBearishEveningStar = "Stella della sera\nQuesto modello a candela è ribassista e continua un trend rialzista con una lunga giornata di candele verdi. È quindi seguito da un giorno di candela con gap e di piccolo corpo e si conclude con una chiusura al ribasso. La chiusura sarebbe al di sotto del punto medio del primo giorno." getBearishLabel("ES", ttBearishEveningStar) C_MarubozuWhiteBullishNumberOfCandles = 1 C_MarubozuShadowPercentWhite = 5.0 C_MarubozuWhiteBullish = C_WhiteBody and C_LongBody and C_UpShadow <= C_MarubozuShadowPercentWhite/100*C_Body and C_DnShadow <= C_MarubozuShadowPercentWhite/100*C_Body and C_WhiteBody alertcondition(C_MarubozuWhiteBullish, title = "Marubozu White", message = "New Marubozu White - Bullish pattern detected.") if C_MarubozuWhiteBullish and MarubozuWhiteInput and showBullishSignal var ttBullishMarubozuWhite = "Marubozu White\nUna candela bianca Marubozu è un candelabro che non ha un'ombra che si estende dal suo corpo di candela né all'apertura né alla chiusura. Marubozu in giapponese significa “close-cropped” or “close-cut.”. Altre fonti potrebbero chiamarla candela a testa calva o rasata." getBullishLabel("MW", ttBullishMarubozuWhite) C_MarubozuBlackBearishNumberOfCandles = 1 C_MarubozuShadowPercentBearish = 5.0 C_MarubozuBlackBearish = C_BlackBody and C_LongBody and C_UpShadow <= C_MarubozuShadowPercentBearish/100*C_Body and C_DnShadow <= C_MarubozuShadowPercentBearish/100*C_Body and C_BlackBody alertcondition(C_MarubozuBlackBearish, title = "Marubozu Black", message = "New Marubozu Black - Bearish pattern detected.") if C_MarubozuBlackBearish and MarubozuBlackInput and showBearishSignal var ttBearishMarubozuBlack = "Marubozu Black\nQuesto è un candelabro che non ha ombre, che si estende dalla candela dal corpo rosso all'apertura, alla chiusura o anche a entrambe. In giapponese, il nome significa “close-cropped” or “close-cut.”. Il candelabro può anche essere indicato come testa calva o rasata." getBearishLabel("MB", ttBearishMarubozuBlack) C_DojiNumberOfCandles = 1 C_DragonflyDoji = C_IsDojiBody and C_UpShadow <= C_Body C_GravestoneDojiOne = C_IsDojiBody and C_DnShadow <= C_Body alertcondition(C_Doji and not C_DragonflyDoji and not C_GravestoneDojiOne, title = "Doji", message = "New Doji pattern detected.") if C_Doji and not C_DragonflyDoji and not C_GravestoneDojiOne and DojiInput and showNeutralSignal var ttDoji = "Doji\nQuando l'apertura e la chiusura di un titolo sono essenzialmente uguali tra loro, si forma una candela doji. La lunghezza delle ombre superiore e inferiore può variare, facendo sì che il candelabro che ti rimane assomigli a una croce, una croce rovesciata o un segno più. Le candele Doji mostrano il playout dell'indecisione acquirente-venditore in una sorta di tiro alla fune. Quando il prezzo si sposta al di sopra o al di sotto del livello di apertura durante la sessione, la chiusura è pari o vicina al livello di apertura." getNeutralLabel("D", ttDoji) C_GravestoneDojiBearishNumberOfCandles = 1 C_GravestoneDojiBearish = C_IsDojiBody and C_DnShadow <= C_Body alertcondition(C_GravestoneDojiBearish, title = "Gravestone Doji", message = "New Gravestone Doji - Bearish pattern detected.") if C_GravestoneDojiBearish and GravestoneDojiInput and showBearishSignal var ttBearishGravestoneDoji = "Gravestone Doji\nQuando un doji si trova o è vicino al punto più basso della giornata, si svilupperà una linea doji." getBearishLabel("GD", ttBearishGravestoneDoji) C_DragonflyDojiBullishNumberOfCandles = 1 C_DragonflyDojiBullish = C_IsDojiBody and C_UpShadow <= C_Body alertcondition(C_DragonflyDojiBullish, title = "Dragonfly Doji", message = "New Dragonfly Doji - Bullish pattern detected.") if C_DragonflyDojiBullish and DragonflyDojiInput and showBullishSignal var ttBullishDragonflyDoji = "Dragonfly Doji\nSimile ad altri giorni di Doji, anche questo particolare Doji appare regolarmente nei momenti cruciali del mercato. Questo è un Doji specifico in cui sia il prezzo di apertura che quello di chiusura sono al massimo di un dato giorno." getBullishLabel("DD", ttBullishDragonflyDoji) C_HaramiCrossBullishNumberOfCandles = 2 C_HaramiCrossBullish = C_LongBody[1] and C_BlackBody[1] and C_DownTrend[1] and C_IsDojiBody and high <= C_BodyHi[1] and low >= C_BodyLo[1] alertcondition(C_HaramiCrossBullish, title = "Harami Cross", message = "New Harami Cross - Bullish pattern detected.") if C_HaramiCrossBullish and HaramiCrossInput and showBullishSignal var ttBullishHaramiCross = "Harami Cross\nQuesto modello a candelabro è una variazione del modello Harami Bullish. Si trova durante una tendenza al ribasso. Il modello di candele a due giorni consiste in una candela Doji che è interamente racchiusa nel corpo di quella che una volta era una candela dal corpo rosso." getBullishLabel("HC", ttBullishHaramiCross) C_HaramiCrossBearishNumberOfCandles = 2 C_HaramiCrossBearish = C_LongBody[1] and C_WhiteBody[1] and C_UpTrend[1] and C_IsDojiBody and high <= C_BodyHi[1] and low >= C_BodyLo[1] alertcondition(C_HaramiCrossBearish, title = "Harami Cross", message = "New Harami Cross - Bearish pattern detected.") if C_HaramiCrossBearish and HaramiCrossInput and showBearishSignal var ttBearishHaramiCross = "Harami Cross\nQuesto modello di candelabro è una variazione del modello Harami Bearish. Si trova durante un trend rialzista. Questo è un modello di candeliere di due giorni con una candela Doji che è interamente racchiusa nel corpo che una volta era una candela dal corpo verde. Il Doji mostra che una certa indecisione è entrata nelle menti dei venditori e il modello suggerisce che la tendenza potrebbe invertirsi." getBearishLabel("HC", ttBearishHaramiCross) C_HaramiBullishNumberOfCandles = 2 C_HaramiBullish = C_LongBody[1] and C_BlackBody[1] and C_DownTrend[1] and C_WhiteBody and C_SmallBody and high <= C_BodyHi[1] and low >= C_BodyLo[1] alertcondition(C_HaramiBullish, title = "Harami", message = "New Harami - Bullish pattern detected.") if C_HaramiBullish and HaramiInput and showBullishSignal var ttBullishHarami = "Harami\nQuesto modello di candeliere di due giorni è costituito da una candela verde dal corpo piccolo che è interamente racchiusa nel corpo di quella che una volta era una candela dal corpo rosso." getBullishLabel("BH", ttBullishHarami) C_HaramiBearishNumberOfCandles = 2 C_HaramiBearish = C_LongBody[1] and C_WhiteBody[1] and C_UpTrend[1] and C_BlackBody and C_SmallBody and high <= C_BodyHi[1] and low >= C_BodyLo[1] alertcondition(C_HaramiBearish, title = "Harami", message = "New Harami - Bearish pattern detected.") if C_HaramiBearish and HaramiInput and showBearishSignal var ttBearishHarami = "Harami\nQuesto è un modello di candeliere di due giorni con una piccola candela dal corpo rosso che è interamente racchiusa all'interno del corpo che una volta era una candela dal corpo verde." getBearishLabel("BH", ttBearishHarami) C_LongLowerShadowBullishNumberOfCandles = 1 C_LongLowerShadowPercent = 75.0 C_LongLowerShadowBullish = C_DnShadow > C_Range/100*C_LongLowerShadowPercent alertcondition(C_LongLowerShadowBullish, title = "Long Lower Shadow", message = "New Long Lower Shadow - Bullish pattern detected.") if C_LongLowerShadowBullish and LongLowerShadowInput and showBullishSignal var ttBullishLongLowerShadow = "Long Lower Shadow\nPer indicare il dominio del venditore nella prima parte di una sessione, le candele si presenteranno con lunghe ombre inferiori e corte ombre superiori, con conseguente abbassamento dei prezzi." getBullishLabel("LLS", ttBullishLongLowerShadow) C_LongUpperShadowBearishNumberOfCandles = 1 C_LongShadowPercent = 75.0 C_LongUpperShadowBearish = C_UpShadow > C_Range/100*C_LongShadowPercent alertcondition(C_LongUpperShadowBearish, title = "Long Upper Shadow", message = "New Long Upper Shadow - Bearish pattern detected.") if C_LongUpperShadowBearish and LongUpperShadowInput and showBearishSignal var ttBearishLongUpperShadow = "Long Upper Shadow\nPer indicare il dominio dell'acquirente nella prima parte di una sessione, le candele si presenteranno con lunghe ombre superiori, così come corte ombre inferiori, aumentando di conseguenza i prezzi di offerta." getBearishLabel("LUS", ttBearishLongUpperShadow) C_SpinningTopWhiteNumberOfCandles = 1 C_SpinningTopWhitePercent = 34.0 C_IsSpinningTopWhite = C_DnShadow >= C_Range / 100 * C_SpinningTopWhitePercent and C_UpShadow >= C_Range / 100 * C_SpinningTopWhitePercent and not C_IsDojiBody C_SpinningTopWhite = C_IsSpinningTopWhite and C_WhiteBody alertcondition(C_SpinningTopWhite, title = "Spinning Top White", message = "New Spinning Top White pattern detected.") if C_SpinningTopWhite and SpinningTopWhiteInput and showNeutralSignal var ttSpinningTopWhite = "Spinning Top White\nLe trottole bianche sono linee di candelieri piccole, dal corpo verde e possiedono ombre (superiore e inferiore) che finiscono per superare la lunghezza dei corpi delle candele. Spesso segnalano indecisione tra acquirente e venditore." getNeutralLabel("STW", ttSpinningTopWhite) C_SpinningTopBlackNumberOfCandles = 1 C_SpinningTopBlackPercent = 34.0 C_IsSpinningTop = C_DnShadow >= C_Range / 100 * C_SpinningTopBlackPercent and C_UpShadow >= C_Range / 100 * C_SpinningTopBlackPercent and not C_IsDojiBody C_SpinningTopBlack = C_IsSpinningTop and C_BlackBody alertcondition(C_SpinningTopBlack, title = "Spinning Top Black", message = "New Spinning Top Black pattern detected.") if C_SpinningTopBlack and SpinningTopBlackInput and showNeutralSignal var ttSpinningTopBlack = "Spinning Top Black\nLe trottole nere sono linee di candele piccole, di colore rosso e possiedono ombre (superiore e inferiore) che finiscono per superare la lunghezza dei corpi delle candele. Spesso segnalano indecisione." getNeutralLabel("STB", ttSpinningTopBlack) C_ThreeWhiteSoldiersBullishNumberOfCandles = 3 C_3WSld_ShadowPercent = 5.0 C_3WSld_HaveNotUpShadow = C_Range * C_3WSld_ShadowPercent / 100 > C_UpShadow C_ThreeWhiteSoldiersBullish = false if C_LongBody and C_LongBody[1] and C_LongBody[2] if C_WhiteBody and C_WhiteBody[1] and C_WhiteBody[2] C_ThreeWhiteSoldiersBullish := close > close[1] and close[1] > close[2] and open < close[1] and open > open[1] and open[1] < close[2] and open[1] > open[2] and C_3WSld_HaveNotUpShadow and C_3WSld_HaveNotUpShadow[1] and C_3WSld_HaveNotUpShadow[2] alertcondition(C_ThreeWhiteSoldiersBullish, title = "Three White Soldiers", message = "New Three White Soldiers - Bullish pattern detected.") if C_ThreeWhiteSoldiersBullish and ThreeWhiteSoldiersInput and showBullishSignal var ttBullishThreeWhiteSoldiers = "Tre soldati bianchi\nQuesto modello di inversione rialzista è composto da tre candele verdi dal corpo lungo in successione immediata. Ognuno si apre all'interno del corpo prima di esso e la chiusura è vicina al massimo giornaliero." getBullishLabel("3WS", ttBullishThreeWhiteSoldiers) C_ThreeBlackCrowsBearishNumberOfCandles = 3 C_3BCrw_ShadowPercent = 5.0 C_3BCrw_HaveNotDnShadow = C_Range * C_3BCrw_ShadowPercent / 100 > C_DnShadow C_ThreeBlackCrowsBearish = false if C_LongBody and C_LongBody[1] and C_LongBody[2] if C_BlackBody and C_BlackBody[1] and C_BlackBody[2] C_ThreeBlackCrowsBearish := close < close[1] and close[1] < close[2] and open > close[1] and open < open[1] and open[1] > close[2] and open[1] < open[2] and C_3BCrw_HaveNotDnShadow and C_3BCrw_HaveNotDnShadow[1] and C_3BCrw_HaveNotDnShadow[2] alertcondition(C_ThreeBlackCrowsBearish, title = "Three Black Crows", message = "New Three Black Crows - Bearish pattern detected.") if C_ThreeBlackCrowsBearish and ThreeBlackCrowsInput and showBearishSignal var ttBearishThreeBlackCrows = "Three Black Crows\nQuesto è un modello di inversione ribassista che consiste in tre lunghe candele rosse in successione immediata. Per ciascuna di queste candele, ogni giorno si apre all'interno del corpo del giorno precedente e si chiude al suo minimo o in prossimità di esso." getBearishLabel("3BC", ttBearishThreeBlackCrows) C_EngulfingBullishNumberOfCandles = 2 C_EngulfingBullish = C_DownTrend and C_WhiteBody and C_LongBody and C_BlackBody[1] and C_SmallBody[1] and close >= open[1] and open <= close[1] and ( close > open[1] or open < close[1] ) alertcondition(C_EngulfingBullish, title = "Engulfing", message = "New Engulfing - Bullish pattern detected.") if C_EngulfingBullish and EngulfingInput and showBullishSignal var ttBullishEngulfing = "Engulfing\nAlla fine di una data tendenza al ribasso, molto probabilmente ci sarà un modello di inversione. Per distinguere il primo giorno, questo pattern a candela utilizza un corpo piccolo, seguito da un giorno in cui il corpo della candela supera completamente il corpo del giorno precedente e si chiude nella direzione opposta del trend. Sebbene sia simile al modello grafico di inversione esterna, non è essenziale che questo modello superi completamente l'intervallo (dall'alto al basso), piuttosto solo l'apertura e la chiusura." getBullishLabel("BE", ttBullishEngulfing) C_EngulfingBearishNumberOfCandles = 2 C_EngulfingBearish = C_UpTrend and C_BlackBody and C_LongBody and C_WhiteBody[1] and C_SmallBody[1] and close <= open[1] and open >= close[1] and ( close < open[1] or open > close[1] ) alertcondition(C_EngulfingBearish, title = "Engulfing", message = "New Engulfing - Bearish pattern detected.") if C_EngulfingBearish and EngulfingInput and showBearishSignal var ttBearishEngulfing = "Engulfing\nAlla fine di un determinato trend rialzista, molto probabilmente apparirà un modello di inversione. Durante il primo giorno, questo modello di candele utilizza un corpo piccolo. È quindi seguito da un giorno in cui il corpo della candela supera completamente il corpo del giorno precedente e si chiude nella direzione opposta del trend. Sebbene sia simile al modello grafico di inversione esterna, non è essenziale che questo modello superi completamente l'intervallo (dal massimo al minimo), ma solo l'apertura e la chiusura." getBearishLabel("BE", ttBearishEngulfing) C_AbandonedBabyBullishNumberOfCandles = 3 C_AbandonedBabyBullish = C_DownTrend[2] and C_BlackBody[2] and C_IsDojiBody[1] and low[2] > high[1] and C_WhiteBody and high[1] < low alertcondition(C_AbandonedBabyBullish, title = "Abandoned Baby", message = "New Abandoned Baby - Bullish pattern detected.") if C_AbandonedBabyBullish and AbandonedBabyInput and showBullishSignal var ttBullishAbandonedBaby = "Bambino abbandonato\nQuesto modello a candelabro è piuttosto raro per quanto riguarda i modelli di inversione. La prima del modello è una grande candela verso il basso. Poi arriva una candela doji che si trova sotto la candela prima di essa. La candela doji è quindi seguita da un'altra candela che si apre ancora più in alto e si sposta rapidamente verso l'alto." getBullishLabel("AB", ttBullishAbandonedBaby) C_AbandonedBabyBearishNumberOfCandles = 3 C_AbandonedBabyBearish = C_UpTrend[2] and C_WhiteBody[2] and C_IsDojiBody[1] and high[2] < low[1] and C_BlackBody and low[1] > high alertcondition(C_AbandonedBabyBearish, title = "Abandoned Baby", message = "New Abandoned Baby - Bearish pattern detected.") if C_AbandonedBabyBearish and AbandonedBabyInput and showBearishSignal var ttBearishAbandonedBaby = "Bambino abbandonato\nUn bambino abbandonato ribassista è uno specifico modello di candele che spesso segnala un'inversione di tendenza al ribasso in termini di prezzo del titolo. Si forma quando appare un divario tra il prezzo più basso di una candela tipo doji e la candela del giorno prima. Il candelabro precedente è verde, alto e ha piccole ombre. La candela doji è anche seguita da un divario tra il suo punto di prezzo più basso e il punto di prezzo più alto della candela successiva, che è rossa, alta e ha anche piccole ombre. Le ombre delle candele doji devono essere completamente separate sotto o sopra le ombre del primo e del terzo giorno per avere l'effetto del modello del bambino abbandonato." getBearishLabel("AB", ttBearishAbandonedBaby) C_TriStarBullishNumberOfCandles = 3 C_3DojisBullish = C_Doji[2] and C_Doji[1] and C_Doji C_BodyGapUpBullish = C_BodyHi[1] < C_BodyLo C_BodyGapDnBullish = C_BodyLo[1] > C_BodyHi C_TriStarBullish = C_3DojisBullish and C_DownTrend[2] and C_BodyGapDnBullish[1] and C_BodyGapUpBullish alertcondition(C_TriStarBullish, title = "Tri-Star", message = "New Tri-Star - Bullish pattern detected.") if C_TriStarBullish and TriStarInput and showBullishSignal var ttBullishTriStar = "Tri-Star\nUn modello di candela TriStar rialzista può formarsi quando tre candele doji si materializzano in successione immediata alla fine di una tendenza al ribasso estesa. La prima candela doji segna l'indecisione tra toro e orso. La seconda doji si sposta nella direzione del trend principale. Il terzo cambia l'atteggiamento del mercato una volta che la candela si apre nella direzione opposta al trend. Ogni candela doji ha un'ombra, tutte relativamente poco profonde, che indicano una riduzione temporanea della volatilità." getBullishLabel("3S", ttBullishTriStar) C_TriStarBearishNumberOfCandles = 3 C_3Dojis = C_Doji[2] and C_Doji[1] and C_Doji C_BodyGapUp = C_BodyHi[1] < C_BodyLo C_BodyGapDn = C_BodyLo[1] > C_BodyHi C_TriStarBearish = C_3Dojis and C_UpTrend[2] and C_BodyGapUp[1] and C_BodyGapDn alertcondition(C_TriStarBearish, title = "Tri-Star", message = "New Tri-Star - Bearish pattern detected.") if C_TriStarBearish and TriStarInput and showBearishSignal var ttBearishTriStar = "Tri-Star\nQuesto particolare schema può formarsi quando tre candele doji appaiono in successione immediata alla fine di un trend rialzista esteso. La prima candela doji segna l'indecisione tra toro e orso. La seconda doji si sposta nella direzione del trend principale. Il terzo cambia l'atteggiamento del mercato una volta che la candela si apre nella direzione opposta al trend. Ogni candela doji ha un'ombra, tutte relativamente poco profonde, che indicano una riduzione temporanea della volatilità." getBearishLabel("3S", ttBearishTriStar) C_KickingBullishNumberOfCandles = 2 C_MarubozuShadowPercent = 5.0 C_Marubozu = C_LongBody and C_UpShadow <= C_MarubozuShadowPercent/100*C_Body and C_DnShadow <= C_MarubozuShadowPercent/100*C_Body C_MarubozuWhiteBullishKicking = C_Marubozu and C_WhiteBody C_MarubozuBlackBullish = C_Marubozu and C_BlackBody C_KickingBullish = C_MarubozuBlackBullish[1] and C_MarubozuWhiteBullishKicking and high[1] < low alertcondition(C_KickingBullish, title = "Kicking", message = "New Kicking - Bullish pattern detected.") if C_KickingBullish and KickingInput and showBullishSignal var ttBullishKicking = "Kicking\nLa candela del primo giorno è una candela marubozu ribassista con quasi nessuna ombra superiore o inferiore e dove il prezzo si apre al massimo del giorno e si chiude al minimo del giorno. Il secondo giorno è un modello marubozu rialzista, con quasi nessuna ombra superiore o inferiore e dove il prezzo apre al minimo del giorno e chiude al massimo del giorno. Inoltre, il secondo giorno presenta ampi gap e si apre al di sopra del prezzo di apertura del giorno precedente. Questo gap o finestra, come la chiamano i giapponesi, si trova tra le candele rialziste del primo e del secondo giorno." getBullishLabel("K", ttBullishKicking) C_KickingBearishNumberOfCandles = 2 C_MarubozuBullishShadowPercent = 5.0 C_MarubozuBearishKicking = C_LongBody and C_UpShadow <= C_MarubozuBullishShadowPercent/100*C_Body and C_DnShadow <= C_MarubozuBullishShadowPercent/100*C_Body C_MarubozuWhiteBearish = C_MarubozuBearishKicking and C_WhiteBody C_MarubozuBlackBearishKicking = C_MarubozuBearishKicking and C_BlackBody C_KickingBearish = C_MarubozuWhiteBearish[1] and C_MarubozuBlackBearishKicking and low[1] > high alertcondition(C_KickingBearish, title = "Kicking", message = "New Kicking - Bearish pattern detected.") if C_KickingBearish and KickingInput and showBearishSignal var ttBearishKicking = "Kicking\nSi verificherà un modello di kicking ribassista, che successivamente segnalerà un'inversione per una nuova tendenza al ribasso. La candela del primo giorno è un marubozu rialzista. Il secondo giorno è ampiamente in calo e si apre al di sotto del prezzo di apertura del giorno precedente. C'è un divario tra le candele ribassiste del giorno uno e due." label.new(bar_index, patternLabelPosHigh, text="K", style = label.style_label_down, color = bearishColor, textcolor = textColor, tooltip = ttBearishKicking) getBearishLabel("K", ttBearishKicking) var ttAllCandlestickPatterns = "All Candlestick Patterns\n" label.new(bar_index, patternLabelPosLow, text="Collection", style = label.style_label_up, color = neutralColor, textcolor = textColor, tooltip = ttAllCandlestickPatterns)