अस्थायी क्षेत्रों की रणनीति

लेखक:चाओझांग, दिनांकः 2023-12-29 17:03:27
टैगः

img

अवलोकन

ट्रांजिट जोन रणनीति मूल्य उतार-चढ़ाव वाले क्षेत्रों पर आधारित एक अल्पकालिक व्यापारिक रणनीति है। यह बाजार के रुझानों का न्याय करने और क्षेत्रों में प्रवेश करने पर स्थिति लेने के लिए एक निश्चित समय अवधि के भीतर कीमतों द्वारा गठित उतार-चढ़ाव वाले क्षेत्रों का उपयोग करती है।

रणनीति तर्क

रणनीति पिछले N मोमबत्तियों की उच्चतम और निम्नतम कीमतों की गणना मूल्य उतार-चढ़ाव क्षेत्र का निर्माण करने के लिए करती है। जब नवीनतम मोमबत्ती इस क्षेत्र में प्रवेश करती है, तो यह निर्णय लेती है कि एक प्रवृत्ति उलट हो गई है और व्यापार संकेत उत्पन्न करती है।

विशेष रूप से, रणनीति लगातार अंतिम N कैंडलस्टिक्स (समायोज्य पैरामीटर N) की उच्चतम और निम्नतम कीमतों को ट्रैक करती है, जहांः

  • सबसे कम मूल्य = पिछले N कैंडलस्टिक में सबसे कम बिंदु
  • उच्चतम मूल्य = पिछले N कैंडलस्टिक्स में उच्चतम बिंदु

यह मूल्य उतार-चढ़ाव क्षेत्र का निर्माण करता है।

जब नवीनतम मोमबत्ती का बंद मूल्य क्षेत्र के उच्चतम मूल्य से अधिक होता है, तो यह संकेत देता है कि क्षेत्र में प्रवेश किया गया है, एक लंबा संकेत उत्पन्न करता है; जब बंद मूल्य क्षेत्र के सबसे कम मूल्य से कम होता है, तो यह संकेत देता है कि क्षेत्र में प्रवेश किया गया है, एक छोटा संकेत उत्पन्न करता है।

इसके अतिरिक्त, रणनीति में रंग और शरीर फ़िल्टर भी शामिल हैं। रंग फ़िल्टर कैंडलस्टिक के रंग के आधार पर संकेतों को फ़िल्टर करता है; शरीर फ़िल्टर कैंडलस्टिक शरीर के आकार के आधार पर संकेतों को फ़िल्टर करता है। इससे कुछ झूठे संकेतों को फ़िल्टर करने में मदद मिलती है।

लाभ

इस रणनीति के निम्नलिखित फायदे हैंः

  1. मूल्य क्षेत्रों को कैप्चर करता है और सटीक लंबी/छोटी प्रविष्टियों के लिए प्रवृत्ति उलट बिंदु निर्धारित करता है
  2. रंग और शरीर के फ़िल्टर गलत संकेतों को फ़िल्टर करने में मदद करते हैं
  3. सरल और स्पष्ट रणनीति तर्क, समझने और मापदंडों को समायोजित करने में आसान
  4. कई समायोज्य मापदंड रणनीति का अनुकूलन करने की अनुमति देते हैं

जोखिम

इस रणनीति में कुछ जोखिम भी हैं:

  1. अनुचित पैरामीटर सेटिंग्स से अधिक ट्रेडिंग और उच्च शुल्क हो सकते हैं
  2. गलत क्षेत्र सीमा सेटिंग बहुत सारे झूठे ब्रेकआउट संकेत उत्पन्न कर सकते हैं
  3. बाजार के हिंसक उतार-चढ़ाव के दौरान खराब मूल्य क्षेत्र पूर्वानुमान शक्ति
  4. मूल्य अंतर को संभालने में असमर्थ

इन जोखिमों को क्षेत्र मापदंडों को समायोजित करके, सिग्नल फिल्टर आदि को अनुकूलित करके कम किया जा सकता है।

अनुकूलन दिशाएँ

इस रणनीति को कई दिशाओं में अनुकूलित किया जा सकता हैः

  1. स्थिर एन कैंडलस्टिक के बजाय गतिशील रूप से मूल्य क्षेत्र सीमा को समायोजित करें
  2. घाटे को सीमित करने के लिए स्टॉप लॉस लॉजिक को शामिल करें
  3. संकेत की गुणवत्ता में सुधार के लिए फ़िल्टर मापदंडों का अनुकूलन करें
  4. मूल्य अंतराल को संभालने के लिए तर्क जोड़ें
  5. संकेतों का आकलन करने और जाल से बचने के लिए कई समय सीमाओं को मिलाएं

निष्कर्ष

ट्रांजिट ज़ोन रणनीति एक आसान उपयोग की अल्पकालिक ट्रेडिंग रणनीति है। यह मूल्य क्षेत्रों के माध्यम से प्रवृत्ति उलट बिंदुओं को निर्धारित करती है और बाजार के अवसरों पर जल्दी से लाभ उठा सकती है। इसमें कुछ जोखिम भी हैं। लाभप्रदता बढ़ाने के लिए पैरामीटर समायोजन और अनुकूलन के माध्यम से आगे सुधार किए जा सकते हैं।


/*backtest
start: 2023-11-28 00:00:00
end: 2023-12-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=2
strategy("Noro's Transient Zones Strategy v1.0", shorttitle = "TZ str 1.0", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings 
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")

usecol = input(true, defval = true, title = "Use Color-Filter")
usebod = input(true, defval = true, title = "Use Body-Filter")

h_left = input(title = "H left", defval = 10)
h_right = -1
sample_period = input(title = "Sample bars for % TZ",  defval = 5000)
show_ptz = input(title = "Show PTZ", type = bool, defval = true)
show_channel = input(title = "Show channel", type = bool, defval = true)

fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//By Jurij w/ TZ percent occurrence by SPYderCrusher

//barCount = nz(barCount[1]) + 1
//check history and realtime PTZ
h_left_low = lowest(h_left)
h_left_high = highest(h_left)
newlow = low <= h_left_low
newhigh = high >= h_left_high
plotshape(newlow and show_ptz, style=shape.triangledown, location=location.belowbar, color=red)
plotshape(newhigh and show_ptz, style=shape.triangleup, location=location.abovebar, color=green)
channel_high = plot(show_channel ? h_left_low : 0, color=silver)
channel_low = plot (show_channel ? h_left_high : 0, color=silver)

//check true TZ back in history
central_bar_low = low[h_right + 1]
central_bar_high = high[h_right + 1]
full_zone_low = lowest(h_left + h_right + 1)
full_zone_high = highest(h_left + h_right + 1)
central_bar_is_highest = central_bar_high >= full_zone_high
central_bar_is_lowest = central_bar_low <= full_zone_low
plotarrow(central_bar_is_highest ? -1 : 0, offset=-h_right-1)
plotarrow(central_bar_is_lowest ? 1 : 0, offset=-h_right-1)

//Color Filter
bar = close > open ? 1 : close < open ? -1 : 0

//Body Filter
nbody = abs(close - open)
abody = sma(nbody, 10)
body = nbody > abody / 3 or usebod == false

//Signals
up1 = central_bar_is_lowest and body and (bar == -1 or usecol == false)
dn1 = central_bar_is_highest and body and (bar == 1 or usecol == false)
exit = ((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body

//Trading
lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1]

if up1
    if strategy.position_size < 0
        strategy.close_all()
        
    strategy.entry("long", strategy.long, needlong == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn1
    if strategy.position_size > 0
        strategy.close_all()
        
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
    strategy.close_all()

अधिक