چالو کرنے کے افعال کے ساتھ پیمانے پر معمول ویکٹر حکمت عملی، ور.4

مصنف:چاؤ ژانگ، تاریخ: 2024-01-22 09:02:30
ٹیگز:

img

جائزہ

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

حکمت عملی منطق

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

فوائد کا تجزیہ

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

خطرے کا تجزیہ

  1. غلط حد کی ترتیبات تجارتی مواقع کو کھو سکتی ہیں
  2. غیر مناسب چالو کرنے کے افعال مارکیٹ کی معلومات کو زیادہ فلٹر کرسکتے ہیں
  3. repainting کی طرف سے حوصلہ افزائی سگنل مسخ ٹیسٹنگ کی ضرورت ہے

حل:

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

اصلاح کی ہدایات

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

نتیجہ

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


/*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)


مزید