
इस रणनीति का उपयोग औसत वास्तविक आयाम (ATR) और अस्थिरता सूचकांक (CHOP) के रूप में प्रमुख तकनीकी संकेतकों के रूप में, प्रवृत्ति की पहचान और ट्रैकिंग को लागू करने के लिए। जब सूचकांक ट्रैक को तोड़ता है, तो प्रवृत्ति की दिशा के साथ प्रवेश संकेत के रूप में; जब सूचकांक बैंड के क्षेत्र में वापस आ जाता है, तो स्टॉप-लॉस या स्टॉप-आउट स्थिति लें।
इस रणनीति में प्रवृत्ति का आकलन और अस्थिरता नियंत्रण शामिल है, जो मूल्य प्रवृत्तियों को पकड़ने और जोखिम को नियंत्रित करने के लिए एक अपेक्षाकृत स्थिर प्रवृत्ति ट्रैकिंग रणनीति है।
इस रणनीति के मुख्य जोखिम हैंः
इस रणनीति को निम्नलिखित पहलुओं से अनुकूलित किया जा सकता हैः
इस रणनीति में सामान्य उपयोग के तकनीकी संकेतकों को एकीकृत किया गया है, यह सरल और व्यावहारिक है। पैरामीटर के समायोजन के अनुकूलन के तहत, यह अच्छा ट्रैकिंग प्रभाव प्राप्त कर सकता है। हालांकि, बड़े रुझानों को मैन्युअल रूप से निर्धारित करने की आवश्यकता है, इसे पूरी तरह से स्वचालित नहीं किया जा सकता है। यह एक सहायक निर्णय लेने के उपकरण के रूप में काम कर सकता है, लेकिन यह अन्य रणनीतियों के लिए संदर्भ के रूप में भी काम कर सकता है।
/*backtest
start: 2022-12-28 00:00:00
end: 2024-01-03 00:00:00
period: 1d
basePeriod: 1h
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/
// © sharatgbhat
//@version=4
strategy("Weis Chop Strategy", overlay=false, default_qty_type = strategy.percent_of_equity, default_qty_value = 10,max_lines_count = 500, max_labels_count = 500)
maxIdLossPcnt = input(1, "Max Intraday Loss(%)", type=input.float)
// strategy.risk.max_intraday_loss(maxIdLossPcnt, strategy.percent_of_equity)
method = input(defval="ATR", options=["ATR", "Traditional", "Part of Price"], title="Renko Assignment Method")
methodvalue = input(defval=14.0, type=input.float, minval=0, title="Value")
pricesource = input(defval="Close", options=["Close", "Open / Close", "High / Low"], title="Price Source")
useClose = pricesource == "Close"
useOpenClose = pricesource == "Open / Close" or useClose
useTrueRange = input(defval="Auto", options=["Always", "Auto", "Never"], title="Use True Range instead of Volume")
isOscillating = input(defval=false, type=input.bool, title="Oscillating")
normalize = input(defval=false, type=input.bool, title="Normalize")
vol = useTrueRange == "Always" or useTrueRange == "Auto" and na(volume) ? tr : volume
op = useClose ? close : open
hi = useOpenClose ? close >= op ? close : op : high
lo = useOpenClose ? close <= op ? close : op : low
if method == "ATR"
methodvalue := atr(round(methodvalue))
if method == "Part of Price"
methodvalue := close / methodvalue
currclose = float(na)
prevclose = nz(currclose[1])
prevhigh = prevclose + methodvalue
prevlow = prevclose - methodvalue
currclose := hi > prevhigh ? hi : lo < prevlow ? lo : prevclose
direction = int(na)
direction := currclose > prevclose ? 1 : currclose < prevclose ? -1 : nz(direction[1])
directionHasChanged = change(direction) != 0
directionIsUp = direction > 0
directionIsDown = direction < 0
barcount = 1
barcount := not directionHasChanged and normalize ? barcount[1] + barcount : barcount
vol := not directionHasChanged ? vol[1] + vol : vol
res = barcount > 1 ? vol / barcount : vol
plot(isOscillating and directionIsDown ? -res : res, style=plot.style_columns, color=directionIsUp ? color.green : color.red, transp=75, linewidth=3, title="Wave Volume")
length = input(14, minval=1)
ci = 100 * log10(sum(atr(1), length) / (highest(length) - lowest(length))) / log10(length)
offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500)
plot(ci, "CHOP", color=#2962FF, offset = offset)
band1 = hline(61.8, "Upper Band", color=#787B86, linestyle=hline.style_dashed)
band0 = hline(38.2, "Lower Band", color=#787B86, linestyle=hline.style_dashed)
fill(band1, band0, color = color.rgb(33, 150, 243, 90), title = "Background")
MomentumBull = close>ema(close,8)
MomentumBear = close<ema(close,8)
Tradecon = crossunder(ci,61.8)
if (MomentumBull and directionIsUp and Tradecon)
strategy.entry("Buy", strategy.long)
if (MomentumBear and directionIsDown and Tradecon )
strategy.entry("Sell", strategy.short)
strategy.exit("exit","Buy",when=directionIsDown,qty_percent=100,profit=20,loss=10)
strategy.exit("exit","Sell",when=directionIsUp,qty_percent=100,profit=20,loss=10)