
یہ حکمت عملی تکنیکی تجزیہ کے ماسٹر جان ایہلرز کے ڈیزائن کردہ فیشر ٹرانسفارمیشن اشارے پر مبنی ہے ، جس میں قیمت کے رجحان کے الٹ پوائنٹس کی خود کار طریقے سے شناخت کی جاسکتی ہے ، اور طویل اور مختصر پوزیشنوں میں خود کار طریقے سے تجارت کی جاسکتی ہے۔ اس کا سب سے بڑا فائدہ قیمت کے الٹ پوائنٹس کی درستگی اور بروقت شناخت میں ہے۔
اس حکمت عملی میں فشر تبادلوں کے فارمولے کا استعمال کیا جاتا ہے تاکہ قیمتوں کو معیاری بنایا جاسکے ، جس سے قریبی گوس تقسیم کی قیمتوں کا سلسلہ تیار کیا جاسکے۔ فشر تبادلوں کا فارمولا: y = 0.5 * ln (((1+x) / ((1-x)))) ۔ اس تبادلوں کے ذریعہ ، قیمتوں کی انتہائی قیمتوں کو نسبتا more زیادہ نایاب واقعات میں تبدیل کیا جاسکتا ہے۔ جب تازہ ترین فشر تبادلوں کی قیمت پچھلی مدت سے زیادہ یا کم ہو تو ، اس کا مطلب یہ ہے کہ قیمتوں میں ردوبدل ہوسکتا ہے۔ اس حکمت عملی کا مطلب یہ ہے کہ اس اشارے کے نقطہ نظر کے مطابق تجارتی سگنل جاری کیا جائے۔
اس کے علاوہ، اس کے لئے ایک حکمت عملی ہے جو مندرجہ ذیل ہے:
اس حکمت عملی کا سب سے بڑا فائدہ اس کے تجارتی سگنل کی درستگی اور بروقت ہونے میں ہے۔ چونکہ فیشر ٹرانسفارمیشن کی طرف سے پیدا ہونے والی قیمت کی ترتیب تقریبا Gaussian تقسیم کے مطابق ہے ، قیمت کی تبدیلی کی صورت میں ، فیشر ٹرانسفارمیشن اشارے کو تیزی سے پہچاننے اور اس کے مطابق ردعمل دینے کی صلاحیت ہے۔ اس سے واپسی کے مواقع کو بروقت فائدہ اٹھانا یقینی بنایا جاسکتا ہے۔ اس کے علاوہ ، ایہلرز فیشر ٹرانسفارمیشن اشارے خود بھی طویل عرصے سے تصدیق شدہ ہیں ، اور واپسی کے اشارے کی درستگی بہت قابل اعتماد ہے۔
اس حکمت عملی کا سب سے بڑا خطرہ یہ ہے کہ فشر تبادلوں کے بعد قیمتوں کا سلسلہ لازمی طور پر منطقی نظریاتی گاس کی تقسیم کے مطابق نہیں ہوتا ہے۔ جب مارکیٹ میں غیر معمولی اتار چڑھاؤ ہوتا ہے ، جیسے ٹوٹنا ، اچھالنا وغیرہ ، تو اس کی وجہ سے فشر تبادلوں کے اشارے غلط سگنل دیتے ہیں۔ اس وقت اگر مشینی تجارت جاری رہے تو ، اس سے زیادہ نقصان ہوسکتا ہے۔
اس خطرے کو کم کرنے کے لئے ، دوسرے اشارے کے ساتھ مل کر ٹریڈنگ سگنل فلٹرنگ پر غور کیا جاسکتا ہے ، تاکہ مارکیٹ غیر معمولی ہونے پر تجارت سے بچ سکے۔ یا پیرامیٹرز کو مناسب طریقے سے ایڈجسٹ کیا جاسکتا ہے ، تاکہ تجارت کی فریکوئنسی کو کم کیا جاسکے۔
یہ حکمت عملی مندرجہ ذیل پہلوؤں سے بہتر بنائی جا سکتی ہے۔
یہ حکمت عملی ایہلرز کے ڈیزائن کردہ فیشر تبادلوں کے اشارے پر مبنی ہے ، جو قیمتوں کے الٹ پوائنٹس کو تیزی سے اور درست طریقے سے پہچاننے کے قابل ہے ، تاکہ بروقت تجارت کے مواقع کو پکڑ سکے۔ اس کا سب سے بڑا فائدہ تجارتی سگنل کی درستگی اور بروقت ہے۔ اس کے ساتھ ہی کچھ خطرہ بھی ہے ، جس میں پیرامیٹرز اور تجارتی قواعد کو بہتر بنانے کی ضرورت ہے ، تاکہ خطرہ کم کیا جاسکے۔ مجموعی طور پر ، یہ حکمت عملی مزید تحقیق اور اطلاق کے قابل ہے۔
/*backtest
start: 2023-12-08 00:00:00
end: 2024-01-07 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version = 2
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 15/12/2016
// Market prices do not have a Gaussian probability density function
// as many traders think. Their probability curve is not bell-shaped.
// But trader can create a nearly Gaussian PDF for prices by normalizing
// them or creating a normalized indicator such as the relative strength
// index and applying the Fisher transform. Such a transformed output
// creates the peak swings as relatively rare events.
// Fisher transform formula is: y = 0.5 * ln ((1+x)/(1-x))
// The sharp turning points of these peak swings clearly and unambiguously
// identify price reversals in a timely manner.
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="Fisher Transform Indicator by Ehlers Backtest", shorttitle="Fisher Transform Indicator by Ehlers")
Length = input(10, minval=1)
reverse = input(false, title="Trade reverse")
xHL2 = hl2
xMaxH = highest(xHL2, Length)
xMinL = lowest(xHL2,Length)
nValue1 = 0.33 * 2 * ((xHL2 - xMinL) / (xMaxH - xMinL) - 0.5) + 0.67 * nz(nValue1[1])
nValue2 = iff(nValue1 > .99, .999,
iff(nValue1 < -.99, -.999, nValue1))
nFish = 0.5 * log((1 + nValue2) / (1 - nValue2)) + 0.5 * nz(nFish[1])
pos = iff(nFish > nz(nFish[1]), 1,
iff(nFish < nz(nFish[1]), -1, nz(pos[1], 0)))
possig = iff(reverse and pos == 1, -1,
iff(reverse and pos == -1, 1, pos))
if (possig == 1)
strategy.entry("Long", strategy.long)
if (possig == -1)
strategy.entry("Short", strategy.short)
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(nFish, color=green, title="Fisher")
plot(nz(nFish[1]), color=red, title="Trigger")