
इस रणनीति का मुख्य विचार व्यापार क्षेत्र के निचले बिंदु पर खरीदना और व्यापार क्षेत्र के उच्च बिंदु पर बेचना है, जबकि जोखिम को सख्ती से नियंत्रित किया जाता है।
अस्थायी संकेतकों पर आधारित अस्थिरता क्षेत्र ट्रेडिंग रणनीति पहले से निर्धारित व्यापार क्षेत्र के भीतर व्यापार को ट्रिगर करने के लिए अस्थायी संकेतकों के ओवरबॉय और ओवरसोल सिग्नल का उपयोग करने का प्रयास करती है। यह रणनीति सख्त जोखिम प्रबंधन और ट्रेडिंग अंतराल के माध्यम से जोखिम को नियंत्रित करती है। हालांकि इस रणनीति के कुछ फायदे हैं, इसकी सफलता काफी हद तक ट्रेडिंग क्षेत्रों की सही पहचान पर निर्भर करती है। भविष्य के अनुकूलन दिशा में अन्य तकनीकी संकेतकों के संयोजन, गतिशील स्टॉप-लॉस को लागू करना, अधिक उन्नत क्षेत्र पहचान तकनीक का उपयोग करना और ट्रेंड फिल्टर जोड़ना शामिल है।
/*backtest
start: 2023-06-11 00:00:00
end: 2024-06-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Range Trading with Stochastic", overlay=true)
// Input Parameters
overboughtLevel = input.int(80, title="Overbought Level", minval=1, maxval=100)
oversoldLevel = input.int(20, title="Oversold Level", minval=1, maxval=100)
stochLength = input.int(14, title="Stochastic Length", minval=1)
riskPerTrade = input.float(0.01, title="Risk per Trade (%)", minval=0.01, maxval=100, step=0.01)
barsBetweenTrades = input.int(20, title="Bars Between Trades", minval=1)
// Calculate Stochastic Oscillator
k = ta.sma(ta.stoch(close, high, low, stochLength), 3)
d = ta.sma(k, 3)
// Variables to Track Time Since Last Trade
var lastTradeBar = 0
barsSinceLastTrade = bar_index - lastTradeBar
// Risk Management
atr = ta.atr(14)
stopLoss = 2 * atr
takeProfit = 2 * atr
riskAmount = strategy.equity * riskPerTrade / 100
positionSize = 1
// Entry Conditions
longCondition = k < oversoldLevel and strategy.position_size == 0 and barsSinceLastTrade >= barsBetweenTrades
shortCondition = k > overboughtLevel and strategy.position_size == 0 and barsSinceLastTrade >= barsBetweenTrades
// Entry/Exit Orders
if longCondition
strategy.entry("Long", strategy.long, qty=positionSize)
strategy.exit("Long Exit", "Long", stop=close - stopLoss, limit=close + takeProfit)
lastTradeBar := bar_index // Update last trade bar
if shortCondition
strategy.entry("Short", strategy.short, qty=positionSize)
strategy.exit("Short Exit", "Short", stop=close + stopLoss, limit=close - takeProfit)
lastTradeBar := bar_index // Update last trade bar
// Plot Stochastic
plot(k, color=color.blue, title="%K")
plot(d, color=color.orange, title="%D")
hline(overboughtLevel, color=color.red, title="Overbought")
hline(oversoldLevel, color=color.green, title="Oversold")