یہ حکمت عملی ایک مقداری تجارتی نظام ہے جو مارکیٹ کے رجحانات اور تجارتی مواقع کی نشاندہی کرنے کے لئے رشتہ دار طاقت انڈیکس (آر ایس آئی) اور موونگ اوسط (ایم اے) کو جوڑتا ہے۔ یہ نظام تجارتی سگنلز کی وشوسنییتا کو بڑھانے کے لئے حجم اور اتار چڑھاؤ کے فلٹرز کو بھی شامل کرتا ہے۔ بنیادی تصور یہ ہے کہ رفتار کی تصدیق کے لئے آر ایس آئی کا استعمال کرتے ہوئے تیز اور سست حرکت پذیر اوسط کے کراس اوور کے ذریعے رجحان کی سمت کا تعین کرنا ، آخر کار ایک مکمل تجارتی فیصلہ سازی کا فریم ورک تشکیل دینا۔
حکمت عملی میں دو سگنل کی تصدیق کا طریقہ کار استعمال کیا گیا ہے: 1. رجحان کی تصدیق کی پرت: مارکیٹ کے رجحانات کا تعین کرنے کے لئے فاسٹ موونگ ایوریج (فاسٹ ایم اے) اور سست موونگ ایوریج (سلو ایم اے) کے کراس اوور کا استعمال کرتا ہے۔ جب تیز لائن سست لائن سے اوپر عبور کرتی ہے تو ، ایک اپ ٹرینڈ قائم ہوتا ہے۔ جب تیز لائن سست لائن سے نیچے عبور کرتی ہے تو ، ایک ڈاؤن ٹرینڈ قائم ہوتا ہے۔ 2. رفتار کی توثیق کی پرت: رفتار کی توثیق کے آلے کے طور پر آر ایس آئی کا استعمال کرتا ہے۔ اپ ٹرینڈز میں ، آر ایس آئی 50 سے نیچے ہونا چاہئے ، جو بڑھتی ہوئی صلاحیت کی نشاندہی کرتا ہے۔ ڈاؤن ٹرینڈز میں ، آر ایس آئی 50 سے اوپر ہونا چاہئے ، جو نیچے کی صلاحیت کی نشاندہی کرتا ہے۔ ٹریڈنگ فلٹرز: ناکافی لیکویڈیٹی یا اتار چڑھاؤ والے سگنلز کو فلٹر کرنے کے لئے حجم اور اے ٹی آر اتار چڑھاؤ کے لئے کم سے کم حد مقرر کرتا ہے۔
یہ حکمت عملی رجحان اور رفتار کے اشارے کے مربوط استعمال کے ذریعے ایک جامع تجارتی نظام قائم کرتی ہے۔ اس نظام کی طاقت اس کی کثیر پرت سگنل کی تصدیق کے طریقہ کار اور جامع رسک مینجمنٹ فریم ورک میں ہے۔ تاہم ، عملی اطلاق کے لئے اصل حالات کی بنیاد پر حکمت عملی کی کارکردگی اور پیرامیٹر کی اصلاح پر مارکیٹ کے حالات کے اثرات پر توجہ دینے کی ضرورت ہے۔ مسلسل بہتری اور اصلاح کے ذریعے ، اس حکمت عملی میں مختلف مارکیٹ کے ماحول میں مستحکم کارکردگی برقرار رکھنے کی صلاحیت ہے۔
/*backtest start: 2024-01-17 00:00:00 end: 2025-01-16 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ // © Boba2601 //@version=5 strategy("RSI-MA Synergy", overlay=true, margin_long=100, margin_short=100) // === Налаштування індикаторів === length_rsi = input.int(14, title="RSI Period", group="Індикатори") fastMALength = input.int(9, title="Fast MA Length", group="Індикатори") slowMALength = input.int(21, title="Slow MA Length", group="Індикатори") // === Налаштування стоп-лосу і тейк-профіту === useStopLossTakeProfit = input.bool(true, title="Використовувати стоп-лос і тейк-профіт", group="Стоп-лос і Тейк-профіт") stopLossPercent = input.float(2.0, title="Стоп-лос (%)", minval=0.1, step=0.1, group="Стоп-лос і Тейк-профіт") takeProfitPercent = input.float(4.0, title="Тейк-профіт (%)", minval=0.1, step=0.1, group="Стоп-лос і Тейк-профіт") // === Налаштування об'єму та волатильності === useVolumeFilter = input.bool(false, title="Використовувати фільтр об'єму", group="Об'єм та Волатильність") volumeThreshold = input.int(50000, title="Мінімальний об'єм", group="Об'єм та Волатильність") useVolatilityFilter = input.bool(false, title="Використовувати фільтр волатильності", group="Об'єм та Волатильність") atrLength = input.int(14, title="Період ATR для волатильності", group="Об'єм та Волатильність") volatilityThreshold = input.float(1.5, title="Мінімальна волатильність (ATR)", step=0.1, group="Об'єм та Волатильність") // === Розрахунок індикаторів === rsiValue = ta.rsi(close, length_rsi) fastMA = ta.sma(close, fastMALength) slowMA = ta.sma(close, slowMALength) // === Розрахунок об'єму та волатильності === averageVolume = ta.sma(volume, 20) atrValue = ta.atr(atrLength) // === Умови входу в позицію === longCondition = ta.crossover(fastMA, slowMA) and rsiValue < 50 if useVolumeFilter longCondition := longCondition and volume > volumeThreshold if useVolatilityFilter longCondition := longCondition and atrValue > volatilityThreshold shortCondition = ta.crossunder(fastMA, slowMA) and rsiValue > 50 if useVolumeFilter shortCondition := shortCondition and volume > volumeThreshold if useVolatilityFilter shortCondition := shortCondition and atrValue > volatilityThreshold // === Логіка входу та виходу з позиції === if (longCondition) strategy.entry("Long", strategy.long) if (useStopLossTakeProfit) stopLossPrice = close * (1 - stopLossPercent / 100) takeProfitPrice = close * (1 + takeProfitPercent / 100) strategy.exit("Exit Long", "Long", stop = stopLossPrice, limit = takeProfitPrice) if (shortCondition) strategy.entry("Short", strategy.short) if (useStopLossTakeProfit) stopLossPrice = close * (1 + stopLossPercent / 100) takeProfitPrice = close * (1 - takeProfitPercent / 100) strategy.exit("Exit Short", "Short", stop = stopLossPrice, limit = takeProfitPrice) // === Закриття позицій за зворотнім сигналом === if (strategy.position_size > 0 and (ta.crossunder(fastMA, slowMA) or rsiValue > 50)) strategy.close("Long", comment="Закрито по сигналу") if (strategy.position_size < 0 and (ta.crossover(fastMA, slowMA) or rsiValue < 50)) strategy.close("Short", comment="Закрито по сигналу")