स्विंग पहचान स्कोरिंग रणनीति

RSI SMA VOLUME PATTERN
निर्माण तिथि: 2025-09-09 09:24:08 अंत में संशोधित करें: 2025-09-09 09:24:08
कॉपी: 0 क्लिक्स: 275
2
ध्यान केंद्रित करना
319
समर्थक

स्विंग पहचान स्कोरिंग रणनीति स्विंग पहचान स्कोरिंग रणनीति

यह कोई सामान्य स्विंग रणनीति नहीं है, बल्कि एक सटीक निशानेबाज प्रणाली है जिसमें एआई रेटिंग है

पारंपरिक स्विंग रणनीति के साथ समस्या क्या है? सिग्नल बहुत अधिक हैं, गुणवत्ता में असमानता है, और झूठी दरारें अक्सर होती हैं।प्रत्येक सिग्नल का गुणवत्ता स्कोर 1-5 है, केवल 4 से अधिक उच्च गुणवत्ता वाले सिग्नल का व्यापार किया जाता है

मुख्य तर्क सरल और क्रूड हैः उच्च निम्न और निम्न उच्च की पहचान करें, और संकेत को चार आयामों में स्कोर करें।कम से कम 4 मिनट में खोलें, सीधे 80% जंक सिग्नल को फ़िल्टर करें

5D स्कोरिंग सिंगल इंडिकेटर से बेहतर कहां है?

आधार 1इस प्रकार से, यह एक अस्थिरता है। भुगतान की पुष्टि + 1 अंक20 चक्रों से अधिक लेनदेन की मात्रा 1.2 गुना औसत है, जो वित्तीय पहचान का संकेत देता है RSI स्थिति + 1 मिनटआरएसआईः 30-70 के बीच, ओवरबॉय और ओवरसोल के झूठे संकेत से बचें K लाइन इकाई + 1 अंकयह सुनिश्चित करें कि यह क्रॉसस्टार जैसे अनिश्चित रूप नहीं है ट्रेंड संरेखण + 1 अंकमूल्यः एमए 20 और एमए 50 तीनों एक दिशा में हैं

परिणामः 5 अंक पूर्ण सिग्नल जीत की उच्चतम दर, 4 अंक से अधिक सिग्नल व्यापार योग्य है, 3 अंक से कम सीधे अनदेखा किया जाता है

स्टॉप लॉस डिज़ाइनः 10 चक्र चरम, एटीआर को मनमाने ढंग से सेट नहीं किया गया

स्टॉप-डैमेज लॉजिक बहुत स्पष्ट हैः

  • तो हम कहते हैं कि हम 10 के लाइनों के निचले बिंदुओं के बराबर हैं.
  • स्टॉप लॉस = पिछले 10 K लाइन के उच्चतम बिंदु

10 चक्र क्यों?चूंकि स्विंग रणनीति का सार अल्पकालिक उलटफेरों को पकड़ना है, इसलिए 10 चक्रों ने कीमतों को पर्याप्त सांस लेने की अनुमति दी है, लेकिन यह भी नहीं है कि स्टॉप लॉस की दूरी बहुत बड़ी है। यह निश्चित एटीआर गुणांक की तुलना में बाजार संरचना के लिए अधिक उपयुक्त है।

असफलता का संकेत व्यापार का अवसर भी है

रणनीति ने “असफलता के उतार-चढ़ाव” को भी पहचानाः

  • Higher Low Failure: उच्च निम्न स्तर के बाद फिर से गिरावट
  • लोअर हाई की विफलता: एक और लोअर हाई के बाद एक और ब्रेक

ये असफलताएं अक्सर प्रवृत्ति में तेजी का संकेत देती हैं, और यह एक अच्छा समय है रिवर्स ट्रेडिंग के लिए

लगातार संकेत = प्रवृत्ति की पुष्टि

एक ही दिशा में दो लगातार K लाइनों के साथ एक ही दिशा में एक पुष्टिकरण संकेत दिखाई देता है, तो एक हीरे के निशान के साथ दिखाया जाता है। इसका मतलब आमतौर पर हैः

  • लगातार बढ़ रहा है: बढ़ते रुझान की पुष्टि
  • लगातार गिरावटः गिरावट का रुझान

लगातार सिग्नल की जीत की दर आमतौर पर एकल सिग्नल की तुलना में 15-20% अधिक होती है

प्रासंगिक परिदृश्यः अत्यधिक अस्थिरता/अधूरा बाजार

सर्वश्रेष्ठ प्रदर्शन वातावरण

  • स्पष्ट रुझान लेकिन लगातार गिरावट वाले बाजार
  • मध्यम अस्थिरता (अतिशांत या अति उग्र नहीं)
  • अपेक्षाकृत स्थिर मात्रा वाली नस्ल

दृश्यों से बचें

  • एकतरफा तूफानों के गिरने से (अधिकतर, झूलते संकेतों को तोड़ दिया जाता है)
  • बहुत कम उतार-चढ़ाव की दर के साथ फलक (अल्पसंख्यक और खराब गुणवत्ता वाले सिग्नल)
  • अल्पसंख्यक नस्लों की अत्यधिक अस्थिर बिक्री

जोखिम युक्तियाँः अतीत की याद भविष्य के लाभ के बराबर नहीं है

स्पष्ट जोखिम

  1. रणनीति में लगातार नुकसान की संभावना, विशेष रूप से रुझान परिवर्तन अवधि
  2. 4 मिनट से अधिक समय तक चलने वाले सिग्नल की गुणवत्ता अच्छी है, फिर भी 30-40% विफलता दर है
  3. स्टॉप लॉस डिजाइन अपेक्षाकृत आरामदायक है, एक बार में अधिक नुकसान हो सकता है
  4. विभिन्न बाजार स्थितियों में प्रदर्शन में स्पष्ट अंतर

धन प्रबंधन सलाह: एक बार का जोखिम खाते का 2% से अधिक नहीं है, लगातार 3 घाटे के बाद व्यापार को निलंबित करना और बाजार की स्थिति का पुनर्मूल्यांकन करना।

रणनीति स्रोत कोड
/*backtest
start: 2024-09-09 00:00:00
end: 2025-09-07 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT","balance":500000}]
*/

//@version=6
strategy("Higher Lows, Lower Highs & Failures with Signal Quality Scoring", overlay=true)

// --- Higher Low detection ---
shares = 1
minScore = 4  // Minimum score to take trades

lowPoint      = ta.lowest(low, 3)
prevLowPoint  = ta.lowest(low[3], 3)
isHigherLow   = low == lowPoint and low > prevLowPoint
bullConfirm   = isHigherLow and close > open

// --- Lower High detection ---
highPoint     = ta.highest(high, 3)
prevHighPoint = ta.highest(high[3], 3)
isLowerHigh   = high == highPoint and high < prevHighPoint
bearConfirm   = isLowerHigh and close < open

// --- Failures ---
failHigherLow = isHigherLow[1] and low < low[1]
failLowerHigh = isLowerHigh[1] and high > high[1]

// --- 2-in-a-row detection ---
bullSecond = bullConfirm and bullConfirm[1]
bearSecond = bearConfirm and bearConfirm[1]

// --- SIGNAL QUALITY SCORING (1-5 scale) ---
bullScore = if bullConfirm
    score = 1  // Base score
    
    // Factor 1: Volume confirmation
    avgVolume = ta.sma(volume, 20)
    if volume > avgVolume * 1.2
        score := score + 1
        
    // Factor 2: RSI positioning
    rsi = ta.rsi(close, 14)
    if rsi < 70 and rsi > 30
        score := score + 1
        
    // Factor 3: Candle strength
    bodySize = math.abs(close - open)
    candleRange = high - low
    bodyRatio = candleRange > 0 ? bodySize / candleRange : 0
    if bodyRatio > 0.6
        score := score + 1
        
    // Factor 4: Trend alignment
    ma20 = ta.sma(close, 20)
    ma50 = ta.sma(close, 50)
    if ma20 > ma50 and close > ma20
        score := score + 1
        
    math.max(1, math.min(5, score))
else
    na

bearScore = if bearConfirm
    score = 1  // Base score
    
    // Factor 1: Volume confirmation
    avgVolume = ta.sma(volume, 20)
    if volume > avgVolume * 1.2
        score := score + 1
        
    // Factor 2: RSI positioning
    rsi = ta.rsi(close, 14)
    if rsi > 30 and rsi < 70
        score := score + 1
        
    // Factor 3: Candle strength
    bodySize = math.abs(close - open)
    candleRange = high - low
    bodyRatio = candleRange > 0 ? bodySize / candleRange : 0
    if bodyRatio > 0.6
        score := score + 1
        
    // Factor 4: Trend alignment
    ma20 = ta.sma(close, 20)
    ma50 = ta.sma(close, 50)
    if ma20 < ma50 and close < ma20
        score := score + 1
        
    math.max(1, math.min(5, score))
else
    na

// --- Plot main signals with score-based styling ---
// Bullish signals
plotshape(bullConfirm and bullScore == 1, "Bull Score 1", shape.triangleup, location.belowbar, color.gray, size=size.tiny)
plotshape(bullConfirm and bullScore == 2, "Bull Score 2", shape.triangleup, location.belowbar, color.orange, size=size.small)
plotshape(bullConfirm and bullScore == 3, "Bull Score 3", shape.triangleup, location.belowbar, color.yellow, size=size.normal)
plotshape(bullConfirm and bullScore == 4, "Bull Score 4", shape.triangleup, location.belowbar, color.lime, size=size.normal)
plotshape(bullConfirm and bullScore == 5, "Bull Score 5", shape.triangleup, location.belowbar, color.green, size=size.large)

// Bearish signals
plotshape(bearConfirm and bearScore == 1, "Bear Score 1", shape.triangledown, location.abovebar, color.gray, size=size.tiny)
plotshape(bearConfirm and bearScore == 2, "Bear Score 2", shape.triangledown, location.abovebar, color.orange, size=size.small)
plotshape(bearConfirm and bearScore == 3, "Bear Score 3", shape.triangledown, location.abovebar, color.yellow, size=size.normal)
plotshape(bearConfirm and bearScore == 4, "Bear Score 4", shape.triangledown, location.abovebar, color.lime, size=size.normal)
plotshape(bearConfirm and bearScore == 5, "Bear Score 5", shape.triangledown, location.abovebar, color.green, size=size.large)

// --- Plot failures ---
plotshape(failHigherLow, "Failed Higher Low", shape.arrowdown, location.abovebar, color.red, size=size.small)
plotshape(failLowerHigh, "Failed Lower High", shape.arrowup, location.belowbar, color.green, size=size.small)

// --- Plot consecutive signals ---
plotshape(bullSecond, "Double Bullish Star", shape.diamond, location.bottom, color.lime, size=size.tiny)
plotshape(bearSecond, "Double Bearish Star", shape.diamond, location.top, color.red, size=size.tiny)

// --- Display score labels ---
if bullConfirm
    labelColor = bullScore == 1 ? color.gray : bullScore == 2 ? color.orange : bullScore == 3 ? color.yellow : bullScore == 4 ? color.lime : color.green
    label.new(bar_index, low - (high - low) * 0.1, "↑ " + str.tostring(bullScore), style=label.style_label_up, color=labelColor, textcolor=color.white, size=size.small)

if bearConfirm
    labelColor = bearScore == 1 ? color.gray : bearScore == 2 ? color.orange : bearScore == 3 ? color.yellow : bearScore == 4 ? color.lime : color.green
    label.new(bar_index, high + (high - low) * 0.1, "↓ " + str.tostring(bearScore), style=label.style_label_down, color=labelColor, textcolor=color.white, size=size.small)

// --- Alerts for high-quality signals only ---
alertcondition(bullConfirm and bullScore >= 4, "High Quality Bullish", "Strong Bullish Signal Detected")
alertcondition(bearConfirm and bearScore >= 4, "High Quality Bearish", "Strong Bearish Signal Detected")

// --- STRATEGY LOGIC ---
// Track previous highs and lows for stop levels
var float prevHigh = na
var float prevLow = na

// Update previous high/low when we get signals
if bullConfirm and bullScore >= minScore
    prevLow := ta.lowest(low, 10)  // Previous 10-bar low for stop
    
if bearConfirm and bearScore >= minScore
    prevHigh := ta.highest(high, 10)  // Previous 10-bar high for stop

// Entry conditions (only scores 4 or higher)
longCondition = bullConfirm and bullScore >= minScore
shortCondition = bearConfirm and bearScore >= minScore

// Execute trades
if longCondition and strategy.position_size == 0
    strategy.entry("Long", strategy.long, qty=shares)
    strategy.exit("Long Exit", "Long", stop=prevLow)
    
if shortCondition and strategy.position_size == 0
    strategy.entry("Short", strategy.short, qty=shares)
    strategy.exit("Short Exit", "Short", stop=prevHigh)

// Close opposite position if new signal occurs
if longCondition and strategy.position_size < 0
    strategy.close("Short")
    strategy.entry("Long", strategy.long, qty=shares)
    strategy.exit("Long Exit", "Long", stop=prevLow)
    
if shortCondition and strategy.position_size > 0
    strategy.close("Long")
    strategy.entry("Short", strategy.short, qty=shares)
    strategy.exit("Short Exit", "Short", stop=prevHigh)

// Plot stop levels for visualization
plot(strategy.position_size > 0 ? prevLow : na, "Long Stop", color.red, linewidth=2, style=plot.style_linebr)
plot(strategy.position_size < 0 ? prevHigh : na, "Short Stop", color.red, linewidth=2, style=plot.style_linebr)