ایکٹیویشن فنکشن آپٹیمائزیشن کے ساتھ اسکیل نارملائزڈ ویکٹر ٹریڈنگ حکمت عملی


تخلیق کی تاریخ: 2024-01-22 09:02:30 آخر میں ترمیم کریں: 2024-01-22 09:02:30
کاپی: 0 کلکس کی تعداد: 578
1
پر توجہ دیں
1617
پیروکار

ایکٹیویشن فنکشن آپٹیمائزیشن کے ساتھ اسکیل نارملائزڈ ویکٹر ٹریڈنگ حکمت عملی

جائزہ

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

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

  1. مقررہ ٹائم لائن پر قریبی قیمتوں میں فی صد تبدیلی کا حساب لگائیں
  2. ایکٹیویشن فنکشن کو x منتقل کریں اور آپ کو ایک پروسیسنگ سیریز p ملے گی
  3. مثبت منفی thresholds قائم کریں، جب پی اوپر سے گزرتا ہے تو زیادہ کریں، اور نیچے سے گزرنے پر خالی کریں
  4. غلط سگنل سے بچنے کے لئے دوبارہ نقشہ بند کریں

طاقت کا تجزیہ

  1. ایکٹیویشن فنکشن متعارف کرایا ، شور کو فلٹر کریں ، سگنل کے فیصلے کے معیار کو بہتر بنائیں
  2. نئی پوزیشن کھولنے اور پوزیشن صاف کرنے کی منطق ، خود کار طریقے سے تجارت کی جا سکتی ہے
  3. مزید مارکیٹوں کے لئے پیرامیٹرز کی اپنی مرضی کے مطابق جگہ شامل کریں
  4. بہترین بصری ڈیزائن، جو ٹریڈنگ سگنل کی عکاسی کرتا ہے

خطرے کا تجزیہ

  1. غلط قیمتوں کا تعین کرنے سے ٹریڈنگ کے مواقع ضائع ہوسکتے ہیں
  2. مارکیٹ کی معلومات کو فلٹر کرنے کے لئے ایکٹیویشن فنکشن کا غلط انتخاب
  3. ریپنگ کی وجہ سے سگنل مسخ کرنے کی جانچ کی ضرورت ہے

حل:

  1. بہترین قدر تلاش کرنے کے لئے کم از کم پیرامیٹرز کو ایڈجسٹ کریں
  2. مختلف ایکٹیویشن فنکشنز کو آزمائیں اور سب سے زیادہ مماثل تلاش کریں
  3. ریپنگ کا پتہ لگانے کا منطق شامل کریں ، سگنل کی موثریت کی تصدیق کریں

اصلاح کی سمت

  1. ایڈجسٹمنٹ کی حد مقرر کریں
  2. چالو کرنے کی تقریب پیرامیٹرز کو بہتر بنائیں
  3. آٹو سٹاپ نقصان کی منطق شامل کریں
  4. مزید فیکٹر فلٹرنگ سگنل کے ساتھ

خلاصہ کریں۔

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

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

//@version=4
// author: capissimo
strategy("Scaled Normalized Vector Strategy, ver.4", precision=2, overlay=false)
// This is a modification of my Scaled Normalized Vector Strategy  
// original: Drkhodakarami (https://www.tradingview.com/script/Fxv2xFWe-Normalized-Vector-Strategy-By-Drkhodakarami-Opensource/)

price    = input(close,  "Price Data")
tf       = input(18,     "Timeframe", minval=1, maxval=1440)
thresh   = input(14.,    "Threshold", minval=.1, step=.1) 
div      = input(1000000,"Divisor", options=[1,10,100,1000,10000,100000,1000000,10000000,100000000])
mmx      = input(233,    "Minimax Lookback", options=[1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584])
showVol  = input(false,  "Volume")
useold   = input(true,   "Use Old System")
method   = input("Swish", "Activation", options=["Step", "LReLU", "Swish", "None"])

scaleMinimax(X, p, min, max) => 
    hi = highest(X, p), lo = lowest(X, p)
    (max - min) * (X - lo)/(hi - lo) + min

getdiff(prc, tf) =>
    prev  = scaleMinimax((useold ? security(syminfo.tickerid, tostring(tf), prc[1], barmerge.gaps_off, barmerge.lookahead_on) 
                                 : security(syminfo.tickerid, tostring(tf), prc[1])), tf, 0, 1)
    curr  = scaleMinimax((useold ? security(syminfo.tickerid, tostring(tf), hlc3, barmerge.gaps_off, barmerge.lookahead_on)  
                                 : security(syminfo.tickerid, tostring(tf), hlc3)), tf, 0, 1)
    (curr/prev) - 1

relu(x) => max(x, 0)
lrelu(x, alpha) => relu(x) - alpha * relu(-x)
step(x) => x >= 0 ? 1 : -1
log2(x) => log(x) / log(2)
sigmoid(x) => 1 / (1 + exp(-x))
swish(x) => x * sigmoid(x)

f(m) => method==m

vol  = useold ? security(syminfo.tickerid, tostring(tf), volume, barmerge.gaps_off, barmerge.lookahead_on) 
              : security(syminfo.tickerid, tostring(tf), volume)
obv  = cum(change(price) > 0 ? vol : change(price) < 0 ? -vol : 0*vol)
prix = showVol ? obv : price
x    = getdiff(prix, tf)
p    = f("Swish") ? swish(x) : f("Step") ? step(x) : f("LReLU") ? lrelu(x, .8) : x
th   = thresh/div
long = crossover(p, th)
short= crossunder(p, -th)

lime  = color.new(color.lime, 10), fuchsia = color.new(color.fuchsia, 10), 
black = color.new(color.black, 100), gray = color.new(color.gray, 50)
bg    = long ? lime : short ? fuchsia : black
cl    = p > th ? color.green : p < -th ? color.red : color.silver

bgcolor(bg, editable=false)
plot(scaleMinimax(th, mmx, -1, 1), color=lime, editable=false, transp=0)
hline(0, linestyle=hline.style_dotted, title="base line", color=gray, editable=false)
plot(scaleMinimax(-th, mmx, -1, 1), color=fuchsia, editable=false, transp=0)
plot(scaleMinimax(p, mmx, -1, 1), color=cl, style=plot.style_histogram, transp=70, editable=false)
plot(scaleMinimax(p, mmx, -1, 1), color=cl, style=plot.style_linebr, title="prediction", transp=0, editable=false)

strategy.entry("L", true, 1, when=long)
strategy.entry("S", false, 1, when=short)

alertcondition(long, title='Long', message='Long Signal!')
alertcondition(short, title='Short', message='Short Signal!')

//*** Karobein Oscillator
per  = input(8, "Karobein Osc Lookback")

prix2 = ema(price, per)
a = ema(prix2 < prix2[1] ? prix2/prix2[1] : 0, per)
b = ema(prix2 > prix2[1] ? prix2/prix2[1] : 0, per)
c = (prix2/prix2[1])/(prix2/prix2[1] + b)
d = 2*((prix2/prix2[1])/(prix2/prix2[1] + c*a)) - 1

plot(scaleMinimax(d, mmx, -1, 1), color=color.orange, transp=0)