
स्केलेबल ब्रेकआउट ट्रेडिंग रणनीति एक बहुत ही लचीली स्केलेबल ब्रेकआउट रणनीति है जो कीमत के महत्वपूर्ण समर्थन और प्रतिरोध क्षेत्रों की पहचान करके और जब कीमत इन क्षेत्रों को पार करती है तो ट्रेडिंग सिग्नल उत्पन्न करती है। यह रणनीति विभिन्न समय अवधि के लिए पैरामीटर को समायोजित करके लागू की जा सकती है और विभिन्न अतिरिक्त फ़िल्टरिंग स्थितियों और जोखिम प्रबंधन तंत्र को आसानी से एकीकृत कर सकती है ताकि विशिष्ट संपत्ति के लिए अनुकूलन किया जा सके।
यह रणनीति पहले इस्तेमाल की जाती हैswings()फ़ंक्शन वर्तमान कीमतों के उच्च और निम्न उतार-चढ़ाव की गणना करता है।swingLookbackपैरामीटर सेट करें, डिफ़ॉल्ट रूप से 20 K लाइनों के बाद, जब कीमत उतार-चढ़ाव के उच्च बिंदु को तोड़ती है, तो अधिक करें; जब कीमत उतार-चढ़ाव के निचले बिंदु को तोड़ती है, तो शून्य करें।
अधिक सिग्नल का विशिष्ट तर्क यह है कि जब समापन मूल्य उच्च मूल्य के बराबर होता है, तो अधिक करना। कम सिग्नल का विशिष्ट तर्क यह है कि जब समापन मूल्य कम मूल्य के बराबर होता है, तो कम करना।
इसके अलावा, रणनीति में स्टॉप लॉस भी है, जो किstopTargetPercentपैरामीटर को रोकना बंद करें। जैसे कि अधिकतम मूल्य का 5% से कम और न्यूनतम मूल्य का 5% से अधिक।
इस रणनीति का लाभ यह है कि यह ट्रेडिंग आवृत्ति को नियंत्रित करने के लिए है कि रिव्यू अवधि को कैसे समायोजित किया जाए। रिव्यू अवधि जितनी कम होगी, उतनी ही अधिक ट्रेडिंग की आवृत्ति होगी। इसके विपरीत, रिव्यू अवधि जितनी लंबी होगी, उतनी ही अधिक ट्रेडिंग की आवृत्ति होगी। इसलिए रणनीति के लिए इष्टतम रिव्यू अवधि का पता लगाना महत्वपूर्ण है।
क्या करें?
इस रणनीति को निम्नलिखित पहलुओं से अनुकूलित किया जा सकता हैः
विभिन्न समीक्षा अवधि मापदंडों का परीक्षण करें और सबसे अच्छा संयोजन खोजें;
विभिन्न ट्रेडिंग चक्रों का परीक्षण करें, जैसे कि 5 मिनट, 15 मिनट, 1 घंटा, और सबसे अच्छा चुनें;
स्टॉप लॉस को अनुकूलित करना और लाभ के लिए जगह और जोखिम नियंत्रण को संतुलित करना;
कम गुणवत्ता वाले संकेतों को कम करने के लिए फ़िल्टरिंग शर्तों को जोड़ना, जैसे कि ट्रेड वॉल्यूम फ़िल्टरिंग, ड्रॉप-डाउन फ़िल्टरिंग आदि;
अधिक जोखिम प्रबंधन तंत्रों को एकीकृत करना, जैसे कि रोक-टोक, मुनाफे को बंद करना;
पैरामीटर अनुकूलन, चरणबद्ध अनुकूलन, यादृच्छिक खोज, आदि के माध्यम से इष्टतम पैरामीटर का पता लगाना;
एकीकृत मशीन लर्निंग तकनीक, AI का उपयोग पैरामीटर को स्वचालित रूप से अनुकूलित करने के लिए करती है।
स्केलेबल ब्रेकआउट ट्रेडिंग रणनीति एक बहुत ही व्यावहारिक ब्रेकआउट प्रणाली है। यह सरल, उपयोग करने में आसान, अनुकूलन योग्य है, और इसे विभिन्न परिसंपत्तियों के लिए अनुकूलित किया जा सकता है क्योंकि यह रिव्यू पीरियड को समायोजित करता है और विभिन्न फ़िल्टरिंग स्थितियों को एकीकृत करता है। साथ ही, ट्रेडिंग जोखिम को नियंत्रित करने के लिए विभिन्न प्रकार के जोखिम प्रबंधन तंत्र को आसानी से एकीकृत किया जा सकता है। पैरामीटर अनुकूलन और मशीन सीखने जैसी तकनीकों की शुरूआत के माध्यम से, रणनीति को बाजार में बदलाव के लिए लगातार उन्नत किया जा सकता है। कुल मिलाकर, यह एक अनुशंसित सामान्यीकरण रणनीति है।
/*backtest
start: 2023-09-29 00:00:00
end: 2023-10-29 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © deperp
//@version=5
// strategy("Range Breaker", overlay=true, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=10, commission_type=strategy.commission.percent, commission_value=0.07, pyramiding=0)
// Backtest Time Period
useDateFilter = input.bool(true, title="Begin Backtest at Start Date",
group="Backtest Time Period")
backtestStartDate = input(timestamp("1 Jan 2020"),
title="Start Date", group="Backtest Time Period",
tooltip="This start date is in the time zone of the exchange " +
"where the chart's instrument trades. It doesn't use the time " +
"zone of the chart or of your computer.")
inTradeWindow = true
swingLookback = input.int(20, title="Swing Lookback", minval=3)
stopTargetPercent = input.float(5, title="Stop Target Percentage", step=0.1)
// Calculate lockback swings
swings(len) =>
var highIndex = bar_index
var lowIndex = bar_index
var swingHigh = float(na)
var swingLow = float(na)
upper = ta.highest(len)
lower = ta.lowest(len)
if high[len] > upper
highIndex := bar_index[len]
swingHigh := high[len]
if low[len] < lower
lowIndex := bar_index[len]
swingLow := low[len]
[swingHigh, swingLow, highIndex, lowIndex]
// Strategy logic
[swingHigh, swingLow, highIndex, lowIndex] = swings(swingLookback)
longCondition = inTradeWindow and (ta.crossover(close, swingHigh))
shortCondition = inTradeWindow and (ta.crossunder(close, swingLow))
if longCondition
strategy.entry("Long", strategy.long)
if shortCondition
strategy.entry("Short", strategy.short)
longStopTarget = close * (1 + stopTargetPercent / 100)
shortStopTarget = close * (1 - stopTargetPercent / 100)
strategy.exit("Long Stop Target", "Long", limit=longStopTarget)
strategy.exit("Short Stop Target", "Short", limit=shortStopTarget)
// Plot break lines
// line.new(x1=highIndex, y1=swingHigh, x2=bar_index, y2=swingHigh, color=color.rgb(255, 82, 82, 48), width=3, xloc=xloc.bar_index, extend=extend.right)
// line.new(x1=lowIndex, y1=swingLow, x2=bar_index, y2=swingLow, color=color.rgb(76, 175, 79, 47), width=3, xloc=xloc.bar_index, extend=extend.right)
// Alert conditions for entry and exit
longEntryCondition = inTradeWindow and (ta.crossover(close, swingHigh))
shortEntryCondition = inTradeWindow and (ta.crossunder(close, swingLow))
longExitCondition = close >= longStopTarget
shortExitCondition = close <= shortStopTarget
alertcondition(longEntryCondition, title="Long Entry Alert", message="Enter Long Position")
alertcondition(shortEntryCondition, title="Short Entry Alert", message="Enter Short Position")
alertcondition(longExitCondition, title="Long Exit Alert", message="Exit Long Position")
alertcondition(shortExitCondition, title="Short Exit Alert", message="Exit Short Position")