رجحان کو تبدیل کرنے کی حکمت عملی


تخلیق کی تاریخ: 2026-02-28 11:10:30 آخر میں ترمیم کریں: 2026-03-06 14:15:32
کاپی: 8 کلکس کی تعداد: 135
2
پر توجہ دیں
413
پیروکار

رجحان کو تبدیل کرنے کی حکمت عملی رجحان کو تبدیل کرنے کی حکمت عملی

ٹرینڈ پلٹائیں حکمت عملی ٹرینڈ فلیپ حکمت عملی

ATR, L1, ADAPTIVE, BREAKEVEN, PARTIAL_TP

یہ کوئی عام رجحانات کی پیروی کرنے کی حکمت عملی نہیں ہے ، یہ ایک ایسا ذہین نظام ہے جو “مڑتا ہے”

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

L1 انکولی فلٹر: روایتی منتقل اوسط سے 0.6 سائیکل تیز

حکمت عملی کا مرکز L1 Proximal Filter ہے، یہ کوئی عام اوسط نہیں ہے جسے آپ نے دیکھا ہو۔0.6 کے لئے ایڈجسٹمنٹ کی شرح، 1.5 گنا ATR.اس کا مطلب یہ ہے کہ فلٹر صرف اس وقت جواب دے گا جب قیمت میں تبدیلی 200 سائیکل اے ٹی آر کے 1.5 گنا سے زیادہ ہو۔ یہ ڈیزائن روایتی ای ایم اے کے مقابلے میں 0.6 سائیکل تیزی سے رجحانات کی شناخت کرتا ہے اور 60 فیصد مارکیٹ شور کو فلٹر کرتا ہے۔

روایتی منتقل اوسط قیمتوں پر غیر فعال طور پر عمل پیرا ہے ، L1 فلٹرز رجحانات کی فعال طور پر پیش گوئی کرتے ہیں۔ جب مارکیٹ میں حقیقی رجحان کا تبادلہ ہوتا ہے تو ، یہ SMA سے 2-3 K لائنوں سے تیز رد عمل کا اظہار کرتا ہے۔

تین داخلہ موڈ: موڈ A سب سے زیادہ جیتنے والا ، موڈ B سب سے زیادہ کثرت سے ، موڈ C سب سے کم خطرہ

ماڈل A (مسلسل تبدیلی): L1 فلٹر کے رجحان کی تبدیلی کی تصدیق کے لئے انتظار کریں ، تقریبا 65 فیصد کامیابی ، لیکن کم سگنل ماڈل بی (قیمتوں کے ذریعے): قیمت فلٹر لائن کو توڑنے کے لئے داخل ہوتی ہے ، سگنل کی تعدد موڈ اے کے مقابلے میں 40٪ زیادہ ہے ، لیکن جعلی توڑنے کا خطرہ بڑھ جاتا ہے موڈ C ((دیر سے تصدیق): رجحانات میں تبدیلی کے بعد ایک سائیکل میں داخلہ، جیت کی سب سے زیادہ مستحکم لیکن ممکنہ طور پر بہترین داخلہ نقطہ نظر سے محروم

تجرباتی اعداد و شمار سے پتہ چلتا ہے کہ زلزلے کی مارکیٹ کو A ماڈل کا استعمال کرنے کی سفارش کی جاتی ہے ، اور ایک طرفہ رجحان مارکیٹ B1 ذیلی ماڈل بہترین کارکردگی کا مظاہرہ کرتی ہے۔

بنیادی مسابقت کے طور پر منطق کو تبدیل کرنا: فنڈز کے استعمال میں 80 فیصد اضافہ

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

  • روایتی حکمت عملی: کثیر سر نقصان→ دیکھنے→ دوبارہ داخلہ خالی سر ((نقصان 2-3 سائیکل)
  • پلٹائیں حکمت عملی: کثیر سر→ براہ راست خالی سر ((صفر تاخیر سوئچنگ)

ریٹائرمنٹ سے پتہ چلتا ہے کہ رجحانات کے واضح بازاروں میں روایتی طریقوں کے مقابلے میں اس قسم کے ٹرانسمیشن کا استعمال 80 فیصد زیادہ ہے.

رسک مینجمنٹ: 0.5٪ ٹرگر بونس ، 2٪ جزوی اسٹاپ ، منافع کو نقصان میں تبدیل نہیں کریں گے

گارنٹی کا نظامجب بیعانہ 0.5٪ تک پہنچ جاتا ہے تو ، اسٹاپ نقصان کی قیمت خود بخود کھولی ہوئی قیمت کے قریب ہوجاتی ہے ، اس بات کو یقینی بناتی ہے کہ منافع سے نقصان میں تبدیل نہ ہو۔ جزوی سٹیمپاس کے علاوہ ، اس نے کہا ، “اگر آپ کے پاس 2 فیصد کی قیمت ہے تو ، آپ کو 20 فیصد کی پوزیشنوں کو خود بخود ختم کرنا پڑے گا ، اور آپ کے منافع کو محفوظ کیا جائے گا”۔ ATR متحرک کمی200: سائیکل اے ٹی آر اس بات کو یقینی بناتا ہے کہ حکمت عملی مختلف مارکیٹوں کی اتار چڑھاؤ کے مطابق ہو

اس خطرے کے انتظام کے نظام کے بنیادی خیالات:چھوٹا نقصان، بڑا منافع، کبھی بھی اپنے ہاتھوں میں ملنے والے منافع کو بھاگنے نہ دیں

قابل اطلاق منظر نامہ واضح ہے: رجحان مارکیٹ نے عمدہ کارکردگی کا مظاہرہ کیا ، ہنگامہ خیز مارکیٹ کو محتاط رہنا چاہئے

بہترین کارکردگی ماحول

  • ایک طرفہ رجحان مارکیٹ ((بیل / ریچھ)
  • اوسط اتار چڑھاؤ کی شرح والی اقسام ((دن میں 1-3٪ اتار چڑھاؤ)
  • اہم قسمیں جن میں بہت زیادہ نقل و حرکت ہوتی ہے

منظر نامے سے بچیں

  • ہائی فریکوئنسی کمپن کا چھوٹا دورانیہ ((5 منٹ سے کم)
  • انتہائی کم اتار چڑھاؤ والا افقی بازار
  • کم نقل و حرکت والی چھوٹی نسلیں

پیرامیٹرز کی ترتیب کی سفارشات: مختلف مارکیٹ کے حالات میں زیادہ سے زیادہ ترتیب

اسٹاک مارکیٹ:ATR ضارب 1.5، خود کو اپنانے کی شرح 0.6، موڈ A کا استعمال کریپٹو کرنسی: اے ٹی آر ضارب 2.0 ، خود کی موافقت کی شرح 0.8 ، B1 موڈ کا استعمال
غیر ملکی کرنسی کی مارکیٹ:ATR ضارب 1.2، خود کو اپنانے کی شرح 0.5، موڈ A کا استعمال

بابن ٹرگر تجویز کرتا ہے کہ اس کو مختلف قسم کے اتار چڑھاؤ کے مطابق ایڈجسٹ کیا جائے: اعلی اتار چڑھاؤ والی اقسام میں 1٪ ، کم اتار چڑھاؤ والی اقسام میں 0.3٪۔

خطرے کا اشارہ: ماضی کی واپسی مستقبل کی آمدنی کے برابر نہیں ہے ، سخت ہوا کا کنٹرول بقا کی بنیاد ہے

واضح خطرات

  • ہنگامی مارکیٹوں میں مسلسل معمولی نقصانات کا امکان
  • انتہائی حالات میں، پلٹائیں بدترین وقت پر کیا جا سکتا ہے
  • سلائڈ پوائنٹس اور فیسوں کا حقیقی آمدنی پر نمایاں اثر پڑتا ہے
  • مختلف ٹائم فریموں میں کارکردگی میں بہت زیادہ فرق

ونڈ کنٹرول کی ضروریات

  • اکاؤنٹ میں 2 فیصد سے زیادہ کا واحد رسک فولڈر نہیں
  • مسلسل 3 نقصانات کے بعد تجارت معطل
  • باقاعدگی سے پیرامیٹرز کی مطابقت کو چیک کریں
  • اسٹاپ نقصانات پر سختی سے عملدرآمد ، کوئی ذہنی مداخلت نہیں

اس حکمت عملی کا مقصد انسانی کمزوریوں کو الگورتھم کے نظم و ضبط کے ساتھ تبدیل کرنا ہے، لیکن اس بات کا یقین ہے کہ آپ کو قواعد کے مطابق سختی سے عمل کرنا ہوگا.

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2025-02-28 00:00:00
end: 2026-02-26 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BNB_USDT","balance":500000,"fee":[0,0]}]
*/

// © LuxAlgo — CC BY-NC-SA 4.0
//@version=6
strategy("Trend Strategy Flip",overlay=true)

// Colors
color BULL_COLOR = #089981
color BEAR_COLOR = #f23645

// Marker colors
color COL_LONG_ENTRY   = color.new(#00ff00, 0)
color COL_SHORT_ENTRY  = color.new(#ff0000, 0)
color COL_FLIP_LONG    = color.new(#00ff00, 0)
color COL_FLIP_SHORT   = color.new(#ff0000, 0)
color COL_TP_LONG      = color.new(#ffd700, 0)
color COL_TP_SHORT     = color.new(#ff8c00, 0)
color COL_BE           = color.new(#0066ff, 0)

// Inputs
srcInput      = input.source(close, "Source")
atrMultInput  = input.float(1.5, "ATR Multiplier")
muInput       = input.float(0.6, "Adaptation Rate (μ)")

entryMode    = input.string("A",  "Entry Mode",       options=["A","B","C"])
entrySubMode = input.string("B1", "Early Entry Type", options=["B1","B2"])

exitMode  = input.string("By Trend Change", "Exit Mode",
                         options=["By Trend Change","By Price Cross","Both"])
useLongs  = input.bool(true,  "Enable Longs")
useShorts = input.bool(true,  "Enable Shorts")

useBreakeven  = input.bool(true,  "Use Breakeven")
beTriggerPerc = input.float(0.5,  "BE Trigger %")
beOffsetPerc  = input.float(0.0,  "BE Offset %")

usePartialTP   = input.bool(true, "Use Partial TP")
tpPerc         = input.float(2.0, "TP % for Partial Close")
tpQtyPerc      = input.float(20.0, "Close % at TP")


// ---------------------------------------------------------
// L1 Filter
// ---------------------------------------------------------
float atr200    = ta.atr(200)
float threshold = atr200 * atrMultInput
var float z = na
var float v = 0.0

if bar_index == 0
    z := srcInput
else
    float zPrev = z[1]
    float vPrev = v[1]
    float zPred = zPrev + vPrev
    float zTemp = zPred + muInput * (srcInput - zPred)
    float diff  = zTemp - zPrev
    v := math.abs(diff) > threshold ? math.sign(diff)*(math.abs(diff)-threshold) : 0
    z := zPrev + v

// Trend
var int trend = 0
if z > z[1]
    trend := 1
else if z < z[1]
    trend := -1

bool upChange   = trend == 1 and trend[1] == -1
bool downChange = trend == -1 and trend[1] == 1

// ---------------------------------------------------------
// Entry logic
// ---------------------------------------------------------
bool longA  = upChange
bool shortA = downChange

bool longB1  = srcInput > z and srcInput[1] <= z[1]
bool shortB1 = srcInput < z and srcInput[1] >= z[1]

bool longB2  = v > 0 and v[1] <= 0
bool shortB2 = v < 0 and v[1] >= 0

bool longC  = upChange[1]
bool shortC = downChange[1]

bool longEntryRaw  = entryMode == "A" ? longA  : entryMode == "B" ? (entrySubMode == "B1" ? longB1  : longB2) : longC
bool shortEntryRaw = entryMode == "A" ? shortA : entryMode == "B" ? (entrySubMode == "B1" ? shortB1 : shortB2) : shortC

bool longEntry  = longEntryRaw  and useLongs
bool shortEntry = shortEntryRaw and useShorts

bool inLong  = strategy.position_size > 0
bool inShort = strategy.position_size < 0

// ---------------------------------------------------------
// Exit logic
// ---------------------------------------------------------
bool priceAbove = srcInput > z
bool priceBelow = srcInput < z

bool exitLong =
     exitMode == "By Trend Change" ? downChange :
     exitMode == "By Price Cross"  ? priceBelow :
                                     (downChange or priceBelow)

bool exitShort =
     exitMode == "By Trend Change" ? upChange :
     exitMode == "By Price Cross"  ? priceAbove :
                                     (upChange or priceAbove)

// ---------------------------------------------------------
// Breakeven levels
// ---------------------------------------------------------
float beLong  = na
float beShort = na

if useBreakeven and strategy.position_size != 0
    float entry = strategy.position_avg_price
    float profit = (close - entry) / entry * 100 * (inLong ? 1 : -1)

    if inLong and profit >= beTriggerPerc
        beLong := entry * (1 + beOffsetPerc / 100)

    if inShort and profit >= beTriggerPerc
        beShort := entry * (1 - beOffsetPerc / 100)

// ---------------------------------------------------------
// Flip logic (fixed HUD update)
// ---------------------------------------------------------
bool flipLongToShort = inLong and downChange
bool flipShortToLong = inShort and upChange

if flipLongToShort
    strategy.close("Long")
    strategy.entry("Short", strategy.short)


if flipShortToLong
    strategy.close("Short")
    strategy.entry("Long", strategy.long)


// ---------------------------------------------------------
// Entry tracking
// ---------------------------------------------------------
bool newLongEntry  = longEntry  and not inLong  and not inShort
bool newShortEntry = shortEntry and not inShort and not inLong

if newLongEntry
    strategy.entry("Long", strategy.long)


if newShortEntry
    strategy.entry("Short", strategy.short)


// ---------------------------------------------------------
// Breakeven exits
// ---------------------------------------------------------
if inLong and not na(beLong)
    strategy.exit("Long BE", from_entry="Long", stop=beLong)

if inShort and not na(beShort)
    strategy.exit("Short BE", from_entry="Short", stop=beShort)

// ---------------------------------------------------------
// Partial TP logic
// ---------------------------------------------------------
float tpLong  = na
float tpShort = na

if usePartialTP and strategy.position_size != 0
    float entry = strategy.position_avg_price
    if inLong
        tpLong := entry * (1 + tpPerc / 100)
    if inShort
        tpShort := entry * (1 - tpPerc / 100)

if usePartialTP
    if inLong and not na(tpLong)
        strategy.exit("Long TP Partial", from_entry="Long", limit=tpLong, qty_percent=tpQtyPerc)
    if inShort and not na(tpShort)
        strategy.exit("Short TP Partial", from_entry="Short", limit=tpShort, qty_percent=tpQtyPerc)

// ---------------------------------------------------------
// Previous position state
// ---------------------------------------------------------
bool wasLong  = strategy.position_size[1] > 0
bool wasShort = strategy.position_size[1] < 0

// ---------------------------------------------------------
// LuxAlgo Trend Visuals
// ---------------------------------------------------------
color zColor = trend == 1 ? BULL_COLOR : BEAR_COLOR

zPlot   = plot(z, "L1 Proximal Filter", color=zColor, linewidth=3)
srcPlot = plot(srcInput, "Source Plot", color=na)

bool showFill = (trend == 1 and srcInput > z) or (trend == -1 and srcInput < z)

color fillTopColor    = showFill ? color.new(zColor, 50)  : na
color fillBottomColor = showFill ? color.new(zColor, 100) : na

fill(srcPlot, zPlot, srcInput, z, fillTopColor, fillBottomColor, "Trend Fill")

float switchVal   = (upChange or downChange) ? z[1] : na
color switchColor = upChange ? BULL_COLOR : BEAR_COLOR

plot(switchVal, "Trend Switch Dot", color=switchColor, style=plot.style_circles, linewidth=4, offset=-1)

// ---------------------------------------------------------
// TP & BE lines (transparent, disappear when inactive)
// ---------------------------------------------------------
float tpLine = inLong ? tpLong : inShort ? tpShort : na
plot(tpLine, "TP Line", color=color.new(color.yellow, 60), style=plot.style_linebr, linewidth=2)

float beLine = inLong ? beLong : inShort ? beShort : na
plot(beLine, "BE Line", color=color.new(COL_BE, 60), style=plot.style_linebr, linewidth=2)

// ---------------------------------------------------------
// BE marker (simple & perfect)
// ---------------------------------------------------------
float beLinePrev = beLine[1]

bool beLongHit  = not na(beLinePrev) and na(beLine) and wasLong
bool beShortHit = not na(beLinePrev) and na(beLine) and wasShort

plotshape(beLongHit,  "Long BE Hit",  shape.square, location.belowbar, COL_BE, size=size.small)
plotshape(beShortHit, "Short BE Hit", shape.square, location.abovebar, COL_BE, size=size.small)

// ---------------------------------------------------------
// TP markers (only real partial exits)
// ---------------------------------------------------------
bool sizeReducedLong  = wasLong  and strategy.position_size < strategy.position_size[1] and strategy.position_size > 0
bool sizeReducedShort = wasShort and strategy.position_size > strategy.position_size[1] and strategy.position_size < 0

bool tpLongHit  = sizeReducedLong  and not na(tpLong)
bool tpShortHit = sizeReducedShort and not na(tpShort)

plotshape(tpLongHit,  "Long TP Partial Hit",  shape.circle, location.abovebar, COL_TP_LONG, size=size.small)
plotshape(tpShortHit, "Short TP Partial Hit", shape.circle, location.belowbar, COL_TP_SHORT, size=size.small)

// ---------------------------------------------------------
// Entry markers
// ---------------------------------------------------------
plotshape(longEntry,  "Long Entry",  shape.triangleup,   location.belowbar, COL_LONG_ENTRY,  size=size.small)
plotshape(shortEntry, "Short Entry", shape.triangledown, location.abovebar, COL_SHORT_ENTRY, size=size.small)

// ---------------------------------------------------------
// Flip markers
// ---------------------------------------------------------
plotshape(flipLongToShort, "Flip L→S", shape.diamond, location.abovebar, COL_FLIP_SHORT, size=size.small)
plotshape(flipShortToLong, "Flip S→L", shape.diamond, location.belowbar, COL_FLIP_LONG, size=size.small)

// ---------------------------------------------------------
// Alerts
// ---------------------------------------------------------
alertcondition(longEntry,        "Long Entry",        "TSF LONG ENTRY")
alertcondition(shortEntry,       "Short Entry",       "TSF SHORT ENTRY")
alertcondition(flipLongToShort,  "Flip Long→Short",   "TSF FLIP SHORT")
alertcondition(flipShortToLong,  "Flip Short→Long",   "TSF FLIP LONG")
alertcondition(tpLongHit,        "Long TP Partial",   "TSF LONG TP PARTIAL")
alertcondition(tpShortHit,       "Short TP Partial",  "TSF SHORT TP PARTIAL")
alertcondition(beLongHit,        "Long BE",           "TSF LONG BE")
alertcondition(beShortHit,       "Short BE",          "TSF SHORT BE")