
सूचकांक चलती औसत क्रॉसिंग स्मार्ट स्प्रिंग चेन स्टॉप ट्रैकिंग सिस्टम एक मात्रात्मक ट्रेडिंग रणनीति है जो तकनीकी विश्लेषण और परिष्कृत धन प्रबंधन पर आधारित है। यह रणनीति सूचकांक चलती औसत ((EMA) क्रॉसिंग सिग्नल का उपयोग करके संभावित उछाल की पहचान करती है, डॉलर की लागत औसत ((DCA) के साथ संयोजन करती है, और डबल-ट्रैकिंग स्टॉप लॉस तंत्र के माध्यम से लाभ की रक्षा करती है। रणनीति का मुख्य भाग यह है कि यह तेजी से ईएमए और धीमी ईएमए के क्रॉसिंग का उपयोग करके प्रवेश का समय निर्धारित करता है, जब कीमतें गिरती हैं तो स्वचालित रूप से दो सुरक्षा आदेशों को तैनात करता है ((सुरक्षा आदेश), औसत वास्तविक अस्थिरता रेंज ((एटीआर) या निश्चित प्रतिशत गणना के माध्यम से स्टॉप स्थान, और डबल-लेयर स्टॉप लॉस सिस्टम स्टैंडर्ड्स ((स्टॉप लॉस और लॉकिंग प्रॉफिट स्टॉप लॉस) का उपयोग करके धन की रक्षा करता है। यह रणनीति एक एग्रीगेटर के रूप में भी काम करती है, जो ट्रेडर्स के लिए एक पूर्ण जोखिम प्रबंधन और पूंजी
इस रणनीति के काम करने के सिद्धांत कुछ प्रमुख घटकों पर आधारित हैंः
रुझान पहचान तंत्रसंभावित उछाल की पहचान करने के लिए तेजी से ईएमए (डिफ़ॉल्ट 9 चक्र) और धीमी गति से ईएमए (डिफ़ॉल्ट 21 चक्र) के क्रॉस का उपयोग करें। जब तेजी से ईएमए ऊपर की ओर धीमी गति से ईएमए को पार करता है, तो सिस्टम एक खरीद संकेत उत्पन्न करता है।
मूल आदेश और सुरक्षा आदेश: रणनीति एक स्तरित धन प्रबंधन पद्धति का उपयोग करती है, जो मूल आदेश से शुरू होती है (डिफ़ॉल्ट \( 1000) और दो अतिरिक्त सुरक्षा आदेश जोड़ती है जब कीमतें गिरती हैं (डिफ़ॉल्ट \) 1250 SO1, $ 1750 SO2) ।
गतिशील अंतराल गणनासुरक्षा आदेश के लिए ट्रिगर मूल्य की गणना दो तरीकों से की जा सकती हैः
डबल ट्रैकिंग स्टॉप लॉस सिस्टम:
बाहर निकलने की शर्तेंयह रणनीति निम्नलिखित स्थितियों में लागू होती हैः
शीतलन अवधि और दिनांक फ़िल्टर: रणनीति में मूल आदेश के बाद एक शीतलन अवधि शामिल है (डिफ़ॉल्ट 4 घंटे) और एक वैकल्पिक तिथि फ़िल्टर, एक विशिष्ट समय अवधि के लिए पुनः माप या निष्पादन को सीमित करने के लिए।
इस रणनीति के कोड का गहराई से विश्लेषण करते हुए, हम निम्नलिखित प्रमुख लाभों को संक्षेप में बता सकते हैंः
अनुकूली निधि प्रबंधन: रणनीति डॉलर लागत औसत को गतिशील सुरक्षा आदेशों के साथ जोड़ती है और स्वचालित रूप से बाजार की स्थितियों के अनुसार स्थिति को समायोजित करती है। यह विधि विशेष रूप से अस्थिर बाजारों में प्रभावी है, जो औसत प्रवेश मूल्य को कम करने और संभावित लाभ को बढ़ाने में सक्षम है।
अस्थिरता के आधार पर स्थिति समायोजनएटीआर के माध्यम से सुरक्षित ऑर्डर की स्थिति की गणना करके, रणनीति को वर्तमान बाजार में उतार-चढ़ाव के आधार पर स्वचालित रूप से बढ़ी हुई स्थिति को समायोजित करने की अनुमति मिलती है, जो एक निश्चित प्रतिशत पद्धति की तुलना में अधिक लचीला है।
दोहरी मुनाफा सुरक्षाडबल ट्रैक स्टॉप सिस्टम एक अभिनव जोखिम प्रबंधन प्रदान करता है, मानक ट्रैक स्टॉप अधिकांश धन की सुरक्षा करता है, जबकि एक विशिष्ट लाभ लक्ष्य प्राप्त करने के बाद सक्रिय होने वाले लाभ-लॉकिंग तंत्र, प्राप्त लाभ को अधिक तंग प्रतिशत के साथ संरक्षित करता है।
पूरी तरह से अनुकूलन योग्य: सभी महत्वपूर्ण पैरामीटर (ईएमए लंबाई, ऑर्डर आकार, ट्रैक स्टॉप लॉस प्रतिशत, सुरक्षित ऑर्डर अंतराल) ट्रेडर की जोखिम वरीयताओं और बाजार की स्थितियों के आधार पर समायोजित किए जा सकते हैं।
एकीकृत पूर्व चेतावनी प्रणाली: रणनीति में प्रारूपित पूर्व चेतावनी शर्तें शामिल हैं और तीसरे पक्ष के स्वचालन प्लेटफार्मों (जैसे 3Commas) के साथ पूरी तरह से स्वचालित लेनदेन के लिए एकीकृत किया जा सकता है।
पारदर्शी भर्ती जानकारी: इसमें एक विस्तृत प्रक्षेपण तालिका है जो प्रमुख व्यापारिक संकेतकों और स्थिति को प्रदर्शित करती है, जो वास्तविक समय की निगरानी और रणनीति अनुकूलन की सुविधा प्रदान करती है।
हालांकि इस रणनीति के कई फायदे हैं, इसके साथ कुछ संभावित जोखिम भी हैं:
समाधान: ट्रैक स्टॉप लॉस प्रतिशत और सुरक्षा ऑर्डर की अवधि को विशिष्ट ट्रेडिंग प्रकार और समय सीमा के अनुसार समायोजित करें; अतिरिक्त सुरक्षा परत के रूप में वैश्विक स्टॉप लॉस जोड़ने पर विचार करें।
समाधान: विशिष्ट व्यापार प्रकारों और बाजार स्थितियों के लिए विस्तृत प्रतिक्रिया और अनुकूलन; अनुकूलन पैरामीटर समायोजन तंत्र लागू करना
समाधान: अधिक लचीले सुरक्षा आदेश ट्रिगर को लागू करने पर विचार करें, जैसे कि समय-आधारित अनिवार्य निष्पादन या विशिष्ट बाजार स्थितियों के तहत अंतराल को समायोजित करना।
*समाधान*ट्रेडिंग फ़िल्टर जोड़ें, जैसे कि अस्थिरता अवमूल्यन या प्रवृत्ति की ताकत की पुष्टि; ट्रेडिंग की आवृत्ति को कम करने के लिए शीतलन अवधि बढ़ाएं।
समाधान: एक बुनियादी फ़िल्टर या जोखिम भावना सूचक को एकीकृत करने पर विचार करें; एक पुष्टिकरण संकेत के रूप में क्रॉस-मार्केट प्रासंगिकता जांच जोड़ें।
नीति कोड के गहन विश्लेषण के आधार पर, कुछ संभावित अनुकूलन दिशाएं हैंः
अनुकूलन पैरामीटर समायोजन: बाजार की अस्थिरता या लेनदेन की मात्रा के आधार पर ईएमए की लंबाई और एटीआर गुणांक को स्वचालित रूप से समायोजित करने के लिए एक तंत्र को लागू करना। उदाहरण के लिए, उच्च अस्थिरता वाले वातावरण में लंबे ईएमए और बड़े एटीआर गुणांक का उपयोग करना, कम अस्थिरता वाले वातावरण में छोटे ईएमए और छोटे एटीआर गुणांक का उपयोग करना। यह विभिन्न बाजार स्थितियों में रणनीति की अनुकूलनशीलता को बढ़ाएगा।
बहु पुष्टि संकेत: अतिरिक्त पुष्टिकरण संकेतक जोड़ें, जैसे कि सापेक्ष कमजोरता सूचकांक ((आरएसआई), पारगमन या ब्रिन बैंड, झूठे संकेतों को कम करने के लिए। फ़िल्टर को लागू किया जा सकता है, जिसमें कई तकनीकी संकेतक एक साथ प्रवेश संकेतों की पुष्टि करते हैं, जिससे संकेत की गुणवत्ता में सुधार होता है।
गतिशील धन आवंटन: बाजार की स्थिति और ऐतिहासिक अस्थिरता के आधार पर आदेश आकार को समायोजित करें। उदाहरण के लिए, कम अस्थिरता या ऐतिहासिक रूप से अधिक संभावना वाले बाजार चरणों में आधार आदेश आकार में वृद्धि, जबकि उच्च जोखिम वाले वातावरण में कमी।
स्मार्ट बाहर निकलने की रणनीति: एक आंशिक लाभप्रदता तंत्र को लागू करना, जो एक बार के निकास के बजाय विभिन्न लाभ स्तरों पर धीरे-धीरे बाहर निकलने की अनुमति देता है। यह कई लाभ लक्ष्यों और उनके अनुरूप बाहर निकलने के प्रतिशत को स्थापित करके किया जा सकता है, जो जोखिम-लाभ अनुपात का अनुकूलन करता है।
भावनात्मक संकेतक एकीकरण: बाजार की भावना विश्लेषण जोड़ें, जैसे कि डर और लालच सूचकांक या ट्रेड वॉल्यूम विश्लेषण, प्रवेश और निकास के लिए एक अतिरिक्त फ़िल्टर के रूप में। यह रणनीति को चरम बाजार भावना के समय अनावश्यक ट्रेडिंग से बचने में मदद करेगा।
जोखिम जोखिम प्रबंधन: अधिकतम जोखिम जोखिम की गतिशील गणना करने की सुविधा को लागू करें (सभी संभावित सुरक्षा आदेशों का योग) और स्वीकार्य अधिकतम जोखिम सीमा निर्धारित करें। यह सुनिश्चित करेगा कि रणनीति किसी भी समय किसी भी एकल लेनदेन में धनराशि को अत्यधिक उजागर नहीं करती है।
सूचकांक चलती औसत क्रॉस स्मार्ट स्प्रिंकल स्टॉप ट्रैकिंग सिस्टम एक अच्छी तरह से डिज़ाइन की गई मात्रात्मक ट्रेडिंग रणनीति है, जो ट्रेंड डिटेक्शन, स्तरीकृत स्टॉप और उन्नत स्टॉप मैनेजमेंट को जोड़ती है। इसकी मुख्य ताकत बाजार में उतार-चढ़ाव के अनुकूल होने की क्षमता, स्मार्ट फंड मैनेजमेंट और डबल-लेयर प्रॉफिट प्रोटेक्शन सिस्टम में है। यह रणनीति विशेष रूप से मध्यम अस्थिरता वाले बाजार की स्थिति के लिए उपयुक्त है, जिसमें रुझानों में पर्याप्त निरंतरता और दिशा है।
उचित पैरामीटर अनुकूलन और सिफारिशों को बढ़ाने के साथ, रणनीति को और अधिक प्रदर्शन और स्थिरता में सुधार किया जा सकता है। विशेष रूप से, अनुकूलन पैरामीटर समायोजन और कई पुष्टि संकेतों से प्रवेश की गुणवत्ता में उल्लेखनीय सुधार हो सकता है, जबकि गतिशील धन आवंटन और स्मार्ट निकास रणनीतियों से रिस्क-रिटर्न विशेषताओं को अनुकूलित किया जा सकता है।
अंततः, यह रणनीति एक संतुलित, मात्रात्मक व्यापारिक दृष्टिकोण का प्रतिनिधित्व करती है, जो प्रति लेनदेन के लाभ को अधिकतम करने के बजाय धन की सुरक्षा और स्थिरता पर ध्यान केंद्रित करती है। यह व्यापारियों को एक मजबूत ढांचा प्रदान करता है, जो व्यक्तिगत जोखिम वरीयताओं और बाजार की स्थितियों के अनुसार अनुकूलित किया जा सकता है, संभावित रूप से दीर्घकालिक स्थायी व्यापारिक परिणामों को प्राप्त करने के लिए।
/*backtest
start: 2025-04-15 00:00:00
end: 2025-07-13 19:30:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT","balance":200000}]
*/
//@version=5
strategy(
title="DCA + Dual Trailing Strategy",
overlay=true
)
// --- Trend ---
fastMALen = input.int(9, title="Fast EMA Length")
slowMALen = input.int(21, title="Slow EMA Length")
// --- Trailing Stops ---
trailStopPerc = input.float(8.0, title="Standard Trailing Stop (%)", minval=0.1) / 100
lockInThreshold = input.float(2.5, title="Profit Lock-In Trigger (%)", minval=0.1) / 100
lockInTrailPct = input.float(1.5, title="Lock-In Trail (%) after Trigger", minval=0.1) / 100
// --- Safety Orders (SO) ---
useATRSpacing = input.bool(true, title="Use ATR-Based Spacing?")
atrLength = input.int(14, title="ATR Length", minval=1)
atrSo1Multiplier = input.float(1.2, title="ATR SO1 Multiplier", minval=0.1)
atrSo2Multiplier = input.float(2.5, title="ATR SO2 Multiplier", minval=0.1)
// --- Fallback SO Spacing (if not using ATR) ---
fallbackSo1Perc = input.float(4.0, title="Fallback SO1 Drop (%) ", minval=0.1) / 100
fallbackSo2Perc = input.float(8.0, title="Fallback SO2 Drop (%) ", minval=0.1) / 100
// --- Entry Cooldown ---
cooldownBars = input.int(4, "Cooldown Bars After Base Entry", minval=0)
// --- Order Sizes in USD ---
baseUsd = input.float(10000.0, title="Base Order Size (USD)", minval=1.0)
so1Usd = input.float(12500.0, title="Safety Order 1 Size (USD)", minval=1.0)
so2Usd = input.float(17500.0, title="Safety Order 2 Size (USD)", minval=1.0)
// 2) CALCULATIONS
// --- Trend & Reversal Detection ---
fastMA = ta.ema(close, fastMALen)
slowMA = ta.ema(close, slowMALen)
trendUp = ta.crossover(fastMA, slowMA)
trendDown = ta.crossunder(fastMA, slowMA)
// --- ATR Value ---
atrValue = ta.atr(atrLength)
// 3) BASE ENTRY LOGIC
// Base Buy Signal: EMA crossover
baseBuySignal = trendUp
var int lastBuyBar = na // Tracks the bar index of the last base entry
inCooldown = not na(lastBuyBar) and (bar_index - lastBuyBar < cooldownBars)
var float baseEntryPrice = na // Stores the price of the initial base entry for SO calculations
// --- Execute Base Entry ---
if baseBuySignal and strategy.position_size == 0 and not inCooldown
baseQty = baseUsd / close // Calculate quantity based on USD
strategy.order("Base Order", strategy.long, qty=baseQty, comment="Base Entry")
baseEntryPrice := close
lastBuyBar := bar_index
// 4) SAFETY ORDERS LOGIC
// --- Calculate SO Trigger Prices ---
float so1TriggerPrice = na
float so2TriggerPrice = na
if strategy.position_size > 0 // Only calculate if a base order has been placed
so1TriggerPrice := useATRSpacing ?
(baseEntryPrice - atrValue * atrSo1Multiplier) :
(baseEntryPrice * (1 - fallbackSo1Perc))
so2TriggerPrice := useATRSpacing ?
(baseEntryPrice - atrValue * atrSo2Multiplier) :
(baseEntryPrice * (1 - fallbackSo2Perc))
// --- Conditions for SO Execution ---
// Added 'inDateRange' check
// Ensure base order exists, price trigger hit, and the specific SO hasn't filled yet
bool so1Condition = strategy.position_size > 0 and close <= so1TriggerPrice and strategy.opentrades == 1
bool so2Condition = strategy.position_size > 0 and close <= so2TriggerPrice and strategy.opentrades == 2
// --- Execute SO1 ---
if so1Condition
so1Qty = so1Usd / close // Calculate quantity based on USD
strategy.order("Safety Order 1", strategy.long, qty=so1Qty, comment="SO1")
// --- Execute SO2 ---
if so2Condition
so2Qty = so2Usd / close // Calculate quantity based on USD
strategy.order("Safety Order 2", strategy.long, qty=so2Qty, comment="SO2")
// 5) AVERAGE ENTRY PRICE
// Use the built-in variable for the average price of the open position
avgEntryPrice = strategy.position_avg_price
// 6) DUAL TRAILING STOP LOGIC
// Variables to track trailing stop levels and states
var float highestSinceEntry = na
var float trailStopPrice = na
var bool stopHitNormal = false
var bool lockInTriggered = false
var float lockInPeak = na
var float lockInStopPrice = na
var bool stopHitLockIn = false
// --- Update Trailing Logic when in a Position ---
if strategy.position_size > 0
// --- Standard Trail ---
highestSinceEntry := na(highestSinceEntry) ? close : math.max(highestSinceEntry, close)
trailStopPrice := highestSinceEntry * (1 - trailStopPerc)
stopHitNormal := close < trailStopPrice
// --- Lock-In Trail ---
if not lockInTriggered and close >= avgEntryPrice * (1 + lockInThreshold)
lockInTriggered := true
lockInPeak := close
if lockInTriggered
lockInPeak := math.max(lockInPeak, close)
lockInStopPrice := lockInPeak * (1 - lockInTrailPct)
stopHitLockIn := close < lockInStopPrice
else
stopHitLockIn := false
lockInStopPrice := na
// --- Reset Variables when Flat ---
else
highestSinceEntry := na
trailStopPrice := na
stopHitNormal := false
lockInTriggered := false
lockInPeak := na
lockInStopPrice := na
stopHitLockIn := false
// lastBuyBar is intentionally NOT reset here, cooldown depends on it
// 7) EXIT CONDITIONS
// Added 'inDateRange' check
// Exit if either trailing stop is hit OR if the trend reverses downward
exitCondition = (stopHitNormal or stopHitLockIn or trendDown) and strategy.position_size > 0
if exitCondition
strategy.close_all(comment="Exit: SL / LockIn / TrendDown")
// 9) PLOTS & DEBUG TABLE
// --- Plot MAs ---
plot(fastMA, color=color.new(color.green, 0), title="Fast EMA", linewidth=2)
plot(slowMA, color=color.new(color.red, 0), title="Slow EMA", linewidth=2)
// --- Plot Trailing Stops ---
plot(strategy.position_size > 0 ? trailStopPrice : na, color=color.new(color.orange, 0), title="Standard Trailing Stop", style=plot.style_linebr, linewidth=2)
plot(lockInTriggered ? lockInStopPrice : na, color=color.new(color.fuchsia, 0), title="Lock-In Trailing Stop", style=plot.style_linebr, linewidth=2)