यह रणनीति बोलिंगर बैंड सूचक और वॉल्यूम सूचकों को जोड़ती है ताकि ट्रेडिंग वॉल्यूम अधिक होने पर बोलिंगर बैंड के ऊपरी बैंड के ऊपर मजबूत गति ब्रेकआउट अवसरों की पहचान की जा सके, और लंबी पोजीशन में प्रवेश किया जा सके। यह ट्रेंड दिशा निर्धारित करने और मृत पदों को रखने के जोखिम को कम करने के लिए चलती औसत संकेतकों का भी उपयोग करता है।
यह रणनीति मुख्य रूप से तीन कारकों पर विचार करती हैः मूल्य स्तर, गति और प्रवृत्ति। जब कीमत बोलिंगर ऊपरी बैंड को खरीद क्षेत्र में तोड़ती है, तो ट्रेडिंग वॉल्यूम में वृद्धि मजबूत गति और पूंजी प्रवाह का संकेत देती है। यह लंबी स्थिति में प्रवेश करने का सही समय है। फिर यह मृत पदों को रखने से बचने के लिए बाजार की प्रवृत्ति निर्धारित करने के लिए चलती औसत का उपयोग करता है। मूल्य कार्रवाई, गति और जोखिम नियंत्रण को जोड़कर, इसका उद्देश्य मजबूत रुझानों से लाभ कमाना है।
सटीक संकेत, झूठे ब्रेकआउट से बचता है. वॉल्यूम फ़िल्टर का संयोजन, यह केवल वास्तविक मजबूत गति पर खरीदता है, जोखिम को कम करता है.
चलती औसत रुझान निर्धारण के माध्यम से समय में घाटे में कटौती करने में सक्षम, होल्डिंग घाटे को कम करना।
निर्णय लेने के लिए कई संकेतकों को जोड़कर लागू की गई मात्रात्मक रणनीति। विभिन्न उत्पादों और समय सीमाओं के लिए लचीले मापदंडों को समायोजित करना।
स्पष्ट कोड संरचनाएं, पढ़ने और बनाए रखने में आसान। संकेतक गणना, संकेत उत्पादन और स्थिति प्रबंधन का मॉड्यूलर डिजाइन।
बोलिंगर बैंड अत्यधिक मूल्य उतार-चढ़ाव के दौरान विफल हो सकते हैं, सिग्नल गायब हो सकते हैं या झूठे सिग्नल उत्पन्न कर सकते हैं।
जब कुल व्यापारिक मात्रा कम हो तो कोई लाभ नहीं। पर्याप्त व्यापारिक मात्रा के बिना खरीद संकेत लाभदायक नहीं हो सकते हैं।
मूविंग एवरेज ट्रेंड निर्धारण भी विफल हो सकता है, प्रभावी स्टॉप लॉस को पूरी तरह से सुनिश्चित करने में असमर्थ।
अनुचित पैरामीटर ट्यूनिंग भी रणनीति लाभप्रदता को प्रभावित करता है। उदाहरण के लिए, बहुत कम सेट ट्रेडिंग समय विंडो प्रवृत्ति उलट खो सकता है।
बेहतर रुझान और समर्थन/प्रतिरोध विश्लेषण के लिए अधिक तकनीकी संकेतक जोड़ें, स्टॉप लॉस में सुधार करें, जैसे कैंडलस्टिक पैटर्न, चैनल, प्रमुख समर्थन स्तर।
गलत संकेतों को कम करते हुए वास्तविक ब्रेकआउट संभावनाओं का आकलन करने के लिए मशीन लर्निंग मॉडल जोड़ें। उदाहरण के लिए LSTM डीप लर्निंग मॉडल।
एकल व्यापार हानि के प्रभाव को कम करने के लिए गतिशील स्थिति आकार, ट्रेलिंग स्टॉप लॉस जैसी पूंजी प्रबंधन रणनीतियों का अनुकूलन करें।
अधिक उत्पादों और समय सीमाओं का परीक्षण करें, रणनीति की मजबूती में सुधार के लिए बोलिंगर बैंड, वॉल्यूम विंडो जैसे मापदंडों को समायोजित करें।
यह रणनीति बोलिंगर बैंड और ट्रेडिंग वॉल्यूम संकेतकों को मजबूत गति खरीद अवसरों की पहचान करने के लिए एकीकृत करती है, जिसमें चलती औसत प्रभावी स्टॉप लॉस सुनिश्चित करती है। एकल संकेतक रणनीतियों की तुलना में, इसमें अधिक सटीकता और जोखिम नियंत्रण क्षमताएं हैं। मॉड्यूलर डिजाइन, प्रवृत्ति फिल्टर और स्टॉप लॉस तंत्र के साथ, यह एक आसान-से-अनुकूलित गति ब्रेकआउट ट्रेडिंग रणनीति बनाता है।
/*backtest start: 2024-01-05 00:00:00 end: 2024-02-04 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/ // © KAIST291 //@version=4 initial_capital=1000 strategy("prototype", overlay=true) length1=input(1) length3=input(3) length7=input(7) length9=input(9) length14=input(14) length20=input(20) length60=input(60) length120=input(120) ma1= sma(close,length1) ma3= sma(close,length3) ma7= sma(close,length7) ma9= sma(close,length9) ma14=sma(close,length14) ma20=sma(close,length20) ma60=sma(close,length60) ma120=sma(close,length120) rsi=rsi(close,14) // BUYING VOLUME AND SELLING VOLUME // BV = iff( (high==low), 0, volume*(close-low)/(high-low)) SV = iff( (high==low), 0, volume*(high-close)/(high-low)) vol = iff(volume > 0, volume, 1) dailyLength = input(title = "Daily MA length", type = input.integer, defval = 50, minval = 1, maxval = 100) weeklyLength = input(title = "Weekly MA length", type = input.integer, defval = 10, minval = 1, maxval = 100) //----------------------------------------------------------- Davgvol = sma(volume, dailyLength) Wavgvol = sma(volume, weeklyLength) //----------------------------------------------------------- length = input(20, minval=1) src = input(close, title="Source") mult = input(2.0, minval=0.001, maxval=50, title="StdDev") mult2= input(1.5, minval=0.001, maxval=50, title="exp") mult3= input(1.0, minval=0.001, maxval=50, title="exp1") mult4= input(2.5, minval=0.001, maxval=50, title="exp2") basis = sma(src, length) dev = mult * stdev(src, length) upper = basis + dev lower = basis - dev dev2= mult2 * stdev(src, length) Supper= basis + dev2 Slower= basis - dev2 dev3= mult3 * stdev(src, length) upper1= basis + dev3 lower1= basis - dev3 dev4= mult4 * stdev(src, length) upper2=basis + dev4 lower2=basis - dev4 offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500) plot(basis, "Basis", color=#FF6D00, offset = offset) p1 = plot(upper, "Upper", color=#2962FF, offset = offset) p2 = plot(lower, "Lower", color=#2962FF, offset = offset) fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95)) //---------------------------------------------------- exit=(close-strategy.position_avg_price / strategy.position_avg_price*100) bull=( BV>SV and BV>Davgvol) bull2=(BV>SV and BV>Davgvol) bux =(close>Supper and close>Slower and volume<Davgvol) bear=(SV>BV and SV>Davgvol) con=(BV>Wavgvol and rsi>80) imInATrade = strategy.position_size != 0 highestPriceAfterEntry = valuewhen(imInATrade, high, 0) // STRATEGY LONG // if (bull and close>upper1 and close>Supper and high>upper and rsi<80) strategy.entry("Long",strategy.long) if (strategy.position_avg_price*1.02<close) strategy.close("Long") else if (low<ma9 and strategy.position_avg_price<close) strategy.close("Long") else if (ma20>close and strategy.position_avg_price<close ) strategy.close("Long") else if (rsi>80 and strategy.position_avg_price<close) strategy.close("Long") else if (strategy.openprofit < strategy.position_avg_price*0.9-close) strategy.close("Long") else if (high<upper and strategy.position_avg_price<close) strategy.close("Long") ////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////// strategy.entry("Short",strategy.short,when=low<ma20 and low<lower1 and close<Slower and crossunder(ma60,ma120)) if (close<strategy.position_avg_price*0.98) strategy.close("Short") else if (rsi<20) strategy.close("Short")