
यह रणनीति दोहरे मूविंग औसत क्रॉसओवर संकेतों पर आधारित एक प्रवृत्ति ट्रैकिंग प्रणाली है, जो गतिशील स्टॉप-प्रॉफिट और स्टॉप-लॉस तंत्र के साथ संयुक्त है। यह रणनीति व्यापारिक संकेत उत्पन्न करने के लिए 5-अवधि और 12-अवधि के सरल मूविंग औसत (एसएमए) का उपयोग करती है और लाभ-प्राप्ति तथा हानि-समाप्ति स्तरों को गतिशील रूप से समायोजित करके जोखिम-वापसी अनुपात को अनुकूलित करती है। प्रारंभिक लाभ-प्राप्ति 10% पर सेट की जाती है और स्टॉप-लॉस 5% पर सेट किया जाता है। जब कीमत अनुकूल दिशा में आगे बढ़ती है, तो लाभ-प्राप्ति स्तर को 20% पर समायोजित किया जाता है और स्टॉप-लॉस को 2.5% तक कड़ा किया जाता है लाभ की रक्षा के लिए.
रणनीति का मुख्य तर्क तीव्र गतिमान औसत (5 अवधि) और धीमी गतिमान औसत (12 अवधि) के बीच क्रॉसओवर संबंध पर आधारित है। जब तेज रेखा नीचे से ऊपर की ओर धीमी रेखा को पार करती है, तो सिस्टम एक लंबा सिग्नल उत्पन्न करता है और स्थिति खोलता है; जब तेज रेखा ऊपर से नीचे की ओर धीमी रेखा को पार करती है, तो सिस्टम स्थिति को बंद कर देता है। रणनीति की विशिष्टता इसकी गतिशील जोखिम प्रबंधन प्रणाली में निहित है: एक बार स्थिति स्थापित हो जाने पर, सिस्टम वास्तविक समय में मूल्य प्रवृत्तियों की निगरानी करेगा और जोखिमों को नियंत्रित करते हुए लाभ को अधिकतम करने के लिए मूल्य परिवर्तनों के अनुसार लाभ-लेने और हानि-रोक के स्तरों को गतिशील रूप से समायोजित करेगा। .
यह रणनीति क्लासिक मूविंग एवरेज क्रॉसओवर संकेतों को नवीन गतिशील जोखिम प्रबंधन तंत्रों के साथ संयोजित करके रुझानों की प्रभावी समझ और जोखिमों के गतिशील नियंत्रण को प्राप्त करती है। रणनीति डिजाइन अवधारणा स्पष्ट है, कार्यान्वयन विधि संक्षिप्त और प्रभावी है, और इसमें अच्छी व्यावहारिकता और मापनीयता है। निरंतर अनुकूलन और सुधार के माध्यम से, इस रणनीति से वास्तविक लेनदेन में स्थिर लाभ प्रदर्शन प्राप्त होने की उम्मीद है।
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("My Moving Average Crossover Strategy with Take Profit and Stop Loss", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
//risk_free_rate = float(request.security("IRUS", "D", close)/request.security("IRUS", "D", close[1]) - 1 ))
// MA periods
fastLength = input.int(5, title="Fast MA Length")
slowLength = input.int(12, title="Slow MA Length")
// Take Profit and Stop Loss
takeProfitLevel = input(10, title="Take Profit (пункты)") // Take profit % from the last price
stopLossLevel = input(5, title="Stop Loss (пункты)") // Stop loss % from the last price
takeProfitLevel_dyn = input(20, title="Dynamic Take Profit (пункты)") // Move TP if current_price higher buy_px
stopLossLevel_dyn = input(2.5, title="Dynamic Stop Loss (пункты)") // S Move SL if current_price higher buy_px
// Вычисление скользящих средних
fastMA = ta.sma(close, fastLength)
slowMA= ta.sma(close, slowLength)
// Conditions for Sell and Buy
longCondition = ta.crossover (fastMA, slowMA) // покупаем, если короткая MA персекает длинную снизу-вверх
shortCondition = ta.crossunder(fastMA, slowMA) // продаем, если короткая MA персекает длинную сверху-вниз
// Buy position condition
if (longCondition)
strategy.entry("Buy", strategy.long)
// Dynamic TP SL leveles
takeProfitPrice = strategy.position_avg_price * (1+ takeProfitLevel / 100)
stopLossPrice = strategy.position_avg_price * (1-stopLossLevel / 100)
entryPrice = strategy.position_avg_price
if (strategy.position_size > 0) // если есть открытая позиция
// takeProfitPrice := entryPrice * (1+ takeProfitLevel / 100)
// stopLossPrice := entryPrice * (1-stopLossLevel / 100)
// // Перемещение Stop Loss и Take Profit
if (close > entryPrice)
takeProfitPrice := close * (1+ takeProfitLevel_dyn / 100)
stopLossPrice := close * (1- stopLossLevel_dyn/ 100)
if (shortCondition)
strategy.close("Buy")
strategy.exit("Take Profit/Stop loss", "Buy", limit=takeProfitPrice, stop=stopLossPrice)
// Drawing MA lines
plot(fastMA, color=color.blue, title="Fast Moving Average")
plot(slowMA, color=color.orange, title="Slow Moving Average")
// Визуализация
plot(longCondition ? na : takeProfitPrice, title="Take Profit Level", color=color.green, linewidth=1, style=plot.style_line)
plot(longCondition ? na: stopLossPrice, title="Stop Loss Level", color=color.red, linewidth=1, style=plot.style_line)