وسائل لوڈ ہو رہے ہیں... لوڈنگ...

ٹرپل سپر ٹرینڈ Ichimoku کلاؤڈ مقداری تجارتی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-12-27 15:22:40
ٹیگز:

img

خلاصہ

یہ حکمت عملی ایک مقداری تجارتی حکمت عملی ہے جس میں ٹرپل سپر ٹرینڈ اشارے ، Ichimoku کلاؤڈ اشارے ، اوسط حقیقی رینج (ATR) اشارے اور تیزی سے چلنے والی اوسط (EMA) کو یکجا کیا گیا ہے۔ یہ مارکیٹ کے رجحان کا تعین کرنے کے لئے ٹرپل سپر ٹرینڈ ، سپورٹ اور مزاحمت کے لئے Ichimoku کلاؤڈ ، اسٹاپ نقصان کے لئے ATR ، نسبتا complete مکمل تجارتی نظام بنانے کے لئے رجحان کی تصدیق کے لئے EMA کا استعمال کرتا ہے۔

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

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

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

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

فوائد

  1. مختلف ترتیبات کے ساتھ ٹرپل سپر ٹرینڈ اشارے مؤثر طریقے سے مارکیٹ شور کو فلٹر کرسکتے ہیں اور رجحان کی سمت کو زیادہ درست طریقے سے طے کرسکتے ہیں۔

  2. ایچیموکو بادل جھوٹے بریک آؤٹ سے بچنے کے لئے رجحان کی طاقت کا تعین کرتا ہے۔ زیادہ سے زیادہ نقصانات سے بچنے کے لئے اے ٹی آر اسٹاپ نقصان کی ترتیب معقول ہے۔

  3. ای ایم اے درمیانی اور طویل مدتی رجحان کی سمت کی تصدیق میں مدد کرتا ہے، سپر رجحان سے سگنل کی تصدیق کرتا ہے، مزید وشوسنییتا کو بہتر بناتا ہے۔

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

خطرات

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

  2. جب اتار چڑھاؤ زیادہ ہوتا ہے تو ، اے ٹی آر کے ذریعہ مقرر کردہ اسٹاپ نقصان کو براہ راست متحرک کیا جاسکتا ہے ، اس طرح نقصان کی شرح میں اضافہ ہوتا ہے۔ پیرامیٹرز کو ایڈجسٹ کیا جاسکتا ہے یا اسٹاپ نقصان کی حد میں اضافہ ہوسکتا ہے۔

  3. اگر سپر ٹرینڈ پیرامیٹرز کو غلط طریقے سے ترتیب دیا جاتا ہے تو اکثر غلط سگنل سامنے آسکتے ہیں۔ زیادہ سے زیادہ مجموعہ تلاش کرنے کے لئے بہت سارے بیک ٹیسٹ کی ضرورت ہوتی ہے۔

بہتری

  1. زیادہ اشارے جیسے اتار چڑھاؤ انڈیکس، بولنگر بینڈ کو سگنل فلٹر کرنے میں مدد اور قابل اعتماد کو بہتر بنانے کے لئے شامل کیا جا سکتا ہے.

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

  3. دستی پیرامیٹر کی ترتیب کے بجائے تجارتی سگنل کا فیصلہ کرنے کے لئے تاریخی ڈیٹا پر تربیت یافتہ مشین لرننگ ماڈل شامل کریں۔ سگنل کی درستگی کو بہتر بنایا جاسکتا ہے۔

نتیجہ

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


/*backtest
start: 2022-12-20 00:00:00
end: 2023-12-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="HyperTrend", shorttitle="HyperTrend", overlay=true )

// 
float percent_of_portfo = input.int(2, title = "percent of portfo per order", minval = 0, maxval = 100) / 100

// ichimoku Cloud
conversionPeriods = input.int(9, minval=1, title="Conversion Line Length", group = "ichimoku")
basePeriods = input.int(26, minval=1, title="Base Line Length", group = "ichimoku")
laggingSpan2Periods = input.int(52, minval=1, title="Leading Span B Length", group = "ichimoku")
displacement = input.int(26, minval=1, title="Lagging Span", group = "ichimoku")
donchian(len) => math.avg(ta.lowest(len), ta.highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = math.avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)
p1 = plot(leadLine1, offset = displacement - 1, color=#A5D6A7,
	 title="Leading Span A", display = display.none)
p2 = plot(leadLine2, offset = displacement - 1, color=#ef9a9a,
	 title="Leading Span B", display = display.none)
plot(leadLine1 > leadLine2 ? leadLine1 : leadLine2, offset = displacement - 1, title = "Kumo Cloud Upper Line", display = display.none) 
plot(leadLine1 < leadLine2 ? leadLine1 : leadLine2, offset = displacement - 1, title = "Kumo Cloud Lower Line", display = display.none) 
fill(p1, p2, color = leadLine1 > leadLine2 ? color.rgb(67, 160, 72, 59) : color.rgb(244, 67, 54, 70))


// three supertrend

//1
atrPeriod1 = input(10, "ATR Length1", group="SuperTrend")
factor1 = input.float(1.0, "Factor1", step = 0.01, group="SuperTrend")

[supertrend1, direction1] = ta.supertrend(factor1, atrPeriod1)
supertrend1 := barstate.isfirst ? na : supertrend1

bodyMiddle1 = plot(barstate.isfirst ? na : (open + close) / 2, display = display.none)
upTrend1 =    plot(direction1 < 0 ? supertrend1 : na, "Up Trend",   color = color.green, style = plot.style_linebr)
downTrend1 =  plot(direction1 < 0 ? na : supertrend1, "Down Trend", color = color.red,   style = plot.style_linebr)


//2
atrPeriod2 = input(11, "ATR Length2", group="SuperTrend")
factor2 = input.float(2.0, "Factor2", step = 0.01, group="SuperTrend")

[supertrend2, direction2] = ta.supertrend(factor2, atrPeriod2)
supertrend2 := barstate.isfirst ? na : supertrend2

bodyMiddle2 = plot(barstate.isfirst ? na : (open + close) / 2, display = display.none)
upTrend2 =    plot(direction2 < 0 ? supertrend2 : na, "Up Trend",   color = color.green, style = plot.style_linebr)
downTrend2 =  plot(direction2 < 0 ? na : supertrend2, "Down Trend", color = color.red,   style = plot.style_linebr)


//3
atrPeriod3 = input(12, "ATR Length2", group="SuperTrend")
factor3 = input.float(3.0, "Factor2", step = 0.01, group="SuperTrend")

[supertrend3, direction3] = ta.supertrend(factor3, atrPeriod3)
supertrend3 := barstate.isfirst ? na : supertrend3

bodyMiddle3 = plot(barstate.isfirst ? na : (open + close) / 2, display = display.none)
upTrend3 =    plot(direction3 < 0 ? supertrend3 : na, "Up Trend",   color = color.green, style = plot.style_linebr)
downTrend3 =  plot(direction3 < 0 ? na : supertrend3, "Down Trend", color = color.red,   style = plot.style_linebr)


// ATR
lengthATR = input.int(title="Length (ATR)", defval=14, minval=1, group="ATR")
smoothingATR = input.string(title="Smoothing (ATR)", defval="RMA", options=["RMA", "SMA", "EMA", "WMA"], group="ATR")
ma_function(sourceATR, lengthATR) =>
	switch smoothingATR
		"RMA" => ta.rma(sourceATR, lengthATR)
		"SMA" => ta.sma(sourceATR, lengthATR)
		"EMA" => ta.ema(sourceATR, lengthATR)
		=> ta.wma(sourceATR, lengthATR)
ATR = ma_function(ta.tr(true), lengthATR)
plot(ATR, title = "ATR", color=color.new(#B71C1C, 0), display = display.none)

// EMA
lenEMA = input.int(200, minval=1, title="Length of EMA", group="EMA")
srcEMA = input(close, title="Source of EMA", group="EMA")
offset = input.int(title="Offset (EMA)", defval=0, minval=-500, maxval=500, group="EMA")
outEMA = ta.ema(srcEMA, lenEMA)
plot(outEMA, title="EMA", color=color.blue, offset=offset, display = display.none)

ma(sourceEMA, lengthEMA, type) =>
    switch type
        "SMA" => ta.sma(sourceEMA, lengthEMA)
        "EMA" => ta.ema(sourceEMA, lengthEMA)
        "SMMA (RMA)" => ta.rma(sourceEMA, lengthEMA)
        "WMA" => ta.wma(sourceEMA, lengthEMA)
        "VWMA" => ta.vwma(sourceEMA, lengthEMA)

typeMA = input.string(title = "Method (EMA)", defval = "SMA", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="EMA")
smoothingLengthEMA = input.int(title = "Smoothing Length (EMA)", defval = 5, minval = 1, maxval = 100, group="EMA")

smoothingLine = ma(outEMA, smoothingLengthEMA, typeMA)
plot(smoothingLine, title="Smoothing Line", color=#f37f20, offset=offset, display=display.none)


//logic



if (open + ATR > supertrend1) and (open + ATR > supertrend2) and (open + ATR > supertrend3) 
	strategy.entry("L", strategy.long)
else if (open < supertrend1 + ATR) and (open < supertrend2 + ATR) and (open < supertrend3 + ATR) 
	strategy.entry("S", strategy.short)
else
	strategy.close_all("C")

مزید