
متحرک حرکت پذیر اوسط کراس رجحان ٹریکنگ اور الٹ حکمت عملی ایک مقداری تجارتی نظام ہے جو قیمتوں اور حرکت پذیر اوسط کے تعلقات پر مبنی ہے۔ یہ حکمت عملی ٹریڈنگ سگنل کا تعین کرنے کے لئے حرکت پذیر اوسط کی سمت اور قیمتوں کے خلاف ورزیوں کا تعین کرتی ہے ، اور اس میں متحرک اسٹاپ نقصان کا طریقہ کار ہے۔ اس کا بنیادی نفسیاتی نظریہ یہ ہے کہ بڑھتے ہوئے رجحان میں زیادہ کام کریں ، گرنے والے رجحان میں خالی ہوجائیں ، اور داخلہ اور باہر نکلنے کے عین مطابق اصولوں کے ذریعہ خطرہ کا انتظام کریں ، اور اس طرح غیر مستحکم مارکیٹ میں محض خریدنے سے کہیں زیادہ بہتر کارکردگی کا مظاہرہ کریں۔
یہ حکمت عملی مندرجہ ذیل بنیادی اصولوں پر مبنی ہے:
متحرک رجحانات کا تعین کرنے کا طریقہ کارحکمت عملی: مارکیٹ کے رجحانات کا تعین کرنے کے لئے متحرک اوسط ((SMA ، EMA یا VWMA) کی سمت میں تبدیلی کا استعمال کریں۔ جب متحرک اوسط بڑھ کر مقررہ حد سے تجاوز کر جائے (ڈیفالٹ 0.25٪) ، تو اس کا تعین بڑھنے کے رجحان کے طور پر کیا جاتا ہے۔ جب کمی اسی حد سے تجاوز کر جائے تو ، اس کا تعین گرنے کے رجحان کے طور پر کیا جاتا ہے۔
داخلہ کی عین مطابق شرائط:
کثیر سطح کا میکانزم:
وقت کا فلٹراس حکمت عملی میں ٹریڈنگ کے اوقات کو فلٹر کرنے کا فنکشن شامل ہے اور غیر تجارتی اوقات کے اتار چڑھاؤ کے اثرات سے بچنے کے لئے صرف 9:30 سے 15:15 کے درمیان تجارت کی جاتی ہے۔
ٹائم فریم: صارف اپنی مرضی کے مطابق پیمائش کے اختتام کی تاریخوں کو اپنی مرضی کے مطابق کرسکتے ہیں تاکہ مختلف مارکیٹ کے حالات میں حکمت عملی کی کارکردگی کا اندازہ لگایا جاسکے۔
گہری تجزیہ کے بعد، اس حکمت عملی میں مندرجہ ذیل اہم فوائد ہیں:
مارکیٹ کے حالات کے مطابق ڈھالنا: متحرک حرکت پذیر اوسط کی سمت کا فیصلہ کرتے ہوئے ، حکمت عملی مارکیٹ کے رجحانات کے مطابق تجارت کی سمت کو خود بخود ایڈجسٹ کرسکتی ہے ، جو مختلف مارکیٹ کے حالات کے مطابق ہے۔
خطرے کو کنٹرول کرنااس حکمت عملی میں متعدد سطحوں پر رسک کنٹرول کے طریقہ کار کو ڈیزائن کیا گیا ہے ، جس میں رجحانات کو فلٹر کرنا ، آؤٹ پٹ کو واپس لینا ، آؤٹ پٹ کے ذریعے منتقل ہونے والی اوسط اور ہارڈ اسٹاپس شامل ہیں ، جو بڑے نقصانات کو مؤثر طریقے سے روکتے ہیں۔
ردعمل کی حساسیت سایڈست: متحرک اوسط کی قسم کو ایڈجسٹ کرکے ((SMA / EMA / VWMA) ، حساب کی بنیاد ((کلوزنگ قیمت / OHLC / 4 وغیرہ) اور لمبائی پیرامیٹرز ، صارف مارکیٹ میں اتار چڑھاو کے لئے حکمت عملی کی ردعمل کی حساسیت کو بہتر بنا سکتا ہے۔
داخلہ کے مواقع میں تنوعاس حکمت عملی میں نہ صرف بڑے پیمانے پر داخلہ سگنل فراہم کیے گئے ہیں بلکہ اس میں واپسی کی بحالی کا طریقہ کار بھی شامل ہے ، جس سے تجارت کے مواقع میں اضافہ ہوتا ہے اور اوسط داخلہ قیمت کو بہتر بنایا جاتا ہے۔
ٹرانزیکشن کی حیثیت کی نمائش: کوڈ میں ٹریڈنگ اسٹیٹس ٹیگ اور انٹری اور آؤٹ ٹیگ کو مربوط کیا گیا ہے ، جو حکمت عملی کی کارکردگی کو بصری طور پر ظاہر کرتا ہے ، جس سے تجزیہ اور اصلاح میں آسانی ہوتی ہے۔
مکمل الرٹ سسٹم: بلٹ ان ٹریڈنگ سگنل الرٹ فنکشن ، ریئل ٹائم مانیٹرنگ اور یاد دہانیوں کی حمایت کرتا ہے ، حکمت عملی پر عملدرآمد کی کارکردگی کو بہتر بناتا ہے۔
اس جامع حکمت عملی کے باوجود ، مندرجہ ذیل ممکنہ خطرات موجود ہیں:
ہلچل مچانے والی مارکیٹ: افقی ڈسک اتار چڑھاؤ کی منڈیوں میں ، چلتی اوسط کی سمت میں بار بار تبدیلی آسکتی ہے ، جس کی وجہ سے زیادہ تجارت اور نقصان ہوتا ہے۔ اس کا حل سمت کی توثیقی دہلیز کو بڑھانا یا دوسرے اشارے کے فلٹرنگ سگنل کو ضم کرنا ہے۔
پیرامیٹر کی حساسیت: حکمت عملی کی کارکردگی پیرامیٹرز کی ترتیبات پر بہت زیادہ انحصار کرتی ہے ، جیسے کہ منتقل اوسط لمبائی اور مختلف قسم کے کمی کی فیصد۔ مختلف قسم کے تجارت کے ل different مختلف پیرامیٹرز کی ترتیبات کی ضرورت ہوسکتی ہے ، جس میں کافی پیرامیٹرز کی اصلاح کی ضرورت ہوتی ہے۔
ترسیل کی تصدیق کا فقدان: موجودہ حکمت عملی بنیادی طور پر قیمت اور منتقل اوسط کے تعلقات پر مبنی ہے ، جس میں حجم کے عوامل پر غور نہیں کیا گیا ہے ، جو کم حجم کے ماحول میں گمراہ کن سگنل پیدا کرسکتا ہے۔
ٹریڈنگ کے وقت کی پابندیوں سے پیدا ہونے والے خطرے کا خطرہیہ حکمت عملی مخصوص اوقات میں تجارت کو محدود رکھتی ہے اور راتوں رات یا تجارت کے اوقات سے باہر کی اہم تبدیلیوں کا مقابلہ کرنے میں ناکام رہ سکتی ہے ، خاص طور پر قیمتوں میں اضافے کی صورت میں۔
رجحانات کا الٹنا: اگرچہ متحرک رجحانات کا تعین کرنے کا طریقہ کار موجود ہے ، لیکن اچانک شدید رجحانات کے ردعمل میں تاخیر ہوسکتی ہے ، جس سے تیزی سے الٹتے ہوئے بازاروں میں بڑے پیمانے پر پیچھے ہٹنا پڑ سکتا ہے۔
کوڈ تجزیہ کی بنیاد پر، حکمت عملی کو مندرجہ ذیل سمتوں میں بہتر بنایا جا سکتا ہے:
انٹیگریٹڈ انڈیکس: آر ایس آئی ، ایم اے سی ڈی اور دیگر متحرک اشارے کو سگنل کی تصدیق کے نظام میں شامل کرنا ، رجحانات کی درستگی کو بہتر بنانا ، اور جھوٹے سگنل کو کم کرنا۔ ایسا اس لئے کیا گیا ہے کہ خالص قیمت کی توڑ کبھی کبھی غلط فیصلے کا سبب بن سکتی ہے ، جبکہ متحرک اشارے اضافی تصدیق فراہم کرسکتے ہیں۔
خود کار طریقے سے اتار چڑھاو کی شرح کے اجزاء میں اضافہ: مارکیٹ میں اتار چڑھاؤ کی رفتار کے مطابق انٹری کی قیمت اور اسٹاپ نقصان کی حد کو ایڈجسٹ کریں ، اعلی اتار چڑھاؤ والے ماحول میں تھریڈ کی ضروریات میں اضافہ کریں ، ٹرگر کی تعدد کو کم کریں۔ کم اتار چڑھاؤ والے ماحول میں تھریڈ کو کم کریں ، حساسیت میں اضافہ کریں۔
ٹرانزیکشن حجم فلٹر شامل کریں: لین دین کی تصدیق کا طریقہ کار متعارف کرایا گیا ، جس میں قیمتوں میں اضافے کے ساتھ لین دین میں اضافے کی ضرورت ہوتی ہے ، اور کم لین دین کے ماحول میں کمزور بریک سگنل کو فلٹر کیا جاتا ہے۔
فنڈ مینجمنٹ کی اصلاح: تجارت کی کارکردگی ، واپسی کی شدت اور جیت کی شرح کی نقل و حرکت کے مطابق پوزیشن کا سائز ایڈجسٹ کریں ، اعلی یقین کے اشارے پر پوزیشن میں اضافہ کریں ، جب غیر یقینی صورتحال زیادہ ہو تو پوزیشن کو کم کریں۔
ٹائم فریم کی ترکیب: نظام کی استحکام کو بہتر بنانے کے لئے ایک سے زیادہ ٹائم فریم کے اشارے کو جوڑنا ، جیسے دن کی لکیر اور گھنٹہ کی لکیر کے رجحانات کے مطابق تجارت کرنا۔
بیچوں میں اسٹوریج اور صفائی کی حکمت عملی: گروپ میں داخلے اور باہر نکلنے کے طریقہ کار کو لاگو کریں ، ایک ہی داخلے کے خطرے سے بچیں ، جبکہ جزوی منافع کے ذریعے بند حفاظت کے منافع کو بچائیں۔
متحرک حرکت پذیر اوسط کراس رجحان ٹریکنگ اور الٹ حکمت عملی ایک عمدہ ڈیزائن شدہ تجارتی نظام ہے جو تاجروں کو متحرک رجحان کا فیصلہ ، لچکدار داخلے کی شرائط اور کثیر سطح کے خطرے کے انتظام کے ذریعہ مارکیٹ میں اتار چڑھاؤ کے لئے منظم ردعمل کا ایک ذریعہ فراہم کرتا ہے۔ اس کی سب سے بڑی خصوصیت یہ ہے کہ رجحان کی پیروی اور واپسی کے داخلے کے فوائد کو جوڑ کر ، بڑے رجحانات کا احترام کرتے ہوئے ، عین مطابق داخلے کے نقطہ نظر کے ذریعہ خطرے کو کنٹرول کریں۔
یہ حکمت عملی خاص طور پر درمیانی اور طویل مدتی اتار چڑھاؤ والے بازاروں کے لئے موزوں ہے۔ تاجر مختلف قسم کے تجارت کو ایڈجسٹ کرکے حکمت عملی کو بہتر بناسکتے ہیں۔ اگرچہ پیرامیٹرز کی حساسیت اور جھٹکے والی مارکیٹ کے غلط سگنل جیسے خطرات موجود ہیں ، لیکن تجویز کردہ اصلاحی سمت جیسے متحرک اشارے ، اتار چڑھاؤ کی شرح میں ایڈجسٹمنٹ اور کثیر وقتی فریم ورک کی تصدیق کو مربوط کرکے حکمت عملی کی استحکام اور موافقت کو مزید بہتر بنایا جاسکتا ہے۔
مجموعی طور پر ، یہ حکمت عملی تاجروں کو ایک منظم ، مقداری تجارتی فریم ورک مہیا کرتی ہے ، جس میں صحیح پیرامیٹرز کی تشکیل اور مناسب خطرے کے انتظام کے ساتھ ، روایتی خرید و فروخت سے کہیں زیادہ بہتر رسک ایڈجسٹمنٹ ریٹرن حاصل کرنے کی صلاحیت ہے۔
/*backtest
start: 2024-04-29 00:00:00
end: 2024-07-27 00:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=6
// @ipuneetg
strategy("PG MA Crossover Buy and Sell Options Special", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// === INPUTS ===
maType = input.string("SMA", title="Select MA Type", options=["SMA", "EMA", "VWMA"])
calcBasis = input.string("close", title="Calculation Basis", options=["close", "OHLC/4", "HLC/3", "HLCC/4"])
maLength = input.int(21, title="Moving Average Length")
reversalThresholdPercent = input.float(0.25, title="Reversal Threshold (%)", step=0.01)
percentBelowTop = input.float(1.0, title="Exit % Below Top (%)", step=0.1, minval=0.1)
shortProfitPercent = input.float(0.5, title="Short Profit Protection (%)", minval=0.1, step=0.1)
stopLossPercent = input.float(1.5, title="Stop Loss % Above Entry (for Shorts)", step=0.1, minval=0.1)
allowShorts = input.bool(true, title="Allow Short Trades?")
// === SESSION SETTINGS ===
startHour = input.int(9, title="Trade Start Hour")
startMinute = input.int(30, title="Start Minute")
endHour = input.int(15, title="Trade End Hour")
endMinute = input.int(15, title="End Minute")
tradeSession = str.tostring(startHour, "00") + str.tostring(startMinute, "00") + "-" + str.tostring(endHour, "00") + str.tostring(endMinute, "00")
sessionActive = not na(time(timeframe.period, tradeSession))
// === PRICE BASIS ===
basis = switch calcBasis
"OHLC/4" => (open + high + low + close) / 4
"HLC/3" => (high + low + close) / 3
"HLCC/4" => (high + low + close + close) / 4
=> close
// === MOVING AVERAGE ===
ma = switch maType
"SMA" => ta.sma(basis, maLength)
"EMA" => ta.ema(basis, maLength)
"VWMA" => ta.vwma(basis, maLength)
// === DYNAMIC REVERSAL DETECTION ===
var float lastReversal = na
var bool isRising = true
thresholdValue = ma * reversalThresholdPercent / 100
if na(lastReversal)
lastReversal := ma
if ma > lastReversal + thresholdValue
isRising := true
lastReversal := ma
else if ma < lastReversal - thresholdValue
isRising := false
lastReversal := ma
maColor = isRising ? color.green : color.red
// === TRADE VARIABLES ===
var float tradeHigh = na
var float tradeLow = na
var float shortEntryPrice = na
var bool inLong = false
var bool inShort = false
// === LONG & SHORT CONDITIONS ===
longEntry = sessionActive and isRising and close >= ma * (1 + reversalThresholdPercent / 100)
longReEntry = sessionActive and isRising and not inLong and close <= ma * 1.01
shortEntry = sessionActive and not isRising and close <= ma * (1 - reversalThresholdPercent / 100)
shortReEntry = sessionActive and not inShort and close >= ma * 0.998
// === EXIT CONDITIONS ===
exitLongBelowTop = close < tradeHigh * (1 - percentBelowTop / 100)
exitLongBelowMA = close < ma
exitShortAboveTop = close > tradeHigh * (1 + percentBelowTop / 100)
exitShortAboveMA = close > ma
// === EXECUTE TRADES ===
// === LONG SIDE ===
if not inLong and (longEntry or longReEntry)
strategy.entry("Long", strategy.long)
tradeHigh := close
inLong := true
if inLong
tradeHigh := math.max(tradeHigh, high)
if exitLongBelowTop or exitLongBelowMA
strategy.close("Long")
reason = exitLongBelowTop ? "Exit Long (Below Top)" : "Exit Long (Below MA)"
inLong := false
// === SHORT SIDE ===
if allowShorts
if not inShort and (shortEntry or shortReEntry)
if close >= ma * 0.996 and close <= ma * 1.002
strategy.entry("Short", strategy.short)
tradeHigh := close
tradeLow := close
shortEntryPrice := close
inShort := true
if inShort
// Update tradeLow dynamically
tradeLow := na(tradeLow) ? close : math.min(tradeLow, close)
// Calculate Stop Levels
hardStopLossPrice = shortEntryPrice * (1 + stopLossPercent / 100)
hardStopLossTriggered = high >= hardStopLossPrice
normalExitPrice1 = tradeLow * (1 + shortProfitPercent / 100)
normalExitTriggered = close > normalExitPrice1 or close > ma
// Exit Conditions
if hardStopLossTriggered
strategy.close("Short", comment="Hard Stop Loss")
inShort := false
tradeLow := na
else
if normalExitTriggered
reason = close > normalExitPrice1 ? "Exit Short (Above Profit %)" : "Exit Short (Above MA)"
strategy.close("Short", comment=reason)
inShort := false
tradeLow := na
// === PLOT MA ===
plot(ma, color=maColor, title="Dynamic Moving Average", linewidth=2)
// === TRADE STATUS BOX ===
var label tradeStatusLabel = na
var color statusColor = color.blue
var string statusText = "No Open Trade"
if inLong
statusColor := color.green
statusText := "Long Trade Open"
else if inShort
statusColor := color.red
statusText := "Short Trade Open"
if not na(tradeStatusLabel)
label.delete(tradeStatusLabel)