मूल्य गति ट्रैकिंग स्टॉप लॉस रणनीति

लेखक:चाओझांग, दिनांक: 2023-11-27 11:45:04
टैगः

img

अवलोकन

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

रणनीति तर्क

यह मूल्य के 12 अवधि के गति की गणना करता है, और आगे गति के 1 अवधि के गति की गणना करता है। जब तेजी से गति (1 अवधि गति मूल्य गति की गति) 0 से अधिक है, तो यह लंबी जाती है। जब 0 से कम होती है, तो यह छोटी जाती है। यह मूल्य प्रवृत्ति निर्धारित करने के लिए मूल्य गति की दिशा परिवर्तन का न्याय करता है।

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

यह रणनीति उच्चतम मूल्य या निम्नतम मूल्य को ट्रैक करके लाभ में ताला लगाती है, जब मूल्य सेट स्टॉप दूरी से पीछे खींचता है तो बंद ऑर्डर भेजता है।

लाभ विश्लेषण

  1. दोहरी गति निर्धारण प्रवृत्ति की दिशा को सही ढंग से आंकता है, ट्रेडों को कम करता है, और फंसने से बचता है।

  2. लचीली पीछे की स्टॉप दूरी जोखिम को कम करती है और लाभ में ताले लगाती है।

  3. सक्रियण स्तर कुछ लाभ लक्ष्य प्राप्त होने के बाद ही पीछे हटने की अनुमति देकर समय से पहले स्टॉप लॉस को रोकता है।

  4. द्विदिश रोके जाने से लॉन्ग और शॉर्ट दोनों के लिए जोखिमों को व्यापक रूप से नियंत्रित किया जाता है।

  5. सरल और कुशल गणना, समझने और लागू करने में आसान।

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

  1. दोहरी गति से रिवर्स सिग्नल उत्पन्न हो सकते हैं, जिसके लिए प्रवृत्ति फ़िल्टर की आवश्यकता होती है।

  2. अत्यधिक स्टॉप दूरी से महत्वपूर्ण नुकसान हो सकता है।

  3. उच्च सक्रियण स्तर रुकने के अवसरों को याद कर सकता है।

  4. इष्टतम स्टॉप खोजने के लिए अधिक पैरामीटर परीक्षण और अनुकूलन की आवश्यकता है।

प्रवृत्ति निर्णय और पैरामीटर अनुकूलन के माध्यम से झूठे संकेतों को कम कर सकता है। सर्वोत्तम विन्यास खोजने के लिए विभिन्न उत्पादों और पैरामीटर सेट पर परीक्षण करें।

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

  1. रुझान के लिए बाजार संरचना की पहचान को जोड़ना, रिवर्स ट्रेडिंग से बचना।

  2. अधिक समय की शर्तें जोड़ें जैसे वॉल्यूम परिवर्तन, संकेत सटीकता में सुधार के लिए ब्रेकआउट को निचोड़ें।

  3. विभिन्न स्टॉप दूरी और सक्रियण स्तरों का परीक्षण करके मापदंडों का अनुकूलन करें।

  4. बाजार की अस्थिरता के आधार पर गतिशील ट्रेलिंग स्टॉप पर विचार करें।

  5. जोखिम नियंत्रण में सुधार के लिए आंशिक या चलती स्टॉप सेट करें।

निष्कर्ष

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


/*backtest
start: 2023-01-01 00:00:00
end: 2023-02-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Trailing Stop Snippet", overlay=true)

length = input(12)
price = close
momentum(seria, length) =>
	mom = seria - seria[length]
	mom
mom0 = momentum(price, length)
mom1 = momentum( mom0, 1)

tsact = input.float(0.0, "Trailing Stop Activation |", group="strategy", tooltip="Activates the Trailing Stop once this PnL is reached.") / 100
tsact := tsact ? tsact : na
ts = input.float(0.0, "Position Trailing Stop |", group="strategy", tooltip="Trails your position with a stop loss at this distance from the highest PnL") / 100
ts := ts ? ts : na

in_long = strategy.position_size > 0
in_short = strategy.position_size < 0

var ts_ = array.new_float()
ts_size = array.size(ts_)
ts_get = ts_size > 0 ? array.get(ts_, ts_size - 1) : 0

if in_long
    if tsact and high > strategy.position_avg_price + strategy.position_avg_price * tsact
        if ts_size > 0 and ts_get < high
            array.push(ts_, high)
        if ts_size < 1
            array.push(ts_, high)
    if not tsact
        if ts_size > 0 and ts_get < high
            array.push(ts_, high)
        if ts_size < 1
            array.push(ts_, high)
if in_short
    if tsact and low < strategy.position_avg_price - strategy.position_avg_price * tsact
        if ts_size > 0 and ts_get > low
            array.push(ts_, low)
        if ts_size < 1
            array.push(ts_, low)
    if not tsact
        if ts_size > 0 and ts_get > low
            array.push(ts_, low)
        if ts_size < 1
            array.push(ts_, low)
    
trail = in_long and ts_size > 0 ? low < ts_get - ts_get * ts : in_short and ts_size > 0 ? high > ts_get + ts_get * ts : na

if (mom0 > 0 and mom1 > 0)
	strategy.entry("MomLE", strategy.long, stop=high+syminfo.mintick, comment="MomLE")
else
	strategy.cancel("MomLE")
if (mom0 < 0 and mom1 < 0)
	strategy.entry("MomSE", strategy.short, stop=low-syminfo.mintick, comment="MomSE")
else
	strategy.cancel("MomSE")

tsClose = in_long ? ts_get - ts_get * ts : in_short ? ts_get + ts_get * ts : na
if trail    
    strategy.close_all()
if not strategy.opentrades
	array.clear(ts_)

//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)

plotchar(ts_get, "GET", "")
plot(strategy.position_avg_price > 0 ? strategy.position_avg_price : na, "Average", color.rgb(251, 139, 64), 2, plot.style_cross)
plot(tsClose > 0 ? tsClose : na, "Trailing", color.rgb(251, 64, 64), 2, plot.style_cross)
plot(strategy.position_avg_price - strategy.position_avg_price * tsact > 0 ? strategy.position_avg_price - strategy.position_avg_price * tsact : na, "TS Activation", color.fuchsia, 2, plot.style_cross)

अधिक