Stratégie Ichimoku
Tutoriel sur les indicateurs
Analyse ETH et Altseason, 29/08/25
US Breakout V6-3 Pine script, etc
Que ce passe t'il avec '' BITGET''


Section privée ''mot de passe''


YouTube
Comment utlilser la VWAP, Stratégie Trading Simple
Trader comme les banques avec le VWAP
Comment trader le VWAP 10X plus facilement
Meilleure stratégie de trading (taux de réussite de 87%)
Meilleur indicateur VWAP d'achat et de vente
Le VWAP, Formation Scalping/intraday
Apprendre le Scalping avec l'indicateur VWAP, guide complet
Maitrisez la stratégie de trading VWAP en moins de 10 min.
L'indicateur VWAP stupidement simple
Comment améliorer votre trading avec l'indicateur VWAP
Le VWAP : l’indicateur trading secret des traders pros
Le VWAP (Volume Weighted Average Price) est un indicateur technique utilisé dans le trading qui représente le prix moyen d'un actif pondéré par le volume des transactions. Il est particulièrement utile pour les traders, car il donne une indication de la direction générale du prix d'un actif tout en tenant compte du volume d'échanges, ce qui peut aider à prendre des décisions d'achat ou de vente.
// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Mrspock007
//@version=5
indicator("NEO VWAP Touch Strategy Pro", shorttitle="NEO-VWAP", overlay=true, max_labels_count=500, max_lines_count=500)
// ═════════════════════════════════════════════════════════════════════════
// 📊 PANNEAU DE CONFIGURATION - INPUTS
// ═════════════════════════════════════════════════════════════════════════
// ─────────────────────────────────────────────────────────────────────────
// 🎯 SECTION 1: VWAP SETTINGS
// ─────────────────────────────────────────────────────────────────────────
vwap_group = "═══ 🎯 VWAP Configuration ═══"
show_daily_vwap = input.bool(true, "Show Daily VWAP", group=vwap_group)
daily_vwap_color = input.color(color.white, "Daily VWAP Color", group=vwap_group)
daily_vwap_width = input.int(2, "Daily VWAP Width", minval=1, maxval=5, group=vwap_group)
show_weekly_vwap = input.bool(true, "Show Weekly VWAP", group=vwap_group)
weekly_vwap_color = input.color(color.blue, "Weekly VWAP Color", group=vwap_group)
weekly_vwap_width = input.int(3, "Weekly VWAP Width", minval=1, maxval=5, group=vwap_group)
vwap_touch_sensitivity = input.float(0.05, "Touch Sensitivity (%)", minval=0.01, maxval=1.0, step=0.01, tooltip="Distance from VWAP to consider a 'touch' (percentage)", group=vwap_group)
// ─────────────────────────────────────────────────────────────────────────
// 📈 SECTION 2: SIGNAL SETTINGS
// ─────────────────────────────────────────────────────────────────────────
signal_group = "═══ 📈 Signal Configuration ═══"
require_confirmation = input.bool(true, "Require Candle Confirmation", tooltip="Wait for candle close to confirm pattern", group=signal_group)
min_wick_ratio = input.float(2.0, "Min Wick/Body Ratio", minval=0.5, maxval=10.0, step=0.5, tooltip="Minimum ratio for rejection wick vs body", group=signal_group)
show_long_signals = input.bool(true, "Show LONG Signals (Bounce)", group=signal_group)
show_short_signals = input.bool(true, "Show SHORT Signals (Rejection)", group=signal_group)
// ─────────────────────────────────────────────────────────────────────────
// 🔥 SECTION 3: VOLUME CONFLUENCE
// ─────────────────────────────────────────────────────────────────────────
volume_group = "═══ 🔥 Volume Confluence ═══"
use_volume_filter = input.bool(true, "Enable Volume Filter", group=volume_group)
volume_ma_length = input.int(20, "Volume MA Length", minval=5, maxval=200, group=volume_group)
volume_spike_multiplier = input.float(1.5, "Volume Spike Multiplier", minval=1.0, maxval=5.0, step=0.1, tooltip="Volume must be X times above MA", group=volume_group)
// ─────────────────────────────────────────────────────────────────────────
// 🌊 SECTION 4: ICHIMOKU CONFLUENCE
// ─────────────────────────────────────────────────────────────────────────
ichimoku_group = "═══ 🌊 Ichimoku Confluence ═══"
use_ichimoku_filter = input.bool(true, "Enable Ichimoku Filter", group=ichimoku_group)
tenkan_period = input.int(9, "Tenkan Period", minval=1, group=ichimoku_group)
kijun_period = input.int(26, "Kijun Period", minval=1, group=ichimoku_group)
senkou_span_b_period = input.int(52, "Senkou Span B Period", minval=1, group=ichimoku_group)
displacement = input.int(26, "Displacement", minval=1, group=ichimoku_group)
ichimoku_require_above_kijun_long = input.bool(true, "LONG: Require Above Kijun", tooltip="For bullish signals, price must be above Kijun", group=ichimoku_group)
ichimoku_require_below_kijun_short = input.bool(true, "SHORT: Require Below Kijun", tooltip="For bearish signals, price must be below Kijun", group=ichimoku_group)
ichimoku_require_above_cloud_long = input.bool(false, "LONG: Require Above Cloud", group=ichimoku_group)
ichimoku_require_below_cloud_short = input.bool(false, "SHORT: Require Below Cloud", group=ichimoku_group)
// ─────────────────────────────────────────────────────────────────────────
// 📊 SECTION 5: RSI CONFLUENCE
// ─────────────────────────────────────────────────────────────────────────
rsi_group = "═══ 📊 RSI Confluence ═══"
use_rsi_filter = input.bool(true, "Enable RSI Filter", group=rsi_group)
rsi_length = input.int(14, "RSI Length", minval=1, group=rsi_group)
rsi_oversold = input.int(30, "RSI Oversold Level", minval=0, maxval=50, group=rsi_group)
rsi_overbought = input.int(70, "RSI Overbought Level", minval=50, maxval=100, group=rsi_group)
// ─────────────────────────────────────────────────────────────────────────
// 🎲 SECTION 6: STOCHASTIC RSI CONFLUENCE
// ─────────────────────────────────────────────────────────────────────────
stoch_group = "═══ 🎲 Stochastic RSI Confluence ═══"
use_stoch_filter = input.bool(true, "Enable Stochastic RSI Filter", group=stoch_group)
stoch_length = input.int(14, "Stoch Length", minval=1, group=stoch_group)
stoch_k = input.int(3, "Stoch %K", minval=1, group=stoch_group)
stoch_d = input.int(3, "Stoch %D", minval=1, group=stoch_group)
stoch_oversold = input.int(20, "Stoch Oversold", minval=0, maxval=50, group=stoch_group)
stoch_overbought = input.int(80, "Stoch Overbought", minval=50, maxval=100, group=stoch_group)
// ─────────────────────────────────────────────────────────────────────────
// 🎨 SECTION 7: DISPLAY SETTINGS
// ─────────────────────────────────────────────────────────────────────────
display_group = "═══ 🎨 Display Settings ═══"
show_vwap_touch_zones = input.bool(true, "Show Touch Zones", group=display_group)
show_info_panel = input.bool(true, "Show Info Panel", group=display_group)
show_alerts = input.bool(true, "Enable Alerts", group=display_group)
// ═════════════════════════════════════════════════════════════════════════
// 📐 CALCULS PRINCIPAUX
// ═════════════════════════════════════════════════════════════════════════
// ─────────────────────────────────────────────────────────────────────────
// VWAP Calculations
// ─────────────────────────────────────────────────────────────────────────
vwap_src = hlc3
// Daily VWAP
daily_start = ta.change(time('D')) != 0
var float daily_cum_volume = 0.0
var float daily_cum_pv = 0.0
if daily_start
daily_cum_volume := 0.0
daily_cum_pv := 0.0
daily_cum_volume += volume
daily_cum_pv += vwap_src * volume
daily_vwap = daily_cum_pv / daily_cum_volume
// Weekly VWAP
weekly_start = ta.change(time('W')) != 0
var float weekly_cum_volume = 0.0
var float weekly_cum_pv = 0.0
if weekly_start
weekly_cum_volume := 0.0
weekly_cum_pv := 0.0
weekly_cum_volume += volume
weekly_cum_pv += vwap_src * volume
weekly_vwap = weekly_cum_pv / weekly_cum_volume
// ─────────────────────────────────────────────────────────────────────────
// VWAP Touch Detection
// ─────────────────────────────────────────────────────────────────────────
touch_threshold_percent = vwap_touch_sensitivity / 100
// Daily VWAP Touch
daily_touch_range_high = daily_vwap * (1 + touch_threshold_percent)
daily_touch_range_low = daily_vwap * (1 - touch_threshold_percent)
daily_touching = (low <= daily_touch_range_high and high >= daily_touch_range_low)
// Weekly VWAP Touch
weekly_touch_range_high = weekly_vwap * (1 + touch_threshold_percent)
weekly_touch_range_low = weekly_vwap * (1 - touch_threshold_percent)
weekly_touching = (low <= weekly_touch_range_high and high >= weekly_touch_range_low)
// ─────────────────────────────────────────────────────────────────────────
// Candlestick Pattern Recognition
// ─────────────────────────────────────────────────────────────────────────
body = math.abs(close - open)
upper_wick = high - math.max(close, open)
lower_wick = math.min(close, open) - low
// Bullish Rejection Patterns (for LONG)
is_hammer = lower_wick > body * min_wick_ratio and upper_wick < body and close > open
is_bullish_pin_bar = lower_wick > body * min_wick_ratio and close > open
is_bullish_engulfing = close > open and close[1] < open[1] and close > open[1] and open < close[1] and body > body[1] * 1.5
bullish_rejection_pattern = is_hammer or is_bullish_pin_bar or is_bullish_engulfing
// Bearish Rejection Patterns (for SHORT)
is_shooting_star = upper_wick > body * min_wick_ratio and lower_wick < body and close < open
is_bearish_pin_bar = upper_wick > body * min_wick_ratio and close < open
is_bearish_engulfing = close < open and close[1] > open[1] and close < open[1] and open > close[1] and body > body[1] * 1.5
bearish_rejection_pattern = is_shooting_star or is_bearish_pin_bar or is_bearish_engulfing
// ─────────────────────────────────────────────────────────────────────────
// Volume Filter
// ─────────────────────────────────────────────────────────────────────────
volume_ma = ta.sma(volume, volume_ma_length)
volume_spike = volume > volume_ma * volume_spike_multiplier
volume_filter_pass = not use_volume_filter or volume_spike
// ─────────────────────────────────────────────────────────────────────────
// Ichimoku Calculations
// ─────────────────────────────────────────────────────────────────────────
donchian(len) =>
math.avg(ta.lowest(len), ta.highest(len))
tenkan = donchian(tenkan_period)
kijun = donchian(kijun_period)
senkou_span_a = math.avg(tenkan, kijun)
senkou_span_b = donchian(senkou_span_b_period)
// Ichimoku Filters
price_above_kijun = close > kijun
price_below_kijun = close < kijun
price_above_cloud = close > math.max(senkou_span_a[displacement], senkou_span_b[displacement])
price_below_cloud = close < math.min(senkou_span_a[displacement], senkou_span_b[displacement])
ichimoku_long_ok = not use_ichimoku_filter or (not ichimoku_require_above_kijun_long or price_above_kijun) and (not ichimoku_require_above_cloud_long or price_above_cloud)
ichimoku_short_ok = not use_ichimoku_filter or (not ichimoku_require_below_kijun_short or price_below_kijun) and (not ichimoku_require_below_cloud_short or price_below_cloud)
// ─────────────────────────────────────────────────────────────────────────
// RSI Calculations
// ─────────────────────────────────────────────────────────────────────────
rsi = ta.rsi(close, rsi_length)
rsi_long_ok = not use_rsi_filter or rsi < rsi_overbought
rsi_short_ok = not use_rsi_filter or rsi > rsi_oversold
// ─────────────────────────────────────────────────────────────────────────
// Stochastic RSI Calculations
// ─────────────────────────────────────────────────────────────────────────
rsi_for_stoch = ta.rsi(close, stoch_length)
stoch_k_value = ta.sma(ta.stoch(rsi_for_stoch, rsi_for_stoch, rsi_for_stoch, stoch_k), stoch_d)
stoch_d_value = ta.sma(stoch_k_value, stoch_d)
stoch_long_ok = not use_stoch_filter or (stoch_k_value < stoch_overbought and stoch_k_value > stoch_oversold)
stoch_short_ok = not use_stoch_filter or (stoch_k_value > stoch_oversold and stoch_k_value < stoch_overbought)
// ═════════════════════════════════════════════════════════════════════════
// 🎯 SIGNAL GENERATION
// ═════════════════════════════════════════════════════════════════════════
// ─────────────────────────────────────────────────────────────────────────
// LONG Signals (VWAP Bounce)
// ─────────────────────────────────────────────────────────────────────────
long_daily_touch = show_daily_vwap and daily_touching and bullish_rejection_pattern and close > daily_vwap
long_weekly_touch = show_weekly_vwap and weekly_touching and bullish_rejection_pattern and close > weekly_vwap
long_signal_base = (long_daily_touch or long_weekly_touch) and show_long_signals
// Apply all confluence filters for LONG
long_signal = long_signal_base and
volume_filter_pass and
ichimoku_long_ok and
rsi_long_ok and
stoch_long_ok
// Confirmation logic
long_confirmed = require_confirmation ? long_signal and not long_signal[1] : long_signal
// ─────────────────────────────────────────────────────────────────────────
// SHORT Signals (VWAP Rejection)
// ─────────────────────────────────────────────────────────────────────────
short_daily_touch = show_daily_vwap and daily_touching and bearish_rejection_pattern and close < daily_vwap
short_weekly_touch = show_weekly_vwap and weekly_touching and bearish_rejection_pattern and close < weekly_vwap
short_signal_base = (short_daily_touch or short_weekly_touch) and show_short_signals
// Apply all confluence filters for SHORT
short_signal = short_signal_base and
volume_filter_pass and
ichimoku_short_ok and
rsi_short_ok and
stoch_short_ok
// Confirmation logic
short_confirmed = require_confirmation ? short_signal and not short_signal[1] : short_signal
// ═════════════════════════════════════════════════════════════════════════
// 📊 PLOTTING
// ═════════════════════════════════════════════════════════════════════════
// ─────────────────────────────────────────────────────────────────────────
// Plot VWAP Lines
// ─────────────────────────────────────────────────────────────────────────
plot(show_daily_vwap ? daily_vwap : na, "Daily VWAP", color=daily_vwap_color, linewidth=daily_vwap_width, style=plot.style_line)
plot(show_weekly_vwap ? weekly_vwap : na, "Weekly VWAP", color=weekly_vwap_color, linewidth=weekly_vwap_width, style=plot.style_line)
// ─────────────────────────────────────────────────────────────────────────
// Plot Touch Zones (Optional)
// ─────────────────────────────────────────────────────────────────────────
bgcolor(show_vwap_touch_zones and daily_touching ? color.new(daily_vwap_color, 95) : na, title="Daily Touch Zone")
bgcolor(show_vwap_touch_zones and weekly_touching ? color.new(weekly_vwap_color, 95) : na, title="Weekly Touch Zone")
// ─────────────────────────────────────────────────────────────────────────
// Plot Signals
// ─────────────────────────────────────────────────────────────────────────
plotshape(long_confirmed, "LONG Signal", shape.triangleup, location.belowbar, color=color.new(color.lime, 0), size=size.normal, text="LONG\n🚀")
plotshape(short_confirmed, "SHORT Signal", shape.triangledown, location.abovebar, color=color.new(color.red, 0), size=size.normal, text="SHORT\n💥")
// ─────────────────────────────────────────────────────────────────────────
// Labels with Details
// ─────────────────────────────────────────────────────────────────────────
if long_confirmed
vwap_type = long_daily_touch ? "Daily" : "Weekly"
pattern_name = is_hammer ? "Hammer" : is_bullish_pin_bar ? "Pin Bar" : "Engulfing"
label_text = "🚀 LONG SETUP\n" +
"VWAP: " + vwap_type + "\n" +
"Pattern: " + pattern_name + "\n" +
"Entry: " + str.tostring(close, "#.##") + "\n" +
"Stop: " + str.tostring(low * 0.9995, "#.##")
label.new(bar_index, low, label_text,
style=label.style_label_up,
color=color.new(color.green, 20),
textcolor=color.white,
size=size.normal)
if short_confirmed
vwap_type = short_daily_touch ? "Daily" : "Weekly"
pattern_name = is_shooting_star ? "Shooting Star" : is_bearish_pin_bar ? "Pin Bar" : "Engulfing"
label_text = "💥 SHORT SETUP\n" +
"VWAP: " + vwap_type + "\n" +
"Pattern: " + pattern_name + "\n" +
"Entry: " + str.tostring(close, "#.##") + "\n" +
"Stop: " + str.tostring(high * 1.0005, "#.##")
label.new(bar_index, high, label_text,
style=label.style_label_down,
color=color.new(color.red, 20),
textcolor=color.white,
size=size.normal)
// ═════════════════════════════════════════════════════════════════════════
// 📋 INFO PANEL
// ═════════════════════════════════════════════════════════════════════════
if show_info_panel and barstate.islast
var table info_table = table.new(position.top_right, 2, 12,
bgcolor=color.new(color.black, 85),
border_width=2,
border_color=color.new(color.gray, 50))
// Header
table.cell(info_table, 0, 0, "NEO VWAP Strategy", text_color=color.yellow, text_size=size.normal, bgcolor=color.new(color.gray, 70))
table.cell(info_table, 1, 0, "Status", text_color=color.yellow, text_size=size.normal, bgcolor=color.new(color.gray, 70))
// Daily VWAP Info
table.cell(info_table, 0, 1, "Daily VWAP", text_color=color.white, text_size=size.small)
table.cell(info_table, 1, 1, str.tostring(daily_vwap, "#.##"), text_color=daily_vwap_color, text_size=size.small)
// Weekly VWAP Info
table.cell(info_table, 0, 2, "Weekly VWAP", text_color=color.white, text_size=size.small)
table.cell(info_table, 1, 2, str.tostring(weekly_vwap, "#.##"), text_color=weekly_vwap_color, text_size=size.small)
// Current Price
table.cell(info_table, 0, 3, "Current Price", text_color=color.white, text_size=size.small)
table.cell(info_table, 1, 3, str.tostring(close, "#.##"), text_color=color.white, text_size=size.small)
// Volume Status
vol_status = volume_spike ? "🔥 High" : "Normal"
vol_color = volume_spike ? color.lime : color.gray
table.cell(info_table, 0, 4, "Volume", text_color=color.white, text_size=size.small)
table.cell(info_table, 1, 4, vol_status, text_color=vol_color, text_size=size.small)
// RSI Status
rsi_status = rsi > rsi_overbought ? "Overbought" : rsi < rsi_oversold ? "Oversold" : "Neutral"
rsi_color = rsi > rsi_overbought ? color.red : rsi < rsi_oversold ? color.lime : color.gray
table.cell(info_table, 0, 5, "RSI", text_color=color.white, text_size=size.small)
table.cell(info_table, 1, 5, str.tostring(rsi, "#.#") + " (" + rsi_status + ")", text_color=rsi_color, text_size=size.small)
// Stoch Status
stoch_status = stoch_k_value > stoch_overbought ? "Overbought" : stoch_k_value < stoch_oversold ? "Oversold" : "Neutral"
stoch_color = stoch_k_value > stoch_overbought ? color.red : stoch_k_value < stoch_oversold ? color.lime : color.gray
table.cell(info_table, 0, 6, "Stoch RSI", text_color=color.white, text_size=size.small)
table.cell(info_table, 1, 6, str.tostring(stoch_k_value, "#.#") + " (" + stoch_status + ")", text_color=stoch_color, text_size=size.small)
// Ichimoku Position
ichi_vs_kijun = close > kijun ? "Above Kijun ✅" : "Below Kijun ❌"
ichi_color = close > kijun ? color.lime : color.red
table.cell(info_table, 0, 7, "vs Kijun", text_color=color.white, text_size=size.small)
table.cell(info_table, 1, 7, ichi_vs_kijun, text_color=ichi_color, text_size=size.small)
// Touch Status
touch_status = daily_touching ? "Daily Touch 🎯" : weekly_touching ? "Weekly Touch 🎯" : "No Touch"
touch_color = (daily_touching or weekly_touching) ? color.yellow : color.gray
table.cell(info_table, 0, 8, "VWAP Touch", text_color=color.white, text_size=size.small)
table.cell(info_table, 1, 8, touch_status, text_color=touch_color, text_size=size.small)
// Pattern Detection
pattern_detected = bullish_rejection_pattern ? "Bullish 🟢" : bearish_rejection_pattern ? "Bearish 🔴" : "None"
pattern_color = bullish_rejection_pattern ? color.lime : bearish_rejection_pattern ? color.red : color.gray
table.cell(info_table, 0, 9, "Pattern", text_color=color.white, text_size=size.small)
table.cell(info_table, 1, 9, pattern_detected, text_color=pattern_color, text_size=size.small)
// Signal Status
signal_status = long_confirmed ? "LONG 🚀" : short_confirmed ? "SHORT 💥" : "Waiting..."
signal_color = long_confirmed ? color.lime : short_confirmed ? color.red : color.gray
table.cell(info_table, 0, 10, "Signal", text_color=color.white, text_size=size.small)
table.cell(info_table, 1, 10, signal_status, text_color=signal_color, text_size=size.small, bgcolor=long_confirmed or short_confirmed ? color.new(signal_color, 80) : na)
// Confluence Score
confluence_score = 0
if volume_filter_pass
confluence_score += 1
if ichimoku_long_ok or ichimoku_short_ok
confluence_score += 1
if rsi_long_ok or rsi_short_ok
confluence_score += 1
if stoch_long_ok or stoch_short_ok
confluence_score += 1
confluence_text = str.tostring(confluence_score) + "/4"
confluence_color = confluence_score >= 3 ? color.lime : confluence_score >= 2 ? color.yellow : color.red
table.cell(info_table, 0, 11, "Confluence", text_color=color.white, text_size=size.small)
table.cell(info_table, 1, 11, confluence_text, text_color=confluence_color, text_size=size.small)
// ═════════════════════════════════════════════════════════════════════════
// 🔔 ALERTS
// ═════════════════════════════════════════════════════════════════════════
if show_alerts
if long_confirmed
vwap_type = long_daily_touch ? "Daily" : "Weekly"
alert("🚀 NEO VWAP LONG SIGNAL!\n" +
"VWAP: " + vwap_type + "\n" +
"Price: " + str.tostring(close, "#.##") + "\n" +
"Confluence: Strong ✅",
alert.freq_once_per_bar_close)
if short_confirmed
vwap_type = short_daily_touch ? "Daily" : "Weekly"
alert("💥 NEO VWAP SHORT SIGNAL!\n" +
"VWAP: " + vwap_type + "\n" +
"Price: " + str.tostring(close, "#.##") + "\n" +
"Confluence: Strong ✅",
alert.freq_once_per_bar_close)
OMAF Capital - Résumé des performances
Compilation de 5 paires de trading, Généré le 09/01/2026
Résumé Exécutif
Par Indicateur
Sessions Optimales
Détails Complets








Nasdaq - Matrice décisionnelle (287 trades)
De: juil2025-jan 2026, Win rate Global: 96.2%, 276W-11L
Matrice Décision
Décision finale
Liste de quelques trades Nasdaq
Analyse pertes



















