
اس حکمت عملی میں اینلس ایلیگینٹ شیک اشارے ، اینلس سائیکل اشارے ، اینلس لمحاتی ٹرینڈ لائن اور اینلس اسپیلمین لیول کے متعلقہ فاریکس اشارے کو ایک ساتھ ملایا گیا ہے تاکہ ایک جامع تجارتی حکمت عملی تشکیل دی جاسکے جس میں رجحانات ، جھٹکے ، حرکیات اور قیمت کی خصوصیات کو مکمل طور پر پکڑا جاسکتا ہے۔ حکمت عملی کا نام پیمائش شدہ شیک اشارے کا مجموعہ حکمت عملی ہے۔
اس حکمت عملی میں چار اہم اشارے استعمال کیے گئے ہیں۔
سب سے پہلے ، اینلس ایلیگینٹ وایبلسٹ اشارے ، جس کی اشاریہ اوسط کو ہموار کرنے کے بعد سگنل لائن حاصل کی جاتی ہے ، اور اصل لائن کے فرق سے موجودہ رجحان کی سمت اور طاقت کا فیصلہ کیا جاسکتا ہے۔ دوسرا ، اینلس سائیکلنگ اشارے ، جو سائیکلنگ سائیکل کے نچلے حصے کو مؤثر طریقے سے پہچان سکتا ہے ، اس بات کا فیصلہ کرسکتا ہے کہ آیا مرکزی رجحان الٹ گیا ہے۔ ایک بار پھر ، اینلس لمحہ بہ لمحہ ٹرینڈ لائن تیزی سے چلنے والی اوسط کو ٹریک کرتی ہے ، جو قلیل مدتی رجحان کی سمت کا فیصلہ کرنے کے لئے استعمال کی جاتی ہے۔ آخر میں ، اینلس سپر مین اور اسی طرح کے متعلقہ اشارے قیمت کے تعلقات کا فیصلہ کرتے ہیں ، جعلی توڑ کو مؤثر طریقے سے فلٹر کرسکتے ہیں۔
خاص طور پر ، حکمت عملی میں داخلے کی چار شرائط یہ ہیں: لچکدار لرزنے والے اشارے کی سگنل لائن اور لہراتی اشارے کی سگنل لائن بیک وقت اوپر کی طرف گزرتی ہے 0؛ اصل لائن اوپر کی طرف سے لہراتی لائن کو توڑتی ہے؛ اصل لائن اوپر کی طرف بڑھتی ہوئی لمحاتی رجحان لائن سے اوپر ہے۔ اسپیلمین کی درجہ بندی کے متعلقہ عوامل مثبت ہیں۔
اس کے علاوہ ، اگر آپ کے پاس پہلے سے طے شدہ رجحان لائن ہے تو ، آپ کو اس کے ساتھ تجارت کرنے کی ضرورت نہیں ہے۔
خالی شرائط کرنا ایک سے زیادہ شرائط کرنے کے مترادف ہے ، صرف یہ فیصلہ کرنا کہ شرائط کو الٹا کیا جاسکتا ہے۔
اس حکمت عملی کا سب سے بڑا فائدہ یہ ہے کہ اشارے کا مجموعہ صحیح ہے ، جو ہر اشارے کی طاقت کو موثر انداز میں استعمال کرسکتا ہے ، ایک دوسرے کی تصدیق کرتا ہے ، جھوٹے مثبتات سے بچتا ہے ، جس سے بہت سارے شور کو فلٹر کیا جاسکتا ہے اور سگنل کو زیادہ قابل اعتماد بنایا جاسکتا ہے۔
خاص طور پر ، لچکدار کمپن اشارے رجحان کی سمت اور طاقت کا تعین کرسکتے ہیں ، سائیکل اشارے سائیکل ٹرنپوائنٹ کا تعین کرسکتے ہیں ، لمحاتی رجحان لائن مختصر مدت کے رجحان کا تعین کرسکتے ہیں ، اور اسپیلمین لیول کے متعلقہ فیکٹر مقدار کی قیمت کے تعلقات کا تعین کرسکتے ہیں۔ ان چاروں کا مجموعہ ، رجحان ، سائیکل ، حجم اور مقدار کی قیمت کے لحاظ سے مارکیٹ کی خصوصیات کا مکمل اندازہ لگاسکتا ہے ، جس سے اعلی قابل اعتماد تجارتی سگنل ملتا ہے۔
اس کے علاوہ ، یہ حکمت عملی صرف درمیانی لائن پر مبنی ہے ، جو قلیل مدتی مارکیٹ کے شور کی مداخلت سے بچتی ہے ، اور غیر ضروری واپسی کی تجارت کو کم کرتی ہے۔ اس کے علاوہ ، حکمت عملی کے اشارے نایاب ہیں ، اور باہر نکلنے کے قواعد آسان ہیں ، جس سے تجارت کی فریکوئنسی کو نمایاں طور پر کم کیا جاسکتا ہے ، اور ضرورت سے زیادہ تجارت سے بچنے کے مسائل کو کم کیا جاسکتا ہے۔
اس حکمت عملی کا سب سے بڑا خطرہ اسٹاپ نقصان کا نظام کی کمی ہے۔ جب مارکیٹ میں شدید تبدیلی آتی ہے تو ، بروقت اسٹاپ نقصان کو بڑھا سکتا ہے۔ اس کے علاوہ ، اضافی فلٹرز کی کمی ، جیسے کہ مارجنل سسٹم فلٹرنگ اور توانائی کے اشارے وغیرہ ، جس سے کچھ حد تک جھوٹے مثبت تجارت کا سبب بن سکتا ہے۔
ان خطرات کو کم کرنے کے لئے ، ایک بچاؤ کی روک تھام کی حد مقرر کی جاسکتی ہے ، جب نقصان ایک خاص تناسب سے زیادہ ہوجاتا ہے تو خود بخود بند ہوجاتا ہے۔ اس کے علاوہ ، MACD جیسے متحرک اشارے کو بھی شامل کیا جاسکتا ہے تاکہ غلط بریک آؤٹ کے خطرات سے بچنے کے لئے دوسری تصدیق کی جاسکے۔
اس حکمت عملی کو بہتر بنانے کے لیے درج ذیل نکات پر غور کیا جا سکتا ہے:
ہوشیار رکاوٹ کا طریقہ کار شامل کریں۔ تاریخ کی بازیافت کے اعداد و شمار کے مطابق زیادہ سے زیادہ واپسی کا حساب لگائیں ، اور اسی کے مطابق رکاوٹ کا مقام طے کریں۔
فلٹر شامل کریں۔ MACD، برلن بینڈ اور دیگر اشارے شامل کریں تاکہ جعلی سگنل کو مزید کم کیا جاسکے۔
مزید ٹائم سائیکلوں کے ساتھ۔ اس وقت صرف ایک سیٹ پیرامیٹرز ہیں ، مزید ٹائم سائیکل پیرامیٹرز متعارف کروائے جاسکتے ہیں ، جس میں ایک سے زیادہ ٹائم محور کی توثیق کا طریقہ استعمال کیا جاسکتا ہے ، جس سے استحکام کو بہتر بنایا جاسکتا ہے۔
متحرک ایڈجسٹمنٹ پیرامیٹرز پیرامیٹرز کی اصلاح کے ماڈیول کو شامل کیا گیا ہے ، جو مختلف مارکیٹ کے حالات کے مطابق اشارے کے پیرامیٹرز کو متحرک طور پر ایڈجسٹ کرتا ہے ، تاکہ حکمت عملی زیادہ موافقت پذیر ہو۔
کثیر قسم کے اربیٹ۔ حکمت عملی کو مختلف اقسام میں لاگو کریں ، اربیٹ کے مواقع تلاش کریں ، تاکہ خطرے کو مزید کنٹرول کیا جاسکے۔
اس حکمت عملی نے چار بڑے انڈیکیٹرز کا ایک ہوشیار مجموعہ استعمال کیا ہے ، جس سے رجحانات ، سائیکل ، رفتار اور مقدار کی قیمتوں کا تعین کرنے کے لئے ایک تجارتی حکمت عملی تشکیل دی گئی ہے۔ اس میں شور کو فلٹر کرنے کی عمدہ صلاحیت ہے ، جس سے اعلی معیار کے اشارے پیدا ہوسکتے ہیں۔ لیکن اسٹاپ لاس اور معاون اشارے فلٹرنگ کی کمی اس کو کچھ خطرہ بناتی ہے۔ اسٹاپ لاس ، فلٹر ، زیادہ وقت کی مدت وغیرہ کو شامل کرکے ، حکمت عملی کو زیادہ مستحکم اور قابل اعتماد بنانے کے لئے مؤثر طریقے سے بہتر بنایا جاسکتا ہے۔
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © simwai
//@version=5
strategy('Ehlers Elegant Oscillator + Ehlers Decycler + Ehlers Instantaneous + Ehlers Spearman Rank', 'Ehlers Combo', overlay=true, margin_long=100, margin_short=100)
// -- Inputs --
inp = input(title='Source', defval=close)
res = input.timeframe(title='Resolution', defval='')
bar = input(title='Allow Bar Color Change?', defval=true)
src = inp
length = input.int(title='Length', defval=20, minval=2, maxval=300)
rmsLength = input.int(title='Rms Length', defval=50, minval=2)
decyclerLength = length
// -- Calculation --
// Ehlers Elegant Oscillator
a1 = math.exp(-1.414 * math.pi / length)
b1 = 2 * a1 * math.cos(1.414 * math.pi / length)
c2 = b1
c3 = -a1 * a1
c1 = 1 - c2 - c3
deriv = src - nz(src[2])
rms = math.avg(math.pow(deriv, 2), rmsLength)
rms := rms != 0 ? math.sqrt(rms) : 0
nDeriv = rms != 0 ? deriv / rms : 0
iFish = nDeriv != 0 ? (math.exp(2 * nDeriv) - 1) / (math.exp(2 * nDeriv) + 1) : 0
ss = 0.0
ss := bar_index < 3 ? 0 : (c1 * ((iFish + nz(iFish[1])) / 2)) + (c2 * nz(ss[1])) + (c3 * nz(ss[2]))
ssSig = ta.wma(ss, length)
slo = ss - ssSig
sig = slo > 0 ? slo > nz(slo[1]) ? 2 : 1 : slo < 0 ? slo < nz(slo[1]) ? -2 : -1 : 0
eoColor = sig > 1 ? color.green : sig > 0 ? color.lime : sig < -1 ? color.maroon : sig < 0 ? color.red : color.black
hline(0)
plot(ssSig, title='EO', color=eoColor, linewidth=2)
// Ehlers Decycler
pi = 2 * math.asin(1)
twoPiPrd = 2 * pi / decyclerLength
alpha = (math.cos(twoPiPrd) + math.sin(twoPiPrd) - 1) / math.cos(twoPiPrd)
dec = 0.0
dec := ((alpha / 2) * (src + nz(src[1]))) + ((1 - alpha) * nz(dec[1]))
decyclerSig = src > dec ? 1 : src < dec ? -1 : 0
decColor = decyclerSig > 0 ? color.green : decyclerSig < 0 ? color.red : color.black
plot(dec, title='Decycler', color=decColor, linewidth=2)
// Ehlers Instantaneous Trendline
getItrend(src, alpha) =>
Price = src
Smooth = 0.0
ITrend = 0.0
Trigger = 0.0
ITrend := (alpha - alpha * alpha / 4) * Price + .5 * alpha * alpha * Price[1] - (alpha - .75 * alpha * alpha) * Price[2] + 2 * (1 - alpha) * nz(ITrend[1]) - (1 - alpha) * (1 - alpha) * nz(ITrend[2])
if(bar_index < 7)
ITrend := (Price + 2 * Price[1] + Price[2]) / 4
Trigger := 2 * ITrend - ITrend[2]
[ITrend, Trigger]
itrendAlpha = 2 / (length + 1) / 2
[iT, Tr] = getItrend(src, itrendAlpha)
iTColor = Tr > iT ? color.aqua : color.maroon
plot(iT, 'Instantaneous Trend', iTColor, 2)
// Ehlers Spearman Rank
priceArray = array.new_float(300, 0.0)
rank = array.new_float(300, 0.0)
for i = 1 to length
array.set(priceArray, i, nz(src[i - 1]))
array.set(rank, i, i)
for i = 1 to length
count = length + 1 - i
for j = 1 to length - count
if array.get(priceArray, j + 1) < array.get(priceArray, j)
tempPrice = array.get(priceArray, j)
tempRank = array.get(rank, j)
array.set(priceArray, j, array.get(priceArray, j + 1))
array.set(rank, j, array.get(rank, j + 1))
array.set(priceArray, j + 1, tempPrice)
array.set(rank, j + 1, tempRank)
sum = 0.0
for i = 1 to length
sum := sum + math.pow(i - array.get(rank, i), 2)
signal = 2 * (0.5 - (1 - ((6 * sum) / (length * (math.pow(length, 2) - 1)))))
spearmanSlo = signal - nz(signal[1])
spearmanSig = spearmanSlo > 0 or signal > 0 ? spearmanSlo > nz(spearmanSlo[1]) ? 2 : 1 : spearmanSlo < 0 or signal < 0 ? spearmanSlo < nz(spearmanSlo[1]) ? -2 : -1 : 0
// -- Signals --
bool enterLong = ta.crossover(sig, 0) and ta.crossover(decyclerSig, 0) and ta.crossover(src, dec) and (src > iT) and iT[1] < iT and spearmanSig > 0
bool enterShort = ta.crossunder(sig, 0) and ta.crossunder(decyclerSig, 0) and ta.crossunder(src, dec) and (src < iT) and iT[1] > iT and spearmanSig < 0
bool exitLong = ta.crossunder(src[100], iT)
bool exitShort = ta.crossover(src[100], iT)
barcolor(bar and strategy.position_size > 0 ? color.green : bar and strategy.position_size < 0 ? color.red : color.gray)
// -- Long Exits --
strategy.close('long', when=exitLong and strategy.position_size > 0, comment='EXIT_LONG')
// -- Short Exits --
strategy.close('short', when=exitShort and strategy.position_size < 0, comment='EXIT_SHORT')
bool isStrategyEntryEnabled = true
// -- Long Entries --
if (isStrategyEntryEnabled)
strategy.entry('long', strategy.long, when=enterLong, comment='ENTER_LONG')
else
strategy.order('long', strategy.long, when=enterLong, comment='ENTER_LONG')
// -- Short Entries --
if (isStrategyEntryEnabled)
strategy.entry('short', strategy.short, when=enterShort, comment='ENTER_SHORT')
else
strategy.order('short', strategy.short, when=enterShort, comment='ENTER_SHORT')