ڈبل موونگ ایوریج ریورس ٹریکنگ حکمت عملی ایک مقداری تجارتی حکمت عملی ہے جو ٹریڈنگ سگنلز کے طور پر موونگ ایوریج کراس اوورز کا استعمال کرتی ہے۔ یہ حکمت عملی تجارتی سگنل بنانے اور مارکیٹ میں الٹ پھیر کے مواقع کو حاصل کرنے کے لئے ایم اے سی ڈی اشارے کے تیز اور سست حرکت پذیر اوسط فرق اور اس کی سگنل لائن کے ساتھ ساتھ تجارتی حجم کے لمبے / مختصر تناسب کو جوڑتی ہے۔
یہ حکمت عملی بنیادی طور پر فاسٹ لائن اور سست لائن کے مابین تعلقات کا جائزہ لیتی ہے۔ جب فاسٹ لائن سست لائن سے اوپر گزرتی ہے تو یہ خرید کا اشارہ دیتی ہے ، اور جب فاسٹ لائن سست لائن سے نیچے گزرتی ہے تو فروخت کا اشارہ دیتی ہے۔ اس کے علاوہ ، یہ مارکیٹ کی طویل / مختصر حیثیت کا جامع جائزہ بھی لیتا ہے جس کی بنیاد پر ایم اے سی ڈی فرق کی قیمت کی لمبی / مختصر حالت ، فرق اور سگنل لائن کے مابین تعلق ، تجارتی حجم کی لمبی / مختصر صورتحال وغیرہ۔
خاص طور پر ، حکمت عملی MACD فرق کی قیمت کے سائز اور سمت ، فرق اور سگنل لائن کے مابین کراس اوور ، فرق اور سگنل لائن کے مابین مستقل یا مخالف سمت وغیرہ کا جائزہ لیتی ہے۔ یہ حالات ڈوبنے کے بعد ذیلی مارکیٹ کی بحالی کی خصوصیات کی عکاسی کرتی ہیں۔ اس کے علاوہ ، تجارتی حجم کی لمبی / مختصر تقسیم کو بھی معاون فیصلے کے اشارے کے طور پر استعمال کیا جاتا ہے۔
جب فرق اور سگنل لائن میں مارکیٹ کی تبدیلی کے سگنل دکھائے جاتے ہیں، اور تجارتی حجم مارکیٹ کی تبدیلی کی تصدیق کے مطابق ہوتا ہے، تو تجارتی سگنل پیدا کیے جائیں گے.
ڈبل موونگ ایوریج ریورس ٹریکنگ حکمت عملی میں موونگ ایوریجز ، ایم اے سی ڈی ، اور تجارتی حجم جیسے اشارے پر جامع طور پر غور کیا جاتا ہے۔ ان کے الٹ سگنل کو پکڑ کر ، پوزیشنوں کو قائم کرنے کے لئے مناسب الٹ پوائنٹس کا انتخاب کیا جاتا ہے۔ اس حکمت عملی کو بہتر بنانے کے لئے ابھی بھی بہت زیادہ گنجائش ہے ، مشین لرننگ اور رسک مینجمنٹ جیسی تکنیکوں سے استحکام اور منافع میں مزید بہتری آسکتی ہے۔
/*backtest start: 2024-01-20 00:00:00 end: 2024-02-19 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("3 10 Oscillator Profile Flagging", shorttitle="3 10 Oscillator Profile Flagging", overlay=true) signalBiasValue = input(title="Signal Bias", defval=0.26) macdBiasValue = input(title="MACD Bias", defval=0.8) shortLookBack = input( title="Short LookBack", defval=3) longLookBack = input( title="Long LookBack", defval=10) fast_ma = ta.sma(close, 3) slow_ma = ta.sma(close, 10) macd = fast_ma - slow_ma signal = ta.sma(macd, 16) hline(0, "Zero Line", color = color.black) buyVolume = volume*((close-low)/(high-low)) sellVolume = volume*((high-close)/(high-low)) buyVolSlope = buyVolume - buyVolume[1] sellVolSlope = sellVolume - sellVolume[1] signalSlope = ( signal - signal[1] ) macdSlope = ( macd - macd[1] ) //plot(macdSlope, color=color.red, title="Total Volume") //plot(signalSlope, color=color.green, title="Total Volume") intrabarRange = high - low getLookBackSlope(lookBack) => signal - signal[lookBack] getBuyerVolBias(lookBack) => j = 0 for i = 1 to lookBack if buyVolume[i] > sellVolume[i] j += 1 j getSellerVolBias(lookBack) => j = 0 for i = 1 to lookBack if sellVolume[i] > buyVolume[i] j += 1 j getVolBias(lookBack) => float b = 0 float s = 0 for i = 1 to lookBack b += buyVolume[i] s += sellVolume[i] b > s getSignalBuyerBias(lookBack) => j = 0 for i = 1 to lookBack if signal[i] > signalBiasValue j += 1 j getSignalSellerBias(lookBack) => j = 0 for i = 1 to lookBack if signal[i] < ( 0 - signalBiasValue ) j += 1 j getSignalNoBias(lookBack) => j = 0 for i = 1 to lookBack if signal[i] < signalBiasValue and signal[i] > ( 0 - signalBiasValue ) j += 1 j getPriceRising(lookBack) => j = 0 for i = 1 to lookBack if close[i] > close[i + 1] j += 1 j getPriceFalling(lookBack) => j = 0 for i = 1 to lookBack if close[i] < close[i + 1] j += 1 j getRangeNarrowing(lookBack) => j = 0 for i = 1 to lookBack if intrabarRange[i] < intrabarRange[i + 1] j+= 1 j getRangeBroadening(lookBack) => j = 0 for i = 1 to lookBack if intrabarRange[i] > intrabarRange[i + 1] j+= 1 j bool isNegativeSignalReversal = signalSlope < 0 and signalSlope[1] > 0 bool isNegativeMacdReversal = macdSlope < 0 and macdSlope[1] > 0 bool isPositiveSignalReversal = signalSlope > 0 and signalSlope[1] < 0 bool isPositiveMacdReversal = macdSlope > 0 and macdSlope[1] < 0 bool hasBearInversion = signalSlope > 0 and macdSlope < 0 bool hasBullInversion = signalSlope < 0 and macdSlope > 0 bool hasSignalBias = math.abs(signal) >= signalBiasValue bool hasNoSignalBias = signal < signalBiasValue and signal > ( 0 - signalBiasValue ) bool hasSignalBuyerBias = hasSignalBias and signal > 0 bool hasSignalSellerBias = hasSignalBias and signal < 0 bool hasPositiveMACDBias = macd > macdBiasValue bool hasNegativeMACDBias = macd < ( 0 - macdBiasValue ) bool hasBullAntiPattern = ta.crossunder(macd, signal) bool hasBearAntiPattern = ta.crossover(macd, signal) bool hasSignificantBuyerVolBias = buyVolume > ( sellVolume * 1.5 ) bool hasSignificantSellerVolBias = sellVolume > ( buyVolume * 1.5 ) // 7.48 Profit 52.5% if ( hasSignificantBuyerVolBias and getPriceRising(shortLookBack) == shortLookBack and getBuyerVolBias(shortLookBack) == shortLookBack and hasPositiveMACDBias and hasBullInversion) strategy.entry("Short1", strategy.short) strategy.exit("TPS", "Short1", limit=strategy.position_avg_price - 0.75, stop=strategy.position_avg_price + 0.5) // 32.53 Profit 47.91% if ( getPriceFalling(shortLookBack) and (getVolBias(shortLookBack) == false) and signalSlope < 0 and hasSignalSellerBias) strategy.entry("Long1", strategy.long) strategy.exit("TPS", "Long1", limit=strategy.position_avg_price + 0.75, stop=strategy.position_avg_price - 0.5)