
इस रणनीति में कई तकनीकी संकेतकों का उपयोग किया जाता है, जो दीर्घकालिक द्वि-दिशात्मक व्यापारिक निर्णयों को तैयार करते हैं। इसमें मुख्य रूप से ब्रीनिंग लाइन, आरएसआई, एडीएक्स और अन्य संकेतक शामिल हैं, जबकि प्रवृत्ति की दिशा का आकलन करने के लिए एक समान रेखा का उपयोग किया जाता है।
यह रणनीति मुख्य रूप से ब्रीलिंग लाइन के माध्यम से कीमतों के उतार-चढ़ाव की स्थिति का आकलन करने के लिए है, ब्रीलिंग लाइन का संकुचन मूल्य उतार-चढ़ाव को कम करने के लिए है, और एक ब्रेकआउट हो सकता है; और RSI के साथ मिलकर ओवरबॉय और ओवरसोल्ड घटना का आकलन करने के लिए, RSI 70 से ऊपर है और 30 से नीचे है। जब ब्रीलिंग लाइन संकुचित होती है, तो RSI सूचक ओवरबॉय और ओवरसोल्ड क्षेत्र के करीब होता है।
इसके अलावा, यह रणनीति एडीएक्स का उपयोग करके मूल्य प्रवृत्ति की ताकत का आकलन करती है। जब एडीएक्स उच्च होता है, तो प्रवृत्ति मजबूत होती है, और इस समय ट्रेंड ट्रेडिंग का विकल्प होता है; जब एडीएक्स कम होता है, तो कोई स्पष्ट प्रवृत्ति नहीं होती है, और इस समय ट्रेडिंग को उलटने पर विचार किया जा सकता है। अंत में, लंबी अवधि की प्रवृत्ति की दिशा का आकलन करने के लिए एक समान रेखा के साथ, यदि कीमत ऊपर की ओर है, तो खरीदने पर विचार करें; यदि कीमत नीचे की ओर है, तो बेचने पर विचार करें।
विशेष रूप से, जब बुरिन बैंड संकुचित है, तो आरएसआई संकेतक ओवरबॉय ओवरसोल्ड क्षेत्र के करीब है, और कीमत नीचे गिर गई है, यह माना जाता है कि बाजार में सुधार हो सकता है, इस समय अधिक विचार करें; जब बुरिन बैंड संकुचित है, तो आरएसआई संकेतक ओवरसोल्ड क्षेत्र के करीब है, और कीमत ऊपर की ओर है, यह माना जाता है कि बाजार में गिरावट हो सकती है, इस समय शून्य करें। इसके अलावा, यदि एडीएक्स उच्च है, तो कीमतें बढ़ रही हैं, अधिक हो सकती हैं; यदि एडीएक्स कम है, तो कीमतें गिर रही हैं, अधिक हो सकती हैं। कई प्रकार के संकेतक का संयोजन करके, व्यापार प्रणाली की स्थिरता को बढ़ाया जा सकता है।
इस तरह की बहु-सूचक संयोजन रणनीति के निम्नलिखित फायदे हैंः
कई तकनीकी संकेतकों को समग्र रूप से ध्यान में रखते हुए, ट्रेडिंग सिग्नल की सटीकता और स्थिरता में सुधार होता है। एक एकल संकेतक झूठे ब्रेकआउट जैसे भ्रामक है, जबकि कई संकेतक संयोजन संकेतों को सत्यापित कर सकते हैं और गलत ट्रेडिंग से बच सकते हैं।
प्रवृत्ति और अस्थिरता दोनों को ध्यान में रखते हुए, विभिन्न बाजार स्थितियों के अनुकूल, लचीलापन बदलता है। प्रवृत्ति व्यापार बड़े रुझानों का पीछा करता है, अस्थिरता व्यापार लक्ष्य छोटे लाभ।
एक ही समय में, अधिक से अधिक कास्टिंग से एकतरफा बाजारों में स्थिति जोखिम को कम किया जा सकता है, जिससे चरम स्थितियों से बचा जा सकता है।
स्टॉप लॉस स्टॉप पॉइंट सेट करें, जो कुछ मुनाफे और सीमा हानि को रोकता है जब स्थिति गलत हो जाती है।
पैरामीटर के अनुकूलन के माध्यम से, आप लगातार रणनीति के प्रभाव को बढ़ा सकते हैं और बाजार में बदलाव के अनुकूल हो सकते हैं।
इस रणनीति के कुछ जोखिम भी हैं, जिनके बारे में ध्यान देने की आवश्यकता हैः
बहु-सूचक संयोजन रणनीतिक जटिलता को बढ़ाता है, और गलत पैरामीटर सेट करने से प्रभाव कम हो सकता है।
तकनीकी संकेतकों पर अत्यधिक निर्भरता, बुनियादी जानकारी की उपेक्षा, ट्रेडिंग सिग्नल को गलत बना सकती है।
संकेतक के संकेत के समय, बाजार में कुछ बदलाव हो सकते हैं, उच्च और निम्न को मारने का जोखिम है। उचित रूप से वापस आने की प्रतीक्षा की आवश्यकता है।
मल्टीप्लेस डबल ओपन ट्रेडिंग की आवृत्ति को बढ़ाता है, प्रमोशन लागत और वित्तीय दबाव को बढ़ाता है। स्थिति आकार को नियंत्रित करने की आवश्यकता होती है।
एक निश्चित वक्र-अनुरूपता जोखिम है, और यह बेहतर है कि रणनीति को कई बाजारों में परीक्षण किया जाए।
जोखिम को सख्त स्टॉप, सावधानीपूर्वक जमा और उचित नियंत्रण के माध्यम से नियंत्रित किया जा सकता है। कुल मिलाकर, इस रणनीति में एक मजबूत व्यावहारिकता है।
इस रणनीति को निम्नलिखित पहलुओं से अनुकूलित करने पर विचार किया जा सकता हैः
विभिन्न मापदंडों के संयोजनों का परीक्षण करें, सबसे अच्छा खोजें। चरण-दर-चरण, यादृच्छिक खोज, आनुवंशिक एल्गोरिदम आदि के साथ मापदंडों का अनुकूलन करें।
केडीजे, विलियम और अन्य जैसे अधिक मापदंडों को जोड़ने के लिए, मापदंडों का एक समूह बनाने के लिए और रणनीति की स्थिरता में सुधार करने के लिए।
स्थिति प्रबंधन को अनुकूलित करें और गतिशील स्थिति समायोजन के माध्यम से जोखिम को नियंत्रित करें।
मशीन लर्निंग एल्गोरिदम के साथ, मूल्य प्रवृत्तियों और भविष्य के रुझानों का आकलन करने के लिए मात्रात्मक मॉडल का उपयोग करें।
विभिन्न किस्मों, समय-सीमाओं और बाजारों में परीक्षण, रणनीति की अनुकूलता में सुधार।
प्रवृत्तियों को एक प्रारंभिक चरण में पकड़ने और प्रतिवर्तन से पहले बाहर निकलने के लिए प्रवेश और निकास समय का अनुकूलन करें।
स्टॉप ट्रैकिंग और मूव स्टॉप जैसे तरीकों का उपयोग लाभ को लॉक करने और जोखिम को नियंत्रित करने के लिए किया जाता है
तकनीकी संकेतक द्वारा उत्पन्न संकेतों को फ़िल्टर करने के लिए मौलिक कारक, बाजार संरचना निर्णय जोड़ें।
इस रणनीति के कई संकेतकों का उपयोग करके कीमतों के रुझान को समझने के लिए स्वचालित व्यापार को लागू किया गया है। इस रणनीति में संकेतकों के समूह सत्यापन, द्वि-दिशात्मक व्यापार, हानि रोकथाम और अन्य लाभ हैं, जिससे व्यापार की दक्षता में सुधार हो सकता है। लेकिन अनुकूलन, झूठे संकेत और अन्य मुद्दों पर भी ध्यान देना चाहिए। परीक्षण के निरंतर अनुकूलन के माध्यम से, यह रणनीति एक स्थिर और व्यावहारिक मात्रात्मक व्यापार प्रणाली बन सकती है। यह मात्रात्मक व्यापार रणनीति डिजाइन की दिशा का प्रतिनिधित्व करती है।
/*backtest
start: 2023-09-24 00:00:00
end: 2023-10-24 00:00:00
period: 2h
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/
// © The_Bigger_Bull
//@version=5
strategy("Best TradingView Strategy", overlay=true, margin_long=0, margin_short=0)
//Bollinger Bands
source1 = close
length1 = input.int(15, minval=1)
mult1 = input.float(2.0, minval=0.001, maxval=50)
basis1 = ta.sma(source1, length1)
dev1 = mult1 * ta.stdev(source1, length1)
upper1 = basis1 + dev1
lower1 = basis1 - dev1
//buyEntry = ta.crossover(source1, lower1)
//sellEntry = ta.crossunder(source1, upper1)
//RSI
ma(source, length, type) =>
switch type
"SMA" => ta.sma(source, length)
"Bollinger Bands" => ta.sma(source, length)
"EMA" => ta.ema(source, length)
"SMMA (RMA)" => ta.rma(source, length)
"WMA" => ta.wma(source, length)
"VWMA" => ta.vwma(source, length)
rsiLengthInput = input.int(14, minval=1, title="RSI Length", group="RSI Settings")
rsiSourceInput = input.source(close, "Source", group="RSI Settings")
maTypeInput = input.string("SMA", title="MA Type", options=["SMA", "Bollinger Bands", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="MA Settings")
maLengthInput = input.int(14, title="MA Length", group="MA Settings")
bbMultInput = input.float(2.0, minval=0.001, maxval=50, title="BB StdDev", group="MA Settings")
up = ta.rma(math.max(ta.change(rsiSourceInput), 0), rsiLengthInput)
down = ta.rma(-math.min(ta.change(rsiSourceInput), 0), rsiLengthInput)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
rsiMA = ma(rsi, maLengthInput, maTypeInput)
isBB = maTypeInput == "Bollinger Bands"
//plot(rsi, "RSI", color=#7E57C2)
//plot(rsiMA, "RSI-based MA", color=color.yellow)
rsiUpperBand = hline(70, "RSI Upper Band", color=#787B86)
hline(50, "RSI Middle Band", color=color.new(#787B86, 50))
rsiLowerBand = hline(30, "RSI Lower Band", color=#787B86)
fill(rsiUpperBand, rsiLowerBand, color=color.rgb(126, 87, 194, 90), title="RSI Background Fill")
bbUpperBand = plot(isBB ? rsiMA + ta.stdev(rsi, maLengthInput) * bbMultInput : na, title = "Upper Bollinger Band", color=color.green)
bbLowerBand = plot(isBB ? rsiMA - ta.stdev(rsi, maLengthInput) * bbMultInput : na, title = "Lower Bollinger Band", color=color.green)
fill(bbUpperBand, bbLowerBand, color= isBB ? color.new(color.green, 90) : na, title="Bollinger Bands Background Fill")
//ADX
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
dirmov(len) =>
up1 = ta.change(high)
down1 = -ta.change(low)
plusDM = na(up1) ? na : (up1 > down1 and up1 > 0 ? up1 : 0)
minusDM = na(down1) ? na : (down1 > up1 and down1 > 0 ? down1 : 0)
truerange = ta.rma(ta.tr, len)
plus = fixnan(100 * ta.rma(plusDM, len) / truerange)
minus = fixnan(100 * ta.rma(minusDM, len) / truerange)
[plus, minus]
adx(dilen, adxlen) =>
[plus, minus] = dirmov(dilen)
sum = plus + minus
adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
sig = adx(dilen, adxlen)
out = ta.sma(close, 14)
sma1=ta.sma(close,55)
ema200=ta.ema(close,200)
longCondition = (out>sma1) and ta.crossover(source1, lower1)
if (longCondition )
strategy.entry("long", strategy.long)
shortCondition = (out<sma1) and ta.crossunder(source1, lower1)
if (shortCondition )
strategy.entry("short", strategy.short)
stopl=strategy.position_avg_price-50
tptgt=strategy.position_avg_price+100
stopshort=strategy.position_avg_price+50
tptgtshort=strategy.position_avg_price-100
strategy.exit("longclose","long",trail_offset=5,trail_points=45,when=ta.crossover(sma1,out))
strategy.exit("shortclose","short",trail_offset=5,trail_points=45,when=ta.crossover(out,sma1))
//if strategy.position_avg_price<0
plot(sma1 , color=color.blue)
plot(out, color=color.green)
//plot(ema200,color=color.red)