T3 اور ATR پر مبنی حکمت عملی کے بعد خودکار رجحان


تخلیق کی تاریخ: 2024-01-03 11:58:25 آخر میں ترمیم کریں: 2024-01-03 11:58:25
کاپی: 1 کلکس کی تعداد: 698
1
پر توجہ دیں
1621
پیروکار

T3 اور ATR پر مبنی حکمت عملی کے بعد خودکار رجحان

جائزہ

اس حکمت عملی کا بنیادی مقصد T3 اشارے کی ہموار حرکت پذیر اوسط اور ATR اشارے کی متحرک رکاوٹوں کا استعمال کرتے ہوئے رجحان کی سمت کی نشاندہی کرنا اور رجحانات کی پیروی کرنا ہے۔ اس حکمت عملی میں رجحانات کی پیروی اور رجحانات کی واپسی کے مواقع شامل ہیں ، جس کا مقصد رجحانات کی صورت حال میں زیادہ منافع حاصل کرنا ہے۔

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

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

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

طاقت کا تجزیہ

روایتی منتقل اوسط کے مقابلے میں ، T3 اشارے میں زیادہ حساسیت اور کم تاخیر ہوتی ہے ، جس سے قیمتوں کے رجحانات میں تبدیلی کو زیادہ تیزی سے پکڑا جاسکتا ہے۔ اس کے علاوہ ، T3 میں ریاضیاتی حساب کتاب کے فوائد ہیں جو زیادہ درست اور ہموار منتقل اوسط فراہم کرسکتے ہیں۔

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

خطرے کا تجزیہ

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

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

اصلاح کی سمت

  • T3 اشارے کے پیرامیٹرز کو ایڈجسٹ کیا جاسکتا ہے تاکہ اس کی حساسیت کو بہتر بنایا جاسکے۔

  • مختلف ATR سائیکل پیرامیٹرز کی جانچ پڑتال کی جا سکتی ہے، بہترین اقدار تلاش کرنے کے لئے.

  • آپ مختلف رسک ریٹرن فیکٹرز کو آزما سکتے ہیں تاکہ آپ کو بہترین پیرامیٹرز معلوم ہوسکیں۔

  • دیگر اشارے فلٹر سگنل شامل کر سکتے ہیں، مثال کے طور پر منی فلو انڈیکس۔

  • مشین سیکھنے کے طریقوں کا استعمال کرتے ہوئے پیرامیٹرز کے مجموعے کو خود کار طریقے سے بہتر بنانے کے لئے.

خلاصہ کریں۔

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

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

//@version=5
strategy(title='NinjaView Example 1 (UTBA "QuantNomad" Strategy)', overlay=true)
T3 = input(100)//600
// Input for Long Settings
// Input for Long Settings


xPrice3 = close
xe1 = ta.ema(xPrice3, T3)
xe2 = ta.ema(xe1, T3)
xe3 = ta.ema(xe2, T3)
xe4 = ta.ema(xe3, T3)
xe5 = ta.ema(xe4, T3)
xe6 = ta.ema(xe5, T3)

b3 = 0.7
c1 = -b3*b3*b3
c2 = 3*b3*b3+3*b3*b3*b3
c3 = -6*b3*b3-3*b3-3*b3*b3*b3
c4 = 1+3*b3+b3*b3*b3+3*b3*b3
nT3Average = c1 * xe6 + c2 * xe5 + c3 * xe4 + c4 * xe3

//plot(nT3Average, color=color.white, title="T3")

// Buy Signal - Price is below T3 Average
buySignal3 = xPrice3 < nT3Average
sellSignal3 = xPrice3 > nT3Average
// Inputs
a = input(1, title='Key Value. "This changes the sensitivity"')
c = input(50, title='ATR Period')
h = input(true, title='Signals from Heikin Ashi Candles')
riskRewardRatio = input(1, title='Risk Reward Ratio')

xATR = ta.atr(c)
nLoss = a * xATR

src = h ? request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, close, lookahead=barmerge.lookahead_off) : close

xATRTrailingStop = 0.0
iff_1 = src > nz(xATRTrailingStop[1], 0) ? src - nLoss : src + nLoss
iff_2 = src < nz(xATRTrailingStop[1], 0) and src[1] < nz(xATRTrailingStop[1], 0) ? math.min(nz(xATRTrailingStop[1]), src + nLoss) : iff_1
xATRTrailingStop := src > nz(xATRTrailingStop[1], 0) and src[1] > nz(xATRTrailingStop[1], 0) ? math.max(nz(xATRTrailingStop[1]), src - nLoss) : iff_2

pos = 0
iff_3 = src[1] > nz(xATRTrailingStop[1], 0) and src < nz(xATRTrailingStop[1], 0) ? -1 : nz(pos[1], 0)
pos := src[1] < nz(xATRTrailingStop[1], 0) and src > nz(xATRTrailingStop[1], 0) ? 1 : iff_3

xcolor = pos == -1 ? color.red : pos == 1 ? color.green : color.blue

ema = ta.ema(src, 1)
above = ta.crossover(ema, xATRTrailingStop)
below = ta.crossunder(ema, xATRTrailingStop)

buy = src > xATRTrailingStop and above
sell = src < xATRTrailingStop and below

barbuy = src > xATRTrailingStop
barsell = src < xATRTrailingStop

plotshape(buy, title='Buy', text='Buy', style=shape.labelup, location=location.belowbar, color=color.new(color.green, 0), textcolor=color.new(color.white, 0), size=size.tiny)
plotshape(sell, title='Sell', text='Sell', style=shape.labeldown, location=location.abovebar, color=color.new(color.red, 0), textcolor=color.new(color.white, 0), size=size.tiny)

barcolor(barbuy ? color.new(color.green, 90) : na)
barcolor(barsell ? color.new(color.red, 90) : na)

var float entryPrice = na
var float takeProfitLong = na
var float stopLossLong = na
var float takeProfitShort = na
var float stopLossShort = na

if buy and buySignal3
    entryPrice := src
    takeProfitLong := entryPrice + nLoss * riskRewardRatio
    stopLossLong := entryPrice - nLoss
    takeProfitShort := na
    stopLossShort := na

if sell and sellSignal3
    entryPrice := src
    takeProfitShort := entryPrice - nLoss * riskRewardRatio
    stopLossShort := entryPrice + nLoss
    takeProfitLong := na
    stopLossLong := na

// Strategy order conditions
acct = "Sim101"
ticker = "ES 12-23"
qty = 1

OCOMarketLong = '{ "alert": "OCO Market Long", "account": "' + str.tostring(acct) + '", "ticker": "' + str.tostring(ticker) + '", "qty": "' + str.tostring(qty) + '", "take_profit_price": "' + str.tostring(takeProfitLong) + '", "stop_price": "' + str.tostring(stopLossLong) + '", "tif": "DAY" }'
OCOMarketShort = '{ "alert": "OCO Market Short", "account": "' + str.tostring(acct) + '", "ticker": "' + str.tostring(ticker) + '", "qty": "' + str.tostring(qty) + '", "take_profit_price": "' + str.tostring(takeProfitShort) + '", "stop_price": "' + str.tostring(stopLossShort) + '", "tif": "DAY" }'
CloseAll = '{ "alert": "Close All", "account": "' + str.tostring(acct) + '", "ticker": "' + str.tostring(ticker) + '" }'

strategy.entry("Long", strategy.long, when=buy and buySignal3, alert_message=OCOMarketLong)
strategy.entry("Short", strategy.short, when=sell and sellSignal3, alert_message=OCOMarketShort)

// Setting the take profit and stop loss for long trades
strategy.exit("Take Profit/Stop Loss", "Long", stop=stopLossLong, limit=takeProfitLong,alert_message=CloseAll)

// Setting the take profit and stop loss for short trades
strategy.exit("Take Profit/Stop Loss", "Short", stop=stopLossShort, limit=takeProfitShort,alert_message=CloseAll)

// Plot trade setup boxes
bgcolor(buy ? color.new(color.green, 90) : na, transp=0, offset=-1)
bgcolor(sell ? color.new(color.red, 90) : na, transp=0, offset=-1)

// longCondition = buy and not na(entryPrice)
// shortCondition = sell and not na(entryPrice)

// var line longTakeProfitLine = na
// var line longStopLossLine = na
// var line shortTakeProfitLine = na
// var line shortStopLossLine = na

// if longCondition
//     longTakeProfitLine := line.new(bar_index, takeProfitLong, bar_index + 1, takeProfitLong, color=color.green, width=2)
//     longStopLossLine := line.new(bar_index, stopLossLong, bar_index + 1, stopLossLong, color=color.red, width=2)
//     label.new(bar_index + 1, takeProfitLong, str.tostring(takeProfitLong, "#.#####"), color=color.green, style=label.style_none, textcolor=color.green, size=size.tiny)
//     label.new(bar_index + 1, stopLossLong, str.tostring(stopLossLong, "#.#####"), color=color.red, style=label.style_none, textcolor=color.red, size=size.tiny)

// if shortCondition
//     shortTakeProfitLine := line.new(bar_index, takeProfitShort, bar_index + 1, takeProfitShort, color=color.green, width=2)
//     shortStopLossLine := line.new(bar_index, stopLossShort, bar_index + 1, stopLossShort, color=color.red, width=2)
//     label.new(bar_index + 1, takeProfitShort, str.tostring(takeProfitShort, "#.#####"), color=color.green, style=label.style_none, textcolor=color.green, size=size.tiny)
//     label.new(bar_index + 1, stopLossShort, str.tostring(stopLossShort, "#.#####"), color=color.red, style=label.style_none, textcolor=color.red, size=size.tiny)

alertcondition(buy, 'UT Long', 'UT Long')
alertcondition(sell, 'UT Short', 'UT Short')