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

ایلڈر فورس انڈیکس معیاری انحراف اور چلتی اوسط پر مبنی مقداری تجارتی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-11-28 17:08:24
ٹیگز:ای ایف آئیاے ٹی آرای ایم اےایس ایم اےایس ڈی

img

جائزہ

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

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

یہ حکمت عملی کئی بنیادی عناصر پر مبنی ہے:

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

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

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

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

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

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

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

خلاصہ

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


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

//@version=5
strategy("Elder's Force Index Strategy with ATR-Based SL and TP", overlay=true)

// Input parameters for fast and long EFI
efi_fast_length = input.int(13, "Fast EFI Length", minval=1)
efi_long_length = input.int(50, "Long EFI Length", minval=1)
stdev_length = input.int(50, "Standard Deviation Length", minval=2, maxval=300)
numdev = input.float(2, "Number of Deviations", minval=1, maxval=20, step=0.1)
atr_length = input.int(14, "ATR Length", minval=1)
atr_multiplier_sl = input.float(1.5, "ATR Multiplier for Stop Loss", step=0.1)
trailing_tp_multiplier = input.float(0.5, "Multiplier for Trailing Take Profit", step=0.1)

// Elder's Force Index Calculation for Fast and Long EFI
efi_fast = ta.ema((close - close[1]) * volume, efi_fast_length)
efi_long = ta.ema((close - close[1]) * volume, efi_long_length)

// Calculate Standard Deviation for Fast EFI
efi_fast_average = ta.sma(efi_fast, stdev_length)
efi_fast_stdev = ta.stdev(efi_fast, stdev_length)
efi_fast_diff = efi_fast - efi_fast_average
efi_fast_result = efi_fast_diff / efi_fast_stdev

// Calculate Standard Deviation for Long EFI
efi_long_average = ta.sma(efi_long, stdev_length)
efi_long_stdev = ta.stdev(efi_long, stdev_length)
efi_long_diff = efi_long - efi_long_average
efi_long_result = efi_long_diff / efi_long_stdev

// Define upper and lower standard deviation levels
upper_sd = numdev
lower_sd = -numdev

// Define entry conditions based on crossing upper and lower standard deviations
long_condition = efi_fast_result > upper_sd and efi_long_result > upper_sd
short_condition = efi_fast_result < lower_sd and efi_long_result < lower_sd

// Check if a position is already open
is_position_open = strategy.position_size != 0

// Calculate ATR for stop loss and take profit
atr = ta.atr(atr_length)

// Initialize stop loss and take profit variables
var float stop_loss = na
var float take_profit = na

// Execute trades based on conditions, ensuring only one trade at a time
if (long_condition and not is_position_open)
    strategy.entry("Long", strategy.long)
    stop_loss := close - atr * atr_multiplier_sl  // Set initial stop loss based on ATR
    take_profit := close + atr * trailing_tp_multiplier  // Set initial take profit based on ATR

if (short_condition and not is_position_open)
    strategy.entry("Short", strategy.short)
    stop_loss := close + atr * atr_multiplier_sl  // Set initial stop loss based on ATR
    take_profit := close - atr * trailing_tp_multiplier  // Set initial take profit based on ATR

// Update exit conditions
if (is_position_open)
    // Update stop loss for trailing
    if (strategy.position_size > 0)  // For long positions
        stop_loss := math.max(stop_loss, close - atr * atr_multiplier_sl)
        
        // Adjust take profit based on price movement
        take_profit := math.max(take_profit, close + atr * trailing_tp_multiplier)

    else if (strategy.position_size < 0)  // For short positions
        stop_loss := math.min(stop_loss, close + atr * atr_multiplier_sl)
        
        // Adjust take profit based on price movement
        take_profit := math.min(take_profit, close - atr * trailing_tp_multiplier)

    // Set exit conditions
    strategy.exit("Long Exit", from_entry="Long", stop=stop_loss, limit=take_profit)
    strategy.exit("Short Exit", from_entry="Short", stop=stop_loss, limit=take_profit)


متعلقہ

مزید