लंबी और छोटी डबल सफलता रणनीति


निर्माण तिथि: 2023-11-03 17:16:02 अंत में संशोधित करें: 2023-11-03 17:16:02
कॉपी: 1 क्लिक्स: 623
1
ध्यान केंद्रित करना
1617
समर्थक

लंबी और छोटी डबल सफलता रणनीति

अवलोकन

इस रणनीति में बुरिन बैंड सूचकांक का उपयोग किया जाता है ताकि पॉलीहोलिक ब्रेकआउट की तलाश की जा सके और एडीएक्स सूचकांक के साथ संयोजन में, नकारात्मक उतार-चढ़ाव को फ़िल्टर करने के लिए प्रवृत्ति का पालन किया जा सके।

रणनीति सिद्धांत

यह रणनीति मुख्य रूप से बुलिन बैंड संकेतक के आधार पर बहुमुखी दिशा का न्याय करने के लिए है। बुलिन बैंड की मध्य रेखा N दिन के समापन मूल्य की एक चलती औसत है, बैंडविड्थ को मानक विचलन के माध्यम से गणना की जाती है। जब कीमत नीचे की ओर टूटती है, तो एक बहुमुखी संकेत के रूप में न्याय किया जाता है; जब कीमत ऊपर की ओर टूटती है, तो एक खाली सिर के संकेत के रूप में न्याय किया जाता है।

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

इस रणनीति में एक रिवर्स स्टॉप और एक अपवर्ड ट्रैक स्टॉप भी है। विशेष रूप से, हर बार जब कोई स्थिति खुलती है, तो वह पिछले एन दिनों की सबसे कम कीमत को रिवर्स स्टॉप के रूप में रिकॉर्ड करती है और उच्चतम मूल्य को अपवर्ड ट्रैक स्टॉप के रूप में रिकॉर्ड करती है। यह मुनाफे को लॉक कर सकता है, जबकि रिवर्स से होने वाले नुकसान को कम कर सकता है।

कोड तर्क के अनुसार, रणनीति पहले बुलिन बैंड और ADX सूचक पैरामीटर की गणना करती है। यह निर्धारित करने के लिए कि क्या कीमत बुलिन बैंड को तोड़ती है, और क्या ADX मूल्य मूल्य से नीचे है, यदि यह पूरा हो जाता है, तो एक खरीद और बिक्री संकेत उत्पन्न होता है। उसके बाद, वास्तविक समय में अद्यतन करें और स्टॉप-लॉस को ट्रैक करें, स्थिति रखने और स्थिति रखने की दिशा के अनुसार।

श्रेष्ठता विश्लेषण

  • प्रवृत्ति के अवसरों को पकड़ने के लिए ब्रिन बैंड के स्पष्ट बहुआयामी टूटने के बिंदुओं का उपयोग करें
  • समग्र ADX सूचक फ़िल्टर, अनिश्चित रुझानों के दौरान लहरों के साथ चलने से बचें
  • रिवर्स स्टॉप लॉस को प्रभावी ढंग से नियंत्रित किया जा सकता है
  • ऊपर की ओर ट्रैक किए गए स्टॉप लॉकिंग से अधिकांश लाभ हो सकता है

जोखिम विश्लेषण

  • ब्रिन बेल्ट के माध्यम से होने वाली सफलताओं में ऊर्जा की मात्रा पर विचार नहीं किया गया है, जिससे झूठी सफलताएं हो सकती हैं।
  • एडीएक्स फ़िल्टरिंग में गलत निर्णय लेने से ट्रेंडिंग के अवसरों को खोने का खतरा है
  • स्टॉप-लॉस स्टॉप को रिवर्स-आउट किया जा सकता है
  • गलत पैरामीटर सेट करने से भी नीति के प्रदर्शन पर असर पड़ता है

यह विचार किया जा सकता है कि अन्य संकेतकों के साथ निर्णय की मात्रा का समर्थन किया जा सकता है, जिससे यह सुनिश्चित किया जा सके कि VALID को तोड़ दिया गया है; ADX फ़िल्टरिंग की स्थिति का अनुकूलन करें, ADX वक्र की ढलान का उपयोग करके ट्रेंड टर्नओवर को निर्धारित करें; स्टॉप लॉस स्टॉप रेंज को उचित रूप से ढीला करें, ताकि स्टॉप को बहुत करीब से रोका जा सके।

अनुकूलन दिशा

  • सबसे अच्छा ब्रेकआउट के लिए ब्रिन बैंड लंबाई पैरामीटर का अनुकूलन करें
  • ADX फ़िल्टरिंग शर्तों को अनुकूलित करें, प्रवृत्ति निर्णय और गलतफहमी दर को संतुलित करें
  • झूठी सफलताओं से बचने के लिए समर्थन के लिए अन्य मापदंडों को जोड़ना
  • अतिसंवेदनशीलता को रोकने के लिए रिड्यूस स्टॉप को अनुकूलित करें
  • ट्रैकिंग के लिए ऑप्टिमाइज़्ड स्टॉप एम्पलीफिकेशन, उचित रूप से बड़ा अंतराल खींचें

संक्षेप

इस रणनीति की समग्र विचार स्पष्ट और संक्षिप्त है, यह स्पष्ट बहु-अवकाश तोड़ने के संकेतों को समझने के लिए ब्यूरिन बैंड का उपयोग करता है, और चॉपी ट्रेडों को फ़िल्टर करने के लिए एडीएक्स संकेतक का उपयोग करता है जिसमें कोई स्पष्ट प्रवृत्ति नहीं है, जिससे प्रवृत्ति के अवसरों को लॉक किया जा सकता है। जबकि रिवर्स स्टॉप और ट्रैकिंग स्टॉप को जोखिम को नियंत्रित करने और मुनाफे को लॉक करने के लिए सेट किया गया है। इस रणनीति को लागू करना आसान है, और आगे परीक्षण और अनुकूलन के लायक है, जो एक बुनियादी प्रवृत्ति ट्रैकिंग रणनीति बन सकती है।

रणनीति स्रोत कोड
/*backtest
start: 2023-10-26 00:00:00
end: 2023-11-02 00:00:00
period: 1m
basePeriod: 1m
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/
// © tweakerID

// This strategy uses Bollinger Bands to buy when the price 
// crosses over the lower band and sell when it crosses down
// the upper band. It only takes trades when the ADX is 
// below a certain level, and exits all trades when it's above it.

//@version=4
strategy("BB + ADX Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_value = 0.04, initial_capital=100)

//Inputs
i_reverse=input(false, title="Reverse Trades")
i_ADXClose=input(true, title="ADX Close")
i_SL=input(false, title="Use Swing Lo/Hi Stop Loss & Take Profit")
i_SwingLookback=input(20, title="Swing Lo/Hi Lookback")
i_SLExpander=input(defval=0, step=.5, title="SL Expander")
i_TPExpander=input(defval=0, step=.5, title="TP Expander")

//ADX Calculations
adxlen = input(14, title="ADX Smoothing")
dilen = input(20, title="DI Length")
dirmov(len) =>
	up = change(high)
	down = -change(low)
	plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
	minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
	truerange = rma(tr, len)
	plus = fixnan(100 * rma(plusDM, len) / truerange)
	minus = fixnan(100 * rma(minusDM, len) / truerange)
	[plus, minus]
adx(dilen, adxlen) =>
	[plus, minus] = dirmov(dilen)
	sum = plus + minus
	adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
sig = adx(dilen, adxlen)
adxlevel=input(30, step=5)

//BB Calculations
BBCALC=input(false, title="-----------BB Inputs-----------")

length = input(20, minval=1)
mult = input(2.0, minval=0.001, maxval=50)
MAlen=input(defval=9)
source = close
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev

//Entry Logic
BUY = crossover(source, lower) and sig < adxlevel
SELL = crossunder(source, upper) and sig < adxlevel

//SL & TP Calculations
SwingLow=lowest(i_SwingLookback)
SwingHigh=highest(i_SwingLookback)
bought=strategy.position_size != strategy.position_size[1]
LSL=valuewhen(bought, SwingLow, 0)-((valuewhen(bought, atr(14), 0))*i_SLExpander)
SSL=valuewhen(bought, SwingHigh, 0)+((valuewhen(bought, atr(14), 0))*i_SLExpander)
lTP=strategy.position_avg_price + (strategy.position_avg_price-(valuewhen(bought, SwingLow, 0))+((valuewhen(bought, atr(14), 0))*i_TPExpander))
sTP=strategy.position_avg_price - (valuewhen(bought, SwingHigh, 0)-strategy.position_avg_price)-((valuewhen(bought, atr(14), 0))*i_TPExpander)
islong=strategy.position_size > 0
isshort=strategy.position_size < 0
SL= islong ? LSL : isshort ? SSL : na
TP= islong ? lTP : isshort ? sTP : na

//Entries
strategy.entry("long", long=i_reverse?false:true, when=BUY)
strategy.entry("short", long=i_reverse?true:false, when=SELL)

//EXITS
if i_ADXClose
    strategy.close_all(when=sig > adxlevel)
if i_SL
    strategy.exit("longexit", "long", stop=SL, limit=TP)
    strategy.exit("shortexit", "short", stop=SL, limit=TP)

//Plots	
plot(i_SL ? SL : na, color=color.red, style=plot.style_cross, title="SL")
plot(i_SL ? TP : na, color=color.green, style=plot.style_cross, title="TP")
plot(upper)
plot(lower)