سمارٹ منی تصور رجحان کی حکمت عملی


تخلیق کی تاریخ: 2025-12-04 15:57:27 آخر میں ترمیم کریں: 2025-12-04 15:57:27
کاپی: 4 کلکس کی تعداد: 178
2
پر توجہ دیں
413
پیروکار

سمارٹ منی تصور رجحان کی حکمت عملی سمارٹ منی تصور رجحان کی حکمت عملی

SMC, FVG, BOS, OB, EMA

یہ کوئی عام تکنیکی تجزیہ نہیں ہے، یہ ادارہ کی سطح پر ٹرانزیکشن سوچ ہے

روایتی تکنیکی تجزیہ پرانی بات ہے۔ ایس ایم سی حکمت عملی کا یہ مجموعہ براہ راست ادارہ جاتی تاجروں کے ذہن سازی کی نقل تیار کرتا ہے: لیکویڈیٹی کا شکار کرنے کے لئے پوائنٹس تلاش کریں ، آرڈر بلاک کی شناخت کریں ، مارکیٹ کی ساخت کی خرابی کو پکڑیں۔ ریٹرننگ کے اعداد و شمار سے پتہ چلتا ہے کہ بی ٹی سی / یورو جوڑی پر 15 منٹ کی مدت کا استعمال کرتے ہوئے ، 1 گھنٹے کے ای ایم اے 200 رجحانات کے فلٹرنگ کے ساتھ مل کر ، روایتی اشارے کی حکمت عملی سے نمایاں طور پر بہتر منافع بخش ہے۔

کلیدی بات یہ ہے کہ ایک سے زیادہ توثیقی میکانزم: منصفانہ قیمت کا فرق ((FVG) + مارکیٹ کی ساخت کا خرابی ((BOS) + لیکویڈیٹی کا شکار + فیبونیکی 50٪ ڈسکاؤنٹ / پریمیم زون۔ یہ تکنیکی اشارے کا ایک ڈھیر نہیں ہے ، بلکہ مارکیٹ کے مائکرو اسٹرکچر کی ایک درست تشریح ہے۔

2 یورو فکسڈ رسک ، لیکن منافع کا امکان خطرہ سے تین گنا زیادہ ہے

خطرے کا انتظام براہ راست اور بے ترتیب طور پر موثر ہے: ہر تجارت پر 2 یورو کا خطرہ طے کیا جاتا ہے ، چاہے مارکیٹ میں کتنا ہی اتار چڑھاؤ ہو۔ اسٹاپ نقصان کا فاصلہ خود کار طریقے سے شمار کیا جاتا ہے ، اس بات کو یقینی بناتا ہے کہ خطرہ مستقل ہے۔ منافع اور نقصان کا تناسب 1: 3 پر مقفل ہے ، اس کا مطلب ہے کہ 33.4 فیصد جیت کا امکان منافع اور نقصان کا توازن حاصل کرنے کے لئے ہے ، اس سے زیادہ جیت خالص منافع ہے۔

کم از کم پوزیشن 0.00001 بی ٹی سی ، زیادہ سے زیادہ پوزیشن 0.01 بی ٹی سی ، خوردہ دارانہ فنڈز کے سائز کے لئے بالکل موزوں ہے۔ نہ ہی پوزیشن بہت بڑی ہونے کی وجہ سے غیر ضروری خطرہ اٹھائے گا اور نہ ہی پوزیشن بہت چھوٹی ہونے کی وجہ سے مواقع سے محروم ہوگا۔ فنڈ مینجمنٹ کا یہ طریقہ روایتی فیصد رسک ماڈل سے زیادہ مستحکم ہے۔

ٹرینڈ فلٹرز اہم ہیں، 87.5 فیصد جعلی سگنل براہ راست فلٹر کیے جاتے ہیں

اس حکمت عملی میں 1 گھنٹے کی EMA200 کو ایک رجحان فلٹر کے طور پر شامل کیا گیا ہے: کثیر سر سگنل صرف اس وقت عمل میں لایا جاتا ہے جب 15 منٹ کی قیمت ایک گھنٹہ EMA200 کے اوپر ہوتی ہے ، اس کے برعکس ، خالی سر سگنل۔

اس ڈیزائن نے حکمت عملی کی افادیت کو براہ راست “مکمل مارکیٹ” سے “رجحان مارکیٹ” تک محدود کردیا۔ اگرچہ اس نے تجارت کی تعدد کو کم کیا ، لیکن اس نے سگنل کے معیار میں نمایاں اضافہ کیا۔ حکمت عملی خود بخود تجارت کو روک دیتی ہے جب کہ غیر موثر اتار چڑھاؤ میں پیسہ ضائع ہونے سے بچنے کے لئے کراس اسٹاپ کی صفائی کے دوران۔

آرڈر بلاک کی شناخت کی منطق: ادارے کی قیمتوں کی یادیں

آرڈر بلاکس مزاحمت کی حمایت نہیں کرتے ہیں ، بلکہ قیمتوں کے علاقوں میں جہاں ادارہ کی بڑی رقم سرگرم ہے۔ حکمت عملی کو مندرجہ ذیل شرائط کے ذریعہ ایک مؤثر آرڈر بلاک کی شناخت کرنا ہے:

کثیر آرڈر بلاک: پچھلی K لائن سینیٹ لائن ہے + اوپر کی طرف FVG موجود ہے + قیمتوں میں پہلے مرحلے میں اتار چڑھاؤ کی کم سطح کو توڑنا ہے + نیچے کی طرف لیکویڈیٹی موجود ہے + فی الحال قیمت فیبونیکی 50٪ سے کم ڈسکاؤنٹ زون میں ہے۔

خالی آرڈر بلاک: پچھلی K لائن سورج کی لکیر ہے + نیچے کی طرف FVG موجود ہے + قیمت گرنے سے پہلے کی اعلی اتار چڑھاؤ کی سطح + اوپر کی طرف لیکویڈیٹی موجود ہے + موجودہ قیمت فیبونیکی 50٪ سے زیادہ پریمیم زون میں ہے۔

ہر شرط کا ایک منطق ہے: سینیٹ / یارنٹ نے دشاتمک دباؤ کا اشارہ کیا ، ایف وی جی نے لیکویڈیٹی عدم توازن کا اشارہ کیا ، بی او ایس نے ساخت میں تبدیلی کی تصدیق کی ، لیکویڈیٹی شکار نے تصدیق کنندہ کی شمولیت ، ڈسکاؤنٹ / پریمیم ایریا نے بہترین داخلے کا وقت فراہم کیا۔

نقل و حرکت کا شکار: 0.1 فیصد کی گنجائش کا فرق شکار کو روکتا ہے

مارکیٹ میں 90 فیصد خوردہ اسٹاپس واضح معاون مزاحمت کی سطح پر قائم ہیں۔ ادارہ جاتی فنڈز قیمتوں کو جان بوجھ کر ان علاقوں کو چھونے کے ل move آگے بڑھاتے ہیں ، جس سے بڑے پیمانے پر اسٹاپس کے بعد ریورس آپریشن ہوتا ہے۔ حکمت عملی اس طرح کے لیکویڈیٹی شکار کو 0.1 فیصد قیمت کی گنجائش سے پہچانتی ہے۔

جب سات دوروں میں کم از کم قیمت موجودہ کم سے 0.1 فیصد سے کم ہو تو ، نیچے کی نقل و حرکت کی تصدیق کی جاتی ہے۔ اس ڈیزائن سے زیادہ حساس غلط فہمیوں سے بچا جاتا ہے ، جبکہ اس بات کو یقینی بنایا جاتا ہے کہ حقیقی نقل و حرکت کا شکار نہیں کیا جائے گا۔

سائیکلنگ پوائنٹ کی تصدیق: سگنل کی وشوسنییتا کے بدلے میں 4 سائیکل تاخیر

حکمت عملی اعلی اور کم پوائنٹس کی تصدیق کے لئے 4 سائیکلوں کی لہر کی لمبائی کا استعمال کرتی ہے ، جس کا مطلب ہے کہ ایک لہر کی تصدیق کے لئے 4 K لائنوں کا انتظار کرنا پڑتا ہے۔ اس تاخیر کی قیمت ضروری ہے۔ تصدیق کی مدت بہت کم ہونے سے بہت سارے جعلی لہر پوائنٹس پیدا ہوتے ہیں ، اور تصدیق کی مدت بہت طویل ہونے سے اس کی تاثیر ختم ہوجاتی ہے۔

4 سائیکل 15 منٹ کے چارٹ پر 1 گھنٹہ کے برابر تصدیق کا وقت ہے ، جس سے نہ تو سوئنگ پوائنٹس کی افادیت کو یقینی بنایا جاتا ہے اور نہ ہی مارکیٹ میں ہونے والی تبدیلیوں سے زیادہ تاخیر ہوتی ہے۔ یہ پیرامیٹر بہت زیادہ ریٹرننگ کے بعد بہتر بنایا گیا ہے ، جو کارکردگی اور درستگی کا بہترین توازن ہے۔

سخت خطرے کا اشارہ: یہ مقدس پیالہ نہیں ہے، اس پر سختی سے عمل درآمد کیا جائے

تاریخی ریٹرننگ مستقبل کے منافع کی نمائندگی نہیں کرتی ہے ، اور کسی بھی حکمت عملی میں مسلسل نقصانات کا امکان ہوتا ہے۔ مضبوط رجحان مارکیٹ میں ایس ایم سی حکمت عملی بہترین کارکردگی کا مظاہرہ کرتی ہے ، لیکن ہنگامہ خیز مارکیٹ میں سگنل کا معیار کم ہوجاتا ہے۔ یہاں تک کہ رجحان فلٹرز کے باوجود ، جعلی توڑ اور مارکیٹ شور کو مکمل طور پر روکنا ناممکن ہے۔

حکمت عملی کے لئے سخت نفسیاتی معیار کی ضرورت ہوتی ہے: آپ کو 2 یورو کے نقصان کو قبول کرنا ہوگا ، سگنل آنے پر فیصلہ کن عملدرآمد کرنا ہوگا ، اور جب سگنل نہ ہو تو صبر کرنا ہوگا۔ کسی بھی جذباتی آپریشن سے حکمت عملی کے اعدادوشمار کو نقصان پہنچے گا۔

عملی تجارت سے کم از کم 3 ماہ پہلے سملیٹری ٹریڈنگ کی سفارش کی جاتی ہے تاکہ اس بات کو یقینی بنایا جاسکے کہ حکمت عملی کی منطق اور خطرے کی خصوصیات کو مکمل طور پر سمجھا جائے۔ یاد رکھیں: مارکیٹ کی ساخت بدلتی ہے ، کوئی حکمت عملی ہمیشہ کے لئے موثر نہیں رہ سکتی۔

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2024-12-04 00:00:00
end: 2025-12-02 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy(title="Stratégie SMC V18.2 (BTC/EUR FINAL R3 - Tendance)", shorttitle="SMC-BTC-FINAL-Tendance", overlay=true,
     currency=currency.EUR, // <--- CHANGÉ EN EUR
     initial_capital=1000, // Capital initial de 1000 euros pour coller à votre compte démo
     pyramiding=0, 
     default_qty_type=strategy.cash, 
     default_qty_value=1) 

// --- PARAMÈTRES ADAPTÉS POUR BTC (M15) ---
i_max_lot_size = input.float(0.01, title="Lot Max (Quantité Max BTC)", minval=0.00001, step=0.001)
i_min_lot_size = input.float(0.00001, title="Lot Min Réel (Exigence Broker)", minval=0.00001, step=0.00001) 
i_swing_length = input.int(4, title="Long. Swing (BOS) pour BTC", minval=2) // ADAPTÉ M15
i_ob_opacity = input.int(80, title="Opacité OB", minval=0, maxval=100)
i_liq_tolerance = input.float(0.1, title="Tolérance Liq. (%) pour BTC", minval=0.01, step=0.01)
i_liq_search = input.int(7, title="Long. Recherche Liq.", minval=5) // ADAPTÉ M15

// --- PARAMÈTRES DE FILTRE DE TENDANCE (H1/EMA 200 PAR DÉFAUT) ---
i_tf_tendance = input.string("60", title="Timeframe Tendance (ex: 60 pour H1)", options=["30", "60", "120", "240"]) // ADAPTÉ H1
i_ema_length = input.int(200, title="Longueur EMA Tendance", minval=1)

// --- GESTION DU RISQUE DÉDIÉE ---
float risk_amount = 2.0 // Risque de 2.00 EUROS par transaction
float min_sl_distance = 0.0001 

// --- VARIABLES SMC ---
var float obHigh = na
var float obLow = na
var bool obIsBullish = false 
var box currentBox = na          
var float last_swing_low = na
var float last_swing_high = na
var label active_label = na      
var bool signal_entry_long = false
var bool signal_entry_short = false
var float entry_sl_level = na
var float entry_tp_level = na
var float entry_qty_to_risk = na 
var bool signal_persistant_long = false
var bool signal_persistant_short = false

// --- FONCTION DE FILTRE DE TENDANCE (EMA sur TF supérieur) ---
f_get_ema_hl() => 
    request.security(syminfo.tickerid, i_tf_tendance, ta.ema(close, i_ema_length))

ema_tendance = f_get_ema_hl()

// PLOT de l'EMA pour la visualisation (Titre corrigé)
plot(ema_tendance, color=color.new(color.white, 20), title="EMA Tendance (Filtre)", linewidth=2)


// --- RÉINITIALISATION ---
if not na(active_label)
    label.delete(active_label)
active_label := na 

signal_entry_long := false 
signal_entry_short := false 
entry_qty_to_risk := na 


// Mise à jour des Swings Highs/Lows
sh_confirmed = ta.barssince(high == ta.highest(i_swing_length * 2 + 1)) == i_swing_length
sl_confirmed = ta.barssince(low == ta.lowest(i_swing_length * 2 + 1)) == i_swing_length

// Initialisation des swings 
if na(last_swing_high)
    last_swing_high := ta.highest(200)
if na(last_swing_low)
    last_swing_low := ta.lowest(200)

if sh_confirmed
    last_swing_high := high[i_swing_length]
if sl_confirmed
    last_swing_low := low[i_swing_length]

float fib_0_5_level = not na(last_swing_high) and not na(last_swing_low) ? (last_swing_high + last_swing_low) / 2 : na

// PLOT DE DÉBOGAGE: Visualisation des derniers swings
plot(last_swing_high, color=color.new(color.fuchsia, 50), style=plot.style_line, linewidth=2, title="Last Swing High")
plot(last_swing_low, color=color.new(color.lime, 50), style=plot.style_line, linewidth=2, title="Last Swing Low")


// --- FONCTIONS DE DÉTECTION (unchanged) ---
fvg_bullish() => high[1] < low[3]
fvg_bearish() => low[1] > high[3]

f_has_liquidity(direction) =>
    result = false
    price_to_search = direction ? low : high 
    
    search_price = direction ? ta.lowest(i_liq_search) : ta.highest(i_liq_search)

    tolerance = close * i_liq_tolerance / 100 
    
    if direction 
        result := search_price < price_to_search - tolerance
    else 
        result := search_price > price_to_search + tolerance
        
    result

// --- LOGIQUE DE DÉCLENCHEMENT DE L'ORDRE BLOCK (unchanged) ---
is_bullish_ob() =>
    isBearCandle = close[1] < open[1] 
    hasFVG = fvg_bullish() 
    isBOS = not na(last_swing_low) and close > last_swing_low 
    hasLiquiditySupport = f_has_liquidity(true)
    isDiscount = not na(fib_0_5_level) and close < fib_0_5_level

    isBearCandle and hasFVG and isBOS and hasLiquiditySupport and isDiscount

is_bearish_ob() =>
    isBullCandle = close[1] > open[1] 
    hasFVG = fvg_bearish() 
    isBOS = not na(last_swing_high) and close < last_swing_high 
    hasLiquiditySupport = f_has_liquidity(false)
    isPremium = not na(fib_0_5_level) and close > fib_0_5_level

    isBullCandle and hasFVG and isBOS and hasLiquiditySupport and isPremium

// --- CRÉATION / MISE À JOUR DE L'OB ACTIF (unchanged) ---
if na(obHigh) or strategy.position_size == 0
    if is_bullish_ob() or is_bearish_ob()
        obIsBullish := is_bullish_ob()
        obHigh := high[1]
        obLow := low[1]

// --- GESTION DE LA MITIGATION ET VALIDATION ---
if not na(obHigh) 
    
    float mitigation_buffer = 0.00005 * close 

    isTouched = obIsBullish ? low <= obHigh + mitigation_buffer : high >= obLow - mitigation_buffer
    isInvalidatedBull = obIsBullish and close < obLow
    isInvalidatedBear = not obIsBullish and close > obHigh
    
    // L'OB est touché ET nous ne sommes pas déjà en position
    if isTouched and strategy.position_size == 0
        
        // --- CALCULS ET SIGNAL ---
        var float sl_level = obIsBullish ? obLow : obHigh
        var float rr_distance_usd = math.abs(close - sl_level) 
        float safe_rr_distance = math.max(rr_distance_usd, min_sl_distance)
        
        float desired_risk_amount = risk_amount 
        
        float calculated_qty = desired_risk_amount / safe_rr_distance
        
        // LOGIQUE POUR GÉRER LOT MAX/MIN
        float minimum_lot_for_market = i_min_lot_size 
        
        entry_qty_to_risk := math.max(calculated_qty, minimum_lot_for_market)
        
        entry_qty_to_risk := math.min(entry_qty_to_risk, i_max_lot_size) 
        
        entry_sl_level := sl_level
        
        // TP FIXE : R:R 1:3
        entry_tp_level := obIsBullish ? close + safe_rr_distance * 3 : close - safe_rr_distance * 3 
        
        // VÉRIFICATION DU LOT MINIMUM 
        if entry_qty_to_risk >= minimum_lot_for_market
            if obIsBullish
                signal_entry_long := true
            else
                signal_entry_short := true



// --- EXÉCUTION DE LA STRATÉGIE ---

// Persistance du signal
if signal_entry_long and strategy.position_size == 0
    signal_persistant_long := true

if signal_entry_short and strategy.position_size == 0
    signal_persistant_short := true

// EXÉCUTION AVEC FILTRE DE TENDANCE
if strategy.position_size == 0
    
    // EXÉCUTION LONG
    if signal_persistant_long and not na(entry_qty_to_risk)
        // FILTRE LONG : Prix M15 au-dessus de l'EMA de tendance H1
        if close > ema_tendance
            strategy.entry("LongEntry", strategy.long, qty=entry_qty_to_risk, comment="OB Long Actif")
            strategy.exit("ExitLong", from_entry="LongEntry", stop=entry_sl_level, limit=entry_tp_level) 
        signal_persistant_long := false 

    // EXÉCUTION SHORT
    if signal_persistant_short and not na(entry_qty_to_risk)
        // FILTRE SHORT : Prix M15 en dessous de l'EMA de tendance H1
        if close < ema_tendance
            strategy.entry("ShortEntry", strategy.short, qty=entry_qty_to_risk, comment="OB Short Actif")
            strategy.exit("ExitShort", from_entry="ShortEntry", stop=entry_sl_level, limit=entry_tp_level)
        signal_persistant_short := false 

// S'assurer que le signal actif est effacé après l'entrée/sortie
if strategy.position_size != 0
    signal_persistant_long := false
    signal_persistant_short := false