یہ حکمت عملی دوہری چلتی اوسطوں پر مبنی ایک ذہین رجحان کی پیروی کرنے والا نظام ہے ، جو مائل اشارے کے ساتھ ساتھ اونچائیوں اور نچلی سطحوں کے چلتے ہوئے اوسطوں کا حساب کتاب کرکے مارکیٹ کے رجحانات کی نشاندہی کرتا ہے ، جو خطرے کے انتظام کے لئے متحرک منافع لینے اور اسٹاپ نقصان کے میکانزم کے ساتھ مل کر ہے۔ حکمت عملی کا بنیادی مقصد مائل کی حد کے ذریعے غلط سگنل کو فلٹر کرنا ہے جبکہ منافع میں مقفل ہونے کے لئے ٹریلنگ اسٹاپ کا استعمال کرتے ہوئے ، رجحان کی پیروی اور خطرے کے کنٹرول کا ایک نامیاتی امتزاج حاصل کرنا ہے۔
یہ حکمت عملی ایک دوہری حرکت پذیر اوسط نظام کو اپنے بنیادی تجارتی منطق کے طور پر استعمال کرتی ہے ، جو اعلی اور کم قیمتوں کی سیریز دونوں پر حرکت پذیر اوسط کا حساب لگاتی ہے۔ جب قیمت نمایاں طور پر مثبت ڈھلوان کے ساتھ اوپری اوسط سے اوپر ہوتی ہے تو لانگ سگنل پیدا ہوتے ہیں ، جبکہ مختصر سگنل اس وقت ہوتے ہیں جب قیمت نمایاں طور پر منفی ڈھلوان کے ساتھ نچلے اوسط سے نیچے ہوتی ہے۔ آسکیلیٹنگ مارکیٹوں میں کثرت سے تجارت سے بچنے کے لئے ، اس حکمت عملی میں ڈھلوان کی حد کا میکانزم شامل ہوتا ہے ، جو صرف اس وقت رجحان کی موزونیت کی تصدیق کرتا ہے جب حرکت پذیر اوسط ڈھلوان کی تبدیلی مقررہ حد سے تجاوز کرتی ہے۔ رسک مینجمنٹ کے لئے ، حکمت عملی متحرک منافع لینے اور اسٹاپ نقصان کے میکانزم کو نافذ کرتی ہے ، ابتدائی طور پر جارحانہ منافع کے اہداف کا استعمال کرتے ہوئے حاصل کردہ منافع کو بچانے کے لئے ٹریلنگ اسٹاپس کا تعین کرتی ہے۔
یہ ایک مقداری تجارتی حکمت عملی ہے جو رجحان کی پیروی اور رسک مینجمنٹ کو نامیاتی طور پر جوڑتی ہے۔ دوہری حرکت پذیر اوسط نظام اور ڈھلوان کی حد کے تعاون سے ، حکمت عملی مارکیٹ کے رجحانات کو درست طریقے سے پکڑ سکتی ہے ، جبکہ متحرک منافع لینے اور اسٹاپ نقصان کے میکانزم جامع رسک کنٹرول فراہم کرتے ہیں۔ اگرچہ پیرامیٹر کے انتخاب اور مارکیٹ میں موافقت میں بہتری کی گنجائش ہے ، لیکن اس کا واضح منطقی فریم ورک اور لچکدار پیرامیٹر سسٹم بعد میں اصلاح کی اچھی بنیاد فراہم کرتا ہے۔ یہ تجویز کیا جاتا ہے کہ تاجروں کو براہ راست تجارت میں حکمت عملی کا اطلاق کرتے وقت مخصوص مارکیٹ کی خصوصیات اور اپنی خطرہ ترجیحات کے مطابق مختلف پیرامیٹرز کو مکمل طور پر بیک ٹیسٹ اور بہتر بنائیں۔
/*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)