متحرک لیکویڈیٹی مارکیٹ کے ڈھانچے کو اپنانے والی تجارتی حکمت عملیوں کو آگے بڑھاتی ہے۔

LZ MSS SL TP ISL
تخلیق کی تاریخ: 2025-03-28 17:13:02 آخر میں ترمیم کریں: 2025-03-28 17:13:02
کاپی: 2 کلکس کی تعداد: 350
2
پر توجہ دیں
319
پیروکار

متحرک لیکویڈیٹی مارکیٹ کے ڈھانچے کو اپنانے والی تجارتی حکمت عملیوں کو آگے بڑھاتی ہے۔ متحرک لیکویڈیٹی مارکیٹ کے ڈھانچے کو اپنانے والی تجارتی حکمت عملیوں کو آگے بڑھاتی ہے۔

جائزہ

یہ ایک جدید تجارتی حکمت عملی ہے جس میں لیکویڈیٹی زون تجزیہ اور اندرونی مارکیٹ ڈھانچے کی حرکیات کو ملا کر اعلی امکانات کے داخلے کے مقامات کی نشاندہی کی جاتی ہے۔ اس حکمت عملی سے تاجروں کو مارکیٹ میں داخل ہونے کا ایک لچکدار اور عین مطابق طریقہ فراہم ہوتا ہے جس میں قیمتوں کے اہم مارکیٹ کی سطح کے ساتھ تعامل کو ٹریک کیا جاتا ہے اور اندرونی مارکیٹ میں تبدیلی کا استعمال کرتے ہوئے تجارت کو متحرک کیا جاتا ہے۔

حکمت عملی کا اصول

اس حکمت عملی کی بنیادی منطق دو اہم اجزاء پر مبنی ہے: لیکویڈیٹی زون کی شناخت اور اندرونی مارکیٹ میں تبدیلی۔ لیکویڈیٹی زون کو مقامی بلندیوں اور نچلی سطحوں کا تجزیہ کرکے متحرک طور پر طے کیا جاتا ہے ، جبکہ اندرونی مارکیٹ میں تبدیلی کی بنیاد پر مارکیٹ کی سمت میں تبدیلی کا اندازہ لگایا جاتا ہے۔

اس حکمت عملی کی بنیادی خصوصیات یہ ہیں:

  1. اندرونی مارکیٹ میں تبدیلی کی منطق: قیمتوں کے اہم سطح کو توڑنے پر مبنی ، روایتی چارٹ فارمیٹس پر انحصار نہیں کرنا
  2. لیکویڈیٹی زون ٹریکنگ: مارکیٹ کے کمزور حالات میں تجارت سے بچنے کے لئے اہم لیکویڈیٹی زون کی متحرک شناخت
  3. نمونہ لچک: تین تجارت کے طریقوں کی پیش کش “دونوں” ، “بلش صرف” اور “بیرش صرف”
  4. رسک مینجمنٹ: اپنی مرضی کے مطابق سٹاپ نقصان اور روکنے کی سطح
  5. ٹائم رینج کنٹرول: ٹرانزیکشن ٹائم فریم کو درست طریقے سے کنٹرول کریں

اسٹریٹجک فوائد

  1. متحرک موافقت: حکمت عملی مارکیٹ کے ڈھانچے میں تبدیلیوں کے لئے تیزی سے جواب دینے کے قابل ہے
  2. درست اندراج: لیکویڈیٹی زون اور اندرونی مارکیٹ کے تبادلوں کو ملا کر اندراج کی درستگی کو بہتر بنائیں
  3. خطرے کو کنٹرول کریں: بلٹ میں نقصان اور روکنے کا طریقہ کار
  4. لچکدار: مختلف مارکیٹ کے حالات کے مطابق ٹریڈنگ کے طریقوں کا انتخاب
  5. کثیر جہتی تجزیہ: قیمتوں کے رویے ، لیکویڈیٹی اور مارکیٹ کے ڈھانچے کو مدنظر رکھنا

اسٹریٹجک رسک

  1. مارکیٹ میں شدید اتار چڑھاؤ کے نتیجے میں اسٹاپ نقصان کا سبب بن سکتا ہے
  2. ہلچل مچانے والی مارکیٹوں میں بار بار سگنل دینے سے ٹریڈنگ کی لاگت میں اضافہ ہوسکتا ہے
  3. پیرامیٹر کی غلط ترتیبات حکمت عملی کی کارکردگی کو متاثر کر سکتی ہیں۔
  4. ریٹرننگ کے نتائج اصل ڈسک سے مختلف ہوسکتے ہیں

حکمت عملی کی اصلاح کی سمت

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

خلاصہ کریں۔

یہ ایک جدید تجارتی حکمت عملی ہے جو لیکویڈیٹی تجزیہ اور مارکیٹ ڈھانچے کی حرکیات کو جوڑتی ہے۔ لچکدار اندرونی مارکیٹ میں تبادلوں کی منطق اور درست لیکویڈیٹی زون ٹریکنگ کے ذریعہ ، یہ تاجروں کو ایک طاقتور تجارتی آلہ فراہم کرتا ہے۔ حکمت عملی کی کلید اس کی موافقت اور کثیر جہتی تجزیاتی صلاحیتوں میں ہے ، جو مارکیٹ کے مختلف حالات میں اعلی کارکردگی کو برقرار رکھنے کے قابل ہے۔

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

//@version=6
strategy("Liquidity + Internal Market Shift Strategy", overlay=true)

// ======== Mode Selection ========
mode = input.string("Both", title="Mode", options=["Both", "Bullish Only", "Bearish Only"])

// ======== Stop-Loss and Take-Profit Input (in pips) ========
enableTakeProfit = input.bool(true, title="Enable Custom Take Profit")  // Option to enable/disable take profit
stopLossPips = input.int(10, title="Stop Loss (in pips)", minval=1)  // Stop loss in pips
takeProfitPips = input.int(20, title="Take Profit (in pips)", minval=1)  // Take profit in pips

// ======== Internal Shift Logic ========

// Fixed number of consecutive candles to track (set to 1)
consecutiveBullishCount = 1
consecutiveBearishCount = 1

// Function to check for bullish and bearish candles
isBullish = close > open
isBearish = close < open

// Variables to track consecutive candles and mark lowest/highest
var int bullishCount = 0
var int bearishCount = 0
var float lowestBullishPrice = na
var float highestBearishPrice = na
var float previousBullishPrice = na // For the previous bullish lowest price
var float previousBearishPrice = na // For the previous bearish highest price

// Variables to track last internal shift type (1 = Bullish, -1 = Bearish, 0 = None)
var int lastInternalShift = 0

// Counting consecutive bullish and bearish candles
if isBullish
    bullishCount := bullishCount + 1
    bearishCount := 0
    if bullishCount == 1 or low < lowestBullishPrice
        lowestBullishPrice := low
else if isBearish
    bearishCount := bearishCount + 1
    bullishCount := 0
    if bearishCount == 1 or high > highestBearishPrice
        highestBearishPrice := high
else
    bullishCount := 0
    bearishCount := 0
    lowestBullishPrice := na
    highestBearishPrice := na

// Internal shift conditions
internalShiftBearish = close < previousBullishPrice and close < lowestBullishPrice
internalShiftBullish = close > previousBearishPrice and close > highestBearishPrice

// Condition to alternate internal shifts
allowInternalShiftBearish = internalShiftBearish and lastInternalShift != -1
allowInternalShiftBullish = internalShiftBullish and lastInternalShift != 1

// Tracking shifts
if bullishCount >= consecutiveBullishCount
    previousBullishPrice := lowestBullishPrice

if bearishCount >= consecutiveBearishCount
    previousBearishPrice := highestBearishPrice

// ======== Liquidity Seal-Off Points Logic ========
upperLiquidityLookback = input.int(10, title="Lookback Period for Upper Liquidity Line")
lowerLiquidityLookback = input.int(10, title="Lookback Period for Lower Liquidity Line")

isLocalHigh = high == ta.highest(high, upperLiquidityLookback)
isLocalLow = low == ta.lowest(low, lowerLiquidityLookback)

var bool touchedLowerLiquidityLine = false
var bool touchedUpperLiquidityLine = false

if (low <= ta.lowest(low, lowerLiquidityLookback))
    touchedLowerLiquidityLine := true

if (high >= ta.highest(high, upperLiquidityLookback))
    touchedUpperLiquidityLine := true

var bool lockedBullish = false
var bool lockedBearish = false
var int barSinceLiquidityTouch = na

// ======== Combined Signals ========
bullishSignal = allowInternalShiftBullish and touchedLowerLiquidityLine and not lockedBullish
bearishSignal = allowInternalShiftBearish and touchedUpperLiquidityLine and not lockedBearish

if bullishSignal
    lockedBullish := true
    touchedLowerLiquidityLine := false
    barSinceLiquidityTouch := 0

if bearishSignal
    lockedBearish := true
    touchedUpperLiquidityLine := false
    barSinceLiquidityTouch := 0

if not na(barSinceLiquidityTouch)
    barSinceLiquidityTouch := barSinceLiquidityTouch + 1

if barSinceLiquidityTouch >= 3
    lockedBullish := false
    lockedBearish := false

if touchedLowerLiquidityLine
    lockedBullish := false

if touchedUpperLiquidityLine
    lockedBearish := false

// ======== Plot Combined Signals ========
plotshape(bullishSignal, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.tiny, title="Bullish Signal")
plotshape(bearishSignal, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.tiny, title="Bearish Signal")

plot(isLocalHigh ? high : na, color=color.red, linewidth=2, style=plot.style_stepline, title="Local High Line")
plot(isLocalLow ? low : na, color=color.green, linewidth=2, style=plot.style_stepline, title="Local Low Line")

// ======== Track Entry and Opposing Signals ========
var float entryPrice = na
var int entryTime = na
var string positionSide = ""

// ======== Strategy Execution (Mode Logic) ========
if (mode == "Both")
    // Short Entry Logic (Bearish Signal)
    if (bearishSignal and na(entryPrice))
        strategy.entry("Short", strategy.short)
        entryPrice := close
        entryTime := time
        positionSide := "short"
    
    // Long Entry Logic (Bullish Signal)
    if (bullishSignal and na(entryPrice))
        strategy.entry("Long", strategy.long)
        entryPrice := close
        entryTime := time
        positionSide := "long"

    // Exit Logic: Close on Opposing Signal (after the current signal is triggered)
    if (positionSide == "short" and bullishSignal )
        strategy.close("Short")
        entryPrice := na
        positionSide := ""
    
    if (positionSide == "long" and bearishSignal)
        strategy.close("Long")
        entryPrice := na
        positionSide := ""
    
    // Stop-Loss and Take-Profit Logic (in pips)
    stopLossPriceLong = entryPrice - stopLossPips * syminfo.mintick
    takeProfitPriceLong = entryPrice + takeProfitPips * syminfo.mintick
    stopLossPriceShort = entryPrice + stopLossPips * syminfo.mintick
    takeProfitPriceShort = entryPrice - takeProfitPips * syminfo.mintick
    
    // Long Stop-Loss and Take-Profit Conditions
    if (positionSide == "long" and close <= stopLossPriceLong)
        strategy.close("Long", comment="Stop Loss Triggered")
        entryPrice := na
        positionSide := ""

    if (positionSide == "long" and enableTakeProfit and close >= takeProfitPriceLong)
        strategy.close("Long", comment="Take Profit Triggered")
        entryPrice := na
        positionSide := ""

    // Short Stop-Loss and Take-Profit Conditions
    if (positionSide == "short" and close >= stopLossPriceShort)
        strategy.close("Short", comment="Stop Loss Triggered")
        entryPrice := na
        positionSide := ""

    if (positionSide == "short" and enableTakeProfit and close <= takeProfitPriceShort)
        strategy.close("Short", comment="Take Profit Triggered")
        entryPrice := na
        positionSide := ""

if (mode == "Bullish Only")
    if (bullishSignal and na(entryPrice))
        strategy.entry("Long", strategy.long)
        entryPrice := close
        entryTime := time
        positionSide := "long"
    
    if (positionSide == "long" and bearishSignal)
        strategy.close("Long")
        entryPrice := na
        positionSide := ""

    // Stop-Loss and Take-Profit Logic (in pips)
    stopLossPriceLong = entryPrice - stopLossPips * syminfo.mintick
    takeProfitPriceLong = entryPrice + takeProfitPips * syminfo.mintick
    
    if (positionSide == "long" and close <= stopLossPriceLong)
        strategy.close("Long", comment="Stop Loss Triggered")
        entryPrice := na
        positionSide := ""

    if (positionSide == "long" and enableTakeProfit and close >= takeProfitPriceLong)
        strategy.close("Long", comment="Take Profit Triggered")
        entryPrice := na
        positionSide := ""

if (mode == "Bearish Only")
    if (bearishSignal and na(entryPrice))
        strategy.entry("Short", strategy.short)
        entryPrice := close
        entryTime := time
        positionSide := "short"
    
    if (positionSide == "short" and bullishSignal)
        strategy.close("Short")
        entryPrice := na
        positionSide := ""

    // Stop-Loss and Take-Profit Logic (in pips)
    stopLossPriceShort = entryPrice + stopLossPips * syminfo.mintick
    takeProfitPriceShort = entryPrice - takeProfitPips * syminfo.mintick
    
    if (positionSide == "short" and close >= stopLossPriceShort)
        strategy.close("Short", comment="Stop Loss Triggered")
        entryPrice := na
        positionSide := ""

    if (positionSide == "short" and enableTakeProfit and close <= takeProfitPriceShort)
        strategy.close("Short", comment="Take Profit Triggered")
        entryPrice := na
        positionSide := ""