حکمت عملی کے بعد رجحان کو صاف کریں۔


تخلیق کی تاریخ: 2023-09-28 16:07:12 آخر میں ترمیم کریں: 2023-09-28 16:07:12
کاپی: 2 کلکس کی تعداد: 696
1
پر توجہ دیں
1617
پیروکار

جائزہ

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

  1. اوسط پر مبنی رجحانات کا فیصلہ
  2. بے ترتیب اشارے پر مبنی اوور خرید اوور فروخت کا فیصلہ
  3. پیسے کے بہاؤ کی قیمتوں پر مبنی پیمائش
  4. اتار چڑھاؤ کے اشارے پر مبنی رجحان کے معیار کا فیصلہ
  5. آر ایس آئی اشارے پر مبنی انحراف کا فیصلہ

اصول

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

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

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

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

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

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

فوائد

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

خطرات

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

خطرے سے نمٹنے کے اقدامات:

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

اصلاح کی سمت

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

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

  2. ماڈل کی تشخیص کے ماڈیول کو شامل کریں ، مختلف مارکیٹ کے مراحل کی نقل و حرکت کے مطابق ہر اشارے کو وزن دیں

  3. مارکیٹ میں اتار چڑھاؤ کی حد کے مطابق اسٹاپ نقصان کو ایڈجسٹ کرنے کے لئے ایڈجسٹ اسٹاپ نقصان کی حکمت عملی میں اضافہ

  4. گہری سیکھنے کے ساتھ مل کر مزید خصوصیات کو نکالنے اور رجحانات کا زیادہ درست اندازہ لگانا

  5. خودکار سگنل ایڈجسٹمنٹ ماڈیول تیار کریں ، جو اشارے کے تنازعہ اور غلط سگنل کے حالات سے نمٹتا ہے

  6. انٹیگریٹڈ ماڈل میں اضافہ ، مزید تکنیکی پیمائش کے فیصلوں کو مربوط کرنا ، اور نتیجہ کی پیش گوئی کا نظام تیار کرنا

  7. بغیر پیرامیٹرز کے اشارے کی تلاش ، اشارے کے پیرامیٹرز پر انحصار کو کم کرنا

خلاصہ کریں۔

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

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

//@version=3
//Market Cipher Update 2 - updated 8th Oct 2019

//Momentum Curves with green and red dots
strategy(title="MarketCipher B", shorttitle="MarketCipher B")
n1 = input(9, "Channel Length")
n2 = input(12, "Average Length")
obLevel1 = input(60, "Over Bought Level 1")
obLevel2 = input(53, "Over Bought Level 2")
osLevel1 = input(-60, "Over Sold Level 1")
osLevel2 = input(-53, "Over Sold Level 2")
osLevel3 = input(-100, "Over Sold Level 2")

 
ap = hlc3 
esa = ema(ap, n1)
d = ema(abs(ap - esa), n1)
ci = (ap - esa) / (0.015 * d)
tci = ema(ci, n2)
 
wt1 = tci
wt2 = sma(wt1,3)

plot(0, color=gray, title="Zero Line")
plot(obLevel1, color=red, style=3, title="Bottom")
plot(osLevel1, color=green, style=3, title="Top")
plot(wt1, color=#BFE4FF, style=4, title= "Lt Blue Wave")
plot(wt2, color=#673ab7, style=4, title="Blue Wave", transp=40)
plot(wt1-wt2, color=yellow, style=4, transp=40, title="wave1-wave2")

//green dots and crosses
plotshape(crossover(wt1, wt2) and osLevel1 ? wt2 : na, title="Pos Crossover", location=location.absolute, style=shape.cross, size=size.tiny, color=#3FFF00, transp=20)
plotshape(crossover(wt2, wt1) and osLevel1 ? wt1 : na, title="Neg Crossover", location=location.absolute, style=shape.cross, size=size.tiny, color=red, transp=20)
plotshape(crossover(wt1, wt2) and wt2 < -59 ? wt2 : na, title="Pos Crossover", location=location.bottom, style=shape.circle, size=size.tiny, color=#3FFF00, transp=20)
plotshape(crossover(wt2, wt1) and wt1 > 59 ? wt2 : na, title="Neg Crossover", location=location.top, style=shape.circle, size=size.tiny, color=red, transp=20)

buy= crossover(wt1,wt2) // Define our buy/sell conditions, using pine inbuilt functions.
sell= crossover(wt2,wt1)
ordersize=floor(strategy.equity/close) // To dynamically calculate the order size as the account equity increases or decreases.
strategy.entry("long",strategy.long,ordersize,when=buy) // Buys when buy condition met
strategy.close("long", when = sell ) // Closes position when sell condition met
strategy.entry("short",strategy.short,ordersize,when=sell)
strategy.close("short",when = buy )

//soch RSI with divergences
smoothKw = input(3, minval=1)
smoothDw = input(3, minval=1)
lengthRSIw = input(14, minval=1)
lengthStochw = input(14, minval=1)
uselogw = input(true, title="Log")
srcInw = input(close,  title="Source")
showdivsw = input(true, title="Show Divergences")
showhiddenw = input(false, title="Show Hidden Divergences")
showchanw = input(false, title="Show Divergences Channel")


srcw = uselogw ? log(srcInw) : srcInw
rsi1w = rsi(srcw, lengthRSIw)
kkw = sma(stoch(rsi1w, rsi1w, rsi1w, lengthStochw), smoothKw)
dw = sma(kkw, smoothDw)
hmw = input(false, title="Use Average of both K & D")
kw = hmw ? avg(kkw, dw) : kkw

aw = plot(kkw, color=blue, linewidth=1, transp=0, title="K")
bw = plot(dw, color=orange, linewidth=1, transp=0, title="D")
fw = kkw >= dw ? blue : orange
fill(aw, bw, title="KD Fill", color=white)


//------------------------------
//@RicardoSantos' Divergence Script

f_top_fractal(_src)=>_src[4] < _src[2] and _src[3] < _src[2] and _src[2] > _src[1] and _src[2] > _src[0]
f_bot_fractal(_src)=>_src[4] > _src[2] and _src[3] > _src[2] and _src[2] < _src[1] and _src[2] < _src[0]
f_fractalize(_src)=>f_top_fractal(_src) ? 1 : f_bot_fractal(_src) ? -1 : 0
//-------------------------
fractal_top = f_fractalize(kw) > 0 ? kw[2] : na
fractal_bot = f_fractalize(kw) < 0 ? kw[2] : na

high_prev = valuewhen(fractal_top, kw[2], 0)[2]
high_price = valuewhen(fractal_top, high[2], 0)[2]
low_prev = valuewhen(fractal_bot, kw[2], 0)[2]
low_price = valuewhen(fractal_bot, low[2], 0)[2]

regular_bearish_diva = fractal_top and high[2] > high_price and kw[2] < high_prev
hidden_bearish_diva = fractal_top and high[2] < high_price and kw[2] > high_prev
regular_bullish_diva = fractal_bot and low[2] < low_price and kw[2] > low_prev
hidden_bullish_diva = fractal_bot and low[2] > low_price and kw[2] < low_prev
//-------------------------
plot(showchanw?fractal_top:na, title="Top Div Channel", offset=-2, color=gray)
plot(showchanw?fractal_bot:na, title="Bottom Div Channel", offset=-2, color=gray)

col1 = regular_bearish_diva ? red : hidden_bearish_diva and showhiddenw ? red : na
col2 = regular_bullish_diva ? green : hidden_bullish_diva and showhiddenw ? green : na
col3 = regular_bearish_diva ? red : hidden_bearish_diva and showhiddenw ? red : showchanw ? gray : na
col4 = regular_bullish_diva ? green : hidden_bullish_diva and showhiddenw ? green : showchanw ? gray : na

plot(title='H F', series=showdivsw and fractal_top ? kw[2] : na, color=col1, linewidth=2, offset=-2)
plot(title='L F', series=showdivsw and fractal_bot ? kw[2] : na, color=col2, linewidth=2, offset=-2)
plot(title='H D', series=showdivsw and fractal_top ? kw[2] : na, style=circles, color=col3, linewidth=3, offset=-2)
plot(title='L D', series=showdivsw and fractal_bot ? kw[2] : na, style=circles, color=col4, linewidth=3, offset=-2)

plotshape(title='+RBD', series=showdivsw and regular_bearish_diva ? kw[2] : na, text='R', style=shape.labeldown, location=location.absolute, color=red, textcolor=white, offset=-2)
plotshape(title='+HBD', series=showdivsw and hidden_bearish_diva and showhiddenw ? kw[2] : na, text='H', style=shape.labeldown, location=location.absolute, color=red, textcolor=white, offset=-2)
plotshape(title='-RBD', series=showdivsw and regular_bullish_diva ? kw[2] : na, text='R', style=shape.labelup, location=location.absolute, color=green, textcolor=white, offset=-2)
plotshape(title='-HBD', series=showdivsw and hidden_bullish_diva  and showhiddenw ? kw[2] : na, text='H', style=shape.labelup, location=location.absolute, color=green, textcolor=white, offset=-2)


//money flow
colorRed = #ff0000
colorGreen = #03ff00

ma(matype, src, length) =>
    if matype == "RMA"
        rma(src, length)
    else
        if matype == "SMA"
            sma(src, length)
        else
            if matype == "EMA"
                ema(src, length)
            else
                if matype == "WMA"
                    wma(src, length)
                else
                    if matype == "VWMA"
                        vwma(src, length)
                    else
                        src

rsiMFIperiod = input(60, "RSI+MFI Period")
rsiMFIMultiplier = input(190, "RSI+MFI Area multiplier")
MFRSIMA = input(defval="SMA", title="MFRSIMA", options=["RMA", "SMA", "EMA", "WMA", "VWMA"])

candleValue = (close - open) / (high - low)
MVC = ma(MFRSIMA, candleValue, rsiMFIperiod)
color_area = MVC > 0 ? green : red

RSIMFIplot = plot(MVC * rsiMFIMultiplier, title="RSI+MFI Area", color=color_area, transp=35)
fill(RSIMFIplot, plot(0), color_area, transp=50)

//rsi
//Bullish Divergence (green triangle)
//Hidden Bullish Divergence (green circle)
//Bearish Divergence (red triangle)
//Hidden Bearish Divergence (red circle)

lend = 14
bearish_div_rsi = input(60, "Min Bearish RSI",  minval=50, maxval=100)
bullish_div_rsi = input(40, "Max Bullish RSI",  minval=0, maxval=50)

// RSI code
rsi = rsi(close, lend)
plot(rsi,  color=#6DFFE1, linewidth=2, transp=0, title="RSI")

// DIVS code
xbars = 60
hb = abs(highestbars(rsi, xbars)) // Finds bar with highest value in last X bars
lb = abs(lowestbars(rsi, xbars)) // Finds bar with lowest value in last X bars

// Defining variable values, mandatory in Pine 3
max = na
max_rsi = na
min = na
min_rsi = na
bearish_div = na
bullish_div = na
hidden_bearish_div = na
hidden_bullish_div = na
div_alert = na
hidden_div_alert = na

// If bar with lowest / highest is current bar, use it's value
max := hb == 0 ? close : na(max[1]) ? close : max[1]
max_rsi := hb == 0 ? rsi : na(max_rsi[1]) ? rsi : max_rsi[1]
min := lb == 0 ? close : na(min[1]) ? close : min[1]
min_rsi := lb == 0 ? rsi : na(min_rsi[1]) ? rsi : min_rsi[1]

// Compare high of current bar being examined with previous bar's high
// If curr bar high is higher than the max bar high in the lookback window range
if close > max // we have a new high
    max := close // change variable "max" to use current bar's high value
if rsi > max_rsi // we have a new high
    max_rsi := rsi // change variable "max_rsi" to use current bar's RSI value
if close < min // we have a new low
    min := close // change variable "min" to use current bar's low value
if rsi < min_rsi // we have a new low
    min_rsi := rsi // change variable "min_rsi" to use current bar's RSI value

// Detects divergences between price and indicator with 1 candle delay so it filters out repeating divergences
if (max[1] > max[2]) and (rsi[1] < max_rsi) and (rsi <= rsi[1]) and (rsi[1] >= bearish_div_rsi)
    bearish_div := true
	div_alert := true
if (min[1] < min[2]) and (rsi[1] > min_rsi) and (rsi >= rsi[1]) and (rsi[1] <= bullish_div_rsi)
    bullish_div := true
	div_alert := true
// Hidden divergences
if (max[1] < max[2]) and (rsi[1] < max_rsi)
	hidden_bearish_div := true
	hidden_div_alert := true
if (min[1] > min[2]) and (rsi[1] > min_rsi)
	hidden_bullish_div := true
	hidden_div_alert := true
// Alerts
alertcondition(div_alert, title='RSI Divergence', message='RSI Divergence')
alertcondition(hidden_div_alert, title='Hidden RSI Divergence', message='Hidden RSI Divergence')

// Plots divergences with offest
plotshape((bearish_div ? rsi[1] + 3 : na), location=location.absolute, style=shape.diamond, color=#ff0000, size=size.tiny, transp=0, offset=0, title="RSI Bear Div")
plotshape((bullish_div ? rsi[1] - 3 : na), location=location.absolute, style=shape.diamond, color=#00ff01, size=size.tiny, transp=0, offset=0, title="RSI Bull Div")
plotshape((hidden_bearish_div ? rsi[1] + 3 : na), location=location.absolute, style=shape.circle, color=#ff0000, size=size.tiny, transp=0, offset=0, title="RSI Bear hDiv")
plotshape((hidden_bullish_div ? rsi[1] - 3 : na), location=location.absolute, style=shape.circle, color=#00ff01, size=size.tiny, transp=0, offset=0, title="RSI Bull hDiv")


//wave divergences
WTCross = cross(wt1, wt2)
WTCrossUp = wt2 - wt1 <= 0
WTCrossDown = wt2 - wt1 >= 0
WTFractal_top = f_fractalize(wt1) > 0 and wt1[2] ? wt1[2] : na
WTFractal_bot = f_fractalize(wt1) < 0 and wt1[2] ? wt1[2] : na

WTHigh_prev  = valuewhen(WTFractal_top, wt1[2], 0)[2]
WTHigh_price = valuewhen(WTFractal_top, high[2], 0)[2]
WTLow_prev  = valuewhen(WTFractal_bot, wt1, 0)[2]
WTLow_price  = valuewhen(WTFractal_bot, low[2], 0)[2]

WTRegular_bearish_div = WTFractal_top and high[2] > WTHigh_price and wt1[2] < WTHigh_prev
WTRegular_bullish_div = WTFractal_bot and low[2] < WTLow_price and wt1[2] > WTLow_prev

bearWTSignal = WTRegular_bearish_div and WTCrossDown
bullWTSignal = WTRegular_bullish_div and WTCrossUp

WTCol1 = bearWTSignal ? #ff0000 : na
WTCol2 = bullWTSignal ? #00FF00EB : na

plot(series = WTFractal_top ? wt1[2] : na, title='Bearish Divergence', color=WTCol1, linewidth=5, transp=60)
plot(series = WTFractal_bot ? wt1[2] : na, title='Bullish Divergence', color=WTCol2, linewidth=5, transp=60)


//2nd wave
WTFractal_topa = f_fractalize(wt2) > 0 and wt2[2] ? wt2[2] : na
WTFractal_bota = f_fractalize(wt2) < 0 and wt2[2] ? wt2[2] : na

WTHigh_preva  = valuewhen(WTFractal_topa, wt2[2], 0)[2]
WTHigh_pricea = valuewhen(WTFractal_topa, high[2], 0)[2]
WTLow_preva  = valuewhen(WTFractal_bota, wt2, 0)[2]
WTLow_pricea  = valuewhen(WTFractal_bota, low[2], 0)[2]


WTRegular_bearish_diva = WTFractal_topa and high[2] > WTHigh_pricea and wt2[2] < WTHigh_preva
WTRegular_bullish_diva = WTFractal_bota and low[2] < WTLow_pricea and wt2[2] > WTLow_preva

bearWTSignala = WTRegular_bearish_diva and WTCrossDown
bullWTSignala = WTRegular_bullish_diva and WTCrossUp

WTCol1a = bearWTSignala ? #ff0000 : na
WTCol2a = bullWTSignala ? #00FF00EB : na

plot(series = WTFractal_topa ? wt2[2] : na, title='Bearish Divergence', color=WTCol1a, linewidth=5, transp=60)
plot(series = WTFractal_bota ? wt2[2] : na, title='Bullish Divergence', color=WTCol2a, linewidth=5, transp=60)