चरण-दर-चरण लाभ लेने की रणनीति


निर्माण तिथि: 2023-11-28 16:05:24 अंत में संशोधित करें: 2023-11-28 16:05:24
कॉपी: 0 क्लिक्स: 778
1
ध्यान केंद्रित करना
1619
समर्थक

चरण-दर-चरण लाभ लेने की रणनीति

अवलोकन

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

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

इस रणनीति में मुख्य रूप से निम्नलिखित भागों के माध्यम से चरणबद्ध स्टॉपस्लिप बिंदु को लागू किया गया हैः

  1. स्टॉपलॉस और 3 स्टॉप पॉइंट्स सेट करें।
  2. वर्तमान लाभ की संख्या और स्टॉप-लॉस मूल्य को परिभाषित करने के लिए एक गणना फ़ंक्शन।
  3. निर्णय फ़ंक्शन जो लाभ के चरण को परिभाषित करता है
  4. स्लाइड पॉइंट स्टॉप को प्राप्त करने के लिए स्टॉप-लॉस की कीमतों को विभिन्न लाभ चरणों में संशोधित करें

विशेष रूप से, यह पहले 100 के स्टॉप लॉस और 100/200/300 के 3 स्टॉप लॉस को सेट करता है। फिर वर्तमान मूल्य और स्थिति खोलने की कीमत के आधार पर लाभ प्राप्त करने के लिए एक फ़ंक्शन को परिभाषित करता है।curProfitInPts, और बिंदु दूरी के आधार पर स्टॉप लॉस मूल्य की गणना करने के लिए एक फंक्शनcalcStopLossPrice

यह तर्क है।getCurrentStageफ़ंक्शन, यह निर्धारित करता है कि वर्तमान में कोई स्थिति है या नहीं, और क्या लाभ की संख्या किसी स्टॉप पॉइंट से अधिक है, यदि अधिक है तो अगले चरण में प्रवेश करें। उदाहरण के लिए 100 स्टॉप पॉइंट तक पहुंचने पर दूसरे चरण में प्रवेश करें, 200 स्टॉप पॉइंट तक पहुंचने पर तीसरे चरण में प्रवेश करें।

अंत में, चरणों के अनुसार स्टॉप-लॉस की कीमतों को संशोधित करें, जिससे स्लाइडिंग स्टॉप प्राप्त हो सके। पहला चरण स्टॉप-लॉस मूल सेटिंग पर रहता है, दूसरा चरण लाभ-हानि संतुलन पर जाता है, और तीसरा चरण पहले स्टॉप-लॉस पर जाता है।

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

इस तरह के कदम-दर-कदम स्टॉप-स्लाइडिंग पॉइंट रणनीति के कुछ फायदे हैंः

  1. इस प्रकार, आप अपने मुनाफे के कुछ हिस्सों को लॉक कर सकते हैं, जबकि आपके पास बाद में अधिक मुनाफा कमाने की जगह है।
  2. स्लाइड-स्टॉप का उपयोग करके कीमतों को ट्रैक करने से PRODID को वापस लेने या नुकसान की संभावना कम हो सकती है।
  3. एक बार की तुलना में कई बार रोकना जोखिम को बेहतर तरीके से नियंत्रित करता है।
  4. रणनीति तर्क स्पष्ट, सरल और समझने में आसान है।

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

इस रणनीति में कुछ जोखिम भी हैं:

  1. चरणबद्ध स्टॉप के कारण समय पर स्टॉप करने में असमर्थता हो सकती है, बेहतर है कि आप बाहर निकलें। स्टॉप पॉइंट की संख्या को समायोजित करके इसे अनुकूलित किया जा सकता है।
  2. स्लाइडिंग चौड़ाई को बहुत अधिक सेट करने से स्टॉप लॉस को बहुत जल्दी ट्रिगर किया जा सकता है। विभिन्न स्लाइडिंग चौड़ाई का परीक्षण किया जा सकता है।
  3. यह भी एक बड़ा नुकसान का जोखिम है. आप कुछ मामलों में तेजी से बंद करने के लिए विचार कर सकते हैं.

अनुकूलन दिशा

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

  1. विभिन्न स्टॉप और स्टॉप लॉस दूरी का परीक्षण करें, पैरामीटर का अनुकूलन करें।
  2. विशेष परिस्थितियों में एक त्वरित स्टॉप लॉस तंत्र पर विचार करें।
  3. स्टॉप और स्टॉप लॉस को निर्धारित करने के लिए तकनीकी सूचक निर्णय के साथ संयोजन।
  4. स्लाइड बिंदु की चौड़ाई का अनुकूलन करें, स्टॉप और स्टॉप लॉस को संतुलित करें।
रणनीति स्रोत कोड
/*backtest
start: 2023-11-20 00:00:00
end: 2023-11-27 00:00:00
period: 3m
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/
// © adolgov

// @description
// when tp1 is reached, sl is moved to break-even
// when tp2 is reached, sl is moved to tp1
// when tp3 is reached - exit

//@version=4
strategy("Stepped trailing strategy example", overlay=true)

// random entry condition
longCondition = crossover(sma(close, 14), sma(close, 28))
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

// sl & tp in points
sl = input(100)
tp1 = input(100)
tp2 = input(200)
tp3 = input(300)

curProfitInPts() =>
    if strategy.position_size > 0
        (high - strategy.position_avg_price) / syminfo.mintick
    else if strategy.position_size < 0
        (strategy.position_avg_price - low) / syminfo.mintick
    else
        0
        
calcStopLossPrice(OffsetPts) =>
    if strategy.position_size > 0
        strategy.position_avg_price - OffsetPts * syminfo.mintick
    else if strategy.position_size < 0
        strategy.position_avg_price + OffsetPts * syminfo.mintick
    else
        0
        
calcProfitTrgtPrice(OffsetPts) =>
    calcStopLossPrice(-OffsetPts)

getCurrentStage() =>
    var stage = 0
    if strategy.position_size == 0 
        stage := 0
    if stage == 0 and strategy.position_size != 0
        stage := 1
    else if stage == 1 and curProfitInPts() >= tp1
        stage := 2
    else if stage == 2 and curProfitInPts() >= tp2
        stage := 3
    stage

stopLevel = -1.
profitLevel = calcProfitTrgtPrice(tp3)

// based on current stage set up exit
// note: we use same exit ids ("x") consciously, for MODIFY the exit's parameters
curStage = getCurrentStage()
if curStage == 1
    stopLevel := calcStopLossPrice(sl)
    strategy.exit("x", loss = sl, profit = tp3, comment = "sl or tp3")
else if curStage == 2
    stopLevel := calcStopLossPrice(0)
    strategy.exit("x", stop = stopLevel, profit = tp3, comment = "breakeven or tp3")
else if curStage == 3
    stopLevel := calcStopLossPrice(-tp1)
    strategy.exit("x", stop = stopLevel, profit = tp3, comment = "tp1 or tp3")
else
    strategy.cancel("x")
    
// this is debug plots for visulalize TP & SL levels
plot(stopLevel > 0 ? stopLevel : na, style = plot.style_linebr)
plot(profitLevel > 0 ? profitLevel : na, style = plot.style_linebr)