اس حکمت عملی کا نام ہے
ایم اے سی ڈی کا مطلب ہے موونگ ایوریج کنورجنس ڈائیورجنس۔ اس میں فاسٹ لائن ، سست لائن ، اور ہسٹوگرام شامل ہیں۔ جب فاسٹ لائن سست لائن سے اوپر گزرتی ہے تو ، یہ قلیل مدتی قیمت کی رفتار کو مضبوط کرنے کا اشارہ کرتی ہے اور خرید کا اشارہ پیدا کرتی ہے۔ جب فاسٹ لائن سست لائن سے نیچے گزرتی ہے تو ، یہ کمزور رفتار کا اشارہ کرتی ہے اور فروخت کا اشارہ پیدا کرتی ہے۔
آر ایس آئی کا مطلب رشتہ دار طاقت کا اشاریہ ہے۔ یہ قیمتوں کی زیادہ خرید اور زیادہ فروخت کی حالت کو ظاہر کرتا ہے۔ آر ایس آئی 20 سے نیچے زیادہ فروخت ہوتا ہے ، اور 80 سے اوپر زیادہ خریدا جاتا ہے۔ زیادہ خرید زون ممکنہ قیمتوں میں گرنے کی انتباہ ہیں ، جبکہ زیادہ فروخت زون ممکنہ اچھال کی انتباہ کرتے ہیں۔
اس حکمت عملی کے تجارتی سگنل دو پہلوؤں سے آتے ہیں:
سب سے پہلے ، ایم اے سی ڈی لائن کراس اوورز اور ہسٹوگرام کی تبدیلیاں۔ جب ہسٹوگرام منفی سے مثبت میں بدل جاتا ہے تو ، یہ قلیل مدتی میں قیمت میں بڑھتی ہوئی رفتار کو ظاہر کرتا ہے ، جس سے خریدنے کے مواقع ظاہر ہوتے ہیں۔ جب ہسٹوگرام مثبت سے منفی میں بدل جاتا ہے تو ، یہ دھندلاہٹ کی رفتار کو ظاہر کرتا ہے اور فروخت کا مشورہ دیتا ہے۔
دوسرا ، آر ایس آئی زیادہ خرید / زیادہ فروخت کی سطحیں۔ آر ایس آئی کو یکجا کرنے سے ایم اے سی ڈی سے کچھ غلط سگنل فلٹر کرنے میں مدد ملتی ہے۔ جب آر ایس آئی کم ہو تو صرف خریدنا اور جب آر ایس آئی زیادہ ہو تو صرف فروخت کرنا درستگی کو بہتر بناتا ہے۔
اس حکمت عملی کا فائدہ یہ ہے کہ زیادہ درست تجارتی سگنلز کے ل the دونوں اشارے کی طاقتوں کو جوڑنا ، اور قلیل مدتی اتار چڑھاؤ کو حساس طور پر پکڑنا۔ لیکن اوور ٹریڈنگ سے بچنے کے لئے ایم اے سی ڈی اور آر ایس آئی پیرامیٹرز کو بہتر بنانے کی ضرورت ہے۔ اسٹاپ نقصان کی سطح کو بھی ایک ہی تجارت کے نقصان کو کنٹرول کرنے کے لئے معقول ہونے کی ضرورت ہے۔
خلاصہ یہ ہے کہ یہ حکمت عملی تیز رفتار قلیل مدتی تجارت کے لئے موزوں ہے ، جو قلیل مدتی الٹ سے منافع کے مواقع کو پکڑتی ہے۔ لیکن پیرامیٹرز کو بروقت ایڈجسٹ کرنے کے لئے فعال رسک مینجمنٹ اور قریب سے مارکیٹ مانیٹرنگ کی ضرورت ہے۔
/*backtest start: 2022-09-06 00:00:00 end: 2023-09-12 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Uraynium V3", overlay=false, pyramiding = 0, calc_on_every_tick=true, precision=1, currency="USD", default_qty_value=10, default_qty_type=strategy.cash,initial_capital=100,commission_type=strategy.commission.percent,commission_value=0.1) // === INPUT BACKTEST RANGE === FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) FromYear = input(defval = 2019, title = "From Year", minval = 2017) ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToYear = input(defval = 2020, title = "To Year", minval = 2017) // === FUNCTION EXAMPLE === start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window inTimeframe() => true overSold = input( 20 , minval = 1, title = "RSI Oversold") overBought = input( 80 , minval = 1, title = "RSI Overbought") rsiLength = input(14, minval = 1, title = "RSI Length") fastLength = input(12, minval = 1, title = "MACD fast") slowlength = input(26, minval = 1, title = "MACD slow") MACDLength = input( 9, minval = 1, title = "MACD length") stopLoss = input( 10, minval = 1, title = "Stop Loss (price %)") takeProfit = input( 50, minval = 1, title = "Take Profit (price %)") triggerPosLvl = input( 2, minval = 1 ,title ="Take Position Threshold", type=input.float) src = close // === CALC === stopLossValue = close*(stopLoss/100)/syminfo.mintick takeProfitValue = close*(takeProfit/100)/syminfo.mintick vrsi = rsi(src, rsiLength) //avgRSI = vrsi*0.5 + vrsi[1]*0.25 + vrsi[2]*0.125 + vrsi[3]*0.0625 avgRSI = (4*vrsi + 3*vrsi + 2*vrsi[2] + vrsi[3])/10 [macdLine, signalLine, histLine] = macd(src, fastLength, slowlength, MACDLength) MACDdelta = signalLine - macdLine isMACDRunLong = signalLine > macdLine isMACDRunShort = macdLine < signalLine isMACDSwitchLong = crossover(MACDdelta, 0) isMACDSwitchShort = crossunder(MACDdelta, 0) isMACDCross = crossover(MACDdelta, 0) or crossunder(MACDdelta, 0) buySignal = (histLine-histLine[1]) + (avgRSI - avgRSI[1]) // === ACTION === isPosLong = strategy.position_size > 0 isPosShort = strategy.position_size < 0 isNoMarginPos= strategy.position_size == 0 entryLong = (isNoMarginPos or isPosShort) and ( buySignal > triggerPosLvl ) entryShort = (isNoMarginPos or isPosLong ) and ( buySignal < -triggerPosLvl ) if inTimeframe() strategy.entry("Long" , strategy.long, comment="Entry Long", when=entryLong ) strategy.entry("Short", strategy.short, comment="Entry Short", when=entryShort) strategy.entry("Long" , strategy.long, comment="Switch Long", when=entryLong) strategy.entry("Short", strategy.short, comment="Switch Short",when=entryShort) strategy.exit("Stop (long SL/TP)", loss=stopLossValue, profit=takeProfitValue, when=entryLong ) strategy.exit("Stop (short SL/TP)", loss=stopLossValue, profit=takeProfitValue, when=entryShort) strategy.close("Long" , when=entryShort) strategy.close("Short", when=entryLong) // === DRAW === posColor = isNoMarginPos ? color.black : isPosLong ? color.green : color.red plot(100, color=posColor,style=plot.style_area, transp=90, histbase=0) plot(buySignal+overBought, color=color.green) plot(50+macdLine/4, color=color.yellow) plot(50+signalLine/4, color=color.orange) histColor = histLine[1]-histLine > 0 ? color.red : color.green plot(overSold+histLine/2, color=histColor, style=plot.style_histogram, histbase=overSold, transp=50, linewidth=2) rsicolor = avgRSI>overBought ? color.red : avgRSI<overSold ? color.green : color.blue plot(avgRSI,color=rsicolor, linewidth=2) //plot(vrsi,color=color.purple, linewidth=2) hline(overBought, color=color.red) hline(overSold, color=color.green) hline(50, color=color.gray)