
यह रणनीति एक संयोजन रणनीति है, जो गतिशीलता सूचक, प्रवृत्ति अनुवर्ती सूचक और औसत रेखा सूचक के संयोजन में है, जो प्रवृत्ति अनुवर्ती और खरीद / बेचने के लिए है। मुख्य रूप से स्टोकेस्टिक सूचक और सुपरट्रेंड सूचक के संयोजन के माध्यम से खरीदने / बेचने का समय निर्धारित करने के लिए, ईएमए की मदद से बाजार की मुख्य प्रवृत्ति को निर्धारित करने के लिए।
इस रणनीति में मुख्य रूप से निम्नलिखित सूचकांकों को शामिल किया गया हैः
ईएमए औसतः ईएमए 25, 50, 100 और 200 का उपयोग करके चार औसत रेखाएं मुख्य प्रवृत्ति का आकलन करती हैं। ईएमए 25 पर ईएमए 50 और ईएमए 100 पर ईएमए 200 के माध्यम से ऊपर की ओर प्रवृत्ति होती है, अन्यथा नीचे की ओर प्रवृत्ति होती है।
सुपरट्रेंड ट्रेंड ट्रैकिंग संकेतकः पैरामीटर फैक्टर 3 और एटीआर 10 हैं, यह निर्धारित करने के लिए कि क्या वर्तमान कीमतें बढ़ रही हैं या गिर रही हैं। जब सुपरट्रेंड हरे रंग में होता है, तो यह बढ़ रहा है, लाल रंग में गिरावट है।
स्टोकेस्टिक गति सूचकः% K 8 और % D 3, यह निर्धारित करने के लिए कि क्या स्टोकेस्टिक गोल्ड फोर्क या डेड फोर्क घटना उत्पन्न करता है। जब % K लाइन नीचे से % D लाइन को पार करती है, तो यह गोल्ड फोर्क सिग्नल है, इसके विपरीत डेड फोर्क सिग्नल।
खरीदारी की रणनीति हैः ईएमए ऊपर की ओर + सुपरट्रेंड ऊपर की ओर + स्टोचैस्टिक गोल्डन फोर्क टाइमर। बेचने की रणनीतिः ईएमए ने गिरावट की प्रवृत्ति दिखाई + सुपरट्रेंड ने गिरावट की प्रवृत्ति दिखाई + स्टोचैस्टिक डेड फोर्क समय।
इस रणनीति में तीन सूचकांकों को शामिल किया गया है - रुझान, गतिशीलता और ब्रेकआउट - जो बाजार की स्थिति और खरीदने और बेचने के बिंदुओं को अधिक विश्वसनीय रूप से निर्धारित करने में मदद करता है।
इस रणनीति के मुख्य फायदे हैंः
कई मापदंडों के संयोजन के साथ, एक मजबूत निर्णय क्षमता के साथ, आप एक झूठी सफलता को प्रभावी ढंग से फ़िल्टर कर सकते हैं।
गतिशीलता सूचकांक को शामिल करने से टर्निंग पॉइंट का अनुमान लगाया जा सकता है।
विभिन्न बाजार स्थितियों के लिए अनुकूलन योग्य पैरामीटर
एक अपेक्षाकृत कुशल स्टॉप और स्टॉप सेटिंग प्राप्त की।
उच्च चक्रों जैसे कि सूर्य के प्रकाश पर पुनः माप किया जा सकता है, जो अधिक प्रभावी है।
इस रणनीति के कुछ जोखिम भी हैं:
अनुचित पैरामीटर सेटिंग से लेनदेन की आवृत्ति या सिग्नल की अस्थिरता हो सकती है। पैरामीटर को समायोजित करने की आवश्यकता है।
हालांकि, समय के साथ गलतफहमी की संभावना है। अधिक तरंगों को जोड़ने पर विचार किया जा सकता है।
स्टॉप लॉस को स्टोचैस्टिक इंडिकेटर के चरम बिंदु के रूप में सेट किया गया है, जो उचित छूट पर विचार करने के लिए बहुत करीब हो सकता है।
अपर्याप्त प्रतिक्रिया डेटा, जो पैरामीटर के अनुकूलन को प्रभावित कर सकता है, प्रतिक्रिया चक्र का विस्तार किया जाना चाहिए
इस रणनीति को निम्नलिखित दिशाओं में अनुकूलित किया जा सकता हैः
पैरामीटर के अधिक संयोजनों का परीक्षण करें और सबसे अच्छा पैरामीटर ढूंढें। जैसे कि सुपरट्रेंड के फैक्टर पैरामीटर को समायोजित करना।
ऊर्जा और अस्थिरता के संकेतकों जैसे अधिक हिल-चिल के संकेतकों को शामिल करना, गलतफहमी की संभावना को कम करना।
विभिन्न प्रकार के स्टॉप-लॉस का परीक्षण किया जा सकता है, जैसे कि एक निश्चित प्रतिशत के लिए स्टॉप-लॉस लाइन सेट करना।
स्टॉपआउट को अनुकूलित करें, जैसे कि गतिशील स्टॉपआउट को ध्यान में रखते हुए, अधिक मुनाफे को लॉक करना।
रणनीति के दायरे का विस्तार करना, जैसे कि अधिक व्यापारिक किस्मों के लिए प्रयास करना, या उच्च चक्रों में उपयोग करना।
इस रणनीति की समग्र सोच स्पष्ट है, संकेतक का चयन उचित है, प्रवृत्ति का पालन और व्यापार को तोड़ने के लिए बेहतर है, लेकिन अभी भी अनुकूलन के लिए जगह है, पैरामीटर को समायोजित करने, अधिक हिलाने वाले संकेतकों को जोड़ने, स्टॉप-लॉस स्टॉप को बेहतर बनाने आदि के माध्यम से बहु-दिशात्मक अनुकूलन, रणनीति को अधिक स्थिर और विश्वसनीय बना सकता है।
/*backtest
start: 2023-12-05 00:00:00
end: 2023-12-06 07:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title="Supertrend + Stoch Strategy", overlay=true)
// ---inputs---
pl = input(1.5, title="P/L", minval=0.1)
lossPercentage = input(1, title="Loss Percentage", minval=1, maxval=100)
atrPeriod = input(10, "ATR Length")
factor = input(3, "Supertrend Factor")
periodK = input(8, title="%K Length", minval=1)
smoothK = input(3, title="%K Smoothing", minval=1)
periodD = input(3, title="%D Smoothing", minval=1)
ema1l = input(25, title="EMA 1 Length", minval=1)
ema2l = input(50, title="EMA 2 Length", minval=1)
ema3l = input(100, title="EMA 3 Length", minval=1)
ema4l = input(200, title="EMA 4 Length", minval=1)
// ---lines---
ema1 = ema(close, ema1l)
ema2 = ema(close, ema2l)
ema3 = ema(close, ema3l)
ema4 = ema(close, ema4l)
trendUpper = ema1 > ema2 and ema3 > ema4
trendLower = ema1 < ema2 and ema3 < ema4
[supertrend, direction] = supertrend(factor, atrPeriod)
supertrendUpper = direction < 0
supertrendLower = direction > 0
k = sma(stoch(close, high, low, periodK), smoothK)
d = sma(k, periodD)
stochCrossOver = crossover(k, d)
stochCrossUnder = crossunder(k, d)
// ---plot---
plot(ema1, color=color.green)
plot(ema2, color=color.orange)
plot(ema3, color=color.blue)
plot(ema4, color=color.purple)
bodyMiddle = plot((open + close) / 2, display=display.none)
upTrend = plot(direction < 0 ? supertrend : na, "Up Trend", color = color.green, style=plot.style_linebr)
downTrend = plot(direction < 0 ? na : supertrend, "Down Trend", color = color.red, style=plot.style_linebr)
fill(bodyMiddle, upTrend, color.new(color.green, 95), fillgaps=false)
fill(bodyMiddle, downTrend, color.new(color.red, 95), fillgaps=false)
// ---stop place compute---
edge = 0. // periodly high/low
edge := stochCrossOver ? high : stochCrossUnder ? low : k > d ? max(edge[1], high) : k < d ? min(edge[1], low) : edge[1]
// plot(edge)
// ---trade condition---
// longCond = trendUpper and supertrendUpper and stochCrossOver
// shortCond = trendLower and supertrendLower and stochCrossUnder
longCond = trendUpper and supertrendUpper and stochCrossOver and strategy.position_size == 0
shortCond = trendLower and supertrendLower and stochCrossUnder and strategy.position_size == 0
// ---stop & take---
stop = 0.
stop := nz(stop[1], stop)
take = 0.
take := nz(take[1], take)
if longCond
stop := edge[1]
take := close + (close - stop) * pl
if shortCond
stop := edge[1]
take := close - (stop - close) * pl
// ---trade---
qty = strategy.equity / abs(stop - close) / 100 * lossPercentage
strategy.entry("Buy", strategy.long, when=longCond, qty=qty)
strategy.exit("Close Buy","Buy", limit=take, stop=stop)
strategy.entry("Sell", strategy.short, when=shortCond, qty=qty)
strategy.exit("Close Sell","Sell", limit=take, stop=stop)
stopLine = plot(strategy.position_size != 0 ? stop : na, color=color.red, style=plot.style_linebr)
takeLine = plot(strategy.position_size != 0 ? take : na, color=color.green, style=plot.style_linebr)
entryLine = plot(strategy.position_size != 0 ? strategy.position_avg_price : na, color=color.blue, style=plot.style_linebr)
fill(entryLine, stopLine, color.new(color.red, 90), fillgaps=false)
fill(entryLine, takeLine, color.new(color.green, 90), fillgaps=false)