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