
یہ حکمت عملی ایک ذہین رجحان ٹریکنگ سسٹم ہے جو ایک باہمی مساوات پر مبنی ہے ، جو مارکیٹ کے رجحانات کی نشاندہی کرنے کے لئے اونچائی اور نچلے حصے کی حرکت پذیری اوسط اور اسکیلپنگ اشارے کا حساب لگاتا ہے ، اور متحرک اسٹاپ نقصان کے طریقہ کار کے ساتھ مل کر خطرے کا انتظام کرتا ہے۔ حکمت عملی کا بنیادی حصہ یہ ہے کہ اسکیلپنگ کی کمی کے ذریعے جعلی سگنل کو فلٹر کریں ، جبکہ ٹریلنگ اسٹاپ متحرک ٹریکنگ کا استعمال کرتے ہوئے منافع کو مقفل کریں ، رجحان سے باخبر رہنے اور خطرے پر قابو پانے کے نامیاتی امتزاج کو حاصل کریں۔
حکمت عملی ایک دوہری اوسط لکیری نظام کو بنیادی تجارتی منطق کے طور پر استعمال کرتی ہے ، اور اعلی ترین اور کم ترین قیمتوں کے سلسلے پر ایک متحرک اوسط کا حساب لگاتی ہے۔ جب قیمت اوپر کی اوسط سے ٹوٹ جاتی ہے اور اوسط کا مروجہ نمایاں طور پر اوپر ہوتا ہے تو ، نظام ایک کثیر سگنل پیدا کرتا ہے۔ جب قیمت نیچے کی اوسط سے ٹوٹ جاتی ہے اور اوسط کا مروجہ نمایاں طور پر نیچے ہوتا ہے تو ، نظام ایک خالی سگنل پیدا کرتا ہے۔
یہ ایک مقداری تجارتی حکمت عملی ہے جس میں رجحانات کی پیروی اور خطرے کے انتظام کا ایک نامیاتی امتزاج ہے۔ اس حکمت عملی میں مارکیٹ کے رجحانات کو باہمی مساوات کے نظام اور اسکیلپنگ کی قیمتوں کا تعین کے ساتھ مل کر زیادہ درست طریقے سے پکڑنے کی صلاحیت ہے ، جبکہ متحرک اسٹاپ نقصان کا طریقہ کار بہتر خطرے کا کنٹرول فراہم کرتا ہے۔ اگرچہ اس حکمت عملی میں پیرامیٹرز کے انتخاب اور مارکیٹ میں موافقت کے لحاظ سے بہتری کی گنجائش موجود ہے ، لیکن اس کے واضح منطقی فریم ورک اور لچکدار نظام پیرامیٹرز کو بعد میں بہتر بنانے کے لئے ایک اچھی بنیاد فراہم کرتے ہیں۔
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("SMA Buy/Sell Strategy with Significant Slope", overlay=true)
// Parametri configurabili
smaPeriod = input.int(20, title="SMA Period", minval=1)
initialTPPercent = input.float(5.0, title="Initial Take Profit (%)", minval=0.1) // Take Profit iniziale (ambizioso)
trailingSLPercent = input.float(1.0, title="Trailing Stop Loss (%)", minval=0.1) // Percentuale di trailing SL
slopeThreshold = input.float(0.05, title="Slope Threshold (%)", minval=0.01) // Soglia minima di pendenza significativa
// SMA calcolate su HIGH e LOW
smaHigh = ta.sma(high, smaPeriod)
smaLow = ta.sma(low, smaPeriod)
// Funzioni per pendenza significativa
isSignificantSlope(sma, threshold) =>
math.abs(sma - sma[5]) / sma[5] > threshold / 100
slopePositive(sma) =>
sma > sma[1] and isSignificantSlope(sma, slopeThreshold)
slopeNegative(sma) =>
sma < sma[1] and isSignificantSlope(sma, slopeThreshold)
// Condizioni di BUY e SELL
buyCondition = close > smaHigh and low < smaHigh and close[1] < smaHigh and slopePositive(smaHigh)
sellCondition = close < smaLow and high > smaLow and close[1] > smaLow and slopeNegative(smaLow)
// Plot delle SMA
plot(smaHigh, color=color.green, linewidth=2, title="SMA 20 High")
plot(smaLow, color=color.red, linewidth=2, title="SMA 20 Low")
// Gestione TP/SL dinamici
longInitialTP = strategy.position_avg_price * (1 + initialTPPercent / 100)
shortInitialTP = strategy.position_avg_price * (1 - initialTPPercent / 100)
// Trailing SL dinamico
longTrailingSL = close * (1 - trailingSLPercent / 100)
shortTrailingSL = close * (1 + trailingSLPercent / 100)
// Chiusura di posizioni attive su segnali opposti
if strategy.position_size > 0 and sellCondition
strategy.close("Buy", comment="Close Long on Sell Signal")
if strategy.position_size < 0 and buyCondition
strategy.close("Sell", comment="Close Short on Buy Signal")
// Apertura di nuove posizioni con TP iniziale e Trailing SL
if buyCondition
strategy.entry("Buy", strategy.long, comment="Open Long")
strategy.exit("Long TP/Trailing SL", from_entry="Buy", limit=longInitialTP, stop=longTrailingSL)
if sellCondition
strategy.entry("Sell", strategy.short, comment="Open Short")
strategy.exit("Short TP/Trailing SL", from_entry="Sell", limit=shortInitialTP, stop=shortTrailingSL)