
रणनीति एक गतिशील अस्थिरता-आधारित समय ट्रेडिंग प्रणाली है, जिसमें रुझान ट्रैकिंग और जोखिम प्रबंधन शामिल हैं। रणनीति का मुख्य उद्देश्य बाजार के रुझान में बदलाव को पहचानना है, जबकि एटीआर-आधारित गतिशील स्थिति प्रबंधन तंत्र को पेश किया गया है, जिससे व्यापार जोखिम पर सटीक नियंत्रण प्राप्त होता है। यह रणनीति विशेष रूप से अस्थिर बाजार के वातावरण में काम करने के लिए उपयुक्त है, जो बाजार में उतार-चढ़ाव को समायोजित करने और स्थिति को समायोजित करने में सक्षम है।
रणनीति का मूल तर्क निम्नलिखित प्रमुख घटकों पर आधारित है:
यह एक पूर्ण व्यापार प्रणाली है जो अस्थिरता, रुझान ट्रैकिंग और जोखिम प्रबंधन को जोड़ती है। रणनीति अस्थिरता चैनल के माध्यम से रुझान में परिवर्तन को पकड़ती है, जबकि वैज्ञानिक धन प्रबंधन विधियों का उपयोग करके जोखिम को नियंत्रित करती है। हालांकि अस्थिर बाजार में प्रदर्शन खराब हो सकता है, उचित पैरामीटर अनुकूलन और अतिरिक्त फ़िल्टरिंग तंत्र के माध्यम से, यह अधिकांश बाजार स्थितियों में स्थिर रूप से संचालित करने में सक्षम है। रणनीति की मुख्य ताकत इसकी अनुकूलनशीलता और जोखिम नियंत्रण क्षमता में है, जो सहकारी मध्यम और दीर्घकालिक रणनीतियों के लिए बुनियादी ढांचे के विस्तार और अनुकूलन के लिए उपयुक्त है।
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-10 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("BNF FUT 5 min Volatility Strategy", overlay=true)
// Inputs
length = input.int(20, "Length", minval=2)
src = input.source(close, "Source")
factor = input.float(2.0, "Multiplier", minval=0.25, step=0.25)
initial_capital = input.float(100000, "Initial Capital ($)")
risk_per_trade = input.float(1.0, "Risk per Trade (%)", minval=0.1, maxval=10.0)
// Volatility Stop Function
volStop(src, atrlen, atrfactor) =>
if not na(src)
var max = src
var min = src
var uptrend = true
var float stop = na
atrM = nz(ta.atr(atrlen) * atrfactor, ta.tr)
max := math.max(max, src)
min := math.min(min, src)
stop := nz(uptrend ? math.max(stop, max - atrM) : math.min(stop, min + atrM), src)
uptrend := src - stop >= 0.0
if uptrend != nz(uptrend[1], true)
max := src
min := src
stop := uptrend ? max - atrM : min + atrM
[stop, uptrend]
// Calculate Volatility Stop
[vStop, uptrend] = volStop(src, length, factor)
// Plot Volatility Stop
plot(vStop, "Volatility Stop", style=plot.style_cross, color=uptrend ? #009688 : #F44336)
// Risk Management and Position Sizing
atr = ta.atr(length)
stop_distance = math.abs(close - vStop) // Distance to stop level
position_size = (initial_capital * (risk_per_trade / 100)) / stop_distance // Position size based on risk per trade
position_size := math.max(position_size, 1) // Ensure minimum size of 1
// Strategy Logic
if not na(vStop)
if uptrend and not uptrend[1] // Transition to uptrend
strategy.close("Short")
strategy.entry("Long", strategy.long, qty=position_size)
if not uptrend and uptrend[1] // Transition to downtrend
strategy.close("Long")
strategy.entry("Short", strategy.short, qty=position_size)
// Exit on Stop Hit
if strategy.position_size > 0 and low < vStop // Exit long if stop hit
strategy.close("Long", comment="Stop Hit")
if strategy.position_size < 0 and high > vStop // Exit short if stop hit
strategy.close("Short", comment="Stop Hit")
if (hour == 15 and minute == 15)
strategy.close_all()