انکولی ذہین ملٹی فیکٹر ہل مچھیرے کی حکمت عملی کو بہتر بنانا


تخلیق کی تاریخ: 2024-01-16 15:10:06 آخر میں ترمیم کریں: 2024-01-16 15:10:06
کاپی: 1 کلکس کی تعداد: 606
1
پر توجہ دیں
1617
پیروکار

انکولی ذہین ملٹی فیکٹر ہل مچھیرے کی حکمت عملی کو بہتر بنانا

جائزہ

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

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

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

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

باہر نکلنے کے حالات اس کے برعکس ہیں ، گولڈ فورک نے ڈیڈ فورک کو فلیٹ پوزیشن میں رکھ کر پلس کیا ہے۔ ڈیڈ فورک نے گولڈ فورک کو فلیٹ پوزیشن میں رکھ کر بیس کیا۔ اس طرح اشارے کے مابین کراسنگ کا استعمال کرتے ہوئے رجحان کا رخ موڑنے کے لئے استعمال کیا جاتا ہے۔

طاقت کا تجزیہ

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

اس کے علاوہ ، حکمت عملی میں ایک خودکار اسٹاپ نقصان کا طریقہ کار شامل ہے۔ جب قیمت دوبارہ ہل کی حرکت پذیری اوسط سے ٹوٹ جاتی ہے تو ، اس سے خود بخود نقصان ہوتا ہے۔ اس سے حکمت عملی کے نقصان کا خطرہ بہت کم ہوجاتا ہے۔

خطرات اور حل

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

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

اصلاح کی سمت

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

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

  2. اس کے علاوہ ، اس میں مزید انڈیکیٹرز کا مجموعہ شامل کیا گیا ہے ، جس سے زیادہ سے زیادہ فیصلہ سازی کی حکمت عملی اور فیصلہ سازی کی درستگی کو بہتر بنایا جاسکتا ہے۔

  3. قیمتوں کی اہم سطحوں اور چینلز کو دوبارہ تصدیق کے لئے استعمال کرتے ہوئے ، غلط کارروائیوں سے بچنے کے لئے ، توڑ تصدیق کے طریقہ کار میں اضافہ کریں۔

  4. خطرے کی تشخیص کے ماڈیول کو شامل کیا گیا ہے جو مارکیٹ کے حالات کے مطابق پوزیشن کے سائز اور روکنے کی حد کو خود بخود ایڈجسٹ کرسکتا ہے۔

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2023-01-09 00:00:00
end: 2024-01-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is free to copy/paste/use. no permission required. just do it!
// © @SeaSide420 
//@version=4
strategy(title="Hull Fisher",currency="USD",default_qty_type=strategy.percent_of_equity,default_qty_value=100,commission_type=strategy.commission.percent,commission_value=0.25)

//=================================== Inputs =========================================================
period =input(title="HullMA Length", type=input.integer, defval=14, minval=2)
length =input(9, minval=1, title="Signal Length")
line1 = input(5, minval=2, title="Top Line")
line5 = input(-5, maxval=-2, title="Bottom Line")
price = input(open, type=input.source, title="Price data")
entry1 =input(true,type=input.bool, title="Open when HullFisher crossover outside Lines")
entry2 =input(true,type=input.bool, title="Open when HullFisher past zero")
useHMA =input(true,type=input.bool, title="Include Hull_moving_average")
useCCI =input(true,type=input.bool, title="Include Commodity_channel_index")
fishclose=input(true,type=input.bool, title="Close order when Fisher crossover")
HMAclose=input(true,type=input.bool, title="Close order when Hull crossover")

//================================ Calculations ======================================================
HMA = hma(price,period)
HMA2 = HMA[1]
high_ = highest(HMA, length)
low_ = lowest(HMA, length)
round_(val) => val > .99 ? .999 : val < -.99 ? -.999 : val
value = 0.0
value := round_(.66 * ((HMA - low_) / max(high_ - low_, .001) - .5) + .67 * nz(value[1]))
value1 = 0.0
value1 := .5 * log((1 + value) / max(1 - value, .001)) + .5 * nz(value1[1])
value2 = value1[1]
CCI1 = cci(price,period)
CCI2 = CCI1[1]
line2 = line1/2
line4 = line5/2

//================================ Draw Plots =======================================================
colorchange1 =CCI1>CCI2?color.lime:color.red
colorchange2 =value1>value2?color.lime:color.red
a =plot(line1,style=plot.style_line,color=color.red,transp=50,linewidth=2,title="Top Line")
b =plot(line2,style=plot.style_line,color=color.red,transp=50,linewidth=2,title="Upper Line")
c =plot(0,style=plot.style_line,color=color.black,transp=50,linewidth=2,title="Middle Line")
d =plot(line4,style=plot.style_line,color=color.lime,transp=50,linewidth=2,title="Lower Line")
e =plot(line5,style=plot.style_line,color=color.lime,transp=50,linewidth=2,title="Bottom Line")
f =plot(value1, color=color.black,transp=50,linewidth=2, title="Value 1")
g =plot(value2, color=color.black,transp=50,linewidth=2, title="Value 2")
h =plot(CCI1/50,style=plot.style_area, color=colorchange1,transp=50,linewidth=2, title="CCI")
fill(f,g,color=colorchange2,transp=20,title="Color fill")
plot(cross(value1, value2) ? value1 : na, style=plot.style_circles, color=color.black, linewidth=10)
plot(cross(value1, value2) ? value1 : na, style=plot.style_circles, color=color.white, linewidth=8)
plot(cross(value1, value2) ? value1 : na, style=plot.style_circles, color=colorchange2, linewidth=5)

//============================= Entry conditions ====================================================
// Outside Lines crossover or zero lines crossover
LongCondition1 = value1>value2 and value1<line5 and entry1 and not useCCI and not useHMA
ShortCondition1 = value1<value2 and value1>line1 and entry1 and not useCCI and not useHMA
LongCondition2 = value1>value2 and value1>0 and entry2 and not useCCI and not useHMA
ShortCondition2 = value1<value2 and value1<0 and entry2 and not useCCI and not useHMA

// Use CCI
LongCondition3 = value1>value2 and value1<line5 and CCI1>CCI2 and entry1 and useCCI and not useHMA
ShortCondition3 = value1<value2 and value1>line1 and CCI1<CCI2 and entry1 and useCCI and not useHMA
LongCondition4 = value1>value2 and value1>0 and CCI1>CCI2 and entry2 and useCCI and not useHMA
ShortCondition4 = value1<value2 and value1<0 and CCI1<CCI2 and entry2 and useCCI and not useHMA

// Use HMA
LongCondition5 = value1>value2 and value1<line5 and CCI1>CCI2 and HMA>HMA2 and entry1 and not useCCI and useHMA
ShortCondition5 = value1<value2 and value1>line1 and CCI1<CCI2 and HMA<HMA2 and entry1 and not useCCI and useHMA
LongCondition6 = value1>value2 and value1>0 and CCI1>CCI2 and HMA>HMA2 and entry2 and not useCCI and useHMA
ShortCondition6 = value1<value2 and value1<0 and CCI1<CCI2 and HMA<HMA2 and entry2 and not useCCI and useHMA

//Use CCI & HMA
LongCondition7 = value1>value2 and value1<line5 and CCI1>CCI2 and HMA>HMA2 and entry1 and useCCI and useHMA
ShortCondition7 = value1<value2 and value1>line1 and CCI1<CCI2 and HMA<HMA2 and entry1 and useCCI and useHMA
LongCondition8 = value1>value2 and value1>0 and CCI1>CCI2 and HMA>HMA2 and entry2 and useCCI and useHMA
ShortCondition8 = value1<value2 and value1<0 and CCI1<CCI2 and HMA<HMA2 and entry2 and useCCI and useHMA

//========================= Exit & Entry excecution =================================================
if HMAclose and fishclose and value1<value2 and HMA<HMA2
    strategy.close("BUY")
if HMAclose and fishclose and value1>value2 and HMA>HMA2
    strategy.close("SELL")
if HMAclose and HMA<HMA2
    strategy.close("BUY")
if HMAclose and HMA>HMA2
    strategy.close("SELL")
if fishclose and value1<value2
    strategy.close("BUY")
if fishclose and value1>value2
    strategy.close("SELL")    
if LongCondition1 or LongCondition2 or LongCondition3 or LongCondition4 or LongCondition5 or LongCondition6 or LongCondition7 or LongCondition8
    strategy.entry("BUY", strategy.long)
if ShortCondition1 or ShortCondition2 or ShortCondition3 or ShortCondition4 or ShortCondition5 or ShortCondition6 or ShortCondition7 or ShortCondition8
    strategy.entry("SELL", strategy.short)