
یہ حکمت عملی کوانٹ ناماد کے تیار کردہ یو ٹی بوٹ میٹرکس پر مبنی ہے ، جس میں موبائل اسٹاپ نقصان کی سوچ کو شامل کیا گیا ہے۔ اصل کوڈ کو @ Yo_adriiiiaan نے لکھا ہے ، جس میں @ HPotter نے ترمیم کی ہے۔ یہ حکمت عملی LuxAlgo کے اسمارٹ منی تصورات کے ساتھ مل کر کام کرے گی۔ یہ حکمت عملی فی الحال جانچ کے مرحلے میں ہے۔
اس حکمت عملی کے بنیادی اصول درج ذیل ہیں:
اس حکمت عملی میں یو ٹی بوٹ اشارے کی بنیاد پر ، موبائل اسٹاپ کی منطق شامل کی گئی ہے ، جو رجحان کے حالات میں منافع کی حفاظت کا کردار ادا کرسکتی ہے۔ اس کے علاوہ ، اس حکمت عملی میں کثیر سر اور خالی سر پوزیشنوں کے لئے علیحدہ علیحدہ نقصانات کا تعین کیا گیا ہے۔ اے ٹی آر کو موبائل اسٹاپ کے حوالہ کے طور پر استعمال کرتے ہوئے ، اسٹاپ نقصانات کی پوزیشن کو متحرک طور پر ایڈجسٹ کیا جاسکتا ہے ، جس سے لچک میں اضافہ ہوتا ہے۔ تاہم ، اس حکمت عملی کو ہلکی سی صورتحال میں بار بار نقصانات سے متعلق اعلی تجارتی اخراجات کا خطرہ لاحق ہوسکتا ہے ، اور اس میں موبائل اسٹاپ کی ترتیب کی کمی ہے ، جس سے غلط منافع کا امکان ہے۔ اس کے علاوہ ، پیرامیٹرز کا انتخاب حکمت عملی کی کارکردگی پر زیادہ اثر انداز ہوتا ہے۔
مستقبل میں ، زیادہ مستحکم منافع حاصل کرنے کے لئے حکمت عملی کو بہتر بنایا جاسکتا ہے ، جس میں داخلے کے حالات کو بہتر بنانا ، زیادہ پیچیدہ موبائل اسٹاپ نقصانات کا پتہ لگانا ، موبائل اسٹاپ میکانیزم کو شامل کرنا ، مختلف اقسام اور ادوار کے لئے پیرامیٹرز کی اصلاح کرنا شامل ہے۔ مجموعی طور پر ، حکمت عملی کا نظریہ آسان ہے ، سمجھنے اور عمل میں آسان ہے ، لیکن اس میں مزید اصلاحات کی گنجائش ہے ، جس کی تلاش اور بہتری کے قابل ہے۔
/*backtest
start: 2023-03-05 00:00:00
end: 2024-03-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Trailingstop", overlay=true)
if close > sma(close, 50)
strategy.entry("long", strategy.long)
// Trailing stop loss for long positions
Trailperc = 0.20
price_stop_long = 0.0
if (strategy.position_size > 0)
stopValue = close * (1 - Trailperc)
price_stop_long := max(stopValue, price_stop_long[1])
else
price_stop_long := 0
if (strategy.position_size > 0)
strategy.exit(id="stoploss_long", stop=price_stop_long)
// Trailing stop loss for short positions
Trailperc_short = 0.20
price_stop_short = 0.0
if (strategy.position_size < 0)
stopValue_short = close * (1 + Trailperc_short)
price_stop_short := min(stopValue_short, price_stop_short[1])
else
price_stop_short := 0
if (strategy.position_size < 0)
strategy.exit(id="stoploss_short", stop=price_stop_short)
// ATR Trailing Stop for visualization
keyvalue = input(3, title="Key Value. 'This changes the sensitivity'", step=0.5)
atrperiod = input(10, title="ATR Period")
xATR = atr(atrperiod)
nLoss = keyvalue * xATR
xATRTrailingStop = 0.0
xATRTrailingStop := iff(close > nz(xATRTrailingStop[1], 0) and close[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), close - nLoss),
iff(close < nz(xATRTrailingStop[1], 0) and close[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), close + nLoss),
iff(close > nz(xATRTrailingStop[1], 0), close - nLoss, close + nLoss)))
pos = 0
pos := iff(close[1] < nz(xATRTrailingStop[1], 0) and close > nz(xATRTrailingStop[1], 0), 1,
iff(close[1] > nz(xATRTrailingStop[1], 0) and close < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0)))
xcolor = pos == -1 ? color.red: pos == 1 ? color.green : color.blue
plot(xATRTrailingStop, color = xcolor, title = "Trailing Stop")