ایک اعلی تعدد کریپٹو کرنسی تجارتی حکمت عملی جس میں TrippleMACD موونگ ایوریج کراس اوور کو رشتہ دار طاقت کے اشاریہ کے ساتھ ملایا گیا ہے۔


تخلیق کی تاریخ: 2024-03-22 15:41:46 آخر میں ترمیم کریں: 2024-03-22 15:41:46
کاپی: 0 کلکس کی تعداد: 705
1
پر توجہ دیں
1617
پیروکار

ایک اعلی تعدد کریپٹو کرنسی تجارتی حکمت عملی جس میں TrippleMACD موونگ ایوریج کراس اوور کو رشتہ دار طاقت کے اشاریہ کے ساتھ ملایا گیا ہے۔

جائزہ

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

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

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

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

طاقت کا تجزیہ

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

  2. سگنل ہموار: تینوں گروپوں کے MACD اشارے کی سگنل لائنوں کو اوسط کرکے ، شور کو مؤثر طریقے سے ہموار کیا جاسکتا ہے ، جس سے ایک ہی اشارے سے پیدا ہونے والے گمراہ کن سگنل سے بچا جاسکتا ہے۔

  3. رجحان کی تصدیق: RSI اشارے کے ساتھ مل کر کثیر رخا رجحان کی طاقت کی تصدیق کرنے سے ٹریڈنگ سگنل کی وشوسنییتا میں مزید اضافہ ہوتا ہے۔

  4. توازن کی شناخت: مارکیٹ کے توازن کے مرحلے کی نشاندہی کرنے کے لئے لکیری رجعت کا استعمال کرتے ہوئے ، اس حکمت عملی کے خطرے کو کم کرنے کے لئے ہنگامہ خیز حالات میں تجارت سے گریز کریں۔

  5. خودکار تجارت: یہ حکمت عملی 1 منٹ کے ٹائم فریم پر خودکار تجارت کے لئے ڈیزائن کی گئی ہے ، جس سے مارکیٹ میں تبدیلیوں کا تیزی سے جواب دیا جاسکتا ہے اور تجارت کو انجام دیا جاسکتا ہے ، جس سے تجارت کی کارکردگی میں اضافہ ہوتا ہے۔

خطرے کا تجزیہ

  1. پیرامیٹرز کی اصلاح: اس حکمت عملی میں متعدد پیرامیٹرز شامل ہیں ، جیسے تینوں گروپوں کے لئے تیز اور سست لائن کی مدت MACD اشارے ، RSI اشارے کی مدت وغیرہ۔ ان پیرامیٹرز کا انتخاب حکمت عملی کی کارکردگی پر اہم اثر ڈالتا ہے ، اگر پیرامیٹرز کی اصلاح مناسب نہیں ہے تو ، حکمت عملی کی کارکردگی میں کمی واقع ہوسکتی ہے۔

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

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

اصلاح کی سمت

  1. متحرک پیرامیٹرز ایڈجسٹمنٹ: مارکیٹ کے حالات میں تبدیلی کے مطابق ، حکمت عملی میں متحرک ایڈجسٹمنٹ جیسے MACD اشارے کی تیز رفتار لائن کی مدت ، RSI اشارے کی مدت وغیرہ ، مختلف مارکیٹ کے حالات کے مطابق ڈھالنے کے لئے۔

  2. مزید اشارے شامل کریں: موجودہ MACD اور RSI اشارے کی بنیاد پر ، دیگر تکنیکی اشارے شامل کرنے پر غور کیا جاسکتا ہے ، جیسے برن بینڈ ، منتقل اوسط وغیرہ ، تاکہ تجارتی سگنل کی درستگی اور وشوسنییتا کو مزید بہتر بنایا جاسکے۔

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

  4. مشین لرننگ کی اصلاح: حکمت عملی کے پیرامیٹرز اور تجارتی قواعد کو بہتر بنانے کے لئے مشین لرننگ الگورتھم جیسے نیورل نیٹ ورکس ، سپورٹ ویکٹر مشینیں وغیرہ کا استعمال کرتے ہوئے حکمت عملی کی موافقت اور استحکام کو بہتر بنانا۔

خلاصہ کریں۔

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

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

//@version=5
//indicator("Triplle",shorttitle="Triplle MACD", overlay=true, scale = scale.none)
//indicator("Triplle","TrippleMACD",true)
strategy(title="TrippleMACD", shorttitle="TrippleMACD + RSI strategy", format=format.price, precision=4, overlay=true)

// RSI 
ma(source, length, type) =>
    switch type
        "SMA" => ta.sma(source, length)
        "Bollinger Bands" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "SMMA (RMA)" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)
        "VWMA" => ta.vwma(source, length)

rsiLengthInput = input.int(14, minval=1, title="RSI Length", group="RSI Settings")
rsiSourceInput = input.source(close, "Source", group="RSI Settings")
maTypeInput = input.string("SMA", title="MA Type", options=["SMA", "Bollinger Bands", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="MA Settings")
maLengthInput = input.int(14, title="MA Length", group="MA Settings")
bbMultInput = input.float(2.0, minval=0.001, maxval=50, title="BB StdDev", group="MA Settings")
showDivergence = input.bool(false, title="Show Divergence", group="RSI Settings")

up = ta.rma(math.max(ta.change(rsiSourceInput), 0), rsiLengthInput)
down = ta.rma(-math.min(ta.change(rsiSourceInput), 0), rsiLengthInput)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
rsiMA = ma(rsi, maLengthInput, maTypeInput)
isBB = maTypeInput == "Bollinger Bands"

//rsiPlot = plot(rsi, "RSI", color=#7E57C2)
//plot(rsiMA, "RSI-based MA", color=color.yellow)
//rsiUpperBand = hline(70, "RSI Upper Band", color=#787B86)
//midline = hline(50, "RSI Middle Band", color=color.new(#787B86, 50))
//rsiLowerBand = hline(30, "RSI Lower Band", color=#787B86)
//fill(rsiUpperBand, rsiLowerBand, color=color.rgb(126, 87, 194, 90), title="RSI Background Fill")
bbUpperBand = plot(isBB ? rsiMA + ta.stdev(rsi, maLengthInput) * bbMultInput : na, title = "Upper Bollinger Band", color=color.green)
bbLowerBand = plot(isBB ? rsiMA - ta.stdev(rsi, maLengthInput) * bbMultInput : na, title = "Lower Bollinger Band", color=color.green)
//fill(bbUpperBand, bbLowerBand, color= isBB ? color.new(color.green, 90) : na, title="Bollinger Bands Background Fill")

//midLinePlot = plot(50, color = na, editable = false, display = display.none)
//fill(rsiPlot, midLinePlot, 100, 70, top_color = color.new(color.green, 0), bottom_color = color.new(color.green, 100),  title = "Overbought Gradient Fill")
//fill(rsiPlot, midLinePlot, 30,  0,  top_color = color.new(color.red, 100), bottom_color = color.new(color.red, 0),      title = "Oversold Gradient Fill")

// Divergence
lookbackRight = 5
lookbackLeft = 5
rangeUpper = 60
rangeLower = 5
bearColor = color.red
bullColor = color.green
textColor = color.white
noneColor = color.new(color.white, 100)

plFound = na(ta.pivotlow(rsi, lookbackLeft, lookbackRight)) ? false : true
phFound = na(ta.pivothigh(rsi, lookbackLeft, lookbackRight)) ? false : true
_inRange(cond) =>
	bars = ta.barssince(cond == true)
	rangeLower <= bars and bars <= rangeUpper

//------------------------------------------------------------------------------
// Regular Bullish
// rsi: Higher Low

rsiHL = rsi[lookbackRight] > ta.valuewhen(plFound, rsi[lookbackRight], 1) and _inRange(plFound[1])

// Price: Lower Low

priceLL = low[lookbackRight] < ta.valuewhen(plFound, low[lookbackRight], 1)
bullCondAlert = priceLL and rsiHL and plFound
bullCond = showDivergence and bullCondAlert

// plot(
//      plFound ? rsi[lookbackRight] : na,
//      offset=-lookbackRight,
//      title="Regular Bullish",
//      linewidth=2,
//      color=(bullCond ? bullColor : noneColor)
//      )

// plotshape(
// 	 bullCond ? rsi[lookbackRight] : na,
// 	 offset=-lookbackRight,
// 	 title="Regular Bullish Label",
// 	 text=" Bull ",
// 	 style=shape.labelup,
// 	 location=location.absolute,
// 	 color=bullColor,
// 	 textcolor=textColor
// 	 )

//------------------------------------------------------------------------------
// Regular Bearish
// rsi: Lower High

rsiLH = rsi[lookbackRight] < ta.valuewhen(phFound, rsi[lookbackRight], 1) and _inRange(phFound[1])

// Price: Higher High

priceHH = high[lookbackRight] > ta.valuewhen(phFound, high[lookbackRight], 1)

bearCondAlert = priceHH and rsiLH and phFound
bearCond = showDivergence and bearCondAlert

// plot(
// 	 phFound ? rsi[lookbackRight] : na,
// 	 offset=-lookbackRight,
// 	 title="Regular Bearish",
// 	 linewidth=2,
// 	 color=(bearCond ? bearColor : noneColor)
// 	 )

// plotshape(
// 	 bearCond ? rsi[lookbackRight] : na,
// 	 offset=-lookbackRight,
// 	 title="Regular Bearish Label",
// 	 text=" Bear ",
// 	 style=shape.labeldown,
// 	 location=location.absolute,
// 	 color=bearColor,
// 	 textcolor=textColor
// 	 )
// END RSI

// Getting inputs
stopLuse          = input(1.040)
fast_length = input(title = "Fast Length", defval = 5)
slow_length = input(title = "Slow Length", defval = 8)
fast_length2 = input(title = "Fast Length2", defval = 13)
slow_length2 = input(title = "Slow Length2", defval = 21)
fast_length3 = input(title = "Fast Length3", defval = 34)
slow_length3 = input(title = "Slow Length3", defval = 144)
fast_length4 = input(title = "Fast Length3", defval = 68)
slow_length4 = input(title = "Slow Length3", defval = 288)
src = input(title = "Source", defval = close)
signal_length2 = input.int(title="Signal Smoothing", minval = 1, maxval = 200, defval = 11)
signal_length = input.int(title = "Signal Smoothing",  minval = 1, maxval = 50, defval = 9)
sma_source = input.string(title = "Oscillator MA Type",  defval = "EMA", options = ["SMA", "EMA"])
sma_signal = input.string(title = "Signal Line MA Type", defval = "EMA", options = ["SMA", "EMA"])
// Calculating
fast_ma = sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length)
slow_ma = sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length)

fast_ma2 = sma_source == "SMA2" ? ta.sma(src, fast_length2) : ta.ema(src, fast_length2)
slow_ma2 = sma_source == "SMA2" ? ta.sma(src, slow_length2) : ta.ema(src, slow_length2)

fast_ma3 = sma_source == "SMA3" ? ta.sma(src, fast_length3) : ta.ema(src, fast_length3)
slow_ma3 = sma_source == "SMA3" ? ta.sma(src, slow_length3) : ta.ema(src, slow_length3)

fast_ma4 = sma_source == "SMA3" ? ta.sma(src, fast_length3) : ta.ema(src, fast_length3)
slow_ma4 = sma_source == "SMA3" ? ta.sma(src, slow_length3) : ta.ema(src, slow_length3)

macd = fast_ma - slow_ma
macd2 = fast_ma2 - slow_ma2
macd3 = fast_ma3 - slow_ma3
macd4 = fast_ma4 - slow_ma4

signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length)
signal2 = sma_signal == "SMA" ? ta.sma(macd2, signal_length) : ta.ema(macd2, signal_length)
signal3 = sma_signal == "SMA" ? ta.sma(macd3, signal_length) : ta.ema(macd3, signal_length)
signal4 = sma_signal == "SMA" ? ta.sma(macd4, signal_length) : ta.ema(macd4, signal_length)
//hist = (macd + macd2 + macd3)/1 - (signal + signal2 + signal3)/1
hist = (macd + macd2 + macd3 + macd4)/4 - (signal + signal2 + signal3 + signal4)/4
signal5 = (signal + signal2 + signal3)/3

sma_signal2 = input.bool(title="Simple MA (Signal Line)", defval=true)

lin_reg = input.bool(title="Lin Reg", defval=true)
linreg_length = input.int(title="Linear Regression Length", minval = 1, maxval = 200, defval = 11)

bopen = lin_reg ? ta.linreg(open, linreg_length, 0) : open
bhigh = lin_reg ? ta.linreg(high, linreg_length, 0) : high
blow = lin_reg ? ta.linreg(low, linreg_length, 0) : low
bclose = lin_reg ? ta.linreg(close, linreg_length, 0) : close

shadow = (bhigh - bclose) + (bopen - blow)
body = bclose - bopen
perc = (shadow/body)
cond2 = perc >=2 and bclose+bclose[1]/2 > bopen+bopen[1]/2

r = bopen < bclose

//signal5 = sma_signal2 ? ta.sma(bclose, signal_length) : ta.ema(bclose, signal_length)
plotcandle(r ? bopen : na, r ? bhigh : na, r ? blow: na, r ? bclose : na, title="LinReg Candles", color= color.green, wickcolor=color.green, bordercolor=color.green, editable= true)
plotcandle(r ? na : bopen, r ? na : bhigh, r ? na : blow, r ? na : bclose, title="LinReg Candles", color=color.red, wickcolor=color.red, bordercolor=color.red, editable= true)
//alertcondition(hist[1] >= 0 and hist < 0, title = 'Rising to falling', message = 'The MACD histogram switched from a rising to falling state')
//alertcondition(hist[1] <= 0 and hist > 0, title = 'Falling to rising', message = 'The MACD histogram switched from a falling to rising state')

green = hist >= 0 ? (hist[1] < hist ? "G" : "GL") : (hist[1] < hist ? "RL" : "R")
Buy = green == "G" and green[1] != "G" and green[1] != "GL" and bopen < bclose and rsi < 55.0 //and not cond2
//StopBuy = (green == "R" or green == "RL" or green == "RL") and bopen > bclose and bopen[1] < bclose[1]
StopBuy = bopen > bclose and bopen[1] < bclose[1] and (green == "G" or green == "GL" or green == "R") and bopen[2] < bclose[2] and bopen[3] < bclose[3]
hists = close[3] < close[2] and close[2] < close[1]
//Buy = green == "RL" and hist[0] > -0.07 and hist[0] < 0.00 and rsi < 55.0 and hists
//StopBuy = green == "GL" or green == "R"
alertcondition(Buy, "Long","Покупка в лонг")
alertcondition(StopBuy, "StopLong","Закрытие сделки")

//hline(0, "Zero Line", color = color.new(#787B86, 50))
plot(hist + (close - (close * 0.03)), title = "Histogram", style = plot.style_line, color = (hist >= 0 ? (hist[1] < hist ? #26A69A : #B2DFDB) : (hist[1] < hist ? #FFCDD2 : #FF5252)))
plotshape(Buy ? low : na, 'Buy', shape.labelup, location.belowbar , color=color.new(#0abe40, 50), size=size.small, offset=0)
plotshape(StopBuy ? low : na, 'Buy', shape.cross, location.abovebar , color=color.new(#be0a0a, 50), size=size.small, offset=0)
plot(macd4  + (close - (close * 0.01)),   title = "MACD",   color = #2962FF)
plot(signal5 + (close - (close * 0.01)), title = "Signal", color = #FF6D00)

plotchar(cond2 , char='↓', color = color.rgb(0, 230, 119), text = "-")

if (Buy)
    strategy.entry("long", strategy.long)

// if (startShortTrade)
//     strategy.entry("short", strategy.short)

profitTarget = strategy.position_avg_price * stopLuse
strategy.exit("Take Profit", "long", limit=profitTarget)
// strategy.exit("Take Profit", "short", limit=profitTarget)