
यह रणनीति क्रिप्टोक्यूरेंसी बाजारों के लिए एक सरल चलती औसत (एसएमए) क्रॉसिंग रणनीति है। यह संभावित प्रवेश और निकास संकेतों की पहचान करने के लिए एसएमए के तीन सेटों का उपयोग करता है - तेज, मध्यम और धीमी गति से। जब तेज एसएमए ऊपर से मध्यम एसएमए को पार करता है, तो एक खरीद संकेत उत्पन्न होता है; जब तेज एसएमए नीचे से मध्यम एसएमए को पार करता है, तो एक बिक्री संकेत उत्पन्न होता है।
रणनीति ट्रेडरों को निम्नलिखित महत्वपूर्ण पैरामीटर सेट करने की अनुमति देती हैः
उपयोगकर्ता द्वारा निर्धारित SMA लंबाई के आधार पर, तेजी से SMA, मध्यम SMA और धीमी SMA की गणना की जाती है।
जब तेज एसएमए ऊपर से मध्यम एसएमए पार करता है, तो एक खरीद संकेत उत्पन्न होता है; जब तेज एसएमए नीचे से मध्यम एसएमए पार करता है, तो एक बिक्री संकेत उत्पन्न होता है।
इस रणनीति में खाते की धनराशि और प्रत्येक लेनदेन के लिए जोखिम का अनुपात जोड़ा जाता है, जिससे प्रत्येक लेनदेन के लिए नाममात्र पूंजी की गणना की जाती है। इसके बाद, एटीआर के साथ मिलकर स्टॉप लॉस की गणना की जाती है, जिससे प्रत्येक लेनदेन के लिए विशिष्ट स्थिति निर्धारित की जाती है।
एसएमए चक्र को उचित रूप से छोटा करके, अन्य संकेतकों की सहायता से अनुकूलित किया जा सकता है।
यह रणनीति एसएमए क्रॉस निर्णय, जोखिम प्रबंधन और स्थिति अनुकूलन के कई कार्यों को एकीकृत करती है, जो क्रिप्टोकरेंसी बाजार के लिए उपयुक्त एक प्रवृत्ति ट्रैकिंग रणनीति है। व्यापारी अपनी ट्रेडिंग शैली, बाजार की स्थिति आदि के आधार पर पैरामीटर को समायोजित कर सकते हैं और अनुकूलन लागू कर सकते हैं।
/*backtest
start: 2024-01-05 00:00:00
end: 2024-02-04 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Onchain Edge Trend SMA Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// Configuration Parameters
priceSource = input(close, title="Price Source")
includeIncompleteBars = input(true, title="Consider Incomplete Bars")
maForecastMethod = input(defval="flat", options=["flat", "linreg"], title="Moving Average Prediction Method")
linearRegressionLength = input(3, title="Linear Regression Length")
fastMALength = input(7, title="Fast Moving Average Length")
mediumMALength = input(30, title="Medium Moving Average Length")
slowMALength = input(50, title="Slow Moving Average Length")
tradingCapital = input(100000, title="Trading Capital")
tradeRisk = input(1, title="Trade Risk (%)")
// Calculation of Moving Averages
calculateMA(source, period) => sma(source, period)
predictMA(source, forecastLength, regressionLength) =>
maForecastMethod == "flat" ? source : linreg(source, regressionLength, forecastLength)
offset = includeIncompleteBars ? 0 : 1
actualSource = priceSource[offset]
fastMA = calculateMA(actualSource, fastMALength)
mediumMA = calculateMA(actualSource, mediumMALength)
slowMA = calculateMA(actualSource, slowMALength)
// Trading Logic
enterLong = crossover(fastMA, mediumMA)
exitLong = crossunder(fastMA, mediumMA)
// Risk and Position Sizing
riskCapital = tradingCapital * tradeRisk / 100
lossThreshold = atr(14) * 2
tradeSize = riskCapital / lossThreshold
if (enterLong)
strategy.entry("Enter Long", strategy.long, qty=tradeSize)
if (exitLong)
strategy.close("Enter Long")
// Display Moving Averages
plot(fastMA, color=color.blue, linewidth=2, title="Fast Moving Average")
plot(mediumMA, color=color.purple, linewidth=2, title="Medium Moving Average")
plot(slowMA, color=color.red, linewidth=2, title="Slow Moving Average")