
اس حکمت عملی کا استعمال کرتا ہے اوسط حقیقی طول موج (ATR) کے طور پر ٹریکنگ سٹاپ نقصان (TS) کی بنیاد کے طور پر، کی طرف سے متحرک ایڈجسٹمنٹ سٹاپ نقصان کی پوزیشن کو حاصل کرنے کے لئے ٹریکنگ کے رجحان کا مقصد. جب قیمت فائدہ مند سمت میں منتقل، سٹاپ نقصان کی پوزیشن کو بھی ایڈجسٹ کریں گے، اس طرح حاصل کیا منافع کو لاک کرنے کے لئے؛ جب قیمت نقصان دہ سمت میں منتقل، سٹاپ نقصان کی پوزیشن کو برقرار رکھا، اور ایک بار جب قیمت سٹاپ نقصان کی قیمت کو چھو، سٹاپ نقصان. اس حکمت عملی کی کلید سٹاپ نقصان کی پوزیشن کی متحرک ایڈجسٹمنٹ میں ہے، جو منافع کو برقرار رکھنے کے لئے استعمال کیا جا سکتا ہے، لیکن منافع کو جاری رکھنے کے لئے جاری رکھا جا سکتا ہے.
اے ٹی آر ٹریکنگ اسٹاپ اسٹریٹجی قیمت کے اتار چڑھاؤ کی وسعت کے مطابق اسٹاپ پوزیشن کو متحرک طور پر ایڈجسٹ کرنے کی صلاحیت رکھتی ہے ، جو رجحان سازی کے حالات میں اچھے نتائج برآمد کرسکتی ہے۔ تاہم ، اس حکمت عملی میں اس طرح کے خطرات بھی موجود ہیں کہ وہ اتار چڑھاؤ والی مارکیٹ ، زیادہ کثرت سے اسٹاپ اور غیر محفوظ چھلانگ سے نمٹنے کے قابل نہیں ہے۔ مذکورہ بالا خامیوں کے ل the ، حکمت عملی کو رجحانات ، اسٹاپ اسٹریٹجی ، زیادہ سے زیادہ اسٹاپ نقصان کی حد وغیرہ کے لحاظ سے بہتر اور بہتر بنایا جاسکتا ہے۔ ان ایڈجسٹمنٹ کے ذریعہ ، حکمت عملی کی موافقت اور منافع بخش صلاحیت کو بڑھانے کی امید ہے۔
/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Long TAP", overlay=true)
// Constants
keyValueDefault = 3.0
keyValueStep = 0.5
atrPeriodDefault = 10
// Inputs
keyValue = input.float(keyValueDefault, title="Key Value")
atrPeriod = input.int(atrPeriodDefault, title="ATR Period")
// Calculations
xATR = ta.atr(atrPeriod)
nLoss = keyValue * xATR
// Trailing Stop Calculation
var float xATRTrailingStop = 0.0
xATRTrailingStop := ta.highest(math.max(nz(xATRTrailingStop[1], 0), close - nLoss), 1)
xATRTrailingStop := ta.lowest(math.min(nz(xATRTrailingStop, 0), close + nLoss), 1)
// Position Calculation
var int pos = 0
pos := nz(pos[1], 0)
if (close[1] < nz(xATRTrailingStop, 0) and close > nz(xATRTrailingStop, 0))
pos := 1
else if (close[1] > nz(xATRTrailingStop, 0) and close < nz(xATRTrailingStop, 0))
pos := -1
// Plotting Trailing Stop
var color xcolor = na
if (pos == -1)
xcolor := color.red
else if (pos == 1)
xcolor := color.green
plot(xATRTrailingStop, color=xcolor, title="Trailing Stop")
// Buy/Sell Signals
buySignal = ta.crossover(close, xATRTrailingStop)
sellSignal = ta.crossunder(close, xATRTrailingStop)
// Strategy
if (buySignal)
strategy.entry("Long", strategy.long)
label.new(bar_index, xATRTrailingStop, text="Buy Signal", color=color.green, style=label.style_label_up, yloc=yloc.belowbar)
if (sellSignal)
strategy.entry("Short", strategy.short)
label.new(bar_index, xATRTrailingStop, text="Sell Signal", color=color.red, style=label.style_label_down, yloc=yloc.abovebar)
// Alerts
alertcondition(buySignal, title='UT BOT Buy', message='UT BOT Buy')
alertcondition(sellSignal, title='UT BOT Sell', message='UT BOT Sell')