کاروبین میڈین ریورس کے ساتھ اسکیلڈ نارمل ویکٹر حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-11-03 16:56:13
ٹیگز:

img

جائزہ

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

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

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

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

جب قیمت کی رفتار کا اشارہ ایک سگنل پیدا کرتا ہے، اگر کاروبین میڈین ریورس اشارے کے مطابق سمت کے علاقے میں ہے، تو ایک داخلہ سگنل پیدا ہوتا ہے.

فوائد

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

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

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

  4. متحرک حد کو ریئل ٹائم میں ایڈجسٹ کیا جاسکتا ہے تاکہ مارکیٹ میں ہونے والی تبدیلیوں کو ایڈجسٹ کیا جاسکے۔

خطرات

  1. ایک رجحان کے بعد کی حکمت عملی کے طور پر، یہ رینج سے منسلک رجحانات میں پھنس جانے کا امکان ہے.

  2. کاروبین میڈین ریورس انڈیکیٹر میں ایک خاص تاخیر ہے، جو قیمتوں میں موڑ کے مقامات کو یاد کر سکتی ہے۔

  3. زیادہ عرصے تک انعقاد کے دوران ہونے والے نقصانات کو بڑھانے سے بچنے کے لئے انعقاد کی مدت کے پیرامیٹر کی نگرانی کی جانی چاہئے۔

  4. متحرک حد کو مناسب طریقے سے مقرر کیا جانا چاہئے، نہ کہ بہت وسیع، ورنہ اندراج کے مواقع ضائع ہوسکتے ہیں.

متعلقہ رسک مینجمنٹ کے طریقے:

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

  2. تاخیر کو کم کرنے کے لئے کاروبین میڈین ریورس اشارے کے لئے معقول تاخیر کا انتخاب کریں۔

  3. مختلف تھام مدت پیرامیٹرز کی جانچ کریں اور مناسب منتخب کریں.

  4. متحرک حد کی حد کو ایڈجسٹ کریں تاکہ اندراجات کی کمی سے بچ سکے۔

بہتری کی ہدایات

  1. پیرامیٹرز کو بہتر بنانے کے لئے قیمت کی رفتار کے حساب کے لئے مختلف ادوار کی جانچ کریں.

  2. مختلف مارکیٹوں کا پتہ لگانے اور اسٹاپ نقصان کو مقرر کرنے کے لئے اتار چڑھاؤ کے اشارے شامل کریں.

  3. زیادہ حساس بنانے کے لیے کاروبین میڈین ریورس انڈیکیٹر کے پیرامیٹرز کو بہتر بنائیں۔

  4. سگنل کے معیار کو بہتر بنانے کے لیے حجم جیسے اضافی فلٹرز شامل کریں۔

  5. پیرامیٹرز کو متحرک طور پر بہتر بنانے کے لیے مشین لرننگ الگورتھم استعمال کریں۔

نتیجہ

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


/*backtest
start: 2022-10-27 00:00:00
end: 2023-11-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// author: capissimo
strategy("Normalized Vector Strategy, ver.3 (sc)", precision=2, overlay=false)
// This is a scaled Normalized Vector Strategy with a Karobein Oscillator
// original: Drkhodakarami (https://www.tradingview.com/script/Fxv2xFWe-Normalized-Vector-Strategy-By-Drkhodakarami-Opensource/)

// Repainting: in general there two types of repainting:
// * when the last candle is constantly being redrawn
// * when the indicator draws a different configuration after it has been deactivated/reactivated, i.e. refreshed

// The former is a natural behaviour, which presents a constant source of frustration, 
// when a signal directly depends on the current market situation and can be overcome 
// with various indirect techniques like divergence.

// The latter suggests a flaw in the indicator design.
// Unfortunately, the Normalized Vector Strategy is repainting in the latter sense, although being
// really promising. Would be nice if our community suggests a solution to this problem ))

// This strat consistently performs with high accuracy, showing up to 96% scores
// Here are some of the best parameters:
// TF     Lookback   Performance (ca.)
// 1m     13         92%
// 3m     34         92%
// 5m     85         92%
// 15m    210        90%
// 30m    360        89%
// 1H     1440,720   94%, 87%

// The Karobein Oscillator has an intrinsic sinusoidal behaviour that helps in determining direction and timing.
// It does not repaint.
// original: alexgrover (https://www.tradingview.com/script/JiNi0f62-Karobein-Oscillator/)

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

price    = input(close,  "Price Data")
tf       = input(34,     "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])
showVol  = input(false,  "Volume")
useold   = input(true,   "Use Old System")

lime  = color.new(color.lime, 10), fuchsia = color.new(color.fuchsia, 10), 
black = color.new(color.black, 100), gray = color.new(color.gray, 50)

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
    
getdiff(prc, tf) =>
    prev  = useold ? security(syminfo.tickerid, tostring(tf), prc[1], barmerge.gaps_off, barmerge.lookahead_on) :
                     security(syminfo.tickerid, tostring(tf), prc[1])
    curr  = useold ? security(syminfo.tickerid, tostring(tf), prc, barmerge.gaps_off, barmerge.lookahead_on) : 
                     security(syminfo.tickerid, tostring(tf), prc)
    (curr/prev) - 1
    
p  = getdiff(prix, tf)
up = thresh/div, dn = -thresh/div
longCondition  = crossover(p, up)
shortCondition = crossunder(p, dn)

bg = longCondition ? lime : shortCondition ? fuchsia : black
cl = p > up ? color.green : p < dn ? color.red : color.silver

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

strategy.entry("L", true, 1, when=longCondition)
strategy.entry("S", false, 1, when=shortCondition)

alertcondition(longCondition, title='Long', message='Long Signal!')
alertcondition(shortCondition, 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, 2500, -1, 1), color=color.orange, transp=0)


مزید