संयोजन रणनीति के बाद गति ब्रेकआउट और प्रवृत्ति

लेखक:चाओझांग, दिनांकः 2023-12-13 16:41:25
टैगः

img

अवलोकन

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

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

इस रणनीति में निम्नलिखित संकेतक शामिल हैंः

  1. ईएमए लाइनें: मुख्य प्रवृत्ति निर्धारित करने के लिए ईएमए 25, 50, 100 और 200 का उपयोग करें। जब ईएमए25 ईएमए50 से ऊपर और ईएमए100 ईएमए200 से ऊपर पार करता है, तो यह एक ऊपर की प्रवृत्ति है, अन्यथा यह एक नीचे की प्रवृत्ति है।

  2. सुपरट्रेंड ट्रेंड फॉलोइंग इंडिकेटरः पैरामीटर फैक्टर 3 और एटीआर 10 हैं जो यह तय करने के लिए हैं कि वर्तमान कीमत अपट्रेंड या डाउनट्रेंड में है। जब सुपरट्रेंड हरा होता है, तो यह एक अपट्रेंड होता है। जब यह लाल होता है, तो यह एक डाउनट्रेंड होता है।

  3. स्टोकैस्टिक गति संकेतकः %K 8 और %D 3 यह निर्धारित करने के लिए कि क्या स्टोकैस्टिक स्वर्ण क्रॉस या मृत क्रॉस उत्पन्न करता है। जब %K रेखा नीचे से %D रेखा को पार करती है, तो यह स्वर्ण क्रॉस संकेत है, और मृत क्रॉस के लिए इसके विपरीत।

खरीद रणनीति हैः ईएमए अपट्रेंड + सुपरट्रेंड अपट्रेंड + स्टोकेस्टिक गोल्डन क्रॉस दिखाता है।
बिक्री रणनीति हैः ईएमए डाउनट्रेंड + सुपरट्रेंड डाउनट्रेंड + स्टोकेस्टिक डेड क्रॉस दिखाता है।

यह रणनीति बाजार की चाल और व्यापारिक बिंदुओं को विश्वसनीय रूप से निर्धारित करने के लिए प्रवृत्ति, गति और ब्रेकआउट संकेतकों को एकीकृत करती है।

लाभ विश्लेषण

इस रणनीति के मुख्य लाभ इस प्रकार हैंः

  1. कई संकेतकों का संयोजन मजबूती में सुधार करता है और नकली ब्रेकआउट को प्रभावी ढंग से फ़िल्टर करता है।

  2. गति संकेतक जोड़ने से मोड़ के बिंदुओं को जल्दी पता लगाया जा सकता है।

  3. अनुकूलन योग्य मापदंड विभिन्न बाजार वातावरणों के अनुकूल हैं।

  4. अपेक्षाकृत कुशल स्टॉप लॉस और ले लाभ सेटिंग का एहसास होता है।

  5. यह अच्छी तरह से काम करता है जब दैनिक के रूप में उच्च समय सीमा पर बैकटेस्ट किया जाता है।

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

कुछ जोखिम भी हैं:

  1. गलत पैरामीटर सेटिंग्स से बहुत अधिक ट्रेडिंग या अस्थिर संकेत हो सकते हैं। पैरामीटर को अनुकूलित करने की आवश्यकता है।

  2. समय में अभी भी गलतफहमी हो सकती है। अधिक फ़िल्टर संकेतक जोड़े जा सकते हैं।

  3. स्टोकैस्टिक चरम पर सेट स्टॉप लॉस बहुत करीब हो सकता है। व्यापक स्टॉप परीक्षण के लायक है।

  4. अपर्याप्त बैकटेस्ट डेटा पैरामीटर फिटिंग में पूर्वाग्रह का कारण बन सकता है। बैकटेस्ट अवधि का विस्तार करें।

अनुकूलन दिशाएँ

इस रणनीति को निम्नलिखित तरीकों से अनुकूलित किया जा सकता हैः

  1. इष्टतम खोजने के लिए अधिक पैरामीटर सेट का परीक्षण करें। उदाहरण के लिए सुपरट्रेंड फैक्टर को समायोजित करें।

  2. गलत आकलन को कम करने के लिए ऊर्जा या अस्थिरता जैसे अधिक फ़िल्टर संकेतक जोड़ें।

  3. स्टॉप लॉस के विभिन्न तरीकों का परीक्षण करें, उदाहरण के लिए प्रतिशत आधारित स्टॉप लॉस।

  4. लाभ प्राप्त करने के लिए अनुकूलित करें, अधिक लाभ में लॉक करने के लिए पीछे की ओर रुकने की तरह।

  5. दायरे का विस्तार करें, अधिक उत्पादों या अधिक समय सीमाओं के लिए अनुकूलित करें।

निष्कर्ष

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


/*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)

अधिक