यह रणनीति बहु-समय-सीमा विश्लेषण पर आधारित एक ट्रेडिंग प्रणाली है, जो ट्रेडिंग सिग्नल उत्पन्न करने के लिए बोलिंगर बैंड, हुल मूविंग एवरेज और वेटेड मूविंग एवरेज को जोड़ती है। यह रणनीति मुख्य रूप से 5-मिनट, 1-घंटे और 3-घंटे की अवधि के बाजार डेटा को एकीकृत करते हुए 1-घंटे के समय-सीमा पर काम करती है। यह ट्रेडिंग अवसरों की पुष्टि करने के लिए कई तकनीकी संकेतकों का उपयोग करती है और गतिशील स्टॉप-लॉस और ले-प्रॉफिट तंत्र को लागू करती है, प्रभावी जोखिम नियंत्रण के लिए खाता इक्विटी के आधार पर स्वचालित रूप से स्थिति के आकार को समायोजित करती है।
मूल तर्क कई तकनीकी संकेतकों की क्रॉस-पुष्टि पर आधारित है। रणनीति 5 मिनट के वीडब्ल्यूएमए, 1 घंटे के वीडब्ल्यूएमए और 3 घंटे के एचएमए सहित कई समय सीमाओं में विभिन्न चलती औसत के साथ मूल्य संबंधों की निगरानी करती है। लंबे संकेत तब उत्पन्न होते हैं जब मूल्य सभी समय सीमा संकेतकों से ऊपर रहते हुए ऊपरी सीमा से ऊपर टूट जाता है; इसके विपरीत, छोटे संकेत तब होते हैं जब मूल्य सभी संकेतकों से नीचे रहते हुए निचली सीमा से नीचे टूट जाता है। रणनीति में गतिशील प्रवेश और निकास सीमाओं की स्थापना के लिए विचलन गणना शामिल होती है, जिससे व्यापार लचीलापन बढ़ता है।
रणनीति बहु-समय-सीमा विश्लेषण और कई तकनीकी संकेतकों के माध्यम से एक अपेक्षाकृत पूर्ण व्यापार प्रणाली का निर्माण करती है। इसकी ताकत सिग्नल विश्वसनीयता और प्रभावी जोखिम प्रबंधन में निहित है, हालांकि यह सिग्नल लेग और पैरामीटर अनुकूलन के साथ चुनौतियों का सामना करती है। निरंतर सुधार और अनुकूलन के माध्यम से, रणनीति विभिन्न बाजार स्थितियों में स्थिर प्रदर्शन बनाए रखने की क्षमता दिखाती है।
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-28 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("1H- 280, 2.7", overlay=true) // Fetch the indicator values from different timeframes vwma5 = request.security(syminfo.tickerid, "5", ta.wma(close, 233), lookahead = barmerge.lookahead_off) vwma_hourly = request.security(syminfo.tickerid, "60", ta.wma(close, 89), lookahead = barmerge.lookahead_off) hullma155_3h = request.security(syminfo.tickerid, "180", ta.hma(close, 155), lookahead = barmerge.lookahead_off) // Calculate the deviation value deviation = close * 0.032 // Initialize the signal variables var float signalLine = na var color lineColor = na // Long Entry Conditions longCondition_5min = close > vwma5 longCondition_hourly = close > vwma_hourly longCondition_3h = close > hullma155_3h // Short Entry Conditions shortCondition_5min = close < vwma5 shortCondition_hourly = close < vwma_hourly shortCondition_3h = close < hullma155_3h // Long Entry if longCondition_5min and longCondition_hourly and longCondition_3h signalLine := close + deviation lineColor := color.rgb(0, 255, 0, 1) // Short Entry if shortCondition_5min and shortCondition_hourly and shortCondition_3h signalLine := close - deviation lineColor := color.rgb(255, 0, 0, 1) // Plotting the connecting line plot(signalLine, title="Signal Line", color=lineColor, linewidth=1, style=plot.style_line) // Colorize the signal line bgcolor(signalLine > close ? color.rgb(0, 255, 0, 99) : color.rgb(255, 0, 0, 99), transp=90) // Strategy settings useTPSL = input(true, "Use TP/SL for closing long positions?") useDownbreakOutbreak = input(false, "Use Downbreak and Outbreak for closing positions?") useM7FClosing = input(false, "Use M7F Signal for closing positions?") length1 = input.int(280, minval=1) src = input(close, title="Source") mult = input.float(2.7, minval=0.001, maxval=50, title="StdDev") basis = ta.vwma(src, length1) dev = mult * ta.stdev(src, length1) upper = basis + dev lower = basis - dev offset = input.int(0, "Offset", minval = -500, maxval = 500) length2 = input.int(55, minval=1) src2 = input(close, title="Source") hullma = ta.wma(2 * ta.wma(src2, length2 / 2) - ta.wma(src2, length2), math.floor(math.sqrt(length2))) hullmacrosslower = ta.crossover(hullma, lower) hullmacrossupper = ta.crossunder(hullma, upper) breakout = ta.crossover(ohlc4, upper) breakdown = ta.crossunder(ohlc4, upper) outbreak = ta.crossover(ohlc4, lower) downbreak = ta.crossunder(ohlc4, lower) // Calculate position size and leverage margin_pct = 1 leverage = 1 position_size = strategy.equity * margin_pct qty = position_size / close / leverage // Define take profit and stop loss levels take_profit = 0.14 stop_loss = 0.06 // Opening a long position if breakout strategy.entry("Long", strategy.long, qty, limit=close*(1+take_profit), stop=close*(1-stop_loss)) // Opening a short position if downbreak strategy.entry("Short", strategy.short, qty, limit=close*(1-take_profit), stop=close*(1+stop_loss)) // Closing positions based on chosen method if useTPSL // Using TP/SL for closing long positions if strategy.position_size > 0 and breakdown strategy.close("Long", comment="Breakdown") else if useDownbreakOutbreak // Using Downbreak and Outbreak for closing positions if strategy.position_size > 0 and (breakdown or downbreak) strategy.close("Long", comment="Breakdown") if strategy.position_size < 0 and (outbreak or downbreak) strategy.close("Short", comment="Outbreak") else if useM7FClosing // Using M7F Signal for closing positions if strategy.position_size > 0 and (signalLine < close) strategy.close("Long", comment="M7F Signal") if strategy.position_size < 0 and (signalLine > close) strategy.close("Short", comment="M7F Signal") // Plotting entry signals plotshape(hullmacrosslower, title="High Bear Volatility", style=shape.arrowup, text="^^^^^", color=color.rgb(75, 202, 79), location=location.belowbar) plotshape(hullmacrossupper, title="High Bull Volatility", style=shape.arrowdown, text="-----", color=color.rgb(215, 72, 72), location=location.abovebar) plotshape(breakout ? 1 : na, title="Breakout", style=shape.arrowup, text="", color=color.rgb(75, 202, 79), location=location.belowbar, size=size.tiny) plotshape(breakdown ? 1 : na, title="Breakdown", style=shape.arrowdown, text="", color=color.rgb(201, 71, 71), location=location.abovebar, size=size.tiny) plotshape(outbreak ? 1 : na, title="Outbreak", style=shape.arrowup, text="", color=color.rgb(0, 110, 255), location=location.belowbar, size=size.tiny) plotshape(downbreak ? 1 : na, title="Downbreak", style=shape.arrowdown, text="", color=color.rgb(255, 111, 0), location=location.abovebar, size=size.tiny)