متحرک اوسط (ایم اے): اس حکمت عملی میں دو تیزی سے چلنے والے اوسط (ای ایم اے) ، ایک قلیل مدتی (9 مدت) اور ایک طویل مدتی (21 مدت) استعمال ہوتے ہیں۔ جب قلیل مدتی ایم اے طویل مدتی ایم اے سے تجاوز کرتا ہے تو خرید کا اشارہ پیدا ہوتا ہے ، اور جب یہ اس سے نیچے گزر جاتا ہے تو فروخت کا اشارہ ہوتا ہے۔
بولنگر بینڈ (بی بی): یہ حکمت عملی 20 پیریڈ بولنگر بینڈ کا استعمال کرتی ہے جس کی چوڑائی 2 معیاری انحراف ہے۔ بولنگر بینڈ کو قیمتوں میں اتار چڑھاؤ کی حد کا فیصلہ کرنے کے لئے استعمال کیا جاسکتا ہے ، اور جب قیمتیں اوپری یا نچلی بینڈ کو چھوتی ہیں یا توڑتی ہیں تو ، اس سے رجحان کی تبدیلی کا اشارہ ہوسکتا ہے۔
سپر ٹرینڈ اشارے: یہ اوسط حقیقی رینج (اے ٹی آر) کے حساب پر مبنی رجحان کی پیروی کرنے والا اشارہ ہے۔ جب سپر ٹرینڈ لائن قیمت سے نیچے سے نیچے کی طرف بڑھتی ہے تو یہ خرید کا اشارہ پیدا کرتا ہے ، اور جب یہ اوپر سے نیچے کی طرف بڑھتا ہے تو فروخت کا اشارہ ہوتا ہے۔
پس منظر کا رنگ: حکمت عملی سپر ٹرینڈ اشارے کی رجحان کی سمت کی بنیاد پر چارٹ پس منظر کا رنگ تبدیل کرتی ہے ، سبز رنگ سے ایک اپ ٹرینڈ اور سرخ رنگ سے نیچے کا رجحان ظاہر ہوتا ہے ، جس سے مجموعی طور پر مارکیٹ کا رجحان ظاہر ہوتا ہے۔
کثیر اشارے جامع تجزیہ: متعدد تکنیکی اشارے کو یکجا کرکے ، حکمت عملی مارکیٹ کو مختلف نقطہ نظر سے تجزیہ کرسکتی ہے ، سگنلز کی وشوسنییتا اور درستگی کو بہتر بناتی ہے۔ یہ نقطہ نظر جھوٹے اشاروں کو کم کرسکتا ہے جو ایک ہی اشارے سے پیدا ہوسکتے ہیں۔
رجحان کی پیروی: حکمت عملی کا بنیادی مقصد مارکیٹ کے رجحانات کی پیروی کرنا ہے، جس سے مارکیٹ کی اہم نقل و حرکت کو پکڑنے اور منافع کے مواقع کو بڑھانے میں مدد ملتی ہے.
مارکیٹ کا جامع تجزیہ: قیمتوں کے رجحانات (متغیر اوسط) ، اتار چڑھاؤ (بولنگر بینڈ) ، رفتار (آر ایس آئی) ، اور حجم (وی ڈبلیو اے پی) پر غور کرکے ، حکمت عملی ایک جامع مارکیٹ تجزیہ فراہم کرسکتی ہے۔
خودکار تجارت: اس حکمت عملی کو ٹریڈنگ ویو پلیٹ فارم پر خودکار تجارت کے لئے نافذ کیا جاسکتا ہے ، جس سے انسانی جذبات کے اثرات کم ہوجاتے ہیں اور تجارت کی غیر جانبداری اور نظم و ضبط میں بہتری آتی ہے۔
سگنل لیگ: حرکت پذیر اوسط اور دیگر تکنیکی اشارے میں عام طور پر تاخیر ہوتی ہے ، جس کے نتیجے میں رجحان کے الٹ پوائنٹس کے قریب نمایاں کمی واقع ہوسکتی ہے۔
کثرت سے تجارت: اتار چڑھاؤ والے بازاروں میں ، چلتی اوسط اکثر عبور کرسکتے ہیں ، جس سے تجارتی سگنل زیادہ ہوتے ہیں اور لین دین کے اخراجات زیادہ ہوتے ہیں۔
بدلتے ہوئے مارکیٹ کے حالات: حکمت عملی مخصوص مارکیٹ کے حالات میں اچھی کارکردگی کا مظاہرہ کر سکتی ہے لیکن مارکیٹ کے ماحول میں تبدیلی آنے پر نمایاں طور پر کم کارکردگی کا مظاہرہ کر سکتی ہے۔
اشارے کے تنازعات: متعدد اشارے بعض اوقات متضاد سگنل پیدا کرسکتے ہیں ، جس سے تجارتی فیصلوں میں مشکلات اور غیر یقینی صورتحال پیدا ہوسکتی ہے۔
خطرے کے انتظام کا فقدان: کوڈ میں واضح طور پر سٹاپ نقصان اور منافع لینے کی ترتیبات شامل نہیں ہیں، جس کے نتیجے میں غیر سازگار مارکیٹ کے حالات میں بہت زیادہ نقصانات ہوسکتے ہیں۔
متحرک پیرامیٹرز متعارف کروائیں: مختلف مارکیٹ کے ماحول کو اپنانے کے لئے مارکیٹ میں اتار چڑھاؤ کی بنیاد پر حرکت پذیر اوسط اور بولنگر بینڈ کے پیرامیٹرز کو متحرک طور پر ایڈجسٹ کرنے پر غور کریں۔
اسٹاپ نقصان اور منافع لینے کا عمل درآمد کریں: خطرے کو کنٹرول کرنے اور منافع کو مقفل کرنے کے لئے حکمت عملی میں مناسب اسٹاپ نقصان اور منافع لینے کے طریقہ کار کو شامل کریں۔
مارکیٹ کے نظام کی پہچان شامل کریں: مارکیٹ کی مختلف حالتوں (ٹرینڈ ، نوسکھئیے) کی پہچان کو نافذ کریں اور مختلف ریاستوں کے لئے مختلف تجارتی حکمت عملی اپنائیں۔
سپر ٹرینڈ اشارے کے استعمال کو بہتر بنائیں: صرف پس منظر کے رنگ کی تبدیلیوں کے بجائے ، سپر ٹرینڈ اشارے کو بنیادی رجحان کی تشخیص کے آلے کے طور پر استعمال کرنے پر غور کریں۔
جذبات کے اشارے شامل کریں: مجموعی طور پر مارکیٹ کی حالت اور ممکنہ موڑ کے مقامات کا اندازہ کرنے میں مدد کے لئے حجم یا اتار چڑھاؤ پر مبنی مارکیٹ کے جذبات کے اشارے متعارف کروائیں۔
پوزیشن مینجمنٹ کو نافذ کریں: خطرے کے منافع کے تناسب کو بہتر بنانے کے لئے سگنل کی طاقت اور مارکیٹ کی اتار چڑھاؤ کی بنیاد پر پوزیشن کے سائز کو متحرک طور پر ایڈجسٹ کریں۔
/*backtest start: 2023-06-15 00:00:00 end: 2024-06-20 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Comb Backtest Debug", overlay=true) // Input Parameters lengthMA1 = input.int(9, title="Short-term MA Length") lengthMA2 = input.int(21, title="Long-term MA Length") lengthRSI = input.int(14, title="RSI Length") lengthBB = input.int(20, title="Bollinger Bands Length") multBB = input.float(2.0, title="Bollinger Bands Multiplier") lengthSupertrend = input.int(3, title="Supertrend Length") multSupertrend = input.float(3.0, title="Supertrend Multiplier") Periods = input.int(10, title="ATR Period") src = input.source(hl2, title="Source") Multiplier = input.float(3.0, title="ATR Multiplier", step=0.1) changeATR = input.bool(true, title="Change ATR Calculation Method?") highlighting = input.bool(true, title="Highlighter On/Off?") // Moving Averages ma1 = ta.ema(close, lengthMA1) ma2 = ta.ema(close, lengthMA2) // RSI rsi = ta.rsi(close, lengthRSI) // Bollinger Bands basis = ta.sma(close, lengthBB) dev = multBB * ta.stdev(close, lengthBB) upperBB = basis + dev lowerBB = basis - dev // ATR Calculation atr2 = ta.sma(ta.tr, Periods) atr = changeATR ? ta.atr(Periods) : atr2 // Supertrend Calculation up = src - (Multiplier * atr) up1 = nz(up[1], up) up := close[1] > up1 ? math.max(up, up1) : up dn = src + (Multiplier * atr) dn1 = nz(dn[1], dn) dn := close[1] < dn1 ? math.min(dn, dn1) : dn trend = 1 trend := nz(trend[1], trend) trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend // VWAP vwap = ta.vwap(close) // Plotting Supertrend upPlot = plot(trend == 1 ? up : na, title="Up Trend", style=plot.style_line, linewidth=2, color=color.new(color.green, 70)) dnPlot = plot(trend == 1 ? na : dn, title="Down Trend", style=plot.style_line, linewidth=2, color=color.new(color.red, 70)) // Buy and Sell Signals for Supertrend buySignal = trend == 1 and trend[1] == -1 sellSignal = trend == -1 and trend[1] == 1 plotshape(buySignal ? up : na, title="UpTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(color.green, 70), text="BUY", transp=0) plotshape(sellSignal ? dn : na, title="DownTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(color.red, 70), text="SELL", transp=0) // Highlighting the Trend mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=0) longFillColor = highlighting ? (trend == 1 ? color.new(color.green, 90) : color.white) : color.white shortFillColor = highlighting ? (trend == -1 ? color.new(color.red, 90) : color.white) : color.white fill(mPlot, upPlot, title="UpTrend Highlighter", color=longFillColor) fill(mPlot, dnPlot, title="DownTrend Highlighter", color=shortFillColor) // Plot Moving Averages plot(ma1, title="Short-term MA", color=color.new(color.blue, 70), linewidth=2) plot(ma2, title="Long-term MA", color=color.new(color.red, 70), linewidth=2) // Plot RSI hline(70, "Overbought", color=color.new(color.red, 70)) hline(30, "Oversold", color=color.new(color.green, 70)) plot(rsi, title="RSI", color=color.new(color.purple, 70), linewidth=2) // Plot Bollinger Bands plot(basis, title="BB Basis", color=color.new(color.orange, 70)) p1 = plot(upperBB, title="BB Upper", color=color.new(color.gray, 70)) p2 = plot(lowerBB, title="BB Lower", color=color.new(color.gray, 70)) fill(p1, p2, color=color.new(color.silver, 90), transp=90) // Plot VWAP plot(vwap, title="VWAP", color=color.new(color.green, 70), linewidth=2) // Background Color Based on Supertrend bgcolor(trend == 1 ? color.new(color.green, 90) : color.new(color.red, 90), title="Background Color", transp=90) // Simplified Buy and Sell Conditions for Testing buyCondition = ta.crossover(ma1, ma2) sellCondition = ta.crossunder(ma1, ma2) // Debugging plots plotchar(buyCondition, char='B', location=location.belowbar, color=color.new(color.green, 70), size=size.small, title="Buy Condition") plotchar(sellCondition, char='S', location=location.abovebar, color=color.new(color.red, 70), size=size.small, title="Sell Condition") // Strategy orders for backtesting if (buyCondition) strategy.entry("Buy", strategy.long) if (sellCondition) strategy.entry("Sell", strategy.short) // Alerts for Combined Buy and Sell Conditions alertcondition(buyCondition, title="Combined Buy Alert", message="Combined Buy Signal") alertcondition(sellCondition, title="Combined Sell Alert", message="Combined Sell Signal") alertcondition(buySignal, title="SuperTrend Buy", message="SuperTrend Buy!") alertcondition(sellSignal, title="SuperTrend Sell", message="SuperTrend Sell!") changeCond = trend != trend[1] alertcondition(changeCond, title="SuperTrend Direction Change", message="SuperTrend has changed direction!")