यह औसत दिशात्मक सूचकांक (एडीएक्स) और मूल्य ब्रेकआउट पर आधारित एक मात्रात्मक ट्रेडिंग रणनीति है। यह रणनीति मुख्य रूप से बाजार की प्रवृत्ति की ताकत का आकलन करने के लिए एडीएक्स संकेतक मूल्यों की निगरानी करती है और बाजार की गति को पकड़ने के लिए मूल्य ब्रेकआउट संकेतों को जोड़ती है। यह रणनीति विशिष्ट ट्रेडिंग सत्रों के भीतर संचालित होती है और स्टॉप-लॉस और दैनिक व्यापार सीमाओं के माध्यम से जोखिम प्रबंधन को लागू करती है।
मूल तर्क में निम्नलिखित प्रमुख तत्व शामिल हैंः
यह स्पष्ट तर्क के साथ एक अच्छी तरह से संरचित प्रवृत्ति-अनुसरण रणनीति है। यह एक प्रभावी जोखिम प्रबंधन ढांचे के तहत मूल्य ब्रेकआउट के साथ एडीएक्स संकेतकों को जोड़कर बाजार के रुझानों को पकड़ती है। जबकि अनुकूलन के लिए जगह है, रणनीति की नींव एक मात्रात्मक व्यापार प्रणाली के बुनियादी घटक के रूप में मजबूत और उपयुक्त है। व्यापारियों को लाइव ट्रेडिंग से पहले गहन बैकटेस्टिंग और पैरामीटर अनुकूलन करने और बाजार की स्थितियों के आधार पर विशिष्ट सुधार करने की सलाह दी जाती है।
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-27 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © HuntGatherTrade // ======================== // NQ 30 minute, ES 30 minute //@version=5 strategy("ADX Breakout", overlay=false, initial_capital=25000, default_qty_value=1) // =============================== // Input parameters // =============================== stopLoss = input(1000.0, title="Stop Loss ($)", group="Exits") session = input("0730-1430:1234567", group="Trade Session") highestLB = input(34, title="Highest lookback window", group="Indicator values") // =============================== // Trade Session Handling // =============================== t = time(timeframe.period, session) // Reset numTrades at the start of each session var int numTrades = 0 is_new_session = ta.change(time("D")) != 0 if is_new_session numTrades := 0 // =============================== // Entry Conditions // =============================== [plusDI, minusDI, adxValue] = ta.dmi(50, 14) entryCondition = (close >= ta.highest(close, highestLB)[1]) and (adxValue < 17.5) and (strategy.position_size == 0) and (numTrades < 3) and not na(t) // =============================== // 7. Execute Entry // =============================== var float stopPricePlot = na if entryCondition entryPrice = close + syminfo.mintick strategy.entry("Long Entry", strategy.long, stop=entryPrice) //stopPrice = strategy.position_avg_price - (stopLoss / syminfo.pointvalue) //strategy.exit("Stop Loss", "Long Entry", stop=stopPrice) numTrades += 1 if (strategy.position_size > 0) and (strategy.position_size[1] == 0) stopPoints = stopLoss / syminfo.pointvalue stopPrice = strategy.position_avg_price - stopPoints stopPrice := math.round(stopPrice / syminfo.mintick) * syminfo.mintick strategy.exit("Stop Loss", from_entry="Long Entry", stop=stopPrice) if ta.change(strategy.opentrades) == 1 float entryPrice = strategy.opentrades.entry_price(0) stopPricePlot := entryPrice - (stopLoss / syminfo.pointvalue) if ta.change(strategy.closedtrades) == 1 stopPricePlot := na plot(stopPricePlot, "Stop-loss level", color.red, 1, plot.style_linebr) // =============================== // Exit at End of Session // =============================== if na(t) and strategy.position_size != 0 strategy.close_all(comment="End of Day Exit")