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

پل بیک آپٹیمائزیشن سسٹم کے ساتھ متحرک ملٹی پیریڈ ایکسپونینشل موونگ ایوریج کراس حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-12-27 15:29:38
ٹیگز:ای ایم اےایم اےایس ایم اےآر ایس آئی

img

جائزہ

یہ حکمت عملی ایک مقداری تجارتی نظام ہے جس کی بنیاد متعدد افقی حرکت پذیر اوسط (ای ایم اے) کراس اوورز اور پل بیک کی اصلاح پر ہے۔ یہ پانچ ای ایم اے (ای ایم اے 5 ، ای ایم اے 8 ، ای ایم اے 13 ، ای ایم اے 21 ، اور ای ایم اے 50) کا استعمال مختلف مدت کے اوسط اور قیمت-ای ایم اے تعلقات کے مابین کراس اوور تعلقات کا مشاہدہ کرنے کے لئے مرحلہ وار پوزیشن بلڈنگ اور متحرک پوزیشن بندش کو نافذ کرنے کے لئے کرتا ہے۔ یہ حکمت عملی ایک سرمایہ کاری کے انتظام کے نظام کو استعمال کرتی ہے جو پوزیشنوں کو 20٪ اور 40٪ جیسے مختلف تناسب میں تقسیم کرتی ہے ، مختلف مارکیٹ سگنلز کی بنیاد پر آہستہ آہستہ پوزیشنوں کی تعمیر یا کمی کرتی ہے۔

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

بنیادی منطق میں تین اہم داخلے کے حالات اور دو باہر نکلنے کے حالات شامل ہیں:

  1. انٹری سگنل: جب EMA5 EMA8 سے اوپر جاتا ہے تو 20٪ پوزیشن کھولیں؛ جب EMA5 EMA13 سے اوپر جاتا ہے تو 20٪ شامل کریں؛ جب EMA8 EMA21 سے اوپر جاتا ہے تو 40٪ شامل کریں
  2. پل بیک آپٹیمائزیشن سسٹم: جب قیمت ای ایم اے 50 کو چھوتی ہے تو 20٪ پوزیشن کھولیں۔ جب قیمت ای ایم اے 50 سے اوپر ہوتی ہے تو 20٪ شامل کریں
  3. باہر نکلنے کے اشارے: جب EMA5 EMA13 سے نیچے جاتا ہے تو 50 فیصد پوزیشن بند کریں۔ جب EMA8 EMA21 سے نیچے جاتا ہے تو تمام پوزیشنیں بند کریں۔
  4. خطرہ کنٹرول: تمام پوزیشنوں کو فوری طور پر کلیئر کریں جب قیمت، ای ایم اے 5، اور ای ایم اے 8 سبھی ای ایم اے 50 سے نیچے ہوں

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

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

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

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

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

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

خلاصہ

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


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

//@version=5
strategy("EMA Strategy with Price & EMA5 & EMA8 < EMA50 Condition", overlay=true, margin_long=100, initial_capital=10000, commission_type=strategy.commission.percent, commission_value=0.1)

// ==============================
// INPUTS
// ==============================
lengthEMA5 = input.int(5, "EMA5 Length")
lengthEMA8 = input.int(8, "EMA8 Length")
lengthEMA13 = input.int(13, "EMA13 Length")
lengthEMA21 = input.int(21, "EMA21 Length")
lengthEMA50 = input.int(50, "EMA50 Length")

// Tam pozisyon boyutu (örnek: 100 birim)
full_position = 100.0 
qty20 = full_position * 0.2
qty40 = full_position * 0.4

// ==============================
// EMA HESAPLAMALARI
// ==============================
ema5 = ta.ema(close, lengthEMA5)
ema8 = ta.ema(close, lengthEMA8)
ema13 = ta.ema(close, lengthEMA13)
ema21 = ta.ema(close, lengthEMA21)
ema50 = ta.ema(close, lengthEMA50)

// ==============================
// KESİŞİMLERİ TESPİT FONKSİYONLARI
// ==============================
crossUp(src1, src2) => ta.crossover(src1, src2)
crossDown(src1, src2) => ta.crossunder(src1, src2)

// ==============================
// STRATEJİ KOŞULLARI
// ==============================

// Adım 1: EMA5, EMA8’i yukarı keserse %20’lik alım
step1_condition = crossUp(ema5, ema8)

// Adım 2: EMA5, EMA8’i yukarı kestikten sonra EMA5, EMA13’ü de yukarı keserse %20 daha alım
step2_condition = crossUp(ema5, ema13)

// Adım 3: EMA8, EMA21’i yukarı keserse %40 alım
step3_condition = crossUp(ema8, ema21)

// Çıkış koşulları:
// EMA5, EMA13’ü aşağı keserse pozisyonun %50’sini kapat.
// EMA8, EMA21’i aşağı keserse tüm pozisyonu kapat.
half_close_condition = crossDown(ema5, ema13)
full_close_condition = crossDown(ema8, ema21)

// Düşüşlerde EMA50'ye dokunma -> %20 alım
pullback_condition = low <= ema50 or close <= ema50

// Fiyat tekrar EMA50'nin üzerine çıkarsa -> %20 alım
above_ema50_condition = crossUp(close, ema50)

// Yeni ek koşul:  
// Fiyat, EMA5 ve EMA8’in herbiri EMA50’nin altındaysa tüm pozisyon kapat.
// Bu durum tam bir düşüş senaryosunu işaret eder.
all_below_condition = (close < ema50) and (ema5 < ema50) and (ema8 < ema50)

// Mevcut pozisyon büyüklüğü
pos_size = strategy.position_size

// ==============================
// POZİSYON GİRİŞLERİ
// ==============================
if (step1_condition and pos_size == 0)
    strategy.entry("Step1", strategy.long, qty=qty20)

if (step2_condition and strategy.opentrades < 2)
    strategy.entry("Step2", strategy.long, qty=qty20)

if (step3_condition and strategy.opentrades < 3)
    strategy.entry("Step3", strategy.long, qty=qty40)

// Pullback: Fiyat EMA50'ye temas ederse ve pozisyon yoksa %20 alım
if (pullback_condition and strategy.opentrades == 0)
    strategy.entry("Pullback", strategy.long, qty=qty20)

// Fiyat EMA50’nin üzerine çıkarsa ve pozisyon %100'e ulaşmamışsa %20 alım
if (above_ema50_condition and strategy.opentrades < 4)
    strategy.entry("Above50", strategy.long, qty=qty20)

// ==============================
// POZİSYON YÖNETİMİ (ÇIKIŞLAR)
// ==============================
if (all_below_condition and strategy.opentrades > 0)
    // Tüm pozisyonu kapat çünkü sert düşüş senaryosuna girildi
    strategy.close("Step3")
    strategy.close("Step2")
    strategy.close("Step1")
    strategy.close("Pullback")
    strategy.close("Above50")
else
    // Yarı kapatma (EMA5, EMA13 aşağı kesişimi)
    if (half_close_condition)
        totalTrades = strategy.opentrades
        // Öncelikle en son açılan en büyük pozisyonu kapatarak kademeli küçültme
        if (totalTrades >= 3)
            strategy.close("Step3")     // Bu 40% kapatır
        else if (totalTrades == 2)
            strategy.close("Step2")     // Bu 20% kapatır
        else if (totalTrades == 1)
            strategy.close("Step1")     // Bu da 20% kapatır (tamamen çıkar, ama basitlik için böyle)

    // Tam kapatma (EMA8, EMA21 aşağı kesişimi)
    if (full_close_condition)
        // Açık olan tüm pozisyonları kapat
        strategy.close("Step3")
        strategy.close("Step2")
        strategy.close("Step1")
        strategy.close("Pullback")
        strategy.close("Above50")

// ==============================
// GÖRSELLEŞTİRME
// ==============================
plot(ema5, "EMA5", color=color.new(color.yellow, 0))
plot(ema8, "EMA8", color=color.new(color.blue, 0))
plot(ema13, "EMA13", color=color.new(color.green, 0))
plot(ema21, "EMA21", color=color.new(color.red, 0))
plot(ema50, "EMA50", color=color.new(color.purple, 0))


متعلقہ

مزید