وسائل لوڈ ہو رہے ہیں... لوڈنگ...

متحرک دوہری اشارے کی رفتار رجحان مقداری حکمت عملی کا نظام

مصنف:چاؤ ژانگ، تاریخ: 2025-01-17 16:40:55
ٹیگز:آر ایس آئیایم اےاے ٹی آرTP/SL

 Dynamic Dual-Indicator Momentum Trend Quantitative Strategy System

جائزہ

یہ حکمت عملی ایک مقداری تجارتی نظام ہے جو مارکیٹ کے رجحانات اور تجارتی مواقع کی نشاندہی کرنے کے لئے رشتہ دار طاقت انڈیکس (آر ایس آئی) اور موونگ اوسط (ایم اے) کو جوڑتا ہے۔ یہ نظام تجارتی سگنلز کی وشوسنییتا کو بڑھانے کے لئے حجم اور اتار چڑھاؤ کے فلٹرز کو بھی شامل کرتا ہے۔ بنیادی تصور یہ ہے کہ رفتار کی تصدیق کے لئے آر ایس آئی کا استعمال کرتے ہوئے تیز اور سست حرکت پذیر اوسط کے کراس اوور کے ذریعے رجحان کی سمت کا تعین کرنا ، آخر کار ایک مکمل تجارتی فیصلہ سازی کا فریم ورک تشکیل دینا۔

حکمت عملی کا اصول

حکمت عملی میں دو سگنل کی تصدیق کا طریقہ کار استعمال کیا گیا ہے: 1. رجحان کی تصدیق کی پرت: مارکیٹ کے رجحانات کا تعین کرنے کے لئے فاسٹ موونگ ایوریج (فاسٹ ایم اے) اور سست موونگ ایوریج (سلو ایم اے) کے کراس اوور کا استعمال کرتا ہے۔ جب تیز لائن سست لائن سے اوپر عبور کرتی ہے تو ، ایک اپ ٹرینڈ قائم ہوتا ہے۔ جب تیز لائن سست لائن سے نیچے عبور کرتی ہے تو ، ایک ڈاؤن ٹرینڈ قائم ہوتا ہے۔ 2. رفتار کی توثیق کی پرت: رفتار کی توثیق کے آلے کے طور پر آر ایس آئی کا استعمال کرتا ہے۔ اپ ٹرینڈز میں ، آر ایس آئی 50 سے نیچے ہونا چاہئے ، جو بڑھتی ہوئی صلاحیت کی نشاندہی کرتا ہے۔ ڈاؤن ٹرینڈز میں ، آر ایس آئی 50 سے اوپر ہونا چاہئے ، جو نیچے کی صلاحیت کی نشاندہی کرتا ہے۔ ٹریڈنگ فلٹرز: ناکافی لیکویڈیٹی یا اتار چڑھاؤ والے سگنلز کو فلٹر کرنے کے لئے حجم اور اے ٹی آر اتار چڑھاؤ کے لئے کم سے کم حد مقرر کرتا ہے۔

حکمت عملی کے فوائد

  1. کثیر جہتی سگنل کی توثیق: غلط سگنلز کے امکان کو کم کرنے کے لئے رجحان اور رفتار کے اشارے کو یکجا کرتا ہے۔
  2. جامع رسک مینجمنٹ: اسٹاپ نقصان اور منافع لینے کے افعال کو فیصد پر مبنی رسک کنٹرول پوائنٹس کے ساتھ مربوط کرتا ہے۔
  3. لچکدار فلٹرنگ میکانزم: مارکیٹ کے حالات کی بنیاد پر حجم اور اتار چڑھاؤ فلٹرز کو فعال یا غیر فعال کیا جاسکتا ہے۔
  4. خودکار پوزیشن بند کرنا: جب ریورس سگنلز سے بچنے کے لئے ظاہر ہوتا ہے تو پوزیشنوں کو خود بخود بند کر دیتا ہے.

حکمت عملی کے خطرات

  1. مارکیٹ کا خطرہ: رینج سے منسلک مارکیٹوں میں غلط بریک آؤٹ سگنل اکثر پیش آسکتے ہیں۔
  2. سکڑنے کا خطرہ: مارکیٹ کے غیر مستحکم حالات کے دوران ، اصل عملدرآمد کی قیمتیں سگنل ٹرگر کی قیمتوں سے نمایاں طور پر انحراف کرسکتی ہیں۔
  3. پیرامیٹر حساسیت: حکمت عملی کی کارکردگی پیرامیٹر کی ترتیبات پر بہت زیادہ منحصر ہے ، مختلف مارکیٹ کے ماحول میں پیرامیٹر کے مختلف مجموعوں کی ضرورت پڑسکتی ہے۔

حکمت عملی کی اصلاح کی ہدایات

  1. متحرک پیرامیٹر ایڈجسٹمنٹ: مارکیٹ کی اتار چڑھاؤ کی بنیاد پر متحرک اوسط ادوار اور آر ایس آئی کی حدوں کو متحرک طور پر ایڈجسٹ کرنے کے لئے موافقت پذیر پیرامیٹر میکانزم متعارف کروائیں۔
  2. سگنل وزن کا نظام: سگنل طاقت سکورنگ کا نظام قائم کریں، اشارے کی کارکردگی پر مبنی مختلف وزن تفویض کریں.
  3. مارکیٹ کے ماحول کی درجہ بندی: مختلف مارکیٹ کے حالات میں مختلف تجارتی حکمت عملیوں کو استعمال کرنے کے لئے مارکیٹ کی حالت کی شناخت کے ماڈیول شامل کریں.
  4. بہتر رسک کنٹرول: مارکیٹ کی اتار چڑھاؤ کی بنیاد پر اسٹاپ نقصان کی پوزیشنوں کو خودکار طور پر ایڈجسٹ کرنے کے لئے متحرک اسٹاپ نقصان کے طریقہ کار متعارف کروائیں۔

خلاصہ

یہ حکمت عملی رجحان اور رفتار کے اشارے کے مربوط استعمال کے ذریعے ایک جامع تجارتی نظام قائم کرتی ہے۔ اس نظام کی طاقت اس کی کثیر پرت سگنل کی تصدیق کے طریقہ کار اور جامع رسک مینجمنٹ فریم ورک میں ہے۔ تاہم ، عملی اطلاق کے لئے اصل حالات کی بنیاد پر حکمت عملی کی کارکردگی اور پیرامیٹر کی اصلاح پر مارکیٹ کے حالات کے اثرات پر توجہ دینے کی ضرورت ہے۔ مسلسل بہتری اور اصلاح کے ذریعے ، اس حکمت عملی میں مختلف مارکیٹ کے ماحول میں مستحکم کارکردگی برقرار رکھنے کی صلاحیت ہے۔


/*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="Закрито по сигналу")

متعلقہ

مزید