سپر ٹرینڈ دو طرفہ حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-10-08 15:02:45
ٹیگز:

جائزہ

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

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

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

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

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

خطرے کا تجزیہ

  • غیر مناسب ATR مدت قیمت سے بینڈ کو الگ کر سکتی ہے۔
  • بہت بڑا/چھوٹا ضارب زیادہ غلط سگنل اور تاخیر سگنل کا سبب بنتا ہے.
  • ناقص واپسی کا وقت واپسی کی تجارت سے نقصانات کا باعث بنتا ہے۔
  • اس کو دوسرے فلٹرز کی ضرورت ہوتی ہے تاکہ اس کی پٹائی کو کم کیا جا سکے۔

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

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

خلاصہ

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


/*backtest
start: 2022-10-01 00:00:00
end: 2023-10-07 00:00:00
period: 3d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

TradeId = "RVG"

InitCapital = 1000
InitPosition = 1000
InitCommission = 0.075
InitPyramidMax = 1
CalcOnorderFills = true
CalcOnTick = true

//@version=4
// strategy("Supertrend RG", overlay = true,process_orders_on_close=true,commission_type=strategy.commission.percent,commission_value=InitCommission,
//  currency=currency.USD,initial_capital=InitCapital,default_qty_type=strategy.cash, default_qty_value=InitPosition, calc_on_order_fills=CalcOnorderFills, calc_on_every_tick=CalcOnTick,pyramiding=InitPyramidMax)

//
////////////////////////////////////////////////////////////////////////////////
// BACKTESTING RANGE

// From Date Inputs
fromDay = input(defval=1, title="From Day", minval=1, maxval=31)
fromMonth = input(defval=1, title="From Month", minval=1, maxval=12)
fromYear = input(defval=2018, title="From Year", minval=1970)

// To Date Inputs
toDay = input(defval=1, title="To Day", minval=1, maxval=31)
toMonth = input(defval=1, title="To Month", minval=1, maxval=12)
toYear = input(defval=2100, title="To Year", minval=1970)

// Calculate start/end date and time condition
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true



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=true)
highlighting = input(title="Highlighter 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
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
plotshape(buySignal ? up : na, title="UpTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.green, transp=0)
plotshape(buySignal and showsignals ? up : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white, transp=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
plotshape(sellSignal ? dn : na, title="DownTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.red, transp=0)
plotshape(sellSignal and showsignals ? dn : na, title="Sell", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white, transp=0)
mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=0)
longFillColor = highlighting ? (trend == 1 ? color.green : color.white) : color.white
shortFillColor = highlighting ? (trend == -1 ? color.red : color.white) : color.white
fill(mPlot, upPlot, title="UpTrend Highligter", color=longFillColor)
fill(mPlot, dnPlot, title="DownTrend Highligter", color=shortFillColor)
alertcondition(buySignal, title="SuperTrend Buy", message="SuperTrend Buy!")
alertcondition(sellSignal, title="SuperTrend Sell", message="SuperTrend Sell!")
changeCond = trend != trend[1]
alertcondition(changeCond, title="SuperTrend Direction Change", message="SuperTrend has changed direction!")


strategy.entry(TradeId + " Long", true, when=buySignal[1] and time_cond)
strategy.entry(TradeId + " Short", false, when=sellSignal[1] and time_cond)   




مزید