یہ حکمت عملی ٹرینڈ الٹ ٹریڈنگ حکمت عملی ڈیزائن کرنے کے لئے مختلف وقت کی کھڑکیوں میں ٹرانزیکشن حجم میں خرید و فروخت کے دباؤ کے اختلافات کا حساب لگاتی ہے ، جو ایم اے سی ڈی سگنلز کے ساتھ مل کر ہوتی ہے۔ یہ بنیادی طور پر ٹرینڈ الٹ کے بارے میں فیصلہ کرنے کے لئے ٹرانزیکشن حجم میں خرابیوں کو بطور سگنل استعمال کرتی ہے ، اور ایم اے سی ڈی خرید و فروخت کے سگنلز کے ساتھ اس کی تصدیق کرتی ہے ، اس طرح الٹ کے مواقع کو حاصل کرتی ہے۔
اس حکمت عملی کا بنیادی منطق مندرجہ ذیل نکات پر مبنی ہے:
مختلف ٹائم ونڈوز (مختصر اور طویل ونڈوز) میں ٹرانزیکشن حجم کے خریدنے کے دباؤ اور فروخت کے دباؤ کا حساب لگائیں۔ خریدنے اور فروخت کے دباؤ میں اختلافات کی بنیاد پر مستقبل کی رجحان کی سمت کا فیصلہ کریں۔
لمبی اور مختصر حیثیت کا تعین کرنے کے لئے ایم اے سی ڈی (ایم اے سی ڈی لائن اور سگنل لائن کے درمیان فرق) کے فرق کی قیمت کا استعمال کریں۔ رجحان کی تبدیلیوں کی تصدیق کے لئے ٹرانزیکشن حجم میں خرید و فروخت کے دباؤ کے اشاروں کے ساتھ مل کر۔
جب ٹرانزیکشن حجم کی خریداری کے دباؤ کی بے ضابطگی میں اضافہ ہوتا ہے اور ایم اے سی ڈی لائن کراس ہوتی ہے تو ، یہ طے کیا جاتا ہے کہ مارکیٹ میں فروخت سے خریدنے کے رجحان کی تبدیلی ہوسکتی ہے۔
جب ٹرانزیکشن حجم کی فروخت کے دباؤ کی خرابی میں اضافہ ہوتا ہے اور ایم اے سی ڈی لائن کو عبور کرتا ہے تو ، یہ طے ہوتا ہے کہ مارکیٹ میں خریدنے سے فروخت کرنے کی رجحان کی تبدیلی ہوسکتی ہے۔
ریورس سگنل داخل کرنے کے بعد، خطرات کو کنٹرول کرنے کے لیے منافع لینے اور نقصان روکنے کی حکمت عملی استعمال کریں۔
اس حکمت عملی کے فوائد میں شامل ہیں:
ٹرینڈ ریورس پوائنٹس کا تعین کرنے کے لئے ٹرانزیکشن حجم میں طویل / مختصر اختلافات کا استعمال کرتے ہوئے ٹرانزیکشن حجم کے کردار کو نظرانداز کرتے ہوئے صرف رجحان کے تعین کے اشارے جیسے چلتے ہوئے اوسط پر انحصار کرنے سے بچتا ہے۔
ریورسز کی تصدیق کے لیے ایم اے سی ڈی سگنلز کو یکجا کرنے سے فیصلے کی درستگی میں اضافہ ہو سکتا ہے۔
ٹرانزیکشن حجم میں خرابیوں کا تعین کرنے کے لئے طویل اور مختصر وقت کی کھڑکیوں کا استعمال الٹ سگنل کو زیادہ قابل اعتماد بناتا ہے۔
الٹ پلٹ کی حکمت عملیوں میں اوسط منافع کی شرح زیادہ ہوتی ہے۔
اس حکمت عملی کے خطرات میں شامل ہیں:
ٹرانزیکشن حجم اور ایم اے سی ڈی سگنل غلط سگنل دے سکتے ہیں ، جس سے واپسی پر غلط فیصلے ہوسکتے ہیں۔
واپسی کے اشاروں کے شروع ہونے کے بعد، مارکیٹ دوبارہ ایڈجسٹ ہوسکتی ہے اور فوری طور پر براہ راست واپس نہیں آسکتی ہے۔
غیر مناسب منافع اور سٹاپ نقصان کی ترتیب سے نقصانات میں اضافہ ہو سکتا ہے۔
زیادہ ڈرائنگ، مستحکم واپسی کے حصول کے خواہاں سرمایہ کاروں کے لئے مناسب نہیں.
اس حکمت عملی کے لئے اصلاحات میں شامل ہیں:
طویل اور مختصر وقت کی کھڑکیوں کو بہتر بنائیں تاکہ الٹ فیصلے زیادہ درست ہوں۔
لمبی / مختصر درستگی کو بہتر بنانے کے لئے MACD پیرامیٹرز کو بہتر بنائیں.
نقصان کے خطرات کو کم کرنے کے لئے منافع لینے اور نقصان کو روکنے کے الگورتھم کو بہتر بنائیں.
تبدیلی کی کامیابی کی شرح کو بہتر بنانے کے لئے زیادہ غیر معمولی فیصلے کے اشارے شامل کریں.
پوزیشن سائزنگ اور منی مینجمنٹ ماڈیولز شامل کریں.
خلاصہ یہ ہے کہ یہ ایک عام رجحان الٹ الگورتھمک ٹریڈنگ حکمت عملی ہے۔ یہ بنیادی طور پر ٹرانزیکشن حجم کی خرابیوں میں اضافہ اور MACD سگنل کی توثیق پر انحصار کرتا ہے تاکہ طویل عرصے سے مختصر پوزیشنوں یا اس کے برعکس قیمتوں میں تبدیلیوں کا تعین اور قبضہ کیا جاسکے۔ اس حکمت عملی میں اعلی درستگی اور اچھی واپسی کے فوائد ہیں لیکن اس میں کچھ خطرات بھی ہیں۔ پیرامیٹرز اور فعالیت پر مزید اصلاحات حکمت عملی کو اور بھی بہتر کارکردگی کا مظاہرہ کرسکتی ہیں۔
/*backtest start: 2024-01-26 00:00:00 end: 2024-02-25 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("3 10 Oscillator Profile Flagging", shorttitle="3 10 Oscillator Profile Flagging", overlay=false) 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) takeProfit = input( title="Take Profit", defval=0.75) stopLoss = input( title="Stop Loss", defval=0.5) 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(macd, color=color.blue, title="Total Volume") plot(signal, color=color.orange, 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, qty=10) strategy.exit("TPS", "Short1", limit=strategy.position_avg_price - takeProfit, stop=strategy.position_avg_price + stopLoss) // 32.53 Profit 47.91% if ( getPriceFalling(shortLookBack) and (getVolBias(shortLookBack) == false) and signalSlope < 0 and hasSignalSellerBias) strategy.entry("Long1", strategy.long, qty=10) strategy.exit("TPS", "Long1", limit=strategy.position_avg_price + takeProfit, stop=strategy.position_avg_price - stopLoss)