
اس حکمت عملی کی بنیادی منطق بہت سادہ اور بے ہودہ ہے:مارکیٹ ہمیشہ تین مراحل میں چلتی ہے: جمع کرنا، کنٹرول کرنا اور تقسیم کرنا。CRT کالم ((ویڈتھ + مضبوط ادارہ + اعلی ٹرانزیکشن حجم) مین فورس فنڈز کی انگلی ہے ، جبکہ مرحلے کا پتہ لگانے والا الگورتھم مارکیٹ کے موڑ کے نقطہ کو پہلے سے پہچان سکتا ہے۔ backtesting کے اعداد و شمار سے پتہ چلتا ہے کہ جب صحیح طریقے سے پہچاننے والے مرحلے کی شناخت کی جاتی ہے تو ، کامیابی کی شرح 65٪ سے زیادہ ہوسکتی ہے۔。
اہم بات یہ ہے کہ پیرامیٹرز کی ترتیب کی درستگی: 20 سائیکل اوسط لکیری رجحانات کی گرفتاری ، 1.6 گنا رینج ضرب فلٹرنگ شور ، 1.5 گنا ٹرانزیکشن ضرب رقم کی آمدنی کی تصدیق کریں۔ یہ کوئی سر کو مارنے والا نمبر نہیں ہے ، بلکہ یہ بہت سارے تاریخی اعداد و شمار پر مبنی اصلاحات کا نتیجہ ہے۔
جمع ہونے کا مرحلہقیمتیں 50 کی سائیکل کی کم سے کم سطح کے قریب ہیں ، اتار چڑھاؤ میں 60 فیصد کمی واقع ہوئی ہے ، یہ ایک ایسا اشارہ ہے جس میں بنیادی طور پر پوزیشنوں کی تعمیر کی جارہی ہے۔
اسٹیج کا انتظام: لمبی سایہ کی لکیریں جسمانی سائز سے 1.2 گنا زیادہ ہیں + ٹرانزیکشن حجم میں 1.5 گنا اضافہ ہوا ہے + سورج کی لکیریں قریب آرہی ہیں ، یہ ایک عام “تباہ شدہ ڈش واش ڈش” ہے۔ جب خوردہ فروشوں کو خوفزدہ کیا جاتا ہے ، تو یہ داخل ہونے کا بہترین وقت ہے۔
تقسیم کے مرحلےقیمتیں تاریخی بلندیوں کے قریب پہنچ گئیں ، اتار چڑھاؤ کم ہوا ، اور سب سے زیادہ سامان کی ترسیل شروع ہوگئی۔
اس کا فائدہ یہ ہے کہمقداری شناختاس کے بجائے ذہنی فیصلہ کرنا۔ معیار اوسط طول و عرض کے 60٪ سے کم ہونے پر مرحلے کی تبدیلی کو متحرک کرتا ہے ، جو ننگے آنکھوں سے مشاہدہ کرنے سے 30٪ زیادہ درست ہے۔
مارکیٹ کی 99 فیصد حکمت عملیوں میں، سی آر ٹی کے نظریے کے برعکس، مارجن کی قیمتوں میں کمی کی پیروی کی جاتی ہے.وسیع طول و عرض کی لکیریں ((≥ 20 دورانیہ کی اوسط قیمت کا 1.6 گنا) + مضبوط ہستی ((≥ کل طول و عرض کا 45٪) + چھوٹی سائے کی لکیریں ((≤ ہستی کا 25٪)ان تینوں شرائط کے ساتھ ساتھ پورا ہونے کا امکان 5 فیصد سے بھی کم ہے، لیکن ایک بار جب یہ شرائط پوری ہو جاتی ہیں تو یہ بہت زیادہ ہدف بن جاتی ہے۔
یہ 1.6 گنا کیوں ہے؟ اعدادوشمار ہمیں بتاتے ہیں کہ 1.5 گنا سے زیادہ معیاری انحراف کے واقعات کم امکانات کے واقعات ہیں، اور 1.6 گنا غیر معمولی اتار چڑھاؤ کو پکڑنے اور ضرورت سے زیادہ حساس ہونے سے بچنے کے درمیان بہترین توازن ہے۔
اس میں 45 فیصد سے زیادہ کا حصہ کیوں ہے؟ اس میں سے زیادہ سے زیادہ 45 فیصد سے زیادہ کا مطلب یہ ہے کہ ایک فریق دوسرے فریق پر مکمل طور پر حاوی ہے، اور اس طرح کی جدوجہد کی سب سے زیادہ تسلسل ہے۔
اس حکمت عملی کا سب سے دلچسپ حصہ یہ ہے کہ:پیمائش کے الگورتھم کو چھیڑنا│ 99٪ خوردہ فروشوں کو خوف آتا ہے جب ان کی موجودہ سائز 1.2 گنا سے زیادہ ہو ، لیکن یہ اصل میں “جعلی حرکت” ہے │
شناخت کی شرائط
اس مجموعہ کے تحت ، جعلی سگنل کی شرح کو 15 فیصد سے کم کنٹرول کیا جاتا ہے۔ روایتی “ٹونٹی لائن” کی شناخت کی درستگی صرف 40 فیصد ہے ، جبکہ سی آر ٹی نے سگنل کی درستگی کو 85 فیصد تک پہنچایا ہے۔
اس کے علاوہ ، اس میں ہوا سے بچاؤ کے سخت اقدامات شامل ہیں:اسٹاپ بیس 200، اسٹاپ نقصان 100، ونڈ پریشر 2: 1│ یہ ایک بے ترتیب ترتیب نہیں ہے، لیکن مارکیٹ کے اتار چڑھاؤ کی خصوصیات پر مبنی زیادہ سے زیادہ ترتیب │
اور سب سے اہم بات،سیدھے سیدھے صفائی کے طریقہ کاریہ حکمت عملی اس بات کو یقینی بناتی ہے کہ مارکیٹ میں اتار چڑھاؤ کے دوران بھی اس کی کارکردگی مستحکم رہے۔
لیکن یہ واضح ہونا ضروری ہے:حکمت عملی میں مسلسل نقصان کا خطرہ ہےخاص طور پر انتہائی ہلچل والے حالات میں۔ تاریخی جائزے سے پتہ چلتا ہے کہ زیادہ سے زیادہ مسلسل نقصان 5 بار ہوسکتا ہے۔ فنڈ مینجمنٹ کو کل فنڈ کے 2٪ کے اندر ایک بار کے خطرے کو کنٹرول کرنا ہوگا۔
حکمت عملیواضح رجحانات والے بازارمیں سب سے بہتر کارکردگی کا مظاہرہ، بیل اور ریچھ کی منتقلی کی مدت جیت 70 فیصد تک پہنچ سکتا ہے.افقی ترتیباس کے نتیجے میں ، آپ کو 50٪ تک کی کامیابی حاصل ہوگی۔
اسکرین پر لاگو نہیں:
بہترین استعمال کا ماحول:
غیر ملکی کرنسی کی مارکیٹ: ڈیفالٹ پیرامیٹرز کو برقرار رکھنا ، لیکن ٹرانسمیشن کو 1.3 گنا تک بڑھایا جاسکتا ہے اسٹاک انڈیکس فیوچرٹویٹر پر ایک صارف کا کہنا ہے کہ اس سے زیادہ شور کو فلٹر کرنے کے لیے وائی فائی کو 1.8 گنا بڑھایا جا سکتا ہے۔ کریپٹو کرنسی: تمام ضرب فیکٹر × 1.2 ، اعلی اتار چڑھاؤ کے ماحول کے لئے موزوں
یاد رکھیں:ماضی کی واپسی مستقبل کی آمدنی کی نمائندگی نہیں کرتیکسی بھی حکمت عملی کو عملی طور پر جانچنے کی ضرورت ہے۔ یہ تجویز کیا جاتا ہے کہ پہلے کم سے کم پوزیشن پر 3 ماہ کی جانچ کی جائے ، اس بات کی تصدیق کرنے کے بعد کہ حکمت عملی مناسب ہے ، اور اس کے بعد آہستہ آہستہ پوزیشن بڑھائی جائے۔
/*backtest
start: 2024-09-29 00:00:00
end: 2025-09-26 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Bybit","currency":"ETH_USDT","balance":500000}]
*/
//@version=5
strategy("CRT Theory — CRT Candle + Phases (configurable)", overlay=true, margin_long=100, margin_short=100)
// ---------------------- INPUTS ----------------------
rangeLen = input.int(20, "Avg Range Length (bars)")
volLen = input.int(20, "Avg Volume Length (bars)")
rangeMult = input.float(1.6, "Range Multiplier for CRT candle", step=0.1)
volMult = input.float(1.5, "Volume Multiplier for CRT candle", step=0.1)
bodyRatio = input.float(0.45, "Min body / range (CRT candle)", step=0.01)
wickRatio = input.float(0.25, "Max wick (each) relative to body (CRT candle)", step=0.01)
manipWickRatio = input.float(1.2, "Manipulation (shakeout) wick ratio (wick > body * x)", step=0.1)
accumLen = input.int(10, "Accumulation lookback length (bars)")
distLen = input.int(10, "Distribution lookback length (bars)")
accLowVolFactor = input.float(0.6, "Accumulation: stdev(range) < avgRange * factor", step=0.05)
distLowVolFactor= input.float(0.6, "Distribution: stdev(range) < avgRange * factor", step=0.05)
phaseLookback = input.int(50, "Phase detection lookback (bars)")
enableLongs = input.bool(true, "Enable long entries on Manipulation bullish signal")
enableShorts = input.bool(false, "Enable short entries on Distribution bearish signal")
takeProfitPips = input.float(200.0, "TP (pips / points)", step=1)
stopLossPips = input.float(100.0, "SL (pips / points)", step=1)
// ---------------------- BASICS ----------------------
range_val = high - low
avgRange = ta.sma(range_val, rangeLen)
stdevRange = ta.stdev(range_val, rangeLen)
avgVol = ta.sma(volume, volLen)
// candle geometry
candleBody = math.abs(close - open)
upperWick = high - math.max(open, close)
lowerWick = math.min(open, close) - low // positive value
// Avoid NaN negatives
lowerWick := math.max(lowerWick, 0.0)
// ---------------------- CRT CANDLE DETECTION ----------------------
// Criteria for a CRT (wide, strong-bodied, reasonable wicks, volume spike)
isWideRange = range_val >= avgRange * rangeMult
isBigBody = candleBody >= range_val * bodyRatio
smallWicks = (upperWick <= candleBody * wickRatio) and (lowerWick <= candleBody * wickRatio)
volSpike = volume >= avgVol * volMult
isCRT = isWideRange and isBigBody and smallWicks and volSpike
// Mark CRT bullish vs bearish
isCRTBull = isCRT and close > open
isCRTBear = isCRT and close < open
// Plot CRT candle label
plotshape(isCRT, title="CRT Candle", style=shape.labelup, text="CRT", textcolor=color.white, location=location.abovebar, size=size.tiny, color=isCRTBull ? color.new(color.green, 5) : color.new(color.red, 5))
// Outline CRT candles visually by coloring candle bodies (optional)
barcolor(isCRTBull ? color.new(color.green, 80) : isCRTBear ? color.new(color.red, 80) : na)
// ---------------------- PHASE DETECTION HEURISTICS ----------------------
// ACCUMULATION:
// - Low volatility for a stretch (stdev(range) small relative to avgRange)
// - Price is near a recent local low (we check rolling lowest close within some window)
accWindowRange = ta.sma(range_val, accumLen)
acc_stdev = ta.stdev(range_val, accumLen)
priceNearLow = close <= ta.lowest(close, phaseLookback) * 1.005 // within 0.5% of recent low
isAccumulation = (acc_stdev < accLowVolFactor * accWindowRange) and priceNearLow
// DISTRIBUTION:
// - Low volatility near a recent high
distWindowRange = ta.sma(range_val, distLen)
dist_stdev = ta.stdev(range_val, distLen)
priceNearHigh = close >= ta.highest(close, phaseLookback) * 0.995
isDistribution = (dist_stdev < distLowVolFactor * distWindowRange) and priceNearHigh
// MANIPULATION (shakeout):
// - big spike down wick (or up wick for bearish shakeout) with rejection
// - lowerWick significantly larger than body (for bullish manipulation shakeout)
// - range and volume spike accompany it
manipLowerWick = lowerWick > candleBody * manipWickRatio
manipUpperWick = upperWick > candleBody * manipWickRatio
manipRangeSpike = range_val >= avgRange * (rangeMult * 0.9)
manipVolSpike = volume >= avgVol * volMult
isBullishManipulation = manipLowerWick and manipRangeSpike and manipVolSpike and close > open
isBearishManipulation = manipUpperWick and manipRangeSpike and manipVolSpike and close < open
// We treat "manipulation" as any of the above within the lookback zone
isManipulation = isBullishManipulation or isBearishManipulation
// ---------------------- PHASE LABELING / STATE ----------------------
// We'll create a rolling phase state with priority: Manipulation (immediate) > Accumulation/Distribution > none
var int phase = 0 // 0 = none, 1 = Accumulation, 2 = Manipulation, 3 = Distribution
// Update phase each bar
if isManipulation
phase := 2
else
if isAccumulation
phase := 1
else
if isDistribution
phase := 3
else
// decay: if previously in phase and conditions still somewhat hold, keep for a few bars
phase := nz(phase[1])
// Background shading
bgColor = phase == 1 ? color.new(color.green, 90) : phase == 2 ? color.new(color.yellow, 90) : phase == 3 ? color.new(color.red, 90) : na
bgcolor(bgColor)
// Draw phase labels on chart
var label phaseLbl = na
if barstate.islast
label.delete(phaseLbl)
phaseTxt = switch phase
1 => "ACCUMULATION"
2 => "MANIPULATION"
3 => "DISTRIBUTION"
=> "—"
phaseLbl := label.new(bar_index, high, text=phaseTxt, style=label.style_label_left, color=color.black, textcolor=color.white, size=size.small)
// Small marker for manipulation type
plotshape(isBullishManipulation, title="Bullish Shakeout", style=shape.triangleup, location=location.belowbar, color=color.green, size=size.tiny, text="Shake")
plotshape(isBearishManipulation, title="Bearish Shakeout", style=shape.triangledown, location=location.abovebar, color=color.red, size=size.tiny, text="Shake")
// ---------------------- STRATEGY RULES (simple examples) ----------------------
// Long entry: when bullish manipulation (shakeout) occurs in/after accumulation (typical CRT long setup)
enterLong = enableLongs and isBullishManipulation and (phase == 1 or phase == 2)
// Short entry: bearish manipulation in/after distribution
enterShort = enableShorts and isBearishManipulation and (phase == 3 or phase == 2)
// Money management: convert pips/points to price distance
tp = takeProfitPips * syminfo.mintick
sl = stopLossPips * syminfo.mintick
if enterLong
strategy.entry("CRT Long", strategy.long)
strategy.exit("ExitLong", "CRT Long", stop=close - sl, limit=close + tp)
if enterShort
strategy.entry("CRT Short", strategy.short)
strategy.exit("ExitShort", "CRT Short", stop=close + sl, limit=close - tp)
// Optionally add conservative exit: if opposite manipulation occurs
if strategy.position_size > 0 and isBearishManipulation
strategy.close("CRT Long", comment="Opposite Manipulation")
if strategy.position_size < 0 and isBullishManipulation
strategy.close("CRT Short", comment="Opposite Manipulation")
// ---------------------- VISUAL DEBUG INFO ----------------------
plot(avgRange, title="Avg Range", linewidth=1)
plot(avgVol, title="Avg Vol", linewidth=1, style=plot.style_areabr)