
यह एक ब्रेकआउट ट्रेडिंग रणनीति है जो तीन अलग-अलग चक्रों के एसएमएमए औसत के साथ पारलौकिक एसएआर को जोड़ती है। यह तीन औसत के साथ ओवरऑल के लिए ओवरऑल करता है और तीन औसत के साथ ओवरऑल के लिए ओवरऑल करता है, जबकि एसएआर के साथ प्रवृत्ति की दिशा का आकलन करने के लिए एसएआर के साथ संयोजन करता है। यह रणनीति स्टॉप और स्टॉप दोनों का समर्थन करती है।
इस रणनीति में मुख्य रूप से निम्नलिखित बातों पर ध्यान दिया गया हैः
PARALINE SAR का उपयोग करें वर्तमान प्रवृत्ति की दिशा निर्धारित करने के लिए. SAR गतिशील रूप से मूल्य परिवर्तनों को ट्रैक करने के लिए, बहुमुखी प्रवृत्ति और रिक्त प्रवृत्ति को निर्धारित करने के लिए सक्षम है.
तीन अलग-अलग चक्रों के साथ एक एसएमएमए औसत रेखा सेट करें (फास्ट लाइन 21 चक्र, मीडियम लाइन 50 चक्र, और धीमी लाइन 200 चक्र) । जब तीन औसत रेखाएं सभी ऊपर जाती हैं, तो इसे एक बहुमुखी प्रवृत्ति के रूप में माना जाता है; जब तीन औसत रेखाएं सभी नीचे जाती हैं, तो इसे एक शून्य प्रवृत्ति के रूप में माना जाता है।
यदि तीनों समान रेखाएं पूरी तरह से बढ़ जाती हैं, तो SAR सूचकांक के नीचे जाने पर अतिरिक्त प्रवेश करें।
यदि SAR सूचकांक ऊपर की ओर जाता है, तो यदि तीनों समान रेखाएं पूरी तरह से गिर जाती हैं, तो शून्य में प्रवेश करें।
स्टॉप लॉस और स्टॉप लॉस सेट करें। स्टॉप लॉस को एसएआर सूचक के रूप में गतिशील स्टॉप लॉस के रूप में सेट करें, स्टॉप लॉस को प्रवेश मूल्य के एक निश्चित अनुपात के रूप में सेट करें।
विशेष रूप से, रणनीति पहले यह निर्धारित करती है कि क्या वर्तमान BAR का SAR सूचकांक बदल रहा है। यदि SAR ऊपर से नीचे की ओर मुड़ता है और तीन समानांतर पूरी तरह से ऊपर की ओर बढ़ते हैं, तो अधिक करें; यदि SAR नीचे से ऊपर की ओर मुड़ता है और तीन समानांतर पूरी तरह से नीचे की ओर जाते हैं, तो शून्य करें।
स्थिति रखने के बाद, एक स्टॉप-लॉस लाइन को BAR के अगले एसएआर सूचक मूल्य के रूप में सेट किया जाता है, एसएआर को स्टॉप को गतिशील रूप से ट्रैक करने के लिए। स्टॉप-लॉस को प्रवेश मूल्य का 10% के रूप में सेट किया जाता है। जब कीमत स्टॉप-लॉस या स्टॉप-लॉस स्तर तक पहुंचती है, तो स्थिति को बाहर निकालें।
इस रणनीति में प्रवृत्ति का आकलन करने वाले संकेतकों और बहु-समय अवधि की औसत रेखा के फायदे शामिल हैं, जो प्रवृत्ति के पलटने पर समय पर प्रवेश कर सकते हैं, जबकि औसत रेखा फ़िल्टर के माध्यम से झूठे ब्रेकडाउन कर सकते हैं। इसके मुख्य लाभ हैंः
SAR संकेतक गतिशील रूप से प्रवृत्ति के परिवर्तन का आकलन करने में सक्षम है और प्रवृत्ति को बदलने के अवसरों को जल्दी से पकड़ सकता है।
तीन समान रेखाएं बाजार के शोर को प्रभावी ढंग से फ़िल्टर करती हैं और झूठी दरारों को रोकती हैं।
एसएमएमए औसत रेखा का उपयोग करके, वक्र अधिक चिकनी होते हैं, और औसत रेखा के उतार-चढ़ाव से लेनदेन में बाधा कम होती है।
स्टॉप-लॉस-स्टॉप सेटिंग के साथ, एक बार के नुकसान को नियंत्रित किया जा सकता है, जबकि लाभ के कुछ हिस्सों को लॉक किया जा सकता है।
रणनीति पैरामीटर सेट करने में लचीला है, आप विभिन्न बाजारों के लिए पैरामीटर को समायोजित कर सकते हैं और रणनीति के प्रभाव को अनुकूलित कर सकते हैं।
इस रणनीति के कुछ जोखिम भी हैं, जिनमें शामिल हैंः
अस्थिरता के दौरान, एसएआर सूचकांक में कई बार बार-बार बदलाव हो सकते हैं, जिससे लेन-देन की लागत में वृद्धि होती है।
तीन समान रेखा सेटिंग्स सभी किस्मों के लिए पूरी तरह से उपयुक्त नहीं हो सकते हैं, और उन्हें विशिष्ट किस्मों के अनुसार समायोजित करने की आवश्यकता होती है।
स्टॉप लॉस को अगले BAR के लिए सेट किया गया है, जो समय के साथ देरी के साथ है, जिससे नुकसान बढ़ सकता है।
स्थिर रुझानों में झूठे ब्रेक के कारण एसएआर को मोड़ने की समस्या को SAR वक्र को चिकना करने के लिए पैरामीटर को समायोजित करके कम किया जा सकता है।
गलत औसत सेटिंग्स भी रुझान को याद कर सकते हैं या गलत संकेत दे सकते हैं, और सावधानीपूर्वक परीक्षण और अनुकूलन की आवश्यकता होती है।
जोखिमों के लिए, निम्नलिखित बिंदुओं पर अनुकूलन किया जा सकता हैः
विभिन्न किस्मों के उतार-चढ़ाव के अनुसार SAR पैरामीटर को समायोजित करें, जिससे बार-बार मोड़ की संभावना कम हो जाए।
तीन समान रेखाओं के पैरामीटर को समायोजित करें ताकि वे विभिन्न किस्मों की विशेषताओं के करीब हों।
स्टॉप लॉस को अनुकूलित करें, जैसे कि छोटे स्टॉप, स्टॉप लॉस को स्थानांतरित करना आदि।
ट्रेडों की आवृत्ति वाले बाजारों में, स्लाइड पॉइंट्स से बचने के लिए केवल स्टॉप लॉस का उपयोग करें।
औसत रेखा और एसएआर मापदंडों के प्रभावों का आकलन करने के लिए पैरामीटर अनुकूलन परीक्षण करें।
उपरोक्त विश्लेषण के आधार पर, इस रणनीति को निम्नलिखित पहलुओं में अनुकूलित किया जा सकता हैः
एसएआर पैरामीटर सेटिंग को अनुकूलित करें, एसएआर वक्र को चिकना करें, वक्र की आवृत्ति को कम करें और ओवरट्रेडिंग से बचें।
ट्रेडों की विशिष्ट किस्मों की विशेषताओं के अनुरूप तीन समान रेखाओं की लंबाई को समायोजित करना, जो बेहतर प्रवृत्ति फ़िल्टरिंग का कार्य करता है।
गतिशील रोकथाम रणनीतियों का उपयोग करें, जैसे कि चलती रोकथाम, छोटी रोकथाम, आदि, रोकथाम से होने वाले नुकसान को कम करने के लिए।
उच्च आवृत्ति ट्रेडिंग बाजार में स्टॉपलॉस का उपयोग करके स्टॉपलॉस स्लाइड को कम करें।
RSI, KD, आदि जैसे अन्य संकेतकों को फ़िल्टर करने के लिए जोड़ा गया, जिससे संकेत की गुणवत्ता में सुधार हुआ और झूठी दरार की संभावना कम हो गई।
प्रवेश की स्थिति को अनुकूलित करें, एक ही समय में एसएआर मोड़ पर के-लाइन की जांच करने पर विचार करें, ताकि कम गुणवत्ता वाले संकेतों से बचा जा सके।
पुनः प्रवेश की शर्तें जोड़ी जाती हैं, जब स्टॉपलॉस के बाद कीमतें लाभप्रद दिशा में चलती रहती हैं।
लाभप्रदता में सुधार के लिए स्टॉप-स्टॉप रणनीतियों जैसे कि मूव स्टॉप, पार्ट-स्टॉप, लेवल-डिफरेंस स्टॉप आदि में सुधार करना।
प्रतिक्रिया के परिणामों के आधार पर पैरामीटर का अनुकूलन करें, समग्र रणनीति प्रभाव पर पैरामीटर के प्रभाव का आकलन करें।
कुल मिलाकर, यह एक सरल और व्यावहारिक रणनीति है जो प्रवृत्ति को ट्रैक करने वाले संकेतकों एसएआर और समरूपता को जोड़ती है। यह एसएआर का उपयोग प्रवृत्ति को बदलने के लिए संवेदनशीलता और समरूपता की लहरों का उपयोग करने के लिए करता है, और प्रवृत्ति के मोड़ पर तेजी से प्रवेश करता है। जोखिम को नियंत्रित करने और मुनाफे को लॉक करने के लिए स्टॉपलॉस स्टॉप सेट करते हुए। पैरामीटर SETTINGS को समायोजित करके और प्रवेश और निकास की स्थिति को अनुकूलित करके बेहतर रणनीतिक प्रभाव प्राप्त किया जा सकता है। लेकिन व्यापारियों को ओवर-ट्रेडिंग और झूठे ब्रेकडाउन जैसे मुद्दों को नियंत्रित करने के लिए सावधानी बरतने की आवश्यकता होती है, पैरामीटर को अनुकूलित करने और विभिन्न किस्मों के लिए रणनीति का परीक्षण करने के लिए, ताकि एक स्थिर व्यापार प्रणाली प्राप्त हो सके।
/*backtest
start: 2023-10-08 00:00:00
end: 2023-11-07 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title="SAR + 3SMMA with SL & TP", overlay=true, calc_on_order_fills=false, calc_on_every_tick=false, default_qty_type=strategy.percent_of_equity, default_qty_value=100, currency=currency.USD, commission_type= strategy.commission.percent, commission_value=0.03)
start = input.float(0.02, step=0.01, group="SAR")
increment = input.float(0.02, step=0.01, group="SAR")
maximum = input.float(0.2, step=0.01, group="SAR")
//Take Profit Inputs
take_profit = input.float(title="Take Profit (%)", minval=0.0, step=0.1, defval = 0.1, group="Stop Loss and Take Profit", inline="TP") * 0.01
//Stop Loss Inputs
stop_loss = input.float(title="StopLoss (%)", minval=0.0, step=0.1, defval=1, group="Stop Loss and Take Profit", inline="SL") * 0.01
// Smooth Moving Average
fastSmmaLen = input.int(21, minval=1, title="Fast Length", group = "Smooth Moving Average")
midSmmaLen = input.int(50, minval=1, title="Mid Length", group = "Smooth Moving Average")
slowSmmaLen = input.int(200, minval=1, title="Slow Length", group = "Smooth Moving Average")
src = input(close, title="Source", group = "Smooth Moving Average")
smma(ma, src, len) =>
smma = 0.0
smma := na(smma[1]) ? ma : (smma[1] * (len - 1) + src) / len
smma
fastSma = ta.sma(src, fastSmmaLen)
midSma = ta.sma(src, midSmmaLen)
slowSma = ta.sma(src, slowSmmaLen)
fastSmma = smma(fastSma, src, fastSmmaLen)
midSmma = smma(midSma, src, midSmmaLen)
slowSmma = smma(slowSma, src, slowSmmaLen)
isSmmaUpward = ta.rising(fastSmma, 1) and ta.rising(midSmma, 1) and ta.rising(slowSmma, 1)
var bool uptrend = na
var float EP = na
var float SAR = na
var float AF = start
var float nextBarSAR = na
if bar_index > 0
firstTrendBar = false
SAR := nextBarSAR
if bar_index == 1
float prevSAR = na
float prevEP = na
lowPrev = low[1]
highPrev = high[1]
closeCur = close
closePrev = close[1]
if closeCur > closePrev
uptrend := true
EP := high
prevSAR := lowPrev
prevEP := high
else
uptrend := false
EP := low
prevSAR := highPrev
prevEP := low
firstTrendBar := true
SAR := prevSAR + start * (prevEP - prevSAR)
if uptrend
if SAR > low
firstTrendBar := true
uptrend := false
SAR := math.max(EP, high)
EP := low
AF := start
else
if SAR < high
firstTrendBar := true
uptrend := true
SAR := math.min(EP, low)
EP := high
AF := start
if not firstTrendBar
if uptrend
if high > EP
EP := high
AF := math.min(AF + increment, maximum)
else
if low < EP
EP := low
AF := math.min(AF + increment, maximum)
if uptrend
SAR := math.min(SAR, low[1])
if bar_index > 1
SAR := math.min(SAR, low[2])
else
SAR := math.max(SAR, high[1])
if bar_index > 1
SAR := math.max(SAR, high[2])
nextBarSAR := SAR + AF * (EP - SAR)
sarIsUpTrend = uptrend ? true : false
sarFlippedDown = sarIsUpTrend and not sarIsUpTrend[1] ? true : false
sarFlippedUp = not sarIsUpTrend and sarIsUpTrend[1] ? true : false
longEntryCondition = isSmmaUpward and sarFlippedDown
shortEntryCondition = not isSmmaUpward and sarFlippedUp
if(longEntryCondition)
strategy.entry("L", strategy.long, stop=nextBarSAR, comment="L")
if(shortEntryCondition)
strategy.entry("S", strategy.short, stop=nextBarSAR, comment="S")
strategy.exit("CL", when=strategy.position_size > 0, limit=strategy.position_avg_price * (1+take_profit), stop=strategy.position_avg_price*(1-stop_loss))
strategy.exit("CS", when=strategy.position_size < 0, limit=strategy.position_avg_price * (1-take_profit), stop=strategy.position_avg_price*(1+stop_loss))
plot(SAR, style=plot.style_cross, linewidth=1, color=color.orange)
plot(nextBarSAR, style=plot.style_cross, linewidth=1, color=color.aqua)
plot(series = fastSmma, title="fastSmma", linewidth=1)
plot(series = midSmma, title="midSmma", linewidth=2)
plot(series = slowSmma, title="slowSmma", linewidth=3)
plotchar(series = isSmmaUpward, title="isSmmaUpward", char='')
plotchar(series=sarIsUpTrend, title="sarIsUpTrend", char='')
plotchar(series=sarFlippedUp, title="sarFlippedUp", char='')
plotchar(series=sarFlippedDown, title="sarFlippedDown", char='')
plotchar(series=longEntryCondition, title="longEntryCondition", char='')
plotchar(series=shortEntryCondition, title="shortEntryCondition", char='')
plotchar(series=strategy.position_size > 0, title="inLong", char='')
plotchar(series=strategy.position_size < 0, title="inShort", char='')
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)