انکولی اشاریاتی حرکت پذیر اوسط رینج کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-02-26 14:58:32
ٹیگز:

img

جائزہ

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

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

  1. پیریڈ پیرامیٹر کی بنیاد پر ایکسپونینشیل ویٹڈ چلتی اوسط ای ایچ ایم اے کا حساب لگائیں۔ ای ایچ ایم اے تیزی سے حساب لگاتا ہے اور قیمت کے رجحان کی تبدیلیوں کو مؤثر طریقے سے ٹریک کرسکتا ہے۔

  2. رینج وڈتھ پیرامیٹر کی بنیاد پر ای ایچ ایم اے کے اوپر اور نیچے ایک انکولی چینل بنائیں۔ صرف اس وقت جب قیمت چینل کی اوپری لائن سے اوپر بڑھ جاتی ہے یا چینل کی نچلی لائن سے نیچے آجاتی ہے تو ، یہ سمجھا جاتا ہے کہ رجحان بدل گیا ہے اور تجارتی سگنل متحرک ہوجاتے ہیں۔

  3. چینل کے ساتھ قیمت کے تعلقات کا تعین کریں۔ جب قیمت اوپری لائن سے ٹوٹ جاتی ہے تو طویل ، جب نیچے کی لائن سے ٹوٹ جاتی ہے تو مختصر۔ جب قیمت اوپری لائن سے نیچے ہوتی ہے تو طویل پوزیشن بند کریں ، جب قیمت نیچے کی لائن سے اوپر ہوتی ہے تو مختصر پوزیشن بند کریں۔

فوائد کا تجزیہ

عام حرکت پذیر اوسط حکمت عملی کے مقابلے میں، اس حکمت عملی کے مندرجہ ذیل فوائد ہیں:

  1. چلتی اوسط کا حساب لگانے کے لئے ای ایچ ایم اے الگورتھم کا استعمال کریں۔ ای ایچ ایم اے قیمتوں میں ہونے والی تبدیلیوں پر زیادہ حساس ردعمل ظاہر کرتا ہے اور غلط بریک آؤٹ کی وجہ سے غیر ضروری تجارت سے بچنے کے لئے رجحان کی تبدیلیوں کی مؤثر طریقے سے نشاندہی کرسکتا ہے۔

  2. موافقت پذیر چینل قیمتوں میں اتار چڑھاؤ کو مؤثر طریقے سے فلٹر کرسکتا ہے۔ تجارتی سگنل صرف اس وقت شروع ہوتے ہیں جب قیمت کا رجحان مضبوطی سے بدل گیا ہو۔ اس سے کچھ غیر موثر تجارتوں کو فلٹر کیا جاسکتا ہے اور منافع میں اضافہ ہوسکتا ہے۔

  3. چینل کی چوڑائی کو مختلف مارکیٹ کے حالات کے مطابق لچکدار طریقے سے ایڈجسٹ کیا جاسکتا ہے۔ وسیع چینلز زیادہ اتار چڑھاؤ کو فلٹر کرسکتے ہیں اور تجارتی تعدد کو کم کرسکتے ہیں۔ تنگ چینلز رجحان کی تبدیلیوں کو پہلے سے پہچان سکتے ہیں اور تجارتی تعدد میں اضافہ کرسکتے ہیں۔

خطرے کا تجزیہ

اس حکمت عملی کے ساتھ کچھ خطرات بھی ہیں:

  1. جھوٹے بریکآؤٹس سے ابھی تک مکمل طور پر بچا نہیں جاسکتا ہے۔ قیمتیں چینل سے باہر کی حد تک جاسکتی ہیں۔ خطرات پر قابو پانے کے لئے پیرامیٹرز کو مناسب طریقے سے ایڈجسٹ کرنے کی ضرورت ہے۔

  2. اگر چینل بہت وسیع ہے تو کچھ تجارتی مواقع ضائع ہوسکتے ہیں۔ حساسیت کو بڑھانے کے لئے مناسب حد تک چینل کو تنگ کریں۔

  3. بہت تنگ چینلز غیر موثر تجارت کو بڑھا سکتے ہیں۔ استحکام کو بڑھانے کے لئے چینل کی چوڑائی کو مناسب طریقے سے بڑھائیں۔

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

اس حکمت عملی کو مندرجہ ذیل پہلوؤں میں بہتر بنایا جاسکتا ہے:

  1. پیریڈ پیرامیٹر کو بہتر بنائیں۔ مختلف مصنوعات اور ٹائم فریموں کو اپنانے کے لئے چلتی اوسط حساب کتاب کے دورانیے کو ایڈجسٹ کریں۔

  2. رینج وڈتھ پیرامیٹر کو بہتر بنائیں۔ مارکیٹ کی اتار چڑھاؤ اور ذاتی خطرہ ترجیحات کی بنیاد پر چینل کے دائرہ کار کو ایڈجسٹ کریں۔

  3. اسٹاپ نقصان کی حکمت عملی شامل کریں۔ ہر تجارت میں زیادہ سے زیادہ نقصان کو مؤثر طریقے سے کنٹرول کرنے کے لئے پوزیشنوں کو برقرار رکھنے کے دوران معقول اسٹاپ نقصان کے مقامات مرتب کریں۔

  4. اندراجات کی فلٹرنگ کے لئے دوسرے اشارے کے ساتھ مل کر۔ مثال کے طور پر ، غلط اندراجات کو کم کرنے کے لئے حجم شامل کریں۔

  5. حکمت عملی کی ایپلی کیشنز کو متنوع بنائیں اور پیرامیٹرز کو بہتر بنائیں۔ زیادہ مصنوعات اور ٹائم فریموں میں یونیورسل پیرامیٹرز کی جانچ اور بہتر بنائیں۔

خلاصہ

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


/*backtest
start: 2023-02-25 00:00:00
end: 2024-02-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
args: [["v_input_1",1]]
*/

// Credit is due where credit is due:
// Hull Moving Average: developed by Alan Hull
// EHMA: coded by Twitter @borserman
// I've built on their work in an attempt to create a strategy more robust to fake moves
// @0xLetoII

//@version=4
strategy(
  title="EHMA Range Strategy",
  process_orders_on_close=true,
  explicit_plot_zorder=true,
  overlay=true, 
  initial_capital=1500, 
  default_qty_type=strategy.percent_of_equity, 
  commission_type=strategy.commission.percent, 
  commission_value=0.085,
  default_qty_value=100
  )
  

// Position Type
pos_type = input(defval = "Long", title="Position Type", options=["Both", "Long", "Short"])

// Inputs
Period = input(defval=180, title="Length")
RangeWidth = input(defval=0.02, step=0.01, title="Range Width")
sqrtPeriod = sqrt(Period)

// Function for the Borserman EMA
borserman_ema(x, y) =>
    alpha = 2 / (y + 1)
    sum = 0.0
    sum := alpha * x + (1 - alpha) * nz(sum[1])

// Calculate the Exponential Hull Moving Average
EHMA = borserman_ema(2 * borserman_ema(close, Period / 2) - borserman_ema(close, Period), sqrtPeriod)

// Create upper & lower bounds around the EHMA for broader entries & exits
upper = EHMA + (EHMA * RangeWidth)
lower = EHMA - (EHMA * RangeWidth)

// Plots
EHMAcolor = (close > EHMA ? color.green : color.red)
plot(EHMA, color=EHMAcolor, linewidth=2)
plot(lower, color=color.orange, linewidth=2)
plot(upper, color=color.blue, linewidth=2)


// Strategy
long = close > upper
exit_long = close < lower
short = close < lower
exit_short = close > upper


// Calculate start/end date and time condition
startDate  = input(timestamp("2017-01-01T00:00:00"))
finishDate = input(timestamp("2029-01-01T00:00:00"))
 
time_cond  = true


// Entries & Exits
if pos_type == "Both"
    strategy.entry("Long", strategy.long, comment="Long", when=long and time_cond)
    strategy.close("Long", comment="Exit Long", when=exit_long and time_cond)
    strategy.entry("Short", strategy.short, comment="Short", when=short and time_cond)
    strategy.close("Short", comment="Exit Short", when=exit_short and time_cond)
if pos_type == "Long"
    strategy.entry("Long", strategy.long, comment="Long", when=long and time_cond)
    strategy.close("Long", comment="Exit Long", when=exit_long and time_cond)
if pos_type == "Short"
    strategy.entry("Short", strategy.short, comment="Short", when=short and time_cond)
    strategy.close("Short", comment="Exit Short", when=exit_short and time_cond)
    

مزید