مقداری ماہرین کی کثیر جہتی طاقتور افتتاحی اشارے کی حکمت عملی


تخلیق کی تاریخ: 2024-01-19 14:55:03 آخر میں ترمیم کریں: 2024-01-19 14:55:03
کاپی: 0 کلکس کی تعداد: 699
1
پر توجہ دیں
1617
پیروکار

مقداری ماہرین کی کثیر جہتی طاقتور افتتاحی اشارے کی حکمت عملی

جائزہ

اس حکمت عملی میں متعدد مختلف ادوار کے متعدد طاقت کے اشارے جیسے ارون ، ایم اے ، بی بی ، ولیمز ،٪ آر ، اے ڈی ایکس وغیرہ کا امتزاج کیا گیا ہے ، جس سے کثیر جہتی طاقت کا پوزیشن کھولنے کا اشارہ ملتا ہے ، جب رجحان واضح ہوتا ہے تو ، اعلی کارکردگی کا مظاہرہ کرنے کے قابل ہوتا ہے۔

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

اس حکمت عملی میں مندرجہ ذیل اشارے کے مجموعہ کے ذریعہ مضبوط پوزیشن کھولنے کے سگنل حاصل کیے جاتے ہیں:

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

  2. ایم اے میڈین لائن: مختصر دورانیے اور طویل دورانیے کے ایم اے میڈین لائن کا حساب لگانا ، رجحان کا رخ موڑنے کا فیصلہ کرنا۔

  3. بی بلین بینڈ: جب قیمت بلین بینڈ کو ٹریک پر توڑتی ہے تو ، فروخت کے اشارے کے لئے۔

  4. ولیمز٪ R اشارے: یہ اشارے اوورلوڈ اوورلوڈ علاقوں میں تشکیل دیا گیا ہے ، جو پوزیشن کھولنے کے سگنل کے طور پر کام کرتا ہے۔

  5. ADX میڈین ڈائریکشنل موومنٹ انڈیکس: رجحان کی طاقت کا اندازہ لگانے کے لئے ، ADX کسی پوزیشن سے زیادہ ہونے پر پوزیشن کھولنے کا اشارہ دیتا ہے۔

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

اس کے علاوہ ، یہ بھی کہا گیا ہے کہ:

  1. Aroon_1 85 سے کم
  2. جب ایم اے اوسطاً سنہری کانٹا بنتا ہے
  3. Williams %R کم سے کم 99
  4. ADX 14 سے اوپر ہے
  5. Aroon_2 39 سے اوپر

جب مندرجہ بالا 5 میں سے 3 شرائط پوری ہوجائیں تو ایک مضبوط خرید سگنل پیدا ہوتا ہے۔

بیچنے کی شرائط بھی اسی طرح کی ہیں ، پانچ بیچنے کی شرائط ہیں ، جب ان میں سے تین کو پورا کیا جاتا ہے تو ، بیچنے کا اشارہ ہوتا ہے۔

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

طاقت کا تجزیہ

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

دیگر فوائد میں شامل ہیں:

  1. پیرامیٹرز کو ایڈجسٹ کرکے مختلف مارکیٹوں کی خصوصیات کو اپنانا

  2. انڈیکس پیرامیٹرز کی ترتیب سائنسی طور پر معقول ہے ، پیرامیٹرز زیادہ مستحکم ہیں

  3. ایک سے زیادہ ٹائم سائیکلز کا مجموعہ جو فیصلہ کی درستگی کو بہتر بناتا ہے

  4. واضح کوڈ کی ساخت، آسانی سے سمجھنے اور دوبارہ استعمال کرنے کے لئے

خطرے کا تجزیہ

اس حکمت عملی کے کچھ خطرات بھی ہیں:

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

  2. پیرامیٹرز کی ترتیب 100٪ کامل نہیں ہے اور بعض مارکیٹوں میں ناکام ہوسکتی ہے

  3. اشارے کے مجموعے کے طریقوں میں اصلاح کی گنجائش ہے ، مجموعہ منطق کو مزید بہتر بنایا جاسکتا ہے

  4. مختصر مدت میں اصلاحات کے مواقع ضائع ہو سکتے ہیں

اس کا حل کیا ہے؟

  1. نمونے کی بازیافت میں اضافہ ، جانچ پیرامیٹرز کی بے ترتیبی

  2. زیادہ مارکیٹوں کے لئے کچھ پیرامیٹرز کو ایڈجسٹ کرنا

  3. معیار کو بہتر بنانے کے لئے انڈیکس کو بہتر بنانے کے لئے

  4. مختصر مدت کے ایڈجسٹمنٹ پر قبضہ کرنے کے لئے کچھ اشارے پیرامیٹرز کو مناسب طریقے سے کم کریں

اصلاح کی سمت

اس حکمت عملی میں بنیادی اصلاحات اشارے کے انضمام کے طریقوں کو بہتر بنانے کے لئے ہیں ، جن میں شامل ہیں:

  1. زیادہ سے زیادہ مختلف اقسام کے اشارے شامل کریں تاکہ انڈیکیٹرز کے جنگل کو تشکیل دیا جاسکے ، اور اس سے بھی زیادہ درستگی ہوسکے

  2. اشارے کے پیرامیٹرز کی ترتیبات کو بہتر بنائیں تاکہ وہ خود بخود مارکیٹ میں تبدیلیوں کے مطابق ڈھال سکیں۔

  3. مشین لرننگ اور دیگر طریقوں کا استعمال کرتے ہوئے، خود کار طریقے سے سب سے بہتر میٹرکس انٹیگریشن حل تلاش کریں

  4. خطرے پر قابو پانے کے لئے نقصان کی روک تھام کی حکمت عملی میں اضافہ

  5. جذبات کے اشارے وغیرہ کے ساتھ مل کر ، مارکیٹ کی گرمی ، متحرک ایڈجسٹمنٹ پیرامیٹرز کا اندازہ لگائیں

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

خلاصہ کریں۔

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

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

//@version=3
strategy(title="Aroon+Williams+MA2+ADX+Aroon Str.", shorttitle="Aroon+Williams+MA2+ADX+Aroon Str.", overlay=true)
//https://cafe.naver.com/watchbot/1945
//<<빙썸 매각 기념>> 바이낸스 이오스 복합지표	

//Aroon_1
length_1 = input(264, minval=1, title="Length Aroon_1")
upper_1 = 100 * (highestbars(high, length_1+1) + length_1)/length_1
lower_1 = 100 * (lowestbars(low, length_1+1) + length_1)/length_1
midp_1 = 0
oscillator_1 = upper_1 - lower_1
//osc_1 = plot(oscillator_1, color=red)

//Aroon_2
length_2 = input(72, minval=1, title="Length Aroon_2")
upper_2 = 100 * (highestbars(high, length_2+1) + length_2)/length_2
lower_2 = 100 * (lowestbars(low, length_2+1) + length_2)/length_2
midp_2 = 0
oscillator_2 = upper_2 - lower_2
//osc_2 = plot(oscillator_2, color=red)

//Aroon_3
length_3 = input(137, minval=1, title="Length Aroon_3")
upper_3 = 100 * (highestbars(high, length_3+1) + length_3)/length_3
lower_3 = 100 * (lowestbars(low, length_3+1) + length_3)/length_3
midp_3 = 0
oscillator_3 = upper_3 - lower_3
//osc_3 = plot(oscillator_3, color=red)

//Aroon_4
length_4 = input(62, minval=1, title="Length Aroon_4")
upper_4 = 100 * (highestbars(high, length_4+1) + length_4)/length_4
lower_4 = 100 * (lowestbars(low, length_4+1) + length_4)/length_4
midp_4 = 0
oscillator_4 = upper_4 - lower_4
//osc_4 = plot(oscillator_4, color=red)

//Ma double
short_ma_1 = sma(close, 9)
long_ma_1 = sma(close, 21)
// plot(short_ma_1, color = red)
// plot(long_ma_1, color = green)
// plot(cross(short_ma_1, long_ma_1) ? short_ma_1 : na, style = cross, linewidth = 4)

short_ma_2 = sma(close, 9)
long_ma_2 = sma(close, 21)
// plot(short_ma_2, color = red)
// plot(long_ma_2, color = green)
plot(cross(short_ma_2, long_ma_2) ? short_ma_2 : na, transp= 100, title = "ma cross_2", style = cross, linewidth = 4)

//BB
length_bb = input(270, minval=1, title="BB length")
src_bb = input(close, title="Source")
mult_bb = input(2.0, minval=0.001, maxval=50, title="BB mult")
basis_bb = sma(src_bb, length_bb)
dev_bb = mult_bb * stdev(src_bb, length_bb)
upper_bb = basis_bb + dev_bb
lower_bb = basis_bb - dev_bb
// plot(basis_bb, color=red)
// p1 = plot(upper_bb, color=blue)
// p2 = plot(lower_bb, color=blue)
// fill(p1, p2)

//Williams
length_wil = input(130, minval=1, title="Length Williams %R")
upper_wil = highest(length_wil)
lower_wil = lowest(length_wil)
out_wil = 100 * (close - upper_wil) / (upper_wil - lower_wil)
// plot(out_wil)
// band1 = hline(-20)
// band0 = hline(-80)
// fill(band1, band0)



//ADX
adxlen = input(14, title="ADX Smoothing")
dilen = input(145, title="DI Length")
dirmov(len) =>
	up_adx = change(high)
	down_adx = -change(low)
	plusDM = na(up_adx) ? na : (up_adx > down_adx and up_adx > 0 ? up_adx : 0)
    minusDM = na(down_adx) ? na : (down_adx > up_adx and down_adx > 0 ? down_adx : 0)
	truerange = rma(tr, len)
	plus_adx = fixnan(100 * rma(plusDM, len) / truerange)
	minus_adx = fixnan(100 * rma(minusDM, len) / truerange)
	[plus_adx, minus_adx]

adx(dilen, adxlen) =>
	[plus_adx, minus_adx] = dirmov(dilen)
	sum_adx = plus_adx + minus_adx
	adx = 100 * rma(abs(plus_adx - minus_adx) / (sum_adx == 0 ? 1 : sum_adx), adxlen)

sig_adx = adx(dilen, adxlen)

// plot(sig_adx, color=red, title="ADX")


//ADX 2
adxlen_2 = input(14, title="ADX Smoothing")
dilen_2 = input(150, title="DI Length")
dirmov_2(len) =>
	up_adx_2 = change(high)
	down_adx_2 = -change(low)
	plusDM_2 = na(up_adx_2) ? na : (up_adx_2 > down_adx_2 and up_adx_2 > 0 ? up_adx_2 : 0)
    minusDM_2 = na(down_adx_2) ? na : (down_adx_2 > up_adx_2 and down_adx_2 > 0 ? down_adx_2 : 0)
	truerange_2 = rma(tr, len)
	plus_adx_2 = fixnan(100 * rma(plusDM_2, len) / truerange_2)
	minus_adx_2 = fixnan(100 * rma(minusDM_2, len) / truerange_2)
	[plus_adx_2, minus_adx_2]

adx_2(dilen_2, adxlen_2) =>
	[plus_adx_2, minus_adx_2] = dirmov_2(dilen_2)
	sum_adx_2 = plus_adx_2 + minus_adx_2
	adx_2 = 100 * rma(abs(plus_adx_2 - minus_adx_2) / (sum_adx_2 == 0 ? 1 : sum_adx_2), adxlen_2)

sig_adx_2 = adx(dilen_2, adxlen_2)

// plot(sig_adx_2, color=red, title="ADX_2")

//Input Position
//buy position
pos_aroon1 = input(-85, title="Aroon_1 Position Index_Down")
pos_madouble1_short = input(117, title="ma double_1 wma_Short")
pos_madouble1_long =  input(86, title="ma double_1 sma_Long")
pos_wil = input(-99, title="Williams Position Index_Down")
pos_adx= input(14, title="ADX Position Index_Up")
pos_aroon2 = input(-39, title="Aroon_2 Position Index_Up")

//sell position
pos_bb = input(120, title="BB Position Index_Up")
pos_aroon_3 = input(99, title="Aroon_3 Position Index_Up")
pos_madouble2_short= input(88, title="ma double_2 ema_Short")
pos_madouble2_long= input(96, title="ma double_2 sma_Long")
pos_adx_2= input(9, title="ADX_2 Position Index_Up")
pos_aroon_4 = input(35, title="Aroon_4 Position Index_Down")

//Condition
longCondition_aroon_1 = (oscillator_1 <= pos_aroon1)
longCondition_ma2 = (pos_madouble1_short > pos_madouble1_long)
longCondition_wil = (out_wil <= pos_wil)
longCondition_adx = (sig_adx >= pos_adx)
longCondition_aroon_2 = (oscillator_2 >= pos_aroon2)

shortCondition_bb = (close > basis_bb)
shortCondition_aroon_3 = (oscillator_3 >= pos_aroon_3)
shortCondition_ma2 = (pos_madouble2_short < pos_madouble2_long)
shortCondition_adx = (sig_adx_2 >= pos_adx_2)
shortCondition_aroon_4 = (oscillator_4 <= pos_aroon_4)

vl_aroon_1 = 0
vl_ma2 = 0
vl_wil = 0
vl_adx = 0
vl_aroon_2 = 0

if longCondition_aroon_1
    vl_aroon_1 := 1
    
if longCondition_ma2
    vl_ma2 := 3

if longCondition_wil
    vl_wil := 1
    
if longCondition_adx
    vl_adx := -1

if longCondition_aroon_2
    vl_aroon_2 := -1
	

vs_bb = 0
vs_aroon_3 = 0
vs_ma2 = 0
vs_adx = 0
vs_aroon_4 = 0

if shortCondition_bb
    vs_bb := 1

if shortCondition_aroon_3
    vs_aroon_3 := 1
    
if shortCondition_ma2
    vs_ma2 := 3

if shortCondition_adx
    vs_adx := -2

if shortCondition_aroon_4
    vs_aroon_4 := -1

// plotshape(vl_aroon_1, title= "vl_aroon_1", location=location.belowbar, color=green, text="vl_aroon_1")
// plotshape(vl_ma2, title= "vl_ma2", location=location.belowbar, color=green, text="\nvl_ma2")
// plotshape(vl_wil, title= "vl_wil", location=location.belowbar, color=green, text="\n\nvl_wil")
// plotshape(vl_adx, title= "vl_adx", location=location.belowbar, color=green, text="\n\n\nvl_adx")
// plotshape(vl_aroon_2, title= "vl_aroon_2", location=location.belowbar, color=green, text="\n\n\n\nvl_aroon_2")

// plotshape(vs_bb, title= "vs_bb", location=location.abovebar, color=orange, text="vs_bb")
// plotshape(vs_aroon_3, title= "vs_aroon_3", location=location.abovebar, color=orange, text="vs_aroon_3\n")
// plotshape(vs_ma2, title= "vs_ma2", location=location.abovebar, color=orange, text="vs_ma2\n\n")
// plotshape(vs_adx, title= "vs_adx", location=location.abovebar, color=orange, text="vs_adx\n\n\n")
// plotshape(vs_aroon_4, title= "vs_aroon_4", location=location.abovebar, color=orange, text="vs_aroon_4\n\n\n\n")

longCondition = (vl_aroon_1 + vl_ma2 + vl_wil + vl_adx + vl_aroon_2) >= 3 ? true : na
shortCondition = (vs_bb + vs_aroon_3 + vs_ma2 + vs_adx + vs_aroon_4) >= 3 ? true : na

buy = longCondition == 1 ? longCondition : na
sell = shortCondition == 1? shortCondition : na

// plotshape(buy, title= "buy", location=location.bottom, color=green, text="buy")
// plotshape(sell, title= "sell", location=location.top, color=orange, text="sell")


// === BACKTEST RANGE ===
FromMonth = input(defval = 8, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 2014)
ToMonth   = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 2018, title = "To Year", minval = 2014)

strategy.entry("L", strategy.long, when=(buy))
strategy.close("L", when=(sell))
// strategy.entry("S", strategy.short, when=(sell and (time >= timestamp(FromYear, FromMonth, FromDay, 00, 00)) and (time <= timestamp(ToYear, ToMonth, ToDay, 23, 59))))
// strategy.close("S", when=(buy and (time <= timestamp(ToYear, ToMonth, ToDay, 23, 59))))