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

کثیر اشارے متحرک رفتار کراس حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2025-01-06 14:00:47
ٹیگز:ای ایم اےآر ایس آئیایس ایم اےایم اے سی ڈیADX

img

جائزہ

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

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

حکمت عملی میں مختلف ادوار (5, 13, 40, 55) کے چار ای ایم اے کا استعمال کیا گیا ہے تاکہ مارکیٹ کی سمت کا فیصلہ کرنے کے لئے آر ایس آئی اشارے (14 ادوار) کے ذریعہ بڑھا ہوا رجحان کا فریم ورک بنایا جاسکے۔ خاص طور پر:

  1. لانگ سگنل اس وقت پیدا ہوتے ہیں جب 5 پیریڈ ای ایم اے 13 پیریڈ ای ایم اے سے اوپر اور 40 پیریڈ ای ایم اے 55 پیریڈ ای ایم اے سے اوپر عبور کرتا ہے۔
  2. رجحان کی تصدیق کے لئے RSI 50 سے زیادہ اور اس کے 14 پیریڈ اوسط سے زیادہ کی ضرورت ہوتی ہے
  3. نظام EMA5 اور EMA13 کے درمیان فاصلے کا حساب لگاتا ہے، رجحان کی طاقت کا فیصلہ کرنے کے لئے گزشتہ 5 موم بتیوں کے اوسط فاصلے کے ساتھ اس کا موازنہ کرتا ہے
  4. مضبوط خرید سگنل جاری کیے جاتے ہیں جب آر ایس آئی 60 سے زیادہ ہوتا ہے ، اور مضبوط فروخت سگنل جب 40 سے نیچے ہوتا ہے
  5. EMA40 اور EMA13 کے درمیان فاصلے کی تبدیلیوں کا حساب لگانے سے رجحان کی مستقل مزاجی کی تصدیق کی جاتی ہے۔

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

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

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

  1. سائیڈ ویز مارکیٹس میں بہت زیادہ غیر جانبدار سگنل پیدا کر سکتا ہے
  2. متعدد اشارے سگنل تاخیر کا باعث بن سکتے ہیں
  3. پیرامیٹر کی اصلاح کے نتیجے میں overfitting ہو سکتا ہے
  4. تیزی سے رجحانات کے الٹ کے دوران بڑے پیمانے پر نکالنے کا امکان
  5. ای ایم اے کراس اوورز سے جھوٹے بریک آؤٹ کو اضافی فلٹرنگ کی ضرورت ہوتی ہے

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

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

خلاصہ

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


/*backtest
start: 2019-12-23 08:00:00
end: 2025-01-04 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("EMA Crossover Strategy with RSI Average, Distance, and Signal Persistence", overlay=true, fill_orders_on_standard_ohlc=true)

// Define EMAs
ema5 = ta.ema(close, 5)
ema13 = ta.ema(close, 13)
ema40 = ta.ema(close, 40)
ema55 = ta.ema(close, 55)

// Calculate 14-period RSI
rsi = ta.rsi(close, 14)

// Calculate the RSI average
averageRsiLength = 14  // Length for RSI average
averageRsi = ta.sma(rsi, averageRsiLength)

// Define conditions
emaShortTermCondition = ema5 > ema13  // EMA 5 > EMA 13
emaLongTermCondition = ema40 > ema55  // EMA 40 > EMA 55
rsiCondition = rsi > 50 and rsi > averageRsi  // RSI > 50 and RSI > average RSI

// Track the distance between ema5 and ema13 for the last 5 candles
distance = math.abs(ema5 - ema13)
distanceWindow = 5
distances = array.new_float(distanceWindow, 0.0)
array.shift(distances)
array.push(distances, distance)

// Calculate the average distance of the last 5 distances
avgDistance = array.avg(distances)

// Track distance between EMA40 and EMA13 for the last few candles
distance40_13 = math.abs(ema40 - ema13)
distanceWindow40_13 = 5
distances40_13 = array.new_float(distanceWindow40_13, 0.0)
array.shift(distances40_13)
array.push(distances40_13, distance40_13)

// Calculate the average distance for EMA40 and EMA13
avgDistance40_13 = array.avg(distances40_13)

// Neutral condition: if the current distance is lower than the average of the last 5 distances
neutralCondition = distance < avgDistance or ema13 > ema5

// Short signal condition: EMA40 crosses above EMA55
shortCondition = ema40 > ema55

// Conditions for Green and Red signals (based on RSI thresholds)
greenSignalCondition = rsi > 60  // Green if RSI > 60, regardless of EMAs
redSignalCondition = rsi < 40  // Red if RSI < 40, regardless of EMAs

// Combine conditions for a buy signal (Long)
longCondition = emaShortTermCondition and emaLongTermCondition and rsiCondition and not neutralCondition

// Store the last signal (initialized as na)
var string lastSignal = na

// Track previous distance between EMA40 and EMA13
var float prevDistance40_13 = na

// Check if the current distance between EMA40 and EMA13 is greater than the previous
distanceCondition = (not na(prevDistance40_13)) ? (distance40_13 > prevDistance40_13) : true

// Update the lastSignal only if the current candle closes above EMA5, otherwise recalculate it
if (close > ema5)
    if (longCondition and distanceCondition)
        lastSignal := "long"
    else if (shortCondition and distanceCondition)
        lastSignal := "short"
    else if (neutralCondition)
        lastSignal := "neutral"
    // Add green signal based on RSI
    else if (greenSignalCondition)
        lastSignal := "green"
    // Add red signal based on RSI
    else if (redSignalCondition)
        lastSignal := "red"

// If current candle doesn't close above EMA5, recalculate the signal based on current conditions
if (close <= ema5)
    if (longCondition)
        lastSignal := "long"
    else if (shortCondition)
        lastSignal := "short"
    else if (greenSignalCondition)
        lastSignal := "green"
    else if (redSignalCondition)
        lastSignal := "red"
    else
        lastSignal := "neutral"

// Update previous distance for next comparison
prevDistance40_13 := distance40_13

// Set signal conditions based on lastSignal
isLong = lastSignal == "long"
isShort = lastSignal == "short"
isNeutral = lastSignal == "neutral"
isGreen = lastSignal == "green"
isRed = lastSignal == "red"

// Plot signals with preference for long (green) and short (red), no multiple signals per bar
plotshape(isLong, style=shape.circle, color=color.green, location=location.belowbar, size=size.tiny)
plotshape(isShort and not isLong, style=shape.circle, color=color.red, location=location.abovebar, size=size.tiny)
plotshape(isNeutral and not isLong and not isShort, style=shape.circle, color=color.gray, location=location.abovebar, size=size.tiny)
plotshape(isGreen and not isLong and not isShort and not isNeutral, style=shape.circle, color=color.green, location=location.belowbar, size=size.tiny)
plotshape(isRed and not isLong and not isShort and not isNeutral, style=shape.circle, color=color.red, location=location.abovebar, size=size.tiny)

// Plot EMAs for visualization
plot(ema5, color=color.blue, title="EMA 5")
plot(ema13, color=color.orange, title="EMA 13")
plot(ema40, color=color.green, title="EMA 40")
plot(ema55, color=color.red, title="EMA 55")

// Plot RSI average for debugging (optional, remove if not needed)
// plot(averageRsi, title="Average RSI", color=color.orange)
// hline(50, title="RSI 50", color=color.gray)  // Optional: Comment this out too if not needed


if isLong
    strategy.entry("Enter Long", strategy.long)
else if isShort
    strategy.entry("Enter Short", strategy.short)

متعلقہ

مزید