
यह एक मात्रात्मक ट्रेडिंग रणनीति है जो औसत ट्रेंडिंग सूचक (ADX) और मूल्य टूटने पर आधारित है। यह रणनीति मुख्य रूप से बाजार की प्रवृत्ति की ताकत का आकलन करने के लिए ADX सूचक की संख्या की निगरानी करके और बाजार की गतिशीलता को पकड़ने के लिए मूल्य टूटने के संकेतों के साथ मिलकर बनाई गई है। यह रणनीति एक विशिष्ट ट्रेडिंग अवधि के भीतर चलाने के लिए सेट की गई है और जोखिम प्रबंधन को रोकने और प्रति दिन ट्रेडों की संख्या को सीमित करके लागू किया गया है।
रणनीति के मूल तर्क में निम्नलिखित प्रमुख तत्व शामिल हैं:
यह एक पूरी तरह से संरचित, स्पष्ट रूप से तार्किक प्रवृत्ति ट्रैकिंग रणनीति है। ADX संकेतकों को मूल्य टूटने के साथ जोड़कर, एक प्रभावी जोखिम प्रबंधन ढांचे के तहत बाजार की प्रवृत्ति के अवसरों को पकड़ना। हालांकि कुछ अनुकूलन के लिए जगह है, रणनीति का बुनियादी ढांचा मजबूत है, जो एक मात्रात्मक व्यापार प्रणाली के बुनियादी घटकों के लिए उपयुक्त है। व्यापारियों को सलाह दी जाती है कि वे वास्तविक स्थिति से पहले पर्याप्त प्रतिक्रिया और पैरामीटर अनुकूलन करें, और बाजार की विशिष्ट स्थितियों के साथ लक्षित सुधार करें।
/*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")