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