
यह रणनीति एक द्वि-समान रेखा आधारित बुद्धिमान प्रवृत्ति ट्रैकिंग प्रणाली है, जो उच्च और निचले बिंदुओं के लिए एक चलती औसत और एक झुकाव सूचक की गणना करके बाजार की प्रवृत्ति की पहचान करती है, और गतिशील स्टॉप-स्टॉप-लॉस तंत्र के साथ संयोजन में जोखिम प्रबंधन करती है। रणनीति का मूल झुकाव थ्रेशोल्ड के माध्यम से झूठे संकेतों को फ़िल्टर करने में है, जबकि ट्रेलिंग स्टॉप गतिशील ट्रैकिंग विधि का उपयोग करके मुनाफे को लॉक करने के लिए, ट्रेंड ट्रैकिंग और जोखिम नियंत्रण के जैविक संयोजन को लागू करता है।
रणनीति एक द्वि-समानता प्रणाली को एक केंद्रीय व्यापारिक तर्क के रूप में अपनाती है, जो क्रमशः उच्चतम और निम्नतम मूल्य अनुक्रमों पर एक चलती औसत की गणना करती है। जब कीमत ऊपरी औसत रेखा को तोड़ती है और औसत रेखा की ढलान काफी ऊपर होती है, तो सिस्टम कई संकेत उत्पन्न करता है; जब कीमत नीचे की ओर औसत रेखा को तोड़ती है और औसत रेखा की ढलान काफी नीचे होती है, तो सिस्टम एक शून्य संकेत उत्पन्न करता है। अस्थिर बाजार में लगातार व्यापार से बचने के लिए, रणनीति में एक ढलान मूल्य घटाने की प्रणाली पेश की जाती है, केवल तभी ट्रेंड की प्रभावशीलता की पुष्टि की जाती है जब औसत रेखा की ढलान में परिवर्तन सेट थ्रेशोल्ड से अधिक होता है। जोखिम प्रबंधन के मामले में, रणनीति गतिशील स्टॉप-लॉस तंत्र को डिजाइन करती है, शुरू में अपेक्षाकृत आक्रामक स्टॉप-लॉस लक्ष्य निर्धारित करती है, जबकि स्टॉप-लॉस सुरक्षा का उपयोग करके प्राप्त किए गए लाभ को ट्रैक करती है।
यह एक मात्रात्मक ट्रेडिंग रणनीति है जो प्रवृत्ति ट्रैकिंग और जोखिम प्रबंधन को व्यवस्थित रूप से जोड़ती है। द्वि-समानता प्रणाली और स्केलेबिलिटी थ्रॉल्ड के संयोजन के माध्यम से, रणनीति बाजार की प्रवृत्ति को अधिक सटीक रूप से पकड़ने में सक्षम है, जबकि गतिशील स्टॉप-स्टॉप-लॉस तंत्र बेहतर जोखिम नियंत्रण प्रदान करता है। हालांकि रणनीति में पैरामीटर चयन और बाजार अनुकूलनशीलता के मामले में सुधार की गुंजाइश है, लेकिन इसके स्पष्ट तार्किक ढांचे और लचीले सिस्टम पैरामीटर के लिए बाद में अनुकूलन के लिए एक अच्छा आधार प्रदान करते हैं।
/*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)