रणनीति मुख्य रूप से बाजार की दिशा और ताकत का न्याय करने के लिए के-लाइन के उच्च और निम्न बिंदुओं द्वारा गठित बॉक्स के ब्रेकडाउन का पता लगाती है। जब एक अपवर्टिंग बॉक्स ब्रेकआउट होता है, तो रणनीति ब्रेकआउट बिंदु के आसपास एक लंबी स्थिति निर्धारित करेगी। जब एक डाउनवर्डिंग बॉक्स ब्रेकआउट होता है, तो रणनीति ब्रेकआउट बिंदु के आसपास एक छोटी स्थिति निर्धारित करेगी। एक बार ट्रेडिंग सिग्नल उत्पन्न हो जाने के बाद, रणनीति पदों को खोलने के लिए ऑर्डर देगी और जोखिमों को नियंत्रित करने के लिए स्टॉप लॉस सेट और लाभ लेगी।
रणनीति एक व्यापारिक अवधि को परिभाषित करती है और केवल उस अवधि के दौरान व्यापारिक अवसरों की तलाश करती है।
प्रत्येक के-लाइन के बनने के बाद, रणनीति यह आंकती है कि क्या पिछले दो के-लाइनों के उच्चतम और निम्नतम मूल्य के बीच कोई महत्वपूर्ण सफलता है।
2.1 यदि दूसरी K-लाइन की सबसे कम कीमत पहली K-लाइन की उच्चतम कीमत से अधिक है, तो ऊपर की ओर बॉक्स ब्रेकआउट होता है।
2.2 यदि दूसरी के-लाइन का उच्चतम मूल्य पहली के-लाइन के निम्नतम मूल्य से कम है, तो नीचे की ओर बॉक्स ब्रेकआउट होता है।
बॉक्स ब्रेकआउट सिग्नल की पुष्टि करने के बाद, रणनीति वर्तमान के-लाइन के उच्चतम या निम्नतम मूल्य के आसपास एक लंबा या छोटा प्रवेश बिंदु निर्धारित करती है।
एक बार स्थिति खोलने के बाद, रणनीति प्रवृत्ति त्वरण को पकड़ने के लिए ब्रेकआउट रेंज के दोगुने के आधार पर लाभ लेने के लिए सेट करती है।
यह रणनीति हानि के जोखिम को कम करने के लिए दूसरी K-लाइन की सबसे कम या उच्चतम कीमत पर स्टॉप लॉस भी निर्धारित करती है।
इस रणनीति के निम्नलिखित फायदे हैंः
तर्क सरल और लागू करने में आसान है।
बाजार की दिशा और ताकत का आकलन करने के लिए के-लाइन बॉक्स ब्रेकआउट का उपयोग करना उच्च सटीकता रखता है।
लाभ लेने की सेटिंग प्रवृत्ति त्वरण से अवसरों को पकड़ती है। गुणक समायोज्य है।
एकल हानि को नियंत्रित करने के लिए एक स्पष्ट स्टॉप लॉस तर्क है।
रणनीति का विचार लचीला है और व्यक्तिगत शैली के अनुसार अनुकूलित किया जा सकता है।
हालाँकि, इस रणनीति में कुछ जोखिम हैंः
ब्रेकआउट सिग्नल झूठे ब्रेकआउट हो सकते हैं, नुकसान से पूरी तरह से बचा नहीं जा सकता।
प्रवेश बिंदु के निकट स्टॉप लॉस को आक्रामक बाजारों द्वारा आसानी से ट्रिगर किया जा सकता है।
यह प्रवृत्ति संरचना का न्याय नहीं कर सकता है और सीमाबद्ध बाजारों में अक्सर स्टॉप हो सकते हैं।
इसमें विभिन्न उत्पादों और समय अवधि के प्रभाव पर विचार नहीं किया गया है।
रणनीति को और अधिक अनुकूलित करने के लिए, हम निम्नलिखित पहलुओं से सुधार कर सकते हैंः
विभिन्न उत्पादों और समय अवधि के लिए अनुकूलन स्टॉप लॉस और ले लाभ पैरामीटर सेट करें।
रेंज-बाउंड बाजारों में फंसने से बचने के लिए ट्रेंड जजमेंट के लिए तकनीकी संकेतक जोड़ें।
ट्रेंड रन को ट्रैक करने के लिए बाद के ऐड-ऑन अवसरों को सेट करें।
ब्रेकआउट और फ़िल्टर संकेतों की प्रामाणिकता का न्याय करने के लिए वॉल्यूम संकेतकों का संयोजन करें।
ट्रेंड दिशा निर्धारित करने में सहायता के लिए मशीन लर्निंग एल्गोरिदम जोड़ें।
यह रणनीति सरल ब्रेकआउट सिद्धांत के आधार पर बनाई गई है ताकि अधिक रिटर्न के लिए ब्रेकआउट के बाद त्वरित रन को कैप्चर किया जा सके। यह जोखिमों को नियंत्रित करने के लिए स्टॉप और मुनाफे का उपयोग करता है। समझने और लागू करने में आसान रणनीति को व्यक्तिगत जरूरतों और बाजार वातावरण के अनुसार अनुकूलित और अनुकूलित किया जा सकता है, जिससे यह अत्यधिक व्यावहारिक हो जाता है।
/*backtest start: 2024-01-07 00:00:00 end: 2024-01-14 00:00:00 period: 3m basePeriod: 1m 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/ // © Dvitash //@version=5 strategy("Casper SMC Silver Bullet", shorttitle = "Casper SB", overlay=true, calc_on_order_fills = true) startTime = input(defval = "1000", title = "Start Time") endTime = input(defval = "1600", title = "End Time") contractAmt = input.int(defval = 2, title = "Contract Amount") fvgCol = input.color(defval = color.rgb(63, 61, 179, 41), title = "FVG Color") borderCol = input.color(defval = color.rgb(35, 33, 172, 41), title = "FVG Border Color") fvgExtendLength = input.int(defval = 0, minval = 0, title = "FVG Extend Length") allowedTime = not na(time(timeframe.period, startTime + "-" + endTime +":23456", "America/New_York")) newDay = bool(ta.change(time('D'))) h = hour(time('1'), "America/New_York") var bool fvgDrawn = na var float entryPrice = na var float stopPrice = na var float tpPrice = na if newDay fvgDrawn := false // a_allBoxes = box.all // if array.size(a_allBoxes) > 0 // for i = 0 to array.size(a_allBoxes) - 1 // box.delete(array.get(a_allBoxes, i)) if allowedTime and barstate.isconfirmed and h <= 16 //Long FVG if high[2] < low and not fvgDrawn // box.new(bar_index[2], low, bar_index + fvgExtendLength, high[2], bgcolor = fvgCol, border_color = borderCol) stopPrice := low[2] entryPrice := low tpPrice := entryPrice + (math.abs(low[2] - entryPrice) * 2) // log.info("SL: " + str.tostring(stopPrice) + " Entry: " + str.tostring(entryPrice) + " TP: " + str.tostring(tpPrice)) strategy.entry("long", strategy.long, contractAmt, limit = entryPrice, comment = "Long Entry") fvgDrawn := true if low[2] > high and not fvgDrawn // box.new(bar_index[2], high, bar_index + fvgExtendLength, low[2], bgcolor = fvgCol, border_color = borderCol) stopPrice := high[2] entryPrice := high tpPrice := entryPrice - (math.abs(high[2] - entryPrice) * 2) // log.info("SL: " + str.tostring(stopPrice) + " Entry: " + str.tostring(entryPrice) + " TP: " + str.tostring(tpPrice)) strategy.entry("short", strategy.short, contractAmt, limit = entryPrice, comment = "Short Entry") fvgDrawn := true if h >= 16 strategy.close_all() strategy.cancel_all() strategy.exit("long exit", from_entry = "long", qty = contractAmt, limit = tpPrice, stop = stopPrice, comment = "Long Exit") strategy.exit("short exit", from_entry = "short", qty = contractAmt, limit = tpPrice, stop = stopPrice, comment = "Short Exit")