سپر گپی منتقل اوسط ٹریڈنگ کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-11-21 14:05:40
ٹیگز:

img

جائزہ

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

اصول

یہ حکمت عملی مختلف ادوار کے ساتھ متعدد EMAs کا استعمال کرتی ہے، خاص طور پر:

  • فاسٹ لائنز: 3، 6...21 پیریڈ، 7 لائنز کل
  • سست لائنیں: 24، 27...200 ادوار

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

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

فوائد

یہ حکمت عملی دوہری حرکت پذیر اوسط نظام کے فوائد کو جوڑتی ہے ، جو کم وقت کے فریموں پر بروقت تجارت کے مواقع کو پکڑ سکتی ہے ، جبکہ زیادہ غلط سگنل کو فلٹر کرنے کے لئے سست لائنوں کا استعمال کرتی ہے۔ اہم فوائد یہ ہیں:

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

خطرات

کچھ خطرات بھی ہیں:

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

خطرات کو تیز رفتار / سست EMA مجموعوں کو ایڈجسٹ کرکے یا سٹاپ نقصانات کا استعمال کرکے کنٹرول کیا جاسکتا ہے۔

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

اسٹریٹیجی کو کئی پہلوؤں میں بہتر بنایا جا سکتا ہے:

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

نتیجہ

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


/*backtest
start: 2023-11-13 00:00:00
end: 2023-11-20 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


// A strategized version Daryl Guppy Super EMA's with additional options
// by default "early signals" is enabled, which will trade any green/gray or red/gray transitions of the guppy.  Disable to only take longs while green, and shorts while red.
//@version=4

strategy(title="Super Guppy Strategy", shorttitle="Super Guppy Strat", overlay = true, 
  initial_capital=100000, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type="percent", commission_value=0.0)

useShorts       = input(true, "Test w/Shorts?")
useEarlySignals = input(true, "Use Early Signals?")
show200Ema      = input(false, "Show 200 EMA?")
daysBackMax     = input(defval = 100000, title = "Max Days Back to Test", minval = 0)
daysBackMin     = input(defval = 0, title = "Min Days Back to Test", minval = 0)
msBackMax       = 1000 * 60 * 60 * 24 * daysBackMax
msBackMin       = 1000 * 60 * 60 * 24 * daysBackMin


src = close, 
len1 = input(3, minval=1, title="Fast EMA 1")
len2 = input(6, minval=1, title="Fast EMA 2")
len3 = input(9, minval=1, title="Fast EMA 3")
len4 = input(12, minval=1, title="Fast EMA 4")
len5 = input(15, minval=1, title="Fast EMA 5")
len6 = input(18, minval=1, title="Fast EMA 6")
len7 = input(21, minval=1, title="Fast EMA 7")
//Slow EMA
len8 = input(24, minval=1, title="Slow EMA 8")
len9 = input(27, minval=1, title="Slow EMA 9")
len10 = input(30, minval=1, title="Slow EMA 10")
len11 = input(33, minval=1, title="Slow EMA 11")
len12 = input(36, minval=1, title="Slow EMA 12")
len13 = input(39, minval=1, title="Slow EMA 13")
len14 = input(42, minval=1, title="Slow EMA 14")
len15 = input(45, minval=1, title="Slow EMA 15")
len16 = input(48, minval=1, title="Slow EMA 16")
len17 = input(51, minval=1, title="Slow EMA 17")
len18 = input(54, minval=1, title="Slow EMA 18")
len19 = input(57, minval=1, title="Slow EMA 19")
len20 = input(60, minval=1, title="Slow EMA 20")
len21 = input(63, minval=1, title="Slow EMA 21")
len22 = input(66, minval=1, title="Slow EMA 22")
len23 = input(200, minval=1, title="EMA 200")

//Fast EMA
ema1 = ema(src, len1)
ema2 = ema(src, len2)
ema3 = ema(src, len3)
ema4 = ema(src, len4)
ema5 = ema(src, len5)
ema6 = ema(src, len6)
ema7 = ema(src, len7)

//Slow EMA
ema8 = ema(src, len8)
ema9 = ema(src, len9)
ema10 = ema(src, len10)
ema11 = ema(src, len11)
ema12 = ema(src, len12)
ema13 = ema(src, len13)
ema14 = ema(src, len14)
ema15 = ema(src, len15)
ema16 = ema(src, len16)
ema17 = ema(src, len17)
ema18 = ema(src, len18)
ema19 = ema(src, len19)
ema20 = ema(src, len20)
ema21 = ema(src, len21)
ema22 = ema(src, len22)

//EMA 200
ema23 = ema(src, len23)

//Fast EMA Color Rules
colfastL = (ema1 > ema2 and ema2 > ema3 and ema3 > ema4 and ema4 > ema5 and ema5 > ema6 and ema6 > ema7)
colfastS = (ema1 < ema2 and ema2 < ema3 and ema3 < ema4 and ema4 < ema5 and ema5 < ema6 and ema6 < ema7)
//Slow EMA Color Rules
colslowL = ema8 > ema9 and ema9 > ema10 and ema10 > ema11 and ema11 > ema12 and ema12 > ema13 and ema13 > ema14 and ema14 > ema15 and ema15 > ema16 and ema16 > ema17 and ema17 > ema18 and ema18 > ema19 and ema19 > ema20 and ema20 > ema21 and ema21 > ema22
colslowS = ema8 < ema9 and ema9 < ema10 and ema10 < ema11 and ema11 < ema12 and ema12 < ema13 and ema13 < ema14 and ema14 < ema15 and ema15 < ema16 and ema16 < ema17 and ema17 < ema18 and ema18 < ema19 and ema19 < ema20 and ema20 < ema21 and ema21 < ema22 
//Fast EMA Final Color Rules
colFinal = colfastL and colslowL? color.aqua : colfastS and colslowS? color.orange : color.gray
//Slow EMA Final Color Rules
colFinal2 = colslowL  ? color.lime : colslowS ? color.red : color.gray 
// iff colSlowL then lime, otherwise is colSlowS, then red, otherwise gray

// open long:  grey to green
// close long:  green to grey
// open short: grey to red
// close short: red to grey


//Fast EMA Plots
p1=plot(ema1, linewidth=2, color=colFinal)
plot(ema2, linewidth=1, color=colFinal)
plot(ema3, linewidth=1, color=colFinal)
plot(ema4, linewidth=1, color=colFinal)
plot(ema5, linewidth=1, color=colFinal)
plot(ema6, linewidth=1, color=colFinal)
p2=plot(ema7, linewidth=2, color=colFinal)

//Slow EMA Plots
p3=plot(ema8, linewidth=1, color=colFinal2)
plot(ema9, linewidth=1, color=colFinal2)
plot(ema10,linewidth=1, color=colFinal2)
plot(ema11,linewidth=1, color=colFinal2)
plot(ema12,linewidth=1, color=colFinal2)
plot(ema13,linewidth=1, color=colFinal2)
plot(ema14,linewidth=1, color=colFinal2)
plot(ema15,linewidth=1, color=colFinal2)
plot(ema16,linewidth=1, color=colFinal2)
plot(ema17,linewidth=1, color=colFinal2)
plot(ema18,linewidth=1, color=colFinal2)
plot(ema19,linewidth=1, color=colFinal2)
plot(ema20,linewidth=1, color=colFinal2)
plot(ema21,linewidth=1, color=colFinal2)
plot(ema22,linewidth=2, color=colFinal2)
p4=plot(show200Ema==true ? ema23 : na, linewidth=2)

var isLong = false
var isShort = false

long = not isLong and ((colFinal2 == color.lime and colFinal2[1] == color.gray) or (colFinal2 == color.gray and colFinal2[1] == color.red))
short = not isShort and ((colFinal2 == color.gray and colFinal2[1] == color.lime) or (colFinal2 == color.red and colFinal2[1] == color.gray))

if long
    isLong := true
    isShort := false

if short
    isLong := false
    isShort := true

openLong = colFinal2 == color.lime and colFinal2[1] == color.gray
closeLong = colFinal2 == color.gray and colFinal2[1] == color.lime
openShort = colFinal2 == color.red and colFinal2[1] == color.gray
closeShort = colFinal2 == color.gray and colFinal2[1] == color.red


// default - no early signals
plotshape(openLong and not useEarlySignals, title="open long", text="open long", style=shape.labelup, location=location.belowbar, size=size.tiny, color=color.green, textcolor=color.white, transp=0)
plotshape(closeLong and not useEarlySignals, title="close long", text="close long", style=shape.labeldown, location=location.abovebar, size=size.tiny, color=color.gray, textcolor=color.white, transp=0)
plotshape(openShort and useShorts and not useEarlySignals, title="open short", text="open short", style=shape.labelup, location=location.belowbar, size=size.tiny, color=color.red, textcolor=color.white, transp=0)
plotshape(closeShort and useShorts and not useEarlySignals, title="close short", text="close short", style=shape.labeldown, location=location.abovebar, size=size.tiny, color=color.black, textcolor=color.white, transp=0)

// with early signals
plotshape(long and useEarlySignals, title="long", text="long", style=shape.labelup, location=location.belowbar, size=size.tiny, color=color.green, textcolor=color.white, transp=0)
plotshape(short and useEarlySignals and useShorts, title="short", text="short", style=shape.labeldown, location=location.abovebar, size=size.tiny, color=color.red, textcolor=color.white, transp=0)
plotshape(short and useEarlySignals and not useShorts, title="close long", text="close long", style=shape.labeldown, location=location.abovebar, size=size.tiny, color=color.red, textcolor=color.white, transp=0)




isWithinTimeBounds = (msBackMax == 0 or (time > (timenow - msBackMax))) and (msBackMin == 0 or (time < (timenow - msBackMin)))
strategy.entry("LONG", long=true, when=openLong and isWithinTimeBounds and not useEarlySignals)
strategy.close("LONG", when=closeLong and isWithinTimeBounds and not useEarlySignals)
strategy.entry("short", long=false, when=openShort and useShorts and isWithinTimeBounds and not useEarlySignals)
strategy.close("short", when=closeShort and useShorts and isWithinTimeBounds and not useEarlySignals)

strategy.entry("LONG", long=true, when=long and isWithinTimeBounds and useEarlySignals)
strategy.close("LONG", when=short and isWithinTimeBounds and useEarlySignals)
strategy.entry("short", long=false, when=short and useShorts and isWithinTimeBounds and useEarlySignals)
strategy.close("short", when=long and useShorts and isWithinTimeBounds and not useEarlySignals)



مزید