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

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

مصنف:چاؤ ژانگ، تاریخ: 2024-02-21 16:07:20
ٹیگز:

img

جائزہ

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

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

حکمت عملی میں T3 اشارے، ATR اشارے اور ATR ٹریلنگ اسٹاپ میکانزم شامل ہیں۔

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

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

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

سمت کا تعین کرنے کے لئے T3، اتار چڑھاؤ کا حساب کرنے کے لئے ATR اور ATR ٹریلنگ سٹاپ میکانزم کا استعمال کرتے ہوئے، یہ حکمت عملی نسبتا موثر رجحان پکڑنے اور خطرے کے کنٹرول کو حاصل کرتی ہے.

فوائد

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

  1. ٹی 3 لائن کا اطلاق رجحانات کی گرفتاری کی درستگی کو بہتر بناتا ہے۔

  2. اے ٹی آر اشارے کو متحرک طور پر مارکیٹ کی اتار چڑھاؤ کا حساب لگاتا ہے، سٹاپ نقصان اور منافع لینے کی سطح کو زیادہ معقول بناتا ہے.

  3. اے ٹی آر ٹریلنگ اسٹاپ میکانزم مؤثر رسک کنٹرول کے لئے اسٹاپ نقصان لائن کو حقیقی وقت میں قیمت کی نقل و حرکت کی پیروی کرنے کے قابل بناتا ہے۔

  4. خود کار طریقے سے رجحان ٹریکنگ ٹریڈنگ حاصل کرنے کے لئے اشارے اور سٹاپ نقصان کے طریقہ کار کو ضم کرتا ہے۔

  5. خود کار طریقے سے آرڈر پر عملدرآمد کے لئے ویب ہک کے ذریعے بیرونی ٹریڈنگ پلیٹ فارمز سے رابطہ قائم کر سکتے ہیں.

خطرات اور حل

اس حکمت عملی کے ساتھ کچھ خطرات بھی ہیں:

  1. T3 پیرامیٹر کی غلط ترتیبات بہتر رجحان کے مواقع سے محروم ہوسکتی ہیں۔ زیادہ سے زیادہ اقدار تلاش کرنے کے لئے مختلف سائیکل پیرامیٹرز کی جانچ کی جاسکتی ہے۔

  2. اے ٹی آر ویلیو کا غلط حساب لگانے سے اسٹاپ نقصان کا فاصلہ خطرہ کو مؤثر طریقے سے کنٹرول کرنے کے لئے بہت بڑا یا بہت چھوٹا ہوسکتا ہے۔ اے ٹی آر سائیکل پیرامیٹر کو مارکیٹ کی اتار چڑھاؤ کی خصوصیات کے ساتھ مل کر ایڈجسٹ کیا جاسکتا ہے۔

  3. شدید اتار چڑھاؤ میں ، اسٹاپ نقصان کی لائن توڑ دی جاسکتی ہے جس کے نتیجے میں زیادہ نقصانات ہوتے ہیں۔ ہر تجارت میں زیادہ نقصانات سے بچنے کے لئے معقول کل نقصان کی لائن مقرر کی جاسکتی ہے۔

  4. وِپسا مارکیٹوں میں بار بار اسٹاپ نقصان کا باعث بن سکتا ہے۔ اے ٹی آر ٹریلنگ اسٹاپ فاصلے کو مناسب طریقے سے بڑھانا مددگار ثابت ہوسکتا ہے۔

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

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

  1. سب سے زیادہ مناسب ہموار سائیکل تلاش کرنے کے لئے T3 پیرامیٹر کو بہتر بنائیں.

  2. مختلف ATR سائیکل پیرامیٹرز کو ٹیسٹ کریں تاکہ ATR کی قیمت کا حساب لگایا جاسکے جو مارکیٹ کی اتار چڑھاؤ کو بہترین انداز میں ظاہر کرے۔

  3. زیادہ سے زیادہ حساس رکنے سے بچنے کے لئے اے ٹی آر پیچھے رکنے کے فاصلے کی لچکدار رینج کو بہتر بنائیں۔

  4. مناسب فلٹرز شامل کریں تاکہ وِپسا مارکیٹوں میں کثرت سے تجارت سے بچا جاسکے۔

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

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

نتیجہ

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


/*backtest
start: 2024-01-21 00:00:00
end: 2024-02-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title='UT Bot Alerts (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')


مزید