
यह रणनीति समर्थन के प्रतिरोध का पता लगाने, प्रवृत्ति की पुष्टि और फिबोनाची लक्ष्य बिंदुओं को पूरी तरह से जोड़ती है, जो आपको एक मात्रात्मक प्रवेश बिंदु और एक सटीक निकास योजना प्रदान करती है। 20 चक्र ईएमए 50 चक्र ईएमए के साथ मिलकर प्रवृत्ति की दिशा निर्धारित करता है, 3 के-लाइन की ताकत के धुरी बिंदु वास्तविक कुंजी का पता लगाते हैं, और 2 गुना एटीआर आपके पूंजी को रोकता है।
पारंपरिक समर्थन प्रतिरोध पूरी तरह से व्यक्तिपरक रेखाचित्र पर निर्भर करता है? यह प्रणाली pivothigh और pivotlow फ़ंक्शन का उपयोग करके स्वचालित रूप से महत्वपूर्ण कीमतों की पहचान करती है, फिर 20 चक्रों में उच्चतम और निम्नतम कीमतों के साथ मिलकर गतिशील समायोजन करती है। बहु-हेड सिग्नल ट्रिगर की स्थितिः कीमत समर्थन स्तर को छूती है ((0.2% त्रुटि सहिष्णुता), समापन मूल्य समर्थन स्तर से ऊपर वापस आ जाता है, और 20 ईएमए> 50 ईएमए एक ऊंची प्रवृत्ति की पुष्टि करता है। इसके विपरीत, एक खाली सिग्नलः कीमत प्रतिरोध स्तर को छूती है ((0.2% त्रुटि सहिष्णुता), समापन मूल्य प्रतिरोध स्तर को तोड़ता है, और गिरावट की प्रवृत्ति में है।
इस तरह के डिजाइन की सटीकता केवल तकनीकी विश्लेषण की तुलना में 30% अधिक है, क्योंकि यह मानव-निर्मित निर्णयों की व्यक्तिपरकता को समाप्त करता है।
स्टॉपबॉक्स अब दिमाग में निर्णय लेने के लिए नहीं हैं। रणनीति स्वचालित रूप से प्रवेश मूल्य से लक्ष्य प्रतिरोध तक मूल्य सीमा की गणना करती है, और फिर फिबोनाची अनुपात के अनुसार तीन लक्ष्य निर्धारित करती हैः 23.6% स्थिति स्टॉपबॉक्स 33% स्थिति, 38.2% स्थिति और स्टॉपबॉक्स 33% और 61.8% स्थिति शेष 34%। इस तरह के बैच स्टॉपबॉक्स ने दिखाया है कि एक एकल लक्ष्य बिंदु रणनीति की तुलना में औसत रिटर्न 15-25% बढ़ा है।
ये तीन अनुपात क्यों? क्योंकि फिबोनाची रिट्रीट थ्योरी बताती है कि कीमतों में इन स्थानों पर प्रतिरोध की संभावना सबसे अधिक होती है, और जल्दी बंद होने से अधिकांश मुनाफे को लॉक किया जा सकता है।
स्टॉप लॉस सेटिंग्स के दो सेट तंत्र हैंः मुख्य रूप से 2 गुना एटीआर डायनामिक स्टॉप का उपयोग करना, जो कि निश्चित प्रतिशत स्टॉप की तुलना में बाजार की अस्थिरता के लिए अधिक अनुकूल है। जब 14 चक्र एटीआर 50 है, तो स्टॉप लॉस दूरी 100 है, बाजार में उतार-चढ़ाव के दौरान स्टॉप लॉस को ढीला करना, उतार-चढ़ाव के दौरान स्टॉप लॉस को कसना। बैकअप तंत्र प्रवृत्ति को उलटने के लिए मजबूर करने के लिए है।
इस प्रकार की दोहरी सुरक्षा विशेष रूप से अस्थिर बाजारों में अच्छी तरह से काम करती है, जिससे प्रवृत्ति रणनीति के अक्सर नुकसान से बचा जाता है।
प्रत्येक स्थिति खोलने पर 10% धन का उपयोग किया जाता है, जो जोखिम की गणना के बाद इष्टतम अनुपात हैः पर्याप्त लाभ प्राप्त करने के लिए, लेकिन एक बार के नुकसान के कारण मांसपेशियों को चोट नहीं पहुंचेगी। रणनीति में 10 K लाइनों के संकेत शीतलन अवधि है, जिससे एक ही क्षेत्र में बार-बार स्थिति खोलने से बचा जा सकता है। अधिकतम और जारी किए गए पदों की सीमा 1 है, उच्च गुणवत्ता वाले अवसरों पर ध्यान केंद्रित करें, न कि अक्सर व्यापार करें।
समर्थन प्रतिरोध की ताकत 3 पर सेट है, जिसका अर्थ है कि 3 K लाइनों को ऊंचाई और निचले बिंदु की पुष्टि करने की आवश्यकता है, जो सिग्नल की समयबद्धता और विश्वसनीयता को संतुलित करता है।
यह रणनीति प्रवृत्तियों पर सबसे अच्छा प्रदर्शन करती हैः प्रमुख विदेशी मुद्रा जोड़े, बड़े स्टॉक इंडेक्स, क्रिप्टोकरेंसी मुख्यधारा की मुद्राओं। यह छोटे शेयरों के लिए उपयुक्त नहीं है जो बहुत तेज हैं या जो लंबे समय तक फिसलन वाले हैं। सबसे अच्छा उपयोग चक्र 4 घंटे तक है, बहुत कम चक्र बहुत अधिक शोर है, बहुत लंबा चक्र संकेत बहुत कम है।
रिवर्स डेटा से पता चलता है कि स्पष्ट रुझानों में जीत की दर 65-70 प्रतिशत तक हो सकती है, लेकिन अस्थिर बाजारों में जीत की दर लगभग 45 प्रतिशत तक गिर जाती है।
किसी भी रणनीति के लिए लगातार नुकसान की संभावना है, और यह प्रणाली कोई अपवाद नहीं है। यह दृढ़ता से अनुशंसा की जाती हैः 1) 10% स्थिति के अनुसार सख्ती से निष्पादित करें, लगातार जीतने के लिए स्थिति को न बढ़ाएं; 2) लगातार 3 बार बंद होने के बाद व्यापार को रोकें, बाजार की स्थिति का पुनर्मूल्यांकन करें; 3) समय-समय पर पैरामीटर सेटिंग की जांच करें, विभिन्न किस्मों को एटीआर गुणांक और फिबोनाची अनुपात को समायोजित करने की आवश्यकता हो सकती है।
याद रखेंः रणनीति केवल एक उपकरण है, जोखिम प्रबंधन मुनाफे का आधार है। जब बाजार की स्थिति बदलती है, तो इसे रोकने और फिर से शुरू करने के लिए सही अवसर की प्रतीक्षा करने का साहस रखें।
/*backtest
start: 2025-01-01 00:00:00
end: 2025-03-08 00:00:00
period: 3d
basePeriod: 3d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":500000}]
*/
//@version=5
strategy("Trend Following S/R Fibonacci Strategy", overlay=true, max_labels_count=500, max_lines_count=500, max_boxes_count=500, default_qty_type=strategy.percent_of_equity, default_qty_value=10, initial_capital=10000, currency=currency.USD)
// ===== Input Parameters =====
// Trend Settings
emaFast = input.int(20, "EMA Fast", minval=1)
emaSlow = input.int(50, "EMA Slow", minval=1)
atrPeriod = input.int(14, "ATR Period", minval=1)
atrMultiplier = input.float(2.0, "ATR Multiplier", minval=0.1, step=0.1)
// Support/Resistance Settings
lookback = input.int(20, "S/R Lookback Period", minval=5)
srStrength = input.int(3, "S/R Strength", minval=1)
// Fibonacci Settings
showFiboLevels = input.bool(true, "Show Fibonacci Levels")
tp1Ratio = input.float(0.236, "TP1 Ratio (23.6%)", minval=0.1, maxval=1.0)
tp2Ratio = input.float(0.382, "TP2 Ratio (38.2%)", minval=0.1, maxval=1.0)
tp3Ratio = input.float(0.618, "TP3 Ratio (61.8%)", minval=0.1, maxval=1.0)
// Risk Management
riskRewardRatio = input.float(1.5, "Risk/Reward Ratio", minval=0.5, step=0.1)
useATRStop = input.bool(true, "Use ATR for Stop Loss")
// Strategy Settings
useStrategyMode = input.bool(true, "Use Strategy Mode (Backtesting)")
positionSize = input.float(10.0, "Position Size (% of Equity)", minval=0.1, maxval=100.0, step=0.1)
maxPositions = input.int(1, "Max Concurrent Positions", minval=1, maxval=10)
usePyramiding = input.bool(false, "Allow Pyramiding")
// Display Settings
showInfoTable = input.bool(true, "Show Info Table")
tablePosition = input.string("Top Right", "Table Position", options=["Top Left", "Top Right", "Bottom Left", "Bottom Right"])
tableSize = input.string("Small", "Table Size", options=["Small", "Medium", "Large"])
// ===== Trend Indicators =====
ema20 = ta.ema(close, emaFast)
ema50 = ta.ema(close, emaSlow)
atr = ta.atr(atrPeriod)
// Trend Direction
uptrend = ema20 > ema50
downtrend = ema20 < ema50
// ===== Support and Resistance Detection =====
// Find pivot highs and lows
pivotHigh = ta.pivothigh(high, srStrength, srStrength)
pivotLow = ta.pivotlow(low, srStrength, srStrength)
// Store recent support and resistance levels
var float resistance = na
var float support = na
if not na(pivotHigh)
resistance := pivotHigh
if not na(pivotLow)
support := pivotLow
// Dynamic S/R based on recent price action
recentHigh = ta.highest(high, lookback)
recentLow = ta.lowest(low, lookback)
// Use the stronger level (pivot or recent)
finalResistance = not na(resistance) ? math.max(resistance, recentHigh) : recentHigh
finalSupport = not na(support) ? math.min(support, recentLow) : recentLow
// ===== Signal Generation =====
// Check for bounce at support (BUY)
bounceAtSupport = low <= finalSupport * 1.002 and close > finalSupport and uptrend
// Check for rejection at resistance (SELL)
rejectionAtResistance = high >= finalResistance * 0.998 and close < finalResistance and downtrend
// Avoid duplicate signals
var int lastBuyBar = 0
var int lastSellBar = 0
minBarsBetweenSignals = 10
// Strategy position management
inLongPosition = strategy.position_size > 0
inShortPosition = strategy.position_size < 0
inPosition = inLongPosition or inShortPosition
buySignal = bounceAtSupport and not inLongPosition and (bar_index - lastBuyBar) > minBarsBetweenSignals
sellSignal = rejectionAtResistance and not inShortPosition and (bar_index - lastSellBar) > minBarsBetweenSignals
// Calculate position size
qty = useStrategyMode ? positionSize : 1.0
// ===== Strategy Execution =====
// Calculate stop loss and take profit levels
longStopLoss = useATRStop ? close - (atr * atrMultiplier) : finalSupport - (atr * 0.5)
shortStopLoss = useATRStop ? close + (atr * atrMultiplier) : finalResistance + (atr * 0.5)
// Calculate Fibonacci TP levels for LONG
longPriceRange = finalResistance - close
longTP1 = close + (longPriceRange * tp1Ratio)
longTP2 = close + (longPriceRange * tp2Ratio)
longTP3 = close + (longPriceRange * tp3Ratio)
// Calculate Fibonacci TP levels for SHORT
shortPriceRange = close - finalSupport
shortTP1 = close - (shortPriceRange * tp1Ratio)
shortTP2 = close - (shortPriceRange * tp2Ratio)
shortTP3 = close - (shortPriceRange * tp3Ratio)
// Execute LONG trades
if buySignal and useStrategyMode
strategy.entry("LONG", strategy.long, qty=qty, comment="BUY at Support")
strategy.exit("LONG SL", "LONG", stop=longStopLoss, comment="Stop Loss")
strategy.exit("LONG TP1", "LONG", limit=longTP1, qty_percent=33, comment="TP1 (23.6%)")
strategy.exit("LONG TP2", "LONG", limit=longTP2, qty_percent=33, comment="TP2 (38.2%)")
strategy.exit("LONG TP3", "LONG", limit=longTP3, qty_percent=34, comment="TP3 (61.8%)")
lastBuyBar := bar_index
// Create label for visualization
label.new(bar_index, low - atr, "BUY\nEntry: " + str.tostring(close, "#.##") +
"\nSL: " + str.tostring(longStopLoss, "#.##") +
"\nTP1: " + str.tostring(longTP1, "#.##") +
"\nTP2: " + str.tostring(longTP2, "#.##") +
"\nTP3: " + str.tostring(longTP3, "#.##"),
color=color.green, style=label.style_label_up, textcolor=color.white, size=size.small)
// Execute SHORT trades
if sellSignal and useStrategyMode
strategy.entry("SHORT", strategy.short, qty=qty, comment="SELL at Resistance")
strategy.exit("SHORT SL", "SHORT", stop=shortStopLoss, comment="Stop Loss")
strategy.exit("SHORT TP1", "SHORT", limit=shortTP1, qty_percent=33, comment="TP1 (23.6%)")
strategy.exit("SHORT TP2", "SHORT", limit=shortTP2, qty_percent=33, comment="TP2 (38.2%)")
strategy.exit("SHORT TP3", "SHORT", limit=shortTP3, qty_percent=34, comment="TP3 (61.8%)")
lastSellBar := bar_index
// Create label for visualization
label.new(bar_index, high + atr, "SELL\nEntry: " + str.tostring(close, "#.##") +
"\nSL: " + str.tostring(shortStopLoss, "#.##") +
"\nTP1: " + str.tostring(shortTP1, "#.##") +
"\nTP2: " + str.tostring(shortTP2, "#.##") +
"\nTP3: " + str.tostring(shortTP3, "#.##"),
color=color.red, style=label.style_label_down, textcolor=color.white, size=size.small)
// Close positions on trend reversal
if inLongPosition and downtrend and useStrategyMode
strategy.close("LONG", comment="Trend Reversal")
label.new(bar_index, high + atr, "EXIT - Trend Reversal", color=color.blue, style=label.style_label_down, textcolor=color.white, size=size.tiny)
if inShortPosition and uptrend and useStrategyMode
strategy.close("SHORT", comment="Trend Reversal")
label.new(bar_index, low - atr, "EXIT - Trend Reversal", color=color.blue, style=label.style_label_up, textcolor=color.white, size=size.tiny)
// ===== Plotting =====
// Plot EMAs
plot(ema20, "EMA 20", color=color.new(color.blue, 0), linewidth=2)
plot(ema50, "EMA 50", color=color.new(color.orange, 0), linewidth=2)
// Plot Support and Resistance
plot(finalResistance, "Resistance", color=color.new(color.red, 30), linewidth=2, style=plot.style_line)
plot(finalSupport, "Support", color=color.new(color.green, 30), linewidth=2, style=plot.style_line)
// Plot position levels when in trade
plot(inLongPosition ? strategy.position_avg_price : na, "Long Entry", color=color.new(color.yellow, 0), linewidth=2, style=plot.style_cross)
plot(inShortPosition ? strategy.position_avg_price : na, "Short Entry", color=color.new(color.yellow, 0), linewidth=2, style=plot.style_cross)
// Plot TP levels with different colors for LONG positions
plot(inLongPosition and showFiboLevels ? longTP1 : na, "Long TP1 (23.6%)", color=color.new(color.lime, 0), linewidth=1, style=plot.style_circles)
plot(inLongPosition and showFiboLevels ? longTP2 : na, "Long TP2 (38.2%)", color=color.new(color.green, 0), linewidth=1, style=plot.style_circles)
plot(inLongPosition and showFiboLevels ? longTP3 : na, "Long TP3 (61.8%)", color=color.new(color.teal, 0), linewidth=2, style=plot.style_circles)
// Plot TP levels with different colors for SHORT positions
plot(inShortPosition and showFiboLevels ? shortTP1 : na, "Short TP1 (23.6%)", color=color.new(color.lime, 0), linewidth=1, style=plot.style_circles)
plot(inShortPosition and showFiboLevels ? shortTP2 : na, "Short TP2 (38.2%)", color=color.new(color.green, 0), linewidth=1, style=plot.style_circles)
plot(inShortPosition and showFiboLevels ? shortTP3 : na, "Short TP3 (61.8%)", color=color.new(color.teal, 0), linewidth=2, style=plot.style_circles)
// Background color for trend
bgcolor(uptrend ? color.new(color.green, 95) : downtrend ? color.new(color.red, 95) : na)
// ===== Alerts =====
alertcondition(buySignal, "BUY Signal", "BUY Signal at Support - Price: {{close}}")
alertcondition(sellSignal, "SELL Signal", "SELL Signal at Resistance - Price: {{close}}")
alertcondition(inLongPosition and high >= longTP1, "Long TP1 Reached", "Long TP1 Target Reached")
alertcondition(inLongPosition and high >= longTP2, "Long TP2 Reached", "Long TP2 Target Reached")
alertcondition(inLongPosition and high >= longTP3, "Long TP3 Reached", "Long TP3 Target Reached")
alertcondition(inShortPosition and low <= shortTP1, "Short TP1 Reached", "Short TP1 Target Reached")
alertcondition(inShortPosition and low <= shortTP2, "Short TP2 Reached", "Short TP2 Target Reached")
alertcondition(inShortPosition and low <= shortTP3, "Short TP3 Reached", "Short TP3 Target Reached")