
اس حکمت عملی میں اضافے کے رجحانات کی نشاندہی کرنے اور مخصوص شرائط پر پورا اترنے پر زیادہ پوزیشن کھولنے کے لئے سادہ حرکت پذیر اوسط ((SMA) کے سلپ پر مبنی ہے۔ اس کے علاوہ ، اس حکمت عملی میں منافع کو متحرک طور پر روکنے والی قیمتوں کو ایڈجسٹ کرکے منافع کی حفاظت کے لئے ایک اختیاری ٹریکنگ اسٹاپ نقصان کا طریقہ کار متعارف کرایا گیا ہے۔ اس کے علاوہ ، اس حکمت عملی میں اسٹاپ نقصان کے بعد دوبارہ داخل ہونے کی شرائط بھی رکھی گئی ہیں تاکہ قیمتوں میں اضافے کی صورت میں دوبارہ پوزیشن قائم نہ کی جاسکے۔ ان خصوصیات کے ذریعہ ، حکمت عملی کو بڑھتے ہوئے رجحانات کو مؤثر طریقے سے پکڑنے ، خطرے پر قابو پانے اور نظم و ضبط کی تجارت کو انجام دینے کے قابل بنایا گیا ہے۔
اس حکمت عملی میں SMA رجحانات کی نگرانی ، اسٹاپ نقصانات کی نگرانی اور نظم و ضبط کے دوبارہ داخل ہونے جیسے میکانزم کا استعمال کیا گیا ہے ، تاکہ بڑھتے ہوئے رجحانات کو پکڑنے کے ساتھ ساتھ خطرے کو کنٹرول کیا جاسکے۔ پیرامیٹرز کی ترتیب کو بہتر بنانے ، خطرے کے انتظام کو بڑھانے ، دو طرفہ تجارت اور کثیر وقت کے فریم ورک کی تصدیق کی حمایت کرنے جیسے طریقوں سے حکمت عملی کی لچک اور استحکام کو مزید بڑھایا جاسکتا ہے۔
/*backtest
start: 2023-05-28 00:00:00
end: 2024-06-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("MA Incline Strategy with Optional Trailing Stop-Loss", overlay=true, calc_on_every_tick=true)
// Input parameters
windowSize = input.int(20, title="Window Size")
maLength = input.int(150, title="Moving Average Length")
minSlope = input.float(0.1, title="Minimum Slope")
useTrailingStop = input.bool(true, title="Use Trailing Stop-Loss")
trailingStopPercentage = input.float(2.8, title="Trailing Stop Percentage (%)") / 100
// Calculate the moving average
ma = ta.sma(close, maLength)
// Calculate the slope of the moving average over the window size
previousMa = ta.sma(close[windowSize], maLength)
slopeMa = (ma - previousMa) / windowSize
// Check conditions
isAboveMinSlope = slopeMa > minSlope
isAboveMa = close > ma
// Buy condition
buyCondition = isAboveMinSlope and isAboveMa
// Execute strategy
if (buyCondition and strategy.opentrades == 0)
strategy.entry("Long", strategy.long)
// Trailing stop-loss (optional)
if (strategy.opentrades == 1 and useTrailingStop and isAboveMa)
// Calculate the trailing stop price
trailPrice = close * (1 - trailingStopPercentage)
// Use the built-in strategy.exit function with the trailing stop
strategy.exit("Trail Stop", "Long", stop=trailPrice)
// Exit condition
sellCondition = ta.crossover(ma, close)
if (sellCondition and strategy.opentrades == 1)
strategy.close("Long")