اس حکمت عملی میں تیزی سے ایکسپونینشل ہل موونگ ایوریج (ای ایچ ایم اے) اور ایک موافقت پذیر چینل کا استعمال ہوتا ہے تاکہ رجحان کی پیروی کرنے والی حکمت عملی تیار کی جاسکے۔ چونکہ ای ایچ ایم اے تیزی سے حساب کتاب کرتا ہے ، لہذا یہ مؤثر طریقے سے قیمت کے رجحان کی تبدیلیوں کی نشاندہی کرسکتا ہے اور غلط بریک آؤٹ کی وجہ سے غیر ضروری تجارت سے بچ سکتا ہے۔ اسی وقت ، موافقت پذیر چینل کچھ قیمتوں میں اتار چڑھاؤ کو فلٹر کرسکتا ہے۔ تجارت صرف اس وقت شروع ہوتی ہے جب قیمت چینل سے ٹوٹ جاتی ہے ، غیر موثر تجارت کے امکان کو کم کرتی ہے اور منافع میں اضافہ کرتی ہے۔
پیریڈ پیرامیٹر کی بنیاد پر ایکسپونینشیل ویٹڈ چلتی اوسط ای ایچ ایم اے کا حساب لگائیں۔ ای ایچ ایم اے تیزی سے حساب لگاتا ہے اور قیمت کے رجحان کی تبدیلیوں کو مؤثر طریقے سے ٹریک کرسکتا ہے۔
رینج وڈتھ پیرامیٹر کی بنیاد پر ای ایچ ایم اے کے اوپر اور نیچے ایک انکولی چینل بنائیں۔ صرف اس وقت جب قیمت چینل کی اوپری لائن سے اوپر بڑھ جاتی ہے یا چینل کی نچلی لائن سے نیچے آجاتی ہے تو ، یہ سمجھا جاتا ہے کہ رجحان بدل گیا ہے اور تجارتی سگنل متحرک ہوجاتے ہیں۔
چینل کے ساتھ قیمت کے تعلقات کا تعین کریں۔ جب قیمت اوپری لائن سے ٹوٹ جاتی ہے تو طویل ، جب نیچے کی لائن سے ٹوٹ جاتی ہے تو مختصر۔ جب قیمت اوپری لائن سے نیچے ہوتی ہے تو طویل پوزیشن بند کریں ، جب قیمت نیچے کی لائن سے اوپر ہوتی ہے تو مختصر پوزیشن بند کریں۔
عام حرکت پذیر اوسط حکمت عملی کے مقابلے میں، اس حکمت عملی کے مندرجہ ذیل فوائد ہیں:
چلتی اوسط کا حساب لگانے کے لئے ای ایچ ایم اے الگورتھم کا استعمال کریں۔ ای ایچ ایم اے قیمتوں میں ہونے والی تبدیلیوں پر زیادہ حساس ردعمل ظاہر کرتا ہے اور غلط بریک آؤٹ کی وجہ سے غیر ضروری تجارت سے بچنے کے لئے رجحان کی تبدیلیوں کی مؤثر طریقے سے نشاندہی کرسکتا ہے۔
موافقت پذیر چینل قیمتوں میں اتار چڑھاؤ کو مؤثر طریقے سے فلٹر کرسکتا ہے۔ تجارتی سگنل صرف اس وقت شروع ہوتے ہیں جب قیمت کا رجحان مضبوطی سے بدل گیا ہو۔ اس سے کچھ غیر موثر تجارتوں کو فلٹر کیا جاسکتا ہے اور منافع میں اضافہ ہوسکتا ہے۔
چینل کی چوڑائی کو مختلف مارکیٹ کے حالات کے مطابق لچکدار طریقے سے ایڈجسٹ کیا جاسکتا ہے۔ وسیع چینلز زیادہ اتار چڑھاؤ کو فلٹر کرسکتے ہیں اور تجارتی تعدد کو کم کرسکتے ہیں۔ تنگ چینلز رجحان کی تبدیلیوں کو پہلے سے پہچان سکتے ہیں اور تجارتی تعدد میں اضافہ کرسکتے ہیں۔
اس حکمت عملی کے ساتھ کچھ خطرات بھی ہیں:
جھوٹے بریکآؤٹس سے ابھی تک مکمل طور پر بچا نہیں جاسکتا ہے۔ قیمتیں چینل سے باہر کی حد تک جاسکتی ہیں۔ خطرات پر قابو پانے کے لئے پیرامیٹرز کو مناسب طریقے سے ایڈجسٹ کرنے کی ضرورت ہے۔
اگر چینل بہت وسیع ہے تو کچھ تجارتی مواقع ضائع ہوسکتے ہیں۔ حساسیت کو بڑھانے کے لئے مناسب حد تک چینل کو تنگ کریں۔
بہت تنگ چینلز غیر موثر تجارت کو بڑھا سکتے ہیں۔ استحکام کو بڑھانے کے لئے چینل کی چوڑائی کو مناسب طریقے سے بڑھائیں۔
اس حکمت عملی کو مندرجہ ذیل پہلوؤں میں بہتر بنایا جاسکتا ہے:
پیریڈ پیرامیٹر کو بہتر بنائیں۔ مختلف مصنوعات اور ٹائم فریموں کو اپنانے کے لئے چلتی اوسط حساب کتاب کے دورانیے کو ایڈجسٹ کریں۔
رینج وڈتھ پیرامیٹر کو بہتر بنائیں۔ مارکیٹ کی اتار چڑھاؤ اور ذاتی خطرہ ترجیحات کی بنیاد پر چینل کے دائرہ کار کو ایڈجسٹ کریں۔
اسٹاپ نقصان کی حکمت عملی شامل کریں۔ ہر تجارت میں زیادہ سے زیادہ نقصان کو مؤثر طریقے سے کنٹرول کرنے کے لئے پوزیشنوں کو برقرار رکھنے کے دوران معقول اسٹاپ نقصان کے مقامات مرتب کریں۔
اندراجات کی فلٹرنگ کے لئے دوسرے اشارے کے ساتھ مل کر۔ مثال کے طور پر ، غلط اندراجات کو کم کرنے کے لئے حجم شامل کریں۔
حکمت عملی کی ایپلی کیشنز کو متنوع بنائیں اور پیرامیٹرز کو بہتر بنائیں۔ زیادہ مصنوعات اور ٹائم فریموں میں یونیورسل پیرامیٹرز کی جانچ اور بہتر بنائیں۔
یہ حکمت عملی ای ایچ ایم اے اشارے اور موافقت پذیر چینل اشارے کو یکجا کرتی ہے تاکہ رجحان کی پیروی کرنے والی حکمت عملی تشکیل دی جاسکے۔ یہ مارکیٹ کے رجحانات کو مؤثر طریقے سے پہچان سکتا ہے اور غیر ضروری تجارت سے بچنے کے لئے قیمتوں میں اتار چڑھاؤ کو فلٹر کرسکتا ہے۔ پیرامیٹر کی اصلاح اور رسک کنٹرول کی ایک سیریز کے بعد ، مختلف مصنوعات اور ٹائم فریموں میں مستحکم منافع حاصل کیا جاسکتا ہے۔
/*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)