سپر ٹرینڈ پر مبنی طویل مدتی تجارتی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-09-20 17:14:33
ٹیگز:

جائزہ

یہ حکمت عملی سپر ٹرینڈ اشارے کا استعمال کرتے ہوئے طویل مواقع کی نشاندہی کرتی ہے۔ یہ طویل اندراج کے لئے متحرک معاونت کی سطح کا تعین کرنے کے لئے اے ٹی آر اور ایک ضرب کا استعمال کرتی ہے۔ یہ لمبی تجارت پر مرکوز ہے۔

حکمت عملی منطق

  1. اوپری اور نچلی بینڈ کا حساب اے ٹی آر پیریڈ، ضرب کے مطابق کیا جاتا ہے۔ اوپری بینڈ کو توڑنے سے اوپر کا رجحان ظاہر ہوتا ہے ، نچلی بینڈ کو توڑنے سے نیچے کا رجحان ظاہر ہوتا ہے۔

  2. موجودہ رجحان کا سراغ لگایا جاتا ہے ، جس میں اپ ٹرینڈ کے لئے 1 اور ڈاؤن ٹرینڈ کے لئے -1 ہوتا ہے۔ قیمت کے اوپری بینڈ کے اوپر توڑنے سے رجحان نیچے سے اوپر کی طرف تبدیل ہوجاتا ہے ، خرید سگنل پیدا ہوتا ہے۔ نچلے بینڈ کے نیچے توڑنے سے اوپر سے نیچے کی طرف تبدیل ہوجاتا ہے ، فروخت سگنل پیدا ہوتا ہے۔

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

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

فوائد کا تجزیہ

اس حکمت عملی کے فوائد:

  1. سپر ٹرینڈ متحرک طور پر قیمتوں میں تبدیلیوں کا سراغ لگاتا ہے اور بروقت رجحان کی تبدیلیوں کو ظاہر کرتا ہے۔

  2. اے ٹی آر سٹاپ نقصان اسٹاپ کو مارکیٹ کی اتار چڑھاؤ کی بنیاد پر ایڈجسٹ کرتا ہے، منافع میں مقفل کرنے میں مدد کرتا ہے.

  3. ایم اے فلٹر مختلف مارکیٹوں میں شور سے غلط سگنل کو ختم کرتا ہے۔

  4. بصری ڈیزائن بدیہی طور پر حکمت عملی میکانکس اور مارکیٹ کی صورتحال پیش کرتا ہے.

  5. صرف تجارتی رجحان کی تبدیلی اسے طویل مدتی ہولڈنگ کے لئے موزوں بناتی ہے۔

خطرے کا تجزیہ

اہم خطرات یہ ہیں:

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

  2. متزلزل مارکیٹوں میں، اسٹاپ اکثر شروع ہو سکتے ہیں۔

  3. تجارت کے اخراجات پر کوئی غور نہیں کیا گیا۔ چھوٹے اکاؤنٹس زیادہ اثر انداز ہوتے ہیں۔

  4. سٹاپ نقصان کا کوئی مطلب نہیں ہے کہ اعلی کھپت کا خطرہ ہے.

  5. ٹرینڈ فلٹر کچھ مواقع کھو سکتا ہے.

خطرات کو کم کیا جا سکتا ہے:

  1. کم بینڈ ایڈجسٹمنٹ فریکوئنسی کے لئے ATR پیرامیٹرز کو بہتر بنانا.

  2. ہائی فریکوئنسی معمولی جھولوں کی طرف سے رکنے سے بچنے کے لئے مساوی بار فلٹرنگ شامل کرنا.

  3. منافع کو بچانے کے لیے سٹاپ نقصان اور منافع لینا۔

  4. توازن فلٹرنگ اثر کے لئے چلتی اوسط مدت کو ایڈجسٹ کرنا.

  5. تجارتی اخراجات کے اثرات کو کم کرنے کے لئے منی مینجمنٹ کو بہتر بنانا۔

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

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

  1. مختلف قیمتوں کے ذرائع جیسے قریبی، اعلی وغیرہ کی جانچ کریں.

  2. دیگر متحرک سٹاپ نقصان اشارے کی کوشش کریں جیسے Chandelier Exit.

  3. سرمایہ کے استعمال کو بہتر بنانے کے لئے پوزیشن سائزنگ شامل کریں.

  4. اندراجات کو بہتر بنانے کے لیے اتار چڑھاؤ کے اشارے شامل کریں۔

  5. خطرات پر قابو پانے کے لیے سٹاپ نقصان اور منافع حاصل کریں۔

  6. مختلف مارکیٹوں کے لئے پیرامیٹرز کو ایڈجسٹ کریں.

  7. پیرامیٹر کی اصلاح کے لیے مشین لرننگ کا مطالعہ کریں۔

  8. فلٹر کی درستگی کو بہتر بنانے کے لئے دیگر اشارے کو یکجا کریں.

نتیجہ

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


/*backtest
start: 2020-09-13 00:00:00
end: 2023-09-19 00:00:00
period: 3d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("SuperTrend Long Strategy", overlay=true, initial_capital=50000, currency=currency.USD, default_qty_type=strategy.cash, default_qty_value=50000)

Periods = input(title="ATR Period", type=input.integer, defval=10)
src = input(hl2, title="Source")
Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=3.0)
changeATR = input(title="Change ATR Calculation Method ?", type=input.bool, defval=true)
showsignals = input(title="Show Buy/Sell Signals ?", type=input.bool, defval=false)
highlighting = input(title="Highlighter On/Off ?", type=input.bool, defval=true)
barcoloring = input(title="Bar Coloring On/Off ?", type=input.bool, defval=true)

atr2 = sma(tr, Periods)
atr = changeATR ? atr(Periods) : atr2

up = src - (Multiplier * atr)
up1 = nz(up[1], up)
up := close[1] > up1 ? max(up, up1) : up

dn = src + (Multiplier * atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? min(dn, dn1) : dn

trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend

// Moving Average as Trend Filter
periodes_ma = input(title="Moving Average Period", type=input.integer, defval=20)
src_ma = input(title="Moving Average Source", type=input.source, defval=close)
ma = sma(src_ma, periodes_ma)

upPlot = plot(trend == 1 ? up : na, title="Up Trend", style=plot.style_linebr, linewidth=2, color=color.green)
buySignal = trend == 1 and trend[1] == -1 and close > ma
plotshape(buySignal ? up : na, title="UpTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(color.green, 0))
plotshape(buySignal and showsignals ? up : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(color.green, 0))

dnPlot = plot(trend == 1 ? na : dn, title="Down Trend", style=plot.style_linebr, linewidth=2, color=color.red)
sellSignal = trend == -1 and trend[1] == 1 and close < ma
plotshape(sellSignal ? dn : na, title="DownTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(color.red, 0))
plotshape(sellSignal and showsignals ? dn : na, title="Sell", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(color.red, 0))

mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=0)
longFillColor = highlighting ? (trend == 1 ? color.new(color.green, 70) : color.white) : color.white
shortFillColor = highlighting ? (trend == -1 ? color.new(color.red, 70) : color.white) : color.white
fill(mPlot, upPlot, title="UpTrend Highlighter", color=longFillColor)
fill(mPlot, dnPlot, title="DownTrend Highlighter", color=shortFillColor)

FromMonth = input(defval = 9, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 999)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 999)

start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)       

window()  => time >= start and time <= finish ? true : false

longCondition = buySignal
if (longCondition)
    strategy.entry("BUY", strategy.long, when = window())

shortCondition = sellSignal
if (shortCondition)
    strategy.close("BUY")
    strategy.entry("SELL", strategy.short, when = window())

buy1 = barssince(buySignal)
sell1 = barssince(sellSignal)
color1 = buy1[1] < sell1[1] ? color.green : buy1[1] > sell1[1] ? color.red : na
barcolor(barcoloring ? color1 : na)


مزید