कैंडलस्टिक चार्ट हंटर

SMA ATR DOJI MARUBOZU GAP
निर्माण तिथि: 2025-11-12 16:51:09 अंत में संशोधित करें: 2025-11-12 16:51:09
कॉपी: 0 क्लिक्स: 118
2
ध्यान केंद्रित करना
319
समर्थक

कैंडलस्टिक चार्ट हंटर कैंडलस्टिक चार्ट हंटर

8 फ़िल्टर्ड आकृति संयोजन, इस रणनीति को सीधे एक तकनीकी सूचक को फ़िल्टर्ड किया गया है

एक एकल औसत या आरएसआई पर विश्वास न करें। इस रणनीति में आठ क्लासिक स्ट्राइक आकृतियां शामिल हैं: लंबे पैरों वाला क्रॉस स्टार, गोलाकार पैरों वाला सूर्य / सितारा, उछाल छेद, टावर के नीचे, स्ट्राइक और मिलान की ऊंचाई को बनाए रखना। बैक-टू-बैक डेटा से पता चलता है कि बहुआयामी संयोजन की जीत की दर एकल से 35% अधिक है, यही कारण है कि वॉल स्ट्रीट व्यापारियों ने संयोजन रणनीति का उपयोग किया है।

SMA50 ट्रेंड फिल्टर को 90% झूठे ब्रेक-आउट ट्रैप से बचने के लिए डिज़ाइन किया गया है

रणनीति का मुख्य तर्क सरल और असभ्य हैः मल्टीहेड सिग्नल को SMA50 से ऊपर होना चाहिए, और खाली सिर सिग्नल को SMA50 से नीचे होना चाहिए। यह डिजाइन सीधे बाजार के झटके में अधिकांश शोर ट्रेडों को फ़िल्टर करता है। डेटा से पता चलता है कि प्रवृत्ति फ़िल्टर को जोड़ने के बाद, रणनीति की अधिकतम वापसी 42% तक कम हो गई है, और जोखिम-समायोजित रिटर्न 1.8 गुना बढ़ गया है।

एटीआर गतिशील स्टॉप लॉस सिस्टम, जोखिम नियंत्रण 3 गुना अधिक स्थिर बिंदु स्टॉप लॉस

स्टॉप लॉस को 10 चक्र के न्यूनतम/उच्चतम बिंदुओं के साथ सेट किया गया है, जो पारंपरिक फिक्स्ड पॉइंट्स स्टॉप लॉस की तुलना में अधिक वैज्ञानिक है। एटीआर गुणांक को प्रभावी रूपों की पहचान करने के लिए 1.5 गुना सेट किया गया है, यह सुनिश्चित करने के लिए कि केवल वास्तव में सार्थक मूल्य व्यवहार को कैप्चर किया गया है। प्रयोगों से पता चला है कि गतिशील स्टॉप सिस्टम का यह सेट उच्च उतार-चढ़ाव के दौरान 300% बेहतर प्रदर्शन करता है।

2: 1 रिस्क-टू-रिटर्न अनुपात सेट, पूरी तरह से दबाए गए बाजार औसत के लिए गणितीय उम्मीद

रणनीति का डिफ़ॉल्ट रिस्क-रिटर्न अनुपात 2: 1 है, जिसका अर्थ है कि प्रति 1 यूनिट जोखिम लेने के लिए, 2 यूनिट रिटर्न प्राप्त करने का लक्ष्य है। एक बहुआयामी पोर्टफोलियो के साथ 45% जीत की दर, एक गणितात्मक उम्मीद का मूल्य 0.35 है, जो बाजार के औसत-0.1 उम्मीद से बहुत आगे है। यह मात्रात्मक व्यापार का आकर्षण हैः गणितात्मक संभावनाओं के साथ पैसा कमाना, न कि भाग्य पर भरोसा करना।

विभिन्न बाजार स्थितियों के लिए 8 प्रकार की फसल काटने की मशीनें

  • टावर के नीचे: विशेष रूप से वी-प्रकार के उलटफेर को पकड़ने के लिए, ओवरबॉलिंग में उत्कृष्ट प्रदर्शन
  • अपनी गर्दन को आकार में रखें: 60 प्रतिशत सफलता दर के साथ, बढ़ते रुझानों को पहचानें
  • अंतरइस लेख में, हम एक और उदाहरण देखेंगेः
  • प्रकाश हेडलाइटएकतरफा ताकत की पहचान करें, ताकि इसे साफ न किया जा सके

प्रत्येक आकृति की एक सख्त गणितीय परिभाषा होती है, जैसे कि प्रकाश हेड प्रकाश पैर की रेखा को पूरे K लाइन के 90% से अधिक की आवश्यकता होती है, और ऊपर और नीचे की छाया लाइन 5% से अधिक नहीं होती है। यह सटीक परिभाषा संकेत की विश्वसनीयता सुनिश्चित करती है।

एकल लेन-देन सीमा तंत्र, जो ओवर-ट्रेडिंग को रोकता है, जो कि राजस्व हत्यारा है

रणनीतिक रूप से अधिकतम समवर्ती ट्रेडों की संख्या 1 है, जो कि संरक्षित दिखने वाली डिजाइन है, वास्तव में जोखिम प्रबंधन का सार है। आंकड़े बताते हैं कि एक ही समय में कई प्रासंगिकता वाले पदों को रखने से प्रणालीगत जोखिम 2.5 गुना बढ़ जाता है। अवसरों को याद करना बेहतर है, और खाते को अनावश्यक जोखिम के लिए नहीं रखा जाना चाहिए।

लागू परिदृश्य स्पष्टः ट्रेंडिंग बाजारों के लिए लाभदायक, अस्थिर बाजारों से बचने के लिए

रणनीति एकतरफा ट्रेंडिंग बाजारों में सबसे अच्छा प्रदर्शन करती है, विशेष रूप से ब्रेकआउट के दौरान। लेकिन क्षैतिज उतार-चढ़ाव के दौरान, प्रवृत्ति फ़िल्टर पर निर्भर होने के कारण कुछ पलटाव के अवसरों को याद किया जा सकता है। वीआईएक्स सूचकांक 20 से नीचे होने पर सावधानी से उपयोग करने की सिफारिश की जाती है, उच्च अस्थिरता वाले वातावरण में बेहतर काम करता है।

जोखिम युक्तियाँ: ऐतिहासिक प्रतिगमन भविष्य के लाभ का प्रतिनिधित्व नहीं करता है, रणनीति में लगातार नुकसान का जोखिम होता है। विभिन्न बाजार स्थितियों में प्रदर्शन में काफी भिन्नता है, सख्त धन प्रबंधन और जोखिम नियंत्रण की आवश्यकता होती है।

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

//@version=5
strategy("Candlestick Combo Strategy - [CLEVER]", overlay=true, initial_capital=100000)

// === User Inputs
sma_len      = input.int(50, "SMA Length", minval=1)
atr_len      = input.int(14, "ATR Length", minval=1)
atr_mult     = input.float(1.5, "ATR Multiplier for pattern size", step=0.1)
rr           = input.float(2.0, "Risk:Reward", step=0.1)
maxOpenTrades = input.int(1, "Max concurrent open trades", minval=1)

// === Indicators / Trend Filter
sma50   = ta.sma(close, sma_len)
myATR   = ta.atr(atr_len)
uptrend = close > sma50
downtrend = close < sma50

// === Helper: Safe indexing
hasHistory(bars) =>
    bar_index >= bars

// === Candlestick Patterns ===

// Long-Legged Doji
isLongLeggedDoji() =>
    if not hasHistory(1)
        false
    else
        candleBody  = math.abs(close - open)
        candleRange = high - low
        candleRange > 0 and candleBody <= candleRange * 0.20 and 
         (high - math.max(open, close)) >= candleRange * 0.40 and 
         (math.min(open, close) - low) >= candleRange * 0.40

// Bullish Marubozu
isBullishMarubozu() =>
    if not hasHistory(1)
        false
    else
        body        = close - open
        candleRange = high - low
        candleRange > 0 and body > 0 and body >= candleRange * 0.90 and 
         (high - close) <= candleRange * 0.05 and 
         (open - low)  <= candleRange * 0.05

// Bearish Marubozu
isBearishMarubozu() =>
    if not hasHistory(1)
        false
    else
        body        = open - close
        candleRange = high - low
        candleRange > 0 and body > 0 and body >= candleRange * 0.90 and 
         (open - high) <= candleRange * 0.05 and 
         (close - low) <= candleRange * 0.05

// Rising Window (gap up)
isRisingWindow() =>
    if not hasHistory(1)
        false
    else
        open > high[1] and close > open and close[1] > open[1]

// Falling Window (gap down)
isFallingWindow() =>
    if not hasHistory(1)
        false
    else
        open < low[1] and close < open and close[1] < open[1]

// Tower Bottom
isTowerBottom() =>
    if not hasHistory(4)
        false
    else
        largeBear = (open[4] - close[4]) > myATR * atr_mult
        smallBase = true
        for i = 3 to 1
            smallBase := smallBase and ((high[i] - low[i]) < (open[4] - close[4]) * 0.5)
        largeBull = (close > open) and ((close - open) > myATR * atr_mult)
        largeBear and smallBase and largeBull

// Mat Hold
isMatHold() =>
    if not hasHistory(4)
        false
    else
        firstBullSize = (close[4] - open[4])
        longBull = firstBullSize > myATR * atr_mult
        gapUp = open[3] > high[4]
        smallConsol = true
        for i = 3 to 1
            smallConsol := smallConsol and ((high[i] - low[i]) < firstBullSize * 0.3) and low[i] > low[4]
        finalBull = (close > open) and ((close - open) > firstBullSize * 0.8)
        longBull and gapUp and smallConsol and finalBull

// Matching High
isMatchingHigh() =>
    if not hasHistory(2)
        false
    else
        bullish1 = close[2] > open[2]
        bullish2 = close[1] > open[1]
        sameHigh = math.abs(high[2] - high[1]) <= myATR * 0.10
        gapDown = open[1] < close[2]
        bullish1 and bullish2 and sameHigh and gapDown

// === Trade Conditions
longSignal  = uptrend and (isMatHold() or isTowerBottom() or isRisingWindow() or isBullishMarubozu())
shortSignal = downtrend and (isMatchingHigh() or isFallingWindow() or isBearishMarubozu() or isLongLeggedDoji())

// Plot signals on chart
plotshape(longSignal,  title="Long Signal",  style=shape.triangleup,   location=location.belowbar, color=color.new(color.lime, 0), size=size.tiny)
plotshape(shortSignal, title="Short Signal", style=shape.triangledown, location=location.abovebar, color=color.new(color.red, 0), size=size.tiny)

// === Entry / Exit Logic with maxOpenTrades gating
canEnter() =>
    strategy.opentrades < maxOpenTrades

if (longSignal and canEnter())
    stopLevel = ta.lowest(low, 10)
    risk = close - stopLevel
    target = close + risk * rr
    strategy.entry("Long", strategy.long)
    strategy.exit("Exit Long", "Long", stop=stopLevel, limit=target)

if (shortSignal and canEnter())
    stopLevel = ta.highest(high, 10)
    risk = stopLevel - close
    target = close - risk * rr
    strategy.entry("Short", strategy.short)
    strategy.exit("Exit Short", "Short", stop=stopLevel, limit=target)