यह रणनीति दोहरी चलती औसत क्रॉसओवर संकेतों पर आधारित एक मात्रात्मक ट्रेडिंग प्रणाली है, जो जोखिम नियंत्रण के लिए गतिशील स्टॉप-लॉस और टेक-प्रॉफिट प्रबंधन के साथ संयुक्त अल्पकालिक और दीर्घकालिक चलती औसत के चौराहे के माध्यम से बाजार की प्रवृत्ति परिवर्तनों की पहचान करती है। यह रणनीति व्यापार के लिए बाजार के आदेशों का उपयोग करती है, स्वचालित रूप से संकेतों को ट्रिगर करने पर मौजूदा पदों को बंद करती है और नई पदों को खोलती है, और स्टॉप-लॉस और टेक-प्रॉफिट स्तरों को निर्धारित करके पूंजी सुरक्षा की रक्षा करती है।
यह रणनीति व्यापार संकेतों के लिए मुख्य आधार के रूप में विभिन्न अवधियों के दो सरल चलती औसत (एसएमए) का उपयोग करती है। एक लंबा संकेत तब उत्पन्न होता है जब अल्पकालिक एमए दीर्घकालिक एमए के ऊपर पार हो जाता है, और एक छोटा संकेत तब उत्पन्न होता है जब अल्पकालिक एमए दीर्घकालिक एमए के नीचे पार हो जाता है। सिग्नल होने पर सिस्टम वर्तमान स्थिति की स्थिति की जांच करता है, पहले किसी भी काउंटर पोजीशन को बंद करता है, फिर संकेत दिशा के अनुसार नई पोजीशन खोलता है। प्रत्येक व्यापार स्वचालित रूप से पूर्व निर्धारित प्रतिशत के आधार पर स्टॉप-लॉस और टेक-प्रॉफिट स्तर निर्धारित करता है, जिससे जोखिम-इनाम अनुपात का गतिशील प्रबंधन प्राप्त होता है।
यह स्पष्ट तर्क के साथ एक व्यापक मात्रात्मक ट्रेडिंग रणनीति है। यह दोहरे एमए क्रॉसओवर के माध्यम से प्रवृत्ति परिवर्तनों को पकड़ती है और गतिशील स्टॉप-लॉस और ले-प्रॉफिट स्तरों के साथ जोखिम का प्रबंधन करती है। रणनीति की ताकत इसके व्यवस्थित दृष्टिकोण और जोखिम नियंत्रण में निहित है, लेकिन लाइव ट्रेडिंग में विभिन्न बाजार जोखिमों पर ध्यान दिया जाना चाहिए। निरंतर अनुकूलन और सुधार के माध्यम से, रणनीति विभिन्न बाजार वातावरण में स्थिर प्रदर्शन बनाए रख सकती है। लाइव कार्यान्वयन से पहले गहन बैकटेस्टिंग करने और वास्तविक परिस्थितियों के अनुसार मापदंडों को समायोजित करने की सिफारिश की जाती है।
/*backtest start: 2024-10-01 00:00:00 end: 2024-10-31 23:59:59 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("BTCUSD Daily Strategy - Market Orders Only", overlay=true, initial_capital=10000, currency=currency.USD) // Configurable Inputs stop_loss_percent = input.float(title="Stop Loss (%)", defval=1.0, minval=0.0, step=0.1) take_profit_percent = input.float(title="Take Profit (%)", defval=2.0, minval=0.0, step=0.1) short_ma_length = input.int(title="Short MA Length", defval=9, minval=1) long_ma_length = input.int(title="Long MA Length", defval=21, minval=1) // Moving Averages short_ma = ta.sma(close, short_ma_length) long_ma = ta.sma(close, long_ma_length) // Plotting Moving Averages plot(short_ma, color=color.blue, title="Short MA") plot(long_ma, color=color.red, title="Long MA") // Buy and Sell Signals buy_signal = ta.crossover(short_ma, long_ma) sell_signal = ta.crossunder(short_ma, long_ma) // Market Buy Logic if (buy_signal and strategy.position_size <= 0) // Close any existing short position if (strategy.position_size < 0) strategy.close(id="Market Sell") // Calculate Stop Loss and Take Profit Prices entry_price = close long_stop = entry_price * (1 - stop_loss_percent / 100) long_take_profit = entry_price * (1 + take_profit_percent / 100) // Enter Long Position strategy.entry(id="Market Buy", direction=strategy.long) strategy.exit(id="Exit Long", from_entry="Market Buy", stop=long_stop, limit=long_take_profit) // Alert for Market Buy alert("Market Buy Signal at price " + str.tostring(close) + ". Stop Loss: " + str.tostring(long_stop) + ", Take Profit: " + str.tostring(long_take_profit), alert.freq_once_per_bar_close) // Market Sell Logic if (sell_signal and strategy.position_size >= 0) // Close any existing long position if (strategy.position_size > 0) strategy.close(id="Market Buy") // Calculate Stop Loss and Take Profit Prices entry_price = close short_stop = entry_price * (1 + stop_loss_percent / 100) short_take_profit = entry_price * (1 - take_profit_percent / 100) // Enter Short Position strategy.entry(id="Market Sell", direction=strategy.short) strategy.exit(id="Exit Short", from_entry="Market Sell", stop=short_stop, limit=short_take_profit) // Alert for Market Sell alert("Market Sell Signal at price " + str.tostring(close) + ". Stop Loss: " + str.tostring(short_stop) + ", Take Profit: " + str.tostring(short_take_profit), alert.freq_once_per_bar_close)